<?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>208399</bug_id>
          
          <creation_ts>2020-02-28 16:34:27 -0800</creation_ts>
          <short_desc>ResourceLoadStatistics: Enable cookie blocking and the Storage Access API in ephemeral sessions</short_desc>
          <delta_ts>2021-02-10 11:39:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=208400</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=208739</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>katherine_cheney</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624180</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 16:34:27 -0800</bug_when>
    <thetext>Since full third-party cookie blocking is stateless, it can now be enabled in ephemeral sessions. User interaction as a gate for calling the Storage Access API can be captured in an ephemeral fashion as well to allow authenticated embeds. We should enabled these features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624181</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 16:34:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/24731650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624199</commentid>
    <comment_count>2</comment_count>
      <attachid>392037</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 17:27:10 -0800</bug_when>
    <thetext>Created attachment 392037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624212</commentid>
    <comment_count>3</comment_count>
      <attachid>392037</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-02-28 18:19:44 -0800</bug_when>
    <thetext>Comment on attachment 392037
Patch

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

I think you might have left a backtrace by accident, but otherwise looks great! R=me

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:1223
&gt; +    WTFReportBacktrace();

Did you mean to leave this in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624220</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 20:04:12 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 392037 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392037&amp;action=review
&gt; 
&gt; I think you might have left a backtrace by accident, but otherwise looks
&gt; great! R=me
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:1223
&gt; &gt; +    WTFReportBacktrace();
&gt; 
&gt; Did you mean to leave this in?

Nope. And I had removed removed it but not saved the file before uploading.

Thanks for the review! I&apos;ll wait for green light on the ios-wk2 bot before putting it on the queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624221</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 20:26:43 -0800</bug_when>
    <thetext>We got one curious layout test crash with this trace:

0   com.apple.WebKit              	0x000000010fefb3d3 WTFCrashWithInfo(int, char const*, char const*, int) + 19
1   com.apple.WebKit              	0x000000011003450e WebKit::WebResourceLoadStatisticsStore::suspend(WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;) + 278
2   com.apple.WebKit              	0x00000001100076f6 WTF::Detail::CallableWrapper&lt;WebKit::NetworkProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_58, void, WebKit::NetworkSession&amp;&gt;::call(WebKit::NetworkSession&amp;) + 76
3   com.apple.WebKit              	0x000000010ffdba5d WebKit::NetworkProcess::forEachNetworkSession(WTF::Function&lt;void (WebKit::NetworkSession&amp;)&gt; const&amp;) + 91
4   com.apple.WebKit              	0x000000010ffe3288 WebKit::NetworkProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;) + 394
5   com.apple.WebKit              	0x000000010ff439ac void IPC::handleMessageAsync&lt;Messages::NetworkProcess::PrepareToSuspend, WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(bool, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)) + 186

Looks like something is not happy when suspending. While that might be unrelated, I&apos;ll have to look at suspend() and resume() for ephemeral sessions before landing.

Then there&apos;s an API test that failed at least once on the api-ios bot: WKWebView.InitializingWebViewWithEphemeralStorageDoesNotLog

It does not fail on my Mac so I may have to reproduce in a simulator or on a device to see what&apos;s logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624223</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 20:31:33 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; It does not fail on my Mac so I may have to reproduce in a simulator or on a
&gt; device to see what&apos;s logging.

I just realized that the logging is most probably that stray WTFReportBacktrace() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624224</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-02-28 20:32:12 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; We got one curious layout test crash with this trace:
&gt; 
&gt; 0   com.apple.WebKit              	0x000000010fefb3d3 WTFCrashWithInfo(int,
&gt; char const*, char const*, int) + 19
&gt; 1   com.apple.WebKit              	0x000000011003450e
&gt; WebKit::WebResourceLoadStatisticsStore::suspend(WTF::CompletionHandler&lt;void
&gt; ()&gt;&amp;&amp;) + 278
&gt; 2   com.apple.WebKit              	0x00000001100076f6
&gt; WTF::Detail::CallableWrapper&lt;WebKit::NetworkProcess::prepareToSuspend(bool,
&gt; WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_58, void,
&gt; WebKit::NetworkSession&amp;&gt;::call(WebKit::NetworkSession&amp;) + 76
&gt; 3   com.apple.WebKit              	0x000000010ffdba5d
&gt; WebKit::NetworkProcess::forEachNetworkSession(WTF::Function&lt;void
&gt; (WebKit::NetworkSession&amp;)&gt; const&amp;) + 91
&gt; 4   com.apple.WebKit              	0x000000010ffe3288
&gt; WebKit::NetworkProcess::prepareToSuspend(bool, WTF::CompletionHandler&lt;void
&gt; ()&gt;&amp;&amp;) + 394
&gt; 5   com.apple.WebKit              	0x000000010ff439ac void
&gt; IPC::handleMessageAsync&lt;Messages::NetworkProcess::PrepareToSuspend,
&gt; WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(bool,
&gt; WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;,
&gt; WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(bool,
&gt; WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)) + 186
&gt; 
&gt; Looks like something is not happy when suspending. While that might be
&gt; unrelated, I&apos;ll have to look at suspend() and resume() for ephemeral
&gt; sessions before landing.

The test case editing/async-clipboard/clipboard-change-data-while-getting-type.html does not fail on my Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624613</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-02 10:58:22 -0800</bug_when>
    <thetext>I had a conversation with Chris Dumez this morning on how to handle suspend/resume. Easy to do. Will add it to the patch I land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624639</commentid>
    <comment_count>9</comment_count>
      <attachid>392163</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-02 11:23:45 -0800</bug_when>
    <thetext>Created attachment 392163
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624666</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:23:11 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 392163:

editing/spelling/spellcheck-async-remove-frame.html bug 158401 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624667</commentid>
    <comment_count>11</comment_count>
      <attachid>392163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:24:10 -0800</bug_when>
    <thetext>Comment on attachment 392163
Patch for landing

Clearing flags on attachment: 392163

Committed r257726: &lt;https://trac.webkit.org/changeset/257726&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624668</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 12:24:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624996</commentid>
    <comment_count>13</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2020-03-03 04:22:27 -0800</bug_when>
    <thetext>This patch caused an early exit in GTK test bot due to too many crashes (&gt;50).

https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/12821/steps/layout-test/logs/stdio

Fix here: https://bugs.webkit.org/show_bug.cgi?id=208506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633104</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-23 16:18:26 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633105</commentid>
    <comment_count>15</comment_count>
      <attachid>394318</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-23 16:18:27 -0700</bug_when>
    <thetext>Created attachment 394318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633109</commentid>
    <comment_count>16</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-23 16:20:15 -0700</bug_when>
    <thetext>Why are we reusing this bug for a small follow-up fix? This bug used to track a major change and now it looks like a one-liner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633112</commentid>
    <comment_count>17</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-23 16:20:59 -0700</bug_when>
    <thetext>You should use https://bugs.webkit.org/show_bug.cgi?id=208506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633141</commentid>
    <comment_count>18</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-23 17:06:15 -0700</bug_when>
    <thetext>webkit-patch upload automatically obsoletes previous attachments, which I undid making it clear that this is a followup fix to a big change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633173</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 18:22:41 -0700</bug_when>
    <thetext>Committed r258893: &lt;https://trac.webkit.org/changeset/258893&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394318.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727681</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-02-10 11:39:21 -0800</bug_when>
    <thetext>*** Bug 193728 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392037</attachid>
            <date>2020-02-28 17:27:10 -0800</date>
            <delta_ts>2020-03-02 11:23:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208399-20200228172709.patch</filename>
            <type>text/plain</type>
            <size>148477</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Njc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA5Y2M5Y2YyY2E2NzUy
MzY4OGYxOWVkMTRlZGIxMmM1NzRhZWQ5ZC4uMGYxN2FjZTEzOWU3YmE5MjFiY2FlMDA0ODM0NWM0
ZGZjYjNlYjE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTI4ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlTG9hZFN0
YXRpc3RpY3M6IEVuYWJsZSBjb29raWUgYmxvY2tpbmcgYW5kIHRoZSBTdG9yYWdlIEFjY2VzcyBB
UEkgaW4gZXBoZW1lcmFsIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDgzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NzMxNjUw
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVt
ZXJhbC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1k
dWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGly
ZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXBoZW1lcmFsLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVwaGVtZXJhbC5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1l
cGhlbWVyYWwuaHRtbAorCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
aDoKKyAgICAgICAgICAgIEFkZHMgYSBib29sZWFuIGVudW0gSXNFcGhlbWVyYWwgd2hpY2ggaXMg
dXNlZCB0byBjYXB0dXJlIGVwaGVtZXJhbCBzdGF0ZQorICAgICAgICAgICAgYWNyb3NzIHZhcmlv
dXMgY2xhc3Nlcy4KKwogMjAyMC0wMi0yOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBbR1BVUF0gSW1wbGVtZW50IE1vZGVybiBFTUUgQVBJIGluIHRoZSBHUFUg
UHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhNzAzZTg3N2U4ZjQ3ODBmOWU5ZDFhZTVkZDA2ZDk1Y2FmZDdl
Y2JkLi4wZGE4NDcwYjUxM2UyNmFjZjllOGM0Mjk2MjQyNTNjNWJmMWIyYWEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExMCBAQAorMjAyMC0wMi0yOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOiBFbmFibGUgY29va2ll
IGJsb2NraW5nIGFuZCB0aGUgU3RvcmFnZSBBY2Nlc3MgQVBJIGluIGVwaGVtZXJhbCBzZXNzaW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Mzk5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDczMTY1MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgcmVzb3VyY2Ug
bG9hZCBzdGF0aXN0aWNzLCBvciBJVFAsIGluIGVwaGVtZXJhbCBzZXNzaW9ucy4KKworICAgICAg
ICBTaW5jZSBmdWxsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyBpcyBzdGF0ZWxlc3MsIGl0
IGNhbiBub3cgYmUgZW5hYmxlZCBpbgorICAgICAgICBlcGhlbWVyYWwgc2Vzc2lvbnMuIFVzZXIg
aW50ZXJhY3Rpb24gYXMgYSBnYXRlIGZvciBjYWxsaW5nIHRoZSBTdG9yYWdlIEFjY2VzcworICAg
ICAgICBBUEkgY2FuIGJlIGNhcHR1cmVkIGluIGFuIGVwaGVtZXJhbCBmYXNoaW9uIGFzIHdlbGwg
dG8gYWxsb3cgYXV0aGVudGljYXRlZAorICAgICAgICBlbWJlZHMuCisKKyAgICAgICAgTm8gYWN0
dWFsIHN0YXRpc3RpY3MgYXJlIGNhcHR1cmVkIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGNvbnN0cnVj
dG9yIGZvcgorICAgICAgICBXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBz
a2lwcyBzZXR0aW5nIHVwIHRoZSBtZW1vcnkgc3RvcmUsCisgICAgICAgIHRoZSBwZXJzaXN0ZW50
IHN0b3JlLCBhbmQgdGhlIGRhdGFiYXNlIHN0b3JlLgorCisgICAgICAgIFRoZSBmdW5jdGlvbmFs
aXR5IHRoYXQgaXMgc3VwcG9ydGVkIGlzIGluc3RlYWQgY2FycmllZCBvdXQgaW4gYSBzZXQgb2YK
KyAgICAgICAgcHJpdmF0ZSAiKkVwaGVtZXJhbCgpIiBmdW5jdGlvbnMsIGZvciBpbnN0YW5jZSBo
YXNTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKCkuCisgICAgICAgIFRoZSBwdWJsaWMgZnVuY3Rpb25z
IGNoZWNrIGVwaGVtZXJhbCBzdGF0dXMgYW5kIHJvdXRlIGFjY29yZGluZ2x5LgorCisgICAgICAg
IEEgcmVsZWFzZSBhc3NlcnRpb24gaW4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpw
b3N0VGFzaygpCisgICAgICAgIGd1YXJhbnRlZXMgdGhhdCB3ZSBuZXZlciBtYWtlIHVzZSBvZiB0
aGUgc3RhdGlzdGljcyBsYXllciBpbiBlcGhlbWVyYWwKKyAgICAgICAgc2Vzc2lvbnMuCisKKyAg
ICAgICAgRWFybHkgcmV0dXJucyBmb3IgZXBoZW1lcmFsIHNlc3Npb25zIGhhcyBiZWVuIHJlbW92
ZWQgaW4gc2V2ZXJhbCBwbGFjZXMuCisgICAgICAgIFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIgbm93IGFjY2VwdHMgYmVpbmcgaW5zdGFudGlhdGVkIGluIGFuCisgICAgICAgIGVwaGVt
ZXJhbCBzZXNzaW9uIGJ1dCBpcyB0b2xkIHdoZXRoZXIgaXQgaXMgYW5kIHNraXBzIGFsbCBzdGF0
aXN0aWNzCisgICAgICAgIGNvbGxlY3Rpb24gZXhjZXB0IHVzZXIgaW50ZXJhY3Rpb24gd2hpY2gg
aXMgbmVlZGVkIHRvIGdhdGUgdGhlCisgICAgICAgIFN0b3JhZ2UgQWNjZXNzIEFQSS4gQSByZWxl
YXNlIGFzc2VydGlvbiBpbgorICAgICAgICBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6ZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oKQorICAgICAgICBtYWtlcyBz
dXJlIHRoYXQgd2UgbmV2ZXIgc3RhcnQgY29sbGVjdGluZyBzdGF0aXN0aWNzIGluIGVwaGVtZXJh
bCBtb2RlLgorCisgICAgICAgIEEgc2VsZWN0aW9uIG9mIHRlc3QgY2FzZXMgaGF2ZSBiZWVuIGFk
ZGVkIHdpdGggYW4gZXBoZW1lcmFsIHNldHRpbmcgYW5kCisgICAgICAgIGEgbmV3IHRlc3QgZnVu
Y3Rpb24gaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKCkgaGFzIGJlZW4gYWRkZWQK
KyAgICAgICAgc28gdGhhdCBsYXlvdXQgdGVzdHMgY2FuIG1ha2Ugc3VyZSB0aGF0IGFuIGVwaGVt
ZXJhbCBzZXR1cCBpcyBydW5uaW5nLgorICAgICAgICBUaGlzIGxhc3QgYml0IGlzIGltcG9ydGFu
dCBzaW5jZSB0ZXN0IGNhc2VzIHdpbGwgbGlrZWx5IHN0aWxsIHBhc3MgaWYgYQorICAgICAgICBy
ZWdyZXNzaW9uIHdlcmUgdG8gbWFrZSB0aGUgdGVzdCBzZXNzaW9uIHBlcnNpc3RlbnQuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0SXNSdW5uaW5nVGVz
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwb3N0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NF
cGhlbWVyYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0VwaGVtZXJhbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lckVwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YXBwbGljYXRp
b25XaWxsVGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJVc2Vy
SW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uRXBoZW1lcmFsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVz
ZXJJbnRlcmFjdGlvbkVwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6aXNQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2xlYXJJbk1lbW9yeUVwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwgY29uc3QpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU2Vzc2lvbjo6cmVjcmVhdGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNTdG9yZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YWRkU2Vzc2lvbik6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwg
Y29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dGb250TG9hZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dDYW52YXNSZWFk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ0NhbnZhc1dy
aXRlT3JNZWFzdXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OmxvZ05hdmlnYXRvckFQSUFjY2Vzc2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6OmxvZ1NjcmVlbkFQSUFjY2Vzc2VkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1N1YnJlc291cmNlTG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dXZWJTb2NrZXRMb2FkaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1VzZXJJbnRlcmFjdGlv
bldpdGhSZWR1Y2VkVGltZVJlc29sdXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVzb3VyY2VMb2FkaW5nRm9yVGVzdGluZyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorCiAyMDIw
LTAyLTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQ
XSBJbXBsZW1lbnQgTW9kZXJuIEVNRSBBUEkgaW4gdGhlIEdQVSBQcm9jZXNzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaAppbmRleCA3OGUyMTZhOTRm
MzljNDA2NGEwZjY1OTA5ZjEwZWQ2MmIwZGE0MzFhLi41OTdlNWMxNDlhMTEyMjRiOWE0MGI4ZTU3
NzI2N2ZkYjk4YTFhMjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmgKQEAgLTk5LDYgKzk5LDggQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRp
c3RpY3MgewogICAgIHVuc2lnbmVkIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1VzZXJJ
bnRlcmFjdGlvbiB7IDAgfTsKICAgICB1bnNpZ25lZCB0aW1lc0FjY2Vzc2VkQXNGaXJzdFBhcnR5
RHVlVG9TdG9yYWdlQWNjZXNzQVBJIHsgMCB9OwogCisgICAgZW51bSBjbGFzcyBJc0VwaGVtZXJh
bCA6IGJvb2wgeyBObywgWWVzIH07CisKICAgICBlbnVtIGNsYXNzIE5hdmlnYXRvckFQSSA6IHVp
bnQ2NF90IHsKICAgICAgICAgQXBwVmVyc2lvbiA9IDEgPDwgMCwKICAgICAgICAgVXNlckFnZW50
ID0gMSA8PCAxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAppbmRleCAxYTI4NGU0NWRkYjNmMTAyMDI2N2M5NTg1ZDcxMWMwOWMzM2JhM2NjLi5mZGU2
MmNmYTU3MTI1ZTg0MDc2YTJjOGNkNGI1MjFhODQxMGU4NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtOTEsNiArOTEsOSBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChibwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
KyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgcG9zdFRhc2so
W3RoaXMsIHZhbHVlXSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkKICAgICAgICAg
ICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHZhbHVlKTsKQEAgLTEwMSw2ICsxMDQsMTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
Ym8KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAorICAgIGlmIChpc0Vw
aGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBwb3N0VGFzayhbdGhpcywgdmFsdWUsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICht
X3N0YXRpc3RpY3NTdG9yZSkKICAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXROb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHZhbHVlKTsKQEAgLTExMiw3ICsxMjAs
MTIgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm8KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpzZXRJc1J1bm5pbmdUZXN0KGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgIAorCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHBvc3RUYXNrKFt0
aGlzLCB2YWx1ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKQogICAgICAgICAg
ICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldElzUnVubmluZ1Rlc3QodmFsdWUpOwpAQCAtMTUxLDEz
ICsxNjQsMTggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlm
eVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKGJvb2wKICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwogfQogCi1XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0
cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0KQorV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mIG5ldHdv
cmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnks
IFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgUmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWwgaXNFcGhlbWVyYWwpCiAgICAgOiBtX25ldHdvcmtT
ZXNzaW9uKG1ha2VXZWFrUHRyKG5ldHdvcmtTZXNzaW9uKSkKICAgICAsIG1fc3RhdGlzdGljc1F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgUHJv
Y2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9T
OjpVdGlsaXR5KSkKICAgICAsIG1fZGFpbHlUYXNrc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhp
cywgJldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cGVyZm9ybURhaWx5VGFza3MpCisg
ICAgLCBtX2lzRXBoZW1lcmFsKGlzRXBoZW1lcmFsKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIC8vIE5vIGRhaWx5IHRhc2tzIG5lZWRlZCBmb3IgZXBo
ZW1lcmFsIHNlc3Npb25zIHNpbmNlIG5vIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBhcmUgY29s
bGVjdGVkLgorICAgIGlmIChpc0VwaGVtZXJhbCA9PSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJ
c0VwaGVtZXJhbDo6WWVzKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIXJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgIHBvc3RUYXNrKFt0aGlz
LCBkYXRhYmFzZUVuYWJsZWQgPSBuZXR3b3JrU2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLmlzSVRQ
RGF0YWJhc2VFbmFibGVkKCksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpLCBzaG91bGRJbmNsdWRl
TG9jYWxob3N0LCBzZXNzaW9uSUQgPSBuZXR3b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKV0gewogICAg
ICAgICAgICAgaWYgKGRhdGFiYXNlRW5hYmxlZCkgewpAQCAtMjAxLDYgKzIxOSw5IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWREZXN0cm95TmV0d29ya1Nlc3Npb24o
KQogCiBpbmxpbmUgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBvc3RUYXNr
KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCiB7CisgICAgLy8gUmVzb3VyY2UgbG9hZCBz
dGF0aXN0aWNzIHNob3VsZCBub3QgYmUgY2FwdHVyZWQgZm9yIGVwaGVtZXJhbCBzZXNzaW9ucy4K
KyAgICBSRUxFQVNFX0FTU0VSVCghaXNFcGhlbWVyYWwoKSk7CisKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIG1fc3RhdGlzdGljc1F1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0gewogICAgICAgICB0
YXNrKCk7CkBAIC0yNjAsNiArMjgxLDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGlmIChpc0VwaGVtZXJhbCgpKSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBwb3N0VGFzayhbdGhpcywgdmFsdWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NT
dG9yZSkKICAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKHZhbHVlKTsKQEAgLTI3MSw2ICsyOTcsMTEgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KGNvbnN0IFJlZ2kKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAorICAg
IGlmIChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9tYWlu
Lmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCiAgICAg
ICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01v
ZGUoZG9tYWluKTsKQEAgLTMyMCw2ICszNTEsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcwog
ICAgIEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BGcmFtZURvbWFpbik7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICBy
ZXR1cm4gaGFzU3RvcmFnZUFjY2Vzc0VwaGVtZXJhbChzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVE
b21haW4sIGZyYW1lSUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCiAg
ICAgcG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9tYWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0
ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCks
IGZyYW1lSUQsIHBhZ2VJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX3N0YXRpc3RpY3NTdG9yZSkgewog
ICAgICAgICAgICAgcG9zdFRhc2tSZXBseShbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTMzNiw2ICszNzAsMTkgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHMKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NFcGhlbWVyYWwoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIEFTU0VSVChpc0VwaGVtZXJhbCgpKTsKKworICAgIGlmIChtX25ldHdvcmtTZXNz
aW9uKSB7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Np
b24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihzdG9yYWdlU2Vzc2lvbi0+aGFzU3RvcmFnZUFjY2VzcyhzdWJGcmFtZURvbWFpbiwgdG9w
RnJhbWVEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwogYm9vbCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0z
NzIsNiArNDE5LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuIHJlcXVl
c3RTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwg
ZnJhbWVJRCwgd2ViUGFnZUlELCB3ZWJQYWdlUHJveHlJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworCiAgICAgYXV0byBzdGF0dXNIYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRl
ZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwg
ZnJhbWVJRCwgd2ViUGFnZUlELCB3ZWJQYWdlUHJveHlJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1N0YXR1cyBzdGF0dXMpIG11
dGFibGUgewogICAgICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgICAgICBjYXNlIFN0b3JhZ2VB
Y2Nlc3NTdGF0dXM6OkNhbm5vdFJlcXVlc3RBY2Nlc3M6CkBAIC00MTMsNiArNDYzLDIzIEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0VwaGVtZXJhbChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNFcGhlbWVy
YWwoKSk7CisKKyAgICBpZiAoIW1fbmV0d29ya1Nlc3Npb24gfHwgIW1fZG9tYWluc1dpdGhFcGhl
bWVyYWxVc2VySW50ZXJhY3Rpb24uY29udGFpbnMoc3ViRnJhbWVEb21haW4pKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vLCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsKKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+IHJlcXVlc3RDb25maXJtYXRpb25Db21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURv
bWFpbiwgZnJhbWVJRCwgd2ViUGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIG11dGFibGUgeworICAg
ICAgICBpZiAodXNlckRpZEdyYW50QWNjZXNzKQorICAgICAgICAgICAgZ3JhbnRTdG9yYWdlQWNj
ZXNzRXBoZW1lcmFsKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgZnJhbWVJRCwgd2Vi
UGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246OlllcywgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bjo6WWVzKTsKKyAgICB9OworCisgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3Mo
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSh3ZWJQYWdl
UHJveHlJRCwgZnJhbWVJRCwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluKSwgV1RGTW92
ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVu
ZXIoUmVnaXN0cmFibGVEb21haW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgUmVnaXN0cmFibGVEb21haW4mJiBvcGVuZXJEb21haW4p
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTQyNiw2ICs0OTMsMTYgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
VW5kZXJPcGVuZXIoUmVnaXN0cmFibGUKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJFcGhlbWVy
YWwoUmVnaXN0cmFibGVEb21haW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgUmVnaXN0cmFibGVEb21haW4mJiBvcGVuZXJEb21haW4p
Cit7CisgICAgQVNTRVJUKGlzRXBoZW1lcmFsKCkpOworCisgICAgaWYgKG1fbmV0d29ya1Nlc3Np
b24pIHsKKyAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+
Z3JhbnRTdG9yYWdlQWNjZXNzKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
V1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCk7CisgICAg
fQorfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0
V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQs
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTQ0NSw2ICs1MjIsMjAgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0VwaGVtZXJhbChjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChpc0VwaGVtZXJhbCgp
KTsKKworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKSB7CisgICAgICAgIGlmIChhdXRvKiBzdG9y
YWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKSB7
CisgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+Z3JhbnRTdG9yYWdlQWNjZXNzKHN1YkZyYW1l
RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpZZXMsIHByb21wdFdhc1No
b3duKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjb21wbGV0
aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8sIHByb21wdFdhc1Nob3duKTsK
K30KKwogU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTQ5NCw2ICs1ODUsOSBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZShUaGlyZFBhcnR5QwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
fQogCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHBvc3RU
YXNrKFt0aGlzLCBibG9ja2luZ01vZGVdKCkgewogICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0
b3JlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTA2LDYgKzYwMCwxMSBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGUoRmlyc3RQYQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBp
ZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgcG9zdFRhc2soW3RoaXMsIG1vZGUsIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChtX3N0YXRpc3RpY3NTdG9yZSkgewogICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUt
PnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1vZGUpOwpAQCAtNTQ0LDcgKzY0
Myw4IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9y
YWdlQWNjZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKCkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIGZsdXNoQW5kRGVzdHJveVBlcnNpc3RlbnRTdG9yZSgpOwor
ICAgIGlmICghaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgZmx1c2hBbmREZXN0cm95UGVyc2lzdGVu
dFN0b3JlKCk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJm
b3JtRGFpbHlUYXNrcygpCkBAIC01ODksNiArNjg5LDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIC8vIFVzZXIgaW50
ZXJhY3Rpb25zIG5lZWQgdG8gYmUgbG9nZ2VkIGZvciBlcGhlbWVyYWwgc2Vzc2lvbnMgdG8gc3Vw
cG9ydCB0aGUgU3RvcmFnZSBBY2Nlc3MgQVBJLgorICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAg
ICAgICByZXR1cm4gbG9nVXNlckludGVyYWN0aW9uRXBoZW1lcmFsKGRvbWFpbiwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworCiAgICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFp
bi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBpbm5lckNvbXBsZXRpb25IYW5kbGVy
ID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKQEAgLTYwMSw2ICs3MDUsMTQgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9
KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRl
cmFjdGlvbkVwaGVtZXJhbChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGlz
RXBoZW1lcmFsKCkpOworCisgICAgbV9kb21haW5zV2l0aEVwaGVtZXJhbFVzZXJJbnRlcmFjdGlv
bi5hZGQoZG9tYWluKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3Jh
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTYxNiw3ICs3
MjgsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0Nyb3NzU2l0
ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oY29uc3QgUmUKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAKKworICAgIGlmIChpc0Vw
aGVtZXJhbCgpKQorICAgICAgICByZXR1cm4gY2xlYXJVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwo
ZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKICAgICBwb3N0VGFzayhbdGhp
cywgZG9tYWluID0gZG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGlubmVy
Q29tcGxldGlvbkhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtNjI5LDEwICs3NDQsMjEgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWkKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uRXBoZW1lcmFsKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQoaXNFcGhlbWVyYWwoKSk7CisKKyAgICBtX2RvbWFpbnNXaXRoRXBo
ZW1lcmFsVXNlckludGVyYWN0aW9uLnJlbW92ZShkb21haW4pOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRV
c2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJl
dHVybiBoYXNIYWRVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoZG9tYWluLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisKICAgICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9tYWluLmlz
b2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSgpIG11dGFibGUgewogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9IG1fc3Rh
dGlzdGljc1N0b3JlID8gbV9zdGF0aXN0aWNzU3RvcmUtPmhhc0hhZFVzZXJJbnRlcmFjdGlvbihk
b21haW4sIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKSA6IGZhbHNlOwogICAgICAgICBwb3N0
VGFza1JlcGx5KFtoYWRVc2VySW50ZXJhY3Rpb24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC02NDEsNiArNzY3LDEzIEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUmVnaXN0cmFibGVEb21hCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNFcGhlbWVyYWwoKSk7CisKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihtX2RvbWFpbnNXaXRoRXBoZW1lcmFsVXNlckludGVyYWN0aW9uLmNv
bnRhaW5zKGRvbWFpbikpOworfQorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6c2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBz
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTc0Niw3ICs4NzksMTIgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKENvbXBsZXRpb25IYW5kbGUKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojppc1ByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAKKworICAgIGlmIChpc0VwaGVtZXJhbCgp
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5
KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CiAgICAgICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZSA9IG1fc3RhdGlzdGljc1N0
b3JlID8gbV9zdGF0aXN0aWNzU3RvcmUtPmlzUHJldmFsZW50UmVzb3VyY2UoZG9tYWluKSA6IGZh
bHNlOwogICAgICAgICBwb3N0VGFza1JlcGx5KFtpc1ByZXZhbGVudFJlc291cmNlLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAt
OTI2LDYgKzEwNjQsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2No
ZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShDb21wbGV0aW9uSGFuZAogCiB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dChTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoaXNFcGhl
bWVyYWwoKSkKKyAgICAgICAgcmV0dXJuIGNsZWFySW5NZW1vcnlFcGhlbWVyYWwoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzaG91bGRH
cmFuZGZhdGhlciwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fcGVyc2lzdGVudFN0b3JhZ2UpCkBAIC05Njcs
NiArMTEwOCwxNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2NoZWR1
bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChXYWxsVGltZQogICAgIHNjaGVkdWxlQ2xlYXJJ
bk1lbW9yeUFuZFBlcnNpc3RlbnQoc2hvdWxkR3JhbmRmYXRoZXIsIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFySW5NZW1v
cnlFcGhlbWVyYWwoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIG1fZG9tYWluc1dpdGhFcGhlbWVyYWxVc2VySW50ZXJhY3Rpb24uY2xlYXIoKTsK
KyAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZUFsbFN0b3Jh
Z2VBY2Nlc3MoKTsKKyAgICAKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlv
bihTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTA3MSw2ICsx
MjIxLDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNldFBhcmFt
ZXRlcnNUb0RlZmF1bHRWYWx1ZXMoQ29tcGxldGlvbkhhCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAorICAgIGlmIChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBwb3N0VGFzayhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKQogICAgICAgICAgICAgbV9zdGF0
aXN0aWNzU3RvcmUtPnJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDQxMjI2MzQxOTIzZTY0
YjdmMDQ4ODkzMDAyMDdhY2QwM2U0ZWMwMTYuLmVmMWI4MTA5YmFjNGUxOWFmMWYwZTM3NmQwYTUy
ZjljZTNjY2QyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CkBAIC05OCw5ICs5OSw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjsKIAotICAgIHN0YXRpYyBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
PiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIFNob3VsZEluY2x1ZGVMb2NhbGhvc3Qgc2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCkKKyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZT4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29uc3Qg
U3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNsdWRlTG9j
YWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKG5ldHdvcmtTZXNzaW9u
LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBzaG91bGRJbmNsdWRlTG9jYWxob3N0
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZShuZXR3b3JrU2Vzc2lvbiwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwg
c2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgaXNFcGhlbWVyYWwpKTsKICAgICB9CiAKICAgICB+V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CkBAIC0yNTEsNiArMjUyLDcgQEAgc3RydWN0
IFRoaXJkUGFydHlEYXRhIHsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lz
dGVudChTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxU
aW1lIG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGNsZWFySW5NZW1vcnlFcGhlbWVyYWwoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgc2V0VGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yODksMTUgKzI5MSwyNiBAQCBzdHJ1Y3QgVGhp
cmRQYXJ0eURhdGEgewogICAgIHZvaWQgYWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhp
cmRQYXJ0eURhdGE+JiYpPiYmKTsKICAgICB2b2lkIHN1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc3VtZSgpOworICAgIAorICAgIGJvb2wgaXNFcGhlbWVy
YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpZZXM7IH07CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwgY29uc3Qg
U3RyaW5nJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCk7CisgICAgZXhwbGljaXQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiwgU2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNF
cGhlbWVyYWwpOwogCiAgICAgdm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7
CiAgICAgc3RhdGljIHZvaWQgcG9zdFRhc2tSZXBseShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7
CiAKICAgICB2b2lkIHBlcmZvcm1EYWlseVRhc2tzKCk7CiAKKyAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3NFcGhlbWVyYWwoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsK
KyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJFcGhlbWVyYWwoRG9tYWlu
SW5OZWVkT2ZTdG9yYWdlQWNjZXNzJiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lcklE
LCBPcGVuZXJEb21haW4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NFcGhlbWVyYWwo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisKKyAgICB2b2lkIGxvZ1VzZXJJ
bnRlcmFjdGlvbkVwaGVtZXJhbChjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbChj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Cisg
ICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIFN0b3JhZ2VB
Y2Nlc3NTdGF0dXMgc3RvcmFnZUFjY2Vzc1N0YXR1cyhjb25zdCBTdHJpbmcmIHN1YkZyYW1lUHJp
bWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZVByaW1hcnlEb21haW4pOwogCiAgICAg
dm9pZCBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0ZW50U3RvcmUoKTsKQEAgLTMwOSw2ICszMjIsOSBA
QCBwcml2YXRlOgogCiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlPiBtX2RhaWx5VGFza3NUaW1lcjsKIAorICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M6OklzRXBoZW1lcmFsIG1faXNFcGhlbWVyYWwgeyBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6Tm8gfTsKKyAgICBIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPiBtX2RvbWFpbnNXaXRoRXBoZW1lcmFsVXNlckludGVyYWN0aW9uOworCiAgICAgYm9v
bCBtX2hhc1NjaGVkdWxlZFByb2Nlc3NTdGF0cyB7IGZhbHNlIH07CiAKICAgICBib29sIG1fZmly
c3ROZXR3b3JrUHJvY2Vzc0NyZWF0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCA2Zjk3ZTMyYTdmNWYxMGRjYzA2OTQwZjE3OTI4ZWNkYTAzNWRhMGI5Li5jM2Mw
OGE5YmVmMTE1MmY0N2Q1MzMwZWRiZDc3Njk4YjYyYmJiNzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtODAzLDYgKzgwMyw4IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NV
cGRhdGVkKFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmIHN0YXRpc3RpY3MpCiB7CiAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oKSkgewor
ICAgICAgICBpZiAobmV0d29ya1Nlc3Npb24tPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAg
ICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVk
KFdURk1vdmUoc3RhdGlzdGljcykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNWQxMTZmOWMzODI5Nzc2OTYzMjAzZTEz
YjNjZDM0NTJjZmIzNmUyNy4uYTkxNGZjMDFiNzMyMGJmMGRiM2QxMDM3N2IwN2M3ZTE3ODM3ZjIy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTEyMDgsNiArMTIwOCwxOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgIH0K
IH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1l
cmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nl
c3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+aXNFcGhlbWVyYWwoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmlu
ZGV4IDM0MmQ2YTZiZTkzMjY1NDI1ZDVkZDI5ZDc4OWI2ZTUxODE4Y2UzNDEuLjc2OTU5NTg1NTgy
OTMwMmExYmVkOTU5NjQxMjgxM2YzMzM1NzJmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI0OCw2ICsyNDgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwg
Ym9vbCk7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50
KGJvb2wpOwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6
OlNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJmQp
OworICAgIHZvaWQgaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKICAgICB2b2lkIHNl
dFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vz
c2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklELCBjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBj
OGQwMDhmZDkxZWVmYzAyZDdiZTFkYjVlOGE0N2JiMzkzODAzNjdkLi5lYmViYWRkZmJkMmUwMzZk
ZDAyZjRlZmJmOTk2NDU2MTNlYjI4MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTk3LDYgKzk3LDcg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIE1lcmdl
U3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b3BGcmFtZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9t
YWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQ
cmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92
ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4g
KCkgQXN5bmMKICAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
KSAtPiAoKSBBc3luYworICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3luYwogICAgIEhh
ZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24p
IEFzeW5jCiAgICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0
aW9uKSBBc3luYwogICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRV
c2VySW50ZXJhY3Rpb24pIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDkyYWIxYmQ1OGVkY2Y4MDIyMjVhMDEyYzY4OTYxZmE5
ZGIyM2ZlZWEuLmFlY2I1NmNkYzU0MzU2ZDIyZWM0YTExYzRkNmE4MTZmOGJiMTZlNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0x
NjQsMTIgKzE2NCw5IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQogICAgIGlmIChtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FKDE5MzcyOCk6IFN1cHBvcnQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBmb3IgZXBoZW1lcmFsIHNlc3Npb25zLCB0b28uCi0gICAgaWYg
KG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3Jl
YXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIG1fc2hvdWxkSW5j
bHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7Ci0gICAgbV9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soW10geyB9KTsKKyAgICBt
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmNyZWF0ZSgqdGhpcywgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBtX3Nob3Vs
ZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsIChtX3Nlc3Npb25JRC5p
c0VwaGVtZXJhbCgpID8gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6OlllcyA6
IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpObykpOworICAgIGlmICghbV9z
ZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soW10geyB9KTsKIAogICAgIGlmIChtX2VuYWJs
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPT0gRW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZTo6WWVzKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgW10geyB9KTsKQEAgLTE4
Miw5ICsxNzksMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoYm9vbCBlbmFibGUpCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJl
c291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwot
ICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIG1f
c2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7Ci0gICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VM
b2FkU3RhdGlzdGljcywgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNF
cGhlbWVyYWw6Ok5vKSk7CiAgICAgZm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3RpY3NTZXR0aW5n
cygpOworICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6Zm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTZXR0aW5ncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCA0ZTA0M2MwMDU1ODhiZjc4NjBjMjc0ZjNj
ZDk4ZmU3OGZjZjc0NjhkLi43MGNmNmEzNTc3ZDI5ZDMwOWE5Y2U3ZWExMTI0YWI4NGVmZmYxMTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTcxLDYgKzcxLDE3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVm
IGRhCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZW5hYmxlKTsKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0
YXRpc3RpY3NFcGhlbWVyYWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1bmN0aW9u
IGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRXBoZW1lcmFsKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oYm9vbCBpc0VwaGVt
ZXJhbCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCwgY29udGV4dCk7
CisgICAgfSk7CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCBjb250ZXh0KTsK
KyNlbmRpZgorfQorCiBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpCiB7CiAgICAg
cmV0dXJuIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IGU4NmE2ZjkwNzllYTU3OTk5ZmY3ZmY1NDZlODI4
OTU5NzU5NGE5N2YuLmQyYTVlN2ExNjMyOGRiYzJmYzMzYWU2ZWYyMzYyNmRhZGQwNTVkOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oCkBAIC00NSw2ICs0NSw4IEBAIFdLX0VYUE9SVCBXS0hUVFBDb29raWVTdG9yZVJl
ZiBXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tXZWJzaXRlRGF0CiAKIFdL
X0VYUE9SVCBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwordHlwZWRlZiB2
b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1bmN0aW9uKShib29s
IGlzRXBoZW1lcmFsLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzRXBoZW1lcmFsKFdLV2Vic2l0ZURhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1
bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc0RlYnVnTW9kZUZ1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxlcihXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc0RlYnVnTW9kZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGQ0N2VmMmE1YTg4MmU3MGM0NzFjNTNiMzI5MWU4MGQwNWMwZjU1MjIu
LjhlOWRkM2FmYmUxOWRlNmY2Zjc4OTBkZTQ4YjFmMzA3MzRkM2U2NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cApAQCAtOTcyLDYgKzk3MiwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2VzcwogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUoc2Vzc2lvbklELCBkZWJ1Z01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIWNh
blNlbmRNZXNzYWdlKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OklzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChzZXNz
aW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKQEAgLTEyMTAsNiAr
MTIyMCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU3luY0FsbENvb2tpZXMoKQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZFNlc3Npb24oUmVmPFdlYnNpdGVEYXRhU3Rv
cmU+JiYgc3RvcmUpCiB7CisgICAgV1RGUmVwb3J0QmFja3RyYWNlKCk7CisKICAgICBpZiAoY2Fu
U2VuZE1lc3NhZ2UoKSkKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFk
ZFdlYnNpdGVEYXRhU3RvcmUgeyBzdG9yZS0+cGFyYW1ldGVycygpIH0sIDApOwogICAgIGF1dG8g
c2Vzc2lvbklEID0gc3RvcmUtPnNlc3Npb25JRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAwMDA0ZDg4OGJm
ZWM0ZWExYWI5YTMzNTMzZmMxMTczNzZiZWQ0NzliLi5mMTEwMGU1YjlkN2RhNDhiOWE0Zjk3NjUz
MDdiMjM0ZDY4MzU4ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTU3LDYgKzE1Nyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNl
c3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFBydW5lRW50cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCwgc2l6ZV90IHBydW5lVGFyZ2V0
Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGlzUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFS
ZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJj
ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlcihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgT3B0
aW9uU2V0PFdlYkNvcmU6OkNyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+LCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzNzc0OTc1OTI2MWU1ZDZiYWUz
ZDkzZjkyMDdlYjc3MDZkMTg5YWM2Li5hNWRiNGFkM2I2YjE3ZmU2NTE1MmJkYjhmMTI1NzA4ZTI4
OGI5MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTUx
MjksNyArNTEyOSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICAgICBhdXRvIHVzZXJJ
bml0aWF0ZWRBY3Rpdml0eSA9IHByb2Nlc3MtPnVzZXJJbml0aWF0ZWRBY3Rpdml0eShuYXZpZ2F0
aW9uQWN0aW9uRGF0YS51c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllcik7CiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBsb2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVS
TChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgpKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25z
ZS51cmwoKSwgISF1c2VySW5pdGlhdGVkQWN0aXZpdHkpOworICAgIGlmICghc2Vzc2lvbklEKCku
aXNFcGhlbWVyYWwoKSkKKyAgICAgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJM
KCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJs
KCksICEhdXNlckluaXRpYXRlZEFjdGl2aXR5KTsKICNlbmRpZgogCiAgICAgaWYgKG1fcG9saWN5
Q2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAwMzBjZjE0MDJiODY3ZmZiNTZkMmVmNDI4Mjkx
YzBkNWFlN2Y3YTZmLi40MTQzYmM3MzNiOTA4ZmUyM2U0YTMyM2NiM2NmZGU0M2FhYzRjNjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcApAQCAtMjAwNiw3ICsyMDA2LDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0
b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKCkgY29uc3QKIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgaWYgKG1fc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkgfHwgZW5hYmxlZCA9PSByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCgpKQorICAgIGlmIChlbmFibGVkID09IHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChlbmFibGVkKSB7CkBAIC0yMDY0LDYg
KzIwNjQsMjcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWdNb2RlKGJvb2wgZW5hYmxlZCwgQ29tcGxldGkKICNlbmRpZgogfQogCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAoreworI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKCFyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZCgpIHx8ICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgeworICAgICAgICBp
ZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkg
eworICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vw
aGVtZXJhbChtX3Nlc3Npb25JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAg
ICAgICAgQVNTRVJUKHByb2Nlc3NQb29scygpLnNpemUoKSA9PSAxKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIEFTU0VSVCghY29tcGxldGlvbkhhbmRsZXIpOwor
I2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisjZW5kaWYKK30KKwogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6Omxv
Z1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDJi
YzQ2NzdhM2IzNTc5MTJiOWJhYmYzY2VhN2E2ZDc2YjczZGY1MDkuLjM2YmIwMThkOWNkZDdiZDNm
ZDUxMDVjZmUyM2JmZjA3NTY1OTkwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTEyMiw2ICsxMjIsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wpOwog
ICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OwogCiAgICAg
dWludDY0X3QgcGVyT3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24tPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOyB9CiAgICAgdWludDY0X3Qg
cGVyVGhpcmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5jcHAKaW5kZXggNDI5NjdhOTI2MzY1Mzc1MjRkNjBlYWJlNzA5MWZl
MDUzMDk1YWQyYS4uZTc5ZTk3NWMxYjhmMDAwMzI5NGZiOTljNDY1MmQxMGU5OWQ1YzE2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZE9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCkBAIC02MSw4ICs2MSw5IEBAIHN0
YXRpYyBib29sIGlzM3h4UmVkaXJlY3QoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiAgICAgcmV0dXJuIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gMzAwICYmIHJlc3BvbnNl
Lmh0dHBTdGF0dXNDb2RlKCkgPD0gMzk5OwogfQogCi1XZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKQotICAgIDogbV9ub3RpZmljYXRpb25UaW1lcigqdGhp
cywgJldlYlJlc291cmNlTG9hZE9ic2VydmVyOjp1cGRhdGVDZW50cmFsU3RhdGlzdGljc1N0b3Jl
KQorV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OldlYlJlc291cmNlTG9hZE9ic2VydmVyKFJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKQorICAgIDogbV9pc0Vw
aGVtZXJhbChpc0VwaGVtZXJhbCkKKyAgICAsIG1fbm90aWZpY2F0aW9uVGltZXIoKnRoaXMsICZX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6dXBkYXRlQ2VudHJhbFN0YXRpc3RpY3NTdG9yZSkKIHsK
IH0KIApAQCAtOTAsNiArOTEsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAgIAogUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4pCiB7CisgICAgUkVMRUFTRV9BU1NFUlQoIWlzRXBoZW1lcmFsKCkpOworCiAgICAg
cmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuc3VyZShkb21haW4sIFsmZG9tYWluXSB7
CiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKGRvbWFpbik7CiAgICAgfSku
aXRlcmF0b3ItPnZhbHVlOwpAQCAtMTQwLDYgKzE0Myw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXI6OmNsZWFyU3RhdGUoKQogCiB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjps
b2dGb250TG9hZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZmFtaWx5
TmFtZSwgYm9vbCBsb2FkU3RhdHVzKQogeworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAg
ICByZXR1cm47CisKICNpZiBFTkFCTEUoV0VCX0FQSV9TVEFUSVNUSUNTKQogICAgIFJlZ2lzdHJh
YmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluIHsgZG9jdW1lbnQudXJsKCkgfTsKICAgICBhdXRv
JiBzdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4ocmVnaXN0cmFibGVEb21haW4pOwpAQCAtMTY1LDYgKzE3MSw5IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OmxvZ0ZvbnRMb2FkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nCiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dDYW52YXNS
ZWFkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKIHsKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkK
KyAgICAgICAgcmV0dXJuOworCiAjaWYgRU5BQkxFKFdFQl9BUElfU1RBVElTVElDUykKICAgICBS
ZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CiAg
ICAgYXV0byYgc3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKQEAgLTE3OSw2ICsxODgsOSBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dDYW52YXNSZWFkKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCkKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nQ2FudmFzV3JpdGVPck1l
YXN1cmUoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHRXcml0dGVu
KQogeworICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFC
TEUoV0VCX0FQSV9TVEFUSVNUSUNTKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxl
RG9tYWluIHsgZG9jdW1lbnQudXJsKCkgfTsKICAgICBhdXRvJiBzdGF0aXN0aWNzID0gZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4p
OwpAQCAtMTk4LDYgKzIxMCw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ0Nh
bnZhc1dyaXRlT3JNZWFzdXJlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwKICAgICAKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ05hdmlnYXRvckFQSUFjY2Vzc2VkKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9y
QVBJIGZ1bmN0aW9uTmFtZSkKIHsKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0
dXJuOworCiAjaWYgRU5BQkxFKFdFQl9BUElfU1RBVElTVElDUykKICAgICBSZWdpc3RyYWJsZURv
bWFpbiByZWdpc3RyYWJsZURvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CiAgICAgYXV0byYgc3Rh
dGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJl
Z2lzdHJhYmxlRG9tYWluKTsKQEAgLTIxOSw2ICsyMzQsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjpsb2dOYXZpZ2F0b3JBUElBY2Nlc3NlZChjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQsCiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTY3JlZW5BUElBY2Nl
c3NlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OlNjcmVlbkFQSSBmdW5jdGlvbk5hbWUpCiB7CisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisg
ICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShXRUJfQVBJX1NUQVRJU1RJQ1MpCiAgICAgUmVn
aXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4geyBkb2N1bWVudC51cmwoKSB9OwogICAg
IGF1dG8mIHN0YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJs
ZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yNDAsNiArMjU4LDkgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU2NyZWVuQVBJQWNjZXNzZWQoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50LCBjb24KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVz
b3VyY2VMb2FkaW5nKGNvbnN0IEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBu
ZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBGZXRj
aERlc3RpbmF0aW9uSXNTY3JpcHRMaWtlIGlzU2NyaXB0TGlrZSkKIHsKKyAgICBpZiAoaXNFcGhl
bWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKGZyYW1lLT5wYWdlKCkpOwog
CiAgICAgaWYgKCFmcmFtZSkKQEAgLTI5NSw2ICszMTYsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxvYWRpbmcoY29uc3QgRnJhbWUqIGZyYW1lLCBjb25z
dCBSZQogCiB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dXZWJTb2NrZXRMb2FkaW5n
KGNvbnN0IFVSTCYgdGFyZ2V0VVJMLCBjb25zdCBVUkwmIG1haW5GcmFtZVVSTCkKIHsKKyAgICBp
ZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byB0YXJnZXRIb3N0
ID0gdGFyZ2V0VVJMLmhvc3QoKTsKICAgICBhdXRvIG1haW5GcmFtZUhvc3QgPSBtYWluRnJhbWVV
UkwuaG9zdCgpOwogICAgIApAQCAtMzMwLDEwICszNTQsMTIgQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihj
b25zdAogCiAgICAgbV9sYXN0UmVwb3J0ZWRVc2VySW50ZXJhY3Rpb25NYXAuc2V0KHRvcEZyYW1l
RG9tYWluLCBuZXdUaW1lKTsKIAotICAgIGF1dG8mIHN0YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7Ci0gICAgc3Rh
dGlzdGljcy5oYWRVc2VySW50ZXJhY3Rpb24gPSB0cnVlOwotICAgIHN0YXRpc3RpY3MubGFzdFNl
ZW4gPSBuZXdUaW1lOwotICAgIHN0YXRpc3RpY3MubW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUgPSBuZXdUaW1lOworICAgIGlmICghaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBhdXRvJiBz
dGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4o
dG9wRnJhbWVEb21haW4pOworICAgICAgICBzdGF0aXN0aWNzLmhhZFVzZXJJbnRlcmFjdGlvbiA9
IHRydWU7CisgICAgICAgIHN0YXRpc3RpY3MubGFzdFNlZW4gPSBuZXdUaW1lOworICAgICAgICBz
dGF0aXN0aWNzLm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gbmV3VGltZTsKKyAgICB9
CiAKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBvcGVuZXIgPSBmcmFtZS0+bG9hZGVyKCkub3BlbmVyKCkpIHsKQEAgLTM3Miw2ICsz
OTgsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dVc2VySW50ZXJhY3Rpb25X
aXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OmxvZ1N1YnJlc291cmNlTG9hZGluZ0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGZpcnN0UGFydHlEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0aGlyZFBh
cnR5RG9tYWluLCBib29sIHNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uKQogeworICAgIGlmIChp
c0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0
aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odGhpcmRQ
YXJ0eURvbWFpbik7CiAgICAgYXV0byBsYXN0U2VlbiA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6
OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFdhbGxUaW1lOjpub3coKSk7CiAgICAgdGFyZ2V0U3RhdGlz
dGljcy5sYXN0U2VlbiA9IGxhc3RTZWVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIu
aAppbmRleCBjODA5MmY0YTBiN2MxYzE1ZTE2YTlmNzYwNzMzNjZlODU3NjFkM2JiLi5lNjJhYTJh
ZmU4MDg1MDQ5N2Q4ODRkNTM2ZDA4ZDUwODdkMTYxMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzgsNyArMzks
NyBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAg
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKTsKKyAgICBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcihX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAgICAgfldlYlJl
c291cmNlTG9hZE9ic2VydmVyKCk7CiAKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhj
b25zdCBXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgbmV3
UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSwgRmV0Y2hEZXN0aW5hdGlvbklzU2NyaXB0TGlrZSkgZmluYWw7CkBAIC02OCw2ICs2OSwxMCBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiB0
YWtlU3RhdGlzdGljcygpOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5l
cihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzLCBXZWJQYWdlJiBvcGVuZXJQYWdlLCBXZWJDb3JlOjpEb2N1bWVudCYgb3BlbmVyRG9j
dW1lbnQpOwogCisgICAgYm9vbCBpc0VwaGVtZXJhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNFcGhl
bWVyYWwgPT0gV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Olll
czsgfQorCisgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWwg
bV9pc0VwaGVtZXJhbCB7IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1l
cmFsOjpObyB9OworCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7CiAg
ICAgSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgV1RGOjpXYWxsVGltZT4gbV9s
YXN0UmVwb3J0ZWRVc2VySW50ZXJhY3Rpb25NYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCAzZTVhMTZkMTcwMTUzNzM0MTRhYWFhNmVmYjFkYjg2NWVlZmI3
MTRkLi41ZjA0ZWI5YWZjYjY0ZmY0OTg4NDFhNDZhNDcxNzE0OTcyZWM2OWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00ODksOCArNDg5LDggQEAgdm9pZCBX
ZWJQcm9jZXNzOjpzZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycyYmIHAKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAgICAgbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gcGFyYW1ldGVycy50aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlOwotICAgIGlmIChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkICYmICFwYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0VwaGVtZXJhbCgpICYm
ICFSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkSWZFeGlzdHMoKSkKLSAgICAgICAgUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNldFNoYXJlZCgqbmV3IFdlYlJlc291cmNlTG9hZE9ic2VydmVyKTsK
KyAgICBpZiAocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCAmJiAhUmVz
b3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCisgICAgICAgIFJlc291cmNlTG9h
ZE9ic2VydmVyOjpzZXRTaGFyZWQoKm5ldyBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcihwYXJhbWV0
ZXJzLnNlc3Npb25JRC5pc0VwaGVtZXJhbCgpID8gV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljczo6SXNFcGhlbWVyYWw6OlllcyA6IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6
OklzRXBoZW1lcmFsOjpObykpOwogI2VuZGlmCiAKICAgICByZXNldFBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcyhXVEZNb3ZlKHBhcmFtZXRlcnMucGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
KSk7CkBAIC0xNjUxLDEyICsxNjUxLDEyIEBAIFN0b3JhZ2VBcmVhTWFwKiBXZWJQcm9jZXNzOjpz
dG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllcikgY29uCiAKIHZv
aWQgV2ViUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFi
bGVkKQogewotICAgIGlmIChXZWJDb3JlOjpEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgPT0gZW5hYmxlZCB8fCAobV9zZXNzaW9uSUQgJiYg
bV9zZXNzaW9uSUQtPmlzRXBoZW1lcmFsKCkpKQorICAgIGlmIChXZWJDb3JlOjpEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgPT0gZW5hYmxl
ZCkKICAgICAgICAgcmV0dXJuOwogICAgIFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZW5hYmxlZCk7CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoZW5hYmxlZCAmJiAhUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhpc3RzKCkpCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNl
TG9hZE9ic2VydmVyOjpzZXRTaGFyZWQoKm5ldyBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcik7Cisg
ICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRTaGFyZWQoKm5ldyBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcihtX3Nlc3Npb25JRCAmJiBtX3Nlc3Npb25JRC0+aXNFcGhlbWVy
YWwoKSA/IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpZZXMg
OiBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6Tm8pKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggODliYzE4N2MwYzQyZDQ2MGQwMDUwMTQxMTE4NmUyZjEwZDY0NmU1Ny4uNDg4ZGU2OWJk
Yzg4YTE1NGZlNGRiZTFhZmRhNGQ2ZWNkNWMyN2Q3MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMC0wMi0yOCAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOiBFbmFibGUgY29va2llIGJsb2NraW5nIGFuZCB0aGUgU3RvcmFnZSBBY2Nl
c3MgQVBJIGluIGVwaGVtZXJhbCBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Mzk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDcz
MTY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgbWFqb3JpdHkgb2YgdGhlIGNoYW5nZXMgaW4gV1RSOjpUZXN0Q29udHJvbGxlciBpcyAocGFy
dGlhbGx5KSBmaXhpbmcgYSBidWcKKyAgICAgICAgd2hlcmUgdGhlIFRlc3RSdW5uZXIgd291bGQg
c3RhdGljYWxseSB1c2UgdGhlIGRlZmF1bHQgd2Vic2l0ZSBkYXRhc3RvcmUgaW5zdGVhZAorICAg
ICAgICBvZiB0aGUgd2Vic2l0ZSBkYXRhIHN0b3JlIGNvbmZpZ3VyZSBmb3IgdGhlIHBhZ2UuIFRo
aXMgd29ya2VkIGZvciBwZXJzaXN0ZW50CisgICAgICAgIHN0b3JhZ2UgdGVzdGluZyBidXQgbm90
IGZvciBlcGhlbWVyYWwgc2Vzc2lvbnMgd2hpY2ggaXMgd2hhdCB0aGlzIHBhdGNoIGlzIGFsbAor
ICAgICAgICBhYm91dC4gVGhlIHByZXZpb3VzIFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0
b3JlKCkgaXMgbm93IGNhbGxlZAorICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNp
dGVEYXRhU3RvcmUoKSBhbmQgdGhlIG5ldworICAgICAgICBUZXN0Q29udHJvbGxlcjo6d2Vic2l0
ZURhdGFTdG9yZSgpIHJldHVybnMgdGhlIGNvbmZpZ3VyZWQgd2Vic2l0ZSBkYXRhIHN0b3JlLgor
ICAgICAgICBNb3N0IG9mIHRoZSB1c2Ugb2YgdGhlIGRlZmF1bHQgd2Vic2l0ZSBkYXRhIHN0b3Jl
IHNob3VsZCBwcm9iYWJseSBjaGFuZ2UgYnV0CisgICAgICAgIHRoYXQncyBub3QgcmVhbGx5IGZv
ciB0aGlzIHBhdGNoIHRvIGRlYWwgd2l0aC4gSSBkaWQgaG93ZXZlciBtb3ZlIGFsbCBvZgorICAg
ICAgICByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MnIHVzZSB0byB0aGUgbmV3IFRlc3RDb250cm9s
bGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkuCisKKyAgICAgICAgQSBuZXcgVGVzdFJ1bm5lciBmdW5j
dGlvbiB3YXMgYWRkZWQ6IGlzU3RhdGlzdGljc0VwaGVtZXJhbCgpCisgICAgICAgIEl0IGFsbG93
cyB0ZXN0IGNhc2VzIHRvIHF1ZXJ5IHRoZSBlcGhlbWVyYWwgc3RhdHVzIG9mIHJlc291cmNlIGxv
YWQgc3RhdGlzdGljcy4KKworICAgICAgICBPbmUgcHJvYmxlbSB0aGF0IGlzIG1pdGlnYXRlZCBp
biB0aGlzIHBhdGNoIGJ1dCBub3QgZnVsbHkgZml4ZWQgaXMgdGhhdCBmb3IKKyAgICAgICAgQ29j
b2EgcGxhdGZvcm1zLCB0aGUgVGVzdFJ1bm5lciBzZXRzIHVwIHR3byBlcGhlbWVyYWwgc2Vzc2lv
bnMsIG9uY2UgaW4KKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3Vy
YXRpb24oKSB2aWEgQyBBUEkgCisgICAgICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRXZWJzaXRl
RGF0YVN0b3JlKCksIGFuZCB0aGVuIGFnYWluIGluIAorICAgICAgICBUZXN0Q29udHJvbGxlckNv
Y29hJ3MgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9uKCkgdmlhIENvY29hIEFQSQorICAg
ICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmVwaGVtZXJhbFdl
YnNpdGVEYXRhU3RvcmVdLgorICAgICAgICBJIHRyaWVkIHJlbW92aW5nIHRoZSBsYXR0ZXIgc2lu
Y2Ugb25lIHNlc3Npb24gZm9yIGFsbCBwbGF0Zm9ybXMgc2hvdWxkIGJlCisgICAgICAgIEVub3Vn
aCBidXQgZ290IGJyb2tlbiBiZWhhdmlvciBhcyBhIHJlc3VsdC4gU28gbm93IGJvdGggYXJlIHN0
aWxsIHRoZXJlCisgICAgICAgIGFuZCBib3RoIGVuYWJsZSByZXNvdXJjZSBsb2FkIHN0YXRpc3Rp
Y3MuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmlzU3RhdGlzdGlj
c0VwaGVtZXJhbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25z
aXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVT
eW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUFkanVzdENvbnRleHQpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucyk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjbGVhckRPTUNhY2hlKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmNsZWFyRE9NQ2FjaGVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNsZWFySW5kZXhlZERhdGFiYXNlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpjbGVhckxvY2FsU3RvcmFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpo
YXNET01DYWNoZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb21DYWNoZVNpemUp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0VuYWJsZWQpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzRXBoZW1lcmFsKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3Rp
Y3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNz
TWVyZ2VTdGF0aXN0aWMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNl
dFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJl
c291cmNlVW5kZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24pOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc09ubHlJbkRh
dGFiYXNlT25jZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNz
R3JhbmRmYXRoZXJlZCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc1N0YXRpc3Rp
Y3NHcmFuZGZhdGhlcmVkKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFVzZUlU
UERhdGFiYXNlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NT
dWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbik6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzQ3Jvc3NTaXRlTG9h
ZFdpdGhMaW5rRGVjb3JhdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcyk6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tp
bmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc1N1Ym1pdFRlbGVt
ZXRyeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpzZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRh
UmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc05vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0dy
YW5kZmF0aGVyaW5nVGltZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0
aXN0aWNzTWF4U3RhdGlzdGljc0VudHJpZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6c2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSk6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBl
cnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3Vycyk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NEZWxldGVDb29raWVzRm9ySG9zdCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NIYXNMb2NhbFN0b3Jh
Z2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0NhY2hlTWF4
QWdlQ2FwKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omhhc1N0YXRpc3RpY3NJc29s
YXRlZFNlc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGlj
c1Nob3VsZERvd25ncmFkZVJlZmVycmVyKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjbGVhckFk
Q2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpp
bnZva2UpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjppbml0aWFsaXpl
V2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1DcmVhdGVXZWJWaWV3KToKKwogMjAyMC0wMi0yOCAgQWFrYXNoIEphaW4gIDxhYWthc2hf
amFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRVdTIGZhaWxzIHRvIHJldHJ5IGJ1aWxkIGluIGNh
c2Ugb2Yga2lsbC1vbGQtcHJvY2Vzc2VzIGV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggNzFmNjAyOTA1MzBjMTU5MTc3N2RjNjZiNWY3ZGJkZjM1Nzg1M2YyZi4uNDkwMWUw
ODZlZDE5ZjUyMGRhMDA4ZjE0MGUyZWQ2OWM2YjNjNjFkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0yOTMsNiArMjkzLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAg
Ly8gUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxl
ZChib29sZWFuIHZhbHVlKTsKKyAgICBib29sZWFuIGlzU3RhdGlzdGljc0VwaGVtZXJhbCgpOwog
ICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKG9i
amVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVj
b3Jkc0NhbGxiYWNrKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGlj
c0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrKG9iamVjdCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAx
NjBmMjFjMTAzYjUzNjkzZTRiMjMwNTE1MzcyZTlkZWVhZWJjODE1Li44MmRkNmFhZTI2MWY4ODhh
MWUzMmJlYjY2OWM2MmQwN2ZmNjBjZWU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE0MjAsNiArMTQyMCwxNSBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpCiAgICAg
V0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRy
KTsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NFcGhlbWVyYWwoKQoreworICAg
IGF1dG8gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJJc1N0YXRpc3RpY3NFcGhlbWVyYWwiKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBu
dWxscHRyOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5n
KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUu
Z2V0KCksIG51bGxwdHIsICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRUeXBlSUQocmV0
dXJuRGF0YSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBXS0Jvb2xlYW5H
ZXRWYWx1ZShhZG9wdFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJuRGF0YSkpLmdl
dCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wg
dmFsdWUsIEpTVmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVu
bmVyQ2FsbGJhY2soU2V0U3RhdGlzdGljc0RlYnVnTW9kZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25I
YW5kbGVyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggYjc3Y2I2YzU1M2UyN2Y1YmIyYzU4NmEwZDViNTg2YzI2ZmYwY2I1
ZC4uMGIxMjQ4MWQ3ZDE5MmJkNmIyZTQ2MDQ4ODVhNWFiMzQ0ZmM1YmJiZCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM4
MSw2ICszODEsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmVzb3VyY2UgTG9hZCBTdGF0aXN0
aWNzCiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKKyAgICBib29s
IGlzU3RhdGlzdGljc0VwaGVtZXJhbCgpOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRN
b2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJh
Y2soSlNWYWx1ZVJlZiBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGRkYzViMDg1MDMwNzc3NzNhZjQ1OGJjZWUxMWExOTc3YTM0Y2QwMjQu
LjkyNDg3NjIzZjQwYmNiNjZmZTQ0MGRhYTE4YzEwYTc4MGY0ZjljOWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01MTksNyArNTE5LDcgQEAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRl
Q29udGV4dENvbmZpZ3VyYXQKICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKIH0KIAotV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkKK1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUo
KQogewogICAgIHN0YXRpYyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlID0gbnVsbHB0
cjsKICAgICBpZiAoIWRhdGFTdG9yZSkgewpAQCAtNTQ2LDYgKzU0NiwxMSBAQCBXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKQogICAgIHJldHVy
biBkYXRhU3RvcmU7CiB9CiAKK1dLV2Vic2l0ZURhdGFTdG9yZVJlZiBUZXN0Q29udHJvbGxlcjo6
d2Vic2l0ZURhdGFTdG9yZSgpCit7CisgICAgcmV0dXJuIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRX
ZWJzaXRlRGF0YVN0b3JlKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihtX21haW5XZWJWaWV3
LT5wYWdlKCkpKTsKK30KKwogV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVz
dENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMm
IG9wdGlvbnMpCiB7CiAgICAgaWYgKCFtX2NvbnRleHQgfHwgIW1fY29udGV4dE9wdGlvbnMtPmhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMob3B0aW9ucy5jb250ZXh0T3B0aW9ucykpIHsKQEAg
LTYxNiw2ICs2MjEsNyBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0
Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogICAgIAogICAgIGlmIChv
cHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pIHsKICAgICAgICAgYXV0byBlcGhlbWVyYWxEYXRh
U3RvcmUgPSBhZG9wdFdLKFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRh
U3RvcmUoKSk7CisgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGVwaGVtZXJhbERhdGFTdG9yZS5nZXQoKSwgdHJ1ZSk7CiAgICAgICAgIFdL
UGFnZUNvbmZpZ3VyYXRpb25TZXRXZWJzaXRlRGF0YVN0b3JlKHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpLCBlcGhlbWVyYWxEYXRhU3RvcmUuZ2V0KCkpOwogICAgIH0KIApAQCAtOTI5LDcgKzkzNSw3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQ
SUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3Rv
cnlVcGxvYWRFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFdLSFRUUENvb2tpZVN0
b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUo
VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwor
ICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVH
ZXRIVFRQQ29va2llU3RvcmUoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3Jl
KCkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVy
ZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICAKQEAgLTEwMDUsNyArMTAx
MSw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAgICBXS0NvbnRleHRSZXNldFNlcnZp
Y2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5jb250ZXh0KCkpOwogCi0gICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25zKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkpOwor
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9u
cyh3ZWJzaXRlRGF0YVN0b3JlKCkpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9ucyhUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVE
YXRhU3RvcmUoKSk7CiAKICAgICBjbGVhckluZGV4ZWREYXRhYmFzZXMoKTsKICAgICBjbGVhckxv
Y2FsU3RvcmFnZSgpOwpAQCAtMjE5Nyw3ICsyMjA0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1Jl
ZgogCiAgICAgYXV0byBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gWyZdIChXS0hUVFBDb29r
aWVBY2NlcHRQb2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdLVHlwZVJlZik+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgYXV0byBjb250ZXh0ID0gbmV3IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tX
ZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRl
RGF0YVN0b3JlKCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdICh2b2lkKiBjb250ZXh0KSB7CisgICAg
ICAgIFdLSFRUUENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVE
YXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRl
RGF0YVN0b3JlKCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdICh2b2lkKiBjb250ZXh0KSB7CiAgICAg
ICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyUG9pbnRlciA9IHN0YXRpY19jYXN0PENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV0tUeXBlUmVmKT4qPihjb250ZXh0KTsKICAgICAgICAgICAgICgq
Y29tcGxldGlvbkhhbmRsZXJQb2ludGVyKShudWxscHRyKTsKICAgICAgICAgICAgIGRlbGV0ZSBj
b21wbGV0aW9uSGFuZGxlclBvaW50ZXI7CkBAIC0yOTI0LDcgKzI5MzEsNyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLTmF2aWdhdGlvbkFj
dGlvblJlZiBuYXZpZwogICAgICAgICAgICAgaWYgKHNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Np
b25Pbk5leHROYXZpZ2F0aW9uIHx8IHNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2
aWdhdGlvbikgewogICAgICAgICAgICAgICAgIEFTU0VSVChzaG91bGRTd2FwVG9FcGhlbWVyYWxT
ZXNzaW9uT25OZXh0TmF2aWdhdGlvbiAhPSBzaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24pOwogICAgICAgICAgICAgICAgIGF1dG8gcG9saWNpZXMgPSBhZG9wdFdLKFdL
V2Vic2l0ZVBvbGljaWVzQ3JlYXRlKCkpOwotICAgICAgICAgICAgICAgIFdLUmV0YWluUHRyPFdL
V2Vic2l0ZURhdGFTdG9yZVJlZj4gbmV3U2Vzc2lvbiA9IFRlc3RDb250cm9sbGVyOjp3ZWJzaXRl
RGF0YVN0b3JlKCk7CisgICAgICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tXZWJzaXRlRGF0YVN0
b3JlUmVmPiBuZXdTZXNzaW9uID0gVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0
b3JlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25P
bk5leHROYXZpZ2F0aW9uKQogICAgICAgICAgICAgICAgICAgICBuZXdTZXNzaW9uID0gYWRvcHRX
SyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3JlKCkpOwogICAg
ICAgICAgICAgICAgIFdLV2Vic2l0ZVBvbGljaWVzU2V0RGF0YVN0b3JlKHBvbGljaWVzLmdldCgp
LCBuZXdTZXNzaW9uLmdldCgpKTsKQEAgLTMwOTIsOCArMzA5OSw3IEBAIFBsYXRmb3JtV2ViVmll
dyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmll
dyogcGFyZW50CiAKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RD
b250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNv
bnRleHRDb25maWd1cmF0aW9uKQogewotICAgIGF1dG8qIGRhdGFTdG9yZSA9IFRlc3RDb250cm9s
bGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZGF0YVN0b3JlLCB0cnVlKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh3ZWJzaXRlRGF0YVN0b3Jl
KCksIHRydWUpOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCkBAIC0zMTUwLDcgKzMxNTYsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpjbGVhclNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zKCkK
IHsKICAgICBDbGVhclNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zQ2FsbGJhY2tDb250ZXh0IGNv
bnRleHQoKnRoaXMpOwogCi0gICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbnMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNv
bnRleHQsIGNsZWFyU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnNDYWxsYmFjayk7CisgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMoVGVzdENv
bnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCBjbGVhclNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25zQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9u
ZSwgbm9UaW1lb3V0KTsKIH0KIApAQCAtMzE3Niw3ICszMTgyLDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y2xlYXJET01DYWNoZShXS1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgQ2xlYXJET01DYWNo
ZUNhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKIAogICAgIGF1dG8gY2FjaGVPcmlnaW4g
PSBhZG9wdFdLKFdLU2VjdXJpdHlPcmlnaW5DcmVhdGVGcm9tU3RyaW5nKG9yaWdpbikpOwotICAg
IFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVGb3JPcmlnaW4oVGVzdENvbnRyb2xs
ZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgY2FjaGVPcmlnaW4uZ2V0KCksICZjb250ZXh0LCBjbGVh
ckRPTUNhY2hlQ2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2Fj
aGVGb3JPcmlnaW4oVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCksIGNh
Y2hlT3JpZ2luLmdldCgpLCAmY29udGV4dCwgY2xlYXJET01DYWNoZUNhbGxiYWNrKTsKICAgICBy
dW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKQEAgLTMxODQsNyArMzE5MCw3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyRE9NQ2FjaGVzKCkKIHsKICAgICBDbGVhckRP
TUNhY2hlQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwogCi0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlUmVtb3ZlQWxsRmV0Y2hDYWNoZXMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3Rv
cmUoKSwgJmNvbnRleHQsIGNsZWFyRE9NQ2FjaGVDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0
YVN0b3JlUmVtb3ZlQWxsRmV0Y2hDYWNoZXMoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRl
RGF0YVN0b3JlKCksICZjb250ZXh0LCBjbGVhckRPTUNhY2hlQ2FsbGJhY2spOwogICAgIHJ1blVu
dGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIApAQCAtMzIwOCwxNCArMzIxNCwxNCBA
QCBzdGF0aWMgdm9pZCBTdG9yYWdlVm9pZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhKQogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6Y2xlYXJJbmRleGVkRGF0YWJhc2VzKCkKIHsKICAgICBTdG9yYWdlVm9p
ZENhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVS
ZW1vdmVBbGxJbmRleGVkRGF0YWJhc2VzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3Jl
KCksICZjb250ZXh0LCBTdG9yYWdlVm9pZENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3Rv
cmVSZW1vdmVBbGxJbmRleGVkRGF0YWJhc2VzKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQs
IFN0b3JhZ2VWb2lkQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJMb2NhbFN0b3JhZ2UoKQogewog
ICAgIFN0b3JhZ2VWb2lkQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZVJlbW92ZUxvY2FsU3RvcmFnZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCAmY29udGV4dCwgU3RvcmFnZVZvaWRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRl
RGF0YVN0b3JlUmVtb3ZlTG9jYWxTdG9yYWdlKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQs
IFN0b3JhZ2VWb2lkQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKIAogICAgIFN0b3JhZ2VWb2lkQ2FsbGJhY2tDb250ZXh0IGxlZ2FjeUNvbnRleHQoKnRo
aXMpOwpAQCAtMzI2OCw3ICszMjc0LDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hDYWNoZU9yaWdpbnND
YWxsYmFjayhXS0FycmF5UmVmIG9yaWdpbnMsIHZvaWQqIHVzZXJEYXRhKQogYm9vbCBUZXN0Q29u
dHJvbGxlcjo6aGFzRE9NQ2FjaGUoV0tTdHJpbmdSZWYgb3JpZ2luKQogewogICAgIEZldGNoQ2Fj
aGVPcmlnaW5zQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMsIG9yaWdpbik7Ci0gICAgV0tX
ZWJzaXRlRGF0YVN0b3JlR2V0RmV0Y2hDYWNoZU9yaWdpbnMoVGVzdENvbnRyb2xsZXI6OndlYnNp
dGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIGZldGNoQ2FjaGVPcmlnaW5zQ2FsbGJhY2spOworICAg
IFdLV2Vic2l0ZURhdGFTdG9yZUdldEZldGNoQ2FjaGVPcmlnaW5zKFRlc3RDb250cm9sbGVyOjpk
ZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgZmV0Y2hDYWNoZU9yaWdpbnNDYWxs
YmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVy
biBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTMyOTYsNyArMzMwMiw3IEBAIHN0YXRpYyB2b2lkIGZl
dGNoQ2FjaGVTaXplRm9yT3JpZ2luQ2FsbGJhY2sodWludDY0X3Qgc2l6ZSwgdm9pZCogdXNlckRh
dGEpCiB1aW50NjRfdCBUZXN0Q29udHJvbGxlcjo6ZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9y
aWdpbikKIHsKICAgICBGZXRjaENhY2hlU2l6ZUZvck9yaWdpbkNhbGxiYWNrQ29udGV4dCBjb250
ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVHZXRGZXRjaENhY2hlU2l6ZUZvck9y
aWdpbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBvcmlnaW4sICZjb250ZXh0
LCBmZXRjaENhY2hlU2l6ZUZvck9yaWdpbkNhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3Rv
cmVHZXRGZXRjaENhY2hlU2l6ZUZvck9yaWdpbihUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNp
dGVEYXRhU3RvcmUoKSwgb3JpZ2luLCAmY29udGV4dCwgZmV0Y2hDYWNoZVNpemVGb3JPcmlnaW5D
YWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJl
dHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTMzNTEsMTMgKzMzNTcsMjEgQEAgc3RhdGljIHZv
aWQgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKGJvb2wgcmVzdWx0LCB2
b2lkKiB1c2VyRGF0YSkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0VuYWJs
ZWQoYm9vbCB2YWx1ZSkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1
ZSk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6
OmlzU3RhdGlzdGljc0VwaGVtZXJhbCgpCit7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJh
Y2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc0VwaGVtZXJhbCh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRp
c3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwg
bm9UaW1lb3V0KTsKKyAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNv
dXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0
aW9uSGFuZGxlcihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNv
bnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0
aW9uSGFuZGxlcih3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VT
dGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0U3RhdGlzdGljc0Rl
YnVnTW9kZSgpOwogfQpAQCAtMzM2NSw3ICszMzc5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
c2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZhbHVlKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6
c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhv
c3ROYW1lKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0
KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRh
U3RvcmUoKSwgaG9zdE5hbWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0
Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSh3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3RO
YW1lLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAg
ICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+ZGlkU2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoKTsKIH0KQEAgLTMzNzMs
NyArMzM4Nyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShXS1N0cmluZ1JlZiBob3N0CiB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4oV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMp
CiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMp
OwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihUZXN0Q29udHJv
bGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBzZWNvbmRzLCAmY29udGV4dCwgcmVzb3Vy
Y2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzTGFzdFNlZW4od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBzZWNvbmRzLCAm
Y29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5V
bnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
ZGlkU2V0TGFzdFNlZW4oKTsKIH0KQEAgLTMzODEsNyArMzM5NSw3IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vj
b25kcykKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhX
S1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVm
IHRvcEZyYW1lRG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgaW50IGRhdGFSZWNvcmRz
UmVtb3ZlZCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4
dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlz
dGljKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHRvcEZyYW1lRG9t
YWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1Zl
cnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc01lcmdlU3RhdGlzdGljKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgdG9wRnJhbWVEb21h
aW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVy
eVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0
aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGlt
ZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkTWVyZ2VTdGF0aXN0aWMoKTsKIH0K
QEAgLTMzODksNyArMzQwMyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NN
ZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0CiB2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9z
dCwgYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQg
Y29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZh
bGVudFJlc291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZh
bHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uod2Vic2l0
ZURhdGFTdG9yZSgpLCBob3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1Zv
aWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQp
OwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldFByZXZhbGVudFJlc291cmNlKCk7CiB9
CkBAIC0zMzk3LDcgKzM0MTEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZQogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1N0cmluZ1Jl
ZiBob3N0LCBib29sIHZhbHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29u
dGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
VmVyeVByZXZhbGVudFJlc291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
IGhvc3QsIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxi
YWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgdmFsdWUsICZjb250ZXh0LCByZXNvdXJj
ZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9u
ZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoKTsKIH0KQEAgLTM0MDUsNyArMzQxOSw3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdCwg
Ym9vbCB2CiBTdHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhp
cyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoVGVz
dENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc1N0cmluZ1Jlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJj
ZVN0YXRpc3RpY3NTdHJpbmdSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5k
b25lLCBub1RpbWVvdXQpOwogICAgIHJldHVybiB0b1dURlN0cmluZyhjb250ZXh0LnJlc291cmNl
TG9hZFN0YXRpc3RpY3NSZXByZXNlbnRhdGlvbi5nZXQoKSk7CiB9CkBAIC0zNDEzLDcgKzM0Mjcs
NyBAQCBTdHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkK
IGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3Ry
aW5nUmVmIGhvc3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNv
bnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVu
dFJlc291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsICZjb250
ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHdlYnNpdGVEYXRhU3Rv
cmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxs
YmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVy
biBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM0MjEsNyArMzQzNSw3IEBAIGJvb2wgVGVzdENvbnRy
b2xsZXI6OmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3QpCiBi
b29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tT
dHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQg
Y29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVBy
ZXZhbGVudFJlc291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3Qs
ICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAg
IFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh3ZWJz
aXRlRGF0YVN0b3JlKCksIGhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFu
UmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsK
ICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CkBAIC0zNDI5LDcgKzM0NDMsNyBAQCBib29s
IFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJp
bmdSZWYgaG9zdCkKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRB
c1N1YnJlc291cmNlVW5kZXIoV0tTdHJpbmdSZWYgc3VicmVzb3VyY2VIb3N0LCBXS1N0cmluZ1Jl
ZiB0b3BGcmFtZUhvc3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0
IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUo
KSwgc3VicmVzb3VyY2VIb3N0LCB0b3BGcmFtZUhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRp
c3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3Rh
dGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIod2Vic2l0ZURhdGFTdG9yZSgpLCBz
dWJyZXNvdXJjZUhvc3QsIHRvcEZyYW1lSG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGlj
c0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1Rp
bWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM0MzcsNyArMzQ1MSw3
IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291
cmNlVW5kZXIoV0tTdHJpbmdSZWYgc3VicmVzCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdLU3RyaW5nUmVmIHN1YkZyYW1lSG9zdCwg
V0tTdHJpbmdSZWYgdG9wRnJhbWVIb3N0KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxi
YWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRp
c3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksIHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCAmY29udGV4dCwgcmVzb3VyY2VT
dGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJ
c1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHdlYnNpdGVEYXRhU3RvcmUoKSwg
c3ViRnJhbWVIb3N0LCB0b3BGcmFtZUhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NC
b29sZWFuUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKICAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CkBAIC0zNDQ1LDcgKzM0NTksNyBA
QCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKFdLU3RyaW5nUmVmIHN1YkZyYW1lSAogYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0
aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZy
b20sIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0
aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9y
ZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oVGVzdENvbnRyb2xsZXI6Ondl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdFJlZGlyZWN0ZWRGcm9tLCBob3N0UmVkaXJlY3RlZFRvLCAm
Y29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBX
S1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHdl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdFJlZGlyZWN0ZWRGcm9tLCBob3N0UmVkaXJlY3RlZFRvLCAm
Y29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKICAgICBy
dW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgcmV0dXJuIGNvbnRleHQucmVz
dWx0OwogfQpAQCAtMzQ1Myw3ICszNDY3LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0
aXN0aWNzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXIKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tT
dHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxs
YmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFT
dG9yZSgpLCBob3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1
bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbih3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZhbHVlLCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0SGFz
SGFkVXNlckludGVyYWN0aW9uKCk7CiB9CkBAIC0zNDYxLDcgKzM0NzUsNyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVm
IGhvc3QsIGJvb2wgdgogYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKFdLU3RyaW5nUmVmIGhvc3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNz
Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3Vs
dENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VT
dGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRv
bmUsIG5vVGltZW91dCk7CiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQpAQCAtMzQ2OSwy
MCArMzQ4MywyMCBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NIYXNIYWRVc2Vy
SW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYgaG9zdCkKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3Rh
dGlzdGljc09ubHlJbkRhdGFiYXNlT25jZShXS1N0cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmluZ1Jl
ZiB0b3BIb3N0KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250
ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRh
YmFzZU9uY2UoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgc3ViSG9zdCwgdG9w
SG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7
CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKHdl
YnNpdGVEYXRhU3RvcmUoKSwgc3ViSG9zdCwgdG9wSG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3Rh
dGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25l
LCBub1RpbWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAogdm9pZCBUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdCwg
Ym9vbCB2YWx1ZSkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRm
YXRoZXJlZChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB2YWx1ZSk7
CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQod2Vic2l0
ZURhdGFTdG9yZSgpLCBob3N0LCB2YWx1ZSk7CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6Omlz
U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJj
ZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRl
RGF0YVN0b3JlSXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChUZXN0Q29udHJvbGxlcjo6d2Vic2l0
ZURhdGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJl
c3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZh
dGhlcmVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM0OTAsMTIwICsz
NTA0LDEyMCBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVk
KFdLU3RyaW5nUmVmIGhvc3QpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFz
ZShib29sIHZhbHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBj
b250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291
cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0VXNlSVRQRGF0YWJhc2Uod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJl
c291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4
dC5kb25lLCBub1RpbWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0
aWNzU3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5n
UmVmIHRvcEZyYW1lSG9zdCkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0
b3JlKCksIGhvc3QsIHRvcEZyYW1lSG9zdCk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3Rh
dGlzdGljc1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbih3ZWJzaXRlRGF0YVN0b3JlKCksIGhv
c3QsIHRvcEZyYW1lSG9zdCk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJp
bmdSZWYgdG9wRnJhbWVIb3N0KQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVE
YXRhU3RvcmUoKSwgaG9zdCwgdG9wRnJhbWVIb3N0KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHdlYnNpdGVEYXRhU3Rv
cmUoKSwgaG9zdCwgdG9wRnJhbWVIb3N0KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBob3N0LCBX
S1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZFRvKQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNl
dFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oVGVzdENvbnRyb2xsZXI6Ondl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgaG9zdFJlZGlyZWN0ZWRUbyk7CisgICAgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyh3ZWJzaXRl
RGF0YVN0b3JlKCksIGhvc3QsIGhvc3RSZWRpcmVjdGVkVG8pOwogfQogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oV0tTdHJp
bmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tKQogewotICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBob3N0UmVkaXJlY3RlZEZy
b20pOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0RnJvbSh3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIGhvc3RSZWRpcmVjdGVkRnJv
bSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRU
bykKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdFRvKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIGhvc3RS
ZWRpcmVjdGVkVG8pOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBob3N0UmVkaXJlY3Rl
ZFRvKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1RvcEZyYW1lVW5p
cXVlUmVkaXJlY3RGcm9tKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVj
dGVkRnJvbSkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVV
bmlxdWVSZWRpcmVjdEZyb20oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9z
dCwgaG9zdFJlZGlyZWN0ZWRGcm9tKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBo
b3N0UmVkaXJlY3RlZEZyb20pOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0
aWNzQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihXS1N0cmluZ1JlZiBmcm9tSG9zdCwg
V0tTdHJpbmdSZWYgdG9Ib3N0KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29u
dGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCBmcm9tSG9zdCwgdG9Ib3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNz
Vm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbih3ZWJzaXRlRGF0YVN0b3JlKCksIGZyb21I
b3N0LCB0b0hvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJh
Y2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAogdm9pZCBU
ZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oZG91
YmxlIHNlY29uZHMpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNv
bnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9M
aXZlVXNlckludGVyYWN0aW9uKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHNl
Y29uZHMsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwor
ICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0
aW9uKHdlYnNpdGVEYXRhU3RvcmUoKSwgc2Vjb25kcywgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1Rp
bWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tD
b250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2sp
OworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGlj
c1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVv
dXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcoKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0
KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291
cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRl
eHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwo
Y29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNl
dEJsb2NrQ29va2llc0Zvckhvc3QoKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlz
dGljc1N1Ym1pdFRlbGVtZXRyeSgpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c1N1Ym1pdFRlbGVtZXRyeShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpKTsKKyAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KHdlYnNpdGVEYXRh
U3RvcmUoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NOb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpCiB7Ci0gICAgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOworICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKHdlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOwogfQogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpzZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChib29sIHZhbHVlKQogewogICAgIFJl
c291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dl
YnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChUZXN0Q29udHJvbGxlcjo6
d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1Zv
aWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0lz
UnVubmluZ1Rlc3Qod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNl
U3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25l
LCBub1RpbWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hv
dWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSkK
IHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRh
U3RvcmUoKSwgdmFsdWUpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTaG91
bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh3ZWJzaXRlRGF0YVN0
b3JlKCksIHZhbHVlKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc05v
dGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKGJvb2wgdmFsdWUpCiB7Ci0gICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0Nh
cHR1cmVkKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKKyAgICBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5V2Fz
Q2FwdHVyZWQod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwo
ZG91YmxlIHNlY29uZHMpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChUZXN0Q29udHJvbGxlcjo6d2Vic2l0
ZURhdGFTdG9yZSgpLCBzZWNvbmRzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUo
KSwgc2Vjb25kcyk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NHcmFu
ZGZhdGhlcmluZ1RpbWUoZG91YmxlIHNlY29uZHMpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyaW5nVGltZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCBzZWNvbmRzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNz
R3JhbmRmYXRoZXJpbmdUaW1lKHdlYnNpdGVEYXRhU3RvcmUoKSwgc2Vjb25kcyk7CiB9CiAKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1bnNp
Z25lZCBlbnRyaWVzKQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNYXhT
dGF0aXN0aWNzRW50cmllcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBlbnRy
aWVzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0Vu
dHJpZXMod2Vic2l0ZURhdGFTdG9yZSgpLCBlbnRyaWVzKTsKIH0KIAogdm9pZCBUZXN0Q29udHJv
bGxlcjo6c2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1bnNpZ25lZCBlbnRyaWVzKQog
ewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcnVuZUVudHJpZXNEb3duVG8o
VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgZW50cmllcyk7CisgICAgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh3ZWJzaXRlRGF0YVN0
b3JlKCksIGVudHJpZXMpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xl
YXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSgpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNz
Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0
YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKFRlc3RDb250cm9sbGVyOjp3
ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0
Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5
QW5kUGVyc2lzdGVudFN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNl
U3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25l
LCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3RhdGlzdGlj
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MTEsNyArMzYyNSw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0
b3JlKCkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVy
c2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzKHVuc2lnbmVkIGhvdXJzKQogewogICAgIFJl
c291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1v
ZGlmaWVkU2luY2VIb3VycyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3Vy
cywgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAg
V0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3Rv
cmVNb2RpZmllZFNpbmNlSG91cnMod2Vic2l0ZURhdGFTdG9yZSgpLCBob3VycywgJmNvbnRleHQs
IHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29u
dGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFy
U3RhdGlzdGljc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MTksNyArMzYz
Myw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVy
c2lzdGVudFN0b3JlTW9kaWZpZWRTaW5jZUhvdXJzCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0
aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsKICAgICBSZXNvdXJjZVN0
YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlU3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChUZXN0Q29udHJv
bGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9p
ZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJU
aHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJl
c291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4
dC5kb25lLCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3Rh
dGlzdGljc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MjcsMTQgKzM2NDEs
MTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbCgpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRGVsZXRlQ29va2ll
c0Zvckhvc3QoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCBpbmNsdWRlSHR0cE9ubHlDb29raWVzKQog
ewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsK
LSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVsZXRlQ29va2llc0ZvclRlc3Rpbmco
VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgaW5jbHVkZUh0dHBPbmx5
Q29va2llcywgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7
CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5n
KHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgJmNvbnRl
eHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwo
Y29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0
YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2UoV0tTdHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJj
ZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc0hhc0xvY2FsU3RvcmFnZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0
ZURhdGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJl
c3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9jYWxT
dG9yYWdlKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM2NDIsMTQgKzM2
NTYsMTQgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdl
KFdLU3RyaW5nUmVmIGhvc3QpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzQ2Fj
aGVNYXhBZ2VDYXAoZG91YmxlIHNlY29uZHMpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2Fs
bGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0
YXRpc3RpY3NDYWNoZU1heEFnZUNhcChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCBzZWNvbmRzLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNr
KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAod2Vi
c2l0ZURhdGFTdG9yZSgpLCBzZWNvbmRzLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9p
ZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7
CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6Omhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24o
V0tTdHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRl
eHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0lz
b2xhdGVkU2Vzc2lvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCAm
Y29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBX
S1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKHdlYnNpdGVEYXRh
U3RvcmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRD
YWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJl
dHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM2NTcsNyArMzY3MSw3IEBAIGJvb2wgVGVzdENv
bnRyb2xsZXI6Omhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24oV0tTdHJpbmdSZWYgaG9zdCkK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJl
cihib29sIHZhbHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBj
b250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKFRlc3RDb250cm9sbGVyOjp3
ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9p
ZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKHdlYnNpdGVEYXRhU3Rv
cmUoKSwgdmFsdWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJh
Y2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJl
bnRJbnZvY2F0aW9uLT5kaWRTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlcigpOwogfQpAQCAtMzY2
NSw3ICszNjc5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1Nob3VsZERv
d25ncmFkZVJlZmVycmVyKGJvb2wgdmFsdWUpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0
aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhib29sIHZhbHVlLCBib29sIG9ubHlP
blNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbikKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3ND
YWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0
aW5nKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCBvbmx5T25TaXRl
c1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lk
UmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyh3ZWJzaXRlRGF0
YVN0b3JlKCksIHZhbHVlLCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sICZjb250
ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGls
KGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRT
ZXRTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKCk7CiB9CkBAIC0zNjczLDcgKzM2ODcsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5
Q29va2llcyhib29sIHZhbHVlLCBib29sCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0
aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoYm9vbCB2YWx1ZSkKIHsKICAgICBS
ZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9y
ZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFj
ayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyh3ZWJzaXRlRGF0YVN0b3JlKCks
IHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsK
ICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52
b2NhdGlvbi0+ZGlkU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoKTsKIH0KQEAg
LTM2ODEsNyArMzY5NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShib29sIHZhbHVlKQogdm9pZCBUZXN0Q29udHJv
bGxlcjo6c3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogewogICAgIFJlc291cmNl
U3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShUZXN0Q29udHJvbGxlcjo6
d2Vic2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3Vs
dENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNp
c3RlbnRTdGF0ZSh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3Rp
Y3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRSZXNldFN0YXRpc3RpY3NUb0NvbnNp
c3RlbnRTdGF0ZSgpOwogfQpAQCAtMzg1NSw3ICszODY5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJB
ZENsaWNrQXR0cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpCiB7CiAgICAgQWRD
bGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMp
OwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNh
bGxiYWNrQ29udGV4dCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKTsKKyAgICBXS1dl
YnNpdGVEYXRhU3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNrQ29udGV4dCwgYWRDbGlja0F0dHJp
YnV0aW9uVm9pZENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwg
bm9UaW1lb3V0KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGRkNDU1ZmUxNjExZTJlM2VjYjYwODFkZGUwNjczNWU0YWM1M2U4NmQuLmYzYWE4OGFjNjI5
MTg5ZWMxMzdkMmQ5Mjk0YmZlMjk0Y2I1ODQ0ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFRlc3RDb250
cm9sbGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgVGVzdENvbnRyb2xsZXImIHNpbmdsZXRvbigp
OwotICAgIHN0YXRpYyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgd2Vic2l0ZURhdGFTdG9yZSgpOwor
ICAgIHN0YXRpYyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUo
KTsKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3V2lkdGg7CiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHZpZXdIZWlnaHQ7CkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogICAg
IFdLQ29udGV4dFJlZiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAg
V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1
cm4gbV91c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KIAorICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiB3ZWJzaXRlRGF0YVN0b3JlKCk7CisKICAgICBFdmVudFNlbmRlclByb3h5KiBldmVu
dFNlbmRlclByb3h5KCkgeyByZXR1cm4gbV9ldmVudFNlbmRlclByb3h5LmdldCgpOyB9CiAKICAg
ICBib29sIHNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
VXNlUmVtb3RlTGF5ZXJUcmVlOyB9CkBAIC0yMDgsNiArMjEwLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sIHZh
bHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyA9IHZh
bHVlOyB9CiAKICAgICB2b2lkIHNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpOworICAg
IGJvb2wgaXNTdGF0aXN0aWNzRXBoZW1lcmFsKCk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVi
dWdNb2RlKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRp
c3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBjOWU5NGVlYjY2Y2U5
NGMzN2JmOTAwYTg0ZDBmYzQ3MDkwNzliN2VmLi40MTZmNmVmMWE3MTNlZThiNGZlYWU5MGU5Zjlm
ZjM4MGYwZDk5ZTQ0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAg
ICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENh
bGxiYWNrcyhzaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKCkpOwogCi0gICAgV0tIVFRQ
Q29va2llU3RvcmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLV2Vic2l0ZURhdGFTdG9yZUdl
dEhUVFBDb29raWVTdG9yZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpKSwga1dL
SFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluLCBudWxscHRy
LCBudWxscHRyKTsKKyAgICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3koV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFRlc3RDb250cm9sbGVyOjpk
ZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSgpKSwga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgY2xlYXIgb3V0IHZpc2l0ZWQgbGlua3MgaGVyZS4KIApAQCAtOTA2LDcgKzkw
Niw3IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVT
eW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRDYWNoZU1vZGVsIikpIHsKICAgICAgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VJbnQ2NEdldFR5cGVJRCgpKTsKICAg
ICAgICAgdWludDY0X3QgbW9kZWwgPSBXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUlu
dDY0UmVmPihtZXNzYWdlQm9keSkpOwotICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRDYWNo
ZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRh
U3RvcmUoKSwgbW9kZWwpOworICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRDYWNoZU1vZGVs
U3luY2hyb25vdXNseUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0
YVN0b3JlKCksIG1vZGVsKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCkBAIC05
NjgsNyArOTY4LDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICB9CiAgICAgCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJEZWxldGVBbGxJ
bmRleGVkRGF0YWJhc2VzIikpIHsKLSAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxs
SW5kZXhlZERhdGFiYXNlcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBudWxs
cHRyLCB7IH0pOworICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVBbGxJbmRleGVkRGF0
YWJhc2VzKFRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSgpLCBudWxscHRy
LCB7IH0pOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTExMjAsNiArMTEy
MCwxMiBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIklzU3RhdGlzdGljc0VwaGVtZXJhbCIpKSB7CisgICAgICAgIGJvb2wgaXNFcGhlbWVyYWwg
PSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaXNTdGF0aXN0aWNzRXBoZW1lcmFsKCk7Cisg
ICAgICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5D
cmVhdGUoaXNFcGhlbWVyYWwpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJv
ZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYTgy
NDZhMTQ1YmUzNjllNDNhZTgwYzY3MTZmOGExMzNkOTFjZGQwMi4uZjJlM2E2NmM3ODgwMTAzYzgw
ODRhOWQ4OTQ1ZmY0MDhmZGIyZTMxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIGlu
aXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tT
dHJpbmdSZWYgaW5qZWN0ZQogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uID0gW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKIAogICAgIGdsb2JhbFdlYlZpZXdDb25m
aWd1cmF0aW9uLnByb2Nlc3NQb29sID0gKF9fYnJpZGdlIFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0
OwotICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSAoX19i
cmlkZ2UgV0tXZWJzaXRlRGF0YVN0b3JlICopVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3Rv
cmUoKTsKKyAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0g
KF9fYnJpZGdlIFdLV2Vic2l0ZURhdGFTdG9yZSAqKVRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vi
c2l0ZURhdGFTdG9yZSgpOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbi5fYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IFlFUzsKICAgICBnbG9iYWxX
ZWJWaWV3Q29uZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwpAQCAtMTUxLDkgKzE1
MSwxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdl
Q29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdAogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxl
VW5kb01hbmFnZXJBUEkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRVbmRvTWFu
YWdlckFQSUVuYWJsZWQ6WUVTXTsKLSAgICAgICAgCi0gICAgaWYgKG9wdGlvbnMudXNlRXBoZW1l
cmFsU2Vzc2lvbikKLSAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTpbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdXTsKKworICAg
IGlmIChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pIHsKKyAgICAgICAgYXV0byBlcGhlbWVy
YWxXZWJzaXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0
YVN0b3JlXTsKKyAgICAgICAgW2VwaGVtZXJhbFdlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CisgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9u
IHNldFdlYnNpdGVEYXRhU3RvcmU6ZXBoZW1lcmFsV2Vic2l0ZURhdGFTdG9yZV07CisgICAgfQog
CiAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVS
THM6b3B0aW9ucy5hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzXTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkMzU1
NWU5YjhhNDAxY2FiNmI4ZWI4MjI1MmY3YTAyNmM5YWM4YjYuLjBkZDMzMWY1NTg5N2ExNDczYmI5
ZWRmZDI1NmY5NzVkMGEyYThiMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMC0wMi0yOCAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOiBFbmFibGUgY29va2llIGJsb2NraW5nIGFuZCB0aGUgU3RvcmFnZSBBY2Nl
c3MgQVBJIGluIGVwaGVtZXJhbCBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Mzk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDcz
MTY1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLmh0bWw6CisgICAgICAgICAgICBKdXN0IG1vdmVkIHRoZSA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSB1c2VFcGhlbWVyYWxTZXNzaW9u
PXRydWUgXSAtLT4KKyAgICAgICAgICAgIGhlYWRlciB1cCB0byB0aGUgdG9wLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9j
a2luZy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhl
bWVyYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1kdWUtdG8t
bm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmct
ZXBoZW1lcmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQt
cGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQt
cGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBh
cnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sOgorICAgICAgICAgICAgQWRkZWQgZXhwbGlj
aXQgZGlzYWJsaW5nIG9mIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcy4gSG93ZXZlciwgc29tZXRo
aW5nIGVuYWJsZXMgaXQgYWdhaW4uIFNlZQorICAgICAgICAgICAgQ29tbWVudCB1bmRlciBUZXN0
RXhwZWN0YXRpb24gZmlsZXMgYmVsb3cuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1i
bG9ja2luZy13aXRoLWNvb2tpZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdl
bmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWVwaGVtZXJhbC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3Jh
Z2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhv
dXQtY29va2llLWVwaGVtZXJhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGly
ZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXBoZW1lcmFsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFu
dC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVwaGVtZXJhbC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVw
aGVtZXJhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRo
b3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1v
cmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgVGhl
c2UgdHdvIHRlc3QgY2FzZXMgYXJlIG5vdyBiZWluZyBza2lwcGVkIGJlY2F1c2UgcmVzb3VyY2Ug
bG9hZCBzdGF0aXN0aWNzIGFyZSBvbiBpbiBlcGhlbWVyYWwgc2Vzc2lvbnM6CisgICAgICAgICAg
ICBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhp
cmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLmh0bWwKKyAgICAgICAgICAgIGh0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1o
YXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbAorICAgICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQwMCB0cmFja3MgdGhlIHdvcmsgdG8g
ZmlndXJlIG91dCBob3cgdGhpcyBjYW4gYmUgdGVzdGVkCisgICAgICAgICAgICBzaW5jZSBzb21l
IGJ1ZyBpbiB0aGUgVGVzdFJ1bm5lciBpcyByZS1lbmFibGluZyByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MgYXMgc29vbiBhcyB5b3UgdHVybiBpdCBvZmYKKyAgICAgICAgICAgIGluIGVwaGVtZXJh
bCBzZXNzaW9ucy4KKwogMjAyMC0wMi0yOCAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFw
cGxlLmNvbT4KIAogICAgICAgICBbIGlPUyB3azIgXSBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNp
ZGUtb3V0LW9mLXZpZXctZml4ZWQuaHRtbCBpcyBmbGFreSB0aW1pbmcgb3V0IGFuZCBjcmFzaGlu
Zy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwt
c2Vzc2lvbi5odG1sCmluZGV4IGI3YzAwNzc0ZTdkNjY3MTkwM2JhYThmOTU3ZTZjNDFjNmVjYjY4
MDguLjZmYzI3NDFhYjExYmMxYzdhOTYwZTQ5ZWEyNzM2ZTRlNjQ4NjQ2ZGYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVk
LWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRt
bApAQCAtMSw0ICsxLDUgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIHVz
ZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5n
PSJlbiI+CiA8aGVhZD4KICAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2
N2EyODI4NTE4MmY1NzJhZDg3MjZlNzJlYWU4MzIxZWQ2ZmFkOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0
eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDI0IEBACitUZXN0cyB0aGF0IGFsbCB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBibG9ja2Vk
IChlcGhlbWVyYWwgc2Vzc2lvbikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBpcyBydW5uaW5nIGluIGVwaGVtZXJhbCBtb2Rl
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAor
CistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK0JlZm9yZSB1c2Vy
IGludGVyYWN0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZl
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorQWZ0
ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3Qg
cmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwtZGF0
YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjQ0YzBiZDRjNTkzNWU4OWU5Nzg2YTMyZjk2NDliZGU5MjljNmE0MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw3NCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNz
aW9uPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBhbGwgdGhpcmQtcGFydHkgY29va2llcyBhcmUgYmxvY2tlZCAo
ZXBoZW1lcmFsIHNlc3Npb24pLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
Y29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgcGFydGl0
aW9uT3JpZ2luID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdDsKKyAgICBjb25zdCB0aGlyZFBh
cnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQ
YXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhp
cmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNv
bnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0
IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiAr
IGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJu
VXJsID0gcGFydGl0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBh
cnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCI7CisgICAgY29uc3Qg
c3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBh
cnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5k
bGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRI
YW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7Cisg
ICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAg
ICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBh
dGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAg
ICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGlzIGJsb2NrZWQgZm9yIGxvY2FsaG9zdCB1bmRl
ciAxMjcuMC4wLjEgZXZlbiB0aG91Z2ggbG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAg
ICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENv
b2tpZXMgKyAiJm1lc3NhZ2U9QmVmb3JlIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZl
IG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgIC8vIFByb2R1Y2UgdXNlciBpbnRlcmFjdGlv
biBmb3IgdGhlIGZpcnN0LXBhcnR5LgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihwYXJ0aXRpb25PcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgaXMg
c3RpbGwgYmxvY2tlZCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAg
ICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tp
ZXMgKyAgIiZtZXNzYWdlPUFmdGVyIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZlIG5v
IGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2Us
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gg
PT09ICIiKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEiOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBydW5UZXN0KTsKKyAgICAg
ICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
RXBoZW1lcmFsKCkpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MgaXMgcnVubmluZyBpbiBlcGhlbWVyYWwgbW9kZS4iKTsKKyAgICAgICAgcnVuVGVzdCgp
OworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhl
bWVyYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzJjZGE4ZmNlOTZjMmU3NjMwNDVlMTU5
ZjkwMTczNWQxMDU0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVt
ZXJhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdHMgdGhhdCBhbGwgdGhpcmQt
cGFydHkgY29va2llcyBhcmUgYmxvY2tlZCAoZXBoZW1lcmFsIHNlc3Npb24pLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgaXMg
cnVubmluZyBpbiBlcGhlbWVyYWwgbW9kZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4n
CistLS0tLS0tLQorQmVmb3JlIHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZlIG5vIGNv
b2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4K
K0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lMi0tPicKKy0tLS0tLS0tCitBZnRlciB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgcmVjZWl2
ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNv
b2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLWVwaGVtZXJhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYWQzZmVkMGIzOGNkOWRiMzcxMTg0MDc5ZmEwZDhhY2M5NzI2MTU4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbApAQCAtMCww
ICsxLDc1IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249
dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW4oKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGFsbCB0aGlyZC1wYXJ0eSBjb29raWVzIGFy
ZSBibG9ja2VkIChlcGhlbWVyYWwgc2Vzc2lvbikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBj
b25zdCBwYXJ0aXRpb25PcmlnaW4gPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0OworICAgIGNv
bnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25z
dCByZXNvdXJjZVBhdGggPSAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAg
ICBjb25zdCB0aGlyZFBhcnR5QmFzZVVybCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBh
dGg7CisgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7
CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5w
aHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBj
b25zdCByZXR1cm5VcmwgPSBwYXJ0aXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC5odG1sIjsKKyAgICBjb25z
dCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0
UGFydHlDb29raWVOYW1lOworCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1l
bnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAg
ICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3Vi
UGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgaXMgYmxvY2tlZCBmb3IgbG9jYWxob3N0IHVu
ZGVyIDEyNy4wLjAuMSBldmVuIHRob3VnaCBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAg
ICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0
Q29va2llcyArICImbWVzc2FnZT1CZWZvcmUgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHJlY2Vp
dmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aGFzaCA9ICJzdGVwNCI7CisgICAgICAgICAgICAgICAgLy8gUHJvZHVjZSB1c2VyIGludGVyYWN0
aW9uIGZvciB0aGUgZmlyc3QtcGFydHkuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHBhcnRpdGlvbk9yaWdpbiwgdHJ1ZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBp
cyBzdGlsbCBibG9ja2VkIGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAg
ICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29v
a2llcyArICAiJm1lc3NhZ2U9QWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHJlY2VpdmUg
bm8gY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxz
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKHRydWUsIHJ1blRlc3QpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NFcGhlbWVyYWwoKSkKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZXNv
dXJjZSBsb2FkIHN0YXRpc3RpY3MgaXMgcnVubmluZyBpbiBlcGhlbWVyYWwgbW9kZS4iKTsKKyAg
ICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHkt
Y29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2Vu
ZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMTEwNDE2NWM1Y2ZkNDNmNjQ4MTJhYjMyMGY3NGMzMzMzZGI0ZDk2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnkt
ZHVlLXRvLW5vLWludGVyYWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLWVwaGVtZXJhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhh
dCBhIGNyb3NzLXNpdGUgaWZyYW1lIGNhbiBub3QgcmVxdWVzdCBzdG9yYWdlIGFjY2VzcyB1bmRl
ciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyBpZiBpdCBoYXMgbm90IHJlY2Vp
dmVkIHVzZXIgaW50ZXJhY3Rpb24gYXMgZmlyc3QtcGFydHkgKGVwaGVtZXJhbCkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQu
IGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29v
a2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1k
dWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1j
b29raWUtYmxvY2tpbmctZXBoZW1lcmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMyMDhkNjE4MGRhOGFl
MmQzNWJhMzg3N2U0NGU2Y2ZjZGM5YTkxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRl
ci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbApAQCAt
MCwwICsxLDc1IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Np
b249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YSBjcm9zcy1zaXRlIGlmcmFtZSBjYW4gbm90IHJlcXVlc3Qgc3RvcmFnZSBhY2Nlc3MgdW5kZXIg
Z2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcgaWYgaXQgaGFzIG5vdCByZWNlaXZl
ZCB1c2VyIGludGVyYWN0aW9uIGFzIGZpcnN0LXBhcnR5IChlcGhlbWVyYWwpLiIpOworICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBmaXJzdFBhcnR5VXJsID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlVcmwgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2
ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBl
Y3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxl
bWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIg
Y2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2Nvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAg
ICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1j
b29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0
eVVybCArICIvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRlci1n
ZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbCNjb29raWVT
ZXQiOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVt
ZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVs
ZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5z
cmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVl
c3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJT
aG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVP
cmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHkt
aGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHkt
aGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKaW5kZXggMzlmOTcwOWU5ZDE5YTUw
NzAyYWExMWRjZGEwN2ExZDE2ZDhhMmM3OS4uMWQ2MDE0YmMxZWRlOGEwZWY2OTU1OTMyMGZkZmU5
MGJlNjBlN2JkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVw
aGVtZXJhbC1kYXRhYmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2ll
cy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbApAQCAtMjUsMTQgKzI1LDE1IEBACiAgICAgICAgIGNv
bnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OwogICAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKLSAgICAgICAgICAgIC8vIFRoaXMgdGVzdCBzaG91bGQgbm90IGNhbGwgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlKSBiZWNhdXNlIGVwaGVtZXJhbCBzZXNzaW9ucyBkbyBub3QgdXNl
IElUUC4KICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0
UGFydHlDb29raWVTZXQiKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJl
ZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUu
cGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1o
YXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgICAgICAgICAgICAgICBpZnJh
bWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOwotICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
dG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjcG9s
aWN5U2hvdWxkR3JhbnRBY2Nlc3MiOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nl
c3MiOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlm
cmFtZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vz
cy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlm
LXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sCmluZGV4IDJmMzFhNTdmNmMw
MjE0ZmQ4MTY4NWY5N2E5OWNjZDk0ODFiZDkxYzYuLmI2NmQ2NzdkZGViMjc2NGI1MjcyOGZhMGQx
MjgzZWM1MzViMTdiNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2ll
cy1lcGhlbWVyYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBo
ZW1lcmFsLmh0bWwKQEAgLTI0LDE0ICsyNCwxNSBAQAogICAgICAgICBjb25zdCBob3N0VW5kZXJU
ZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKICAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3Q7CiAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICAgICAgICAgICAvLyBUaGlzIHRlc3Qgc2hvdWxkIG5vdCBjYWxsIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSkgYmVjYXVzZSBlcGhlbWVyYWwgc2Vzc2lvbnMgZG8gbm90IHVzZSBJVFAuCiAgICAgICAg
ICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNmaXJzdFBhcnR5Q29va2llU2V0
IikgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBzdGF0aXN0aWNz
VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0
UGFydHlDb29raWUmdmFsdWU9dmFsdWUjaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBo
ZW1lcmFsLmh0bWwjZmlyc3RQYXJ0eUNvb2tpZVNldCI7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7Ci0gICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJh
bWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKLSAgICAgICAgICAgICAgICBpZnJhbWVFbGVt
ZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMv
aGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsK
LSAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQp
OworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9
ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRH
cmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBo
ZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzdkNDVlODA2NmY2NGU5MzhjMzE3NmQw
ZjUxZmU2Njk1MDNkMjk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBh
cnR5LWNvb2tpZS1ibG9ja2luZy13aXRoLWNvb2tpZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSBmb3IgYSAz
cmQtcGFydHkgd2l0aCBjb29raWVzIHVuZGVyIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJs
b2NraW5nIChlcGhlbWVyYWwpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBObyBzdG9yYWdlIGFjY2Vzcy4gZG9jdW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNl
cnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0
eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVy
YWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWVwaGVtZXJhbC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0YWI4MWIzZTgzMjA5N2NiY2ZmNGMxOWI0MjgyNWUwN2YxNjhiN2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFz
LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5n
LXdpdGgtY29va2llLWVwaGVtZXJhbC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlIF0gLS0+Cis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBkb2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9yIGEg
M3JkLXBhcnR5IHdpdGggY29va2llcyB1bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBi
bG9ja2luZyAoZXBoZW1lcmFsKS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwor
ICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2Fn
ZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSB0aGlyZFBhcnR5VXJsKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVj
dGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAg
ICAgICAgICAgICAgICBjYXNlICIiOgorICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYSBjb29raWUgZm9yIHRo
ZSB0aGlyZC1wYXJ0eSBhbmQgY29udGludWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3Mv
cmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1
ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBo
ZW1lcmFsLmh0bWwjc3RlcDEiOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlICIjc3RlcDEiOgorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5zcmMgPSB0aGlyZFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNl
cy9oYXMtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWw/ZHVtbXk9IiArIE1hdGgucmFuZG9tKCkg
KyAiI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29r
aWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44N2I3ZDgxYTA2YmFhOTBlMjgwMTk1MDAzNmFlNTQ0NWM1YmMzODdjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdl
LWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aXRob3V0
LWNvb2tpZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGRv
Y3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSBmb3IgYSAzcmQtcGFydHkgd2l0aG91dCBjb29raWVz
IHVuZGVyIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nIChlcGhlbWVyYWwpLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBObyBzdG9yYWdlIGFjY2Vzcy4g
ZG9jdW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29r
aWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0
aG91dC1jb29raWUtZXBoZW1lcmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29v
a2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLWVwaGVtZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
YWE5Yjk3MjRkZjczOTE2MTQwNDUzNjdkYWRjYzZiODg2YjkxMzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2ll
LWVwaGVtZXJhbC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyBkb2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdp
dGhvdXQgY29va2llcyB1bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyAo
ZXBoZW1lcmFsKS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
Y29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBj
b25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2Up
OworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQub3JpZ2luID09PSB0aGlyZFBhcnR5VXJsKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdp
bjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsLCB0cnVlLCBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5zcmMgPSB0aGlyZFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcy9oYXMtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWw/ZHVtbXk9IiArIE1hdGgucmFu
ZG9tKCkgKyAiI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1lcGhlbWVyYWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1l
cmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTczOGYzMTRhMGQzYTg0OTQwOTJiYTg1YmE5
YWJjZTRmZmU5Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNh
bmRib3hlZC1pZnJhbWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0cyB0aGF0IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBp
ZiB0aGUgaWZyYW1lIGlzIG5vdCBzYW5kYm94ZWQgYW5kIHRoZSB1c2VyIGFjY2VwdHMgKGVwaGVt
ZXJhbCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNj
ZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVl
In0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1lcGhlbWVy
YWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVwaGVtZXJh
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE0NmNjOTViOGUxMTM4OTZmZWQ5MjAyMWQ2Zjc0MDdmYzAwYjYx
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlm
cmFtZS1lcGhlbWVyYWwuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2Vz
cyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgbm90IHNhbmRib3hlZCBhbmQgdGhlIHVzZXIg
YWNjZXB0cyAoZXBoZW1lcmFsKS4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwor
ICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2Fn
ZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZh
bHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7Cisg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBh
Y3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVy
WCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVp
Z2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVy
WSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
ICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBj
YXNlICIiOgorICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYSBjb29raWUgZm9yIHRoZSB0aGlyZC1wYXJ0eSBh
bmQgY29udGludWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1j
b29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0
eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVwaGVtZXJhbC5odG1sI3N0ZXAxIjsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9u
KHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJh
bWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVU
aGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFt
ZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3Ms
dXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9y
aWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4t
c2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1
cmUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTc4ZWIxNjMzNjZlNjg5OGZj
MWJiYTQ3ZDhjMmM5NGIyMzVmYTUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2lu
LXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZXBoZW1lcmFsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3Rv
cmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMgdGhl
IGFsbG93IHRva2VuLCBidXQgY2FsbHMgdGhlIEFQSSB3aXRob3V0IGEgdXNlciBnZXN0dXJlIGJl
aW5nIHByb2Nlc3NlZCAoZXBoZW1lcmFsKS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGRlbmllZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWVw
aGVtZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5M2JkMTMxNzdjMmQ0MmNjMzRlM2IxOGFkNTk0NmEy
NWMwYzU4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlm
cmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwuaHRtbApAQCAtMCwwICsxLDQ5IEBA
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0t
PgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2lu
IGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94
ZWQsIGhhcyB0aGUgYWxsb3cgdG9rZW4sIGJ1dCBjYWxscyB0aGUgQVBJIHdpdGhvdXQgYSB1c2Vy
IGdlc3R1cmUgYmVpbmcgcHJvY2Vzc2VkIChlcGhlbWVyYWwpLiIpOworICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9z
dDo4MDAwIjsKKyAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RV
bmRlclRlc3QgKyAiL3RlbXAiOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1Mi
KSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBs
YWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNz
YWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2ll
cyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFs
c2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxl
bWVudC5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nlc3MtYnktdXNl
ci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxz
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVz
b3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtd2l0aG91dC11c2VyLWdlc3R1cmUtaWZyYW1l
Lmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xp
Y3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA5OTliZWJjMDk4MDlhNGVlMjI3MTZhZGY3MGE0NjQwYmQwM2Nl
ZTUyLi43YzMyNTQ4Nzk1ZWMyMjc2ZDUyNDNjMTMyNGE0NjQ4MGUwYTRhNmMyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjc5MCwxNSArMjc5MCwxNyBA
QCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVu
ZXItaWYtYXV0by1kaXNtaXNzLmh0bWwgWwogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBbIFBhc3Mg
XQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1k
ZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwuaHRtbCBbIFBhc3MgXQotaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5
LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMt
Y29va2llcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KLWh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9o
YXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVy
YWwtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZGF0
YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVu
eS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlm
LWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBb
IFBhc3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxz
ZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sIFsgUGFzcyBdCiAKKyMgRW5hYmxl
IGFnYWluIHdoZW4gZml4aW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDg0MDAuCitodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRy
dWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLmh0bWwgWyBTa2lwIF0KK2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1w
YXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQorCiAjIFNr
aXBwZWQgaW4gZ2VuZXJhbCBleHBlY3RhdGlvbnMgc2luY2UgdGhleSBvbmx5IHdvcmsgb24gaU9T
IGFuZCBNYWMsIFdLMi4KIGh0dHAvdGVzdHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8tb3Jp
Z2luLWZvci10aGlyZC1wYXJ0eS1yZWRpcmVjdHMtaW4tcHJpdmF0ZS1tb2RlLmh0bWwgWyBQYXNz
IF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci10aGly
ZC1wYXJ0eS1yZXF1ZXN0cy1pbi1wcml2YXRlLW1vZGUuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiYTY3ZGQ5ZWNh
NmVjODMxMzFlMGI3YWJlNTZmNTY1OGE5ZTdiYmQuLjk2NmEwNTRlNzMxNDhhZjBiZmVhNWQxYzVk
NjA5NmEzMDc5YzJiOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTY4OSw2ICs2ODksMTAgQEAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXIK
IFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRoLXByb21w
dC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJlLmh0bWwgWyBTa2lwIF0KIFsgSGlnaFNpZXJyYSsg
XSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVz
ZXJ2ZS1nZXN0dXJlLWRhdGFiYXNlLmh0bWwgWyBTa2lwIF0KIAorIyBFbmFibGUgYWdhaW4gd2hl
biBmaXhpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQwMC4K
K2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGly
ZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBh
cnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgU2tpcCBdCisKICMgQXMgb2YgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyNzc2MiB0aGUgdGltZXN0YW1wUmVzb2x1dGlv
biBpcyBqdXN0IDUgc2Vjb25kcyB3aGljaCBtYWtlcyB0aGlzIHRlc3QgZmxha3kKIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQt
b25jZS13aXRoaW4tc2hvcnQtcGVyaW9kLW9mLXRpbWUuaHRtbCBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392163</attachid>
            <date>2020-03-02 11:23:45 -0800</date>
            <delta_ts>2020-03-23 16:28:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208399-20200302112345.patch</filename>
            <type>text/plain</type>
            <size>150733</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJiZDJkYWI5M2U2Y2My
YTExM2FmNDcxZjI3YjQ1MDQ4ZTJjZTg4NC4uZDBkOTZhMmUzMjFiMTAxMGM1ZTBlNWFjNjEzM2Vh
ZTMyM2VmYzNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAzLTAyICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlTG9hZFN0
YXRpc3RpY3M6IEVuYWJsZSBjb29raWUgYmxvY2tpbmcgYW5kIHRoZSBTdG9yYWdlIEFjY2VzcyBB
UEkgaW4gZXBoZW1lcmFsIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDgzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NzMxNjUw
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGVzdHM6
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1l
cmFsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1
ZS10by1uby1pbnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9j
a2luZy1lcGhlbWVyYWwuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1i
bG9ja2luZy13aXRoLWNvb2tpZS1lcGhlbWVyYWwuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJk
LXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aXRob3V0LWNvb2tpZS1lcGhlbWVyYWwuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1lcmFsLmh0bWwKKyAg
ICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWVw
aGVtZXJhbC5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5o
OgorICAgICAgICAgICAgQWRkcyBhIGJvb2xlYW4gZW51bSBJc0VwaGVtZXJhbCB3aGljaCBpcyB1
c2VkIHRvIGNhcHR1cmUgZXBoZW1lcmFsIHN0YXRlCisgICAgICAgICAgICBhY3Jvc3MgdmFyaW91
cyBjbGFzc2VzLgorCiAyMDIwLTAzLTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0JGQ11bTWFyZ2luQ29sbGFwc2luZ10gU29tZXRpbWVzIHByZWNvbXB1dGVk
IG1hcmdpbiB2YWx1ZXMgYXJlIGp1c3QgcGxhaW4gd3JvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5NGVjNDAz
MGI1YjJkMjA2MjQ4ZGVkODI2ZTI0MzEzMjNkMzM1MTIuLjg4YzYwODNjMjMwYWZlYWZkYTQ2YTg2
N2QxYWQ0YzU3OWE2YmEyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIwLTAzLTAy
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNl
TG9hZFN0YXRpc3RpY3M6IEVuYWJsZSBjb29raWUgYmxvY2tpbmcgYW5kIHRoZSBTdG9yYWdlIEFj
Y2VzcyBBUEkgaW4gZXBoZW1lcmFsIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0
NzMxNjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAg
VGhpcyBwYXRjaCBlbmFibGVzIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcywgb3IgSVRQLCBpbiBl
cGhlbWVyYWwgc2Vzc2lvbnMuCisKKyAgICAgICAgU2luY2UgZnVsbCB0aGlyZC1wYXJ0eSBjb29r
aWUgYmxvY2tpbmcgaXMgc3RhdGVsZXNzLCBpdCBjYW4gbm93IGJlIGVuYWJsZWQgaW4KKyAgICAg
ICAgZXBoZW1lcmFsIHNlc3Npb25zLiBVc2VyIGludGVyYWN0aW9uIGFzIGEgZ2F0ZSBmb3IgY2Fs
bGluZyB0aGUgU3RvcmFnZSBBY2Nlc3MKKyAgICAgICAgQVBJIGNhbiBiZSBjYXB0dXJlZCBpbiBh
biBlcGhlbWVyYWwgZmFzaGlvbiBhcyB3ZWxsIHRvIGFsbG93IGF1dGhlbnRpY2F0ZWQKKyAgICAg
ICAgZW1iZWRzLgorCisgICAgICAgIE5vIGFjdHVhbCBzdGF0aXN0aWNzIGFyZSBjYXB0dXJlZCB3
aGljaCBtZWFucyB0aGF0IHRoZSBjb25zdHJ1Y3RvciBmb3IKKyAgICAgICAgV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc2tpcHMgc2V0dGluZyB1cCB0aGUgbWVtb3J5IHN0
b3JlLAorICAgICAgICB0aGUgcGVyc2lzdGVudCBzdG9yZSwgYW5kIHRoZSBkYXRhYmFzZSBzdG9y
ZS4KKworICAgICAgICBUaGUgZnVuY3Rpb25hbGl0eSB0aGF0IGlzIHN1cHBvcnRlZCBpcyBpbnN0
ZWFkIGNhcnJpZWQgb3V0IGluIGEgc2V0IG9mCisgICAgICAgIHByaXZhdGUgIipFcGhlbWVyYWwo
KSIgZnVuY3Rpb25zLCBmb3IgaW5zdGFuY2UgaGFzU3RvcmFnZUFjY2Vzc0VwaGVtZXJhbCgpLgor
ICAgICAgICBUaGUgcHVibGljIGZ1bmN0aW9ucyBjaGVjayBlcGhlbWVyYWwgc3RhdHVzIGFuZCBy
b3V0ZSBhY2NvcmRpbmdseS4KKworICAgICAgICBBIHJlbGVhc2UgYXNzZXJ0aW9uIGluIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cG9zdFRhc2soKQorICAgICAgICBndWFyYW50ZWVz
IHRoYXQgd2UgbmV2ZXIgbWFrZSB1c2Ugb2YgdGhlIHN0YXRpc3RpY3MgbGF5ZXIgaW4gZXBoZW1l
cmFsCisgICAgICAgIHNlc3Npb25zLgorCisgICAgICAgIEVhcmx5IHJldHVybnMgZm9yIGVwaGVt
ZXJhbCBzZXNzaW9ucyBoYXMgYmVlbiByZW1vdmVkIGluIHNldmVyYWwgcGxhY2VzLgorICAgICAg
ICBXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyIG5vdyBhY2NlcHRzIGJlaW5nIGluc3Rh
bnRpYXRlZCBpbiBhbgorICAgICAgICBlcGhlbWVyYWwgc2Vzc2lvbiBidXQgaXMgdG9sZCB3aGV0
aGVyIGl0IGlzIGFuZCBza2lwcyBhbGwgc3RhdGlzdGljcworICAgICAgICBjb2xsZWN0aW9uIGV4
Y2VwdCB1c2VyIGludGVyYWN0aW9uIHdoaWNoIGlzIG5lZWRlZCB0byBnYXRlIHRoZQorICAgICAg
ICBTdG9yYWdlIEFjY2VzcyBBUEkuIEEgcmVsZWFzZSBhc3NlcnRpb24gaW4KKyAgICAgICAgV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKCkKKyAgICAgICAgbWFrZXMgc3VyZSB0aGF0IHdlIG5ldmVyIHN0YXJ0IGNvbGxl
Y3Rpbmcgc3RhdGlzdGljcyBpbiBlcGhlbWVyYWwgbW9kZS4KKworICAgICAgICBBIHNlbGVjdGlv
biBvZiB0ZXN0IGNhc2VzIGhhdmUgYmVlbiBhZGRlZCB3aXRoIGFuIGVwaGVtZXJhbCBzZXR0aW5n
IGFuZAorICAgICAgICBhIG5ldyB0ZXN0IGZ1bmN0aW9uIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VwaGVtZXJhbCgpIGhhcyBiZWVuIGFkZGVkCisgICAgICAgIHNvIHRoYXQgbGF5b3V0IHRlc3Rz
IGNhbiBtYWtlIHN1cmUgdGhhdCBhbiBlcGhlbWVyYWwgc2V0dXAgaXMgcnVubmluZy4KKyAgICAg
ICAgVGhpcyBsYXN0IGJpdCBpcyBpbXBvcnRhbnQgc2luY2UgdGVzdCBjYXNlcyB3aWxsIGxpa2Vs
eSBzdGlsbCBwYXNzIGlmIGEKKyAgICAgICAgcmVncmVzc2lvbiB3ZXJlIHRvIG1ha2UgdGhlIHRl
c3Qgc2Vzc2lvbiBwZXJzaXN0ZW50LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnNldElzUnVubmluZ1Rlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cG9zdFRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NFcGhlbWVyYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJFcGhlbWVyYWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50
U3RvcmFnZUFjY2Vzc0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Rmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nVXNlckludGVyYWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dV
c2VySW50ZXJhY3Rpb25FcGhlbWVyYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbkVw
aGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6aGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmlzUHJldmFsZW50
UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFySW5NZW1vcnlFcGhlbWVyYWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc2V0
UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZCk6CisgICAgICAgICAgICBBZGRlZCBhIGNvbW1l
bnQgb24gd2h5IHRoaXMgZnVuY3Rpb24gaXMgbm90IGFwcGxpY2FibGUgdG8gZXBoZW1lcmFsIHNl
c3Npb25zLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlc3VtZSk6CisgICAgICAgICAgICBBZGRlZCBhIGNvbW1lbnQgb24gd2h5IHRoaXMgZnVuY3Rp
b24gaXMgbm90IGFwcGxpY2FibGUgdG8gZXBoZW1lcmFsIHNlc3Npb25zLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgICAgIFNraXBwZWQgY2Fs
bCB0byBzdXNwZW5kIElUUCBpZiBpdCdzIHJ1bm5pbmcgaW4gZXBoZW1lcmFsIG1vZGUuCisgICAg
ICAgIChXZWJLaXQ6OnZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc3VtZSk6CisgICAgICAgICAgICBT
a2lwcGVkIGNhbGwgdG8gcmVzdW1lIElUUCBpZiBpdCdzIHJ1bm5pbmcgaW4gZXBoZW1lcmFsIG1v
ZGUuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpyZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3Jl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoK
KyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0VwaGVtZXJhbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVy
YWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphZGRTZXNzaW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VwaGVtZXJhbCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZE9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXI6OldlYlJlc291cmNlTG9hZE9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJh
YmxlRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omxv
Z0ZvbnRMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omxv
Z0NhbnZhc1JlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
bG9nQ2FudmFzV3JpdGVPck1lYXN1cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6bG9nTmF2aWdhdG9yQVBJQWNjZXNzZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU2NyZWVuQVBJQWNjZXNzZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVzb3VyY2VMb2FkaW5nKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNvY2tldExv
YWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNl
ckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxvYWRpbmdGb3JUZXN0aW5n
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9i
c2VydmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCk6CisKIDIwMjAtMDMtMDIgIEphY29iIFVwaG9mZiAgPGphY29iX3VwaG9mZkBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NzY4Ny4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IDc4ZTIxNmE5NGYz
OWM0MDY0YTBmNjU5MDlmMTBlZDYyYjBkYTQzMWEuLjU5N2U1YzE0OWExMTIyNGI5YTQwYjhlNTc3
MjY3ZmRiOThhMWEyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MuaApAQCAtOTksNiArOTksOCBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyB7CiAgICAgdW5zaWduZWQgdGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1ZVRvVXNlcklu
dGVyYWN0aW9uIHsgMCB9OwogICAgIHVuc2lnbmVkIHRpbWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlE
dWVUb1N0b3JhZ2VBY2Nlc3NBUEkgeyAwIH07CiAKKyAgICBlbnVtIGNsYXNzIElzRXBoZW1lcmFs
IDogYm9vbCB7IE5vLCBZZXMgfTsKKwogICAgIGVudW0gY2xhc3MgTmF2aWdhdG9yQVBJIDogdWlu
dDY0X3QgewogICAgICAgICBBcHBWZXJzaW9uID0gMSA8PCAwLAogICAgICAgICBVc2VyQWdlbnQg
PSAxIDw8IDEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCmluZGV4IDFhMjg0ZTQ1ZGRiM2YxMDIwMjY3Yzk1ODVkNzExYzA5YzMzYmEzY2MuLmVmZTk5
MTliOGM1M2NiYWRlNDE1Mjg5YmVmZTJmZTVhMWZjYTkzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC05MSw2ICs5MSw5IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKGJvCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAor
ICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKICAgICBwb3N0VGFzayhb
dGhpcywgdmFsdWVdIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0b3JlKQogICAgICAgICAg
ICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQodmFsdWUpOwpAQCAtMTAxLDYgKzEwNCwxMSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChi
bwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCisgICAgaWYgKGlzRXBo
ZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIHBvc3RUYXNrKFt0aGlzLCB2YWx1ZSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1f
c3RhdGlzdGljc1N0b3JlKQogICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldE5vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodmFsdWUpOwpAQCAtMTEyLDcgKzEyMCwx
MiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChibwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldElzUnVubmluZ1Rlc3QoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgCisKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgcG9zdFRhc2soW3Ro
aXMsIHZhbHVlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCiAgICAgICAgICAg
ICBtX3N0YXRpc3RpY3NTdG9yZS0+c2V0SXNSdW5uaW5nVGVzdCh2YWx1ZSk7CkBAIC0xNTEsMTMg
KzE2NCwxOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5
UGFnZXNXaGVuVGVsZW1ldHJ5V2FzQ2FwdHVyZWQoYm9vbAogICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiB9CiAKLVdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29uc3QgU3Ry
aW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNsdWRlTG9jYWxo
b3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29y
a1Nlc3Npb24sIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwg
U2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKICAgICA6IG1fbmV0d29ya1Nl
c3Npb24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQogICAgICwgbV9zdGF0aXN0aWNzUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9j
ZXNzIERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6
OlV0aWxpdHkpKQogICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKKyAg
ICAsIG1faXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogCisgICAgLy8gTm8gZGFpbHkgdGFza3MgbmVlZGVkIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMgc2luY2Ugbm8gcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGFyZSBjb2xs
ZWN0ZWQuCisgICAgaWYgKGlzRXBoZW1lcmFsID09IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Oklz
RXBoZW1lcmFsOjpZZXMpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9zdFRhc2soW3RoaXMs
IGRhdGFiYXNlRW5hYmxlZCA9IG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkuaXNJVFBE
YXRhYmFzZUVuYWJsZWQoKSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZEluY2x1ZGVM
b2NhbGhvc3QsIHNlc3Npb25JRCA9IG5ldHdvcmtTZXNzaW9uLnNlc3Npb25JRCgpXSB7CiAgICAg
ICAgICAgICBpZiAoZGF0YWJhc2VFbmFibGVkKSB7CkBAIC0yMDEsNiArMjE5LDkgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRpZERlc3Ryb3lOZXR3b3JrU2Vzc2lvbigp
CiAKIGlubGluZSB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cG9zdFRhc2so
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKIHsKKyAgICAvLyBSZXNvdXJjZSBsb2FkIHN0
YXRpc3RpY3Mgc2hvdWxkIG5vdCBiZSBjYXB0dXJlZCBmb3IgZXBoZW1lcmFsIHNlc3Npb25zLgor
ICAgIFJFTEVBU0VfQVNTRVJUKCFpc0VwaGVtZXJhbCgpKTsKKwogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgbV9zdGF0aXN0aWNzUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CiAgICAgICAgIHRh
c2soKTsKQEAgLTI2MCw2ICsyODEsMTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWwKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIHBvc3RUYXNrKFt0aGlzLCB2YWx1ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljc1N0
b3JlKQogICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGUodmFsdWUpOwpAQCAtMjcxLDYgKzI5NywxMSBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUo
Y29uc3QgUmVnaQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCisgICAg
aWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4u
aXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkKICAgICAg
ICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShkb21haW4pOwpAQCAtMzIwLDYgKzM1MSw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzCiAg
ICAgQVNTRVJUKHN1YkZyYW1lRG9tYWluICE9IHRvcEZyYW1lRG9tYWluKTsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJl
dHVybiBoYXNTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURv
bWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKICAg
ICBwb3N0VGFzayhbdGhpcywgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRl
ZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwg
ZnJhbWVJRCwgcGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1fc3RhdGlzdGljc1N0b3JlKSB7CiAg
ICAgICAgICAgICBwb3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMzM2LDYgKzM3MCwxOSBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcwogICAgIH0pOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0VwaGVtZXJhbChjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgQVNTRVJUKGlzRXBoZW1lcmFsKCkpOworCisgICAgaWYgKG1fbmV0d29ya1Nlc3Np
b24pIHsKKyAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN0b3JhZ2VTZXNzaW9uLT5oYXNTdG9yYWdlQWNjZXNzKHN1YkZyYW1lRG9tYWluLCB0b3BG
cmFtZURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiBib29sIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTM3
Miw2ICs0MTksOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAorICAgIGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm4gcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NFcGhlbWVyYWwoc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBm
cmFtZUlELCB3ZWJQYWdlSUQsIHdlYlBhZ2VQcm94eUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisKICAgICBhdXRvIHN0YXR1c0hhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVk
Q29weSgpLCB0b3BGcmFtZURvbWFpbiA9IHRvcEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBm
cmFtZUlELCB3ZWJQYWdlSUQsIHdlYlBhZ2VQcm94eUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNjZXNzU3RhdHVzIHN0YXR1cykgbXV0
YWJsZSB7CiAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgIGNhc2UgU3RvcmFnZUFj
Y2Vzc1N0YXR1czo6Q2Fubm90UmVxdWVzdEFjY2VzczoKQEAgLTQxMyw2ICs0NjMsMjMgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWkKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlELCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChpc0VwaGVtZXJh
bCgpKTsKKworICAgIGlmICghbV9uZXR3b3JrU2Vzc2lvbiB8fCAhbV9kb21haW5zV2l0aEVwaGVt
ZXJhbFVzZXJJbnRlcmFjdGlvbi5jb250YWlucyhzdWJGcmFtZURvbWFpbikpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4gcmVxdWVzdENvbmZpcm1hdGlvbkNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9t
YWluLCBmcmFtZUlELCB3ZWJQYWdlSUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildIChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgbXV0YWJsZSB7CisgICAg
ICAgIGlmICh1c2VyRGlkR3JhbnRBY2Nlc3MpCisgICAgICAgICAgICBncmFudFN0b3JhZ2VBY2Nl
c3NFcGhlbWVyYWwoc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBmcmFtZUlELCB3ZWJQ
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6WWVzLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
OjpZZXMpOworICAgIH07CisKKyAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrUHJvY2Vzcygp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKHdlYlBhZ2VQ
cm94eUlELCBmcmFtZUlELCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3Zl
KHJlcXVlc3RDb25maXJtYXRpb25Db21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5l
cihSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgUGFnZUlk
ZW50aWZpZXIgb3BlbmVyUGFnZUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbikK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNDI2LDYgKzQ5MywxNiBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NV
bmRlck9wZW5lcihSZWdpc3RyYWJsZQogICAgIH0pOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckVwaGVtZXJh
bChSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgUGFnZUlk
ZW50aWZpZXIgb3BlbmVyUGFnZUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbikK
K3sKKyAgICBBU1NFUlQoaXNFcGhlbWVyYWwoKSk7CisKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5n
cmFudFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBX
VEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlEKTsKKyAgICB9
Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNDQ1LDYgKzUyMiwyMCBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJgogICAgIH0pOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKGlzRXBoZW1lcmFsKCkp
OworCisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAgICAgICAgaWYgKGF1dG8qIHN0b3Jh
Z2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpIHsK
KyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5ncmFudFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVE
b21haW4sIHRvcEZyYW1lRG9tYWluLCBmcmFtZUlELCBwYWdlSUQpOworICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcywgcHJvbXB0V2FzU2hv
d24pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGNvbXBsZXRp
b25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgcHJvbXB0V2FzU2hvd24pOwor
fQorCiBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNDk0LDYgKzU4NSw5IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlKFRoaXJkUGFydHlDCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9
CiAKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgcG9zdFRh
c2soW3RoaXMsIGJsb2NraW5nTW9kZV0oKSB7CiAgICAgICAgIGlmICghbV9zdGF0aXN0aWNzU3Rv
cmUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01MDYsNiArNjAwLDExIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFs
TW9kZShGaXJzdFBhCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGlm
IChpc0VwaGVtZXJhbCgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBwb3N0VGFzayhbdGhpcywgbW9kZSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKG1fc3RhdGlzdGljc1N0b3JlKSB7CiAgICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+
c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUobW9kZSk7CkBAIC01NDQsNyArNjQz
LDggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZUFsbFN0b3Jh
Z2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm8KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjphcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7Ci0gICAgZmx1c2hBbmREZXN0cm95UGVyc2lzdGVudFN0b3JlKCk7Cisg
ICAgaWYgKCFpc0VwaGVtZXJhbCgpKQorICAgICAgICBmbHVzaEFuZERlc3Ryb3lQZXJzaXN0ZW50
U3RvcmUoKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZv
cm1EYWlseVRhc2tzKCkKQEAgLTU4OSw2ICs2ODksMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgLy8gVXNlciBpbnRl
cmFjdGlvbnMgbmVlZCB0byBiZSBsb2dnZWQgZm9yIGVwaGVtZXJhbCBzZXNzaW9ucyB0byBzdXBw
b3J0IHRoZSBTdG9yYWdlIEFjY2VzcyBBUEkuCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAg
ICAgIHJldHVybiBsb2dVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoZG9tYWluLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisKICAgICBwb3N0VGFzayhbdGhpcywgZG9tYWluID0gZG9tYWlu
Lmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGlubmVyQ29tcGxldGlvbkhhbmRsZXIg
PSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpAQCAtNjAxLDYgKzcwNSwxNCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6bG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIH0p
OwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nVXNlckludGVy
YWN0aW9uRXBoZW1lcmFsKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNF
cGhlbWVyYWwoKSk7CisKKyAgICBtX2RvbWFpbnNXaXRoRXBoZW1lcmFsVXNlckludGVyYWN0aW9u
LmFkZChkb21haW4pOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0
aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNjE2LDcgKzcy
OCwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nQ3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25zdCBSZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIAorCisgICAgaWYgKGlzRXBo
ZW1lcmFsKCkpCisgICAgICAgIHJldHVybiBjbGVhclVzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbChk
b21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKwogICAgIHBvc3RUYXNrKFt0aGlz
LCBkb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gaW5uZXJD
b21wbGV0aW9uSGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC02MjksMTAgKzc0NCwyMSBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0
cmFibGVEb21haQogICAgIH0pOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIEFTU0VSVChpc0VwaGVtZXJhbCgpKTsKKworICAgIG1fZG9tYWluc1dpdGhFcGhl
bWVyYWxVc2VySW50ZXJhY3Rpb24ucmVtb3ZlKGRvbWFpbik7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVz
ZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0
dXJuIGhhc0hhZFVzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbChkb21haW4sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKwogICAgIHBvc3RUYXNrKFt0aGlzLCBkb21haW4gPSBkb21haW4uaXNv
bGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7CiAgICAgICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uID0gbV9zdGF0
aXN0aWNzU3RvcmUgPyBtX3N0YXRpc3RpY3NTdG9yZS0+aGFzSGFkVXNlckludGVyYWN0aW9uKGRv
bWFpbiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3c6OkxvbmcpIDogZmFsc2U7CiAgICAgICAgIHBvc3RU
YXNrUmVwbHkoW2hhZFVzZXJJbnRlcmFjdGlvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTY0MSw2ICs3NjcsMTMgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvbWEKICAgICB9KTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbkVwaGVtZXJhbChjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChpc0VwaGVtZXJhbCgpKTsKKworICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1fZG9tYWluc1dpdGhFcGhlbWVyYWxVc2VySW50ZXJhY3Rpb24uY29u
dGFpbnMoZG9tYWluKSk7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtNzQ2LDcgKzg3OSwxMiBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoQ29tcGxldGlvbkhhbmRsZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmlzUHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIAorCisgICAgaWYgKGlzRXBoZW1lcmFsKCkp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgcG9zdFRhc2soW3RoaXMsIGRvbWFpbiA9IGRvbWFpbi5pc29sYXRlZENvcHko
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgYm9vbCBpc1ByZXZhbGVudFJlc291cmNlID0gbV9zdGF0aXN0aWNzU3Rv
cmUgPyBtX3N0YXRpc3RpY3NTdG9yZS0+aXNQcmV2YWxlbnRSZXNvdXJjZShkb21haW4pIDogZmFs
c2U7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoW2lzUHJldmFsZW50UmVzb3VyY2UsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC05
MjYsNiArMTA2NCw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hl
ZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKENvbXBsZXRpb25IYW5kCiAKIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50
KFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChpc0VwaGVt
ZXJhbCgpKQorICAgICAgICByZXR1cm4gY2xlYXJJbk1lbW9yeUVwaGVtZXJhbChXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHNob3VsZEdy
YW5kZmF0aGVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9wZXJzaXN0ZW50U3RvcmFnZSkKQEAgLTk2Nyw2
ICsxMTA4LDE1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzY2hlZHVs
ZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFdhbGxUaW1lCiAgICAgc2NoZWR1bGVDbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudChzaG91bGRHcmFuZGZhdGhlciwgV1RGTW92ZShjYWxsYmFjaykp
OwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJJbk1lbW9y
eUVwaGVtZXJhbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgbV9kb21haW5zV2l0aEVwaGVtZXJhbFVzZXJJbnRlcmFjdGlvbi5jbGVhcigpOwor
ICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpKQorICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlQWxsU3RvcmFn
ZUFjY2VzcygpOworICAgIAorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9u
KFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xMDcxLDYgKzEy
MjEsMTEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc2V0UGFyYW1l
dGVyc1RvRGVmYXVsdFZhbHVlcyhDb21wbGV0aW9uSGEKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCisgICAgaWYgKGlzRXBoZW1lcmFsKCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHBvc3RUYXNrKFt0aGlz
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewogICAgICAgICBpZiAobV9zdGF0aXN0aWNzU3RvcmUpCiAgICAgICAgICAgICBtX3N0YXRp
c3RpY3NTdG9yZS0+cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKCk7CkBAIC0xMTY1LDcg
KzEzMjAsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6YWdncmVnYXRl
ZFRoaXJkUGFydHlEYXRhKENvbXBsZXRpb25IYW5kbGVyPAogCiB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAv
LyBTdXNwZW5kIGlzIG5lZWRlZCB0byBtYW5hZ2UgdGhlIGRhdGFiYXNlIHN0b3JlIHdoaWNoIGlz
IG5vdCB1c2VkIGluIGVwaGVtZXJhbCBzZXNzaW9ucy4KKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkgJiYgIWlzRXBoZW1lcmFsKCkpOwogCiAgICAgQ29tcGxldGlvbkhhbmRsZXJDYWxsaW5n
U2NvcGUgY29tcGxldGlvbkhhbmRsZXJDYWxsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIExvY2tlcjxMb2NrPiBzdGF0ZUxvY2tlcihtX3N0YXRlTG9jayk7CkBAIC0xMTkzLDcg
KzEzNDksOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldAogCiB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCkKIHsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOworICAgIC8vIFJlc3VtZSBpcyBuZWVkZWQgdG8gbWFuYWdlIHRoZSBkYXRhYmFzZSBzdG9y
ZSB3aGljaCBpcyBub3QgdXNlZCBpbiBlcGhlbWVyYWwgc2Vzc2lvbnMuCisgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpICYmICFpc0VwaGVtZXJhbCgpKTsKIAogICAgIExvY2tlcjxMb2NrPiBz
dGF0ZUxvY2tlcihtX3N0YXRlTG9jayk7CiAgICAgYXV0byBwcmV2aW91c1N0YXRlID0gbV9zdGF0
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA0
MTIyNjM0MTkyM2U2NGI3ZjA0ODg5MzAwMjA3YWNkMDNlNGVjMDE2Li5lZjFiODEwOWJhYzRlMTlh
ZjFmMGUzNzZkMGE1MmY5Y2UzY2NkMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgpAQCAtOTgsOSArOTksOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQgPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDsK
ICAgICB1c2luZyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gPSBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd247CiAKLSAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZT4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29u
c3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBTaG91bGRJbmNsdWRl
TG9jYWxob3N0IHNob3VsZEluY2x1ZGVMb2NhbGhvc3QpCisgICAgc3RhdGljIFJlZjxXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nl
c3Npb24sIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShu
ZXR3b3JrU2Vzc2lvbiwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgc2hvdWxkSW5j
bHVkZUxvY2FsaG9zdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUobmV0d29ya1Nlc3Npb24sIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnksIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIGlzRXBoZW1lcmFsKSk7CiAgICAg
fQogCiAgICAgfldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwpAQCAtMjUxLDYgKzI1
Miw3IEBAIHN0cnVjdCBUaGlyZFBhcnR5RGF0YSB7CiAgICAgdm9pZCBzdWJtaXRUZWxlbWV0cnko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVy
c2lzdGVudChXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3Rp
Y3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckluTWVtb3J5
RXBoZW1lcmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHNldFRp
bWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChT
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjg5LDE1ICsyOTEsMjYg
QEAgc3RydWN0IFRoaXJkUGFydHlEYXRhIHsKICAgICB2b2lkIGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5
RGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiYmKT4mJik7CiAgICAgdm9pZCBzdXNwZW5kKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXN1bWUoKTsKKyAgICAKKyAgICBi
b29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4gbV9pc0VwaGVtZXJhbCA9PSBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzOyB9OwogCiBwcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vz
c2lvbiYsIGNvbnN0IFN0cmluZyYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QpOworICAgIGV4cGxp
Y2l0IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0
IFN0cmluZyYsIFNob3VsZEluY2x1ZGVMb2NhbGhvc3QsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M6OklzRXBoZW1lcmFsKTsKIAogICAgIHZvaWQgcG9zdFRhc2soV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyB2b2lkIHBvc3RUYXNrUmVwbHkoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBwZXJmb3JtRGFpbHlUYXNrcygpOwogCisgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzRXBoZW1lcmFsKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0VwaGVtZXJhbChjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyRXBo
ZW1lcmFsKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBvcGVuZXJJRCwgT3BlbmVyRG9tYWluJiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNj
ZXNzRXBoZW1lcmFsKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworCisgICAg
dm9pZCBsb2dVc2VySW50ZXJhY3Rpb25FcGhlbWVyYWwoY29uc3QgVG9wRnJhbWVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rp
b25FcGhlbWVyYWwoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9uRXBoZW1lcmFsKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisK
ICAgICBTdG9yYWdlQWNjZXNzU3RhdHVzIHN0b3JhZ2VBY2Nlc3NTdGF0dXMoY29uc3QgU3RyaW5n
JiBzdWJGcmFtZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVQcmltYXJ5RG9t
YWluKTsKIAogICAgIHZvaWQgZmx1c2hBbmREZXN0cm95UGVyc2lzdGVudFN0b3JlKCk7CkBAIC0z
MDksNiArMzIyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZT4gbV9kYWlseVRhc2tzVGltZXI7CiAKKyAgICBXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCBtX2lzRXBoZW1lcmFsIHsgV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6Ok5vIH07CisgICAgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4gbV9kb21haW5zV2l0aEVwaGVtZXJhbFVzZXJJbnRlcmFjdGlv
bjsKKwogICAgIGJvb2wgbV9oYXNTY2hlZHVsZWRQcm9jZXNzU3RhdHMgeyBmYWxzZSB9OwogCiAg
ICAgYm9vbCBtX2ZpcnN0TmV0d29ya1Byb2Nlc3NDcmVhdGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNmY5N2UzMmE3ZjVmMTBkY2MwNjk0MGYxNzkyOGVjZGEw
MzVkYTBiOS4uYzNjMDhhOWJlZjExNTJmNDdkNTMzMGVkYmQ3NzY5OGI2MmJiYjc1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTgwMyw2ICs4MDMsOCBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0
aXN0aWNzKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtT
ZXNzaW9uKCkpIHsKKyAgICAgICAgaWYgKG5ldHdvcmtTZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Vw
aGVtZXJhbCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCiAgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVXBkYXRlZChXVEZNb3ZlKHN0YXRpc3RpY3MpKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDVkMTE2ZjljMzgy
OTc3Njk2MzIwM2UxM2IzY2QzNDUyY2ZiMzZlMjcuLjQzMjk1MGQ5MjY5ZmMxNzAyMzI3M2RjZjFj
OGJiM2ExOGZiYzQ1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC0xMjA4LDYgKzEyMDgsMTggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQKICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Cit7CisgICAgaWYgKGF1
dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewor
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9u
LT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzRXBoZW1lcmFsKCkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNl
c3Npb24oc2Vzc2lvbklEKSkKQEAgLTIxMzYsOCArMjE0OCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbAogICAgIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAg
Zm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRvJiBuZXR3b3Jr
U2Vzc2lvbikgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5l
dHdvcmtTZXNzaW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKKyAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKKyAgICAgICAgICAgIGlmICghcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+aXNFcGhlbWVyYWwoKSkKKyAgICAgICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5zdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIH0K
ICAgICB9KTsKICNlbmRpZgogCkBAIC0yMTg1LDggKzIxOTksMTAgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cmVzdW1lKCkKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFtdKGF1dG8mIG5ldHdvcmtTZXNzaW9uKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24ucmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+cmVzdW1lKCk7CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
bmV0d29ya1Nlc3Npb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CisgICAgICAgICAgICBp
ZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzRXBoZW1lcmFsKCkpCisgICAgICAgICAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVzdW1lKCk7CisgICAgICAgIH0KICAgICB9KTsK
ICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCmluZGV4IDM0MmQ2YTZiZTkzMjY1NDI1ZDVkZDI5ZDc4OWI2ZTUxODE4Y2UzNDEuLjc2
OTU5NTg1NTgyOTMwMmExYmVkOTU5NjQxMjgxM2YzMzM1NzJmMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI0OCw2ICsyNDgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChQQUw6OlNl
c3Npb25JRCwgYm9vbCk7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVz
dGluZ0V2ZW50KGJvb2wpOwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZShQQUw6OlNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJmQpOworICAgIHZvaWQgaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKICAg
ICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFs
KFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCBjOGQwMDhmZDkxZWVmYzAyZDdiZTFkYjVlOGE0N2JiMzkzODAzNjdkLi5lYmViYWRk
ZmJkMmUwMzZkZDAyZjRlZmJmOTk2NDU2MTNlYjI4MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTk3
LDYgKzk3LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQs
IGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVj
b3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3lu
YwogICAgIEhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24pIEFzeW5jCiAgICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKSBBc3luYwogICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAo
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDkyYWIxYmQ1OGVkY2Y4MDIyMjVhMDEy
YzY4OTYxZmE5ZGIyM2ZlZWEuLmFlY2I1NmNkYzU0MzU2ZDIyZWM0YTExYzRkNmE4MTZmOGJiMTZl
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCkBAIC0xNjQsMTIgKzE2NCw5IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQogICAgIGlmIChtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FKDE5MzcyOCk6IFN1
cHBvcnQgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBmb3IgZXBoZW1lcmFsIHNlc3Npb25zLCB0b28u
Ci0gICAgaWYgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIG1f
c2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7Ci0gICAgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soW10geyB9
KTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNyZWF0ZSgqdGhpcywgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
LCBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsIChtX3Nl
c3Npb25JRC5pc0VwaGVtZXJhbCgpID8gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVy
YWw6OlllcyA6IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpObykpOworICAg
IGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgbV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soW10geyB9KTsKIAogICAgIGlm
IChtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPT0gRW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTo6WWVzKQogICAgICAgICBtX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUodHJ1ZSwgW10geyB9
KTsKQEAgLTE4Miw5ICsxNzksMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFibGUpCiB2b2lkIE5ldHdvcmtTZXNzaW9uOjpy
ZWNyZWF0ZVJlc291cmNlTG9hZFN0YXRpc3RpY1N0b3JlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBkZXN0cm95UmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpOwotICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk7
Ci0gICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURp
c2soV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCp0aGlzLCBtX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIG1fc2hvdWxkSW5jbHVkZUxvY2FsaG9zdElu
UmVzb3VyY2VMb2FkU3RhdGlzdGljcywgKG1fc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgPyBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogUmVzb3VyY2VMb2FkU3RhdGlz
dGljczo6SXNFcGhlbWVyYWw6Ok5vKSk7CiAgICAgZm9yd2FyZFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTZXR0aW5ncygpOworICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKKyAgICAg
ICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2so
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbjo6Zm9yd2FyZFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTZXR0aW5ncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCA0ZTA0M2MwMDU1ODhiZjc4
NjBjMjc0ZjNjZDk4ZmU3OGZjZjc0NjhkLi43MGNmNmEzNTc3ZDI5ZDMwOWE5Y2U3ZWExMTI0YWI4
NGVmZmYxMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKQEAgLTcxLDYgKzcxLDE3IEBAIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZW5hYmxlKTsKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVJc1N0YXRpc3RpY3NFcGhlbWVyYWwoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJh
bEZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0oYm9v
bCBpc0VwaGVtZXJhbCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCwg
Y29udGV4dCk7CisgICAgfSk7CisjZWxzZQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCBj
b250ZXh0KTsKKyNlbmRpZgorfQorCiBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYp
CiB7CiAgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IGU4NmE2ZjkwNzllYTU3OTk5ZmY3
ZmY1NDZlODI4OTU5NzU5NGE5N2YuLmQyYTVlN2ExNjMyOGRiYzJmYzMzYWU2ZWYyMzYyNmRhZGQw
NTVkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5oCkBAIC00NSw2ICs0NSw4IEBAIFdLX0VYUE9SVCBXS0hUVFBDb29r
aWVTdG9yZVJlZiBXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoV0tXZWJzaXRl
RGF0CiAKIFdLX0VYUE9SVCBib29sIFdLV2Vic2l0ZURhdGFTdG9yZUdldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwor
dHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0VwaGVtZXJhbEZ1bmN0
aW9uKShib29sIGlzRXBoZW1lcmFsLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzRXBoZW1lcmFsKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0Vw
aGVtZXJhbEZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tXZWJzaXRl
RGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGUpOwogdHlwZWRlZiB2b2lkICgq
V0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlYnVnTW9kZUZ1bmN0aW9uKSh2b2lkKiBmdW5j
dGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxlcihXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSwgdm9pZCogY29udGV4dCwgV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlYnVnTW9kZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5k
bGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ0N2VmMmE1YTg4MmU3MGM0NzFjNTNiMzI5MWU4MGQw
NWMwZjU1MjIuLjI5ZjE3YTZjOThhNDcwNjM2ZTkxOWFkODJlNWVhZWRjYTc3ZmYyZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcApAQCAtOTcyLDYgKzk3MiwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzcwog
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoc2Vzc2lvbklELCBkZWJ1Z01vZGUpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OklzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggMDAwNGQ4ODhiZmVjNGVhMWFiOWEzMzUzM2ZjMTE3Mzc2YmVkNDc5Yi4uZjEx
MDBlNWI5ZDdkYTQ4YjlhNGY5NzY1MzA3YjIzNGQ2ODM1OGYwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE1
Nyw2ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRh
UmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9u
SUQsIHNpemVfdCBwcnVuZVRhcmdldENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Np
b25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
dm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQsIGJvb2ws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJh
bnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBO
YXZpZ2F0ZWRUb0RvbWFpbiYsIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyOjpGbGFnPiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMjJmOTkyZDBiYzA1NmNlZDAyZmU0Y2EwNjNjMGIxZDFmMjg4YmFhMy4uMzZkNzUwOGQyYTMx
YzEzNGExYTRmZTY2MDBjZGYyNmNjMjUwYzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC01MTI5LDcgKzUxMjksOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2NlcwogCiAgICAgYXV0byB1c2VySW5pdGlhdGVkQWN0aXZpdHkgPSBwcm9jZXNzLT51c2VySW5p
dGlhdGVkQWN0aXZpdHkobmF2aWdhdGlvbkFjdGlvbkRhdGEudXNlckdlc3R1cmVUb2tlbklkZW50
aWZpZXIpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgbG9nRnJh
bWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCksICEhdXNlckluaXRpYXRlZEFjdGl2aXR5KTsK
KyAgICBpZiAoIXNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpCisgICAgICAgIGxvZ0ZyYW1lTmF2
aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2FkU3RhdGUudXJsKCkpLCByZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpLCAhIXVzZXJJbml0aWF0ZWRBY3Rpdml0eSk7CiAjZW5k
aWYKIAogICAgIGlmIChtX3BvbGljeUNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMDMwY2Yx
NDAyYjg2N2ZmYjU2ZDJlZjQyODI5MWMwZDVhZTdmN2E2Zi4uNDE0M2JjNzMzYjkwOGZlMjNlNGEz
MjNjYjNjZmRlNDNhYWM0YzYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwMDYsNyArMjAwNiw3
IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZSgpIGNvbnN0CiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQotICAgIGlmIChtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpIHx8IGVuYWJsZWQgPT0g
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSkKKyAgICBpZiAoZW5hYmxlZCA9PSByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
ZW5hYmxlZCkgewpAQCAtMjA2NCw2ICsyMDY0LDI3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGVuYWJsZWQsIENvbXBsZXRp
CiAjZW5kaWYKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjppc1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NFcGhlbWVyYWwoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgY29uc3QKK3sKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQor
ICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSB8fCAhbV9zZXNzaW9uSUQu
aXNFcGhlbWVyYWwoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vz
c1Bvb2xzKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bv
b2wtPm5ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5pc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwobV9zZXNzaW9uSUQsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAgIEFTU0VSVChwcm9jZXNzUG9vbHMoKS5zaXplKCkg
PT0gMSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBBU1NFUlQo
IWNvbXBsZXRpb25IYW5kbGVyKTsKKyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogdm9p
ZCBXZWJzaXRlRGF0YVN0b3JlOjpsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCAyYmM0Njc3YTNiMzU3OTEyYjliYWJmM2NlYTdhNmQ3NmI3M2Rm
NTA5Li4zNmJiMDE4ZDljZGQ3YmQzZmQ1MTA1Y2ZlMjNiZmYwNzU2NTk5MDhlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCkBAIC0xMjIsNiArMTIyLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZShib29sKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z01vZGUoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGlz
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBjb25zdDsKIAogICAgIHVpbnQ2NF90IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5wZXJPcmlnaW5TdG9yYWdlUXVv
dGEoKTsgfQogICAgIHVpbnQ2NF90IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCmluZGV4IDQyOTY3YTky
NjM2NTM3NTI0ZDYwZWFiZTcwOTFmZTA1MzA5NWFkMmEuLmU3OWU5NzVjMWI4ZjAwMDMyOTRmYjk5
YzQ2NTJkMTBlOTlkNWMxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNw
cApAQCAtNjEsOCArNjEsOSBAQCBzdGF0aWMgYm9vbCBpczN4eFJlZGlyZWN0KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIHJldHVybiByZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpID49IDMwMCAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpIDw9IDM5OTsKIH0KIAotV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OldlYlJlc291cmNlTG9hZE9ic2VydmVyKCkKLSAgICA6IG1f
bm90aWZpY2F0aW9uVGltZXIoKnRoaXMsICZXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6dXBkYXRl
Q2VudHJhbFN0YXRpc3RpY3NTdG9yZSkKK1dlYlJlc291cmNlTG9hZE9ic2VydmVyOjpXZWJSZXNv
dXJjZUxvYWRPYnNlcnZlcihSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0Vw
aGVtZXJhbCkKKyAgICA6IG1faXNFcGhlbWVyYWwoaXNFcGhlbWVyYWwpCisgICAgLCBtX25vdGlm
aWNhdGlvblRpbWVyKCp0aGlzLCAmV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnVwZGF0ZUNlbnRy
YWxTdGF0aXN0aWNzU3RvcmUpCiB7CiB9CiAKQEAgLTkwLDYgKzkxLDggQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihjb25zdCBS
ZWdpc3RyYWJsZUQKICAgICAKIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIFdlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogeworICAgIFJFTEVBU0VfQVNTRVJUKCFp
c0VwaGVtZXJhbCgpKTsKKwogICAgIHJldHVybiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5lbnN1
cmUoZG9tYWluLCBbJmRvbWFpbl0gewogICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyhkb21haW4pOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKQEAgLTE0MCw2ICsxNDMsOSBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpjbGVhclN0YXRlKCkKIAogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRm9udExvYWQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIGZhbWlseU5hbWUsIGJvb2wgbG9hZFN0YXR1cykKIHsKKyAgICBpZiAo
aXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAjaWYgRU5BQkxFKFdFQl9BUElfU1RB
VElTVElDUykKICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiB7IGRvY3Vt
ZW50LnVybCgpIH07CiAgICAgYXV0byYgc3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKQEAgLTE2NSw2ICsx
NzEsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dGb250TG9hZChjb25zdCBE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZwogICAgIAogdm9pZCBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6bG9nQ2FudmFzUmVhZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Cisg
ICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShXRUJf
QVBJX1NUQVRJU1RJQ1MpCiAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4g
eyBkb2N1bWVudC51cmwoKSB9OwogICAgIGF1dG8mIHN0YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CkBAIC0x
NzksNiArMTg4LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nQ2FudmFzUmVh
ZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OmxvZ0NhbnZhc1dyaXRlT3JNZWFzdXJlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiB0ZXh0V3JpdHRlbikKIHsKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAg
ICAgcmV0dXJuOworCiAjaWYgRU5BQkxFKFdFQl9BUElfU1RBVElTVElDUykKICAgICBSZWdpc3Ry
YWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiB7IGRvY3VtZW50LnVybCgpIH07CiAgICAgYXV0
byYgc3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKQEAgLTE5OCw2ICsyMTAsOSBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZE9ic2VydmVyOjpsb2dDYW52YXNXcml0ZU9yTWVhc3VyZShjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsCiAgICAgCiB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dOYXZpZ2F0
b3JBUElBY2Nlc3NlZChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSSBmdW5jdGlvbk5hbWUpCiB7CisgICAgaWYgKGlzRXBo
ZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShXRUJfQVBJX1NUQVRJU1RJ
Q1MpCiAgICAgUmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4geyBkb2N1bWVudC51
cmwoKSB9OwogICAgIGF1dG8mIHN0YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CkBAIC0yMTksNiArMjM0LDkg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nTmF2aWdhdG9yQVBJQWNjZXNzZWQo
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LAogICAgIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6bG9nU2NyZWVuQVBJQWNjZXNzZWQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpTY3JlZW5BUEkgZnVuY3Rpb25OYW1lKQogeworICAg
IGlmIChpc0VwaGVtZXJhbCgpKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoV0VCX0FQ
SV9TVEFUSVNUSUNTKQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluIHsg
ZG9jdW1lbnQudXJsKCkgfTsKICAgICBhdXRvJiBzdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFibGVEb21haW4pOwpAQCAtMjQw
LDYgKzI1OCw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1NjcmVlbkFQSUFj
Y2Vzc2VkKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uCiAKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXI6OmxvZ1N1YnJlc291cmNlTG9hZGluZyhjb25zdCBGcmFtZSogZnJhbWUsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgRmV0Y2hEZXN0aW5hdGlvbklzU2NyaXB0TGlrZSBpc1NjcmlwdExp
a2UpCiB7CisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFT
U0VSVChmcmFtZS0+cGFnZSgpKTsKIAogICAgIGlmICghZnJhbWUpCkBAIC0yOTUsNiArMzE2LDkg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVzb3VyY2VMb2FkaW5nKGNv
bnN0IEZyYW1lKiBmcmFtZSwgY29uc3QgUmUKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6bG9nV2ViU29ja2V0TG9hZGluZyhjb25zdCBVUkwmIHRhcmdldFVSTCwgY29uc3QgVVJMJiBt
YWluRnJhbWVVUkwpCiB7CisgICAgaWYgKGlzRXBoZW1lcmFsKCkpCisgICAgICAgIHJldHVybjsK
KwogICAgIGF1dG8gdGFyZ2V0SG9zdCA9IHRhcmdldFVSTC5ob3N0KCk7CiAgICAgYXV0byBtYWlu
RnJhbWVIb3N0ID0gbWFpbkZyYW1lVVJMLmhvc3QoKTsKICAgICAKQEAgLTMzMCwxMCArMzU0LDEy
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1VzZXJJbnRlcmFjdGlvbldpdGhS
ZWR1Y2VkVGltZVJlc29sdXRpb24oY29uc3QKIAogICAgIG1fbGFzdFJlcG9ydGVkVXNlckludGVy
YWN0aW9uTWFwLnNldCh0b3BGcmFtZURvbWFpbiwgbmV3VGltZSk7CiAKLSAgICBhdXRvJiBzdGF0
aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4odG9w
RnJhbWVEb21haW4pOwotICAgIHN0YXRpc3RpY3MuaGFkVXNlckludGVyYWN0aW9uID0gdHJ1ZTsK
LSAgICBzdGF0aXN0aWNzLmxhc3RTZWVuID0gbmV3VGltZTsKLSAgICBzdGF0aXN0aWNzLm1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gbmV3VGltZTsKKyAgICBpZiAoIWlzRXBoZW1lcmFs
KCkpIHsKKyAgICAgICAgYXV0byYgc3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgc3RhdGlzdGlj
cy5oYWRVc2VySW50ZXJhY3Rpb24gPSB0cnVlOworICAgICAgICBzdGF0aXN0aWNzLmxhc3RTZWVu
ID0gbmV3VGltZTsKKyAgICAgICAgc3RhdGlzdGljcy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9u
VGltZSA9IG5ld1RpbWU7CisgICAgfQogCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQu
ZnJhbWUoKSkgewogICAgICAgICBpZiAoYXV0byogb3BlbmVyID0gZnJhbWUtPmxvYWRlcigpLm9w
ZW5lcigpKSB7CkBAIC0zNzIsNiArMzk4LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihjb25zdAogCiB2
b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxvYWRpbmdGb3JUZXN0
aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdGhpcmRQYXJ0eURvbWFpbiwgYm9vbCBzaG91bGRTY2hlZHVsZU5vdGlm
aWNhdGlvbikKIHsKKyAgICBpZiAoaXNFcGhlbWVyYWwoKSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHRoaXJkUGFydHlEb21haW4pOwogICAgIGF1dG8gbGFzdFNlZW4gPSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihXYWxsVGltZTo6bm93
KCkpOwogICAgIHRhcmdldFN0YXRpc3RpY3MubGFzdFNlZW4gPSBsYXN0U2VlbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggYzgwOTJmNGEwYjdjMWMxNWUxNmE5Zjc2MDcz
MzY2ZTg1NzYxZDNiYi4uZTYyYWEyYWZlODA4NTA0OTdkODg0ZDUzNmQwOGQ1MDg3ZDE2MTJkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZE9ic2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAKQEAgLTM4LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIFdlYlJlc291cmNlTG9hZE9ic2VydmVyKCk7CisgICAgV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNF
cGhlbWVyYWwpOwogICAgIH5XZWJSZXNvdXJjZUxvYWRPYnNlcnZlcigpOwogCiAgICAgdm9pZCBs
b2dTdWJyZXNvdXJjZUxvYWRpbmcoY29uc3QgV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZldGNoRGVzdGluYXRpb25Jc1NjcmlwdExpa2UpIGZp
bmFsOwpAQCAtNjgsNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljcz4gdGFrZVN0YXRpc3RpY3MoKTsKICAgICB2b2lkIHJlcXVlc3RT
dG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgV2ViUGFnZSYgb3BlbmVyUGFnZSwgV2ViQ29y
ZTo6RG9jdW1lbnQmIG9wZW5lckRvY3VtZW50KTsKIAorICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBj
b25zdCB7IHJldHVybiBtX2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M6OklzRXBoZW1lcmFsOjpZZXM7IH0KKworICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3M6OklzRXBoZW1lcmFsIG1faXNFcGhlbWVyYWwgeyBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6Tm8gfTsKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+IG1fcmVz
b3VyY2VTdGF0aXN0aWNzTWFwOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4sIFdURjo6V2FsbFRpbWU+IG1fbGFzdFJlcG9ydGVkVXNlckludGVyYWN0aW9uTWFwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggM2U1YTE2ZDE3MDE1Mzcz
NDE0YWFhYTZlZmIxZGI4NjVlZWZiNzE0ZC4uNWYwNGViOWFmY2I2NGZmNDk4ODQxYTQ2YTQ3MTcx
NDk3MmVjNjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NDg5LDggKzQ4OSw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwCiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSA9IHBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKLSAgICBpZiAocGFy
YW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCAmJiAhcGFyYW1ldGVycy5zZXNz
aW9uSUQuaXNFcGhlbWVyYWwoKSAmJiAhUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZElmRXhp
c3RzKCkpCi0gICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRTaGFyZWQoKm5ldyBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcik7CisgICAgaWYgKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQgJiYgIVJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygp
KQorICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIocGFyYW1ldGVycy5zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSA/IFdlYkNv
cmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpZZXMgOiBXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6Tm8pKTsKICNlbmRpZgogCiAgICAg
cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoV1RGTW92ZShwYXJhbWV0ZXJzLnBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcykpOwpAQCAtMTY1MSwxMiArMTY1MSwxMiBAQCBTdG9yYWdl
QXJlYU1hcCogV2ViUHJvY2Vzczo6c3RvcmFnZUFyZWFNYXAoU3RvcmFnZUFyZWFJZGVudGlmaWVy
IGlkZW50aWZpZXIpIGNvbgogCiB2b2lkIFdlYlByb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBpZiAoV2ViQ29yZTo6RGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpID09IGVuYWJs
ZWQgfHwgKG1fc2Vzc2lvbklEICYmIG1fc2Vzc2lvbklELT5pc0VwaGVtZXJhbCgpKSkKKyAgICBp
ZiAoV2ViQ29yZTo6RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCgpID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJDb3JlOjpE
ZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGVuYWJsZWQpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYg
KGVuYWJsZWQgJiYgIVJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWRJZkV4aXN0cygpKQotICAg
ICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIpOworICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0U2hhcmVkKCpuZXcgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIobV9zZXNzaW9uSUQgJiYg
bV9zZXNzaW9uSUQtPmlzRXBoZW1lcmFsKCkgPyBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzOjpJc0VwaGVtZXJhbDo6WWVzIDogV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6
SXNFcGhlbWVyYWw6Ok5vKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI0M2M5ZjZmNDY2ZDQ0MjQ4NmUzNjViZTIyZjkx
YTAzNDM3ZjBmYjAuLjNiNGM2YzUyMWQ5MWE0ZTFhNjIzNTU5ODMyMmI0YTExOWUwNTU0ZTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMTQgQEAKKzIwMjAtMDMtMDIgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljczogRW5hYmxlIGNvb2tpZSBibG9ja2lu
ZyBhbmQgdGhlIFN0b3JhZ2UgQWNjZXNzIEFQSSBpbiBlcGhlbWVyYWwgc2Vzc2lvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM5OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjQ3MzE2NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICBUaGUgbWFqb3JpdHkgb2YgdGhlIGNoYW5nZXMgaW4gV1RSOjpU
ZXN0Q29udHJvbGxlciBpcyAocGFydGlhbGx5KSBmaXhpbmcgYSBidWcKKyAgICAgICAgd2hlcmUg
dGhlIFRlc3RSdW5uZXIgd291bGQgc3RhdGljYWxseSB1c2UgdGhlIGRlZmF1bHQgd2Vic2l0ZSBk
YXRhc3RvcmUgaW5zdGVhZAorICAgICAgICBvZiB0aGUgd2Vic2l0ZSBkYXRhIHN0b3JlIGNvbmZp
Z3VyZSBmb3IgdGhlIHBhZ2UuIFRoaXMgd29ya2VkIGZvciBwZXJzaXN0ZW50CisgICAgICAgIHN0
b3JhZ2UgdGVzdGluZyBidXQgbm90IGZvciBlcGhlbWVyYWwgc2Vzc2lvbnMgd2hpY2ggaXMgd2hh
dCB0aGlzIHBhdGNoIGlzIGFsbAorICAgICAgICBhYm91dC4gVGhlIHByZXZpb3VzIFRlc3RDb250
cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkgaXMgbm93IGNhbGxlZAorICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUoKSBhbmQgdGhlIG5ldworICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpIHJldHVybnMgdGhlIGNvbmZpZ3VyZWQg
d2Vic2l0ZSBkYXRhIHN0b3JlLgorICAgICAgICBNb3N0IG9mIHRoZSB1c2Ugb2YgdGhlIGRlZmF1
bHQgd2Vic2l0ZSBkYXRhIHN0b3JlIHNob3VsZCBwcm9iYWJseSBjaGFuZ2UgYnV0CisgICAgICAg
IHRoYXQncyBub3QgcmVhbGx5IGZvciB0aGlzIHBhdGNoIHRvIGRlYWwgd2l0aC4gSSBkaWQgaG93
ZXZlciBtb3ZlIGFsbCBvZgorICAgICAgICByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MnIHVzZSB0
byB0aGUgbmV3IFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkuCisKKyAgICAgICAg
QSBuZXcgVGVzdFJ1bm5lciBmdW5jdGlvbiB3YXMgYWRkZWQ6IGlzU3RhdGlzdGljc0VwaGVtZXJh
bCgpCisgICAgICAgIEl0IGFsbG93cyB0ZXN0IGNhc2VzIHRvIHF1ZXJ5IHRoZSBlcGhlbWVyYWwg
c3RhdHVzIG9mIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcy4KKworICAgICAgICBPbmUgcHJvYmxl
bSB0aGF0IGlzIG1pdGlnYXRlZCBpbiB0aGlzIHBhdGNoIGJ1dCBub3QgZnVsbHkgZml4ZWQgaXMg
dGhhdCBmb3IKKyAgICAgICAgQ29jb2EgcGxhdGZvcm1zLCB0aGUgVGVzdFJ1bm5lciBzZXRzIHVw
IHR3byBlcGhlbWVyYWwgc2Vzc2lvbnMsIG9uY2UgaW4KKyAgICAgICAgVGVzdENvbnRyb2xsZXI6
OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oKSB2aWEgQyBBUEkgCisgICAgICAgIFdLUGFnZUNv
bmZpZ3VyYXRpb25TZXRXZWJzaXRlRGF0YVN0b3JlKCksIGFuZCB0aGVuIGFnYWluIGluIAorICAg
ICAgICBUZXN0Q29udHJvbGxlckNvY29hJ3MgaW5pdGlhbGl6ZVdlYlZpZXdDb25maWd1cmF0aW9u
KCkgdmlhIENvY29hIEFQSQorICAgICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRXZWJzaXRl
RGF0YVN0b3JlOmVwaGVtZXJhbFdlYnNpdGVEYXRhU3RvcmVdLgorICAgICAgICBJIHRyaWVkIHJl
bW92aW5nIHRoZSBsYXR0ZXIgc2luY2Ugb25lIHNlc3Npb24gZm9yIGFsbCBwbGF0Zm9ybXMgc2hv
dWxkIGJlCisgICAgICAgIEVub3VnaCBidXQgZ290IGJyb2tlbiBiZWhhdmlvciBhcyBhIHJlc3Vs
dC4gU28gbm93IGJvdGggYXJlIHN0aWxsIHRoZXJlCisgICAgICAgIGFuZCBib3RoIGVuYWJsZSBy
ZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OmlzU3RhdGlzdGljc0VwaGVtZXJhbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpk
ZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp3
ZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdlbmVyYXRl
UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQ
cmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUFkanVzdENv
bnRleHQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYXJTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjbGVhckRPTUNh
Y2hlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsZWFyRE9NQ2FjaGVzKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsZWFySW5kZXhlZERhdGFiYXNlcyk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjbGVhckxvY2FsU3RvcmFnZSk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpoYXNET01DYWNoZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkb21DYWNoZVNpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0
U3RhdGlzdGljc0VuYWJsZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0
aXN0aWNzRXBoZW1lcmFsKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRp
c3RpY3NEZWJ1Z01vZGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpzZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Mp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzVmVyeVBy
ZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6aXNTdGF0aXN0aWNzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGlu
Z1RvKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0
aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmlzU3RhdGlzdGljc09ubHlJbkRhdGFiYXNlT25jZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpzZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZCk6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnNldFVzZUlUUERhdGFiYXNlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4pOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNz
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRT
dGF0aXN0aWNzQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbik6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbik6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0
aWNzVXBkYXRlQ29va2llQmxvY2tpbmcpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1
cmVkKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNaW5pbXVt
VGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyaW5nVGltZSk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJpZXMpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnRTdG9yZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0
aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3Vycyk6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NE
ZWxldGVDb29raWVzRm9ySG9zdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc1N0
YXRpc3RpY3NIYXNMb2NhbFN0b3JhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c2V0U3RhdGlzdGljc0NhY2hlTWF4QWdlQ2FwKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6Omhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6c2V0U3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlD
b29raWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAg
ICAgICAoV1RSOjppbml0aWFsaXplV2ViVmlld0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKwogMjAyMC0wMy0wMiAg
SmFjb2IgVXBob2ZmICA8amFjb2JfdXBob2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjU3Njg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXgg
NzFmNjAyOTA1MzBjMTU5MTc3N2RjNjZiNWY3ZGJkZjM1Nzg1M2YyZi4uNDkwMWUwODZlZDE5ZjUy
MGRhMDA4ZjE0MGUyZWQ2OWM2YjNjNjFkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBA
IC0yOTMsNiArMjkzLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAgLy8gUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzCiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sZWFu
IHZhbHVlKTsKKyAgICBib29sZWFuIGlzU3RhdGlzdGljc0VwaGVtZXJhbCgpOwogICAgIHZvaWQg
aW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKG9iamVjdCBjYWxs
YmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFJ1blRl
bGVtZXRyeUNhbGxiYWNrKG9iamVjdCBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAxNjBmMjFjMTAz
YjUzNjkzZTRiMjMwNTE1MzcyZTlkZWVhZWJjODE1Li44MmRkNmFhZTI2MWY4ODhhMWUzMmJlYjY2
OWM2MmQwN2ZmNjBjZWU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTE0MjAsNiArMTQyMCwxNSBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpCiAgICAgV0tCdW5kbGVQ
b3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUo
KSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKIH0KIAor
Ym9vbCBUZXN0UnVubmVyOjppc1N0YXRpc3RpY3NFcGhlbWVyYWwoKQoreworICAgIGF1dG8gbWVz
c2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1N0YXRp
c3RpY3NFcGhlbWVyYWwiKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBudWxscHRyOwor
ICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51
bGxwdHIsICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRUeXBlSUQocmV0dXJuRGF0YSkg
PT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBXS0Jvb2xlYW5HZXRWYWx1ZShh
ZG9wdFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJuRGF0YSkpLmdldCgpKTsKK30K
Kwogdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUsIEpT
VmFsdWVSZWYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJh
Y2soU2V0U3RhdGlzdGljc0RlYnVnTW9kZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKaW5kZXggYjc3Y2I2YzU1M2UyN2Y1YmIyYzU4NmEwZDViNTg2YzI2ZmYwY2I1ZC4uMGIxMjQ4
MWQ3ZDE5MmJkNmIyZTQ2MDQ4ODVhNWFiMzQ0ZmM1YmJiZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTM4MSw2ICszODEs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKKyAgICBib29sIGlzU3RhdGlz
dGljc0VwaGVtZXJhbCgpOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRh
UmVjb3Jkc0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0
YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKTsK
ICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2soSlNWYWx1
ZVJlZiBjYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGRkYzViMDg1MDMwNzc3NzNhZjQ1OGJjZWUxMWExOTc3YTM0Y2QwMjQuLjkyNDg3NjIz
ZjQwYmNiNjZmZTQ0MGRhYTE4YzEwYTc4MGY0ZjljOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01MTksNyArNTE5LDcgQEAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlQ29udGV4dENv
bmZpZ3VyYXQKICAgICByZXR1cm4gY29uZmlndXJhdGlvbjsKIH0KIAotV0tXZWJzaXRlRGF0YVN0
b3JlUmVmIFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkKK1dLV2Vic2l0ZURhdGFT
dG9yZVJlZiBUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUoKQogewogICAg
IHN0YXRpYyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlID0gbnVsbHB0cjsKICAgICBp
ZiAoIWRhdGFTdG9yZSkgewpAQCAtNTQ2LDYgKzU0NiwxMSBAQCBXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKQogICAgIHJldHVybiBkYXRhU3Rv
cmU7CiB9CiAKK1dLV2Vic2l0ZURhdGFTdG9yZVJlZiBUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpCit7CisgICAgcmV0dXJuIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRXZWJzaXRlRGF0
YVN0b3JlKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkp
KTsKK30KKwogV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xs
ZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMp
CiB7CiAgICAgaWYgKCFtX2NvbnRleHQgfHwgIW1fY29udGV4dE9wdGlvbnMtPmhhc1NhbWVJbml0
aWFsaXphdGlvbk9wdGlvbnMob3B0aW9ucy5jb250ZXh0T3B0aW9ucykpIHsKQEAgLTYxNiw2ICs2
MjEsNyBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0Q29udHJvbGxl
cjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogICAgIAogICAgIGlmIChvcHRpb25zLnVz
ZUVwaGVtZXJhbFNlc3Npb24pIHsKICAgICAgICAgYXV0byBlcGhlbWVyYWxEYXRhU3RvcmUgPSBh
ZG9wdFdLKFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKSk7
CisgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGVwaGVtZXJhbERhdGFTdG9yZS5nZXQoKSwgdHJ1ZSk7CiAgICAgICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRXZWJzaXRlRGF0YVN0b3JlKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBlcGhl
bWVyYWxEYXRhU3RvcmUuZ2V0KCkpOwogICAgIH0KIApAQCAtOTI5LDcgKzkzNSw3IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3Qg
VGVzdE9wdGlvbnMmIG9wdGlvCiAgICAgV0tQcmVmZXJlbmNlc1NldEJlYWNvbkFQSUVuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXREaXJlY3RvcnlVcGxvYWRF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRl
QWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUoVGVzdENvbnRy
b2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOworICAgIFdLSFRU
UENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29v
a2llU3RvcmUoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxs
cHRyLCBudWxscHRyKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICAKQEAgLTEwMDUsNyArMTAxMSw4IEBAIGJv
b2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAKICAgICBXS0NvbnRleHRSZXNldFNlcnZpY2VXb3JrZXJG
ZXRjaFRpbWVvdXRGb3JUZXN0aW5nKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb250ZXh0
KCkpOwogCi0gICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlvblBl
cm1pc3Npb25zKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCkpOworICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9ucyh3ZWJzaXRl
RGF0YVN0b3JlKCkpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQWxsRGV2aWNlT3JpZW50
YXRpb25QZXJtaXNzaW9ucyhUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUo
KSk7CiAKICAgICBjbGVhckluZGV4ZWREYXRhYmFzZXMoKTsKICAgICBjbGVhckxvY2FsU3RvcmFn
ZSgpOwpAQCAtMjE5Nyw3ICsyMjA0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2
ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZgogCiAgICAg
YXV0byBzZXRIVFRQQ29va2llQWNjZXB0UG9saWN5ID0gWyZdIChXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdLVHlwZVJlZik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsKICAgICAgICAgYXV0byBjb250ZXh0ID0gbmV3IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV0tUeXBlUmVmKT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tXZWJzaXRlRGF0
YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3Jl
KCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdICh2b2lkKiBjb250ZXh0KSB7CisgICAgICAgIFdLSFRU
UENvb2tpZVN0b3JlU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS1dlYnNpdGVEYXRhU3RvcmVH
ZXRIVFRQQ29va2llU3RvcmUoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3Jl
KCkpLCBwb2xpY3ksIGNvbnRleHQsIFtdICh2b2lkKiBjb250ZXh0KSB7CiAgICAgICAgICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyUG9pbnRlciA9IHN0YXRpY19jYXN0PENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV0tUeXBlUmVmKT4qPihjb250ZXh0KTsKICAgICAgICAgICAgICgqY29tcGxldGlv
bkhhbmRsZXJQb2ludGVyKShudWxscHRyKTsKICAgICAgICAgICAgIGRlbGV0ZSBjb21wbGV0aW9u
SGFuZGxlclBvaW50ZXI7CkBAIC0yOTI0LDcgKzI5MzEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLTmF2aWdhdGlvbkFjdGlvblJlZiBu
YXZpZwogICAgICAgICAgICAgaWYgKHNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHRO
YXZpZ2F0aW9uIHx8IHNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbikg
ewogICAgICAgICAgICAgICAgIEFTU0VSVChzaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25O
ZXh0TmF2aWdhdGlvbiAhPSBzaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRp
b24pOwogICAgICAgICAgICAgICAgIGF1dG8gcG9saWNpZXMgPSBhZG9wdFdLKFdLV2Vic2l0ZVBv
bGljaWVzQ3JlYXRlKCkpOwotICAgICAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLV2Vic2l0ZURh
dGFTdG9yZVJlZj4gbmV3U2Vzc2lvbiA9IFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3Jl
KCk7CisgICAgICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tXZWJzaXRlRGF0YVN0b3JlUmVmPiBu
ZXdTZXNzaW9uID0gVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZp
Z2F0aW9uKQogICAgICAgICAgICAgICAgICAgICBuZXdTZXNzaW9uID0gYWRvcHRXSyhXS1dlYnNp
dGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3JlKCkpOwogICAgICAgICAgICAg
ICAgIFdLV2Vic2l0ZVBvbGljaWVzU2V0RGF0YVN0b3JlKHBvbGljaWVzLmdldCgpLCBuZXdTZXNz
aW9uLmdldCgpKTsKQEAgLTMwOTIsOCArMzA5OSw3IEBAIFBsYXRmb3JtV2ViVmlldyogVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50
CiAKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250ZXh0KFdL
Q29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbnRleHRDb25m
aWd1cmF0aW9uKQogewotICAgIGF1dG8qIGRhdGFTdG9yZSA9IFRlc3RDb250cm9sbGVyOjp3ZWJz
aXRlRGF0YVN0b3JlKCk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZGF0YVN0b3JlLCB0cnVlKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh3ZWJzaXRlRGF0YVN0b3JlKCksIHRydWUp
OwogICAgIHJldHVybiBjb250ZXh0OwogfQogCkBAIC0zMTUwLDcgKzMxNTYsNyBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpjbGVhclNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zKCkKIHsKICAgICBD
bGVhclNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25zQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRo
aXMpOwogCi0gICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbnMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIGNs
ZWFyU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnNDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0
YVN0b3JlUmVtb3ZlQWxsU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMoVGVzdENvbnRyb2xsZXI6
OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCBjbGVhclNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25zQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKIH0KIApAQCAtMzE3Niw3ICszMTgyLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xl
YXJET01DYWNoZShXS1N0cmluZ1JlZiBvcmlnaW4pCiAgICAgQ2xlYXJET01DYWNoZUNhbGxiYWNr
Q29udGV4dCBjb250ZXh0KCp0aGlzKTsKIAogICAgIGF1dG8gY2FjaGVPcmlnaW4gPSBhZG9wdFdL
KFdLU2VjdXJpdHlPcmlnaW5DcmVhdGVGcm9tU3RyaW5nKG9yaWdpbikpOwotICAgIFdLV2Vic2l0
ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVGb3JPcmlnaW4oVGVzdENvbnRyb2xsZXI6OndlYnNp
dGVEYXRhU3RvcmUoKSwgY2FjaGVPcmlnaW4uZ2V0KCksICZjb250ZXh0LCBjbGVhckRPTUNhY2hl
Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVGb3JPcmln
aW4oVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCksIGNhY2hlT3JpZ2lu
LmdldCgpLCAmY29udGV4dCwgY2xlYXJET01DYWNoZUNhbGxiYWNrKTsKICAgICBydW5VbnRpbChj
b250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKQEAgLTMxODQsNyArMzE5MCw3IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmNsZWFyRE9NQ2FjaGVzKCkKIHsKICAgICBDbGVhckRPTUNhY2hlQ2Fs
bGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwogCi0gICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVt
b3ZlQWxsRmV0Y2hDYWNoZXMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNv
bnRleHQsIGNsZWFyRE9NQ2FjaGVDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVt
b3ZlQWxsRmV0Y2hDYWNoZXMoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3Jl
KCksICZjb250ZXh0LCBjbGVhckRPTUNhY2hlQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRl
eHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIApAQCAtMzIwOCwxNCArMzIxNCwxNCBAQCBzdGF0aWMg
dm9pZCBTdG9yYWdlVm9pZENhbGxiYWNrKHZvaWQqIHVzZXJEYXRhKQogdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y2xlYXJJbmRleGVkRGF0YWJhc2VzKCkKIHsKICAgICBTdG9yYWdlVm9pZENhbGxiYWNr
Q29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVBbGxJ
bmRleGVkRGF0YWJhc2VzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250
ZXh0LCBTdG9yYWdlVm9pZENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVB
bGxJbmRleGVkRGF0YWJhc2VzKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIFN0b3JhZ2VW
b2lkQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0K
IAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJMb2NhbFN0b3JhZ2UoKQogewogICAgIFN0b3Jh
Z2VWb2lkQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVJlbW92ZUxvY2FsU3RvcmFnZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCAmY29udGV4dCwgU3RvcmFnZVZvaWRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
UmVtb3ZlTG9jYWxTdG9yYWdlKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIFN0b3JhZ2VW
b2lkQ2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIAog
ICAgIFN0b3JhZ2VWb2lkQ2FsbGJhY2tDb250ZXh0IGxlZ2FjeUNvbnRleHQoKnRoaXMpOwpAQCAt
MzI2OCw3ICszMjc0LDcgQEAgc3RhdGljIHZvaWQgZmV0Y2hDYWNoZU9yaWdpbnNDYWxsYmFjayhX
S0FycmF5UmVmIG9yaWdpbnMsIHZvaWQqIHVzZXJEYXRhKQogYm9vbCBUZXN0Q29udHJvbGxlcjo6
aGFzRE9NQ2FjaGUoV0tTdHJpbmdSZWYgb3JpZ2luKQogewogICAgIEZldGNoQ2FjaGVPcmlnaW5z
Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMsIG9yaWdpbik7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlR2V0RmV0Y2hDYWNoZU9yaWdpbnMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3Rv
cmUoKSwgJmNvbnRleHQsIGZldGNoQ2FjaGVPcmlnaW5zQ2FsbGJhY2spOworICAgIFdLV2Vic2l0
ZURhdGFTdG9yZUdldEZldGNoQ2FjaGVPcmlnaW5zKFRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vi
c2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgZmV0Y2hDYWNoZU9yaWdpbnNDYWxsYmFjayk7CiAg
ICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0
LnJlc3VsdDsKIH0KQEAgLTMyOTYsNyArMzMwMiw3IEBAIHN0YXRpYyB2b2lkIGZldGNoQ2FjaGVT
aXplRm9yT3JpZ2luQ2FsbGJhY2sodWludDY0X3Qgc2l6ZSwgdm9pZCogdXNlckRhdGEpCiB1aW50
NjRfdCBUZXN0Q29udHJvbGxlcjo6ZG9tQ2FjaGVTaXplKFdLU3RyaW5nUmVmIG9yaWdpbikKIHsK
ICAgICBGZXRjaENhY2hlU2l6ZUZvck9yaWdpbkNhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlz
KTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVHZXRGZXRjaENhY2hlU2l6ZUZvck9yaWdpbihUZXN0
Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBvcmlnaW4sICZjb250ZXh0LCBmZXRjaENh
Y2hlU2l6ZUZvck9yaWdpbkNhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVHZXRGZXRj
aENhY2hlU2l6ZUZvck9yaWdpbihUZXN0Q29udHJvbGxlcjo6ZGVmYXVsdFdlYnNpdGVEYXRhU3Rv
cmUoKSwgb3JpZ2luLCAmY29udGV4dCwgZmV0Y2hDYWNoZVNpemVGb3JPcmlnaW5DYWxsYmFjayk7
CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVybiBjb250
ZXh0LnJlc3VsdDsKIH0KQEAgLTMzNTEsMTMgKzMzNTcsMjEgQEAgc3RhdGljIHZvaWQgcmVzb3Vy
Y2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKGJvb2wgcmVzdWx0LCB2b2lkKiB1c2Vy
RGF0YSkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc0VuYWJsZWQoYm9vbCB2
YWx1ZSkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSk7CisgICAg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQod2Vic2l0
ZURhdGFTdG9yZSgpLCB2YWx1ZSk7Cit9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlz
dGljc0VwaGVtZXJhbCgpCit7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0
IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc0VwaGVt
ZXJhbCh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29s
ZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKKyAgICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRp
c3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxl
cihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJl
c291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZVdpdGhDb21wbGV0aW9uSGFuZGxl
cih3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNz
Vm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91
dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0U3RhdGlzdGljc0RlYnVnTW9kZSgp
OwogfQpAQCAtMzM2NSw3ICszMzc5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc0RlYnVnTW9kZShib29sIHZhbHVlKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlz
dGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1lKQog
ewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsK
LSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2VGb3JEZWJ1Z01vZGUoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwg
aG9zdE5hbWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2sp
OworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NQcmV2YWxl
bnRSZXNvdXJjZUZvckRlYnVnTW9kZSh3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3ROYW1lLCAmY29u
dGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRp
bChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlk
U2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoKTsKIH0KQEAgLTMzNzMsNyArMzM4Nyw3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZv
ckRlYnVnTW9kZShXS1N0cmluZ1JlZiBob3N0CiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0
aXN0aWNzTGFzdFNlZW4oV0tTdHJpbmdSZWYgaG9zdCwgZG91YmxlIHNlY29uZHMpCiB7CiAgICAg
UmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NMYXN0U2VlbihUZXN0Q29udHJvbGxlcjo6d2Vi
c2l0ZURhdGFTdG9yZSgpLCBob3N0LCBzZWNvbmRzLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0
aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzTGFzdFNlZW4od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBzZWNvbmRzLCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0TGFz
dFNlZW4oKTsKIH0KQEAgLTMzODEsNyArMzM5NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1JlZiBob3N0LCBkb3VibGUgc2Vjb25kcykKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhXS1N0cmluZ1Jl
ZiBob3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjEsIFdLU3RyaW5nUmVmIHRvcEZyYW1l
RG9tYWluMiwgZG91YmxlIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgZG91Ymxl
IG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlz
UHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgaW50IGRhdGFSZWNvcmRzUmVtb3ZlZCkK
IHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7
Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKFRlc3RD
b250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHRvcEZyYW1lRG9tYWluMSwgdG9w
RnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNl
ckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxl
bnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRS
ZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01lcmdl
U3RhdGlzdGljKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgdG9wRnJhbWVEb21haW4xLCB0b3BG
cmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVu
dCwgZGF0YVJlY29yZHNSZW1vdmVkLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJl
c3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAg
ICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkTWVyZ2VTdGF0aXN0aWMoKTsKIH0KQEAgLTMzODks
NyArMzQwMyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRp
c3RpYyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1JlZiB0CiB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2
YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgq
dGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZhbHVlLCAmY29u
dGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uod2Vic2l0ZURhdGFTdG9y
ZSgpLCBob3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRD
YWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIG1f
Y3VycmVudEludm9jYXRpb24tPmRpZFNldFByZXZhbGVudFJlc291cmNlKCk7CiB9CkBAIC0zMzk3
LDcgKzM0MTEsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1ZQogdm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShXS1N0cmluZ1JlZiBob3N0LCBi
b29sIHZhbHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250
ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZh
bGVudFJlc291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZh
bHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKHdl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgdmFsdWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3Rp
Y3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoKTsKIH0KQEAgLTM0MDUsNyArMzQxOSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0
YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2CiBT
dHJpbmcgVGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkKIHsKICAg
ICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAg
V0tXZWJzaXRlRGF0YVN0b3JlRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoVGVzdENvbnRyb2xs
ZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1N0cmlu
Z1Jlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVEdW1wUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3Rp
Y3NTdHJpbmdSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1Rp
bWVvdXQpOwogICAgIHJldHVybiB0b1dURlN0cmluZyhjb250ZXh0LnJlc291cmNlTG9hZFN0YXRp
c3RpY3NSZXByZXNlbnRhdGlvbi5nZXQoKSk7CiB9CkBAIC0zNDEzLDcgKzM0MjcsNyBAQCBTdHJp
bmcgVGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkKIGJvb2wgVGVz
dENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3RyaW5nUmVmIGhv
c3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRo
aXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNl
KFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsICZjb250ZXh0LCByZXNv
dXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFT
dG9yZUlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9z
dCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CiAg
ICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVybiBjb250ZXh0
LnJlc3VsdDsKIH0KQEAgLTM0MjEsNyArMzQzNSw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6Omlz
U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKFdLU3RyaW5nUmVmIGhvc3QpCiBib29sIFRlc3RD
b250cm9sbGVyOjppc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYg
aG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgq
dGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJl
c291cmNlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsICZjb250ZXh0
LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0
ZURhdGFTdG9yZUlzU3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSh3ZWJzaXRlRGF0YVN0
b3JlKCksIGhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2Fs
bGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAgICByZXR1
cm4gY29udGV4dC5yZXN1bHQ7CiB9CkBAIC0zNDI5LDcgKzM0NDMsNyBAQCBib29sIFRlc3RDb250
cm9sbGVyOjppc1N0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UoV0tTdHJpbmdSZWYgaG9z
dCkKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291
cmNlVW5kZXIoV0tTdHJpbmdSZWYgc3VicmVzb3VyY2VIb3N0LCBXS1N0cmluZ1JlZiB0b3BGcmFt
ZUhvc3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQo
KnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1
YnJlc291cmNlVW5kZXIoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgc3VicmVz
b3VyY2VIb3N0LCB0b3BGcmFtZUhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29s
ZWFuUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGljc1Jl
Z2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIod2Vic2l0ZURhdGFTdG9yZSgpLCBzdWJyZXNvdXJj
ZUhvc3QsIHRvcEZyYW1lSG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5S
ZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwog
ICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM0MzcsNyArMzQ1MSw3IEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIo
V0tTdHJpbmdSZWYgc3VicmVzCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdLU3RyaW5nUmVmIHN1YkZyYW1lSG9zdCwgV0tTdHJpbmdS
ZWYgdG9wRnJhbWVIb3N0KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4
dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
IHN1YkZyYW1lSG9zdCwgdG9wRnJhbWVIb3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNz
Qm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3Rp
Y3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHdlYnNpdGVEYXRhU3RvcmUoKSwgc3ViRnJhbWVI
b3N0LCB0b3BGcmFtZUhvc3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVz
dWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAg
ICByZXR1cm4gY29udGV4dC5yZXN1bHQ7CiB9CkBAIC0zNDQ1LDcgKzM0NTksNyBAQCBib29sIFRl
c3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdLU3Ry
aW5nUmVmIHN1YkZyYW1lSAogYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXJlY3RlZEZyb20sIFdLU3Ry
aW5nUmVmIGhvc3RSZWRpcmVjdGVkVG8pCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJh
Y2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlz
dGljc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRh
U3RvcmUoKSwgaG9zdFJlZGlyZWN0ZWRGcm9tLCBob3N0UmVkaXJlY3RlZFRvLCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVJc1N0YXRpc3RpY3NSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHdlYnNpdGVEYXRh
U3RvcmUoKSwgaG9zdFJlZGlyZWN0ZWRGcm9tLCBob3N0UmVkaXJlY3RlZFRvLCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChj
b250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQpA
QCAtMzQ1Myw3ICszNDY3LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzUmVn
aXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhXS1N0cmluZ1JlZiBob3N0UmVkaXIKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oV0tTdHJpbmdSZWYg
aG9zdCwgYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRl
eHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hh
c0hhZFVzZXJJbnRlcmFjdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBo
b3N0LCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFj
ayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VT
dGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkU2V0SGFzSGFkVXNlcklu
dGVyYWN0aW9uKCk7CiB9CkBAIC0zNDYxLDcgKzM0NzUsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVy
OjpzZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKFdLU3RyaW5nUmVmIGhvc3QsIGJv
b2wgdgogYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKFdLU3RyaW5nUmVmIGhvc3QpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tD
b250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZUlzU3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNr
KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNz
Qm9vbGVhblJlc3VsdENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGlt
ZW91dCk7CiAgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OwogfQpAQCAtMzQ2OSwyMCArMzQ4Mywy
MCBAQCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rp
b24oV0tTdHJpbmdSZWYgaG9zdCkKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGljc09u
bHlJbkRhdGFiYXNlT25jZShXS1N0cmluZ1JlZiBzdWJIb3N0LCBXS1N0cmluZ1JlZiB0b3BIb3N0
KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlz
KTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uo
VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgc3ViSG9zdCwgdG9wSG9zdCwgJmNv
bnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7CisgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlSXNTdGF0aXN0aWNzT25seUluRGF0YWJhc2VPbmNlKHdlYnNpdGVEYXRh
U3RvcmUoKSwgc3ViSG9zdCwgdG9wSG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jv
b2xlYW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVv
dXQpOwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxl
cjo6c2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdCwgYm9vbCB2YWx1
ZSkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChU
ZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCB2YWx1ZSk7CisgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0dyYW5kZmF0aGVyZWQod2Vic2l0ZURhdGFTdG9y
ZSgpLCBob3N0LCB2YWx1ZSk7CiB9CiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzU3RhdGlzdGlj
c0dyYW5kZmF0aGVyZWQoV0tTdHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3Rp
Y3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3Jl
SXNTdGF0aXN0aWNzR3JhbmRmYXRoZXJlZChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9y
ZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxi
YWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKHdl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xl
YW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQp
OwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM0OTAsMTIwICszNTA0LDEyMCBA
QCBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NHcmFuZGZhdGhlcmVkKFdLU3RyaW5n
UmVmIGhvc3QpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRVc2VJVFBEYXRhYmFzZShib29sIHZh
bHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0
aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRVc2VJVFBEYXRhYmFzZShUZXN0Q29udHJv
bGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0VXNlSVRQ
RGF0YWJhc2Uod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3Rh
dGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU3ViZnJh
bWVVbmRlclRvcEZyYW1lT3JpZ2luKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIHRvcEZy
YW1lSG9zdCkKIHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU3ViZnJhbWVV
bmRlclRvcEZyYW1lT3JpZ2luKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhv
c3QsIHRvcEZyYW1lSG9zdCk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc1N1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbih3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIHRvcEZy
YW1lSG9zdCk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgdG9w
RnJhbWVIb3N0KQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUo
KSwgaG9zdCwgdG9wRnJhbWVIb3N0KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0
aWNzU3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKHdlYnNpdGVEYXRhU3RvcmUoKSwgaG9z
dCwgdG9wRnJhbWVIb3N0KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGlj
c1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXS1N0cmluZ1JlZiBob3N0LCBXS1N0cmluZ1Jl
ZiBob3N0UmVkaXJlY3RlZFRvKQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3Rp
Y3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRh
U3RvcmUoKSwgaG9zdCwgaG9zdFJlZGlyZWN0ZWRUbyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0U3RhdGlzdGljc1N1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyh3ZWJzaXRlRGF0YVN0b3Jl
KCksIGhvc3QsIGhvc3RSZWRpcmVjdGVkVG8pOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oV0tTdHJpbmdSZWYgaG9z
dCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRGcm9tKQogewotICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShUZXN0Q29udHJv
bGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBob3N0UmVkaXJlY3RlZEZyb20pOworICAg
IFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
RnJvbSh3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIGhvc3RSZWRpcmVjdGVkRnJvbSk7CiB9CiAK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
VG8oV0tTdHJpbmdSZWYgaG9zdCwgV0tTdHJpbmdSZWYgaG9zdFJlZGlyZWN0ZWRUbykKIHsKLSAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGhvc3QsIGhvc3RSZWRpcmVjdGVk
VG8pOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUb3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0VG8od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBob3N0UmVkaXJlY3RlZFRvKTsKIH0K
IAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1RvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKFdLU3RyaW5nUmVmIGhvc3QsIFdLU3RyaW5nUmVmIGhvc3RSZWRpcmVjdGVkRnJvbSkK
IHsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJhbWVVbmlxdWVSZWRp
cmVjdEZyb20oVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgaG9zdFJl
ZGlyZWN0ZWRGcm9tKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdEZyb20od2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCBob3N0UmVkaXJl
Y3RlZEZyb20pOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzQ3Jvc3NT
aXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihXS1N0cmluZ1JlZiBmcm9tSG9zdCwgV0tTdHJpbmdS
ZWYgdG9Ib3N0KQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250
ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCBmcm9tSG9zdCwgdG9Ib3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3Vs
dENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbih3ZWJzaXRlRGF0YVN0b3JlKCksIGZyb21Ib3N0LCB0b0hv
c3QsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAg
IHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKIH0KIAogdm9pZCBUZXN0Q29udHJv
bGxlcjo6c2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oZG91YmxlIHNlY29u
ZHMpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRo
aXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlcklu
dGVyYWN0aW9uKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHNlY29uZHMsICZj
b250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHdlYnNp
dGVEYXRhU3RvcmUoKSwgc2Vjb25kcywgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRS
ZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwog
fQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250ZXh0IGNv
bnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3Rh
dGlzdGljc0FuZERhdGFSZWNvcmRzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCks
ICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1
bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoKQog
ewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsK
LSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoVGVz
dENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlz
dGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGlj
c1VwZGF0ZUNvb2tpZUJsb2NraW5nKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291
cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5k
b25lLCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldEJsb2NrQ29v
a2llc0Zvckhvc3QoKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc1N1Ym1p
dFRlbGVtZXRyeSgpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1N1Ym1pdFRl
bGVtZXRyeShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpKTsKKyAgICBXS1dlYnNp
dGVEYXRhU3RvcmVTdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KHdlYnNpdGVEYXRhU3RvcmUoKSk7
CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoVGVz
dENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOworICAgIFdLV2Vic2l0ZURh
dGFTdG9yZVNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KHdlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChib29sIHZhbHVlKQogewogICAgIFJlc291cmNlU3Rh
dGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRh
U3RvcmVTZXRTdGF0aXN0aWNzSXNSdW5uaW5nVGVzdChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRD
YWxsYmFjayk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc0lzUnVubmluZ1Rl
c3Qod2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGlj
c1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVv
dXQpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSkKIHsKLSAgICBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwg
dmFsdWUpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NTaG91bGRDbGFzc2lm
eVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh3ZWJzaXRlRGF0YVN0b3JlKCksIHZh
bHVlKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc05vdGlmeVBhZ2Vz
V2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKGJvb2wgdmFsdWUpCiB7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKFRl
c3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuVGVsZW1ldHJ5V2FzQ2FwdHVyZWQo
d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1ZSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoZG91YmxlIHNl
Y29uZHMpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlzdGljc01pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9y
ZSgpLCBzZWNvbmRzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgc2Vjb25k
cyk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmlu
Z1RpbWUoZG91YmxlIHNlY29uZHMpCiB7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U3RhdGlz
dGljc0dyYW5kZmF0aGVyaW5nVGltZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgp
LCBzZWNvbmRzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzR3JhbmRmYXRo
ZXJpbmdUaW1lKHdlYnNpdGVEYXRhU3RvcmUoKSwgc2Vjb25kcyk7CiB9CiAKIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNzRW50cmllcyh1bnNpZ25lZCBlbnRy
aWVzKQogewotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NNYXhTdGF0aXN0aWNz
RW50cmllcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBlbnRyaWVzKTsKKyAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzTWF4U3RhdGlzdGljc0VudHJpZXMod2Vi
c2l0ZURhdGFTdG9yZSgpLCBlbnRyaWVzKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1bnNpZ25lZCBlbnRyaWVzKQogewotICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3NQcnVuZUVudHJpZXNEb3duVG8oVGVzdENvbnRy
b2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgZW50cmllcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0
b3JlU2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh3ZWJzaXRlRGF0YVN0b3JlKCksIGVu
dHJpZXMpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lbW9y
eUFuZFBlcnNpc3RlbnRTdG9yZSgpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tD
b250ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3ND
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2sp
OworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lz
dGVudFN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGlj
c1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVv
dXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3RhdGlzdGljc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MTEsNyArMzYyNSw3IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKCkKIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0
b3JlTW9kaWZpZWRTaW5jZUhvdXJzKHVuc2lnbmVkIGhvdXJzKQogewogICAgIFJlc291cmNlU3Rh
dGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRh
U3RvcmVTdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2lu
Y2VIb3VycyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3VycywgJmNvbnRl
eHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tXZWJzaXRl
RGF0YVN0b3JlU3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmll
ZFNpbmNlSG91cnMod2Vic2l0ZURhdGFTdG9yZSgpLCBob3VycywgJmNvbnRleHQsIHJlc291cmNl
U3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25l
LCBub1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3RhdGlzdGlj
c1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MTksNyArMzYzMyw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0
b3JlTW9kaWZpZWRTaW5jZUhvdXJzCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xl
YXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3ND
YWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU3Rh
dGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChUZXN0Q29udHJvbGxlcjo6d2Vi
c2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENh
bGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vi
c2l0ZURhdGFSZW1vdmFsKHdlYnNpdGVEYXRhU3RvcmUoKSwgJmNvbnRleHQsIHJlc291cmNlU3Rh
dGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBu
b1RpbWVvdXQpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3RhdGlzdGljc1Ro
cm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKIH0KQEAgLTM2MjcsMTQgKzM2NDEsMTQgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3Zh
bCgpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRGVsZXRlQ29va2llc0Zvckhvc3Qo
V0tTdHJpbmdSZWYgaG9zdCwgYm9vbCBpbmNsdWRlSHR0cE9ubHlDb29raWVzKQogewogICAgIFJl
c291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVsZXRlQ29va2llc0ZvclRlc3RpbmcoVGVzdENvbnRy
b2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgaW5jbHVkZUh0dHBPbmx5Q29va2llcywg
JmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0RlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKHdlYnNpdGVE
YXRhU3RvcmUoKSwgaG9zdCwgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgJmNvbnRleHQsIHJlc291
cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5k
b25lLCBub1RpbWVvdXQpOwogfQogCiBib29sIFRlc3RDb250cm9sbGVyOjppc1N0YXRpc3RpY3NI
YXNMb2NhbFN0b3JhZ2UoV0tTdHJpbmdSZWYgaG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3Rp
Y3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3Jl
U3RhdGlzdGljc0hhc0xvY2FsU3RvcmFnZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9y
ZSgpLCBob3N0LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxi
YWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdlKHdl
YnNpdGVEYXRhU3RvcmUoKSwgaG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xl
YW5SZXN1bHRDYWxsYmFjayk7CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQp
OwogICAgIHJldHVybiBjb250ZXh0LnJlc3VsdDsKIH0KQEAgLTM2NDIsMTQgKzM2NTYsMTQgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6aXNTdGF0aXN0aWNzSGFzTG9jYWxTdG9yYWdlKFdLU3RyaW5n
UmVmIGhvc3QpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VD
YXAoZG91YmxlIHNlY29uZHMpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJhY2tDb250
ZXh0IGNvbnRleHQoKnRoaXMpOwotICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFN0YXRpc3RpY3ND
YWNoZU1heEFnZUNhcChUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBzZWNvbmRz
LCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRTdGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAod2Vic2l0ZURhdGFT
dG9yZSgpLCBzZWNvbmRzLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENh
bGxiYWNrKTsKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiB9CiAKIGJv
b2wgVGVzdENvbnRyb2xsZXI6Omhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24oV0tTdHJpbmdS
ZWYgaG9zdCkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4
dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc0hhc0lzb2xhdGVkU2Vz
c2lvbihUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBob3N0LCAmY29udGV4dCwg
cmVzb3VyY2VTdGF0aXN0aWNzQm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTdGF0aXN0aWNzSGFzSXNvbGF0ZWRTZXNzaW9uKHdlYnNpdGVEYXRhU3RvcmUoKSwg
aG9zdCwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXN1bHRDYWxsYmFjayk7
CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogICAgIHJldHVybiBjb250
ZXh0LnJlc3VsdDsKIH0KQEAgLTM2NTcsNyArMzY3MSw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6
Omhhc1N0YXRpc3RpY3NJc29sYXRlZFNlc3Npb24oV0tTdHJpbmdSZWYgaG9zdCkKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlcihib29sIHZh
bHVlKQogewogICAgIFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0
aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2hv
dWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksIHZhbHVlLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENh
bGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKHdlYnNpdGVEYXRhU3RvcmUoKSwgdmFs
dWUsICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAg
IHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5kaWRTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlcigpOwogfQpAQCAtMzY2NSw3ICszNjc5
LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0U3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJl
ZmVycmVyKGJvb2wgdmFsdWUpCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhib29sIHZhbHVlLCBib29sIG9ubHlPblNpdGVzV2l0
aG91dFVzZXJJbnRlcmFjdGlvbikKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0Nv
bnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNGb3JUZXN0aW5nKFRlc3RD
b250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCBvbmx5T25TaXRlc1dpdGhvdXRV
c2VySW50ZXJhY3Rpb24sICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2Fs
bGJhY2spOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NT
aG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzRm9yVGVzdGluZyh3ZWJzaXRlRGF0YVN0b3JlKCks
IHZhbHVlLCBvbmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24sICZjb250ZXh0LCByZXNv
dXJjZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQu
ZG9uZSwgbm9UaW1lb3V0KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRTZXRTaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzKCk7CiB9CkBAIC0zNjczLDcgKzM2ODcsNyBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhi
b29sIHZhbHVlLCBib29sCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzRmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0
YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Ci0gICAgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCB2YWx1
ZSwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAg
V0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyh3ZWJzaXRlRGF0YVN0b3JlKCksIHZhbHVlLCAm
Y29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNrKTsKICAgICBydW5V
bnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7CiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+
ZGlkU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoKTsKIH0KQEAgLTM2ODEsNyAr
MzY5NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZShib29sIHZhbHVlKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6c3Rh
dGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogewogICAgIFJlc291cmNlU3RhdGlzdGlj
c0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKLSAgICBXS1dlYnNpdGVEYXRhU3RvcmVT
dGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURh
dGFTdG9yZSgpLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNzVm9pZFJlc3VsdENhbGxiYWNr
KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSh3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NWb2lkUmVz
dWx0Q2FsbGJhY2spOwogICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKICAg
ICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRSZXNldFN0YXRpc3RpY3NUb0NvbnNpc3RlbnRTdGF0
ZSgpOwogfQpAQCAtMzg1NSw3ICszODY5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJB
ZENsaWNrQXR0cmlidXRpb24oKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBZENsaWNrQXR0
cmlidXRpb25zVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCgpCiB7CiAgICAgQWRDbGlja0F0dHJp
YnV0aW9uVm9pZENhbGxiYWNrQ29udGV4dCBjYWxsYmFja0NvbnRleHQoKnRoaXMpOwotICAgIFdL
V2Vic2l0ZURhdGFTdG9yZUNsZWFyQWRDbGlja0F0dHJpYnV0aW9uc1Rocm91Z2hXZWJzaXRlRGF0
YVJlbW92YWwoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNrQ29u
dGV4dCwgYWRDbGlja0F0dHJpYnV0aW9uVm9pZENhbGxiYWNrKTsKKyAgICBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbnNUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKHdl
YnNpdGVEYXRhU3RvcmUoKSwgJmNhbGxiYWNrQ29udGV4dCwgYWRDbGlja0F0dHJpYnV0aW9uVm9p
ZENhbGxiYWNrKTsKICAgICBydW5VbnRpbChjYWxsYmFja0NvbnRleHQuZG9uZSwgbm9UaW1lb3V0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGRkNDU1
ZmUxNjExZTJlM2VjYjYwODFkZGUwNjczNWU0YWM1M2U4NmQuLmYzYWE4OGFjNjI5MTg5ZWMxMzdk
MmQ5Mjk0YmZlMjk0Y2I1ODQ0ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0ZToKIGNsYXNzIFRlc3RDb250cm9sbGVyIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgVGVzdENvbnRyb2xsZXImIHNpbmdsZXRvbigpOwotICAgIHN0
YXRpYyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgd2Vic2l0ZURhdGFTdG9yZSgpOworICAgIHN0YXRp
YyBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGVmYXVsdFdlYnNpdGVEYXRhU3RvcmUoKTsKIAogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHZpZXdIZWlnaHQ7CkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogICAgIFdLQ29udGV4
dFJlZiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAgV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1cm4gbV91c2Vy
Q29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KIAorICAgIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiB3
ZWJzaXRlRGF0YVN0b3JlKCk7CisKICAgICBFdmVudFNlbmRlclByb3h5KiBldmVudFNlbmRlclBy
b3h5KCkgeyByZXR1cm4gbV9ldmVudFNlbmRlclByb3h5LmdldCgpOyB9CiAKICAgICBib29sIHNo
b3VsZFVzZVJlbW90ZUxheWVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVXNlUmVtb3Rl
TGF5ZXJUcmVlOyB9CkBAIC0yMDgsNiArMjEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1f
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAK
ICAgICB2b2lkIHNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpOworICAgIGJvb2wgaXNT
dGF0aXN0aWNzRXBoZW1lcmFsKCk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJv
b2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVi
dWdNb2RlKFdLU3RyaW5nUmVmIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0
U2VlbihXS1N0cmluZ1JlZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBjOWU5NGVlYjY2Y2U5NGMzN2JmOTAw
YTg0ZDBmYzQ3MDkwNzliN2VmLi40MTZmNmVmMWE3MTNlZThiNGZlYWU5MGU5ZjlmZjM4MGYwZDk5
ZTQ0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTY0
LDcgKzE2NCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAKICAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyhz
aG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKCkpOwogCi0gICAgV0tIVFRQQ29va2llU3Rv
cmVTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29r
aWVTdG9yZShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpKSwga1dLSFRUUENvb2tp
ZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluLCBudWxscHRyLCBudWxscHRy
KTsKKyAgICBXS0hUVFBDb29raWVTdG9yZVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tXZWJz
aXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vi
c2l0ZURhdGFTdG9yZSgpKSwga1dLSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgY2xlYXIgb3V0IHZpc2l0ZWQgbGlua3MgaGVyZS4KIApAQCAtOTA2LDcgKzkwNiw3IEBAIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91
c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJTZXRDYWNoZU1vZGVsIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0
VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1VJbnQ2NEdldFR5cGVJRCgpKTsKICAgICAgICAgdWlu
dDY0X3QgbW9kZWwgPSBXS1VJbnQ2NEdldFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPiht
ZXNzYWdlQm9keSkpOwotICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRDYWNoZU1vZGVsU3lu
Y2hyb25vdXNseUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwg
bW9kZWwpOworICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRDYWNoZU1vZGVsU3luY2hyb25v
dXNseUZvclRlc3RpbmcoVGVzdENvbnRyb2xsZXI6OmRlZmF1bHRXZWJzaXRlRGF0YVN0b3JlKCks
IG1vZGVsKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCkBAIC05NjgsNyArOTY4
LDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICB9CiAgICAgCiAgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJEZWxldGVBbGxJbmRleGVkRGF0
YWJhc2VzIikpIHsKLSAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsSW5kZXhlZERh
dGFiYXNlcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCBudWxscHRyLCB7IH0p
OworICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZW1vdmVBbGxJbmRleGVkRGF0YWJhc2VzKFRl
c3RDb250cm9sbGVyOjpkZWZhdWx0V2Vic2l0ZURhdGFTdG9yZSgpLCBudWxscHRyLCB7IH0pOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAgLTExMjAsNiArMTEyMCwxMiBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAK
KyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzU3Rh
dGlzdGljc0VwaGVtZXJhbCIpKSB7CisgICAgICAgIGJvb2wgaXNFcGhlbWVyYWwgPSBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuaXNTdGF0aXN0aWNzRXBoZW1lcmFsKCk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoaXNF
cGhlbWVyYWwpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NEZWJ1
Z01vZGUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdL
Qm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGlj
X2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggYTgyNDZhMTQ1YmUz
NjllNDNhZTgwYzY3MTZmOGExMzNkOTFjZGQwMi4uZjJlM2E2NmM3ODgwMTAzYzgwODRhOWQ4OTQ1
ZmY0MDhmZGIyZTMxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIGluaXRpYWxpemVX
ZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aCwgV0tTdHJpbmdSZWYg
aW5qZWN0ZQogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKIAogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9u
LnByb2Nlc3NQb29sID0gKF9fYnJpZGdlIFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0OwotICAgIGds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSAoX19icmlkZ2UgV0tX
ZWJzaXRlRGF0YVN0b3JlICopVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKTsKKyAg
ICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlID0gKF9fYnJpZGdl
IFdLV2Vic2l0ZURhdGFTdG9yZSAqKVRlc3RDb250cm9sbGVyOjpkZWZhdWx0V2Vic2l0ZURhdGFT
dG9yZSgpOwogICAgIGdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLl9hbGxvd1VuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5f
YWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IFlFUzsKICAgICBnbG9iYWxXZWJWaWV3Q29u
ZmlndXJhdGlvbi5fYXBwbGVQYXlFbmFibGVkID0gWUVTOwpAQCAtMTUxLDkgKzE1MSwxMiBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJh
dGlvblJlZiwgY29uc3QgVGVzdE9wdAogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxlVW5kb01hbmFn
ZXJBUEkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIF9zZXRVbmRvTWFuYWdlckFQSUVu
YWJsZWQ6WUVTXTsKLSAgICAgICAgCi0gICAgaWYgKG9wdGlvbnMudXNlRXBoZW1lcmFsU2Vzc2lv
bikKLSAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpbV0tX
ZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdXTsKKworICAgIGlmIChvcHRp
b25zLnVzZUVwaGVtZXJhbFNlc3Npb24pIHsKKyAgICAgICAgYXV0byBlcGhlbWVyYWxXZWJzaXRl
RGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXTsK
KyAgICAgICAgW2VwaGVtZXJhbFdlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkOllFU107CisgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFdlYnNp
dGVEYXRhU3RvcmU6ZXBoZW1lcmFsV2Vic2l0ZURhdGFTdG9yZV07CisgICAgfQogCiAgICAgW2Nv
cGllZENvbmZpZ3VyYXRpb24gX3NldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHM6b3B0aW9u
cy5hbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzXTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExNzM3YjczNzQxZTZi
ZWZiMTQwNTE3NmU4NWQ0ZTc0YzcwNDBmNzUuLmRkMGY2NzFjYTI5ODA1YTg2ZWIzMjY1OTc2OTg4
MDEyMjgzMTk5ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMC0wMy0wMiAgSm9obiBXaWxh
bmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzOiBFbmFibGUgY29va2llIGJsb2NraW5nIGFuZCB0aGUgU3RvcmFnZSBBY2Nlc3MgQVBJIGlu
IGVwaGVtZXJhbCBzZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA4Mzk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDczMTY1MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUtZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24u
aHRtbDoKKyAgICAgICAgICAgIEp1c3QgbW92ZWQgdGhlIDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0t
PgorICAgICAgICAgICAgaGVhZGVyIHVwIHRvIHRoZSB0b3AuCisgICAgICAgICogaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhl
bWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVt
ZXJhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LWR1ZS10by1uby1pbnRlcmFj
dGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
ZGVueS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29r
aWUtYmxvY2tpbmctZXBoZW1lcmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMt
Y29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNv
b2tpZXMtZXBoZW1lcmFsLmh0bWw6CisgICAgICAgICAgICBBZGRlZCBleHBsaWNpdCBkaXNhYmxp
bmcgb2YgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzLiBIb3dldmVyLCBzb21ldGhpbmcgZW5hYmxl
cyBpdCBhZ2Fpbi4gU2VlCisgICAgICAgICAgICBDb21tZW50IHVuZGVyIFRlc3RFeHBlY3RhdGlv
biBmaWxlcyBiZWxvdy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0
b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdp
dGgtY29va2llLWVwaGVtZXJhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGly
ZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUt
ZXBoZW1lcmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNv
b2tpZS1ibG9ja2luZy13aXRob3V0LWNvb2tpZS1lcGhlbWVyYWwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1j
cm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdy
YW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1lcmFsLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1n
ZXN0dXJlLWVwaGVtZXJhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5k
Ym94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWVwaGVtZXJhbC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICBUaGVzZSB0d28gdGVz
dCBjYXNlcyBhcmUgbm93IGJlaW5nIHNraXBwZWQgYmVjYXVzZSByZXNvdXJjZSBsb2FkIHN0YXRp
c3RpY3MgYXJlIG9uIGluIGVwaGVtZXJhbCBzZXNzaW9uczoKKyAgICAgICAgICAgIGh0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1o
YXMtY29va2llcy1lcGhlbWVyYWwuaHRtbAorICAgICAgICAgICAgaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVz
LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sCisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDAwIHRyYWNrcyB0aGUgd29yayB0byBmaWd1cmUgb3V0
IGhvdyB0aGlzIGNhbiBiZSB0ZXN0ZWQKKyAgICAgICAgICAgIHNpbmNlIHNvbWUgYnVnIGluIHRo
ZSBUZXN0UnVubmVyIGlzIHJlLWVuYWJsaW5nIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBhcyBz
b29uIGFzIHlvdSB0dXJuIGl0IG9mZgorICAgICAgICAgICAgaW4gZXBoZW1lcmFsIHNlc3Npb25z
LgorCiAyMDIwLTAzLTAyICBKYXNvbiBMYXdyZW5jZSAgPGxhd3JlbmNlLmpAYXBwbGUuY29tPgog
CiAgICAgICAgIFsgTWFjIF0gd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tcmVu
ZGVyZXItY2hhbmdlLmh0bWwgaXMgZmxha3kgZmFpbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVt
ZXJhbC1zZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1
dGlvbi9zdG9yZS1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCmluZGV4IGI3YzAw
Nzc0ZTdkNjY3MTkwM2JhYThmOTU3ZTZjNDFjNmVjYjY4MDguLjZmYzI3NDFhYjExYmMxYzdhOTYw
ZTQ5ZWEyNzM2ZTRlNjQ4NjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL3N0b3JlLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vc3RvcmUt
ZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApAQCAtMSw0ICsxLDUgQEAKLTwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBd
IC0tPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbiI+CiA8aGVhZD4KICAgICA8bWV0
YSBjaGFyc2V0PSJVVEYtOCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJh
bC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1kYXRh
YmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2N2EyODI4NTE4MmY1NzJhZDg3MjZlNzJl
YWU4MzIxZWQ2ZmFkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1l
cmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0cyB0aGF0IGFs
bCB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBibG9ja2VkIChlcGhlbWVyYWwgc2Vzc2lvbikuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFJlc291cmNlIGxvYWQgc3RhdGlz
dGljcyBpcyBydW5uaW5nIGluIGVwaGVtZXJhbCBtb2RlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWUxLS0+JworLS0tLS0tLS0KK0JlZm9yZSB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgcmVj
ZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorQWZ0ZXIgdXNlciBpbnRlcmFjdGlvbiwgc2hv
dWxkIHJlY2VpdmUgbm8gY29va2llcy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2Zp
cnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBh
cnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ0YzBiZDRjNTkzNWU4
OWU5Nzg2YTMyZjk2NDliZGU5MjljNmE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90aGlyZC1wYXJ0eS1jb29raWUtYmxv
Y2tpbmctZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRG
LTgiPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhbGwg
dGhpcmQtcGFydHkgY29va2llcyBhcmUgYmxvY2tlZCAoZXBoZW1lcmFsIHNlc3Npb24pLiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIx
MjcuMC4wLjE6ODAwMCI7CisgICAgY29uc3QgcGFydGl0aW9uT3JpZ2luID0gImh0dHA6Ly8iICsg
cGFydGl0aW9uSG9zdDsKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBh
cnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1l
ID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlD
b29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsg
IiZ2YWx1ZT12YWx1ZSI7CisgICAgY29uc3QgcmV0dXJuVXJsID0gcGFydGl0aW9uT3JpZ2luICsg
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhl
bWVyYWwtZGF0YWJhc2UuaHRtbCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIv
Z2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1
bmN0aW9uIG9wZW5JZnJhbWUodXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVu
dC5zcmMgPSB1cmw7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgICAgICBzd2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAg
ICAgICAgIGNhc2UgIiNzdGVwMSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5
IGNvb2tpZSBmb3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
LmhyZWYgPSB0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUg
KyAiIyIgKyByZXR1cm5VcmwgKyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgIiNzdGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaGFzaCA9ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29v
a2llIGlzIGJsb2NrZWQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgZXZlbiB0aG91Z2gg
bG9jYWxob3N0IGlzIG5vdCBwcmV2YWxlbnQuCisgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9QmVmb3Jl
IHVzZXIgaW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDQiOworICAgICAgICAg
ICAgICAgIC8vIFByb2R1Y2UgdXNlciBpbnRlcmFjdGlvbiBmb3IgdGhlIGZpcnN0LXBhcnR5Lgor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihwYXJ0aXRpb25PcmlnaW4sIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAvLyBDaGVjayB0aGF0IHRoZSBjb29raWUgaXMgc3RpbGwgYmxvY2tlZCBmb3IgbG9jYWxo
b3N0IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAgIiZtZXNzYWdlPUFmdGVyIHVz
ZXIgaW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuIiwgcnVuVGVzdCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICIjc3RlcDQiOgorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1No
b3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEi
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBh
cnR5Q29va2llcyh0cnVlLCBydW5UZXN0KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzRXBoZW1lcmFsKCkpCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgaXMgcnVubmluZyBpbiBlcGhl
bWVyYWwgbW9kZS4iKTsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3RoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNjMzJjZGE4ZmNlOTZjMmU3NjMwNDVlMTU5ZjkwMTczNWQxMDU0MmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyNCBAQAorVGVzdHMgdGhhdCBhbGwgdGhpcmQtcGFydHkgY29va2llcyBhcmUgYmxvY2tl
ZCAoZXBoZW1lcmFsIHNlc3Npb24pLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgaXMgcnVubmluZyBpbiBlcGhlbWVyYWwgbW9k
ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorQmVmb3JlIHVzZXIg
aW50ZXJhY3Rpb24sIHNob3VsZCByZWNlaXZlIG5vIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUg
Y29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNv
b2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMi0tPicKKy0tLS0tLS0tCitBZnRl
ciB1c2VyIGludGVyYWN0aW9uLCBzaG91bGQgcmVjZWl2ZSBubyBjb29raWVzLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1
bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBh
cnR5LWNvb2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWQzZmVkMGIz
OGNkOWRiMzcxMTg0MDc5ZmEwZDhhY2M5NzI2MTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW4oKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGFsbCB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBibG9ja2VkIChlcGhlbWVyYWwgc2Vz
c2lvbikuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBwYXJ0aXRp
b25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICBjb25zdCBwYXJ0aXRpb25PcmlnaW4gPSAi
aHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0OworICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzIjsKKyAgICBjb25zdCB0aGlyZFBhcnR5QmFzZVVy
bCA9IHRoaXJkUGFydHlPcmlnaW4gKyByZXNvdXJjZVBhdGg7CisgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgY29uc3Qgc3ViUGF0aFRvU2V0
Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNvb2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICBjb25zdCByZXR1cm5VcmwgPSBwYXJ0aXRp
b25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLWVwaGVtZXJhbC5odG1sIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0g
Ii9nZXQtY29va2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworCisgICAg
ZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgY29uc3Qg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICBlbGVt
ZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAg
IGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCkgeworICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFy
dHkgY29va2llIGZvciBsb2NhbGhvc3QuCisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tp
ZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBj
b29raWUgaXMgYmxvY2tlZCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBldmVuIHRob3Vn
aCBsb2NhbGhvc3QgaXMgbm90IHByZXZhbGVudC4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1l
KHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1CZWZv
cmUgdXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVwMyI6Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAgICAg
ICAgICAgICAgLy8gUHJvZHVjZSB1c2VyIGludGVyYWN0aW9uIGZvciB0aGUgZmlyc3QtcGFydHku
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVy
YWN0aW9uKHBhcnRpdGlvbk9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGNvb2tpZSBpcyBzdGlsbCBibG9ja2VkIGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICAiJm1lc3NhZ2U9QWZ0ZXIg
dXNlciBpbnRlcmFjdGlvbiwgc2hvdWxkIHJlY2VpdmUgbm8gY29va2llcy4iLCBydW5UZXN0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNz
U2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5o
YXNoID09PSAiIikgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFy
dHlDb29raWVzKHRydWUsIHJ1blRlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NFcGhlbWVyYWwoKSkK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgaXMg
cnVubmluZyBpbiBlcGhlbWVyYWwgbW9kZS4iKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVy
YWN0aW9uLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJh
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVu
eS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTEwNDE2NWM1Y2Zk
NDNmNjQ4MTJhYjMyMGY3NGMzMzMzZGI0ZDk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2RlbnktZHVlLXRvLW5vLWludGVyYWN0aW9uLXVu
ZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLWVwaGVtZXJhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLXNpdGUgaWZyYW1lIGNh
biBub3QgcmVxdWVzdCBzdG9yYWdlIGFjY2VzcyB1bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNv
b2tpZSBibG9ja2luZyBpZiBpdCBoYXMgbm90IHJlY2VpdmVkIHVzZXIgaW50ZXJhY3Rpb24gYXMg
Zmlyc3QtcGFydHkgKGVwaGVtZXJhbCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNv
b2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1kdWUtdG8tbm8taW50ZXJhY3Rpb24tdW5k
ZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFsLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1kdWUtdG8tbm8taW50ZXJh
Y3Rpb24tdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctZXBoZW1lcmFs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmMyMDhkNjE4MGRhOGFlMmQzNWJhMzg3N2U0NGU2Y2ZjZGM5YTkx
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9kZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNv
b2tpZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBjcm9zcy1zaXRlIGlmcmFtZSBjYW4g
bm90IHJlcXVlc3Qgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgZ2VuZXJhbCB0aGlyZC1wYXJ0eSBjb29r
aWUgYmxvY2tpbmcgaWYgaXQgaGFzIG5vdCByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uIGFzIGZp
cnN0LXBhcnR5IChlcGhlbWVyYWwpLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBjb25zdCBmaXJzdFBhcnR5VXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlVcmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsK
KworICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVj
ZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAi
LCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5v
cmlnaW4pOworICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2Up
OworCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAg
ICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsK
KyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5v
ZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0
aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ik5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21p
c2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9
PSAiI2Nvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwg
KyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0
eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9k
ZW55LWR1ZS10by1uby1pbnRlcmFjdGlvbi11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy1lcGhlbWVyYWwuaHRtbCNjb29raWVTZXQiOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1
ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7
CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1l
Lmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xp
Y3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0
b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRh
dGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0
b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRh
dGFiYXNlLmh0bWwKaW5kZXggMzlmOTcwOWU5ZDE5YTUwNzAyYWExMWRjZGEwN2ExZDE2ZDhhMmM3
OS4uMWQ2MDE0YmMxZWRlOGEwZWY2OTU1OTMyMGZkZmU5MGJlNjBlN2JkMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10
cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRt
bApAQCAtMjUsMTQgKzI1LDE1IEBACiAgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0OwogICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewogICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKLSAgICAgICAgICAg
IC8vIFRoaXMgdGVzdCBzaG91bGQgbm90IGNhbGwgc2V0RW5hYmxlRmVhdHVyZSh0cnVlKSBiZWNh
dXNlIGVwaGVtZXJhbCBzZXNzaW9ucyBkbyBub3QgdXNlIElUUC4KICAgICAgICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0UGFydHlDb29raWVTZXQiKSB7CiAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0
b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tp
ZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0
YWJhc2UuaHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKLSAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOwotICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9o
YXMtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjcG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MiOwot
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7
CisgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0g
IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAg
ICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vz
cy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGljeVNob3VsZEdy
YW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhh
cy1jb29raWVzLWVwaGVtZXJhbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVz
LWVwaGVtZXJhbC5odG1sCmluZGV4IDJmMzFhNTdmNmMwMjE0ZmQ4MTY4NWY5N2E5OWNjZDk0ODFi
ZDkxYzYuLmI2NmQ2NzdkZGViMjc2NGI1MjcyOGZhMGQxMjgzZWM1MzViMTdiNWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRy
dWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLmh0bWwKQEAgLTI0LDE0ICsy
NCwxNSBAQAogICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsK
ICAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Q7
CiAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHRlc3Qg
c2hvdWxkIG5vdCBjYWxsIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSkgYmVjYXVzZSBlcGhlbWVyYWwg
c2Vzc2lvbnMgZG8gbm90IHVzZSBJVFAuCiAgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaGFzaCAhPT0gIiNmaXJzdFBhcnR5Q29va2llU2V0IikgewogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhyZWYgPSBzdGF0aXN0aWNzVXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFydHlDb29raWUmdmFsdWU9dmFsdWUj
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRy
dWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLmh0bWwjZmlyc3RQYXJ0eUNv
b2tpZVNldCI7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNj
ZXNzIjsKLSAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFt
ZS5odG1sI3BvbGljeVNob3VsZEdyYW50QWNjZXNzIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNT
dG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdl
LWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0
aC1jb29raWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0
eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YzdkNDVlODA2NmY2NGU5MzhjMzE3NmQwZjUxZmU2Njk1MDNkMjk0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9y
YWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aXRo
LWNvb2tpZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGRv
Y3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSBmb3IgYSAzcmQtcGFydHkgd2l0aCBjb29raWVzIHVu
ZGVyIGdlbmVyYWwgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nIChlcGhlbWVyYWwpLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBObyBzdG9yYWdlIGFjY2Vzcy4gZG9j
dW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVz
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aC1j
b29raWUtZXBoZW1lcmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJs
b2NraW5nLXdpdGgtY29va2llLWVwaGVtZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YWI4MWIzZTgz
MjA5N2NiY2ZmNGMxOWI0MjgyNWUwN2YxNjhiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdl
bmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGgtY29va2llLWVwaGVtZXJhbC5o
dG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRXBoZW1l
cmFsU2Vzc2lvbj10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBk
b2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdpdGggY29va2llcyB1
bmRlciBnZW5lcmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyAoZXBoZW1lcmFsKS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0
eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5
VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luID09PSB0aGlyZFBhcnR5VXJsKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEu
aW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChl
dmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIs
ICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJS
ZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9y
aWdpbik7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2Nr
VGhpcmRQYXJ0eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIiOgor
ICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBTZXQgYSBjb29raWUgZm9yIHRoZSB0aGlyZC1wYXJ0eSBhbmQgY29udGlu
dWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9
IHRoaXJkUGFydHlVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhw
P25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0
eS1jb29raWUtYmxvY2tpbmctd2l0aC1jb29raWUtZXBoZW1lcmFsLmh0bWwjc3RlcDEiOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDEiOgorICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJh
Y3Rpb24odGhpcmRQYXJ0eVVybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB0aGlyZFBh
cnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3RvcmFnZS1hY2Nlc3MtaWZy
YW1lLmh0bWw/ZHVtbXk9IiArIE1hdGgucmFuZG9tKCkgKyAiI3BvbGljeVNob3VsZE5vdEdyYW50
QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJhbC10aGlyZC1w
YXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtdW5kZXItZ2VuZXJhbC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29r
aWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2I3ZDgxYTA2YmFhOTBlMjgw
MTk1MDAzNmFlNTQ0NWM1YmMzODdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy11bmRlci1nZW5lcmFsLXRo
aXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aXRob3V0LWNvb2tpZS1lcGhlbWVyYWwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIGRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3Mo
KSBmb3IgYSAzcmQtcGFydHkgd2l0aG91dCBjb29raWVzIHVuZGVyIGdlbmVyYWwgdGhpcmQtcGFy
dHkgY29va2llIGJsb2NraW5nIChlcGhlbWVyYWwpLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBObyBzdG9yYWdlIGFjY2Vzcy4gZG9jdW1lbnQuY29va2llID09ICwgY29v
a2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdW5kZXItZ2VuZXJh
bC10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2l0aG91dC1jb29raWUtZXBoZW1lcmFsLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNj
ZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29v
a2llLWVwaGVtZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YWE5Yjk3MjRkZjczOTE2MTQwNDUzNjdk
YWRjYzZiODg2YjkxMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXVuZGVyLWdlbmVyYWwtdGhpcmQtcGFy
dHktY29va2llLWJsb2NraW5nLXdpdGhvdXQtY29va2llLWVwaGVtZXJhbC5odG1sCkBAIC0wLDAg
KzEsNDUgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRXBoZW1lcmFsU2Vzc2lvbj10
cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBkb2N1bWVudC5oYXNT
dG9yYWdlQWNjZXNzKCkgZm9yIGEgM3JkLXBhcnR5IHdpdGhvdXQgY29va2llcyB1bmRlciBnZW5l
cmFsIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9ja2luZyAoZXBoZW1lcmFsKS4iKTsKKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eVVybCA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5VXJsID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJl
Y2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSB0
aGlyZFBhcnR5VXJsKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigi
UEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRh
LnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0
eUNvb2tpZXMoZmFsc2UsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZSh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSB0
aGlyZFBhcnR5VXJsICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtaWZyYW1lLmh0bWw/ZHVtbXk9IiArIE1hdGgucmFuZG9tKCkgKyAiI3BvbGljeVNob3VsZE5v
dEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1u
b24tc2FuZGJveGVkLWlmcmFtZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1v
cmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xYTczOGYzMTRhMGQzYTg0OTQwOTJiYTg1YmE5YWJjZTRmZmU5Y2E3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZXBoZW1lcmFs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGNyb3NzLW9yaWdpbiBp
ZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIG5vdCBzYW5k
Ym94ZWQgYW5kIHRoZSB1c2VyIGFjY2VwdHMgKGVwaGVtZXJhbCkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVu
dC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1z
aWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9y
aWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1lcGhlbWVyYWwuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWVwaGVtZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NmNj
OTViOGUxMTM4OTZmZWQ5MjAyMWQ2Zjc0MDdmYzAwYjYxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1lcGhlbWVyYWwuaHRtbApAQCAt
MCwwICsxLDgxIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Np
b249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJh
bWUgaXMgbm90IHNhbmRib3hlZCBhbmQgdGhlIHVzZXIgYWNjZXB0cyAoZXBoZW1lcmFsKS4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0
eVVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgICAgICBjb25zdCB0aGlyZFBhcnR5
VXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3Rp
Y3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNT
ICIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJl
cGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVj
dGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICBmaW5pc2hUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElk
KSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCAr
IGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVt
ZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUi
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIiOgorICAgICAgICAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT
ZXQgYSBjb29raWUgZm9yIHRoZSB0aGlyZC1wYXJ0eSBhbmQgY29udGludWUuCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlVcmwg
KyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0
eUNvb2tpZSZ2YWx1ZT12YWx1ZSMiICsgZmlyc3RQYXJ0eVVybCArICIvc3RvcmFnZUFjY2Vzcy9y
ZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LWVwaGVtZXJhbC5odG1sI3N0ZXAxIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlVcmwsIHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNj
ZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNz
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gdGhpcmRQYXJ0
eVVybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1p
ZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBv
bGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0
LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNh
bmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYTc4ZWIxNjMzNjZlNjg5OGZjMWJiYTQ3ZDhjMmM5NGIyMzVmYTUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91
dC11c2VyLWdlc3R1cmUtZXBoZW1lcmFsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0cyB0aGF0IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlm
IHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCBidXQgY2FsbHMg
dGhlIEFQSSB3aXRob3V0IGEgdXNlciBnZXN0dXJlIGJlaW5nIHByb2Nlc3NlZCAoZXBoZW1lcmFs
KS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mg
d2FzIGRlbmllZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRo
b3V0LXVzZXItZ2VzdHVyZS1lcGhlbWVyYWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94
ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWVwaGVtZXJhbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU5M2JkMTMxNzdjMmQ0MmNjMzRlM2IxOGFkNTk0NmEyNWMwYzU4YWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdl
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVy
ZS1lcGhlbWVyYWwuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBp
cyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0aGUgYWxsb3cgdG9rZW4s
IGJ1dCBjYWxscyB0aGUgQVBJIHdpdGhvdXQgYSB1c2VyIGdlc3R1cmUgYmVpbmcgcHJvY2Vzc2Vk
IChlcGhlbWVyYWwpLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3Qg
c3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisg
ICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAo
ZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAg
ICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRh
dGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBv
cmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2Nr
VGhpcmRQYXJ0eUNvb2tpZXModHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdl
dCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNhbmRi
b3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlw
dHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nl
c3MiOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3Mtd2l0aG91dC11c2VyLWdlc3R1cmUtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNj
ZXNzLHVzZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxp
c05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwZGNj
NmM3OWEyZjVlMzIxNDQyNmFjMGRhZTkyN2YwOGI5NzE0OWE5Li4wZjA1MDczZjk4NzdhMmQ5NTA3
OTFiMjMyYjA4ZWIyZDcxNGUzNjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMjc5MCwxNSArMjc5MCwxNyBAQCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNzLmh0bWwg
WwogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZv
ci1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVs
dC1lcGhlbWVyYWwuaHRtbCBbIFBhc3MgXQotaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1z
dG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5o
dG1sIFsgUGFzcyBUaW1lb3V0IF0KIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1sIFsgUGFzcyBUaW1l
b3V0IF0KLWh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1p
Zi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBbIFBhc3Mg
VGltZW91dCBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRy
dWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91
dCBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXItZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rl
bnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5o
dG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1k
YXRhYmFzZS5odG1sIFsgUGFzcyBdCiAKKyMgRW5hYmxlIGFnYWluIHdoZW4gZml4aW5nIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MDAuCitodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNv
b2tpZXMtZXBoZW1lcmFsLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9o
YXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVy
YWwtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQorCiAjIFNraXBwZWQgaW4gZ2VuZXJhbCBleHBlY3Rh
dGlvbnMgc2luY2UgdGhleSBvbmx5IHdvcmsgb24gaU9TIGFuZCBNYWMsIFdLMi4KIGh0dHAvdGVz
dHMvc2VjdXJpdHkvc3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0eS1yZWRp
cmVjdHMtaW4tcHJpdmF0ZS1tb2RlLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkv
c3RyaXAtcmVmZXJyZXItdG8tb3JpZ2luLWZvci10aGlyZC1wYXJ0eS1yZXF1ZXN0cy1pbi1wcml2
YXRlLW1vZGUuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDdmMmM0ZWQxYzlkMzc1MjFiNTdiZWY3Nzk4NmQ4NDk0ZDMz
Y2M2MzIuLjM2ZmI3ZWU0Y2JiOTllYTNmNjNiNGZhZDRhN2I4YTcyNWQyMTM4ZDAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY4OSw2ICs2
ODksMTAgQEAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXIKIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0
dXJlLmh0bWwgWyBTa2lwIF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJlLWRhdGFiYXNlLmh0
bWwgWyBTa2lwIF0KIAorIyBFbmFibGUgYWdhaW4gd2hlbiBmaXhpbmcgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQwMC4KK2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy1lcGhl
bWVyYWwtZGF0YWJhc2UuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJh
bC5odG1sIFsgU2tpcCBdCisKICMgQXMgb2YgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzIyNzc2MiB0aGUgdGltZXN0YW1wUmVzb2x1dGlvbiBpcyBqdXN0IDUgc2Vjb25kcyB3aGlj
aCBtYWtlcyB0aGlzIHRlc3QgZmxha3kKIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy91c2VyLWludGVyYWN0aW9uLW9ubHktcmVwb3J0ZWQtb25jZS13aXRoaW4tc2hvcnQtcGVyaW9k
LW9mLXRpbWUuaHRtbCBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394318</attachid>
            <date>2020-03-23 16:18:27 -0700</date>
            <delta_ts>2020-03-23 18:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208399-20200323161826.patch</filename>
            <type>text/plain</type>
            <size>1366</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1ODg4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTAzLTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgRml4IG1lbW9yeSBsZWFrIGludHJvZHVjZWQgaW4gcjI1Nzcy
NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Mzk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OndlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICBXZSB3ZXJlIGxlYWtpbmcgcGFnZSBj
b25maWd1cmF0aW9ucy4KKwogMjAyMC0wMy0yMyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgdGhlIGNhcGFiaWxpdHkgdG8gY2hhbmdlIGFsbCBvZiBh
IHdlYnNpdGUncyBjb29raWVzIHRvIFNhbWVTaXRlPVN0cmljdApJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI1ODY4MCkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NTAsNyArNTUwLDcgQEAgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFRlc3RDb250cm9sbGVyOjpkZQog
CiBXS1dlYnNpdGVEYXRhU3RvcmVSZWYgVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUo
KQogewotICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0V2Vic2l0ZURhdGFTdG9yZShX
S1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpKSk7CisgICAg
cmV0dXJuIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRXZWJzaXRlRGF0YVN0b3JlKGFkb3B0V0soV0tQ
YWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKTsK
IH0KIAogV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xsZXI6
OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>