<?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>42328</bug_id>
          
          <creation_ts>2010-07-14 20:53:41 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled</short_desc>
          <delta_ts>2012-05-30 06:05:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87284</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>jesus</cc>
    
    <cc>morrita</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251631</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-14 20:53:41 -0700</bug_when>
    <thetext>WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251647</commentid>
    <comment_count>1</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-14 20:58:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/8193637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>419170</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-10 22:53:26 -0700</bug_when>
    <thetext>Added inspector/profiler/cpu-profiler-profiling-without-inspector.html to the skipped list in http://trac.webkit.org/changeset/88597.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633138</commentid>
    <comment_count>3</comment_count>
      <attachid>143883</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-24 13:36:18 -0700</bug_when>
    <thetext>Created attachment 143883
WIP for ews testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633154</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-24 13:39:38 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633172</commentid>
    <comment_count>5</comment_count>
      <attachid>143883</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-05-24 13:48:25 -0700</bug_when>
    <thetext>Comment on attachment 143883
WIP for ews testing

Attachment 143883 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12803245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633205</commentid>
    <comment_count>6</comment_count>
      <attachid>143883</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-24 14:11:33 -0700</bug_when>
    <thetext>Comment on attachment 143883
WIP for ews testing

Attachment 143883 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12816002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633213</commentid>
    <comment_count>7</comment_count>
      <attachid>143893</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-24 14:17:19 -0700</bug_when>
    <thetext>Created attachment 143893
WIP for ews testing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633951</commentid>
    <comment_count>8</comment_count>
      <attachid>144076</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-25 08:25:39 -0700</bug_when>
    <thetext>Created attachment 144076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634032</commentid>
    <comment_count>9</comment_count>
      <attachid>144076</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-25 10:22:10 -0700</bug_when>
    <thetext>Comment on attachment 144076
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Add setJavaScriptProfilingEnabled() to window.internals.settings. No new tests, but this

Given the last reviews related to window.internals, I think would be good to have some rationale why this function is a good fit for moving there.

&gt; Source/WebCore/testing/InternalSettings.cpp:120
&gt; +#if ENABLE(INSPECTOR)
&gt; +    if (page() &amp;&amp; page()-&gt;inspectorController())
&gt; +        page()-&gt;inspectorController()-&gt;disableProfiler();
&gt; +#endif

Why not save and use the original value like the others?

I&apos;m also wondering whether we could have InspectorController::setProfilerEnabled(bool) instead of disableProfiler()/enableProfiler().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634087</commentid>
    <comment_count>10</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-25 11:12:30 -0700</bug_when>
    <thetext>(In reply to comment #9)

Thanks for having a look!

&gt; &gt; Source/WebCore/testing/InternalSettings.cpp:120
&gt; &gt; +#if ENABLE(INSPECTOR)
&gt; &gt; +    if (page() &amp;&amp; page()-&gt;inspectorController())
&gt; &gt; +        page()-&gt;inspectorController()-&gt;disableProfiler();
&gt; &gt; +#endif
&gt; 
&gt; Why not save and use the original value like the others?
&gt; 
&gt; I&apos;m also wondering whether we could have InspectorController::setProfilerEnabled(bool) instead of disableProfiler()/enableProfiler().

I like the idea. I will upload a new patch soon with this and also with the default value coming from InspectorController::profilerEnabled().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634200</commentid>
    <comment_count>11</comment_count>
      <attachid>144126</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-25 12:47:49 -0700</bug_when>
    <thetext>Created attachment 144126
WIP for ews testing v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634203</commentid>
    <comment_count>12</comment_count>
      <attachid>144126</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-05-25 12:56:19 -0700</bug_when>
    <thetext>Comment on attachment 144126
WIP for ews testing v3

Attachment 144126 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12803577</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634225</commentid>
    <comment_count>13</comment_count>
      <attachid>144126</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-25 13:13:06 -0700</bug_when>
    <thetext>Comment on attachment 144126
WIP for ews testing v3

Attachment 144126 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12801549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634238</commentid>
    <comment_count>14</comment_count>
      <attachid>144126</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-25 13:18:59 -0700</bug_when>
    <thetext>Comment on attachment 144126
WIP for ews testing v3

Attachment 144126 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12802540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634270</commentid>
    <comment_count>15</comment_count>
      <attachid>144145</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-25 14:03:30 -0700</bug_when>
    <thetext>Created attachment 144145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634312</commentid>
    <comment_count>16</comment_count>
      <attachid>144145</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-25 14:58:20 -0700</bug_when>
    <thetext>Comment on attachment 144145
Patch

Attachment 144145 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12805587</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634844</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-27 19:08:44 -0700</bug_when>
    <thetext>It looks you forgot to remove now-invalidated symbols from WebCore.exp.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635172</commentid>
    <comment_count>18</comment_count>
      <attachid>144347</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-28 06:32:00 -0700</bug_when>
    <thetext>Created attachment 144347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635352</commentid>
    <comment_count>19</comment_count>
      <attachid>144347</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-28 12:11:03 -0700</bug_when>
    <thetext>Comment on attachment 144347
Patch

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

Seems reasonable.

&gt; Source/WebCore/testing/InternalSettings.cpp:105
&gt; +    , m_originalJavaScriptProfilingEnabled((page() &amp;&amp; page()-&gt;inspectorController()) ? page()-&gt;inspectorController()-&gt;profilerEnabled() : false)

This could be an &amp;&amp; instead of a ternary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635357</commentid>
    <comment_count>20</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-28 12:24:01 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 144347 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144347&amp;action=review
&gt; 
&gt; Seems reasonable.
&gt; 
&gt; &gt; Source/WebCore/testing/InternalSettings.cpp:105
&gt; &gt; +    , m_originalJavaScriptProfilingEnabled((page() &amp;&amp; page()-&gt;inspectorController()) ? page()-&gt;inspectorController()-&gt;profilerEnabled() : false)
&gt; 
&gt; This could be an &amp;&amp; instead of a ternary.

Thanks! I will fix it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635372</commentid>
    <comment_count>21</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-05-28 13:01:29 -0700</bug_when>
    <thetext>Committed r118705: &lt;http://trac.webkit.org/changeset/118705&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143883</attachid>
            <date>2012-05-24 13:36:18 -0700</date>
            <delta_ts>2012-05-24 14:17:19 -0700</delta_ts>
            <desc>WIP for ews testing</desc>
            <filename>0001-WIP-Moving-setJavaScriptProfilingEnabled-to-window.i.patch</filename>
            <type>text/plain</type>
            <size>62183</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA3MDY3YTIzOWZjOGJmZWUxNGI5MzNjNzI2ZTJlMzFiZjlmODVlNzMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDI0IE1heSAyMDEyIDE2OjIzOjMyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gV0lQOiBNb3Zpbmcgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQg
dG8KIHdpbmRvdy5pbnRlcm5hbHMuCgotLS0KIC4uLi9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1l
dmVudC1oYW5kbGVyLmh0bWwgICAgIHwgICAgNiArKystLS0KIC4uLnVzLWZ1bmN0aW9uLWNhbGxl
ZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sIHwgICAgNiArKystLS0KIC4uLm5vbnltb3Vz
LWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIHwgICAgNiArKystLS0KIC4u
Li9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sICAgIHwgICAgNiAr
KystLS0KIC4uLi9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sICAg
IHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCAgICAg
ICAgICAgICAgIHwgICAgNiArKystLS0KIC4uLi9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9u
eW1vdXMuaHRtbCAgICAgICAgIHwgICAgNiArKystLS0KIC4uLmx0LWluLWZ1bmN0aW9uLWNhbGxz
LXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwgIHwgICAgNiArKystLS0KIExheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sICAgICAgICAgICAgICAgIHwgICAgNiArKyst
LS0KIC4uLmF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sIHwg
ICAgNiArKystLS0KIC4uLi9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMu
aHRtbCAgIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0
b3IuaHRtbCAgICAgICAgIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
ZGVhZC10aW1lLmh0bWwgICAgICAgICAgIHwgICAgNCArKystCiBMYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sICB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbCAgICAgICB8ICAgIDYgKysrLS0tCiAu
Li4vZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwgICB8ICAgIDYg
KysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sICAgICAg
ICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sICAgICB8ICAgIDYgKysrLS0tCiAuLi4tZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKysrLS0tCiAuLi5sdGlwbGUtYW5kLWRpZmZlcmVu
dC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKysrLS0tCiAuLi51cy1mdW5jdGlv
bnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8ICAgIDYgKysrLS0tCiBMYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sICAgICB8ICAgIDYgKysr
LS0tCiAuLi4vbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sICAgICAgICB8
ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24u
aHRtbCAgICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLmh0bWwgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9uby1leGVj
dXRpb24tY29udGV4dC5odG1sICAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxl
ci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbCAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vcHJv
ZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgICB8ICAgIDYgKysrLS0t
CiAuLi4vZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbCAgICAgICB8ICAg
IDYgKysrLS0tCiAuLi5pb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rpbmcu
aHRtbCB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQt
bG9jYXRpb24uaHRtbCB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Np
bXBsZS1ldmVudC1jYWxsLmh0bWwgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9z
aW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vc3RhcnQt
YW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAgICB8ICAgIDYgKysrLS0tCiAu
Li5ydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8ICAgIDYg
KysrLS0tCiAuLi4vcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbCAg
ICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGlt
ZW91dC5odG1sICB8ICAgIDMgKystCiAuLi4vZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rp
b24tY2FsbC5odG1sICAgICB8ICAgIDYgKysrLS0tCiAuLi4vdGhyb3ctZXhjZXB0aW9uLWZyb20t
ZXZhbC5odG1sLWRpc2FibGVkICAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxl
ci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwgICAgICB8ICAgIDYgKysrLS0tCiAuLi4tZGVm
aW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbCB8ICAgIDYgKysrLS0t
CiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sICAgICB8ICAg
IDYgKysrLS0tCiAuLi4vY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5o
dG1sICB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCAgICAg
ICAgICAgICAgICAgICB8ICAgIDUgLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAgICAgICAgIHwgICAyMCArKysrKysrKysrKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggICAgICAgICAgfCAgICAyICsrCiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsICAgICAgICB8ICAgIDEg
KwogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oICAgfCAg
ICAxIC0KIC4uLi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCAg
IHwgICAgOSAtLS0tLS0tLS0KIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmggIHwgICAgMSAtCiAuLi4vV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcCAgICB8ICAgMTggLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oICB8ICAgIDEgLQogLi4uL3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCAgfCAgIDE5IC0tLS0tLS0t
LS0tLS0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oICAgIHwgICAgMSAtCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0
b3IuY3BwICAgICB8ICAgIDUgLS0tLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUluc3BlY3Rvci5oICAgICAgIHwgICAgMSAtCiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgICAgICB8ICAgMTIgLS0tLS0tLS0tLS0tCiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICAgICAgICB8ICAgIDEgLQogLi4uL2JsYWNr
YmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCAgfCAgICA2IC0tLS0tLQog
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAgfCAgICA5
IC0tLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2Vu
dC5oICAgfCAgICAxIC0KIC4uLi9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAg
ICAgICAgICAgIHwgICAgOSAtLS0tLS0tLS0KIC4uLi9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oIHwgICAgMyAtLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgIHwgICAgMSAtCiAuLi4vRHVtcFJlbmRlclRyZWUv
ZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCB8ICAgIDggLS0tLS0tLS0KIC4uLi9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAxMSAtLS0tLS0t
LS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tICAgICAgICAg
fCAgICAxIC0KIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMu
bW0gIHwgICAgNiAtLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwIHwgICAgNiAtLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaCAgIHwgICAgMSAtCiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwICAgICAgICB8ICAgIDQgLS0tLQogLi4uL0R1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgfCAgIDE4IC0tLS0tLS0tLS0tLS0tLS0t
LQogLi4uL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAg
ICA3IC0tLS0tLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICAg
ICAgICAgIHwgICAgMSAtCiA3NSBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMjk0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5v
bnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5v
bnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbAppbmRleCAzYTg2NjI4Li5mMWQzMjVjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxl
ci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRt
bAppbmRleCA3OWYxMTA4Li5jNGRlYjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1j
YWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAog
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQt
aW4tZnVuY3Rpb25zLmh0bWwKaW5kZXggODQ4YzAwMS4uZTY0OTVlZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4t
ZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAK
IDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKaW5kZXgg
OWNiNWM0Yi4uMDM0ODFmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbApAQCAtMiwxMCArMiwx
MCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbAppbmRleCAzYzQyOTY2Li5kYmZiNmU0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rp
b25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQogewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hcHBseS5odG1sCmluZGV4IGZkMDNhODQuLmMwYmMzOWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWlu
LWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbAppbmRleCBmYjI2MTE5Li41
ZDdmMWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1
bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwKQEAgLTIsMTAgKzIsMTAg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxs
cy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAppbmRleCA2MDBhYmIzLi5hZTEzNGYyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxz
LXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAppbmRleCA1OWJjNmUz
Li43N2JiZDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVn
aXN0ZXItbGVhay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdp
c3Rlci1sZWFrLmh0bWwKQEAgLTEsMTAgKzEsMTAgQEAKIDxib2R5PgogPGhlYWQ+CiA8c2NyaXB0
PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIGxvZyhzKQogewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAppbmRleCAxODYxMjJlLi4wMGFiNTdkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3Ro
ZXItc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVu
Y3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbApp
bmRleCBlYWJhYjZlLi4zM2RhMGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1h
bm90aGVyLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5n
LXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29w
ZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2Zp
bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbAppbmRleCBjOGM0ODEyLi5jYWMxNTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbApAQCAt
MiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKIAogdmFyIGogPSAwOwogZnVuY3Rpb24gdGVzdChsZW4pIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbAppbmRleCAwZGQzOGJjLi44OTc2
NzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKaW5kZXggMjM2NDc5ZC4uMDdmYjFlNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCkBAIC01LDggKzUsOSBAQAogaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiB9CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgp
CiB7CkBAIC0yNywzICsyOCw0IEBAIHRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluCiA8ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAppbmRleCBmM2Q2YjAwLi5mMjVkYTA5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCmluZGV4IDBlYWRkOTEuLmIy
YjIwNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogeyAgICAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2
YWwtb24tc2FtZS1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlv
bi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCmluZGV4IDkyYWEzMmQuLmI5OGRk
NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRl
eHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbApAQCAtMiwx
MCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbAppbmRleCBiNzY3MTFj
Li4wYWEzNTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1l
dmVudC1oYW5kbGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUt
ZXZlbnQtaGFuZGxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRl
c3QoKQogeyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKaW5kZXggZmE5NTRiYi4uMDNhZGQ4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1z
YW1lLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbAppbmRleCA2MDRkMDNhLi45OWI1OTgzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQt
c2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgp
CiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1k
aWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwK
aW5kZXggNGU0NzZkZS4uOTEyZjY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlw
bGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25z
LWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKaW5kZXggYzQzZDczMy4uZjJhZjVl
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1v
dXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxl
ZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0
aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1mcmFtZXMuaHRtbAppbmRleCA0MzAzNTZmLi4wNDk1ZjM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxo
ZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAK
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
CmluZGV4IDA3YzVlMTAuLjI5NGVlNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBmdW5jdGlvbjAoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9u
Lmh0bWwKaW5kZXggZDExZGNjMi4uNDgwNTkzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sCkBAIC0yLDEwICsy
LDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0
bWwKaW5kZXggMzA4ZWFkZS4uYzQ2ODVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sCkBA
IC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCmluZGV4IGVh
NjNmYzUuLmU2YjZiM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8t
ZXhlY3V0aW9uLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25v
LWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwv
aGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0
aW9uLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlv
bi1jb250ZXh0Lmh0bWwKaW5kZXggZGVmM2M0Yi4uODBmMWQ4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCkBAIC0yLDEw
ICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxl
Lmh0bWwKaW5kZXggMzA1YTYwNS4uM2ZhODI0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKaW5k
ZXggYjA0ZDI3Yi4uM2IyOTQwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5j
dGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0
c2lkZS10aGUtbmVzdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sCmluZGV4IDdlMDYzY2UuLjk4MTljNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0
b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKaW5kZXgg
ZTYyNTFjNy4uMjJkNjZiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9w
cm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApAQCAtMiwx
MCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbAppbmRleCA0MzRmMjAyLi41YTg1
ODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1j
YWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2Fs
bC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2Uu
aHRtbAppbmRleCAwOTJhZWRlLi4xM2QwNTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApAQCAtMiwxMCArMiwxMCBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlw
bGUtdGltZXMuaHRtbAppbmRleCA4NTU5YzFhLi5jZjY2NzczIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9m
aWxlci1tdWx0aXBsZS10aW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFy
dC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1
bmN0aW9uLmh0bWwKaW5kZXggNWZhYWY3NC4uOGY4MDM1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVu
Y3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9w
LXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwog
CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCmluZGV4IDJh
MjVjZTAuLjRkZTNiOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rh
cnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
CmluZGV4IDM5YjkzZGIuLjZkY2RhZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCkBA
IC01LDggKzUsOSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiB9CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAK
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwKaW5kZXggNGY5NzAyOS4uY2VhOWU5
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rp
b24tY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1
bmN0aW9uLWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIGogPSAwOwogZnVuY3Rp
b24gdGVzdChsZW4pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhy
b3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKaW5kZXggOGI1
N2MwMy4uNWVjYzRkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJv
dy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKQEAgLTIs
MTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7CiAKIGNvbnNvbGUucHJvZmlsZSgiVGhyb3cgd2l0aGluIGFuIGV2YWwuIik7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1j
b250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNv
bnRleHRzLmh0bWwKaW5kZXggYzNlOTFiNS4uOTY2OGU5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKQEAgLTIsMTAg
KzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1m
dW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1
bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmluZGV4IGJkYjFkNWQuLmU2ODJi
NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1
bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9u
cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKaW5kZXggN2Q5
ODNhYy4uYjJhMmI1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5k
b3ctZG90LWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1k
b3QtZXZhbC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQog
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxl
ci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwK
aW5kZXggNjVlMWNlMi4uZjM3NTlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGlu
Zy13aXRob3V0LWluc3BlY3Rvci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBwYWdlRnVu
Y3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCA0N2Y1YmJkLi4zMDJiYzlk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtMzUxLDExICszNTEsNiBAQCB3ZWJhcmNo
aXZlL3Rlc3QtdGFibGUtYmFja2dyb3VuZC5odG1sCiB3ZWJhcmNoaXZlL3Rlc3QtdGQtYmFja2dy
b3VuZC5odG1sCiB3ZWJhcmNoaXZlL3Rlc3QteG1sLXN0eWxlc2hlZXQueG1sCiAKLSMgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDIzMjg+Ci1mYXN0L3Byb2ZpbGVyCi1pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXBy
b2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sCi0KICMgV2ViS2l0VGVzdFJ1
bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzCiAj
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMzE+CiBmYXN0L2xv
YWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA4NTk0YjcwLi5kYjRjY2M0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTM1Miw0ICsz
NTIsMjQgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0
YWNraW5nQ29udGV4dChib29sIGNyZWF0ZXMsIEV4Y2UKICAgICBzZXR0aW5ncygpLT5zZXRGaXhl
ZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChjcmVhdGVzKTsKIH0KIAordm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKCFw
YWdlKCkgfHwgIXBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW5zcGVj
dG9yQ29udHJvbGxlciogY29udHJvbGxlciA9IHBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
OworICAgIGlmIChlbmFibGVkKQorICAgICAgICBjb250cm9sbGVyLT5lbmFibGVQcm9maWxlcigp
OworICAgIGVsc2UKKyAgICAgICAgY29udHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVyKCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyAgICBVTlVTRURfUEFSQU0oZWMpOworICAg
IHJldHVybjsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCmluZGV4IDdmZWE3NWQuLjBlMjFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVzdG9yZVRvKFNldHRpbmdzKik7CiAKKyAgICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworCiBwcml2YXRlOgogICAg
IEludGVybmFsU2V0dGluZ3MoRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggN2IzMDE3OS4uODRlODQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01NSw2ICs1NSw3IEBAIG1vZHVs
ZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgc2V0RWRpdGluZ0JlaGF2aW9yKGluIERPTVN0cmluZyBiZWhhdmlvcikgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0Nv
bnRleHQoaW4gYm9vbGVhbiBjcmVhdGVzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
dm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChpbiBib29sZWFuIGNyZWF0ZXMpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAppbmRleCAwYTY2ZGIzLi45ZjFkNTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5o
CkBAIC02OCw3ICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIEV4cG9zZWQgZm9yIExheW91dFRl
c3RDb250cm9sbGVyLgogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxv
bmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKSA9IDA7CiAKICAgICBjbGFzcyBN
ZXNzYWdlRGVzY3JpcHRvciB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IGQzOWZmOGEuLjZmNzJm
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdl
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAKQEAgLTU2MCwxNSArNTYwLDYgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1w
bDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJgog
ICAgIGljLT5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCwgc2NyaXB0KTsKIH0KIAot
dm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQotewotICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9y
Q29udHJvbGxlcigpOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBpYy0+ZW5hYmxlUHJvZmls
ZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGljLT5kaXNhYmxlUHJvZmlsZXIoKTsKLX0KLQogV2Vi
U3RyaW5nIFdlYkRldlRvb2xzQWdlbnQ6Omluc3BlY3RvclByb3RvY29sVmVyc2lvbigpCiB7CiAg
ICAgcmV0dXJuIFdlYkNvcmU6Omluc3BlY3RvclByb3RvY29sVmVyc2lvbigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKaW5kZXggMWM4
ZTAyNS4uZWRiZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5oCkBAIC04NCw3ICs4NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdl
KTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdEVsZW1lbnRBdChjb25zdCBXZWJQb2ludCYgcG9p
bnQpOwogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElk
LCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9jZXNzSWQo
bG9uZyk7CiAKICAgICAvLyBJbnNwZWN0b3JDbGllbnQgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmNwcAppbmRleCBmMzcyYWRlLi5mMTBkYTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5jcHAKQEAgLTQyOCwyNCArNDI4LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWUK
ICAgICAgICAgY29yZVBhZ2UtPnNldHRpbmdzKCktPnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGVu
YWJsZWQpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxl
ZCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3
a1ZpZXcpOwotICAgIGlmICghY29yZVBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBjb3JlUGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpOwotICAgIGlmICghY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIGNvbnRyb2xsZXItPmVuYWJsZVByb2ZpbGVyKCk7Ci0g
ICAgZWxzZQotICAgICAgICBjb250cm9sbGVyLT5kaXNhYmxlUHJvZmlsZXIoKTsKLSNlbmRpZgot
fQotCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogbmFtZSkKIHsKICAgICBXZWJDb3Jl
OjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5oCmluZGV4IDIzNzlmMjAuLmIwZjk1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5o
CkBAIC03Nyw3ICs3Nyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OkZp
bmRPcHRpb25zKTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRD
U1NHcmlkTGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFi
bGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5h
YmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcAppbmRleCBmZjdkMDA2Li5lNzBiZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAt
MzAxLDIwICszMDEsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRvZmls
bGVkKGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBib29sIGlzQQogICAgIGlucHV0RWxlbWVu
dC0+c2V0QXV0b2ZpbGxlZChpc0F1dG9maWxsZWQpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChRV2ViRnJhbWUqIGZyYW1l
LCBib29sIGVuYWJsZWQpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVO
QUJMRShJTlNQRUNUT1IpCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6
OmNvcmUoZnJhbWUpOwotICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBjb3Jl
RnJhbWUtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGlmICghY29udHJvbGxl
cikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBjb250cm9sbGVy
LT5lbmFibGVQcm9maWxlcigpOwotICAgIGVsc2UKLSAgICAgICAgY29udHJvbGxlci0+ZGlzYWJs
ZVByb2ZpbGVyKCk7Ci0jZW5kaWYKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0VmFsdWVGb3JVc2VyKGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRU3RyaW5n
JiB2YWx1ZSkKIHsKICAgICBXZWJDb3JlOjpFbGVtZW50KiB3ZWJFbGVtZW50ID0gZWxlbWVudC5t
X2VsZW1lbnQ7CkBAIC0xMjc0LDExICsxMjYwLDYgQEAgdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9k
cnRfcnVuKGJvb2wgYikKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0RHVtcFJlbmRl
clRyZWVNb2RlRW5hYmxlZChiKTsKIH0KIAotdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9kcnRfc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZyYW1lKiBmcmFtZSwgYm9vbCBlbmFibGVk
KQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChmcmFtZSwgZW5hYmxlZCk7Ci19Ci0KIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0
X3doaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oY29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luLCBj
b25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5h
dGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oc291cmNlT3JpZ2lu
LCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAyYzk2ZmIzLi40MTgwMGZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5oCkBAIC0xMjUsNyArMTI1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CiAgICAgc3RhdGljIHZvaWQgZ2FyYmFnZUNv
bGxlY3RvckNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZChib29sIHdhaXRVbnRpbERvbmUpOwogICAg
IHN0YXRpYyB2b2lkIHNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmLCBib29sIGVuYWJs
ZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFFXZWJG
cmFtZSosIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNv
bnN0IFFXZWJFbGVtZW50JiwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBpbnQg
amF2YVNjcmlwdE9iamVjdHNDb3VudCgpOwogICAgIHN0YXRpYyB2b2lkIGNsZWFyU2NyaXB0V29y
bGRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmluZGV4IGE2OTll
YWIuLmFlNjlhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCkBA
IC01NSwxMSArNTUsNiBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JU
ZXN0KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJldHVybiB0b0lt
cGwoaW5zcGVjdG9yUmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwgdG9JbXBsKHNj
cmlwdCktPnN0cmluZygpKTsKIH0KIAotdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9v
bCBlbmFibGVkKQotewotICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZChlbmFibGVkKTsKLX0KLQogdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBh
Z2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9v
bCBlbmFibGVkKQogewogICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUlu
c3BlY3Rvci5oCmluZGV4IDU5M2Q5MGEuLmUzMmZkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSW5zcGVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJ
bnNwZWN0b3JTaG93KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rv
cik7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JU
ZXN0KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5n
UmVmIHNjcmlwdCk7Ci1XS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBl
bmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGlu
Z0VuYWJsZWQoV0tCdW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVuYWJsZWQpOwog
CiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCBmOTFjODc0Li5lMDZlMzBiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMzg4LDE3ICsxMzg4LDYgQEAg
c3RhdGljIEpTVmFsdWVSZWYgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotCi0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7Ci0gICAgY29udHJvbGxlci0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoSlNWYWx1
ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLQotICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0TWFpbkZy
YW1lSXNGaXJzdFJlc3BvbmRlckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjIGltcGxlbWVudGF0aW9uCkBAIC0yMzc3LDcgKzIzNjYsNiBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkK
ICAgICAgICAgeyAic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlcyIsIHNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgc2V0SWNvbkRh
dGFiYXNlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkIiwgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCIsIHNl
dEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlciIsIHNldE1haW5GcmFtZUlzRmlyc3RSZXNw
b25kZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNaW5pbXVtVGltZXJJbnRlcnZh
bCIsIHNldE1pbmltdW1UaW1lckludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDJiOWY1ZmUuLjliZTU4NjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTAw
LDcgKzEwMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSk7CiAgICAg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5h
YmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBwcm9maWxpbmdFbmFibGVkKTsKICAgICB2b2lkIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJy
eS5jcHAKaW5kZXggYWVlNGU2Zi4uNjQwNjdkMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFj
a0JlcnJ5LmNwcApAQCAtMjM0LDEyICsyMzQsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKHByb2ZpbGluZ0VuYWJsZWQpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIo
Ym9vbCBmbGFnKQogewogICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKaW5kZXggMjFhZWQxYi4u
YjY2NTlhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2
VG9vbHNBZ2VudC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2
VG9vbHNBZ2VudC5jcHAKQEAgLTExMiwxNSArMTEyLDYgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50
OjpkZXRhY2goKQogICAgIG1fZHJ0RGV2VG9vbHNDbGllbnQgPSAwOwogfQogCi1ib29sIERSVERl
dlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBXZWJEZXZUb29sc0FnZW50KiBhZ2VudCA9IHdlYkRldlRvb2xzQWdlbnQoKTsKLSAg
ICBpZiAoIWFnZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYWdlbnQtPnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGVuYWJsZWQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBi
b29sIERSVERldlRvb2xzQWdlbnQ6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdl
bnQgPSB3ZWJEZXZUb29sc0FnZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0FnZW50LmgKaW5kZXggNmU0OTFhZC4uZjM1NjRiZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaApAQCAtNjks
NyArNjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIGJvb2wgZXZhbHVh
dGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCk7
Ci0gICAgYm9vbCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNr
TGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDM4YzJhZDYuLmM3MzkxNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE5Niw3ICsx
OTYsNiBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmlu
ZE1ldGhvZCgic2V0SWNvbkRhdGFiYXNlRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOwogICAgIGJpbmRNZXRo
b2QoInNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRp
b25FcnJvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3Ip
OwpAQCAtMTgzMSwxNCArMTgzMCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvZ0Vy
cm9yVG9Db25zb2xlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KQogICAgICAgICBXZWJTdHJpbmco
KSwgMCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtX3NoZWxsLT5kcnREZXZUb29sc0FnZW50KCktPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IDA3MDNlZjAuLjM3OTc4NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzQ5LDkgKzM0OSw2IEBA
IHB1YmxpYzoKICAgICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lv
bnMgcmVxdWVzdHMgcGVuZGluZy4KICAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
IAotICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgSmF2YVNjcmlwdCBwcm9maWxp
bmcuCi0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KICAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRv
IGV4ZWMgc2NyaXB0cyBhdCBXZWJJbnNwZWN0b3Igc2lkZS4KICAgICB2b2lkIGV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRl
eCBlN2JiYTNiLi4wYzA2ZmEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTI2Niw3ICsyNjYsNiBAQCB2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmll
dygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwotICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcobWFpblZpZXcoKSwgZmFsc2Up
OwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZh
bHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldERlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwoMCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
TGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAppbmRleCBjYzIzNjI4Li5iMDFiMDU0IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5j
cHAKQEAgLTQ0OSwxNCArNDQ5LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNv
bkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXREZXZlbG9wZXJFeHRy
YXNFbmFibGVkKGVuYWJsZWQpOwotCi0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBlbmFibGVkKTsK
LX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKaW5kZXggNDVjODBlOC4uMDYyODdjMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC01NDAsMTcg
KzU0MCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChk
YXRhYmFzZSwgMCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB2aWV3
ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKLSAgICBBU1NFUlQo
dmlldyk7Ci0KLSAgICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZsYWcpOwotCi0gICAgV2Vi
S2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rv
cih2aWV3KTsKLSAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImphdmFzY3Jp
cHQtcHJvZmlsaW5nLWVuYWJsZWQiLCBmbGFnLCBOVUxMKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcp
CiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IGMxZjQ0YTQuLmIyNWFjNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEyNjQsNyArMTI2NCw2IEBAIHN0YXRpYyB2b2lkIHJl
c2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgfQogCiAgICAg
W1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107Ci0g
ICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIGluc3BlY3Rvcl0gc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQ6Tk9dOwogCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0Nv
bG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggNWIyZTA2MC4uYTQ5ZGEzYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTYxLDEyICs1NjEsNiBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNv
bkRhdGFiYXNlRW5hYmxlZCkKICAgICBbc2hhcmVkV2ViSWNvbkRhdGFiYXNlIHNldEVuYWJsZWQ6
aWNvbkRhdGFiYXNlRW5hYmxlZF07CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAg
ICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByb2ZpbGluZ0VuYWJsZWQpOwotICAgIFtbW21h
aW5GcmFtZSB3ZWJWaWV3XSBpbnNwZWN0b3JdIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
OnByb2ZpbGluZ0VuYWJsZWRdOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
YWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykKIHsKICAgICBOU1ZpZXcgKmRvY3Vt
ZW50VmlldyA9IFtbbWFpbkZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXgg
YzE2ODNmMS4uOWJiZjQzOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTQ3NywxMiArNDc3LDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwg
Ym9vbCBpc0F1dG8KICAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dG9m
aWxsZWQoZWxlbWVudCwgaXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAg
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOwotICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChtX3RvcExvYWRpbmdGcmFtZSwg
ZW5hYmxlKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VmFsdWVGb3JVc2Vy
KGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0VmFsdWVGb3JVc2VyKGVsZW1lbnQsIHZhbHVl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aAppbmRleCA1NTExNjc2Li5lZjY4YjM2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xNTksNyArMTU5LDYgQEAgcHVibGljIHNs
b3RzOgogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgZW5hYmxl
KTsKICAgICB2b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHF1
b3RhKTsKICAgICB2b2lkIHNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmLCBib29sIGVu
YWJsZSk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJs
ZSk7CiAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVu
YWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA0ZWQ4ZTBkLi45MmFiODYzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKQEAgLTkwNSwxMCArOTA1LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3
VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZp
ZXdQcml2YXRlLT5kZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoJm1pbmltdW1JbnRlcnZhbCkp
KQogICAgICAgICB3ZWJWaWV3UHJpdmF0ZS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwobWluaW11
bUludGVydmFsKTsKIAotICAgIENPTVB0cjxJV2ViSW5zcGVjdG9yPiBpbnNwZWN0b3I7Ci0gICAg
aWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+aW5zcGVjdG9yKCZpbnNwZWN0b3IpKSkKLSAg
ICAgICAgaW5zcGVjdG9yLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChGQUxTRSk7Ci0K
ICAgICBIV05EIHZpZXdXaW5kb3c7CiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+
dmlld1dpbmRvdyhyZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSAm
JiB2aWV3V2luZG93KQogICAgICAgICBTZXRGb2N1cyh2aWV3V2luZG93KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4
IGM2NzIzYmQuLmQzYWRjYWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtODQ2LDI0ICs4NDYsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFn
KQogICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRS
VUUgOiBGQUxTRSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdl
YlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKLSAg
ICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYkluc3BlY3Rvcj4gaW5zcGVjdG9yOwotICAg
IGlmIChGQUlMRUQodmlld1ByaXZhdGUtPmluc3BlY3RvcigmaW5zcGVjdG9yKSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmxhZyk7Ci0gICAgaW5z
cGVjdG9yLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGZsYWcpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCAyNTBmYTVjLi45MWVkODk4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtNDc4LDEzICs0NzgsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBKU1N0cmluZ1JlZiBzY3JpcAog
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIFdLQnVuZGxlSW5zcGVjdG9yU2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5wYWdlKCktPnBhZ2UoKSksIGVuYWJsZWQpOwotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCi19Ci0KIHR5cGVkZWYgV1RGOjpIYXNoTWFwPHVuc2lnbmVkLCBXS1JldGFpblB0cjxXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmPiA+IFdvcmxkTWFwOwogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1h
cCgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOGNhMDlmNi4uZDFiMzg1ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTc0LDcgKzE3NCw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAg
ICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBz
Y3JpcHQpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAK
ICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKEpTU3RyaW5nUmVmKTsKIAotLSAKMS43LjEwCgo=
</data>
<flag name="commit-queue"
          id="150571"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143893</attachid>
            <date>2012-05-24 14:17:19 -0700</date>
            <delta_ts>2012-05-25 08:25:25 -0700</delta_ts>
            <desc>WIP for ews testing v2</desc>
            <filename>0001-WIP-Moving-setJavaScriptProfilingEnabled-to-window.i.patch</filename>
            <type>text/plain</type>
            <size>63536</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBhNTI3ODkyMzJkNWU0NTNhZmMwYjIwMTc0YWU4MTJhMDY4OGUyOWJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUaHUsIDI0IE1heSAyMDEyIDE2OjIzOjMyIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gV0lQOiBNb3Zpbmcgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQg
dG8KIHdpbmRvdy5pbnRlcm5hbHMuCgotLS0KIC4uLi9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1l
dmVudC1oYW5kbGVyLmh0bWwgICAgIHwgICAgNiArKystLS0KIC4uLnVzLWZ1bmN0aW9uLWNhbGxl
ZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sIHwgICAgNiArKystLS0KIC4uLm5vbnltb3Vz
LWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIHwgICAgNiArKystLS0KIC4u
Li9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sICAgIHwgICAgNiAr
KystLS0KIC4uLi9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sICAg
IHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCAgICAg
ICAgICAgICAgIHwgICAgNiArKystLS0KIC4uLi9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9u
eW1vdXMuaHRtbCAgICAgICAgIHwgICAgNiArKystLS0KIC4uLmx0LWluLWZ1bmN0aW9uLWNhbGxz
LXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwgIHwgICAgNiArKystLS0KIExheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sICAgICAgICAgICAgICAgIHwgICAgNiArKyst
LS0KIC4uLmF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sIHwg
ICAgNiArKystLS0KIC4uLi9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMu
aHRtbCAgIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0
b3IuaHRtbCAgICAgICAgIHwgICAgNiArKystLS0KIExheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
ZGVhZC10aW1lLmh0bWwgICAgICAgICAgIHwgICAgNCArKystCiBMYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sICB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbCAgICAgICB8ICAgIDYgKysrLS0tCiAu
Li4vZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwgICB8ICAgIDYg
KysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sICAgICAg
ICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sICAgICB8ICAgIDYgKysrLS0tCiAuLi4tZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKysrLS0tCiAuLi5sdGlwbGUtYW5kLWRpZmZlcmVu
dC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKysrLS0tCiAuLi51cy1mdW5jdGlv
bnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8ICAgIDYgKysrLS0tCiBMYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sICAgICB8ICAgIDYgKysr
LS0tCiAuLi4vbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sICAgICAgICB8
ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24u
aHRtbCAgICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLmh0bWwgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9uby1leGVj
dXRpb24tY29udGV4dC5odG1sICAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxl
ci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbCAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vcHJv
ZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgICB8ICAgIDYgKysrLS0t
CiAuLi4vZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbCAgICAgICB8ICAg
IDYgKysrLS0tCiAuLi5pb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rpbmcu
aHRtbCB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQt
bG9jYXRpb24uaHRtbCB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Np
bXBsZS1ldmVudC1jYWxsLmh0bWwgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxlci9z
aW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vc3RhcnQt
YW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAgICB8ICAgIDYgKysrLS0tCiAu
Li5ydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8ICAgIDYg
KysrLS0tCiAuLi4vcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbCAg
ICB8ICAgIDYgKysrLS0tCiAuLi4vcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGlt
ZW91dC5odG1sICB8ICAgIDMgKystCiAuLi4vZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rp
b24tY2FsbC5odG1sICAgICB8ICAgIDYgKysrLS0tCiAuLi4vdGhyb3ctZXhjZXB0aW9uLWZyb20t
ZXZhbC5odG1sLWRpc2FibGVkICAgICAgICB8ICAgIDYgKysrLS0tCiAuLi4vZmFzdC9wcm9maWxl
ci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwgICAgICB8ICAgIDYgKysrLS0tCiAuLi4tZGVm
aW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbCB8ICAgIDYgKysrLS0t
CiBMYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sICAgICB8ICAg
IDYgKysrLS0tCiAuLi4vY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5o
dG1sICB8ICAgIDYgKysrLS0tCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCAgICAg
ICAgICAgICAgICAgICB8ICAgIDUgLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAgICAgICAgIHwgICAyMCArKysrKysrKysrKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggICAgICAgICAgfCAgICAyICsrCiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsICAgICAgICB8ICAgIDEg
KwogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oICAgfCAg
ICAxIC0KIC4uLi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCAg
IHwgICAgOSAtLS0tLS0tLS0KIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xz
QWdlbnRJbXBsLmggIHwgICAgMSAtCiAuLi4vV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcCAgICB8ICAgMTggLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oICB8ICAgIDEgLQogLi4uL3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCAgfCAgIDE5IC0tLS0tLS0t
LS0tLS0tLS0tLS0KIC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oICAgIHwgICAgMSAtCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0
b3IuY3BwICAgICB8ICAgIDUgLS0tLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUluc3BlY3Rvci5oICAgICAgIHwgICAgMSAtCiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKysKIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIgICAgICAgICAgICAgICAgICAgIHwgICAgMiArKwogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgfCAgIDEyIC0tLS0tLS0tLS0tLQogVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAgICAgICAgfCAgICAxIC0K
IC4uLi9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgIHwgICAg
NiAtLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQu
Y3BwIHwgICAgOSAtLS0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERl
dlRvb2xzQWdlbnQuaCAgIHwgICAgMSAtCiAuLi4vY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwICAgICAgICAgICAgICB8ICAgIDkgLS0tLS0tLS0tCiAuLi4vRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCB8ICAgIDMgLS0tCiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwICB8ICAgIDEgLQogLi4uL0R1bXBS
ZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAgfCAgICA4IC0tLS0tLS0t
CiAuLi4vRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCB8ICAg
MTEgLS0tLS0tLS0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSAgICAgICAgIHwgICAgMSAtCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tICB8ICAgIDYgLS0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmNwcCB8ICAgIDYgLS0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICB8ICAgIDEgLQogVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCAgICAgICAgfCAgICA0IC0tLS0KIC4uLi9EdW1w
UmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxOCAtLS0tLS0t
LS0tLS0tLS0tLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
ICAgICAgIHwgICAgNyAtLS0tLS0tCiAuLi4vSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCAgICAgICAgICB8ICAgIDEgLQogNzcgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlv
bnMoKyksIDI5NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKaW5kZXggM2E4NjYyOC4uZjFkMzI1
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQt
aGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNv
bnRleHRzLmh0bWwKaW5kZXggNzlmMTEwOC4uYzRkZWI4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50
LWNvbnRleHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKQEAgLTIsMTAgKzIs
MTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlv
bnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmluZGV4IDg0OGMwMDEuLmU2NDk1ZWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxz
LWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCkBAIC0yLDEw
ICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5o
dG1sCmluZGV4IDljYjVjNGIuLjAzNDgxZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKaW5kZXggM2M0Mjk2Ni4uZGJmYjZlNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
IAogZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoaXRlcmF0aW9ucykKIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbAppbmRleCBmZDAzYTg0Li5jMGJjMzljIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5j
dGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwKaW5kZXgg
ZmIyNjExOS4uNWQ3ZjFhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9i
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmlu
ZWQtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVu
Y3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKaW5kZXggNjAwYWJiMy4uYWUx
MzRmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5j
dGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlv
bi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKaW5k
ZXggNTliYzZlMy4uNzdiYmQ0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCkBAIC0xLDEwICsxLDEwIEBACiA8Ym9keT4KIDxoZWFk
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBs
b2cocykKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKaW5kZXggMTg2MTIyZS4uMDBh
YjU3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAK
IDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXIt
ZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxp
bmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNj
b3BlLmh0bWwKaW5kZXggZWFiYWI2ZS4uMzNkYTBlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2Zp
bGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFu
b3RoZXItc2NvcGUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0
aXBsZS1wcm9maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11
bHRpcGxlLXByb2ZpbGVzLmh0bWwKaW5kZXggYzhjNDgxMi4uY2FjMTUxYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVz
Lmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19Citp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBqID0gMDsKIGZ1bmN0aW9uIHRlc3QobGVu
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWwKaW5kZXggMGRk
MzhiYy4uODk3Njc1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25z
dHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3Iu
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCmluZGV4IDIzNjQ3OWQuLjA3ZmIxZTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbApAQCAtNSw4ICs1LDkg
QEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpAQCAtMjcsMyArMjgsNCBAQCB0aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUgJSBzcGVudCBpbgogPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwKaW5kZXggZjNkNmIwMC4u
ZjI1ZGEwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1k
b3Qtd3JpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRv
dC13cml0ZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQog
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbAppbmRleCAw
ZWFkZDkxLi5iMmIyMDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2
ZW50LWhhbmRsZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhh
bmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsg
ICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250
ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbAppbmRleCA5MmFh
MzJkLi5iOThkZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1
dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwKaW5k
ZXggYjc2NzExYy4uMGFhMzU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIHsgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCmluZGV4IGZhOTU0YmIu
LjAzYWRkOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxs
cy1pbi10aGUtc2FtZS1zY29wZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVh
ZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBm
dW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVu
dC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKaW5kZXggNjA0ZDAzYS4uOTli
NTk4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQt
ZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255
bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0
aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1j
YWxscy5odG1sCmluZGV4IDRlNDc2ZGUuLjkxMmY2NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2Fs
bHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZm
ZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVu
Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3Vz
LWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCmluZGV4IGM0M2Q3
MzMuLmYyYWY1ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlw
bGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0
aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKaW5kZXggNDMwMzU2Zi4uMDQ5NWYzNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCkBAIC0yLDEwICsy
LDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXkt
bmFtZXMuaHRtbAppbmRleCAwN2M1ZTEwLi4yOTRlZTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gZnVuY3Rpb24wKCkK
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91
cy1mdW5jdG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1v
dXMtZnVuY3Rvbi5odG1sCmluZGV4IGQxMWRjYzIuLjQ4MDU5MzcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sCmluZGV4IDMwOGVhZGUuLmM0Njg1ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmls
ZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0K
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRleHQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRleHQuaHRt
bAppbmRleCBlYTYzZmM1Li5lNmI2YjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVh
ZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
b25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29u
ZS1leGVjdXRpb24tY29udGV4dC5odG1sCmluZGV4IGRlZjNjNGIuLjgwZjFkOGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRt
bApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1m
aWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5j
bHVkZWQtZmlsZS5odG1sCmluZGV4IDMwNWE2MDUuLjNmYTgyNDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVk
LWZpbGUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRp
dGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRs
ZS5odG1sCmluZGV4IGIwNGQyN2IuLjNiMjk0MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbApAQCAtMiwxMCArMiwxMCBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJv
ZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91
dHNpZGUtdGhlLW5lc3RpbmcuaHRtbAppbmRleCA3ZTA2M2NlLi45ODE5YzU4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0
aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1i
dXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sCkBAIC0yLDEwICsyLDEw
IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5o
dG1sCmluZGV4IGU2MjUxYzcuLjIyZDY2YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKaW5kZXggNDM0
ZjIwMi4uNWE4NTg4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1w
bGUtZXZlbnQtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxl
LWV2ZW50LWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxl
dmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2
ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZS4uMTNkMDUzNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKQEAgLTIs
MTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRp
bWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2Zp
bGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKaW5kZXggODU1OWMxYS4uY2Y2Njc3MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0
aXBsZS10aW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5k
LXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAog
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10
aGUtc2FtZS1mdW5jdGlvbi5odG1sCmluZGV4IDVmYWFmNzQuLjhmODAzNTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRo
ZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFy
dC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbApAQCAtMiwxMCAr
MiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRt
bAppbmRleCAyYTI1Y2UwLi40ZGUzYjkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRp
bWVvdXQuaHRtbAppbmRleCAzOWI5M2RiLi42ZGNkYWZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVv
dXQuaHRtbApAQCAtNSw4ICs1LDkgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmluZGV4IDRmOTcw
MjkuLmNlYTllOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10
aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0
b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBqID0g
MDsKIGZ1bmN0aW9uIHRlc3QobGVuKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVk
CmluZGV4IDhiNTdjMDMuLjVlY2M0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2Fi
bGVkCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBjb25zb2xlLnByb2ZpbGUoIlRocm93IHdpdGhpbiBh
biBldmFsLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1l
eGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4
ZWN1dGlvbi1jb250ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUuLjk2NjhlOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMt
YnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAppbmRleCBiZGIx
ZDVkLi5lNjgyYjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1p
bi1mdW5jdGlvbnMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1l
dmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1s
CmluZGV4IDdkOTgzYWMuLmIyYTJiNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9j
cHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3Bl
Y3Rvci5odG1sCmluZGV4IDY1ZTFjZTIuLmYzNzU5ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVj
dG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxl
ci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhl
YWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gcGFnZUZ1bmN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggNDdmNWJi
ZC4uMzAyYmM5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTM1MSwxMSArMzUxLDYg
QEAgd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tncm91bmQuaHRtbAogd2ViYXJjaGl2ZS90ZXN0
LXRkLWJhY2tncm91bmQuaHRtbAogd2ViYXJjaGl2ZS90ZXN0LXhtbC1zdHlsZXNoZWV0LnhtbAog
Ci0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAotIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMzI4PgotZmFzdC9wcm9maWxlcgotaW5zcGVjdG9yL3Byb2Zp
bGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbAotCiAjIFdl
YktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEZyYW1lTG9hZENh
bGxiYWNrcwogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzMx
PgogZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11bmxvYWQtY3Jhc2guaHRtbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggODU5NGI3MC4uZGI0
Y2NjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBA
IC0zNTIsNCArMzUyLDI0IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Rml4ZWRQb3NpdGlv
bkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoYm9vbCBjcmVhdGVzLCBFeGNlCiAgICAgc2V0dGluZ3Mo
KS0+c2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoY3JlYXRlcyk7CiB9CiAK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
ICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBwYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKTsKKyAgICBpZiAoZW5hYmxlZCkKKyAgICAgICAgY29udHJvbGxlci0+ZW5hYmxl
UHJvZmlsZXIoKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRyb2xsZXItPmRpc2FibGVQcm9maWxl
cigpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisgICAgVU5VU0VEX1BBUkFN
KGVjKTsKKyAgICByZXR1cm47CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA3ZmVhNzVkLi4wZTIxYzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHJlc3RvcmVUbyhTZXR0aW5ncyopOwogCisgICAgdm9pZCBzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKwogcHJp
dmF0ZToKICAgICBJbnRlcm5hbFNldHRpbmdzKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDdiMzAxNzkuLjg0ZTg0NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTUsNiArNTUs
NyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWly
ZXNVc2VyR2VzdHVyZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgICAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihpbiBET01TdHJpbmcgYmVoYXZpb3IpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVz
U3RhY2tpbmdDb250ZXh0KGluIGJvb2xlYW4gY3JlYXRlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoaW4gYm9vbGVhbiBj
cmVhdGVzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5kZXggMGE2NmRiMy4u
OWYxZDUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2
VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRv
b2xzQWdlbnQuaApAQCAtNjgsNyArNjgsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBFeHBvc2VkIGZv
ciBMYXlvdXRUZXN0Q29udHJvbGxlci4KICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVJbldlYklu
c3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCkgPSAwOwogCiAg
ICAgY2xhc3MgTWVzc2FnZURlc2NyaXB0b3IgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBkMzlm
ZjhhLi42ZjcyZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
RGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01NjAsMTUgKzU2MCw2IEBAIHZvaWQgV2ViRGV2VG9v
bHNBZ2VudEltcGw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdl
YlN0cmluZyYKICAgICBpYy0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlw
dCk7CiB9CiAKLXZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9
IGluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgaWMtPmVu
YWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBpYy0+ZGlzYWJsZVByb2ZpbGVyKCk7
Ci19Ci0KIFdlYlN0cmluZyBXZWJEZXZUb29sc0FnZW50OjppbnNwZWN0b3JQcm90b2NvbFZlcnNp
b24oKQogewogICAgIHJldHVybiBXZWJDb3JlOjppbnNwZWN0b3JQcm90b2NvbFZlcnNpb24oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5o
CmluZGV4IDFjOGUwMjUuLmVkYmVlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaApAQCAtODQsNyArODQsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmlu
ZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RFbGVtZW50QXQoY29uc3QgV2Vi
UG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihs
b25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQpOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UHJvY2Vzc0lkKGxvbmcpOwogCiAgICAgLy8gSW5zcGVjdG9yQ2xpZW50IGltcGxlbWVudGF0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggZjM3MmFkZS4uZjEwZGE0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC00MjgsMjQgKzQyOCw2IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVj
dCogZXdrVmllCiAgICAgICAgIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zZXRDU1NHcmlkTGF5b3V0
RW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBi
b29sIGVuYWJsZWQpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJM
RShJTlNQRUNUT1IpCi0gICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpj
b3JlUGFnZShld2tWaWV3KTsKLSAgICBpZiAoIWNvcmVQYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gY29yZVBhZ2Ut
Pmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChlbmFibGVkKQotICAgICAgICBjb250cm9sbGVyLT5lbmFibGVQcm9m
aWxlcigpOwotICAgIGVsc2UKLSAgICAgICAgY29udHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVyKCk7
Ci0jZW5kaWYKLX0KLQogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmlzQ29tbWFuZEVu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpCiB7CiAg
ICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCAyMzc5ZjIwLi5iMGY5NThmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaApAQCAtNzcsNyArNzcsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZmlu
ZFN0cmluZyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgU3RyaW5nJiB0ZXh0LCBX
ZWJDb3JlOjpGaW5kT3B0aW9ucyk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGlj
IHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3Rh
dGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKaW5kZXggZmY3ZDAwNi4uZTcwYmYwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHAKQEAgLTMwMSwyMCArMzAxLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgYm9vbCBpc0EKICAgICBp
bnB1dEVsZW1lbnQtPnNldEF1dG9maWxsZWQoaXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZy
YW1lKiBmcmFtZSwgYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJh
bWVQcml2YXRlOjpjb3JlKGZyYW1lKTsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9s
bGVyID0gY29yZUZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAo
IWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAg
Y29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbnRyb2xs
ZXItPmRpc2FibGVQcm9maWxlcigpOwotI2VuZGlmCi19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnNldFZhbHVlRm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgY29u
c3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgV2ViQ29yZTo6RWxlbWVudCogd2ViRWxlbWVudCA9
IGVsZW1lbnQubV9lbGVtZW50OwpAQCAtMTI3NCwxMSArMTI2MCw2IEBAIHZvaWQgUVdFQktJVF9F
WFBPUlQgcXRfZHJ0X3J1bihib29sIGIpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dER1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoYik7CiB9CiAKLXZvaWQgUVdFQktJVF9FWFBPUlQg
cXRfZHJ0X3NldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFFXZWJGcmFtZSogZnJhbWUsIGJv
b2wgZW5hYmxlZCkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQoZnJhbWUsIGVuYWJsZWQpOwotfQotCiB2b2lkIFFXRUJLSVRfRVhQ
T1JUIHF0X2RydF93aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGNvbnN0IFFTdHJpbmcmIHNvdXJj
ZU9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmlu
ZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKHNv
dXJjZU9yaWdpbiwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMmM5NmZiMy4uNDE4
MDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTI1LDcgKzEyNSw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpOwogICAgIHN0YXRpYyB2b2lk
IGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50aWxE
b25lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRBdXRvZmlsbGVkKGNvbnN0IFFXZWJFbGVtZW50Jiwg
Ym9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChRV2ViRnJhbWUqLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVl
Rm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICBz
dGF0aWMgaW50IGphdmFTY3JpcHRPYmplY3RzQ291bnQoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVh
clNjcmlwdFdvcmxkcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcApp
bmRleCBhNjk5ZWFiLi5hZTY5YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVj
dG9yLmNwcApAQCAtNTUsMTEgKzU1LDYgQEAgdm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRl
U2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGwKICAgICBy
ZXR1cm4gdG9JbXBsKGluc3BlY3RvclJlZiktPmV2YWx1YXRlU2NyaXB0Rm9yVGVzdChjYWxsSUQs
IHRvSW1wbChzY3JpcHQpLT5zdHJpbmcoKSk7CiB9CiAKLXZvaWQgV0tCdW5kbGVJbnNwZWN0b3JT
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0
b3JSZWYsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgV0tCdW5kbGVJbnNw
ZWN0b3JTZXRQYWdlUHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0
b3JSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNw
ZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVJbnNwZWN0b3IuaAppbmRleCA1OTNkOTBhLi5lMzJmZGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCkBAIC00NCw3ICs0NCw2IEBAIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlSW5zcGVjdG9yU2hvdyhXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwog
V0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JDbG9zZShXS0J1bmRsZUluc3BlY3RvclJl
ZiBpbnNwZWN0b3IpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRl
U2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIGxvbmcgY2FsbElE
LCBXS1N0cmluZ1JlZiBzY3JpcHQpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JT
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0
b3IsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBh
Z2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBl
bmFibGVkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXgg
ZGM3YjRjYi4uZDIxMjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjU1LDMgKzI1NSw1
IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUGFnZUJveFZpc2libGVARG9jdW1lbnRAV2ViQ29yZUBA
UUFFX05IQFoKICAgICAgICAgP3N1c3BlbmRBbmltYXRpb25zQEFuaW1hdGlvbkNvbnRyb2xsZXJA
V2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZXN1bWVBbmltYXRpb25zQEFuaW1hdGlvbkNvbnRy
b2xsZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9kaXNhYmxlUHJvZmlsZXJASW5zcGVjdG9y
Q29udHJvbGxlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP2VuYWJsZVByb2ZpbGVyQEluc3Bl
Y3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRl
eCA5NmMwZjdmLi4xMzBjOWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTEwOSw2ICsx
MDksOCBAQCBfWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlvbkV2OwogX1pO
N1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaTsKIF9aTjdXZWJDb3JlMTlBbmlt
YXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0aW9uc0V2OwogX1pON1dlYkNvcmUxOUFuaW1h
dGlvbkNvbnRyb2xsZXIxNnJlc3VtZUFuaW1hdGlvbnNFdjsKK19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTRlbmFibGVQcm9maWxlckV2OworX1pON1dlYkNvcmUxOUluc3BlY3RvckNv
bnRyb2xsZXIxNWRpc2FibGVQcm9maWxlckV2OwogX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTJnZXRIaWdobGlnaHRFUE5TXzlIaWdobGlnaHRFOwogX1pON1dlYkNvcmUyNEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjI2aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2VFUE5TXzRQYWdl
RTsKIF9aTjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24xN3NfZnJvbnRlbmRDb3Vu
dGVyRTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCBmOTFjODc0Li5lMDZlMzBiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMzg4LDE3ICsxMzg4LDYgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAK
LXN0YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwg
MSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJv
bGxlci0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250
ZXh0LCBhcmd1bWVudHNbMF0pKTsKLQotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3Bv
bmRlckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICAvLyBIYXMg
bWFjIGltcGxlbWVudGF0aW9uCkBAIC0yMzc3LDcgKzIzNjYsNiBAQCBKU1N0YXRpY0Z1bmN0aW9u
KiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0
R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyIs
IHNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXNDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
Iiwgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCIsIHNldEF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TWFpbkZyYW1l
SXNGaXJzdFJlc3BvbmRlciIsIHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXJDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsIHNldE1pbmltdW1U
aW1lckludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDJiOWY1ZmUuLjliZTU4NjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTAwLDcgKzEwMCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
Ym9vbCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSk7CiAgICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKGJvb2wpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25E
YXRhYmFzZUVuYWJsZWQpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBwcm9maWxpbmdFbmFibGVkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25F
bmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVy
KGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKaW5kZXggYWVl
NGU2Zi4uNjQwNjdkMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAt
MjM0LDEyICsyMzQsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJh
c2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHByb2Zp
bGluZ0VuYWJsZWQpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFnKQogewog
ICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKaW5kZXggMjFhZWQxYi4uYjY2NTlhNCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAK
QEAgLTExMiwxNSArMTEyLDYgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50OjpkZXRhY2goKQogICAg
IG1fZHJ0RGV2VG9vbHNDbGllbnQgPSAwOwogfQogCi1ib29sIERSVERldlRvb2xzQWdlbnQ6OnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBXZWJEZXZU
b29sc0FnZW50KiBhZ2VudCA9IHdlYkRldlRvb2xzQWdlbnQoKTsKLSAgICBpZiAoIWFnZW50KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYWdlbnQtPnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKGVuYWJsZWQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIERSVERldlRvb2xz
QWdlbnQ6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIGNvbnN0IHN0ZDo6c3Ry
aW5nJiBzY3JpcHQpCiB7CiAgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdlbnQgPSB3ZWJEZXZUb29s
c0FnZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRE
ZXZUb29sc0FnZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29s
c0FnZW50LmgKaW5kZXggNmU0OTFhZC4uZjM1NjRiZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaApAQCAtNjksNyArNjksNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIGJvb2wgZXZhbHVhdGVJbldlYkluc3BlY3Rv
cihsb25nIGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCk7Ci0gICAgYm9vbCBzZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNrTGlzdCogdGFza0xpc3Qo
KSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDM4
YzJhZDYuLmM3MzkxNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE5Niw3ICsxOTYsNiBAQCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAg
ICBiaW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmluZE1ldGhvZCgic2V0SWNv
bkRhdGFiYXNlRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOwogICAgIGJpbmRNZXRob2QoInNldE1vY2tEZXZp
Y2VPcmllbnRhdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOwpAQCAtMTgzMSwxNCAr
MTgzMCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvZ0Vycm9yVG9Db25zb2xlKGNv
bnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KQogICAgICAgICBXZWJTdHJpbmcoKSwgMCk7CiB9CiAKLXZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0g
ICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFh
cmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT5kcnRE
ZXZUb29sc0FnZW50KCktPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGFyZ3VtZW50c1sw
XS50b0Jvb2xlYW4oKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDA3MDNl
ZjAuLjM3OTc4NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzQ5LDkgKzM0OSw2IEBAIHB1YmxpYzoKICAgICAv
LyBHZXRzIHRoZSBudW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lvbnMgcmVxdWVzdHMgcGVu
ZGluZy4KICAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEFsbG93
cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgSmF2YVNjcmlwdCBwcm9maWxpbmcuCi0gICAgdm9pZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7Ci0KICAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRvIGV4ZWMgc2NyaXB0cyBh
dCBXZWJJbnNwZWN0b3Igc2lkZS4KICAgICB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBlN2JiYTNiLi4wYzA2
ZmEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAKQEAgLTI2Niw3ICsyNjYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQobWFpblZpZXcoKSwgZmFs
c2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TG9hZHNTaXRlSWNvbnNJZ25v
cmluZ0ltYWdlTG9hZGluZ1NldHRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwo
MCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRy
b2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9s
bGVyRWZsLmNwcAppbmRleCBjYzIzNjI4Li5iMDFiMDU0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKQEAgLTQ0OSwxNCAr
NDQ5LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhf
c2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
ICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJs
ZWQpOwotCi0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBlbmFibGVkKTsKLX0KLQogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5k
ZXggNDVjODBlOC4uMDYyODdjMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC01NDAsMTcgKzU0MCw2IEBAIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKGJvb2wgZmxhZykKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9m
cmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKLSAgICBBU1NFUlQodmlldyk7Ci0KLSAgICBz
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZsYWcpOwotCi0gICAgV2ViS2l0V2ViSW5zcGVjdG9y
KiBpbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rvcih2aWV3KTsKLSAgICBn
X29iamVjdF9zZXQoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImphdmFzY3JpcHQtcHJvZmlsaW5nLWVu
YWJsZWQiLCBmbGFnLCBOVUxMKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGMx
ZjQ0YTQuLmIyNWFjNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KQEAgLTEyNjQsNyArMTI2NCw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29u
c2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgfQogCiAgICAgW1ttYWluRnJhbWUgd2Vi
Vmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107Ci0gICAgW1tbbWFpbkZyYW1l
IHdlYlZpZXddIGluc3BlY3Rvcl0gc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQ6Tk9dOwog
CiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yOllFU107CiAgICAg
W1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggNWIyZTA2
MC4uYTQ5ZGEzYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRl
c3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTYxLDEyICs1NjEsNiBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxl
ZCkKICAgICBbc2hhcmVkV2ViSWNvbkRhdGFiYXNlIHNldEVuYWJsZWQ6aWNvbkRhdGFiYXNlRW5h
YmxlZF07CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAgICBzZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHByb2ZpbGluZ0VuYWJsZWQpOwotICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3
XSBpbnNwZWN0b3JdIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkOnByb2ZpbGluZ0VuYWJs
ZWRdOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0
UmVzcG9uZGVyKGJvb2wgZmxhZykKIHsKICAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtbbWFp
bkZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggYzE2ODNmMS4uOWJiZjQz
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKQEAgLTQ3NywxMiArNDc3LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgYm9vbCBpc0F1dG8KICAg
ICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dG9maWxsZWQoZWxlbWVudCwg
aXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgc2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZChlbmFibGUpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChtX3RvcExvYWRpbmdGcmFtZSwgZW5hYmxlKTsKLX0KLQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VmFsdWVGb3JVc2VyKGNvbnN0IFFXZWJFbGVt
ZW50JiBlbGVtZW50LCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0VmFsdWVGb3JVc2VyKGVsZW1lbnQsIHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA1NTExNjc2
Li5lZjY4YjM2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5oCkBAIC0xNTksNyArMTU5LDYgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQg
c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNl
dEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKICAgICB2b2lk
IHNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmLCBib29sIGVuYWJsZSk7Ci0gICAgdm9p
ZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBz
ZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSk7
CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOwog
ICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA0ZWQ4ZTBkLi45MmFi
ODYzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAg
LTkwNSwxMCArOTA1LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3Rh
dGVCZWZvcmVUZXN0aW5nKCkKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXdQcml2YXRlLT5kZWZh
dWx0TWluaW11bVRpbWVySW50ZXJ2YWwoJm1pbmltdW1JbnRlcnZhbCkpKQogICAgICAgICB3ZWJW
aWV3UHJpdmF0ZS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwobWluaW11bUludGVydmFsKTsKIAot
ICAgIENPTVB0cjxJV2ViSW5zcGVjdG9yPiBpbnNwZWN0b3I7Ci0gICAgaWYgKFNVQ0NFRURFRCh3
ZWJWaWV3UHJpdmF0ZS0+aW5zcGVjdG9yKCZpbnNwZWN0b3IpKSkKLSAgICAgICAgaW5zcGVjdG9y
LT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChGQUxTRSk7Ci0KICAgICBIV05EIHZpZXdX
aW5kb3c7CiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+dmlld1dpbmRvdyhyZWlu
dGVycHJldF9jYXN0PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSAmJiB2aWV3V2luZG93KQog
ICAgICAgICBTZXRGb2N1cyh2aWV3V2luZG93KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGM2NzIzYmQuLmQzYWRj
YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcApAQCAtODQ2LDI0ICs4NDYsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQogICAgIHZpZXdFZGl0
aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7CiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYg
KEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKLSAgICBpZiAoRkFJTEVEKHdl
YlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBDT01QdHI8SVdlYkluc3BlY3Rvcj4gaW5zcGVjdG9yOwotICAgIGlmIChGQUlMRUQodmll
d1ByaXZhdGUtPmluc3BlY3RvcigmaW5zcGVjdG9yKSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmxhZyk7Ci0gICAgaW5zcGVjdG9yLT5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAg
ICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCAyNTBmYTVjLi45MWVkODk4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
NDc4LDEzICs0NzgsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yKGxvbmcgY2FsbElELCBKU1N0cmluZ1JlZiBzY3JpcAogI2VuZGlmIC8vIEVOQUJM
RShJTlNQRUNUT1IpCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIFdLQnVuZGxlSW5zcGVjdG9yU2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoV0tC
dW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBh
Z2UoKSksIGVuYWJsZWQpOwotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCi19Ci0KIHR5cGVk
ZWYgV1RGOjpIYXNoTWFwPHVuc2lnbmVkLCBXS1JldGFpblB0cjxXS0J1bmRsZVNjcmlwdFdvcmxk
UmVmPiA+IFdvcmxkTWFwOwogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1hcCgpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggOGNhMDlmNi4uZDFiMzg1ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaApAQCAtMTc0LDcgKzE3NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dXZWJJbnNw
ZWN0b3IoKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBldmFsdWF0
ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpOwotICAgIHZv
aWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIHNldFBP
U0lYTG9jYWxlKEpTU3RyaW5nUmVmKTsKIAotLSAKMS43LjEwCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144076</attachid>
            <date>2012-05-25 08:25:39 -0700</date>
            <delta_ts>2012-05-25 12:47:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42328-20120525122456.patch</filename>
            <type>text/plain</type>
            <size>74712</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA4MjcwZTgyNDFkYTU4
NjVjYmFkNmNkM2IwOWI0YWU0YjY4NzJiYi4uNWRmNGZlMzcyNzRmMGU0MmY1YzViYjA2ZTBiYWI1
ZmU1YjI4NWFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA1LTI1ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KCkgdG8gd2luZG93LmludGVybmFscy5zZXR0aW5ncy4gTm8gbmV3IHRlc3RzLCBidXQgdGhpcwor
ICAgICAgICBjaGFuZ2Ugd2lsbCBhbGxvdyBtb3JlIHRlc3RzIHRvIHJ1biBpbiBXZWJLaXRUZXN0
UnVubmVyIGFuZCBEUlQgZm9yIHBvcnRzIHRoYXQgd2VyZW4ndAorICAgICAgICBpbXBsZW1lbnRp
bmcgdGhpcyBmdW5jdGlvbiBiZWZvcmUuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTA1LTI1ICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIExheWVyQ2hyb21pdW0gc2hvdWxkIHJlY29nbmlzZSBleGlzdGluZyBsYXllciBhY3RpdmUg
YW5pbWF0aW9ucyB3aGVuIHRoZSBsYXllciBpcyBhZGRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZDcxODY3YjEzZGYxZGU1NjcyMDZlNGZmNGQ4OGU3YWNhMjFhMTMwOC4uN2YzYTNh
YTdhNWZiYzAxOTQwOTAyODU2ZTdhMjM2M2MyNTE2MDdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1
bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjMyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZWQgcHJpdmF0ZSBBUElzIHRoYXQgd2VyZSBvbmx5IGJlaW5nIHVzZWQgYnkg
RFJULgorCisgICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaDoKKyAgICAgICAgKFdl
YkRldlRvb2xzQWdlbnQpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHA6
CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6CisgICAgICAgIChXZWJEZXZU
b29sc0FnZW50SW1wbCk6CisKIDIwMTItMDUtMjUgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xl
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTGF5ZXJDaHJvbWl1bSBzaG91
bGQgcmVjb2duaXNlIGV4aXN0aW5nIGxheWVyIGFjdGl2ZSBhbmltYXRpb25zIHdoZW4gdGhlIGxh
eWVyIGlzIGFkZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDU5Nzg4NjkxMmM2NDE5MDI3NmFhM2Q1
NjQ3ODNjYWQ5YzM4OTQxNTkuLmNlZjkwMWY2Y2JmOWEwYzcxYWVlZWNhOGFhNzhjNzRhOWUwNGQy
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNS0yNSAgSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQgZnVuY3Rpb24gZnJvbSBEUlQgYWZ0ZXIgaXRzCisgICAgICAgIG1vdmUgdG8g
d2luZG93cy5pbnRlcm5hbHMuc2V0dGluZ3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorCiAyMDEyLTA1LTI1ICBNaWtoYWlsIFBvemRueWFr
b3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEFQSSBm
b3IgUGFnZUdyb3VwIHZpc2l0ZWQgbGlua3MgaGFzaCBwb3B1bGF0aW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IGU4MjNmODZlNWViNGNjMjZiMjUzNzkzZjFhNjcyZmJjODkyOTAyYTcuLjk5Nzc0NDIxM2U5
NTQ3YzkxOWM3NDVmNTdlZTBmNmNlZTlhNTdjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3Vw
cG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHVu
bmVlZGVkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIGZ1bmN0aW9uIGZyb20gRFJUIGFm
dGVyIGl0cworICAgICAgICBtb3ZlIHRvIHdpbmRvd3MuaW50ZXJuYWxzLnNldHRpbmdzLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTIt
MDUtMjUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIEJ1aWxkZml4IGZvciBuZXdlciBRdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMTI0MTMxYzc5NzA5ZjE4
MmZlZTBiOWI0ZDFjMTU3ZjliODNjODZhLi5mYTdiNjUwMThmNzM4ZWI3ZjdmMDVjNzE2YmRjZjYw
NDAwMDQ3MmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMjUgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHVubmVlZGVkIHNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkIGZ1bmN0aW9uIGZyb20gV1RSIGFmdGVyIGl0cworICAgICAgICBtb3ZlIHRv
IHdpbmRvd3MuaW50ZXJuYWxzLnNldHRpbmdzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oOgorICAgICAgICAq
IHdpbi9XZWJLaXQyLmRlZjoKKwogMjAxMi0wNS0yNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1z
YW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV0syXSBJbXBsZW1lbnQgQVBJIGZv
ciBnZW5lcmljIHBlcm1pc3Npb24gcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDg1OTRiNzA0ZGVmNWYxNWExMTljODZmMjRiMzIzNTIz
ZTNjNDk4NmYuLmEzODU2ZjQ0Nzk0OTRiMmYwZGJlN2IxOTZjNGZiNmFiODEzMzAzZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTEzLDYgKzEx
MywxMSBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnJlc3RvcmVUbyhTZXR0aW5ncyogc2V0dGlu
Z3MpCiAjZW5kaWYKICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yVHlwZShtX29yaWdp
bmFsRWRpdGluZ0JlaGF2aW9yKTsKICAgICBzZXR0aW5ncy0+c2V0Rml4ZWRQb3NpdGlvbkNyZWF0
ZXNTdGFja2luZ0NvbnRleHQobV9vcmlnaW5hbEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdD
b250ZXh0KTsKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKKyAgICAgICAgcGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmRpc2FibGVQcm9maWxlcigpOworI2VuZGlmCiB9CiAKIFNldHRpbmdzKiBJbnRl
cm5hbFNldHRpbmdzOjpzZXR0aW5ncygpIGNvbnN0CkBAIC0zNTIsNCArMzU3LDI0IEBAIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQo
Ym9vbCBjcmVhdGVzLCBFeGNlCiAgICAgc2V0dGluZ3MoKS0+c2V0Rml4ZWRQb3NpdGlvbkNyZWF0
ZXNTdGFja2luZ0NvbnRleHQoY3JlYXRlcyk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmICghcGFnZSgpIHx8ICFwYWdl
KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKKyAgICBpZiAoZW5h
YmxlZCkKKyAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKKyAgICBlbHNlCisg
ICAgICAgIGNvbnRyb2xsZXItPmRpc2FibGVQcm9maWxlcigpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZW5hYmxlZCk7CisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyAgICByZXR1cm47CisjZW5k
aWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRl
eCA3ZmVhNzVkZmIyN2FkNGRkNzkxNGJhYjQzZDNkZGQ0ZDQwMWFlZTAzLi4wZTIxYzQ4NDYzYzZl
ZjFlNGVjYWNiZWMyOTAzYWU4YjdhZDVlYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJl
c3RvcmVUbyhTZXR0aW5ncyopOwogCisgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKwogcHJpdmF0ZToKICAgICBJbnRl
cm5hbFNldHRpbmdzKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCmluZGV4IDdiMzAxNzliZGJkM2ZhMjBiMTA0NGI3YjEwYjcyOTczOWNkN2Qx
YjQuLjg0ZTg0NjgwYmFhNDA1YWZkYzkzM2RmOGYyNzFiODRhMzI0ZGY1ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTUsNiArNTUsNyBAQCBt
b2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihpbiBET01TdHJpbmcgYmVoYXZpb3IpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tp
bmdDb250ZXh0KGluIGJvb2xlYW4gY3JlYXRlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoaW4gYm9vbGVhbiBjcmVhdGVz
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKaW5kZXggMGE2NmRiMzYyMzU0YTE1
YzcwZGNkNTkxMDBhOTVlOGJjNGFhMDA5Mi4uOWYxZDUzZjFiZjhiYjJjMTI1NjVmZTllNjk3OTQ5
NDIwZTQ4YTlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RGV2VG9vbHNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRl
dlRvb2xzQWdlbnQuaApAQCAtNjgsNyArNjgsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBFeHBvc2Vk
IGZvciBMYXlvdXRUZXN0Q29udHJvbGxlci4KICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVJbldl
Ykluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCkgPSAwOwog
CiAgICAgY2xhc3MgTWVzc2FnZURlc2NyaXB0b3IgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBk
MzlmZjhhZjk3YjEyNGQ4NGQ0M2ZmMmFmNTBiNzA0MmM3MGZjOGFiLi42ZjcyZjEzZmQyOWNlNDJm
MjI0MzI0YjNlNTllNzZlODUxODdjYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01NjAsMTUgKzU2MCw2IEBAIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxs
SWQsIGNvbnN0IFdlYlN0cmluZyYKICAgICBpYy0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChj
YWxsSWQsIHNjcmlwdCk7CiB9CiAKLXZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgaWMtPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBpYy0+ZGlzYWJs
ZVByb2ZpbGVyKCk7Ci19Ci0KIFdlYlN0cmluZyBXZWJEZXZUb29sc0FnZW50OjppbnNwZWN0b3JQ
cm90b2NvbFZlcnNpb24oKQogewogICAgIHJldHVybiBXZWJDb3JlOjppbnNwZWN0b3JQcm90b2Nv
bFZlcnNpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oCmluZGV4IDFjOGUwMjVlOGU0MGY2Y2E0OTcxMmU5YzM0YjlmYTZhOTFmMDBj
MjkuLmVkYmVlMTQ3MWNlZGY4NTAxZWM3MjExMjc1YmNlYTgwNjYyNTY0ZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaApAQCAtODQs
NyArODQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JC
YWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB2b2lkIGluc3Bl
Y3RFbGVtZW50QXQoY29uc3QgV2ViUG9pbnQmIHBvaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZXZh
bHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgV2ViU3RyaW5nJiBzY3JpcHQp
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvY2Vzc0lkKGxvbmcpOwogCiAgICAgLy8gSW5zcGVjdG9y
Q2xpZW50IGltcGxlbWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggZjM3
MmFkZTNmMTU4ODQyZmVkYWEzZGQ5ZWRhOGM0YTUzYTUwYjk3Yy4uZjEwZGE0ZDE0NDM5ZGYxODZi
MjlkNzYwZDg0NmQzMDljYTAxYmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC00
MjgsMjQgKzQyOCw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmllCiAgICAgICAgIGNvcmVQYWdl
LT5zZXR0aW5ncygpLT5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0jaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgV2ViQ29yZTo6
UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKLSAgICBpZiAo
IWNvcmVQYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyKiBjb250cm9sbGVyID0gY29yZVBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAg
ICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChlbmFibGVkKQot
ICAgICAgICBjb250cm9sbGVyLT5lbmFibGVQcm9maWxlcigpOwotICAgIGVsc2UKLSAgICAgICAg
Y29udHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVyKCk7Ci0jZW5kaWYKLX0KLQogYm9vbCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpCiB7CiAgICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9IEVX
S1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCAy
Mzc5ZjIwMTM4YjM0Y2RmMDgyNWQzM2UyZjdhODA3YTIzNDQzOGQ1Li5iMGY5NThmNjhmMDI0YmQ5
MTNmNTFlZTA2OTczMmQ4ZjBjNDg0NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtNzcs
NyArNzcsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldywgY29uc3QgU3RyaW5nJiB0ZXh0LCBXZWJDb3JlOjpGaW5kT3B0aW9u
cyk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExh
eW91dEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0g
ICAgc3RhdGljIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwog
ICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5k
ZXggZmY3ZDAwNjI3ZTg4NDlhYTE5MmI3MjdkNjFiOGYyZWQ3MjdkNjIxYS4uZTcwYmYwMDRhNDkx
MjZmNDRiZDE0NzVkZDQ4MmNhODI3MjVkZGZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAg
LTMwMSwyMCArMzAxLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0b2Zp
bGxlZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgYm9vbCBpc0EKICAgICBpbnB1dEVsZW1l
bnQtPnNldEF1dG9maWxsZWQoaXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZyYW1lKiBmcmFt
ZSwgYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRl
Ojpjb3JlKGZyYW1lKTsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gY29y
ZUZyYW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAoIWNvbnRyb2xs
ZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgY29udHJvbGxl
ci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbnRyb2xsZXItPmRpc2Fi
bGVQcm9maWxlcigpOwotI2VuZGlmCi19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnNldFZhbHVlRm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUVN0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgV2ViQ29yZTo6RWxlbWVudCogd2ViRWxlbWVudCA9IGVsZW1lbnQu
bV9lbGVtZW50OwpAQCAtMTI3NCwxMSArMTI2MCw2IEBAIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRf
ZHJ0X3J1bihib29sIGIpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldER1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoYik7CiB9CiAKLXZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0X3Nl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFFXZWJGcmFtZSogZnJhbWUsIGJvb2wgZW5hYmxl
ZCkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoZnJhbWUsIGVuYWJsZWQpOwotfQotCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2Ry
dF93aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwg
Y29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKHNvdXJjZU9yaWdp
biwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMmM5NmZiM2EyZWU1MDgyMzI0NTUx
YzVlYWE2ZWIwOGZiNWZmMDgwMi4uNDE4MDBmYWJkNzdiNDg2N2MwMzA1NjE2ZDYwYmM0ZGU2YTZk
NDAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTI1LDcgKzEyNSw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpOwogICAgIHN0YXRpYyB2b2lk
IGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50aWxE
b25lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRBdXRvZmlsbGVkKGNvbnN0IFFXZWJFbGVtZW50Jiwg
Ym9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChRV2ViRnJhbWUqLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVl
Rm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICBz
dGF0aWMgaW50IGphdmFTY3JpcHRPYmplY3RzQ291bnQoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVh
clNjcmlwdFdvcmxkcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcApp
bmRleCBhNjk5ZWFiYWFkMzQzYTBiN2VkNGNiYjVlMDMxZTA5NTYxYTUwOTY1Li5hZTY5YTUzOTQz
MDM0ODA4NTViMjliNGI1OTVkMTU2YjAyYTFmNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSW5zcGVjdG9yLmNwcApAQCAtNTUsMTEgKzU1LDYgQEAgdm9pZCBXS0J1bmRsZUluc3BlY3Rv
ckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYs
IGwKICAgICByZXR1cm4gdG9JbXBsKGluc3BlY3RvclJlZiktPmV2YWx1YXRlU2NyaXB0Rm9yVGVz
dChjYWxsSUQsIHRvSW1wbChzY3JpcHQpLT5zdHJpbmcoKSk7CiB9CiAKLXZvaWQgV0tCdW5kbGVJ
bnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJl
ZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICB0b0ltcGwoaW5zcGVjdG9yUmVm
KS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgV0tC
dW5kbGVJbnNwZWN0b3JTZXRQYWdlUHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJl
ZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAppbmRleCA1OTNkOTBhYTVlODQ1MjZjNWU5MTRi
ZDA1OWEzYzE4MWJkYWVmNWQxLi5lMzJmZGYyNWVkNDhmNzc5MDYxZTkwYmNlNTc3NzBjNTZjMTY2
YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCkBAIC00NCw3ICs0NCw2
IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2hvdyhXS0J1bmRsZUluc3BlY3Rv
clJlZiBpbnNwZWN0b3IpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JDbG9zZShX
S0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNw
ZWN0b3IsIGxvbmcgY2FsbElELCBXS1N0cmluZ1JlZiBzY3JpcHQpOwotV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUlu
c3BlY3RvclJlZiBpbnNwZWN0b3IsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVm
IGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKaW5kZXggZGM3YjRjYjZkODMzNWE5MmQ0ZDNjZTYyNjliZWM0MGMxMzI1YjRh
Yy4uZDIxMjVlZWFiZWNhYjE4MDBmMDdlOTgxMjkwYjE2NDMzNGY4YWMyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgpAQCAtMjU1LDMgKzI1NSw1IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUGFnZUJv
eFZpc2libGVARG9jdW1lbnRAV2ViQ29yZUBAUUFFX05IQFoKICAgICAgICAgP3N1c3BlbmRBbmlt
YXRpb25zQEFuaW1hdGlvbkNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZXN1
bWVBbmltYXRpb25zQEFuaW1hdGlvbkNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAg
ID9kaXNhYmxlUHJvZmlsZXJASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYWFoKKyAg
ICAgICAgP2VuYWJsZVByb2ZpbGVyQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFha
CmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA5NmMwZjdmNDE5MzNkOTQ3NmExYzg5OTdhMWMx
ZWI4NDQ1OTk0ZTI4Li4xMzBjOWMyNDI2YzM3Y2VkMzMyODM3OTYzZDcwMDNmYWVhMGFiNWM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTEwOSw2ICsxMDksOCBAQCBfWk5LN1dlYkNvcmUx
NERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlvbkV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlz
UGFnZUJveFZpc2libGVFaTsKIF9aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNw
ZW5kQW5pbWF0aW9uc0V2OwogX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3Vt
ZUFuaW1hdGlvbnNFdjsKK19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTRlbmFibGVQ
cm9maWxlckV2OworX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNWRpc2FibGVQcm9m
aWxlckV2OwogX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTJnZXRIaWdobGlnaHRF
UE5TXzlIaWdobGlnaHRFOwogX1pON1dlYkNvcmUyNEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjI2
aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2VFUE5TXzRQYWdlRTsKIF9aTjdXZWJDb3JlMjRJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24xN3NfZnJvbnRlbmRDb3VudGVyRTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhY2FkZDk3NjA4OGUwMzA1NWNk
MmEyMDg5OGExMTRhNWU3MDFiMjA1Li5iYjIyMWNjODVmY2ZlYzk3MWNlNjRlYWFkYTE0YWVjOTYz
NTZlMDAwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDIgQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIg
bmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmVkIHVubmVlZGVkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIGZ1bmN0aW9u
IGZyb20gRFJUIGFmdGVyIGl0cworICAgICAgICBtb3ZlIHRvIHdpbmRvd3MuaW50ZXJuYWxzLnNl
dHRpbmdzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oOgorICAgICAgICAoRFJURGV2VG9v
bHNBZ2VudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RD
b250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVC
ZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyKToKKwogMjAxMi0wNS0yNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQnVpbGRmaXggZm9yIG5ld2VyIFF0NQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGY5MWM4NzRk
NDAyM2VhY2MzMWI3MzE4NjcyNWNkNGUwZjZmYzNkMzAuLmUwNmUzMGJjOTRlZTZhOGRlMDIzMjMz
ZTI2YzE5NDE4YmFiMjllNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKQEAgLTEzODgsMTcgKzEzODgsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3Rh
dGljIEpTVmFsdWVSZWYgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQot
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlv
dXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250
cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVy
LT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQs
IGFyZ3VtZW50c1swXSkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVy
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMg
aW1wbGVtZW50YXRpb24KQEAgLTIzNzcsNyArMjM2Niw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRHZW9s
b2NhdGlvblBlcm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0
SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldEljb25EYXRhYmFzZUVuYWJsZWQiLCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkIiwgc2V0QXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyIiwgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlckNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldE1pbmltdW1UaW1lckludGVydmFsIiwgc2V0TWluaW11bVRpbWVy
SW50ZXJ2YWxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggMmI5ZjVmZTI0OWQ4ZTBmM2YzN2UwZTA5OTI4NzZmZWE5ZGU4
YjE1MS4uOWJlNTg2MjkxNTU0Y2I1MWM3NWEwY2Y4NmY3OGFkMDkwYzhmMmJkYyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xMDAsNyArMTAwLDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNj
aGVtZShib29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2NoZW1lKTsKICAgICB2b2lkIHNldERl
ZmVyc0xvYWRpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wg
aWNvbkRhdGFiYXNlRW5hYmxlZCk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZChib29sIGZsYWcpOwogICAgIHZvaWQgc2V0QXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzRmlyc3RSZXNw
b25kZXIoYm9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAppbmRl
eCBhZWU0ZTZmMjAwNDAwYjEyYWNhMzVhNTNiYTJjY2Y0NWZlMzk0ZDA5Li42NDA2N2QzODMyYzcy
ODk3Mzc1NjZkODc5ZmZiMjNiOWNiODcxOGMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwCkBAIC0yMzQsMTIgKzIzNCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAgICBVTlVT
RURfUEFSQU0ocHJvZmlsaW5nRW5hYmxlZCk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihi
b29sIGZsYWcpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcAppbmRleCAyMWFlZDFiOWQy
MDk0ZTViODU5MzMyOTIzZDE0ZGU2NzUyYjNhMWViLi5iNjY1OWE0N2ZjODAzYWVhYWNiNzEyZTNm
YmUzMTM5OTY5NjRjN2QzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlREZXZUb29sc0FnZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlREZXZUb29sc0FnZW50LmNwcApAQCAtMTEyLDE1ICsxMTIsNiBAQCB2b2lkIERSVERldlRv
b2xzQWdlbnQ6OmRldGFjaCgpCiAgICAgbV9kcnREZXZUb29sc0NsaWVudCA9IDA7CiB9CiAKLWJv
b2wgRFJURGV2VG9vbHNBZ2VudDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50ID0gd2ViRGV2VG9vbHNBZ2Vu
dCgpOwotICAgIGlmICghYWdlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBhZ2VudC0+
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KIGJvb2wgRFJURGV2VG9vbHNBZ2VudDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25n
IGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCkKIHsKICAgICBXZWJEZXZUb29sc0Fn
ZW50KiBhZ2VudCA9IHdlYkRldlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAppbmRleCA2ZTQ5MWFkNTM2MzU2NWVjN2Jm
Nzk4M2MxYmY1YTExYTVlNDgyYzk1Li5mMzU2NGJkNzhlY2Q4MWM4YjQ3YWQ4MWFjOTA5NGJlN2Yy
ZTc2Y2FhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZU
b29sc0FnZW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9v
bHNBZ2VudC5oCkBAIC02OSw3ICs2OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaCgpOwog
CiAgICAgYm9vbCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBjb25zdCBzdGQ6
OnN0cmluZyYgc2NyaXB0KTsKLSAgICBib29sIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KGJvb2wpOwogICAgIFRhc2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzhjMmFkNjUyMjAyZGQxN2QwZWVlOTNhZWFk
ZmZlOGMyYmJhZTlkOC4uYzczOTE0M2UwNjA1MTFmZTEzN2E4YWE5NGY2Y2JlMmYzZTNlN2IyNSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcApAQCAtMTk2LDcgKzE5Niw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpM
YXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRJY29uRGF0YWJhc2VFbmFibGVk
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKTsKLSAgICBiaW5kTWV0
aG9kKCJzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldE1p
bmltdW1UaW1lckludGVydmFsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVtVGlt
ZXJJbnRlcnZhbCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9uIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOwogICAgIGJp
bmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik7CkBAIC0xODMxLDE0ICsxODMwLDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bG9nRXJyb3JUb0NvbnNvbGUoY29uc3Qgc3RkOjpzdHJpbmcm
IHRleHQpCiAgICAgICAgIFdlYlN0cmluZygpLCAwKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51
bGwoKTsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc0Jv
b2woKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPmRydERldlRvb2xzQWdlbnQoKS0+
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsK
LX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewog
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMDcwM2VmMDEwZDY1NWVlNzc4MTE4
NWNjMmNkMWQyNzUwNmM5NWNkNC4uMzc5Nzg2NTdlM2IxZmYzN2I5ZDQzOGE1NDU2OGI0MmNjODQ0
ZWRhMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0zNDksOSArMzQ5LDYgQEAgcHVibGljOgogICAgIC8vIEdldHMg
dGhlIG51bWJlciBvZiBnZW9sb2NhdGlvbiBwZXJtaXNzaW9ucyByZXF1ZXN0cyBwZW5kaW5nLgog
ICAgIHZvaWQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gQWxsb3dzIGxheW91
dCB0ZXN0cyB0byBzdGFydCBKYXZhU2NyaXB0IHByb2ZpbGluZy4KLSAgICB2b2lkIHNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKLQogICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gZXhlYyBzY3JpcHRzIGF0IFdlYklu
c3BlY3RvciBzaWRlLgogICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDJhMzlhNjkzYTBiYjgwYWM2NzY1
MTEwMzkzOTRkMGY4ZWZmOTYyODQuLjdhYzJlY2UwNjlkYTQzNDg5YTk4ZWU1YzIyNmJmMGI0ZTEy
MGI4MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVl
Q2hyb21lLmNwcApAQCAtMjY1LDcgKzI2NSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6
OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsK
ICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6c2V0RGVmZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChtYWluVmlldygpLCBm
YWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZh
bCgwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29u
dHJvbGxlckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRy
b2xsZXJFZmwuY3BwCmluZGV4IDkyMTIzZTg4MWNkOTAyNDVmNTM4MGQ3ZTUzMjc4ZGQ1MjU3ZTE5
ZDkuLjAwYWM1M2I5NDQwMmUwMjNjMjUxMjFiM2I4M2QzZTY3ODdhZDhmZWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcApA
QCAtNDQ5LDE0ICs0NDksNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0
YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgZXdrX3NldHRpbmdzX2ljb25fZGF0
YWJhc2VfcGF0aF9zZXQoZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCi17Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNldERldmVsb3BlckV4dHJhc0Vu
YWJsZWQoZW5hYmxlZCk7Ci0KLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGVuYWJsZWQpOwotfQot
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcAppbmRleCA0NWM4MGU4MWZmMmY2NTM3MzU2MGEzMjg1YjViNzBlYzUyM2FlYjVhLi4w
NjI4N2MzZTE3ZmRiMGM4YTMyNjkyMTIyODI2NDdkZWU3Y2IzMDdmIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTU0
MCwxNyArNTQwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9w
YXRoKGRhdGFiYXNlLCAwKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFdlYktpdFdlYlZpZXcq
IHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIEFT
U0VSVCh2aWV3KTsKLQotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmxhZyk7Ci0KLSAg
ICBXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciA9IHdlYmtpdF93ZWJfdmlld19nZXRfaW5z
cGVjdG9yKHZpZXcpOwotICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChpbnNwZWN0b3IpLCAiamF2
YXNjcmlwdC1wcm9maWxpbmctZW5hYmxlZCIsIGZsYWcsIE5VTEwpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZmxhZykKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KaW5kZXggYzFmNDRhNDczNDhjN2IwMGUzODllYzA1YjFiNmE2NDlhY2QzZGZi
NS4uYjI1YWM1ZDZmYTFjYjg0ZWNlOTQ1YmI1NjQyYTNlY2I0Y2EzOThmMyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI2NCw3ICsxMjY0LDYgQEAg
c3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkK
ICAgICB9CiAKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ6WUVTXTsKLSAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gaW5zcGVjdG9yXSBzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZDpOT107CiAKICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RN
b2RlRm9jdXNSaW5nQ29sb3I6WUVTXTsKICAgICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbQppbmRleCA1YjJlMDYwYzZiNDFhOWI3NmIyM2EyMDliYjE0YTU3NDdl
ZDU0MzQ3Li5hNDlkYTNhOGMzMWYzODExODU5YWQyMDk4Mjc2YzhjZDUzNjg4MDIzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
CkBAIC01NjEsMTIgKzU2MSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25E
YXRhYmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogICAgIFtzaGFyZWRXZWJJ
Y29uRGF0YWJhc2Ugc2V0RW5hYmxlZDppY29uRGF0YWJhc2VFbmFibGVkXTsKIH0KIAotdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBw
cm9maWxpbmdFbmFibGVkKQotewotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJvZmls
aW5nRW5hYmxlZCk7Ci0gICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIGluc3BlY3Rvcl0gc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQ6cHJvZmlsaW5nRW5hYmxlZF07Ci19Ci0KIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFn
KQogewogICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBk
b2N1bWVudFZpZXddOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcAppbmRleCBjMTY4M2YxMGUxODI3ZDU2YmUxYzQ1ZjM0NGUyNDAxMjMw
M2YzN2IwLi45YmJmNDM5YmMyMWVmNDJlMTM5MWI1YjU2MDc0N2FkZTRmYjdkYWY4IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApA
QCAtNDc3LDEyICs0NzcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvZmls
bGVkKGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBib29sIGlzQXV0bwogICAgIHJldHVybiBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0b2ZpbGxlZChlbGVtZW50LCBpc0F1dG9maWxs
ZWQpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
KGVuYWJsZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKG1fdG9wTG9hZGluZ0ZyYW1lLCBlbmFibGUpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXRWYWx1ZUZvclVzZXIoZWxlbWVudCwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDU1MTE2NzY3MmM4NDY1OGVj
YTU0NzA3MjUxMDQ0NmFjMWFhOGNhMjkuLmVmNjhiMzZlOWMzNDEyODU5ZDE5NGU3NTUyNzY0Zjll
YzkwYWQ5YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmgKQEAgLTE1OSw3ICsxNTksNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBz
ZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0
QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwogICAgIHZvaWQg
c2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYsIGJvb2wgZW5hYmxlKTsKLSAgICB2b2lk
IHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNl
dFZhbHVlRm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsK
ICAgICB2b2lkIHNldEZpeGVkQ29udGVudHNTaXplKGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAg
ICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDRlZDhlMGRjNjc1Njhj
ZGY3MzAyMTUzYTM5NDMwYTljMWRjYjE2OTcuLjkyYWI4NjMyY2Y0YTBiZWEwNGYyMjAzNzA5MmRm
MGZlYTRkZTgzNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcApAQCAtOTA1LDEwICs5MDUsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIGlmIChTVUNDRUVERUQod2ViVmlld1ByaXZh
dGUtPmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgmbWluaW11bUludGVydmFsKSkpCiAgICAg
ICAgIHdlYlZpZXdQcml2YXRlLT5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbChtaW5pbXVtSW50ZXJ2
YWwpOwogCi0gICAgQ09NUHRyPElXZWJJbnNwZWN0b3I+IGluc3BlY3RvcjsKLSAgICBpZiAoU1VD
Q0VFREVEKHdlYlZpZXdQcml2YXRlLT5pbnNwZWN0b3IoJmluc3BlY3RvcikpKQotICAgICAgICBp
bnNwZWN0b3ItPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKEZBTFNFKTsKLQogICAgIEhX
TkQgdmlld1dpbmRvdzsKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXdQcml2YXRlLT52aWV3V2lu
ZG93KHJlaW50ZXJwcmV0X2Nhc3Q8T0xFX0hBTkRMRSo+KCZ2aWV3V2luZG93KSkpICYmIHZpZXdX
aW5kb3cpCiAgICAgICAgIFNldEZvY3VzKHZpZXdXaW5kb3cpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYzY3MjNi
ZGY5MDA0MGUzNTg4YzA0NmUyYzE1Y2JjZWRlYjI5MDYxNS4uZDNhZGNhYzYzZWIwYzE0MzMxMzM0
YmZiZjVkZTBmYjUzNGMyMzQ3MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC04NDYsMjQgKzg0Niw2IEBAIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZs
YWcpCiAgICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8g
VFJVRSA6IEZBTFNFKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4g
d2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHZpZXdQcml2YXRlOwot
ICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdQcml2YXRlKSkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViSW5zcGVjdG9yPiBpbnNwZWN0b3I7Ci0g
ICAgaWYgKEZBSUxFRCh2aWV3UHJpdmF0ZS0+aW5zcGVjdG9yKCZpbnNwZWN0b3IpKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChmbGFnKTsKLSAgICBp
bnNwZWN0b3ItPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGZsYWcpOwotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGJvb2wgZmxhZykKIHsKICAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDI1MGZhNWM5NTBkYWNlNzQ5ZjkxOTM2Nzc0OTZkYzA5ZjE0
MDVhZmYuLjkxZWQ4OThlYzgxZWU0ZmVmMmM2ODVjYTJiOWY3NzRhYjllNTBjYzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00NzgsMTMgKzQ3OCw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIEpTU3RyaW5n
UmVmIHNjcmlwCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgZW5hYmxlZCk7Ci0jZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUikKLX0KLQogdHlwZWRlZiBXVEY6Okhhc2hNYXA8dW5zaWduZWQsIFdLUmV0
YWluUHRyPFdLQnVuZGxlU2NyaXB0V29ybGRSZWY+ID4gV29ybGRNYXA7CiBzdGF0aWMgV29ybGRN
YXAmIHdvcmxkTWFwKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA4Y2EwOWY2MWFh
NWUxYWIyZGQzNjFkYzcyMWIxYjExMzcwMDdkNDE2Li5kMWIzODVkOWI0ZDA5Y2FmN2JkMzkyMTMy
MWU5ZmVjOTMxMTYyM2QyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xNzQsNyArMTc0
LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1dlYkluc3BlY3RvcigpOwogICAgIHZvaWQgY2xv
c2VXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBj
YWxsSWQsIEpTU3RyaW5nUmVmIHNjcmlwdCk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChib29sKTsKIAogICAgIHZvaWQgc2V0UE9TSVhMb2NhbGUoSlNTdHJpbmdSZWYp
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggM2FjNGI1NWYxYmYxYTBlYmVkMWZiMWUyOTg0ZTU2ODY1Y2I4MDlhNS4uYzk4
MDhiZDA2NDdmYzIyMmUxZmJkOTkyNzMxNjU5ZWJmYTkxNGRkMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4
IEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBv
cnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0
cyB0byB1c2Ugd2luZG93cy5pbnRlcm5hbHMgaW5zdGVhZCBvZiBsYXlvdXRUZXN0Q29udHJvbGxl
ci4KKworICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJv
bS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6CisgICAgICAg
ICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sOgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1
bmN0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXIt
ZnJvbS1hbm90aGVyLXNjb3BlLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jb21wYXJl
LW11bHRpcGxlLXByb2ZpbGVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jb25zdHJ1
Y3Rvci5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWw6CisgICAg
ICAgICogZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sOgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5j
dGlvbi1jYWxscy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRp
ZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVu
Y3Rpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1s
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1u
YW1lcy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3At
cHJvZmlsZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250
ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQt
ZmlsZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxl
Lmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1s
b2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sOgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWw6CisgICAg
ICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWw6CisgICAgICAg
ICogZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWlu
LXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1i
dXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3Rv
cC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5z
cGVjdG9yLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6CisKIDIwMTItMDUt
MjUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIEdUSyBnYXJkZW5pbmcgYWZ0ZXIgcjExODE2NiwgcjExODI5MSBhbmQgcjExODQ0Mi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhh
bmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhh
bmRsZXIuaHRtbAppbmRleCAzYTg2NjI4MjEwZDU3NWI4ODYyM2YyNjI4ZjZmMTI4Y2UxNzM5MmNm
Li5mMWQzMjVjZWZhOWMyN2RjOTNiMjc5MWJjMGQzODhiM2JhMWNjMDYyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZy
b20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbAppbmRl
eCA3OWYxMTA4NWMxMTg0MTFiMDVhYTFiMWMyYTI5ZWQ1OGFjMGYyOGNhLi5jNGRlYjhkYThhZDU1
MGExNzQwMmJkNmU4ZmRlMmU4NjI0OWQyNTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
IAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLmh0bWwKaW5kZXggODQ4YzAwMWM4MzE0NmU1ZjhiMmFiMzQ0M2M1NGI1
ZjczNmRhNzk0Zi4uZTY0OTVlZjQwYzczMWI2ZWNjNWEzYzYxYjY5YjQ1MmJiN2I4NTkzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKQEAgLTIs
MTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFs
Lmh0bWwKaW5kZXggOWNiNWM0YjZiOTk3MjA0ZTdiNzJjNzQwMzg4NzJhNjJjYzM5ZDhhOS4uMDM0
ODFmMjI3M2I2YWQ3M2NjYTYxYTA1ZThiZWQ5YzJiNzkwYTI0MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2
YWwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0K
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAppbmRleCAzYzQyOTY2MDU4NDVm
YTkxMWI3ZTY0YmE1NmU0MzhjNWU4NGE5ODVlLi5kYmZiNmU0NGE0NzA2NmRkMWYyNzM2ZDJjNmI0
ZjJkNDY4MTk1ZDI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRv
cihpdGVyYXRpb25zKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
cHBseS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCmluZGV4IGZk
MDNhODQzNjg1Mzk3ZGIyZjFjNTAwY2VlY2M3ZDcwNGEwNWFmZjUuLmMwYmMzOWM0NWQyOGQwNmY3
NDNmM2E0MDViZTMwYjJjMDNhZGNlYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYXBwbHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFu
b255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlv
bi1jYWxscy1hbm9ueW1vdXMuaHRtbAppbmRleCBmYjI2MTE5YzAyYmQwNzcxYzMwMWQ0MzJmMDEz
YzY0YjVmYjI0YzEzLi41ZDdmMWE1N2ZmODNjNzg0ODk1ZGZiNGM5YTQ4MDIzMWE4ZDBkZDBmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNh
bGxzLWFub255bW91cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQt
aW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRl
ZmluZWQtZnVuY3Rpb24uaHRtbAppbmRleCA2MDBhYmIzNDY2MDcxOGMyY2Q0MWM0NDgzMDIzNmNm
NDBiYWYxNjJjLi5hZTEzNGYyZGU5MDk4YTljNTBhYTcxMjYzZGMwMjk2MTMwMzMxNDZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxz
LXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAppbmRleCA1OWJjNmUz
YzYyOWZlMDE4ZjQyNTJjZGMxMWNmMmYyYThlNjQ0NzhkLi43N2JiZDRhMzI3YWU1Y2E4MjU4N2Qz
ZDE5OTA3M2ZlOTVjMzZmODc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKQEAgLTEsMTAgKzEsMTAgQEAKIDxib2R5PgogPGhlYWQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIGxv
ZyhzKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAppbmRleCAxODYxMjJlYmU3ZTU3
MzQyNDI2ZjIxYjY2YjhjZjVkNTFjZDNlZTQ4Li4wMGFiNTdkMDc3NTRkNjc0OTViZTQyMDIxOTQ3
NWE5NzU1MjQ3MTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbApAQCAtMiwxMCAr
MiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFu
b3RoZXItc2NvcGUuaHRtbAppbmRleCBlYWJhYjZlYTNlOGNiMjJlMDhjOTg2ZDIxZjA3MTVmMzk5
YTRkZmZiLi4zM2RhMGVhMGQ3NTYyZGNlNGQyNGY0ZGNhZTlkODA5YzNjODU0ZDM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQt
c3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhl
LXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVh
ZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBm
dW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbAppbmRleCBjOGM0ODEyZjRiY2Uz
ZGJlNGJlODFkNTIwM2M2ZTBiYzdlNjkxMWI4Li5jYWMxNTFjNjk0MTA4NDRlNmIzYmRmMDlhODY3
ZTAyMzRhNDM3NDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBh
cmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogdmFy
IGogPSAwOwogZnVuY3Rpb24gdGVzdChsZW4pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y29uc3RydWN0b3IuaHRtbAppbmRleCAwZGQzOGJjZmIyY2ZmN2Y0YWViOGZlZmRlZmJmOGZlNzUw
M2I5ZmFlLi44OTc2NzU2MDhjNjQyNTU4MzNkMmQxMDA3ZmVlOTVkMGNkZmExZDQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVh
ZC10aW1lLmh0bWwKaW5kZXggMjM2NDc5ZDU2MjkxMGJkMGY4MzJiZTI1N2VlZjQ0OTc2ZTNjMjhl
MC4uMDdmYjFlNzNkOWQ4MTQxNTg5MDE4MDE3MWIyMDA4ZjJlODBmMTc3MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCkBAIC01LDggKzUsOSBAQAogaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
CiB9CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7
CkBAIC0yNywzICsyOCw0IEBAIHRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluCiA8ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAppbmRleCBmM2Q2YjAwMWVhZmYwOTBlYmNlZTdj
MTM0ODIxNmJlNjg3MzAwMjEwLi5mMjVkYTA5MjhjMDQwNDI2Mzg5NDNkMDRkNzBkN2NiMjJmMjk2
YmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13
cml0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdy
aXRlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCmluZGV4IDBlYWRk
OTEyNjg0Y2M0OTRjYmI2ODQ1MTY1NTVmODQwNGM3MzQ4NjYuLmIyYjIwNTVmNzgzYjA0YWNiM2U5
YjgzMmMxOWQ5MThhM2QwZTEzOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZl
bnQtaGFuZGxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3Qo
KQogeyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9u
LWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCmluZGV4
IDkyYWEzMmQ4Mzg0NDc2NDI1OThmNWI0NTRmMjA4NTMwN2U1ODc0NzUuLmI5OGRkNjQyOGM4MTM4
YTdiYTU4ZWJmYmQzMzFhZmYwMzhmZThmYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1v
bi1zYW1lLWxpbmUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50
LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhh
bmRsZXIuaHRtbAppbmRleCBiNzY3MTFjOTM3YzExZDU5ZGY1OGUyYjAwMGViYTc3NzhlNTAxZmFl
Li4wYWEzNTU1YTcyNzVkNWQ1MGRmY2M0YzE1ZDY4NmMwMDZiZWVmMzNkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogeyAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNj
b3BlLmh0bWwKaW5kZXggZmE5NTRiYmQxODIwYmY5M2ZmNDY0MjRmNGE0MDViNjQwOTliNzZlMS4u
MDNhZGQ4ZjBlOTk4MGI2ZmRiN2ZmYWNjMTQzZmRkYTgzOWI2NTAyZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNj
b3BlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rp
b24tY2FsbHMuaHRtbAppbmRleCA2MDRkMDNhMDc2M2MxMDg2ZTFjOWRiMWNkNGE5Nzg0NDYzZmE4
M2M1Li45OWI1OTgzOTkzMzEwYjU4OTc5OTBlNTE4NzE4ODBmMzA2YmJiMzk4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVk
LWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNh
bGxzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKaW5kZXgg
NGU0NzZkZWU0M2ZmNjk3MjU4NTdiMjFhYzEwYjY4YWRkZmNhNDcwZC4uOTEyZjY0NmNjZjk3MDYw
ODc0NjUwODY5YjJlNzM1NDc0MWMyYzJlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1z
Y29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24g
c3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVs
dGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rp
b25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKaW5kZXggYzQzZDczM2FjMTRm
ZTg1NzU3NGJjNDE2ZjhhNTVkNzdmZjNkNjZiYS4uZjJhZjVlMzY5ODlhMTI2ZDc4NGEzOTA4MzRj
OGRmNmI2NjVmNmQxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0
aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVu
Y3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbAppbmRleCA0MzAzNTZmMjQwNmU4NGQxYmEwM2Q0MmFh
Y2M5YmFkNTkyZDlkMWU5Li4wNDk1ZjM3YmVhOTZjMmE1Yjk3NTY1NjkyMWEwYTMyZWFjYzU2OTdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwK
QEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXkt
bmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sCmluZGV4IDA3YzVlMTBjZWM0Mjk1MjQwN2M3ZGQ1ZThjYzQz
YzE0YmQyNDBmNjYuLjI5NGVlNDgyYzYzZDdmNTc1NzgzYTA0ZDc0ZGE1MGQ4ODBiNGMzM2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVh
ZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBm
dW5jdGlvbiBmdW5jdGlvbjAoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKaW5kZXggZDExZGNjMjA0NDAzNGJj
YjQ3ZmM5M2NiM2Y5ZGI1NzBiNGUzMmFmYy4uNDgwNTkzN2YzZjhkZTQxZTUyODZkYWRhZDRkZjlh
N2EwNGE4ZThiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQt
YW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25l
c3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
ZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKaW5kZXggMzA4ZWFkZWNi
YzE5NDY2OGVjZjU4ZGE0YjIzZTk0MjNjMDE1OWEzYS4uYzQ2ODVmNjE5ZTM3ZTVlMWJmYTU2YTJh
NTRhNWQ1NDE4NzFlZmI5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
ZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sCkBAIC0yLDEwICsy
LDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCmluZGV4IGVhNjNmYzVkNTI4
MDUxZmVmNmFjNmQ2NWRjN2VmZGVkMTc2YTdiYzAuLmU2YjZiM2RjMjEyZWFlNDQwNTkyMzlkOGEw
Y2M3Y2I1ZDU3MmVkNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8t
ZXhlY3V0aW9uLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25v
LWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwv
aGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0
aW9uLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlv
bi1jb250ZXh0Lmh0bWwKaW5kZXggZGVmM2M0YjZkODNhOTc2NzgzZTIyZTgyZjI0M2JlOTk0OGRj
OGJiZS4uODBmMWQ4ZDk3YjZjM2QxMjRmMmRiYTE2NTc0NWI2NWE0NzNmNjU1ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZp
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNs
dWRlZC1maWxlLmh0bWwKaW5kZXggMzA1YTYwNTY0YTkzOWZjYmM5NWZjMWM2OWVlZDVhM2MyZWJl
NTA5Zi4uM2ZhODI0OTI0ZDQzMjY3YTFmZDY3ODNlOWJhMDU4MDk2ODAyZTdhNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZp
bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4t
aW5jbHVkZWQtZmlsZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRl
c3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdp
dGgtbm8tdGl0bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRo
LW5vLXRpdGxlLmh0bWwKaW5kZXggYjA0ZDI3YmRiMGZmZWFmZTdhNWIzMWMwN2E3ZjMzMzlkMmUx
ZWFkNC4uM2IyOTQwODYyOWE0ZDg5OWQxNDQ0ZTYxYWM4MGY2YzlkZDYyM2MwOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2Nh
dGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQt
c3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sCmluZGV4IDdlMDYzY2U4MjM5
YzUwOTA3ZDk4Njc5YmI4ODAxMjY5MGRiMmU2NWMuLjk4MTljNTg5ZDI3ZTgxMGI2YmU5OTEwYWJk
MjllOGYwNThhOTlkODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJv
ZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUt
dGhlLW5lc3RpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGlu
Zy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1u
ZXN0aW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEt
bmVzdGVkLWxvY2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGlu
Zy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKaW5kZXggZTYyNTFjNzhhYTI5NzMwYjYzNDFl
OGJiOGFiYjY1YzQwMjExZmNjYi4uMjJkNjZiNDU3MzNjMzZkZDM1NTc2ZThiNGQwMWRkZGIyMDli
MTc1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJv
bS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApAQCAtMiwxMCArMiwxMCBAQAog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
IAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbAppbmRleCA0MzRmMjAyNjQ3MTQzNTM5N2M5NTI0YjQx
NTQ4NmU2M2E0YTQxZjQxLi41YTg1ODhkZDJmYTA5ZWNhMjEzNTVmNTFjY2E1NjlkMjIzYTY1MmE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxs
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5o
dG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRt
bAppbmRleCAwOTJhZWRlYjE1YzZmMjk4MWJhNDAzZmNkYmUzYmY5NzIyMDZmNjAzLi4xM2QwNTM1
MzFiY2RjNjM3ZjhlYmU0NDcwYWRiYmFkYjJjZTNjYTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApAQCAtMiwxMCAr
MiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIt
bXVsdGlwbGUtdGltZXMuaHRtbAppbmRleCA4NTU5YzFhOWFkNDk3N2I1Mjg0ZmUxN2JlYmVkZDA0
NWQ2YjRhMWMyLi5jZjY2NzczMDQ1ZmZmZGY3MTE4MjFmNWFhZWFjOTIzM2JjZjI1M2IwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
LW11bHRpcGxlLXRpbWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFy
dC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5n
LWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKaW5kZXggNWZhYWY3NDc1NjE1ZDI5MzdjOWU3YWNh
MDY0Yjc5Y2VmZWIwODE5My4uOGY4MDM1NGJmZTI4ZWM1Yjk1NDNhZDY2ODRjM2E4ZTdkMWU1ZmQw
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1w
cm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5o
dG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2Zp
bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9w
LXByb2ZpbGluZy5odG1sCmluZGV4IDJhMjVjZTBiNjk2YTMxYzdiMDVlODYwNjAxMWE1NjVjYTcy
OWExMmUuLjRkZTNiOTM1NTJmZTE4MWJjZmQ0ZjczMmQzZTA5NjhmNGRkZTFiY2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxp
bmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0
b3AtcHJvZmlsaW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmls
aW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rv
cC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCmluZGV4IDM5YjkzZGI5ZGU0N2QxZDQ4
MTMzZWM0ZGRlYjRmYjEwZDVjOWIwNGMuLjZkY2RhZmQ0YTNlNzI2YWE3MzMzMThkNzQ0MmEyNWJi
YmJjYTdiODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9m
aWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCkBAIC01LDggKzUsOSBAQAog
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7CiB9CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhl
bi1mdW5jdGlvbi1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhl
bi1mdW5jdGlvbi1jYWxsLmh0bWwKaW5kZXggNGY5NzAyOTZkZmZkMTI4ZmRiZDcyMmVmNGM2Y2E2
ZTg0ZDU3NjhkMi4uY2VhOWU5ZmJmM2ZjNWJlM2QwNTkxNTRkZmQwMTg0NTBkNTU4NjFhYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2Fs
bC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9u
LWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIGogPSAwOwogZnVuY3Rpb24gdGVz
dChsZW4pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhj
ZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKaW5kZXggOGI1N2MwMzY1
M2Y2NWRiNjAzYTczNjQ1ODNhM2M4ZGIyNWVhMGE5Yy4uNWVjYzRkM2UxZTRhOWQ4MzYwMmUzOWFm
YjE4N2UxMmI5OTVmOTI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90
aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGNvbnNvbGUucHJvZmlsZSgiVGhyb3cgd2l0aGluIGFuIGV2YWwu
Iik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlv
bi1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9u
LWNvbnRleHRzLmh0bWwKaW5kZXggYzNlOTFiNTJmMTI2NTk1ZWVjYmQ5YjkzYjNjZTY0NWY3OWQ2
ZGUzZi4uOTY2OGU5MTJhMzVhYzk4MGE2NWI3ZTlhNTFlMzYwYmM3ODJhYjU5ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxs
cy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNl
ci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmluZGV4IGJk
YjFkNWQ2YWEyMzUyYjE4ZWI2MTYyNGMxNzYwOWE0ZGJjYzZhOTQuLmU2ODJiNmZjMzc4MmRiMmE4
ZDhlMjA4ZjQzYWFkOWY1Y2ZiNmQzMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93
aW5kb3ctZG90LWV2YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRv
dC1ldmFsLmh0bWwKaW5kZXggN2Q5ODNhYzA1MDkzZTcxZDVlYTk4ZTE0ZDZkZDI1Yzk4MDI5ZTVl
ZC4uYjJhMmI1MWM4N2U2YWFmMzY5ZGEzYWJiMjI5NWE2M2NjM2E5M2M4NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sCkBAIC0yLDEwICsyLDEw
IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0
b3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJv
ZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwKaW5kZXggNjVlMWNlMmU3YzA1ZmM0ZDA2ZDk3
MjczMDBlZDkyYjI3MTRkM2MzZi4uZjM3NTlkMTRjYTMyYjA1ZTdlOTcxZTVhZDRmMDA4MWYyOTJh
OWE2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9m
aWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rv
ci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBwYWdlRnVuY3Rpb24oKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZAppbmRleCA0N2Y1YmJkYWZmMGI3YjAzNTkzMmM5ODYyY2M3YmUwMzVi
YzdjNTg3Li4zMDJiYzlkYTdmMGM1ZDgzMmNhYzhmMzE5ODMwMjllOWE5NGExODdjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvU2tpcHBlZApAQCAtMzUxLDExICszNTEsNiBAQCB3ZWJhcmNoaXZlL3Rlc3Qt
dGFibGUtYmFja2dyb3VuZC5odG1sCiB3ZWJhcmNoaXZlL3Rlc3QtdGQtYmFja2dyb3VuZC5odG1s
CiB3ZWJhcmNoaXZlL3Rlc3QteG1sLXN0eWxlc2hlZXQueG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIzMjg+Ci1mYXN0L3Byb2ZpbGVyCi1pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBy
b2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVk
cyBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzCiAjIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMzE+CiBmYXN0L2xvYWRlci9yZWN1
cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggMjEzNzIwZGI4MGM4NDQ0MTU2YTIwM2FhN2Q2MTI3OGVkOTM4MWFmNi4u
OTQyMzM1ODA0NzYzNTNkYjMzMzhhZDYyZmI3OThkYjA5MDBjNDA2MyAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTI1ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
OiBBZGRlZCBuZWVkZWQgc3ltYm9scyBmb3IgR1RLIGJ1aWxkLgorCiAyMDEyLTA1LTI1ICBaYWxh
biBCdWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KIAogICAgICAgICBbUXRdIEJyb2tlbiBjb250
cm9scyByZW5kZXJpbmcgd2hlbiB0cmFuc2Zvcm0gaXMgYXBwbGllZC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144126</attachid>
            <date>2012-05-25 12:47:49 -0700</date>
            <delta_ts>2012-05-25 14:03:21 -0700</delta_ts>
            <desc>WIP for ews testing v3</desc>
            <filename>0001-setJavaScriptProfilingEnabled.patch</filename>
            <type>text/plain</type>
            <size>79397</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA5NThiNThlZDZlYTRhYjQ3N2Y2MjRmZDFkOGMzMDE3NDIxYzZlYTkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBGcmksIDI1IE1heSAyMDEyIDE2OjQ0OjI1IC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKCi0tLQogQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysK
IExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1
NSArKysrKysrKysrKysrKysrKysrKwogLi4uL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXIuaHRtbCAgICAgfCAgICA2ICstLQogLi4udXMtZnVuY3Rpb24tY2FsbGVkLWZyb20t
ZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgfCAgICA2ICstLQogLi4ubm9ueW1vdXMtZnVuY3Rpb24t
Y2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgfCAgICA2ICstLQogLi4uL3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgICAgfCAgICA2ICstLQogLi4uL2Fub255
bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgICAgfCAgICA2ICstLQogTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sICAgICAgICAgICAgICAgfCAgICA2ICst
LQogLi4uL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sICAgICAgICAgfCAg
ICA2ICstLQogLi4ubHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0
bWwgfCAgICA2ICstLQogTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxl
YWsuaHRtbCAgfCAgICA2ICstLQogTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwg
ICAgICAgICAgICAgICAgfCAgICA2ICstLQogLi4uYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJv
bS1hbm90aGVyLXNjb3BlLmh0bWwgfCAgICA2ICstLQogLi4uL2Zhc3QvcHJvZmlsZXIvY29tcGFy
ZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sICAgfCAgICA2ICstLQogTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jb25zdHJ1Y3Rvci5odG1sICAgICAgICAgfCAgICA2ICstLQogTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCAgICAgICAgICAgfCAgICA0ICstCiBMYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sICB8ICAgIDYgKy0tCiBM
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbCAgICAgICB8ICAgIDYg
Ky0tCiAuLi4vZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwgICB8
ICAgIDYgKy0tCiAuLi4vZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sICAg
ICAgICB8ICAgIDYgKy0tCiAuLi4vcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sICAgICB8ICAgIDYgKy0tCiAuLi4tZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKy0tCiAuLi5sdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtZnVuY3Rpb24tY2FsbHMuaHRtbCB8ICAgIDYgKy0tCiAuLi51cy1mdW5jdGlvbnMtY2FsbGVk
LWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8ICAgIDYgKy0tCiBMYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sICAgICB8ICAgIDYgKy0tCiAuLi4vbmFtZWQt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sICAgICAgICB8ICAgIDYgKy0tCiAuLi4v
ZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAgICB8ICAgIDYgKy0t
CiAuLi4vcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgICB8ICAg
IDYgKy0tCiAuLi4vZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sICAgICAg
ICB8ICAgIDYgKy0tCiAuLi4vZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRt
bCAgICAgICB8ICAgIDYgKy0tCiAuLi4vcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRl
ZC1maWxlLmh0bWwgICB8ICAgIDYgKy0tCiAuLi4vZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgt
bm8tdGl0bGUuaHRtbCAgICAgICB8ICAgIDYgKy0tCiAuLi5pb24tYnV0LXN0b3AtcHJvZmlsaW5n
LW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbCB8ICAgIDYgKy0tCiAuLi4vcHJvZmlsZXIvcHJvZmls
aW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbCB8ICAgIDYgKy0tCiBMYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwgICB8ICAgIDYgKy0tCiAuLi4vZmFz
dC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgICAgICB8ICAgIDYgKy0tCiAu
Li4vc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAgICB8ICAgIDYg
Ky0tCiAuLi5ydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCB8
ICAgIDYgKy0tCiAuLi4vcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRt
bCAgICB8ICAgIDYgKy0tCiAuLi4vcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGlt
ZW91dC5odG1sICB8ICAgIDMgKy0KIC4uLi9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlv
bi1jYWxsLmh0bWwgICAgIHwgICAgNiArLS0KIC4uLi90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFs
Lmh0bWwtZGlzYWJsZWQgICAgICAgIHwgICAgNiArLS0KIC4uLi9mYXN0L3Byb2ZpbGVyL3R3by1l
eGVjdXRpb24tY29udGV4dHMuaHRtbCAgICAgIHwgICAgNiArLS0KIC4uLi1kZWZpbmVkLWZ1bmN0
aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIHwgICAgNiArLS0KIExheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwgICAgIHwgICAgNiArLS0KIC4uLi9j
cHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwgIHwgICAgNiArLS0K
IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAg
NSAtLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE4ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcCAgIHwgICAxNyArKystLS0KIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmggICAgIHwgICAgMyArLQogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcCAgICAgICAgfCAgIDIzICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCAgICAgICAgICB8ICAgIDUgKysKIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgICAgICAgIHwgICAgMSArCiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysr
CiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50LmggICB8ICAg
IDEgLQogLi4uL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwICAg
fCAgICA5IC0tLS0KIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmggIHwgICAgMSAtCiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTMgKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuY3BwICAgIHwgICAxOCAtLS0tLS0tCiAuLi4vZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oICB8ICAgIDEgLQogU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAgICAgfCAgICA2ICstLQogU291cmNlL1dlYktp
dC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tbSAgICAgfCAgICA1ICstCiBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysK
IC4uLi9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgIHwgICAx
OSAtLS0tLS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aCAgICB8ICAgIDEgLQogU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcCAgICAgICAg
ICAgICAgICAgfCAgICA1ICstCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTQgKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUluc3BlY3Rvci5jcHAgICAgIHwgICAgNSAtLQogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSW5zcGVjdG9yLmggICAgICAgfCAgICAxIC0KIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIHwgICAgNiArLS0KIFNvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysrKysrKysr
KysrKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAg
IHwgICAxMiAtLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aCAgICAgICAgfCAgICAxIC0KIC4uLi9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxh
Y2tCZXJyeS5jcHAgIHwgICAgNiAtLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VERldlRvb2xzQWdlbnQuY3BwIHwgICAgOSAtLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0FnZW50LmggICB8ICAgIDEgLQogLi4uL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCAgICAgICAgICAgICAgfCAgICA5IC0tLS0KIC4uLi9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIHwgICAgMyAtLQogVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCAgfCAgICAxIC0KIC4uLi9E
dW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwIHwgICAgOCAtLS0K
IC4uLi9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAx
MSAtLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gICAgICAg
ICB8ICAgIDEgLQogLi4uL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbSAgfCAgICA2IC0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHAgfCAgICA2IC0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oICAgfCAgICAxIC0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAgICAgICAgIHwgICAgNCAtLQogLi4uL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgfCAgIDE4IC0tLS0tLS0KIC4uLi9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgIHwgICAgNyAtLS0KIC4uLi9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICAgICAgICAgIHwgICAgMSAtCiA5MCBm
aWxlcyBjaGFuZ2VkLCAzNTAgaW5zZXJ0aW9ucygrKSwgMzIzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyMTM3MjBkLi45NDIzMzU4IDEwMDY0
NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTIt
MDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXI6IEFkZGVkIG5lZWRlZCBzeW1ib2xzIGZvciBHVEsgYnVpbGQuCisKIDIwMTIt
MDUtMjUgIFphbGFuIEJ1anRhcyAgPHpidWp0YXNAZ21haWwuY29tPgogCiAgICAgICAgIFtRdF0g
QnJva2VuIGNvbnRyb2xzIHJlbmRlcmluZyB3aGVuIHRyYW5zZm9ybSBpcyBhcHBsaWVkLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDNhYzRiNTUuLmM5ODA4YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMi0wNS0yNSAg
SmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250
cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMyOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGVzdHMgdG8gdXNlIHdpbmRvd3Mu
aW50ZXJuYWxzIGluc3RlYWQgb2YgbGF5b3V0VGVzdENvbnRyb2xsZXIuCisKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRl
eHRzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1p
bi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sOgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWw6CisgICAgICAgICog
ZmFzdC9wcm9maWxlci9jYWxsLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsaW5n
LXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29w
ZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxl
cy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9ldmVu
dC1oYW5kbGVyLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4
dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2lu
bGluZS1ldmVudC1oYW5kbGVyLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9tYW55LWNh
bGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9tdWx0
aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1
bmN0aW9uLWNhbGxzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9u
eW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sOgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWw6Cisg
ICAgICAgICogZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sOgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sOgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3At
cHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
c3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9m
aWxpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVy
LXNldFRpbWVvdXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5j
dGlvbi1jYWxsLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQ6CisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhl
Y3V0aW9uLWNvbnRleHRzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci91c2VyLWRlZmlu
ZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJv
ZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCiAyMDEyLTA1LTI1ICBaYW4gRG9iZXJzZWsg
IDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVu
aW5nIGFmdGVyIHIxMTgxNjYsIHIxMTgyOTEgYW5kIHIxMTg0NDIuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKaW5kZXgg
M2E4NjYyOC4uZjFkMzI1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZy
b20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKaW5kZXggNzlmMTEwOC4uYzRkZWI4ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVk
LWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1i
dWlsdC1pbi1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmluZGV4IDg0OGMwMDEu
LmU2NDk1ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9u
cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rp
b24tY2FsbHMtZXZhbC5odG1sCmluZGV4IDljYjVjNGIuLjAzNDgxZjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxs
cy1ldmFsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKaW5kZXggM2M0Mjk2Ni4u
ZGJmYjZlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbApAQCAt
MiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoaXRl
cmF0aW9ucykKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbAppbmRleCBmZDAzYTg0
Li5jMGJjMzljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCkBAIC0yLDEwICsy
LDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnlt
b3VzLmh0bWwKaW5kZXggZmIyNjExOS4uNWQ3ZjFhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255
bW91cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
fQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1j
YWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKaW5k
ZXggNjAwYWJiMy4uYWUxMzRmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXIt
ZGVmaW5lZC1mdW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFy
dFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJl
Z2lzdGVyLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rl
ci1sZWFrLmh0bWwKaW5kZXggNTliYzZlMy4uNzdiYmQ0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCkBAIC0xLDEwICsxLDEwIEBA
CiA8Ym9keT4KIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBsb2cocykKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKaW5k
ZXggMTg2MTIyZS4uMDBhYjU3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jYWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRl
ZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXIt
ZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwKaW5kZXggZWFiYWI2ZS4uMzNkYTBlYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0
YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKaW5kZXggYzhjNDgxMi4uY2FjMTUx
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxl
LXByb2ZpbGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11
bHRpcGxlLXByb2ZpbGVzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBqID0gMDsKIGZ1
bmN0aW9uIHRlc3QobGVuKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9y
Lmh0bWwKaW5kZXggMGRkMzhiYy4uODk3Njc1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY29uc3RydWN0b3IuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCmluZGV4IDIz
NjQ3OWQuLjA3ZmIxZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVh
ZC10aW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRt
bApAQCAtNSw4ICs1LDkgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpAQCAtMjcsMyArMjgsNCBAQCB0aGUgcHJvZmls
ZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUg
JSBzcGVudCBpbgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwK
aW5kZXggZjNkNmIwMC4uZjI1ZGEwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9l
dmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRs
ZXIuaHRtbAppbmRleCAwZWFkZDkxLi5iMmIyMDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24g
c3RhcnRUZXN0KCkKIHsgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUu
aHRtbAppbmRleCA5MmFhMzJkLi5iOThkZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwt
b24tc2FtZS1saW5lLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVu
dC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1o
YW5kbGVyLmh0bWwKaW5kZXggYjc2NzExYy4uMGFhMzU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwx
MCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1s
CmluZGV4IGZhOTU0YmIuLjAzYWRkOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCkBAIC0yLDEw
ICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlw
bGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKaW5k
ZXggNjA0ZDAzYS4uOTliNTk4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNj
b3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCmluZGV4IDRlNDc2ZGUuLjkxMmY2NDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtZnVuY3Rpb24tY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKQEAgLTIsMTAg
KzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZy
b20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVs
dGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5o
dG1sCmluZGV4IGM0M2Q3MzMuLmYyYWY1ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2Ft
ZS1mdW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUt
YW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCkBA
IC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKaW5kZXggNDMwMzU2Zi4uMDQ5
NWYzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFt
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5o
dG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNw
bGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAppbmRleCAwN2M1ZTEwLi4yOTRlZTQ4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gZnVuY3Rpb24wKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sCmluZGV4IGQxMWRjYzIuLjQ4MDU5MzcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3Vz
LWZ1bmN0b24uaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1z
dGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sCmluZGV4IDMwOGVhZGUuLmM0Njg1ZjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXBy
b2ZpbGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQt
YW5kLXN0b3AtcHJvZmlsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhl
Y3V0aW9uLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0
aW9uLWNvbnRleHQuaHRtbAppbmRleCBlYTYzZmM1Li5lNmI2YjNkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCkBAIC0yLDEw
ICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCmluZGV4IGRlZjNjNGIuLjgw
ZjFkOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlv
bi1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0
aW9uLWNvbnRleHQuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxs
cy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2Zp
bGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCmluZGV4IDMwNWE2MDUuLjNmYTgyNDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNs
dWRlZC1maWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNh
bGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24g
c3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJv
ZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2Zp
bGUtd2l0aC1uby10aXRsZS5odG1sCmluZGV4IGIwNGQyN2IuLjNiMjk0MDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRp
b24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0
b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbAppbmRleCA3ZTA2M2NlLi45ODE5
YzU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9t
LWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5l
c3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2Nh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5l
c3RlZC1sb2NhdGlvbi5odG1sCmluZGV4IGU2MjUxYzcuLjIyZDY2YjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVz
dGVkLWxvY2F0aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVu
dC1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxs
Lmh0bWwKaW5kZXggNDM0ZjIwMi4uNWE4NTg4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZS4uMTNkMDUzNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2Zp
bGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0
LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKaW5kZXggODU1OWMxYS4uY2Y2
Njc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3Rv
cC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbApAQCAtMiwx
MCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1l
LWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9w
LXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sCmluZGV4IDVmYWFmNzQuLjhmODAz
NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24u
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9m
aWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3Rv
cC1wcm9maWxpbmcuaHRtbAppbmRleCAyYTI1Y2UwLi40ZGUzYjkzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2Zp
bGluZy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
fQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRl
ci1zZXRUaW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmls
aW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAppbmRleCAzOWI5M2RiLi42ZGNkYWZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRp
bWVvdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5n
LWFmdGVyLXNldFRpbWVvdXQuaHRtbApAQCAtNSw4ICs1LDkgQEAKIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5o
dG1sCmluZGV4IDRmOTcwMjkuLmNlYTllOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwKQEAgLTIsMTAgKzIsMTAg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiAKIHZhciBqID0gMDsKIGZ1bmN0aW9uIHRlc3QobGVuKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbC1kaXNh
YmxlZCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZh
bC5odG1sLWRpc2FibGVkCmluZGV4IDhiNTdjMDMuLjVlY2M0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2Fi
bGVkCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20t
ZXZhbC5odG1sLWRpc2FibGVkCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBjb25zb2xlLnByb2ZpbGUo
IlRocm93IHdpdGhpbiBhbiBldmFsLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUuLjk2Njhl
OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1j
b250ZXh0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlv
bi1jb250ZXh0cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3Qo
KQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQt
ZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbAppbmRleCBiZGIxZDVkLi5lNjgyYjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlv
bi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvd2luZG93LWRvdC1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRv
dy1kb3QtZXZhbC5odG1sCmluZGV4IDdkOTgzYWMuLmIyYTJiNTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
IAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGlu
Zy13aXRob3V0LWluc3BlY3Rvci5odG1sCmluZGV4IDY1ZTFjZTIuLmYzNzU5ZDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5n
LXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbApAQCAtMiwx
MCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKIAogZnVuY3Rpb24gcGFnZUZ1bmN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBw
ZWQKaW5kZXggNDdmNWJiZC4uMzAyYmM5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAg
LTM1MSwxMSArMzUxLDYgQEAgd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tncm91bmQuaHRtbAog
d2ViYXJjaGl2ZS90ZXN0LXRkLWJhY2tncm91bmQuaHRtbAogd2ViYXJjaGl2ZS90ZXN0LXhtbC1z
dHlsZXNoZWV0LnhtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAotIyA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4PgotZmFzdC9wcm9maWxlcgot
aW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0
b3IuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcwogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMzMxPgogZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11bmxvYWQtY3Jh
c2guaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEwODI3MGUuLjVkZjRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0
byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMy
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCgpIHRvIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3MuIE5vIG5ldyB0ZXN0cywgYnV0IHRoaXMKKyAgICAgICAgY2hhbmdlIHdpbGwgYWxsb3cgbW9y
ZSB0ZXN0cyB0byBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lciBhbmQgRFJUIGZvciBwb3J0cyB0aGF0
IHdlcmVuJ3QKKyAgICAgICAgaW1wbGVtZW50aW5nIHRoaXMgZnVuY3Rpb24gYmVmb3JlLgorCisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsU2V0dGluZ3M6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAg
ICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbDoKKwogMjAxMi0wNS0yNSAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBMYXllckNocm9taXVtIHNob3VsZCByZWNv
Z25pc2UgZXhpc3RpbmcgbGF5ZXIgYWN0aXZlIGFuaW1hdGlvbnMgd2hlbiB0aGUgbGF5ZXIgaXMg
YWRkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggOTUxNzMzZi4uN2JjM2ZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzM5LDIxICszMzksMTggQEAgTm9k
ZSogSW5zcGVjdG9yQ29udHJvbGxlcjo6aGlnaGxpZ2h0ZWROb2RlKCkgY29uc3QKIH0KIAogI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpl
bmFibGVQcm9maWxlcigpCitib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OnByb2ZpbGVyRW5hYmxl
ZCgpCiB7Ci0gICAgRXJyb3JTdHJpbmcgZXJyb3I7Ci0gICAgbV9wcm9maWxlckFnZW50LT5lbmFi
bGUoJmVycm9yKTsKKyAgICByZXR1cm4gbV9wcm9maWxlckFnZW50LT5lbmFibGVkKCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJsZVByb2ZpbGVyKCkKK3ZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6c2V0UHJvZmlsZXJFbmFibGVkKGJvb2wgZW5hYmxlKQogewogICAgIEVy
cm9yU3RyaW5nIGVycm9yOwotICAgIG1fcHJvZmlsZXJBZ2VudC0+ZGlzYWJsZSgmZXJyb3IpOwot
fQotCi1ib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OnByb2ZpbGVyRW5hYmxlZCgpCi17Ci0gICAg
cmV0dXJuIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOworICAgIGlmIChlbmFibGUpCisgICAg
ICAgIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlKCZlcnJvcik7CisgICAgZWxzZQorICAgICAgICBt
X3Byb2ZpbGVyQWdlbnQtPmRpc2FibGUoJmVycm9yKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXN1bWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKaW5kZXggOThhZWY3Ny4uNDczYmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMDAsOCArMTAwLDcgQEAgcHVi
bGljOgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgYm9vbCBwcm9maWxl
ckVuYWJsZWQoKTsKLSAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgdm9pZCBkaXNhYmxl
UHJvZmlsZXIoKTsKKyAgICB2b2lkIHNldFByb2ZpbGVyRW5hYmxlZChib29sKTsKIAogICAgIHZv
aWQgcmVzdW1lKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IDg1OTRiNzAuLjZmZDg0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTAwLDYgKzEwMCw5IEBAIEludGVybmFsU2V0
dGluZ3M6OkludGVybmFsU2V0dGluZ3MoRnJhbWUqIGZyYW1lKQogI2VuZGlmCiAgICAgLCBtX29y
aWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNldHRpbmdzKCktPmVkaXRpbmdCZWhhdmlvclR5cGUoKSkK
ICAgICAsIG1fb3JpZ2luYWxGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dChzZXR0
aW5ncygpLT5maXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4dCgpKQorI2lmIEVOQUJM
RShJTlNQRUNUT1IpICYmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgICwgbV9vcmln
aW5hbEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKChwYWdlKCkgJiYgcGFnZSgpLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkpID8gcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnByb2ZpbGVy
RW5hYmxlZCgpIDogZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAtMTEzLDYgKzExNiwxMCBAQCB2
b2lkIEludGVybmFsU2V0dGluZ3M6OnJlc3RvcmVUbyhTZXR0aW5ncyogc2V0dGluZ3MpCiAjZW5k
aWYKICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yVHlwZShtX29yaWdpbmFsRWRpdGlu
Z0JlaGF2aW9yKTsKICAgICBzZXR0aW5ncy0+c2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2lu
Z0NvbnRleHQobV9vcmlnaW5hbEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KTsK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAg
ICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKQorICAgICAgICBw
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKG1fb3JpZ2lu
YWxKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk7CisjZW5kaWYKIH0KIAogU2V0dGluZ3MqIElu
dGVybmFsU2V0dGluZ3M6OnNldHRpbmdzKCkgY29uc3QKQEAgLTM1Miw0ICszNTksMjAgQEAgdm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29udGV4
dChib29sIGNyZWF0ZXMsIEV4Y2UKICAgICBzZXR0aW5ncygpLT5zZXRGaXhlZFBvc2l0aW9uQ3Jl
YXRlc1N0YWNraW5nQ29udGV4dChjcmVhdGVzKTsKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKCFwYWdlKCkgfHwgIXBh
Z2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPnNldFByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGVuYWJsZWQpOworICAgIFVOVVNFRF9QQVJBTShlYyk7CisgICAgcmV0dXJuOwor
I2VuZGlmCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
aW5kZXggN2ZlYTc1ZC4uNGZjNmQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCByZXN0b3Jl
VG8oU2V0dGluZ3MqKTsKIAorICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisKIHByaXZhdGU6CiAgICAgSW50ZXJuYWxT
ZXR0aW5ncyhGcmFtZSopOwogCkBAIC05NSw2ICs5Nyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3I7CiAgICAgYm9v
bCBtX29yaWdpbmFsRml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQ7CisjaWYgRU5B
QkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgYm9vbCBt
X29yaWdpbmFsSmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQ7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCmluZGV4IDdiMzAxNzkuLjg0ZTg0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTUsNiArNTUsNyBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEVkaXRp
bmdCZWhhdmlvcihpbiBET01TdHJpbmcgYmVoYXZpb3IpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgICAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGluIGJv
b2xlYW4gY3JlYXRlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoaW4gYm9vbGVhbiBjcmVhdGVzKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ3MTg2
N2IuLjdmM2EzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHByaXZhdGUg
QVBJcyB0aGF0IHdlcmUgb25seSBiZWluZyB1c2VkIGJ5IERSVC4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJEZXZUb29sc0FnZW50Lmg6CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50KToKKyAgICAg
ICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJEZXZU
b29sc0FnZW50SW1wbC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgorCiAyMDEy
LTA1LTI1ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIExheWVyQ2hyb21pdW0gc2hvdWxkIHJlY29nbmlzZSBleGlzdGluZyBs
YXllciBhY3RpdmUgYW5pbWF0aW9ucyB3aGVuIHRoZSBsYXllciBpcyBhZGRlZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAppbmRleCAwYTY2
ZGIzLi45ZjFkNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJEZXZUb29sc0FnZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RGV2VG9vbHNBZ2VudC5oCkBAIC02OCw3ICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIEV4cG9z
ZWQgZm9yIExheW91dFRlc3RDb250cm9sbGVyLgogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUlu
V2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKSA9IDA7
CiAKICAgICBjbGFzcyBNZXNzYWdlRGVzY3JpcHRvciB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4
IGQzOWZmOGEuLjZmNzJmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKQEAgLTU2MCwxNSArNTYwLDYgQEAgdm9pZCBXZWJE
ZXZUb29sc0FnZW50SW1wbDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29u
c3QgV2ViU3RyaW5nJgogICAgIGljLT5ldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNhbGxJZCwg
c2NyaXB0KTsKIH0KIAotdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIEluc3BlY3RvckNvbnRyb2xsZXIq
IGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBp
Yy0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGljLT5kaXNhYmxlUHJvZmls
ZXIoKTsKLX0KLQogV2ViU3RyaW5nIFdlYkRldlRvb2xzQWdlbnQ6Omluc3BlY3RvclByb3RvY29s
VmVyc2lvbigpCiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6Omluc3BlY3RvclByb3RvY29sVmVyc2lv
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmgKaW5kZXggMWM4ZTAyNS4uZWRiZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCkBAIC04NCw3ICs4NCw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmQoY29uc3QgV2Vi
U3RyaW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdEVsZW1lbnRBdChjb25z
dCBXZWJQb2ludCYgcG9pbnQpOwogICAgIHZpcnR1YWwgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKGxvbmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmIHNjcmlwdCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcm9jZXNzSWQobG9uZyk7CiAKICAgICAvLyBJbnNwZWN0b3JDbGllbnQgaW1wbGVtZW50
YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNTk3ODg2OS4uY2VmOTAxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVu
bmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5j
dGlvbiBmcm9tIERSVCBhZnRlciBpdHMKKyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFs
cy5zZXR0aW5ncy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmg6CisKIDIwMTItMDUtMjUgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96
ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gQVBJIGZvciBQYWdlR3JvdXAgdmlz
aXRlZCBsaW5rcyBoYXNoIHBvcHVsYXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4
IGYzNzJhZGUuLmYxMGRhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDI4LDI0
ICs0MjgsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91
dEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZQogICAgICAgICBjb3JlUGFnZS0+c2V0
dGluZ3MoKS0+c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYgKCFjb3Jl
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
ciogY29udHJvbGxlciA9IGNvcmVQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaWYg
KCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZW5hYmxlZCkKLSAgICAg
ICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbnRy
b2xsZXItPmRpc2FibGVQcm9maWxlcigpOwotI2VuZGlmCi19Ci0KIGJvb2wgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKiBuYW1lKQogewogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2
YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggMjM3OWYy
MC4uYjBmOTU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTc3LDcgKzc3LDYgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBib29sIGZpbmRTdHJpbmcoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6RmluZE9wdGlvbnMpOwogICAgIHN0YXRp
YyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0
IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldENTU0dyaWRMYXlvdXRFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lk
IHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9p
ZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBib29sIGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViaW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJpbnNwZWN0b3IuY3BwCmluZGV4IDY5MjA3OWYuLjE2NGU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCkBAIC0zNTMsMTEgKzM1Myw3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvCiAgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfUFJP
RklMSU5HX0VOQUJMRUQ6IHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAg
ICAgYm9vbCBlbmFibGVkID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBwcml2LT5wYWdlLT5pbnNw
ZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgY29u
dHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29u
dHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVyKCk7CisgICAgICAgIHByaXYtPnBhZ2UtPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwogI2Vsc2UKICAgICAg
ICAgZ19tZXNzYWdlKCJQUk9QX0pBVkFTQ1JJUFRfUFJPRklMSU5HX0VOQUJMRUQgaXMgbm90IHdv
cmsgYmVjYXVzZSBvZiB0aGUgamF2YXNjcmlwdCBkZWJ1Z2dlciBpcyBkaXNhYmxlZFxuIik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNw
ZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1t
CmluZGV4IDY3YTczNTQuLjA4ZjRiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5z
cGVjdG9yL1dlYkluc3BlY3Rvci5tbQpAQCAtMTQ5LDEwICsxNDksNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChl
bmFibGVkKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZVByb2Zp
bGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRp
c2FibGVQcm9maWxlcigpOworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJv
ZmlsZXJFbmFibGVkKGVuYWJsZWQpOwogfQogCiAtIChCT09MKWlzVGltZWxpbmVQcm9maWxpbmdF
bmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGU4MjNmODYuLjk5Nzc0NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxq
ZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIg
bmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmVkIHVubmVlZGVkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIGZ1bmN0aW9u
IGZyb20gRFJUIGFmdGVyIGl0cworICAgICAgICBtb3ZlIHRvIHdpbmRvd3MuaW50ZXJuYWxzLnNl
dHRpbmdzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Lmg6CisKIDIwMTItMDUtMjUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIEJ1aWxkZml4IGZvciBuZXdlciBRdDUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKaW5kZXggZmY3ZDAwNi4uZTcwYmYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMw
MSwyMCArMzAxLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0b2ZpbGxl
ZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgYm9vbCBpc0EKICAgICBpbnB1dEVsZW1lbnQt
PnNldEF1dG9maWxsZWQoaXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZyYW1lKiBmcmFtZSwg
Ym9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFC
TEUoSU5TUEVDVE9SKQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpj
b3JlKGZyYW1lKTsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gY29yZUZy
YW1lLT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIp
Ci0gICAgICAgIHJldHVybjsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgY29udHJvbGxlci0+
ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbnRyb2xsZXItPmRpc2FibGVQ
cm9maWxlcigpOwotI2VuZGlmCi19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dFZhbHVlRm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUVN0cmluZyYg
dmFsdWUpCiB7CiAgICAgV2ViQ29yZTo6RWxlbWVudCogd2ViRWxlbWVudCA9IGVsZW1lbnQubV9l
bGVtZW50OwpAQCAtMTI3NCwxMSArMTI2MCw2IEBAIHZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0
X3J1bihib29sIGIpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldER1bXBSZW5kZXJU
cmVlTW9kZUVuYWJsZWQoYik7CiB9CiAKLXZvaWQgUVdFQktJVF9FWFBPUlQgcXRfZHJ0X3NldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFFXZWJGcmFtZSogZnJhbWUsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoZnJhbWUsIGVuYWJsZWQpOwotfQotCiB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2RydF93
aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29u
c3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRp
b25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKHNvdXJjZU9yaWdpbiwg
ZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMmM5NmZiMy4uNDE4MDBmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuaApAQCAtMTI1LDcgKzEyNSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCgpOwogICAgIHN0YXRpYyB2b2lkIGdhcmJhZ2VDb2xs
ZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50aWxEb25lKTsKICAgICBz
dGF0aWMgdm9pZCBzZXRBdXRvZmlsbGVkKGNvbnN0IFFXZWJFbGVtZW50JiwgYm9vbCBlbmFibGVk
KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChRV2ViRnJh
bWUqLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25z
dCBRV2ViRWxlbWVudCYsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgaW50IGph
dmFTY3JpcHRPYmplY3RzQ291bnQoKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhclNjcmlwdFdvcmxk
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggMzljNzUyNy4uOGJmYTdlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMzIsMTAgKzIzMiw3IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChCT09MIGVuYWJsCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gU19PSzsK
IAotICAgIGlmIChlbmFibGVkKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
PmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmRpc2FibGVQcm9maWxlcigpOworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMzEyNDEzMS4uZmE3YjY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBv
cnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB1bm5l
ZWRlZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5jdGlvbiBmcm9tIFdUUiBhZnRl
ciBpdHMKKyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFscy5zZXR0aW5ncy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3Iu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJ
bnNwZWN0b3IuaDoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisKIDIwMTItMDUtMjUgIE1h
cmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dLMl0gSW1wbGVtZW50IEFQSSBmb3IgZ2VuZXJpYyBwZXJtaXNzaW9uIHJlcXVlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCmluZGV4IGE2OTllYWIuLmFlNjlhNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwCkBAIC01NSwxMSArNTUs
NiBAQCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxl
SW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgbAogICAgIHJldHVybiB0b0ltcGwoaW5zcGVjdG9y
UmVmKS0+ZXZhbHVhdGVTY3JpcHRGb3JUZXN0KGNhbGxJRCwgdG9JbXBsKHNjcmlwdCktPnN0cmlu
ZygpKTsKIH0KIAotdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFibGVkKQot
ewotICAgIHRvSW1wbChpbnNwZWN0b3JSZWYpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZChlbmFibGVkKTsKLX0KLQogdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdF
bmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvclJlZiwgYm9vbCBlbmFibGVkKQog
ewogICAgIGlmIChlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCmlu
ZGV4IDU5M2Q5MGEuLmUzMmZkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9y
LmgKQEAgLTQ0LDcgKzQ0LDYgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTaG93
KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZUluc3BlY3RvckNsb3NlKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3Rvcik7CiAKIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yRXZhbHVhdGVTY3JpcHRGb3JUZXN0KFdLQnVuZGxl
SW5zcGVjdG9yUmVmIGluc3BlY3RvciwgbG9uZyBjYWxsSUQsIFdLU3RyaW5nUmVmIHNjcmlwdCk7
Ci1XS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIFdL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2V0UGFnZVByb2ZpbGluZ0VuYWJsZWQoV0tC
dW5kbGVJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBib29sIGVuYWJsZWQpOwogCiAjaWZkZWYgX19j
cGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAKaW5kZXggODc1NzNmOS4uNjhkM2IwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE5NSwxMCArMTk1
LDggQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+c2hvdygpOwogICAgIGlmICghbV9mcm9udGVuZENsaWVudCkKICAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChlbmFibGVkKQotICAgICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fcGFnZS0+
Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJvZmlsZXIoKTsgICAg
ICAgIAorCisgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNl
dFByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgppbmRleCA5NmMwZjdmLi5kNTY5YWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xz
L3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAg
LTEwOSw2ICsxMDksNyBAQCBfWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlv
bkV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaTsKIF9aTjdXZWJD
b3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNwZW5kQW5pbWF0aW9uc0V2OwogX1pON1dlYkNv
cmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3VtZUFuaW1hdGlvbnNFdjsKK19aTjdXZWJDb3Jl
MTlJbnNwZWN0b3JDb250cm9sbGVyMThzZXRQcm9maWxlckVuYWJsZWRFYjsKIF9aTks3V2ViQ29y
ZTE5SW5zcGVjdG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RTsKIF9a
TjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24yNmluc3RydW1lbnRpbmdBZ2VudHNG
b3JQYWdlRVBOU180UGFnZUU7CiBfWk43V2ViQ29yZTI0SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
MTdzX2Zyb250ZW5kQ291bnRlckU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYWNhZGQ5Ny4uYmIyMjFjYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA1LTI1
ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5jdGlvbiBmcm9tIERSVCBhZnRlciBpdHMKKyAgICAgICAg
bW92ZSB0byB3aW5kb3dzLmludGVybmFscy5zZXR0aW5ncy4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xz
QWdlbnQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xz
QWdlbnQuaDoKKyAgICAgICAgKERSVERldlRvb2xzQWdlbnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9M
YXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRT
dGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJl
c2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisKIDIwMTItMDUtMjUg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIEJ1
aWxkZml4IGZvciBuZXdlciBRdDUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCBmOTFjODc0Li5lMDZlMzBiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMzg4LDE3ICsxMzg4LDYgQEAg
c3RhdGljIEpTVmFsdWVSZWYgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotCi0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7Ci0gICAgY29udHJvbGxlci0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoSlNWYWx1
ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLQotICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0TWFpbkZy
YW1lSXNGaXJzdFJlc3BvbmRlckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgbWFjIGltcGxlbWVudGF0aW9uCkBAIC0yMzc3LDcgKzIzNjYsNiBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkK
ICAgICAgICAgeyAic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlcyIsIHNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgc2V0SWNvbkRh
dGFiYXNlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkIiwgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCIsIHNl
dEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlciIsIHNldE1haW5GcmFtZUlzRmlyc3RSZXNw
b25kZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNaW5pbXVtVGltZXJJbnRlcnZh
bCIsIHNldE1pbmltdW1UaW1lckludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDJiOWY1ZmUuLjliZTU4NjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTAw
LDcgKzEwMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSk7CiAgICAg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5h
YmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBwcm9maWxpbmdFbmFibGVkKTsKICAgICB2b2lkIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJ
c0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJy
eS5jcHAKaW5kZXggYWVlNGU2Zi4uNjQwNjdkMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFj
a0JlcnJ5LmNwcApAQCAtMjM0LDEyICsyMzQsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKHByb2ZpbGluZ0VuYWJsZWQpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIo
Ym9vbCBmbGFnKQogewogICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKaW5kZXggMjFhZWQxYi4u
YjY2NTlhNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2
VG9vbHNBZ2VudC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2
VG9vbHNBZ2VudC5jcHAKQEAgLTExMiwxNSArMTEyLDYgQEAgdm9pZCBEUlREZXZUb29sc0FnZW50
OjpkZXRhY2goKQogICAgIG1fZHJ0RGV2VG9vbHNDbGllbnQgPSAwOwogfQogCi1ib29sIERSVERl
dlRvb2xzQWdlbnQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBXZWJEZXZUb29sc0FnZW50KiBhZ2VudCA9IHdlYkRldlRvb2xzQWdlbnQoKTsKLSAg
ICBpZiAoIWFnZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYWdlbnQtPnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGVuYWJsZWQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiBi
b29sIERSVERldlRvb2xzQWdlbnQ6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQs
IGNvbnN0IHN0ZDo6c3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgV2ViRGV2VG9vbHNBZ2VudCogYWdl
bnQgPSB3ZWJEZXZUb29sc0FnZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlREZXZUb29sc0FnZW50LmgKaW5kZXggNmU0OTFhZC4uZjM1NjRiZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaApAQCAtNjks
NyArNjksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIGJvb2wgZXZhbHVh
dGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJRCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCk7
Ci0gICAgYm9vbCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICBUYXNr
TGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlzdDsgfQogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDM4YzJhZDYuLmM3MzkxNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE5Niw3ICsx
OTYsNiBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CiAgICAgYmlu
ZE1ldGhvZCgic2V0SWNvbkRhdGFiYXNlRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOwogICAgIGJpbmRNZXRo
b2QoInNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRp
b25FcnJvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3Ip
OwpAQCAtMTgzMSwxNCArMTgzMCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvZ0Vy
cm9yVG9Db25zb2xlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXh0KQogICAgICAgICBXZWJTdHJpbmco
KSwgMCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtX3NoZWxsLT5kcnREZXZUb29sc0FnZW50KCktPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IDA3MDNlZjAuLjM3OTc4NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzQ5LDkgKzM0OSw2IEBA
IHB1YmxpYzoKICAgICAvLyBHZXRzIHRoZSBudW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lv
bnMgcmVxdWVzdHMgcGVuZGluZy4KICAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
IAotICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gc3RhcnQgSmF2YVNjcmlwdCBwcm9maWxp
bmcuCi0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KICAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRv
IGV4ZWMgc2NyaXB0cyBhdCBXZWJJbnNwZWN0b3Igc2lkZS4KICAgICB2b2lkIGV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRl
eCAyYTM5YTY5Li43YWMyZWNlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTI2NSw3ICsyNjUsNiBAQCB2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmll
dygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwotICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcobWFpblZpZXcoKSwgZmFsc2Up
OwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZh
bHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldERlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWwoMCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
TGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAppbmRleCA5MjEyM2U4Li4wMGFjNTNiIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5j
cHAKQEAgLTQ0OSwxNCArNDQ5LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNv
bkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29u
X2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXREZXZlbG9wZXJFeHRy
YXNFbmFibGVkKGVuYWJsZWQpOwotCi0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBlbmFibGVkKTsK
LX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKaW5kZXggNDVjODBlOC4uMDYyODdjMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC01NDAsMTcg
KzU0MCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChk
YXRhYmFzZSwgMCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB2aWV3
ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKLSAgICBBU1NFUlQo
dmlldyk7Ci0KLSAgICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGZsYWcpOwotCi0gICAgV2Vi
S2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rv
cih2aWV3KTsKLSAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImphdmFzY3Jp
cHQtcHJvZmlsaW5nLWVuYWJsZWQiLCBmbGFnLCBOVUxMKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcp
CiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IGMxZjQ0YTQuLmIyNWFjNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEyNjQsNyArMTI2NCw2IEBAIHN0YXRpYyB2b2lkIHJl
c2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgfQogCiAgICAg
W1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107Ci0g
ICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIGluc3BlY3Rvcl0gc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQ6Tk9dOwogCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0Nv
bG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggNWIyZTA2MC4uYTQ5ZGEzYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTYxLDEyICs1NjEsNiBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNv
bkRhdGFiYXNlRW5hYmxlZCkKICAgICBbc2hhcmVkV2ViSWNvbkRhdGFiYXNlIHNldEVuYWJsZWQ6
aWNvbkRhdGFiYXNlRW5hYmxlZF07CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAg
ICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByb2ZpbGluZ0VuYWJsZWQpOwotICAgIFtbW21h
aW5GcmFtZSB3ZWJWaWV3XSBpbnNwZWN0b3JdIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
OnByb2ZpbGluZ0VuYWJsZWRdOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
YWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykKIHsKICAgICBOU1ZpZXcgKmRvY3Vt
ZW50VmlldyA9IFtbbWFpbkZyYW1lIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXgg
YzE2ODNmMS4uOWJiZjQzOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTQ3NywxMiArNDc3LDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwg
Ym9vbCBpc0F1dG8KICAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dG9m
aWxsZWQoZWxlbWVudCwgaXNBdXRvZmlsbGVkKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAg
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGUpOwotICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChtX3RvcExvYWRpbmdGcmFtZSwg
ZW5hYmxlKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VmFsdWVGb3JVc2Vy
KGNvbnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0VmFsdWVGb3JVc2VyKGVsZW1lbnQsIHZhbHVl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aAppbmRleCA1NTExNjc2Li5lZjY4YjM2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xNTksNyArMTU5LDYgQEAgcHVibGljIHNs
b3RzOgogICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgZW5hYmxl
KTsKICAgICB2b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHF1
b3RhKTsKICAgICB2b2lkIHNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmLCBib29sIGVu
YWJsZSk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJs
ZSk7CiAgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRGaXhlZENvbnRlbnRzU2l6ZShpbnQgd2lkdGgs
IGludCBoZWlnaHQpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sIGVu
YWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA0ZWQ4ZTBkLi45MmFiODYzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKQEAgLTkwNSwxMCArOTA1LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3
VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZp
ZXdQcml2YXRlLT5kZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoJm1pbmltdW1JbnRlcnZhbCkp
KQogICAgICAgICB3ZWJWaWV3UHJpdmF0ZS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwobWluaW11
bUludGVydmFsKTsKIAotICAgIENPTVB0cjxJV2ViSW5zcGVjdG9yPiBpbnNwZWN0b3I7Ci0gICAg
aWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+aW5zcGVjdG9yKCZpbnNwZWN0b3IpKSkKLSAg
ICAgICAgaW5zcGVjdG9yLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChGQUxTRSk7Ci0K
ICAgICBIV05EIHZpZXdXaW5kb3c7CiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+
dmlld1dpbmRvdyhyZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSAm
JiB2aWV3V2luZG93KQogICAgICAgICBTZXRGb2N1cyh2aWV3V2luZG93KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4
IGM2NzIzYmQuLmQzYWRjYWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtODQ2LDI0ICs4NDYsNiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFn
KQogICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRS
VUUgOiBGQUxTRSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdl
YlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZTsKLSAg
ICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3UHJpdmF0ZSkpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYkluc3BlY3Rvcj4gaW5zcGVjdG9yOwotICAg
IGlmIChGQUlMRUQodmlld1ByaXZhdGUtPmluc3BlY3RvcigmaW5zcGVjdG9yKSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmxhZyk7Ci0gICAgaW5z
cGVjdG9yLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGZsYWcpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCAyNTBmYTVjLi45MWVkODk4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtNDc4LDEzICs0NzgsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBKU1N0cmluZ1JlZiBzY3JpcAog
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIFdLQnVuZGxlSW5zcGVjdG9yU2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQoV0tCdW5kbGVQYWdlR2V0SW5zcGVjdG9yKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5wYWdlKCktPnBhZ2UoKSksIGVuYWJsZWQpOwotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCi19Ci0KIHR5cGVkZWYgV1RGOjpIYXNoTWFwPHVuc2lnbmVkLCBXS1JldGFpblB0cjxXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmPiA+IFdvcmxkTWFwOwogc3RhdGljIFdvcmxkTWFwJiB3b3JsZE1h
cCgpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOGNhMDlmNi4uZDFiMzg1ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTc0LDcgKzE3NCw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAg
ICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBz
Y3JpcHQpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAK
ICAgICB2b2lkIHNldFBPU0lYTG9jYWxlKEpTU3RyaW5nUmVmKTsKIAotLSAKMS43LjEwCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144145</attachid>
            <date>2012-05-25 14:03:30 -0700</date>
            <delta_ts>2012-05-28 06:31:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42328-20120525180246.patch</filename>
            <type>text/plain</type>
            <size>82756</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiNTAyNjEwMWFkNzc2
NzlmNjgwOGM0NzgyODc4ODZjYjIzNWMwMi4uNTkxYmJiNWM4Zjk1YjIzMTZjYTQ3ZTIzMTg2YWE0
OGU5ODZjNzk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA1LTI1ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KCkgdG8gd2luZG93LmludGVybmFscy5zZXR0aW5ncy4gTm8gbmV3IHRlc3RzLCBidXQgdGhpcwor
ICAgICAgICBjaGFuZ2Ugd2lsbCBhbGxvdyBtb3JlIHRlc3RzIHRvIHJ1biBpbiBXZWJLaXRUZXN0
UnVubmVyIGFuZCBEUlQgZm9yIHBvcnRzIHRoYXQgd2VyZW4ndAorICAgICAgICBpbXBsZW1lbnRp
bmcgdGhpcyBmdW5jdGlvbiBiZWZvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3Rv
cnMgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlUHJvZmlsZXIoKSBhbmQKKyAgICAgICAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJsZVByb2ZpbGVyKCkgdG8gSW5zcGVjdG9yQ29udHJvbGxl
cjo6c2V0UHJvZmlsZXJFbmFibGVkKGJvb2wpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6cHJvZmlsZXJFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OnNldFByb2ZpbGVyRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKEluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0
dGluZ3M6OnJlc3RvcmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEludGVybmFsU2V0dGlu
Z3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTItMDUt
MjUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxMTIxNTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDZkZTQ1
NjUzMDhkZWM2M2ZmOWQwNGJhZmJmMzYwMTJiOGVhOTcwNjYuLmI1OTliM2E4YWZhYzFjMDBjY2Q5
YzFhMGJiYzA1NDdjMzU3ZjJlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxl
bmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8g
c3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVk
IHByaXZhdGUgQVBJcyB0aGF0IHdlcmUgb25seSBiZWluZyB1c2VkIGJ5IERSVC4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJEZXZUb29sc0FnZW50Lmg6CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50
KToKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAqIHNy
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwp
OgorCiAyMDEyLTA1LTI1ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkOyByb2xsaW5nIGNocm9taXVtIGRlcHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
aW5kZXggNTk3ODg2OTEyYzY0MTkwMjc2YWEzZDU2NDc4M2NhZDljMzg5NDE1OS4uY2VmOTAxZjZj
YmY5YTBjNzFhZWVlY2E4YWE3OGM3NGE5ZTA0ZDJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRv
IHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
ZCB1bm5lZWRlZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5jdGlvbiBmcm9tIERS
VCBhZnRlciBpdHMKKyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFscy5zZXR0aW5ncy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisK
IDIwMTItMDUtMjUgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRl
bC5jb20+CiAKICAgICAgICAgW0VGTF0gQVBJIGZvciBQYWdlR3JvdXAgdmlzaXRlZCBsaW5rcyBo
YXNoIHBvcHVsYXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3MTkzNTYxM2JhNmM1OGFiNTAzMWNl
NjliMzQ5ZTE5ZWQzY2QyZWU3Li41NGY1YjQ1M2EyN2I3MGYzNGQ3YmNjYjI2NWFkNjVkMWIyZjk0
YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUtMjUgIEplc3Vz
IFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwOgor
ICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3Jfc2V0X3Byb3BlcnR5KToKKwogMjAxMi0wNS0y
NSAgTHUgR3VhbnF1biAgPGd1YW5xdW4ubHVAaW50ZWwuY29tPgogCiAgICAgICAgIFtHVEtdIGZp
eCBjb21waWxhdGlvbiBmb3Igd2Via2l0d2Vidmlldy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4
MWQ1NzYxZWNjYTcyNzAzYzUwZGNiNGJjYzYwMmRmN2ZjMTJmZjgwLi5mZDllMjMwNWUxOGYzMzc0
OTM5MmE3NmRmZGUyOGU3NDQyMzllMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBv
cGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9y
dCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkluc3BlY3Rv
ci9XZWJJbnNwZWN0b3IubW06CisgICAgICAgICgtW1dlYkluc3BlY3RvciBzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZDpdKToKKwogMjAxMi0wNS0yNCAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgZmVhdHVyZSBkZWZpbmVzIGZvciB3ZWIt
ZmFjaW5nIHBhcnRzIG9mIENTUyBSZWdpb25zIGFuZCBFeGNsdXNpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IGU4MjNmODZlNWViNGNjMjZiMjUzNzkzZjFhNjcyZmJjODkyOTAyYTcuLjk5Nzc0NDIxM2U5
NTQ3YzkxOWM3NDVmNTdlZTBmNmNlZTlhNTdjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3Vw
cG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHVu
bmVlZGVkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkIGZ1bmN0aW9uIGZyb20gRFJUIGFm
dGVyIGl0cworICAgICAgICBtb3ZlIHRvIHdpbmRvd3MuaW50ZXJuYWxzLnNldHRpbmdzLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTIt
MDUtMjUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIEJ1aWxkZml4IGZvciBuZXdlciBRdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA0NzFmZWYzZGU1
MGM4YmU3NDk1NjJkOGYyZDFlOTYzYTk5NWQwYTFhLi5hYWRkZDg0ZjFkZjQ5MzMyZWMzZjVhMTEx
MWNjOGY0YjA4NTA0MDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKToKKwog
MjAxMi0wNS0yMSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWly
YUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIE1vdmUgc2V0RWRpdGluZ0JlaGF2aW9yKCkgZnJv
bSBsYXlvdXRUZXN0Q29udHJvbGxlciB0byB3aW5kb3cuaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MzEyNDEzMWM3OTcwOWYxODJmZWUwYjliNGQxYzE1N2Y5YjgzYzg2YS4uMzQ1YmQ0ZDNkM2JmYzMw
MzY4NTkwYWU0MmIzMjk2NzMyNjZiZmVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5jdGlvbiBmcm9tIFdUUiBhZnRlciBpdHMK
KyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFscy5zZXR0aW5ncy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0
b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCk6CisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCiAyMDEyLTA1LTI1ICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXSzJdIElt
cGxlbWVudCBBUEkgZm9yIGdlbmVyaWMgcGVybWlzc2lvbiByZXF1ZXN0cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDk1MTczM2Y1
ZjJjZWM5ODg2MjMzN2JiMTMwYzk5MzJjNDc0YThhZTguLjdiYzNmZTc1MDkwMzA4MzFhYzhlZWUy
NWY3ZTNhNGZjNTQ3MTBhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTMzOSwyMSArMzM5LDE4IEBAIE5vZGUqIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmhpZ2hsaWdodGVkTm9kZSgpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlUHJvZmls
ZXIoKQorYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpwcm9maWxlckVuYWJsZWQoKQogewotICAg
IEVycm9yU3RyaW5nIGVycm9yOwotICAgIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlKCZlcnJvcik7
CisgICAgcmV0dXJuIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmRpc2FibGVQcm9maWxlcigpCit2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNldFByb2ZpbGVyRW5hYmxlZChib29sIGVuYWJsZSkKIHsKICAgICBFcnJvclN0cmluZyBl
cnJvcjsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPmRpc2FibGUoJmVycm9yKTsKLX0KLQotYm9vbCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpwcm9maWxlckVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3By
b2ZpbGVyQWdlbnQtPmVuYWJsZWQoKTsKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBtX3Byb2Zp
bGVyQWdlbnQtPmVuYWJsZSgmZXJyb3IpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9maWxlckFn
ZW50LT5kaXNhYmxlKCZlcnJvcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVz
dW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CmluZGV4IDk4YWVmNzc3NjQyMThjOTFhMzNjMTVmNDI2MmQxNmNmNWY5NjQzYjIuLjQ3M2JiOGRl
MjZmZWEwYWM3MDQ2ZjY2NDk3OWFkZmNkNGVjYTViZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTAwLDggKzEwMCw3IEBAIHB1Ymxp
YzoKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGJvb2wgcHJvZmlsZXJF
bmFibGVkKCk7Ci0gICAgdm9pZCBlbmFibGVQcm9maWxlcigpOwotICAgIHZvaWQgZGlzYWJsZVBy
b2ZpbGVyKCk7CisgICAgdm9pZCBzZXRQcm9maWxlckVuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lk
IHJlc3VtZSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcAppbmRleCA4NTk0YjcwNGRlZjVmMTVhMTE5Yzg2ZjI0YjMyMzUyM2UzYzQ5ODZmLi42
ZmQ4NDM4MTEyMGM5MDc0ZmM5YWY0ZWVlYmVhNmY5Yzk1MTc3ZjYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEwMCw2ICsxMDAsOSBAQCBJbnRl
cm5hbFNldHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKEZyYW1lKiBmcmFtZSkKICNlbmRpZgogICAg
ICwgbV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcihzZXR0aW5ncygpLT5lZGl0aW5nQmVoYXZpb3JU
eXBlKCkpCiAgICAgLCBtX29yaWdpbmFsRml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRl
eHQoc2V0dGluZ3MoKS0+Zml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoKSkKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICAs
IG1fb3JpZ2luYWxKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCgocGFnZSgpICYmIHBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpKSA/IHBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5w
cm9maWxlckVuYWJsZWQoKSA6IGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTExMyw2ICsxMTYs
MTAgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpyZXN0b3JlVG8oU2V0dGluZ3MqIHNldHRpbmdz
KQogI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvclR5cGUobV9vcmlnaW5h
bEVkaXRpbmdCZWhhdmlvcik7CiAgICAgc2V0dGluZ3MtPnNldEZpeGVkUG9zaXRpb25DcmVhdGVz
U3RhY2tpbmdDb250ZXh0KG1fb3JpZ2luYWxGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNraW5nQ29u
dGV4dCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKKyAg
ICAgICAgcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFByb2ZpbGVyRW5hYmxlZCht
X29yaWdpbmFsSmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOworI2VuZGlmCiB9CiAKIFNldHRp
bmdzKiBJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncygpIGNvbnN0CkBAIC0zNTIsNCArMzU5LDIw
IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2lu
Z0NvbnRleHQoYm9vbCBjcmVhdGVzLCBFeGNlCiAgICAgc2V0dGluZ3MoKS0+c2V0Rml4ZWRQb3Np
dGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoY3JlYXRlcyk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmICghcGFnZSgp
IHx8ICFwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhZ2UoKS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5zZXRQcm9maWxlckVuYWJsZWQoZW5hYmxlZCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyAgICBVTlVTRURfUEFSQU0oZWMpOworICAgIHJl
dHVybjsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCmluZGV4IDdmZWE3NWRmYjI3YWQ0ZGQ3OTE0YmFiNDNkM2RkZDRkNDAxYWVlMDMuLjRm
YzZkMTY0MzFlOWIwMzNmZTJkYWNlYzEzNWRmZTJmYzMzM2I4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcmVzdG9yZVRvKFNldHRpbmdzKik7CiAKKyAgICB2b2lkIHNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworCiBwcml2YXRl
OgogICAgIEludGVybmFsU2V0dGluZ3MoRnJhbWUqKTsKIApAQCAtOTUsNiArOTcsOSBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgRWRpdGluZ0JlaGF2aW9yVHlwZSBtX29yaWdpbmFsRWRpdGluZ0Jl
aGF2aW9yOwogICAgIGJvb2wgbV9vcmlnaW5hbEZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdD
b250ZXh0OworI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQorICAgIGJvb2wgbV9vcmlnaW5hbEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkOworI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCA3YjMwMTc5YmRiZDNmYTIwYjEwNDRiN2IxMGI3
Mjk3MzljZDdkMWI0Li44NGU4NDY4MGJhYTQwNWFmZGM5MzNkZjhmMjcxYjg0YTMyNGRmNTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTU1LDYg
KzU1LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0TWVkaWFQbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoaW4gRE9NU3RyaW5nIGJlaGF2aW9y
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRGaXhlZFBvc2l0aW9uQ3Jl
YXRlc1N0YWNraW5nQ29udGV4dChpbiBib29sZWFuIGNyZWF0ZXMpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGluIGJvb2xl
YW4gY3JlYXRlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDBhNjZk
YjM2MjM1NGExNWM3MGRjZDU5MTAwYTk1ZThiYzRhYTAwOTIuLjlmMWQ1M2YxYmY4YmIyYzEyNTY1
ZmU5ZTY5Nzk0OTQyMGU0OGE5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkRldlRvb2xzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJEZXZUb29sc0FnZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHVibGljOgogCiAgICAg
Ly8gRXhwb3NlZCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdmlydHVhbCB2b2lkIGV2
YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJv
b2wpID0gMDsKIAogICAgIGNsYXNzIE1lc3NhZ2VEZXNjcmlwdG9yIHsKICAgICBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5j
cHAKaW5kZXggZDM5ZmY4YWY5N2IxMjRkODRkNDNmZjJhZjUwYjcwNDJjNzBmYzhhYi4uNmY3MmYx
M2ZkMjljZTQyZjIyNDMyNGIzZTU5ZTc2ZTg1MTg3Y2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTYwLDE1ICs1
NjAsNiBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KGxvbmcgY2FsbElkLCBjb25zdCBXZWJTdHJpbmcmCiAgICAgaWMtPmV2YWx1YXRlRm9yVGVzdElu
RnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwogfQogCi12b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBs
OjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgSW5z
cGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaWYgKGVu
YWJsZWQpCi0gICAgICAgIGljLT5lbmFibGVQcm9maWxlcigpOwotICAgIGVsc2UKLSAgICAgICAg
aWMtPmRpc2FibGVQcm9maWxlcigpOwotfQotCiBXZWJTdHJpbmcgV2ViRGV2VG9vbHNBZ2VudDo6
aW5zcGVjdG9yUHJvdG9jb2xWZXJzaW9uKCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6aW5zcGVj
dG9yUHJvdG9jb2xWZXJzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuaAppbmRleCAxYzhlMDI1ZThlNDBmNmNhNDk3MTJlOWMzNGI5
ZmE2YTkxZjAwYzI5Li5lZGJlZTE0NzFjZWRmODUwMWVjNzIxMTI3NWJjZWE4MDY2MjU2NGQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmgKQEAgLTg0LDcgKzg0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9u
SW5zcGVjdG9yQmFja2VuZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwg
dm9pZCBpbnNwZWN0RWxlbWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVh
bCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmlu
ZyYgc2NyaXB0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFByb2Nlc3NJZChsb25nKTsKIAogICAgIC8v
IEluc3BlY3RvckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3Bw
CmluZGV4IGYzNzJhZGUzZjE1ODg0MmZlZGFhM2RkOWVkYThjNGE1M2E1MGI5N2MuLmYxMGRhNGQx
NDQzOWRmMTg2YjI5ZDc2MGQ4NDZkMzA5Y2EwMWJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmNwcApAQCAtNDI4LDI0ICs0MjgsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZQogICAgICAg
ICBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7
CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewot
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7
Ci0gICAgaWYgKCFjb3JlUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlciogY29udHJvbGxlciA9IGNvcmVQYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCk7Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
ZW5hYmxlZCkKLSAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNl
Ci0gICAgICAgIGNvbnRyb2xsZXItPmRpc2FibGVQcm9maWxlcigpOwotI2VuZGlmCi19Ci0KIGJv
b2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKQogewogICAgIFdlYkNvcmU6OlBhZ2Uq
IHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmgKaW5kZXggMjM3OWYyMDEzOGIzNGNkZjA4MjVkMzNlMmY3YTgwN2EyMzQ0MzhkNS4uYjBmOTU4
ZjY4ZjAyNGJkOTEzZjUxZWUwNjk3MzJkOGYwYzQ4NDQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmgKQEAgLTc3LDcgKzc3LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGZpbmRTdHJpbmco
Y29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6
RmluZE9wdGlvbnMpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNl
dENTU0dyaWRMYXlvdXRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVu
YWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lk
IHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBl
bmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCmluZGV4IDY5MjA3OWY2ODcx
YmM5NDM1MTc2NmEzMmUwYzg2YTViMmM4YjU3MDAuLjE2NGU0NjM2N2I2OTllNDNiYmRkMGRiYWZh
YWQ5OTJiM2UzMmQ1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJpbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJpbnNwZWN0b3IuY3BwCkBAIC0zNTMsMTEgKzM1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQs
IGNvCiAgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfUFJPRklMSU5HX0VOQUJMRUQ6IHsKICNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAgICAgYm9vbCBlbmFibGVkID0gZ192YWx1
ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAg
ICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIo
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29udHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVy
KCk7CisgICAgICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmls
ZXJFbmFibGVkKGVuYWJsZWQpOwogI2Vsc2UKICAgICAgICAgZ19tZXNzYWdlKCJQUk9QX0pBVkFT
Q1JJUFRfUFJPRklMSU5HX0VOQUJMRUQgaXMgbm90IHdvcmsgYmVjYXVzZSBvZiB0aGUgamF2YXNj
cmlwdCBkZWJ1Z2dlciBpcyBkaXNhYmxlZFxuIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1tCmluZGV4IDY3YTczNTQyZDgzZDMxNTAy
MDM0MDA1YjZiODYyOWEwNmMyYjVmZGYuLjA4ZjRiZmFkMmUzMWExYzJhYzRjOTMyOGUzMTg2Njdj
NGY5YjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJ
bnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3Bl
Y3Rvci5tbQpAQCAtMTQ5LDEwICsxNDksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChlbmFibGVkKQotICAgICAg
ICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxz
ZQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2FibGVQcm9maWxlcigp
OworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVu
YWJsZWQpOwogfQogCiAtIChCT09MKWlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCmluZGV4IGZmN2QwMDYyN2U4ODQ5YWExOTJiNzI3ZDYxYjhmMmVkNzI3ZDYy
MWEuLmU3MGJmMDA0YTQ5MTI2ZjQ0YmQxNDc1ZGQ0ODJjYTgyNzI1ZGRmZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCkBAIC0zMDEsMjAgKzMwMSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgaXNB
CiAgICAgaW5wdXRFbGVtZW50LT5zZXRBdXRvZmlsbGVkKGlzQXV0b2ZpbGxlZCk7CiB9CiAKLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KFFXZWJGcmFtZSogZnJhbWUsIGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBGcmFtZSogY29yZUZyYW1lID0g
UVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlciog
Y29udHJvbGxlciA9IGNvcmVGcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0g
ICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKGVuYWJsZWQpCi0g
ICAgICAgIGNvbnRyb2xsZXItPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBj
b250cm9sbGVyLT5kaXNhYmxlUHJvZmlsZXIoKTsKLSNlbmRpZgotfQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIFdlYkNvcmU6OkVsZW1lbnQqIHdlYkVs
ZW1lbnQgPSBlbGVtZW50Lm1fZWxlbWVudDsKQEAgLTEyNzQsMTEgKzEyNjAsNiBAQCB2b2lkIFFX
RUJLSVRfRVhQT1JUIHF0X2RydF9ydW4oYm9vbCBiKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0OjpzZXREdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKGIpOwogfQogCi12b2lkIFFXRUJLSVRf
RVhQT1JUIHF0X2RydF9zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChRV2ViRnJhbWUqIGZy
YW1lLCBib29sIGVuYWJsZWQpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGZyYW1lLCBlbmFibGVkKTsKLX0KLQogdm9pZCBRV0VC
S0lUX0VYUE9SVCBxdF9kcnRfd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBRU3RyaW5n
JiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0
IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cykKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d2hpdGVMaXN0QWNjZXNzRnJvbU9y
aWdpbihzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDJjOTZm
YjNhMmVlNTA4MjMyNDU1MWM1ZWFhNmViMDhmYjVmZjA4MDIuLjQxODAwZmFiZDc3YjQ4NjdjMDMw
NTYxNmQ2MGJjNGRlNmE2ZDQwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTEyNSw3ICsxMjUs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2FyYmFnZUNvbGxlY3RvckNvbGxlY3QoKTsK
ICAgICBzdGF0aWMgdm9pZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFk
KGJvb2wgd2FpdFVudGlsRG9uZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0QXV0b2ZpbGxlZChjb25z
dCBRV2ViRWxlbWVudCYsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoUVdlYkZyYW1lKiwgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3RyaW5n
JiB2YWx1ZSk7CiAgICAgc3RhdGljIGludCBqYXZhU2NyaXB0T2JqZWN0c0NvdW50KCk7CiAgICAg
c3RhdGljIHZvaWQgY2xlYXJTY3JpcHRXb3JsZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3Iu
Y3BwCmluZGV4IDM5Yzc1Mjc3ZGU0NDBhNWU4YzFlNWE4MzM4MGI1YTBjOTg0NzhiNmEuLjhiZmE3
ZTUzYTA0NzkwMjQ0ZWE2MjgwM2E3MjVlNDE3NDZjNTA3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSW5z
cGVjdG9yLmNwcApAQCAtMjMyLDEwICsyMzIsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibAog
ICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIFNfT0s7CiAKLSAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5lbmFibGVQcm9maWxlcigpOwot
ICAgIGVsc2UKLSAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJv
ZmlsZXIoKTsKKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFByb2ZpbGVyRW5h
YmxlZChlbmFibGVkKTsKIAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSW5zcGVjdG9yLmNwcAppbmRleCBhNjk5ZWFiYWFkMzQzYTBiN2VkNGNiYjVlMDMxZTA5
NTYxYTUwOTY1Li5hZTY5YTUzOTQzMDM0ODA4NTViMjliNGI1OTVkMTU2YjAyYTFmNDkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmNwcApAQCAtNTUsMTEgKzU1LDYgQEAg
dm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3Bl
Y3RvclJlZiBpbnNwZWN0b3JSZWYsIGwKICAgICByZXR1cm4gdG9JbXBsKGluc3BlY3RvclJlZikt
PmV2YWx1YXRlU2NyaXB0Rm9yVGVzdChjYWxsSUQsIHRvSW1wbChzY3JpcHQpLT5zdHJpbmcoKSk7
CiB9CiAKLXZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKLXsKLSAg
ICB0b0ltcGwoaW5zcGVjdG9yUmVmKS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5h
YmxlZCk7Ci19Ci0KIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRQYWdlUHJvZmlsaW5nRW5hYmxl
ZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAg
ICBpZiAoZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAppbmRleCA1
OTNkOTBhYTVlODQ1MjZjNWU5MTRiZDA1OWEzYzE4MWJkYWVmNWQxLi5lMzJmZGYyNWVkNDhmNzc5
MDYxZTkwYmNlNTc3NzBjNTZjMTY2YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3Bl
Y3Rvci5oCkBAIC00NCw3ICs0NCw2IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9y
U2hvdyhXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwogV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVJbnNwZWN0b3JDbG9zZShXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwogCiBX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1
bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIGxvbmcgY2FsbElELCBXS1N0cmluZ1JlZiBzY3Jp
cHQpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIGJvb2wgZW5hYmxlZCk7
CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdFbmFibGVk
KFdLQnVuZGxlSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIAogI2lmZGVm
IF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuY3BwCmluZGV4IDg3NTczZjllYTBhZjc1YjA5ZmMxMDE0Y2NjMDA3NDk1NGM3
YzgzNGEuLjY4ZDNiMGM0MTI5ZmZjNjk5YmM3ZDM1NjA3NjkyMjg5MTkyY2I2MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBA
IC0xOTUsMTAgKzE5NSw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0
b3JDb250cm9sbGVyKCktPnNob3coKTsKICAgICBpZiAoIW1fZnJvbnRlbmRDbGllbnQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgbV9wYWdlLT5jb3JlUGFnZSgp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAg
ICAgICBtX3BhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzYWJsZVBy
b2ZpbGVyKCk7ICAgICAgICAKKworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5zZXRQcm9maWxlckVuYWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmCmluZGV4IGRjN2I0Y2I2ZDgzMzVhOTJkNGQzY2U2MjY5YmVjNDBjMTMy
NWI0YWMuLjU4OGI0YjU3ZjM5ODllYjBlODNkNWFiZWQwNmY3Mzk5OTFjZWMzYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKQEAgLTI1NSwzICsyNTUsNSBAQCBFWFBPUlRTCiAgICAgICAgID9pc1Bh
Z2VCb3hWaXNpYmxlQERvY3VtZW50QFdlYkNvcmVAQFFBRV9OSEBaCiAgICAgICAgID9zdXNwZW5k
QW5pbWF0aW9uc0BBbmltYXRpb25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/
cmVzdW1lQW5pbWF0aW9uc0BBbmltYXRpb25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgorICAg
ICAgICA/cHJvZmlsZXJFbmFibGVkQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFX05Y
WgorICAgICAgICA/c2V0UHJvZmlsZXJFbmFibGVkQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29y
ZUBAUUFFWF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIg
Yi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDk2YzBmN2Y0MTkzM2Q5NDc2
YTFjODk5N2ExYzFlYjg0NDU5OTRlMjguLjA2NGI3ZDhhODBkZmFhYTExOGMzZTRlNTc3ZDI5NWQ4
YWRkYzMwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysr
IGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTA5LDYgKzEwOSw4IEBAIF9a
Tks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXY7CiBfWk43V2ViQ29yZThE
b2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpOwogX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRy
b2xsZXIxN3N1c3BlbmRBbmltYXRpb25zRXY7CiBfWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJv
bGxlcjE2cmVzdW1lQW5pbWF0aW9uc0V2OworX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xs
ZXIxOHNldFByb2ZpbGVyRW5hYmxlZEViOworX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xs
ZXIxNXByb2ZpbGVyRW5hYmxlZEV2OwogX1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MTJnZXRIaWdobGlnaHRFUE5TXzlIaWdobGlnaHRFOwogX1pON1dlYkNvcmUyNEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjI2aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2VFUE5TXzRQYWdlRTsKIF9a
TjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24xN3NfZnJvbnRlbmRDb3VudGVyRTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODBj
OWJjOTkyMTM0OGNhOGYxNDBhYmMzMDVmNDZjNzVhZjIwNjFhLi5lMTRkNzU4YjQ5ZDc4ZGQxYmIz
MzJiYjQ4NTE0NjE2NzQ1ODAxNjQ3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdl
YktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmVkIHVubmVlZGVkIHNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkIGZ1bmN0aW9uIGZyb20gRFJUIGFmdGVyIGl0cworICAgICAgICBtb3ZlIHRvIHdpbmRv
d3MuaW50ZXJuYWxzLnNldHRpbmdzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHA6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oOgorICAg
ICAgICAoRFJURGV2VG9vbHNBZ2VudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lz
dGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250
cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENv
bnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVz
dGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKwogMjAxMi0wNS0yNSAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICB3ZWJraXRweTogY2hhbmdlIHNjbS5h
ZGQoKSwgc2NtLmRlbGV0ZSgpIHRvIGFjY2VwdCBtdWx0aXBsZSBwYXRocwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGY5MWM4NzRkNDAyM2Vh
Y2MzMWI3MzE4NjcyNWNkNGUwZjZmYzNkMzAuLmUwNmUzMGJjOTRlZTZhOGRlMDIzMjMzZTI2YzE5
NDE4YmFiMjllNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTEzODgsMTcgKzEzODgsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRJY29u
RGF0YWJhc2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0Ugog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpT
VmFsdWVSZWYgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBMYXlvdXRUZXN0
Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVy
Kj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3Vt
ZW50c1swXSkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwot
fQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgaW1wbGVt
ZW50YXRpb24KQEAgLTIzNzcsNyArMjM2Niw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRHZW9sb2NhdGlv
blBlcm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxl
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dEljb25EYXRhYmFzZUVuYWJsZWQiLCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKLSAgICAgICAgeyAic2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCBzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEF1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkIiwgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVu
YWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNYWluRnJhbWVJc0ZpcnN0UmVz
cG9uZGVyIiwgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlckNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldE1pbmltdW1UaW1lckludGVydmFsIiwgc2V0TWluaW11bVRpbWVySW50ZXJ2
YWxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmgKaW5kZXggMmI5ZjVmZTI0OWQ4ZTBmM2YzN2UwZTA5OTI4NzZmZWE5ZGU4YjE1MS4u
OWJlNTg2MjkxNTU0Y2I1MWM3NWEwY2Y4NmY3OGFkMDkwYzhmMmJkYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xMDAsNyArMTAwLDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShi
b29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2NoZW1lKTsKICAgICB2b2lkIHNldERlZmVyc0xv
YWRpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRh
dGFiYXNlRW5hYmxlZCk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChi
b29sIHByb2ZpbGluZ0VuYWJsZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChib29sIGZsYWcpOwogICAgIHZvaWQgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVu
YWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIo
Ym9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
TGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAppbmRleCBhZWU0
ZTZmMjAwNDAwYjEyYWNhMzVhNTNiYTJjY2Y0NWZlMzk0ZDA5Li42NDA2N2QzODMyYzcyODk3Mzc1
NjZkODc5ZmZiMjNiOWNiODcxOGMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnku
Y3BwCkBAIC0yMzQsMTIgKzIzNCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldElj
b25EYXRhYmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAgICBVTlVTRURfUEFS
QU0ocHJvZmlsaW5nRW5hYmxlZCk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGZs
YWcpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcAppbmRleCAyMWFlZDFiOWQyMDk0ZTVi
ODU5MzMyOTIzZDE0ZGU2NzUyYjNhMWViLi5iNjY1OWE0N2ZjODAzYWVhYWNiNzEyZTNmYmUzMTM5
OTY5NjRjN2QzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRE
ZXZUb29sc0FnZW50LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRE
ZXZUb29sc0FnZW50LmNwcApAQCAtMTEyLDE1ICsxMTIsNiBAQCB2b2lkIERSVERldlRvb2xzQWdl
bnQ6OmRldGFjaCgpCiAgICAgbV9kcnREZXZUb29sc0NsaWVudCA9IDA7CiB9CiAKLWJvb2wgRFJU
RGV2VG9vbHNBZ2VudDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50ID0gd2ViRGV2VG9vbHNBZ2VudCgpOwot
ICAgIGlmICghYWdlbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBhZ2VudC0+c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IGJvb2wgRFJURGV2VG9vbHNBZ2VudDo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJ
RCwgY29uc3Qgc3RkOjpzdHJpbmcmIHNjcmlwdCkKIHsKICAgICBXZWJEZXZUb29sc0FnZW50KiBh
Z2VudCA9IHdlYkRldlRvb2xzQWdlbnQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAppbmRleCA2ZTQ5MWFkNTM2MzU2NWVjN2JmNzk4M2Mx
YmY1YTExYTVlNDgyYzk1Li5mMzU2NGJkNzhlY2Q4MWM4YjQ3YWQ4MWFjOTA5NGJlN2YyZTc2Y2Fh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0Fn
ZW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2Vu
dC5oCkBAIC02OSw3ICs2OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaCgpOwogCiAgICAg
Ym9vbCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBjb25zdCBzdGQ6OnN0cmlu
ZyYgc2NyaXB0KTsKLSAgICBib29sIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wp
OwogICAgIFRhc2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzhjMmFkNjUyMjAyZGQxN2QwZWVlOTNhZWFkZmZlOGMy
YmJhZTlkOC4uYzczOTE0M2UwNjA1MTFmZTEzN2E4YWE5NGY2Y2JlMmYzZTNlN2IyNSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcApAQCAtMTk2LDcgKzE5Niw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldEdlb2xv
Y2F0aW9uUGVybWlzc2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKTsKLSAgICBiaW5kTWV0aG9kKCJz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldE1pbmltdW1U
aW1lckludGVydmFsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNaW5pbXVtVGltZXJJbnRl
cnZhbCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9uIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOwogICAgIGJpbmRNZXRo
b2QoInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrR2VvbG9jYXRpb25FcnJvcik7CkBAIC0xODMxLDE0ICsxODMwLDYgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6bG9nRXJyb3JUb0NvbnNvbGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRleHQp
CiAgICAgICAgIFdlYlN0cmluZygpLCAwKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsK
LSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEgfHwgIWFyZ3VtZW50c1swXS5pc0Jvb2woKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPmRydERldlRvb2xzQWdlbnQoKS0+c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKLX0KLQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJl
c3VsdC0+c2V0TnVsbCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMDcwM2VmMDEwZDY1NWVlNzc4MTE4NWNjMmNk
MWQyNzUwNmM5NWNkNC4uMzc5Nzg2NTdlM2IxZmYzN2I5ZDQzOGE1NDU2OGI0MmNjODQ0ZWRhMiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCkBAIC0zNDksOSArMzQ5LDYgQEAgcHVibGljOgogICAgIC8vIEdldHMgdGhlIG51
bWJlciBvZiBnZW9sb2NhdGlvbiBwZXJtaXNzaW9ucyByZXF1ZXN0cyBwZW5kaW5nLgogICAgIHZv
aWQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gQWxsb3dzIGxheW91dCB0ZXN0
cyB0byBzdGFydCBKYXZhU2NyaXB0IHByb2ZpbGluZy4KLSAgICB2b2lkIHNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQog
ICAgIC8vIEFsbG93cyBsYXlvdXQgdGVzdHMgdG8gZXhlYyBzY3JpcHRzIGF0IFdlYkluc3BlY3Rv
ciBzaWRlLgogICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDJhMzlhNjkzYTBiYjgwYWM2NzY1MTEwMzkz
OTRkMGY4ZWZmOTYyODQuLjdhYzJlY2UwNjlkYTQzNDg5YTk4ZWU1YzIyNmJmMGI0ZTEyMGI4MzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcApAQCAtMjY1LDcgKzI2NSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0
RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0
RGVmZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7
CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5n
SW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCgwKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxl
ckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJF
ZmwuY3BwCmluZGV4IDkyMTIzZTg4MWNkOTAyNDVmNTM4MGQ3ZTUzMjc4ZGQ1MjU3ZTE5ZDkuLjAw
YWM1M2I5NDQwMmUwMjNjMjUxMjFiM2I4M2QzZTY3ODdhZDhmZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcApAQCAtNDQ5
LDE0ICs0NDksNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VF
bmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2Vf
cGF0aF9zZXQoZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQp
Ci17Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
ZW5hYmxlZCk7Ci0KLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGVuYWJsZWQpOwotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGJvb2wgZmxhZykKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cAppbmRleCA0NWM4MGU4MWZmMmY2NTM3MzU2MGEzMjg1YjViNzBlYzUyM2FlYjVhLi4wNjI4N2Mz
ZTE3ZmRiMGM4YTMyNjkyMTIyODI2NDdkZWU3Y2IzMDdmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTU0MCwxNyAr
NTQwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgICAgIHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKGRh
dGFiYXNlLCAwKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFdlYktpdFdlYlZpZXcqIHZpZXcg
PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIEFTU0VSVCh2
aWV3KTsKLQotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZmxhZyk7Ci0KLSAgICBXZWJL
aXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciA9IHdlYmtpdF93ZWJfdmlld19nZXRfaW5zcGVjdG9y
KHZpZXcpOwotICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChpbnNwZWN0b3IpLCAiamF2YXNjcmlw
dC1wcm9maWxpbmctZW5hYmxlZCIsIGZsYWcsIE5VTEwpOwotfQotCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykK
IHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggYzFmNDRhNDczNDhjN2IwMGUzODllYzA1YjFiNmE2NDlhY2QzZGZiNS4uYjI1
YWM1ZDZmYTFjYjg0ZWNlOTQ1YmI1NjQyYTNlY2I0Y2EzOThmMyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI2NCw3ICsxMjY0LDYgQEAgc3RhdGlj
IHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICB9
CiAKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6
WUVTXTsKLSAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gaW5zcGVjdG9yXSBzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZDpOT107CiAKICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9j
dXNSaW5nQ29sb3I6WUVTXTsKICAgICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29u
dHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQppbmRleCA1YjJlMDYwYzZiNDFhOWI3NmIyM2EyMDliYjE0YTU3NDdlZDU0MzQ3
Li5hNDlkYTNhOGMzMWYzODExODU5YWQyMDk4Mjc2YzhjZDUzNjg4MDIzIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC01
NjEsMTIgKzU2MSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFz
ZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogICAgIFtzaGFyZWRXZWJJY29uRGF0
YWJhc2Ugc2V0RW5hYmxlZDppY29uRGF0YWJhc2VFbmFibGVkXTsKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBwcm9maWxp
bmdFbmFibGVkKQotewotICAgIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQocHJvZmlsaW5nRW5h
YmxlZCk7Ci0gICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIGluc3BlY3Rvcl0gc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQ6cHJvZmlsaW5nRW5hYmxlZF07Ci19Ci0KIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoYm9vbCBmbGFnKQogewog
ICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBkb2N1bWVu
dFZpZXddOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcAppbmRleCBjMTY4M2YxMGUxODI3ZDU2YmUxYzQ1ZjM0NGUyNDAxMjMwM2YzN2Iw
Li45YmJmNDM5YmMyMWVmNDJlMTM5MWI1YjU2MDc0N2FkZTRmYjdkYWY4IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNDc3
LDEyICs0NzcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvZmlsbGVkKGNv
bnN0IFFXZWJFbGVtZW50JiBlbGVtZW50LCBib29sIGlzQXV0bwogICAgIHJldHVybiBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0b2ZpbGxlZChlbGVtZW50LCBpc0F1dG9maWxsZWQpOwog
fQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJs
ZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKG1fdG9wTG9hZGluZ0ZyYW1lLCBlbmFibGUpOwotfQotCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRW
YWx1ZUZvclVzZXIoZWxlbWVudCwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDU1MTE2NzY3MmM4NDY1OGVjYTU0NzA3
MjUxMDQ0NmFjMWFhOGNhMjkuLmVmNjhiMzZlOWMzNDEyODU5ZDE5NGU3NTUyNzY0ZjllYzkwYWQ5
YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmgKQEAgLTE1OSw3ICsxNTksNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBzZXRBbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0QXBwQ2Fj
aGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwogICAgIHZvaWQgc2V0QXV0
b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYsIGJvb2wgZW5hYmxlKTsKLSAgICB2b2lkIHNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFZhbHVl
Rm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICB2
b2lkIHNldEZpeGVkQ29udGVudHNTaXplKGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAgdm9p
ZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDRlZDhlMGRjNjc1NjhjZGY3MzAy
MTUzYTM5NDMwYTljMWRjYjE2OTcuLjkyYWI4NjMyY2Y0YTBiZWEwNGYyMjAzNzA5MmRmMGZlYTRk
ZTgzNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApA
QCAtOTA1LDEwICs5MDUsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRT
dGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIGlmIChTVUNDRUVERUQod2ViVmlld1ByaXZhdGUtPmRl
ZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgmbWluaW11bUludGVydmFsKSkpCiAgICAgICAgIHdl
YlZpZXdQcml2YXRlLT5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbChtaW5pbXVtSW50ZXJ2YWwpOwog
Ci0gICAgQ09NUHRyPElXZWJJbnNwZWN0b3I+IGluc3BlY3RvcjsKLSAgICBpZiAoU1VDQ0VFREVE
KHdlYlZpZXdQcml2YXRlLT5pbnNwZWN0b3IoJmluc3BlY3RvcikpKQotICAgICAgICBpbnNwZWN0
b3ItPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKEZBTFNFKTsKLQogICAgIEhXTkQgdmll
d1dpbmRvdzsKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXdQcml2YXRlLT52aWV3V2luZG93KHJl
aW50ZXJwcmV0X2Nhc3Q8T0xFX0hBTkRMRSo+KCZ2aWV3V2luZG93KSkpICYmIHZpZXdXaW5kb3cp
CiAgICAgICAgIFNldEZvY3VzKHZpZXdXaW5kb3cpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggYzY3MjNiZGY5MDA0
MGUzNTg4YzA0NmUyYzE1Y2JjZWRlYjI5MDYxNS4uZDNhZGNhYzYzZWIwYzE0MzMxMzM0YmZiZjVk
ZTBmYjUzNGMyMzQ3MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5
b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC04NDYsMjQgKzg0Niw2IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCiAg
ICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8gVFJVRSA6
IEZBTFNFKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmll
dzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHZpZXdQcml2YXRlOwotICAgIGlm
IChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdQcml2YXRlKSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViSW5zcGVjdG9yPiBpbnNwZWN0b3I7Ci0gICAgaWYg
KEZBSUxFRCh2aWV3UHJpdmF0ZS0+aW5zcGVjdG9yKCZpbnNwZWN0b3IpKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChmbGFnKTsKLSAgICBpbnNwZWN0
b3ItPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGZsYWcpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZmxhZykKIHsKICAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IDI1MGZhNWM5NTBkYWNlNzQ5ZjkxOTM2Nzc0OTZkYzA5ZjE0MDVhZmYu
LjkxZWQ4OThlYzgxZWU0ZmVmMmM2ODVjYTJiOWY3NzRhYjllNTBjYzQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC00NzgsMTMgKzQ3OCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSUQsIEpTU3RyaW5nUmVmIHNj
cmlwCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewot
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZVBhZ2VHZXRJbnNwZWN0b3IoSW5qZWN0ZWRCdW5kbGU6
OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKSwgZW5hYmxlZCk7Ci0jZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKLX0KLQogdHlwZWRlZiBXVEY6Okhhc2hNYXA8dW5zaWduZWQsIFdLUmV0YWluUHRy
PFdLQnVuZGxlU2NyaXB0V29ybGRSZWY+ID4gV29ybGRNYXA7CiBzdGF0aWMgV29ybGRNYXAmIHdv
cmxkTWFwKCkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA4Y2EwOWY2MWFhNWUxYWIy
ZGQzNjFkYzcyMWIxYjExMzcwMDdkNDE2Li5kMWIzODVkOWI0ZDA5Y2FmN2JkMzkyMTMyMWU5ZmVj
OTMxMTYyM2QyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xNzQsNyArMTc0LDYgQEAg
cHVibGljOgogICAgIHZvaWQgc2hvd1dlYkluc3BlY3RvcigpOwogICAgIHZvaWQgY2xvc2VXZWJJ
bnNwZWN0b3IoKTsKICAgICB2b2lkIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQs
IEpTU3RyaW5nUmVmIHNjcmlwdCk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sKTsKIAogICAgIHZvaWQgc2V0UE9TSVhMb2NhbGUoSlNTdHJpbmdSZWYpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjM2MjIzYzEyODAxODQ5NGMxZDllNGI0YzA3YjUwMjNhMmY5NjRiYy4uN2YxZWRkNDNh
ZWRiZDQ3MDYyNjM4YzE5ZmY4MWFiMzM2NTQwOWFmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisy
MDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0cyB0byB1
c2Ugd2luZG93cy5pbnRlcm5hbHMgaW5zdGVhZCBvZiBsYXlvdXRUZXN0Q29udHJvbGxlci4KKwor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZm
ZXJlbnQtY29udGV4dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sOgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sOgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9u
Lmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1h
bm90aGVyLXNjb3BlLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRp
cGxlLXByb2ZpbGVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWw6CisgICAgICAgICog
ZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1
dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sOgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1j
YWxscy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVu
dC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24u
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sOgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0
bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmls
ZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0
bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWw6
CisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlv
bi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sOgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWw6CisgICAgICAgICog
ZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sOgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1z
YW1lLWZ1bmN0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9u
dC1zdG9wLXByb2ZpbGluZy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC1wcm9m
aWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3Rv
cC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Rocm93
LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9y
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6CisKIDIwMTItMDUtMjUgIEpl
c3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgVGltaW5nIGlz
IG5vdCBlbmFibGVkIG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbAppbmRleCAzYTg2NjI4MjEwZDU3NWI4
ODYyM2YyNjI4ZjZmMTI4Y2UxNzM5MmNmLi5mMWQzMjVjZWZhOWMyN2RjOTNiMjc5MWJjMGQzODhi
M2JhMWNjMDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1ldmVudC1oYW5kbGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZm
ZXJlbnQtY29udGV4dHMuaHRtbAppbmRleCA3OWYxMTA4NWMxMTg0MTFiMDVhYTFiMWMyYTI5ZWQ1
OGFjMGYyOGNhLi5jNGRlYjhkYThhZDU1MGExNzQwMmJkNmU4ZmRlMmU4NjI0OWQyNTFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxs
ZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMu
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxz
LWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKaW5kZXggODQ4YzAw
MWM4MzE0NmU1ZjhiMmFiMzQ0M2M1NGI1ZjczNmRhNzk0Zi4uZTY0OTVlZjQwYzczMWI2ZWNjNWEz
YzYxYjY5YjQ1MmJiN2I4NTkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQt
aW4tZnVuY3Rpb25zLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKaW5kZXggOWNiNWM0YjZiOTk3MjA0ZTdiNzJj
NzQwMzg4NzJhNjJjYzM5ZDhhOS4uMDM0ODFmMjI3M2I2YWQ3M2NjYTYxYTA1ZThiZWQ5YzJiNzkw
YTI0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbHMtZXZhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbAppbmRleCAzYzQyOTY2MDU4NDVmYTkxMWI3ZTY0YmE1NmU0MzhjNWU4NGE5ODVlLi5kYmZi
NmU0NGE0NzA2NmRkMWYyNzM2ZDJjNmI0ZjJkNDY4MTk1ZDI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25z
LXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBh
bm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hcHBseS5odG1sCmluZGV4IGZkMDNhODQzNjg1Mzk3ZGIyZjFjNTAwY2VlY2M3ZDcwNGEw
NWFmZjUuLmMwYmMzOWM0NWQyOGQwNmY3NDNmM2E0MDViZTMwYjJjMDNhZGNlYTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbAppbmRleCBmYjI2
MTE5YzAyYmQwNzcxYzMwMWQ0MzJmMDEzYzY0YjVmYjI0YzEzLi41ZDdmMWE1N2ZmODNjNzg0ODk1
ZGZiNGM5YTQ4MDIzMWE4ZDBkZDBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwK
QEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXIt
ZGVmaW5lZC1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1p
bi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAppbmRleCA2MDBhYmIz
NDY2MDcxOGMyY2Q0MWM0NDgzMDIzNmNmNDBiYWYxNjJjLi5hZTEzNGYyZGU5MDk4YTljNTBhYTcx
MjYzZGMwMjk2MTMwMzMxNDZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1k
ZWZpbmVkLWZ1bmN0aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVn
aXN0ZXItbGVhay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVy
LWxlYWsuaHRtbAppbmRleCA1OWJjNmUzYzYyOWZlMDE4ZjQyNTJjZGMxMWNmMmYyYThlNjQ0Nzhk
Li43N2JiZDRhMzI3YWU1Y2E4MjU4N2QzZDE5OTA3M2ZlOTVjMzZmODc5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKQEAgLTEsMTAg
KzEsMTAgQEAKIDxib2R5PgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIGxvZyhzKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwu
aHRtbAppbmRleCAxODYxMjJlYmU3ZTU3MzQyNDI2ZjIxYjY2YjhjZjVkNTFjZDNlZTQ4Li4wMGFi
NTdkMDc3NTRkNjc0OTViZTQyMDIxOTQ3NWE5NzU1MjQ3MTZmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2NhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVu
Y3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFy
dGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbAppbmRleCBlYWJhYjZlYTNl
OGNiMjJlMDhjOTg2ZDIxZjA3MTVmMzk5YTRkZmZiLi4zM2RhMGVhMGQ3NTYyZGNlNGQyNGY0ZGNh
ZTlkODA5YzNjODU0ZDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nh
bGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVy
LXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1m
dW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMu
aHRtbAppbmRleCBjOGM0ODEyZjRiY2UzZGJlNGJlODFkNTIwM2M2ZTBiYzdlNjkxMWI4Li5jYWMx
NTFjNjk0MTA4NDRlNmIzYmRmMDlhODY3ZTAyMzRhNDM3NDVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIGogPSAwOwogZnVuY3Rpb24gdGVzdChsZW4pIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbAppbmRleCAwZGQzOGJjZmIy
Y2ZmN2Y0YWViOGZlZmRlZmJmOGZlNzUwM2I5ZmFlLi44OTc2NzU2MDhjNjQyNTU4MzNkMmQxMDA3
ZmVlOTVkMGNkZmExZDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nv
bnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rv
ci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKaW5kZXggMjM2NDc5ZDU2MjkxMGJk
MGY4MzJiZTI1N2VlZjQ0OTc2ZTNjMjhlMC4uMDdmYjFlNzNkOWQ4MTQxNTg5MDE4MDE3MWIyMDA4
ZjJlODBmMTc3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRp
bWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCkBA
IC01LDggKzUsOSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiB9CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAK
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CkBAIC0yNywzICsyOCw0IEBAIHRoZSBwcm9maWxlLiAg
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNw
ZW50IGluCiA8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAppbmRl
eCBmM2Q2YjAwMWVhZmYwOTBlYmNlZTdjMTM0ODIxNmJlNjg3MzAwMjEwLi5mMjVkYTA5MjhjMDQw
NDI2Mzg5NDNkMDRkNzBkN2NiMjJmMjk2YmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2V2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQt
aGFuZGxlci5odG1sCmluZGV4IDBlYWRkOTEyNjg0Y2M0OTRjYmI2ODQ1MTY1NTVmODQwNGM3MzQ4
NjYuLmIyYjIwNTVmNzgzYjA0YWNiM2U5YjgzMmMxOWQ5MThhM2QwZTEzOTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogeyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFs
LW9uLXNhbWUtbGluZS5odG1sCmluZGV4IDkyYWEzMmQ4Mzg0NDc2NDI1OThmNWI0NTRmMjA4NTMw
N2U1ODc0NzUuLmI5OGRkNjQyOGM4MTM4YTdiYTU4ZWJmYmQzMzFhZmYwMzhmZThmYTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2
YWwtb24tc2FtZS1saW5lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVj
dXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbApAQCAtMiwxMCArMiwxMCBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbAppbmRleCBiNzY3MTFjOTM3YzExZDU5
ZGY1OGUyYjAwMGViYTc3NzhlNTAxZmFlLi4wYWEzNTU1YTcyNzVkNWQ1MGRmY2M0YzE1ZDY4NmMw
MDZiZWVmMzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1l
dmVudC1oYW5kbGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUt
ZXZlbnQtaGFuZGxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRl
c3QoKQogeyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKaW5kZXggZmE5NTRiYmQxODIwYmY5M2Zm
NDY0MjRmNGE0MDViNjQwOTliNzZlMS4uMDNhZGQ4ZjBlOTk4MGI2ZmRiN2ZmYWNjMTQzZmRkYTgz
OWI2NTAyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxs
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50
LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbAppbmRleCA2MDRkMDNhMDc2M2Mx
MDg2ZTFjOWRiMWNkNGE5Nzg0NDYzZmE4M2M1Li45OWI1OTgzOTkzMzEwYjU4OTc5OTBlNTE4NzE4
ODBmMzA2YmJiMzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFk
PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1
bmN0aW9uLWNhbGxzLmh0bWwKaW5kZXggNGU0NzZkZWU0M2ZmNjk3MjU4NTdiMjFhYzEwYjY4YWRk
ZmNhNDcwZC4uOTEyZjY0NmNjZjk3MDYwODc0NjUwODY5YjJlNzM1NDc0MWMyYzJlOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNj
b3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApAQCAtMiwx
MCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQt
ZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
dWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9u
Lmh0bWwKaW5kZXggYzQzZDczM2FjMTRmZTg1NzU3NGJjNDE2ZjhhNTVkNzdmZjNkNjZiYS4uZjJh
ZjVlMzY5ODlhMTI2ZDc4NGEzOTA4MzRjOGRmNmI2NjVmNmQxYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1m
cm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0
aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbAppbmRleCA0
MzAzNTZmMjQwNmU4NGQxYmEwM2Q0MmFhY2M5YmFkNTkyZDlkMWU5Li4wNDk1ZjM3YmVhOTZjMmE1
Yjk3NTY1NjkyMWEwYTMyZWFjYzU2OTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVk
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCmluZGV4IDA3YzVl
MTBjZWM0Mjk1MjQwN2M3ZGQ1ZThjYzQzYzE0YmQyNDBmNjYuLjI5NGVlNDgyYzYzZDdmNTc1Nzgz
YTA0ZDc0ZGE1MGQ4ODBiNGMzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBmdW5jdGlvbjAoKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0
bWwKaW5kZXggZDExZGNjMjA0NDAzNGJjYjQ3ZmM5M2NiM2Y5ZGI1NzBiNGUzMmFmYy4uNDgwNTkz
N2YzZjhkZTQxZTUyODZkYWRhZDRkZjlhN2EwNGE4ZThiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2Zp
bGVyLmh0bWwKaW5kZXggMzA4ZWFkZWNiYzE5NDY2OGVjZjU4ZGE0YjIzZTk0MjNjMDE1OWEzYS4u
YzQ2ODVmNjE5ZTM3ZTVlMWJmYTU2YTJhNTRhNWQ1NDE4NzFlZmI5NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQog
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29u
dGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4
dC5odG1sCmluZGV4IGVhNjNmYzVkNTI4MDUxZmVmNmFjNmQ2NWRjN2VmZGVkMTc2YTdiYzAuLmU2
YjZiM2RjMjEyZWFlNDQwNTkyMzlkOGEwY2M3Y2I1ZDU3MmVkNGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRleHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKQEAgLTIsMTAg
KzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKaW5kZXggZGVmM2M0YjZkODNh
OTc2NzgzZTIyZTgyZjI0M2JlOTk0OGRjOGJiZS4uODBmMWQ4ZDk3YjZjM2QxMjRmMmRiYTE2NTc0
NWI2NWE0NzNmNjU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9vbmUt
ZXhlY3V0aW9uLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29u
ZS1leGVjdXRpb24tY29udGV4dC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKaW5kZXggMzA1YTYwNTY0YTkz
OWZjYmM5NWZjMWM2OWVlZDVhM2MyZWJlNTA5Zi4uM2ZhODI0OTI0ZDQzMjY3YTFmZDY3ODNlOWJh
MDU4MDk2ODAyZTdhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCkBAIC0yLDEwICsyLDEw
IEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKaW5kZXggYjA0ZDI3YmRiMGZm
ZWFmZTdhNWIzMWMwN2E3ZjMzMzlkMmUxZWFkNC4uM2IyOTQwODYyOWE0ZDg5OWQxNDQ0ZTYxYWM4
MGY2YzlkZDYyM2MwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxlLXdpdGgtbm8tdGl0bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3By
b2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10
aGUtbmVzdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJv
bS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGlu
Zy5odG1sCmluZGV4IDdlMDYzY2U4MjM5YzUwOTA3ZDk4Njc5YmI4ODAxMjY5MGRiMmU2NWMuLjk4
MTljNTg5ZDI3ZTgxMGI2YmU5OTEwYWJkMjllOGYwNThhOTlkODAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0
LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9w
LXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxo
ZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAK
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKaW5k
ZXggZTYyNTFjNzhhYTI5NzMwYjYzNDFlOGJiOGFiYjY1YzQwMjExZmNjYi4uMjJkNjZiNDU3MzNj
MzZkZDM1NTc2ZThiNGQwMWRkZGIyMDliMTc1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24u
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbAppbmRleCA0
MzRmMjAyNjQ3MTQzNTM5N2M5NTI0YjQxNTQ4NmU2M2E0YTQxZjQxLi41YTg1ODhkZDJmYTA5ZWNh
MjEzNTVmNTFjY2E1NjlkMjIzYTY1MmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
aW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Np
bXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAppbmRleCAwOTJhZWRlYjE1YzZmMjk4MWJhNDAzZmNk
YmUzYmY5NzIyMDZmNjAzLi4xM2QwNTM1MzFiY2RjNjM3ZjhlYmU0NDcwYWRiYmFkYjJjZTNjYTcw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1j
aGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZl
bC1jaGFuZ2UuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbAppbmRleCA4NTU5YzFh
OWFkNDk3N2I1Mjg0ZmUxN2JlYmVkZDA0NWQ2YjRhMWMyLi5jZjY2NzczMDQ1ZmZmZGY3MTE4MjFm
NWFhZWFjOTIzM2JjZjI1M2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1l
cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxp
bmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKaW5kZXgg
NWZhYWY3NDc1NjE1ZDI5MzdjOWU3YWNhMDY0Yjc5Y2VmZWIwODE5My4uOGY4MDM1NGJmZTI4ZWM1
Yjk1NDNhZDY2ODRjM2E4ZTdkMWU1ZmQwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGlu
Zy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
dGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCmluZGV4IDJhMjVjZTBiNjk2
YTMxYzdiMDVlODYwNjAxMWE1NjVjYTcyOWExMmUuLjRkZTNiOTM1NTJmZTE4MWJjZmQ0ZjczMmQz
ZTA5NjhmNGRkZTFiY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rh
cnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKQEAgLTIsMTAgKzIsMTAg
QEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
CmluZGV4IDM5YjkzZGI5ZGU0N2QxZDQ4MTMzZWM0ZGRlYjRmYjEwZDVjOWIwNGMuLjZkY2RhZmQ0
YTNlNzI2YWE3MzMzMThkNzQ0MmEyNWJiYmJjYTdiODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91
dC5odG1sCkBAIC01LDggKzUsOSBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiB9CitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwKaW5kZXggNGY5NzAy
OTZkZmZkMTI4ZmRiZDcyMmVmNGM2Y2E2ZTg0ZDU3NjhkMi4uY2VhOWU5ZmJmM2ZjNWJlM2QwNTkx
NTRkZmQwMTg0NTBkNTU4NjFhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAog
dmFyIGogPSAwOwogZnVuY3Rpb24gdGVzdChsZW4pIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwt
ZGlzYWJsZWQKaW5kZXggOGI1N2MwMzY1M2Y2NWRiNjAzYTczNjQ1ODNhM2M4ZGIyNWVhMGE5Yy4u
NWVjYzRkM2UxZTRhOWQ4MzYwMmUzOWFmYjE4N2UxMmI5OTVmOTI1MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlz
YWJsZWQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJv
bS1ldmFsLmh0bWwtZGlzYWJsZWQKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGNvbnNvbGUucHJvZmls
ZSgiVGhyb3cgd2l0aGluIGFuIGV2YWwuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKaW5kZXggYzNlOTFiNTJmMTI2
NTk1ZWVjYmQ5YjkzYjNjZTY0NWY3OWQ2ZGUzZi4uOTY2OGU5MTJhMzVhYzk4MGE2NWI3ZTlhNTFl
MzYwYmM3ODJhYjU5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28t
ZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90
d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Vz
ZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWlu
LWZ1bmN0aW9ucy5odG1sCmluZGV4IGJkYjFkNWQ2YWEyMzUyYjE4ZWI2MTYyNGMxNzYwOWE0ZGJj
YzZhOTQuLmU2ODJiNmZjMzc4MmRiMmE4ZDhlMjA4ZjQzYWFkOWY1Y2ZiNmQzMWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxz
LWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKaW5kZXggN2Q5ODNhYzA1MDkzZTcx
ZDVlYTk4ZTE0ZDZkZDI1Yzk4MDI5ZTVlZC4uYjJhMmI1MWM4N2U2YWFmMzY5ZGEzYWJiMjI5NWE2
M2NjM2E5M2M4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ct
ZG90LWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3Qt
ZXZhbC5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
fQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1w
cm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwKaW5k
ZXggNjVlMWNlMmU3YzA1ZmM0ZDA2ZDk3MjczMDBlZDkyYjI3MTRkM2MzZi4uZjM3NTlkMTRjYTMy
YjA1ZTdlOTcxZTVhZDRmMDA4MWYyOTJhOWE2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3Iu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXBy
b2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4K
IDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBw
YWdlRnVuY3Rpb24oKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCA0N2Y1YmJkYWZm
MGI3YjAzNTkzMmM5ODYyY2M3YmUwMzViYzdjNTg3Li4zMDJiYzlkYTdmMGM1ZDgzMmNhYzhmMzE5
ODMwMjllOWE5NGExODdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtMzUxLDExICsz
NTEsNiBAQCB3ZWJhcmNoaXZlL3Rlc3QtdGFibGUtYmFja2dyb3VuZC5odG1sCiB3ZWJhcmNoaXZl
L3Rlc3QtdGQtYmFja2dyb3VuZC5odG1sCiB3ZWJhcmNoaXZlL3Rlc3QteG1sLXN0eWxlc2hlZXQu
eG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250
cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCi0jIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjg+Ci1mYXN0L3Byb2ZpbGVyCi1pbnNwZWN0b3Iv
cHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1sCi0K
ICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzCiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIzMzE+CiBmYXN0L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggN2M5NmJjMWNkZTAzN2I5NTQy
ZGM5ZTQ2NGQzODM2NDc4ZGNkZmRmNi4uZjAwMzFhNzI5MTY1ZTg2NTQ4YTliODVjNGI5MDM2YTA5
NjBlNzJhMSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5j
aWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1
cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOiBBZGRlZCBuZWVkZWQgc3ltYm9scyBmb3IgR1RLIGJ1
aWxkLgorCiAyMDEyLTA1LTI1ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgY29uZmlndXJlLmFjIGhhcyBkdXBsaWNhdGVkIEFDX01TR19SRVNVTFQoWyRl
bmFibGVfc2FuZGJveF0pIGFuZCBub3RoaW5nIGZvciBzZWFtbGVzcyBpZnJhbWVzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144347</attachid>
            <date>2012-05-28 06:32:00 -0700</date>
            <delta_ts>2012-05-28 12:11:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42328-20120528103118.patch</filename>
            <type>text/plain</type>
            <size>83856</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGViZDUwZDUyNjlmOTll
MmU3ZWQ1ODVjZjBjODllYWRlNzU4ZDZmZS4uODc3MDIwYjNmNjE1NTIxMjgxNDMyOTc3MjQ0ZDc1
NWVhOGUwY2Y4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA1LTI1ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KCkgdG8gd2luZG93LmludGVybmFscy5zZXR0aW5ncy4gTm8gbmV3IHRlc3RzLCBidXQgdGhpcwor
ICAgICAgICBjaGFuZ2Ugd2lsbCBhbGxvdyBtb3JlIHRlc3RzIHRvIHJ1biBpbiBXZWJLaXRUZXN0
UnVubmVyIGFuZCBEUlQgZm9yIHBvcnRzIHRoYXQgd2VyZW4ndAorICAgICAgICBpbXBsZW1lbnRp
bmcgdGhpcyBmdW5jdGlvbiBiZWZvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3Rv
cnMgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlUHJvZmlsZXIoKSBhbmQKKyAgICAgICAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJsZVByb2ZpbGVyKCkgdG8gSW5zcGVjdG9yQ29udHJvbGxl
cjo6c2V0UHJvZmlsZXJFbmFibGVkKGJvb2wpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXJFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNldFByb2ZpbGVyRW5hYmxlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKEluc3BlY3Rv
ckNvbnRyb2xsZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnJlc3RvcmVUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aDoKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGw6CisKIDIwMTItMDUtMjggIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIHZhbHVlIGxvY2FsaXphdGlvbiBmdW5jdGlvbiBv
ZiBIVE1MSW5wdXRFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI4ZDU0MTEy
ZjI2MjQ2MmM1MDVlODIwOWJhZTM1YjcwODE5MjUwNzkuLmYxMGNkODkxZWM0NWI5OThlODIzMDUx
NzU2ODc3YzNmNjQ5ZDM4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3Vw
cG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHBy
aXZhdGUgQVBJcyB0aGF0IHdlcmUgb25seSBiZWluZyB1c2VkIGJ5IERSVC4KKworICAgICAgICAq
IHB1YmxpYy9XZWJEZXZUb29sc0FnZW50Lmg6CisgICAgICAgIChXZWJEZXZUb29sc0FnZW50KToK
KyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9X
ZWJEZXZUb29sc0FnZW50SW1wbC5oOgorICAgICAgICAoV2ViRGV2VG9vbHNBZ2VudEltcGwpOgor
CiAyMDEyLTA1LTI4ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEV4cG9zZSB2YWx1ZSBsb2NhbGl6YXRpb24gZnVuY3Rpb24gb2YgSFRNTElucHV0RWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCmluZGV4IDU5Nzg4NjkxMmM2NDE5MDI3NmFhM2Q1NjQ3ODNjYWQ5YzM4
OTQxNTkuLmNlZjkwMWY2Y2JmOWEwYzcxYWVlZWNhOGFhNzhjNzRhOWUwNGQyZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxl
bmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgV2ViS2l0VGVz
dFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjMyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQg
ZnVuY3Rpb24gZnJvbSBEUlQgYWZ0ZXIgaXRzCisgICAgICAgIG1vdmUgdG8gd2luZG93cy5pbnRl
cm5hbHMuc2V0dGluZ3MuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbC5oOgorCiAyMDEyLTA1LTI1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWls
LnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEFQSSBmb3IgUGFnZUdyb3Vw
IHZpc2l0ZWQgbGlua3MgaGFzaCBwb3B1bGF0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNzE5MzU2
MTNiYTZjNThhYjUwMzFjZTY5YjM0OWUxOWVkM2NkMmVlNy4uNTRmNWI0NTNhMjdiNzBmMzRkN2Jj
Y2IyNjVhZDY1ZDFiMmY5NGExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
aW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0
eSk6CisKIDIwMTItMDUtMjUgIEx1IEd1YW5xdW4gIDxndWFucXVuLmx1QGludGVsLmNvbT4KIAog
ICAgICAgICBbR1RLXSBmaXggY29tcGlsYXRpb24gZm9yIHdlYmtpdHdlYnZpZXcuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggODFkNTc2MWVjY2E3MjcwM2M1MGRjYjRiY2M2MDJkZjdmYzEyZmY4MC4u
ZmQ5ZTIzMDVlMThmMzM3NDkzOTJhNzZkZmRlMjhlNzQ0MjM5ZTBhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVy
IG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0
b3Igc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQ6XSk6CisKIDIwMTItMDUtMjQgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGZlYXR1cmUg
ZGVmaW5lcyBmb3Igd2ViLWZhY2luZyBwYXJ0cyBvZiBDU1MgUmVnaW9ucyBhbmQgRXhjbHVzaW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwppbmRleCBiZjg0OTZiYmJiOWU2NmQyY2I4YWY0YWQ2YjM0MTIxYWNiYTNh
MjU1Li4wMTc4YzlmZjY2NWY2Yjg0MjljNGM4OGNiNTNhNGI0YzNlNTFmNDZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVu
bmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5j
dGlvbiBmcm9tIERSVCBhZnRlciBpdHMKKyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFs
cy5zZXR0aW5ncy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oOgorCiAyMDEyLTA1LTI3ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIFRyaXZpYWwgdW5yZXZpZXdlZCBidWlsZCBmaXggd2l0
aCBuZXdlciBRdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhlNmQzNTIwOTZjYzU2YWM4ODg1YzVlNThj
MjA4ZjYwMTllYzI3YzQuLmYzNDAzZGFiOWE2ZTRhZGE3YzE3NTA0MjVmNDIxM2Y1YzFlODUzYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2Fu
Y2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
V2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjMyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOgorCiAyMDEyLTA1LTI1ICBMeW5u
IE5laXIgIDxseW5uLm5laXJAc2t5cGUubmV0PgogCiAgICAgICAgIEFkZGVkIG1ldGhvZHMgbmVl
ZGVkIHRvIGltcGxlbWVudCBiYWNrZW5kIGZvciBEUlQncyBUZXh0SW5wdXRDb250cm9sbGVyIG9u
IHdpbmRvd3MsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjAyMQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDM4MDE2ZjgwMWZmYjgxNDcxODQwYzg2MWYzNDdkYzgwNTY0ZjU3ZWQuLjBh
YmYxY2FlMWZkNWY5OTZiOTVlMjNjMDczM2U4NzQzZDQ1YWU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0
byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMy
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZWQgdW5uZWVkZWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQgZnVuY3Rpb24gZnJvbSBX
VFIgYWZ0ZXIgaXRzCisgICAgICAgIG1vdmUgdG8gd2luZG93cy5pbnRlcm5hbHMuc2V0dGluZ3Mu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5z
cGVjdG9yLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQpOgorICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKwogMjAxMi0wNS0y
OCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1v
dmUgYWxsb3dSb3VuZGluZ0hhY2tzIHRvIEludGVybmFscyBpbnRlcmZhY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggZGUyMzI1MDIzNDQxYzdhNGU1ZTdhYTBmN2U2ZWQ2YTViYzgwMmUzYy4uOWE5
NzZmMjg1MWQ1M2ZiM2Y1NmUxMGJkNGMwYWVjMzNmZjg1ZTMxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTE3OTcsOCArMTc5Nyw3IEBAIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTlpc0Vu
YWJsZWRFdgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNs
aWVudDMxZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxN0luc3BlY3RvckNvdW50ZXJzMTJjb3VudGVyVmFsdWVFTlMw
XzExQ291bnRlclR5cGVFCi1fX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNGVuYWJs
ZVByb2ZpbGVyRXYKLV9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlzYWJsZVBy
b2ZpbGVyRXYKK19fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4c2V0UHJvZmlsZXJF
bmFibGVkRWIKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1cHJvZmlsZXJFbmFi
bGVkRXYKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250
ZW5kRXYKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjI1ZXZhbHVhdGVGb3JUZXN0
SW5Gcm9udGVuZEVsUktOM1dURjZTdHJpbmdFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOTUxNzMzZjVmMmNlYzk4ODYyMzM3YmIx
MzBjOTkzMmM0NzRhOGFlOC4uN2JjM2ZlNzUwOTAzMDgzMWFjOGVlZTI1ZjdlM2E0ZmM1NDcxMGFh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMzM5LDIxICszMzksMTggQEAgTm9kZSogSW5zcGVjdG9yQ29udHJvbGxlcjo6aGln
aGxpZ2h0ZWROb2RlKCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVQcm9maWxlcigpCitib29sIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnByb2ZpbGVyRW5hYmxlZCgpCiB7Ci0gICAgRXJyb3JTdHJpbmcgZXJy
b3I7Ci0gICAgbV9wcm9maWxlckFnZW50LT5lbmFibGUoJmVycm9yKTsKKyAgICByZXR1cm4gbV9w
cm9maWxlckFnZW50LT5lbmFibGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzYWJsZVByb2ZpbGVyKCkKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0UHJvZmlsZXJF
bmFibGVkKGJvb2wgZW5hYmxlKQogewogICAgIEVycm9yU3RyaW5nIGVycm9yOwotICAgIG1fcHJv
ZmlsZXJBZ2VudC0+ZGlzYWJsZSgmZXJyb3IpOwotfQotCi1ib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnByb2ZpbGVyRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fcHJvZmlsZXJBZ2VudC0+ZW5h
YmxlZCgpOworICAgIGlmIChlbmFibGUpCisgICAgICAgIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxl
KCZlcnJvcik7CisgICAgZWxzZQorICAgICAgICBtX3Byb2ZpbGVyQWdlbnQtPmRpc2FibGUoJmVy
cm9yKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN1bWUoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOThhZWY3Nzc2
NDIxOGM5MWEzM2MxNWY0MjYyZDE2Y2Y1Zjk2NDNiMi4uNDczYmI4ZGUyNmZlYTBhYzcwNDZmNjY0
OTc5YWRmY2Q0ZWNhNWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oCkBAIC0xMDAsOCArMTAwLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgYm9vbCBwcm9maWxlckVuYWJsZWQoKTsKLSAgICB2
b2lkIGVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoKTsKKyAgICB2
b2lkIHNldFByb2ZpbGVyRW5hYmxlZChib29sKTsKIAogICAgIHZvaWQgcmVzdW1lKCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGQ5
OTMzNWI5MTlhMDA0YjczNzEwNzk0MTY4OTdhZWY5ZWJmM2ZhYzUuLjU4Mzk0NmVhODVhOTA3YmM0
NzBjNDg0ZGVmMzU2NDEzNWIwMGFiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcApAQCAtMTAxLDYgKzEwMSw5IEBAIEludGVybmFsU2V0dGluZ3M6Oklu
dGVybmFsU2V0dGluZ3MoRnJhbWUqIGZyYW1lKQogICAgICwgbV9vcmlnaW5hbEVkaXRpbmdCZWhh
dmlvcihzZXR0aW5ncygpLT5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCiAgICAgLCBtX29yaWdpbmFs
Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoc2V0dGluZ3MoKS0+Zml4ZWRQb3Np
dGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQoKSkKICAgICAsIG1fb3JpZ2luYWxTeW5jWEhSSW5E
b2N1bWVudHNFbmFibGVkKHNldHRpbmdzKCktPnN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoKSkK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAg
ICAsIG1fb3JpZ2luYWxKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCgocGFnZSgpICYmIHBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSA/IHBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5wcm9maWxlckVuYWJsZWQoKSA6IGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTExNSw2ICsx
MTgsMTAgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpyZXN0b3JlVG8oU2V0dGluZ3MqIHNldHRp
bmdzKQogICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2luYWxFZGl0
aW5nQmVoYXZpb3IpOwogICAgIHNldHRpbmdzLT5zZXRGaXhlZFBvc2l0aW9uQ3JlYXRlc1N0YWNr
aW5nQ29udGV4dChtX29yaWdpbmFsRml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQp
OwogICAgIHNldHRpbmdzLT5zZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKG1fb3JpZ2luYWxT
eW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpKQorICAgICAgICBwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+
c2V0UHJvZmlsZXJFbmFibGVkKG1fb3JpZ2luYWxKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk7
CisjZW5kaWYKIH0KIAogU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OnNldHRpbmdzKCkgY29u
c3QKQEAgLTM2MCw0ICszNjcsMjAgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTeW5jWEhS
SW5Eb2N1bWVudHNFbmFibGVkKGJvb2wgY3JlYXRlcywgRXhjZXB0aW9uQ29kZSYKICAgICBzZXR0
aW5ncygpLT5zZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGNyZWF0ZXMpOwogfQogCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBp
ZiAoIXBhZ2UoKSB8fCAhcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBw
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7CisgICAgVU5VU0VEX1BBUkFNKGVj
KTsKKyAgICByZXR1cm47CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaAppbmRleCA5MmIxYmRmZWIyMjkzZTczZjUxMDJhNGM1YmUzYTI1ODU5
OGM0ODU3Li4xMTFjMTgwNjliZWFkZGI3ODgzZWEzMDhkZDEyNjAzMWQzYzU4YzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtODEsNiArODEsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHJlc3RvcmVUbyhTZXR0aW5ncyopOwogCisgICAgdm9pZCBzZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
KwogcHJpdmF0ZToKICAgICBJbnRlcm5hbFNldHRpbmdzKEZyYW1lKik7CiAKQEAgLTk3LDYgKzk5
LDkgQEAgcHJpdmF0ZToKICAgICBFZGl0aW5nQmVoYXZpb3JUeXBlIG1fb3JpZ2luYWxFZGl0aW5n
QmVoYXZpb3I7CiAgICAgYm9vbCBtX29yaWdpbmFsRml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2lu
Z0NvbnRleHQ7CiAgICAgYm9vbCBtX29yaWdpbmFsU3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZDsK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAg
ICBib29sIG1fb3JpZ2luYWxKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZDsKKyNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwKaW5kZXggMmVmMzVmMmFiNmFlMGM5NTNkNGQzNjFjNTIxMDQyNjk5ODMz
MmE5Ni4uMzUwMTAxZTExNTYwM2I0NGUzNzI0YzE3NmNkZjhjNTBhM2M1MDEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2ICs1Niw3IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihpbiBET01T
dHJpbmcgYmVoYXZpb3IpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEZp
eGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250ZXh0KGluIGJvb2xlYW4gY3JlYXRlcykgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2
b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGluIGJvb2xlYW4gY3JlYXRlcykgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRGV2VG9vbHNBZ2VudC5oCmluZGV4IDBhNjZkYjM2MjM1NGExNWM3MGRj
ZDU5MTAwYTk1ZThiYzRhYTAwOTIuLjlmMWQ1M2YxYmY4YmIyYzEyNTY1ZmU5ZTY5Nzk0OTQyMGU0
OGE5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRv
b2xzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29s
c0FnZW50LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHVibGljOgogCiAgICAgLy8gRXhwb3NlZCBmb3Ig
TGF5b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpID0gMDsKIAogICAg
IGNsYXNzIE1lc3NhZ2VEZXNjcmlwdG9yIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKaW5kZXggZDM5ZmY4
YWY5N2IxMjRkODRkNDNmZjJhZjUwYjcwNDJjNzBmYzhhYi4uNmY3MmYxM2ZkMjljZTQyZjIyNDMy
NGIzZTU5ZTc2ZTg1MTg3Y2EyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTYwLDE1ICs1NjAsNiBAQCB2b2lkIFdl
YkRldlRvb2xzQWdlbnRJbXBsOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBj
b25zdCBXZWJTdHJpbmcmCiAgICAgaWMtPmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElk
LCBzY3JpcHQpOwogfQogCi12b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxl
ciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAg
IGljLT5lbmFibGVQcm9maWxlcigpOwotICAgIGVsc2UKLSAgICAgICAgaWMtPmRpc2FibGVQcm9m
aWxlcigpOwotfQotCiBXZWJTdHJpbmcgV2ViRGV2VG9vbHNBZ2VudDo6aW5zcGVjdG9yUHJvdG9j
b2xWZXJzaW9uKCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6aW5zcGVjdG9yUHJvdG9jb2xWZXJz
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuaAppbmRleCAxYzhlMDI1ZThlNDBmNmNhNDk3MTJlOWMzNGI5ZmE2YTkxZjAwYzI5Li5l
ZGJlZTE0NzFjZWRmODUwMWVjNzIxMTI3NWJjZWE4MDY2MjU2NGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTg0LDcgKzg0
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2Vu
ZChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0RWxl
bWVudEF0KGNvbnN0IFdlYlBvaW50JiBwb2ludCk7CiAgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIGNvbnN0IFdlYlN0cmluZyYgc2NyaXB0KTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFByb2Nlc3NJZChsb25nKTsKIAogICAgIC8vIEluc3BlY3RvckNsaWVu
dCBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IGYzNzJhZGUz
ZjE1ODg0MmZlZGFhM2RkOWVkYThjNGE1M2E1MGI5N2MuLmYxMGRhNGQxNDQzOWRmMTg2YjI5ZDc2
MGQ4NDZkMzA5Y2EwMWJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtNDI4LDI0
ICs0MjgsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91
dEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZQogICAgICAgICBjb3JlUGFnZS0+c2V0
dGluZ3MoKS0+c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYgKCFjb3Jl
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
ciogY29udHJvbGxlciA9IGNvcmVQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaWYg
KCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZW5hYmxlZCkKLSAgICAg
ICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbnRy
b2xsZXItPmRpc2FibGVQcm9maWxlcigpOwotI2VuZGlmCi19Ci0KIGJvb2wgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKiBuYW1lKQogewogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2
YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggMjM3OWYy
MDEzOGIzNGNkZjA4MjVkMzNlMmY3YTgwN2EyMzQ0MzhkNS4uYjBmOTU4ZjY4ZjAyNGJkOTEzZjUx
ZWUwNjk3MzJkOGYwYzQ4NDQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTc3LDcgKzc3
LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGZpbmRTdHJpbmcoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6RmluZE9wdGlvbnMpOwog
ICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldENTU0dyaWRMYXlvdXRF
bmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0
YXRpYyB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBz
dGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCmluZGV4IDY5MjA3OWY2ODcxYmM5NDM1MTc2NmEzMmUw
Yzg2YTViMmM4YjU3MDAuLjE2NGU0NjM2N2I2OTllNDNiYmRkMGRiYWZhYWQ5OTJiM2UzMmQ1Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3Bw
CkBAIC0zNTMsMTEgKzM1Myw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3Nl
dF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvCiAgICAgY2FzZSBQ
Uk9QX0pBVkFTQ1JJUFRfUFJPRklMSU5HX0VOQUJMRUQ6IHsKICNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKICAgICAgICAgYm9vbCBlbmFibGVkID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2
YWx1ZSk7Ci0gICAgICAgIFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgICAgIGlmIChlbmFibGVk
KQotICAgICAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlUHJvZmlsZXIoKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY29udHJvbGxlci0+ZGlzYWJsZVByb2ZpbGVyKCk7CisgICAgICAgIHBy
aXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVuYWJs
ZWQpOwogI2Vsc2UKICAgICAgICAgZ19tZXNzYWdlKCJQUk9QX0pBVkFTQ1JJUFRfUFJPRklMSU5H
X0VOQUJMRUQgaXMgbm90IHdvcmsgYmVjYXVzZSBvZiB0aGUgamF2YXNjcmlwdCBkZWJ1Z2dlciBp
cyBkaXNhYmxlZFxuIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0
b3IvV2ViSW5zcGVjdG9yLm1tCmluZGV4IDY3YTczNTQyZDgzZDMxNTAyMDM0MDA1YjZiODYyOWEw
NmMyYjVmZGYuLjA4ZjRiZmFkMmUzMWExYzJhYzRjOTMyOGUzMTg2NjdjNGY5YjA2OTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tbQpAQCAtMTQ5
LDEwICsxNDksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChlbmFibGVkKQotICAgICAgICBwYWdlLT5pbnNwZWN0
b3JDb250cm9sbGVyKCktPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBwYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2FibGVQcm9maWxlcigpOworICAgIHBhZ2UtPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwogfQogCiAt
IChCT09MKWlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmlu
ZGV4IGZmN2QwMDYyN2U4ODQ5YWExOTJiNzI3ZDYxYjhmMmVkNzI3ZDYyMWEuLmU3MGJmMDA0YTQ5
MTI2ZjQ0YmQxNDc1ZGQ0ODJjYTgyNzI1ZGRmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBA
IC0zMDEsMjAgKzMwMSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dG9m
aWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgaXNBCiAgICAgaW5wdXRFbGVt
ZW50LT5zZXRBdXRvZmlsbGVkKGlzQXV0b2ZpbGxlZCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFFXZWJGcmFtZSogZnJh
bWUsIGJvb2wgZW5hYmxlZCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYg
RU5BQkxFKElOU1BFQ1RPUikKLSAgICBGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJpdmF0
ZTo6Y29yZShmcmFtZSk7Ci0gICAgSW5zcGVjdG9yQ29udHJvbGxlciogY29udHJvbGxlciA9IGNv
cmVGcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7Ci0gICAgaWYgKCFjb250cm9s
bGVyKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIGNvbnRyb2xs
ZXItPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBjb250cm9sbGVyLT5kaXNh
YmxlUHJvZmlsZXIoKTsKLSNlbmRpZgotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXRWYWx1ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFFTdHJp
bmcmIHZhbHVlKQogewogICAgIFdlYkNvcmU6OkVsZW1lbnQqIHdlYkVsZW1lbnQgPSBlbGVtZW50
Lm1fZWxlbWVudDsKQEAgLTEyNzQsMTEgKzEyNjAsNiBAQCB2b2lkIFFXRUJLSVRfRVhQT1JUIHF0
X2RydF9ydW4oYm9vbCBiKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXREdW1wUmVu
ZGVyVHJlZU1vZGVFbmFibGVkKGIpOwogfQogCi12b2lkIFFXRUJLSVRfRVhQT1JUIHF0X2RydF9z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChRV2ViRnJhbWUqIGZyYW1lLCBib29sIGVuYWJs
ZWQpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGZyYW1lLCBlbmFibGVkKTsKLX0KLQogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9k
cnRfd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4s
IGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3Rp
bmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihzb3VyY2VPcmln
aW4sIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDJjOTZmYjNhMmVlNTA4MjMyNDU1
MWM1ZWFhNmViMDhmYjVmZjA4MDIuLjQxODAwZmFiZDc3YjQ4NjdjMDMwNTYxNmQ2MGJjNGRlNmE2
ZDQwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTEyNSw3ICsxMjUsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgZ2FyYmFnZUNvbGxlY3RvckNvbGxlY3QoKTsKICAgICBzdGF0aWMgdm9p
ZCBnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkKGJvb2wgd2FpdFVudGls
RG9uZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0QXV0b2ZpbGxlZChjb25zdCBRV2ViRWxlbWVudCYs
IGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoUVdlYkZyYW1lKiwgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRWYWx1
ZUZvclVzZXIoY29uc3QgUVdlYkVsZW1lbnQmLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSk7CiAgICAg
c3RhdGljIGludCBqYXZhU2NyaXB0T2JqZWN0c0NvdW50KCk7CiAgICAgc3RhdGljIHZvaWQgY2xl
YXJTY3JpcHRXb3JsZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3Bl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDM5Yzc1
Mjc3ZGU0NDBhNWU4YzFlNWE4MzM4MGI1YTBjOTg0NzhiNmEuLjhiZmE3ZTUzYTA0NzkwMjQ0ZWE2
MjgwM2E3MjVlNDE3NDZjNTA3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYklu
c3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcApAQCAt
MjMyLDEwICsyMzIsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkluc3BlY3Rvcjo6
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibAogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuIFNfT0s7CiAKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgcGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5lbmFibGVQcm9maWxlcigpOwotICAgIGVsc2UKLSAgICAg
ICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNhYmxlUHJvZmlsZXIoKTsKKyAgICBw
YWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsK
IAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9y
LmNwcAppbmRleCBhNjk5ZWFiYWFkMzQzYTBiN2VkNGNiYjVlMDMxZTA5NTYxYTUwOTY1Li5hZTY5
YTUzOTQzMDM0ODA4NTViMjliNGI1OTVkMTU2YjAyYTFmNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSW5zcGVjdG9yLmNwcApAQCAtNTUsMTEgKzU1LDYgQEAgdm9pZCBXS0J1bmRsZUlu
c3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0
b3JSZWYsIGwKICAgICByZXR1cm4gdG9JbXBsKGluc3BlY3RvclJlZiktPmV2YWx1YXRlU2NyaXB0
Rm9yVGVzdChjYWxsSUQsIHRvSW1wbChzY3JpcHQpLT5zdHJpbmcoKSk7CiB9CiAKLXZvaWQgV0tC
dW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3Bl
Y3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICB0b0ltcGwoaW5zcGVj
dG9yUmVmKS0+c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZv
aWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRQYWdlUHJvZmlsaW5nRW5hYmxlZChXS0J1bmRsZUluc3Bl
Y3RvclJlZiBpbnNwZWN0b3JSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5hYmxlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbnNwZWN0b3IuaAppbmRleCA1OTNkOTBhYTVlODQ1MjZj
NWU5MTRiZDA1OWEzYzE4MWJkYWVmNWQxLi5lMzJmZGYyNWVkNDhmNzc5MDYxZTkwYmNlNTc3NzBj
NTZjMTY2YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCkBAIC00NCw3
ICs0NCw2IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlSW5zcGVjdG9yU2hvdyhXS0J1bmRsZUlu
c3BlY3RvclJlZiBpbnNwZWN0b3IpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JD
bG9zZShXS0J1bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IpOwogCiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZUluc3BlY3RvckV2YWx1YXRlU2NyaXB0Rm9yVGVzdChXS0J1bmRsZUluc3BlY3RvclJl
ZiBpbnNwZWN0b3IsIGxvbmcgY2FsbElELCBXS1N0cmluZ1JlZiBzY3JpcHQpOwotV0tfRVhQT1JU
IHZvaWQgV0tCdW5kbGVJbnNwZWN0b3JTZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChXS0J1
bmRsZUluc3BlY3RvclJlZiBpbnNwZWN0b3IsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZUluc3BlY3RvclNldFBhZ2VQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxlSW5zcGVj
dG9yUmVmIGluc3BlY3RvciwgYm9vbCBlbmFibGVkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
CmluZGV4IDg3NTczZjllYTBhZjc1YjA5ZmMxMDE0Y2NjMDA3NDk1NGM3YzgzNGEuLjY4ZDNiMGM0
MTI5ZmZjNjk5YmM3ZDM1NjA3NjkyMjg5MTkyY2I2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0xOTUsMTAgKzE5NSw4
IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCiAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
PnNob3coKTsKICAgICBpZiAoIW1fZnJvbnRlbmRDbGllbnQpCiAgICAgICAgIHJldHVybjsKLSAg
ICBpZiAoZW5hYmxlZCkKLSAgICAgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmVuYWJsZVByb2ZpbGVyKCk7Ci0gICAgZWxzZQotICAgICAgICBtX3BhZ2UtPmNv
cmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzYWJsZVByb2ZpbGVyKCk7ICAgICAg
ICAKKworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXRQ
cm9maWxlckVuYWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
CmluZGV4IDI4MmE2ZmJhNTU4MDFlOTgyOTY4NzAwZDAzNjRlOTZkYTQ5ODA5OGYuLmJiMDI2ODZk
ZGM0OTQwYTJkZWU0OTJhNjEyMmVmYzNkZmYyOGUzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYK
QEAgLTI1NiwzICsyNTYsNSBAQCBFWFBPUlRTCiAgICAgICAgID9zdXNwZW5kQW5pbWF0aW9uc0BB
bmltYXRpb25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/cmVzdW1lQW5pbWF0
aW9uc0BBbmltYXRpb25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/c2V0QWxs
b3dzUm91bmRpbmdIYWNrc0BUZXh0UnVuQFdlYkNvcmVAQFNBWF9OQFoKKyAgICAgICAgP3Byb2Zp
bGVyRW5hYmxlZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRV9OWFoKKyAgICAgICAg
P3NldFByb2ZpbGVyRW5hYmxlZEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhfTkBa
CmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA5MGQ0ODhhZjRiNjI5MDc1M2M2OTM2NDUzMWRl
OGI5ZGExMjI4YjAxLi42NDU3YjY0YzVjM2U0NzI2MTlmZGUzMGExOTBkMjdjODU1YWU2YTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTEwOSw2ICsxMDksOCBAQCBfWk5LN1dlYkNvcmUx
NERvY3VtZW50TWFya2VyMTFkZXNjcmlwdGlvbkV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlz
UGFnZUJveFZpc2libGVFaTsKIF9aTjdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVyMTdzdXNw
ZW5kQW5pbWF0aW9uc0V2OwogX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3Vt
ZUFuaW1hdGlvbnNFdjsKK19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMThzZXRQcm9m
aWxlckVuYWJsZWRFYjsKK19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVwcm9maWxl
ckVuYWJsZWRFdjsKIF9aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxp
Z2h0RVBOU185SGlnaGxpZ2h0RTsKIF9aTjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24yNmluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlRVBOU180UGFnZUU7CiBfWk43V2ViQ29yZTI0
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uMTdzX2Zyb250ZW5kQ291bnRlckU7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjdhYzZhMjlkYWEzOWY0
Y2MyODVhN2Q0ZjlhM2MxYzUwNDJiMDVlZS4uYTcxZjYxMzI0OGRjMWViYjJlMzdkYzRmZTQzNGQz
ODcxNjlmN2YyOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA1LTI1ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lh
ICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBXZWJLaXRUZXN0UnVu
bmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyMzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCBmdW5j
dGlvbiBmcm9tIERSVCBhZnRlciBpdHMKKyAgICAgICAgbW92ZSB0byB3aW5kb3dzLmludGVybmFs
cy5zZXR0aW5ncy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaDoKKyAgICAgICAgKERSVERl
dlRvb2xzQWdlbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5j
cHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06Cisg
ICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0
YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcik6CisKIDIwMTItMDUtMjggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBNb3ZlIGFsbG93Um91bmRpbmdIYWNrcyB0byBJ
bnRlcm5hbHMgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggNTEyYWY5YmJjODcxZmZmY2I5MzEyOWQ2NzgyYmM3YTFlYjk1ZGJj
Ny4uZjFkZWUyNDE5ODc2Y2ExNzM4YzU5NDBmOGU0NjA5MGM3ZWNiNTk0ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQwMCwxNyArMTQw
MCw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEljb25EYXRhYmFzZUVuYWJsZWRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAg
ICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKLQotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0KLSAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgpAQCAtMjM4Miw3ICsyMzcx
LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucygpCiAgICAgICAgIHsgInNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsIHNldEdlb2xvY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEhhbmRsZXNBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZXMiLCBzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2Vz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SWNvbkRhdGFiYXNlRW5hYmxlZCIsIHNl
dEljb25EYXRhYmFzZUVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJs
ZWQiLCBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIiLCBzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TWluaW11bVRpbWVy
SW50ZXJ2YWwiLCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBjMTFlYjQyMzgz
Yzc0MGMxNzc4MjFhMWI4OTVjMzNhNjE0ODEwZDFmLi42ZjAyZGIzYTE1YjdiODViYTA4ZDYzNzM1
MjkzZDM3NGI4YmRhM2EwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmgKQEAgLTEwMCw3ICsxMDAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREb21haW5S
ZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBKU1N0cmluZ1Jl
ZiBzY2hlbWUpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKICAgICB2b2lkIHNl
dEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKTsKLSAgICB2b2lk
IHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCk7CiAg
ICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wgZmxhZyk7CiAgICAg
dm9pZCBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sIGZsYWcpOwogICAgIHZv
aWQgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGZsYWcpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29u
dHJvbGxlckJsYWNrQmVycnkuY3BwCmluZGV4IGI3ZGU5Y2QwMzdkNzJiZThkYWZkMTgxMTAzODM1
MTRjZjJmYzY3N2MuLmM5N2JhMzljMWQ0MDA1YWVhYzVhNTI2MGU0ZGFiY2JjNDM0NDc5MmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRy
b2xsZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAgLTIzNCwxMiArMjM0LDYgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGlj
b25EYXRhYmFzZUVuYWJsZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBwcm9m
aWxpbmdFbmFibGVkKQotewotICAgIFVOVVNFRF9QQVJBTShwcm9maWxpbmdFbmFibGVkKTsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
YWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxhZykKIHsKICAgICBVTlVTRURfUEFSQU0o
ZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZU
b29sc0FnZW50LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xz
QWdlbnQuY3BwCmluZGV4IDIxYWVkMWI5ZDIwOTRlNWI4NTkzMzI5MjNkMTRkZTY3NTJiM2ExZWIu
LmI2NjU5YTQ3ZmM4MDNhZWFhY2I3MTJlM2ZiZTMxMzk5Njk2NGM3ZDMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwCkBAIC0xMTIs
MTUgKzExMiw2IEBAIHZvaWQgRFJURGV2VG9vbHNBZ2VudDo6ZGV0YWNoKCkKICAgICBtX2RydERl
dlRvb2xzQ2xpZW50ID0gMDsKIH0KIAotYm9vbCBEUlREZXZUb29sc0FnZW50OjpzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgV2ViRGV2VG9vbHNBZ2Vu
dCogYWdlbnQgPSB3ZWJEZXZUb29sc0FnZW50KCk7Ci0gICAgaWYgKCFhZ2VudCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGFnZW50LT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChl
bmFibGVkKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBEUlREZXZUb29sc0FnZW50Ojpl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElELCBjb25zdCBzdGQ6OnN0cmluZyYgc2Ny
aXB0KQogewogICAgIFdlYkRldlRvb2xzQWdlbnQqIGFnZW50ID0gd2ViRGV2VG9vbHNBZ2VudCgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNB
Z2VudC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5o
CmluZGV4IDZlNDkxYWQ1MzYzNTY1ZWM3YmY3OTgzYzFiZjVhMTFhNWU0ODJjOTUuLmYzNTY0YmQ3
OGVjZDgxYzhiNDdhZDgxYWM5MDk0YmU3ZjJlNzZjYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKQEAgLTY5LDcgKzY5LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgZGV0YWNoKCk7CiAKICAgICBib29sIGV2YWx1YXRlSW5XZWJJbnNwZWN0
b3IobG9uZyBjYWxsSUQsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzY3JpcHQpOwotICAgIGJvb2wgc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgVGFza0xpc3QqIHRhc2tMaXN0
KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAz
OGMyYWQ2NTIyMDJkZDE3ZDBlZWU5M2FlYWRmZmU4YzJiYmFlOWQ4Li5jNzM5MTQzZTA2MDUxMWZl
MTM3YThhYTk0ZjZjYmUyZjNlM2U3YjI1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xOTYsNyArMTk2LDYg
QEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCog
c2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24pOwogICAgIGJpbmRNZXRo
b2QoInNldEljb25EYXRhYmFzZUVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldElj
b25EYXRhYmFzZUVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmQpOwotICAgIGJpbmRNZXRob2QoInNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TWluaW11bVRpbWVySW50ZXJ2YWwiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKTsKICAgICBiaW5kTWV0aG9kKCJz
ZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tE
ZXZpY2VPcmllbnRhdGlvbik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJy
b3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKQEAg
LTE4MzEsMTQgKzE4MzAsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpsb2dFcnJvclRv
Q29uc29sZShjb25zdCBzdGQ6OnN0cmluZyYgdGV4dCkKICAgICAgICAgV2ViU3RyaW5nKCksIDAp
OwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0KQotewotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgp
IDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9z
aGVsbC0+ZHJ0RGV2VG9vbHNBZ2VudCgpLT5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChh
cmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApp
bmRleCAwNzAzZWYwMTBkNjU1ZWU3NzgxMTg1Y2MyY2QxZDI3NTA2Yzk1Y2Q0Li4zNzk3ODY1N2Uz
YjFmZjM3YjlkNDM4YTU0NTY4YjQyY2M4NDRlZGEyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTM0OSw5ICszNDks
NiBAQCBwdWJsaWM6CiAgICAgLy8gR2V0cyB0aGUgbnVtYmVyIG9mIGdlb2xvY2F0aW9uIHBlcm1p
c3Npb25zIHJlcXVlc3RzIHBlbmRpbmcuCiAgICAgdm9pZCBudW1iZXJPZlBlbmRpbmdHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAKLSAgICAvLyBBbGxvd3MgbGF5b3V0IHRlc3RzIHRvIHN0YXJ0IEphdmFTY3JpcHQgcHJv
ZmlsaW5nLgotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCiAgICAgLy8gQWxsb3dzIGxheW91dCB0ZXN0
cyB0byBleGVjIHNjcmlwdHMgYXQgV2ViSW5zcGVjdG9yIHNpZGUuCiAgICAgdm9pZCBldmFsdWF0
ZUluV2ViSW5zcGVjdG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAK
aW5kZXggMmEzOWE2OTNhMGJiODBhYzY3NjUxMTAzOTM5NGQwZjhlZmY5NjI4NC4uN2FjMmVjZTA2
OWRhNDM0ODlhOThlZTVjMjI2YmYwYjRlMTIwYjgzNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC0yNjUsNyArMjY1LDYgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
cygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCks
IGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5W
aWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6
ZUhUVFBMb2FkcyhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXggNDQ5ZTY4MTIxZmQ3
OWIyMzhjMDAwZTY0MjllYWQwZTc3NGIzNzk4NS4uZjg1YWQ0ZjQwMTQ1NzkyNGNmMWM3NTkxMTcw
YzE0OWZlYzFkZTFhYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91
dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5
b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC00NDksMTQgKzQ0OSw2IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAg
ICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9wYXRoX3NldChkYXRhYmFzZVBhdGgudXRm
OCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGVkKTsKLQotICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYnJvd3Nlci0+
bWFpblZpZXcoKSwgZW5hYmxlZCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
cm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IGY2MjUwZjJkMWFkNmY1ZWI0
NWEyMjRmMTFkNmFhNGNhNTMxYjY1ZDQuLjhlNGMxNmM1ZGFmMTQ3YjVhOTk0MDNlMWI3MjcyYTQ4
M2FhYTMzYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTQwLDE3ICs1NDAsNiBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAg
d2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgoZGF0YWJhc2UsIDApOwogfQogCi12b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dl
Yl92aWV3KG1haW5GcmFtZSk7Ci0gICAgQVNTRVJUKHZpZXcpOwotCi0gICAgc2V0RGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZChmbGFnKTsKLQotICAgIFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9y
ID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3Iodmlldyk7Ci0gICAgZ19vYmplY3Rfc2V0
KEdfT0JKRUNUKGluc3BlY3RvciksICJqYXZhc2NyaXB0LXByb2ZpbGluZy1lbmFibGVkIiwgZmxh
ZywgTlVMTCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBmY2VlODk1ZThiZjA4
NjY4MzlmOWY4NzE0ZTQxNzY0ZjRiOTZmZjZiLi4wMGJkYjIxODQzZjRlOGNhMDM5NmM0NjI0OTc2
Njk2NzIxOGFiODgxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0xMjY1LDcgKzEyNjUsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIH0KIAogICAgIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotICAgIFtbW21haW5GcmFtZSB3
ZWJWaWV3XSBpbnNwZWN0b3JdIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkOk5PXTsKIAog
ICAgIFtXZWJWaWV3IF9zZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwogICAgIFtX
ZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IGViZTE2ODZm
ZmQ2MGRiZmI4MmZhYjhkMTdmZmU4MGI0MGI3OTZiN2MuLjQxOWEyY2Y5MmVmMDE1NjgyYzJlODEw
YTZkMzkyN2QyM2U3ZTRmNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTU2MSwxMiArNTYxLDYgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25EYXRhYmFz
ZUVuYWJsZWQpCiAgICAgW3NoYXJlZFdlYkljb25EYXRhYmFzZSBzZXRFbmFibGVkOmljb25EYXRh
YmFzZUVuYWJsZWRdOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpCi17Ci0gICAgc2V0RGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZChwcm9maWxpbmdFbmFibGVkKTsKLSAgICBbW1ttYWluRnJhbWUg
d2ViVmlld10gaW5zcGVjdG9yXSBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZDpwcm9maWxp
bmdFbmFibGVkXTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TWFpbkZyYW1l
SXNGaXJzdFJlc3BvbmRlcihib29sIGZsYWcpCiB7CiAgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcg
PSBbW21haW5GcmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IGMxNjgzZjEw
ZTE4MjdkNTZiZTFjNDVmMzQ0ZTI0MDEyMzAzZjM3YjAuLjliYmY0MzliYzIxZWY0MmUxMzkxYjVi
NTYwNzQ3YWRlNGZiN2RhZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC00NzcsMTIgKzQ3Nyw2IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEF1dG9maWxsZWQoY29uc3QgUVdlYkVsZW1lbnQmIGVsZW1lbnQs
IGJvb2wgaXNBdXRvCiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRv
ZmlsbGVkKGVsZW1lbnQsIGlzQXV0b2ZpbGxlZCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAg
IHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZW5hYmxlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQobV90b3BMb2FkaW5nRnJhbWUs
IGVuYWJsZSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFZhbHVlRm9yVXNl
cihjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFZhbHVlRm9yVXNlcihlbGVtZW50LCB2YWx1
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmgKaW5kZXggNTUxMTY3NjcyYzg0NjU4ZWNhNTQ3MDcyNTEwNDQ2YWMxYWE4Y2EyOS4uZWY2OGIz
NmU5YzM0MTI4NTlkMTk0ZTc1NTI3NjRmOWVjOTBhZDliZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTU5LDcgKzE1OSw2IEBA
IHB1YmxpYyBzbG90czoKICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxv
bmcgbG9uZyBxdW90YSk7CiAgICAgdm9pZCBzZXRBdXRvZmlsbGVkKGNvbnN0IFFXZWJFbGVtZW50
JiwgYm9vbCBlbmFibGUpOwotICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFFXZWJFbGVtZW50
JiwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQgc2V0Rml4ZWRDb250ZW50c1NpemUo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoYm9vbCBlbmFibGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKaW5kZXggNGVkOGUwZGM2NzU2OGNkZjczMDIxNTNhMzk0MzBhOWMxZGNiMTY5Ny4uOTJh
Yjg2MzJjZjRhMGJlYTA0ZjIyMDM3MDkyZGYwZmVhNGRlODM1ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MDUsMTAgKzkwNSw2IEBAIHN0YXRp
YyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAg
aWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFs
KCZtaW5pbXVtSW50ZXJ2YWwpKSkKICAgICAgICAgd2ViVmlld1ByaXZhdGUtPnNldE1pbmltdW1U
aW1lckludGVydmFsKG1pbmltdW1JbnRlcnZhbCk7CiAKLSAgICBDT01QdHI8SVdlYkluc3BlY3Rv
cj4gaW5zcGVjdG9yOwotICAgIGlmIChTVUNDRUVERUQod2ViVmlld1ByaXZhdGUtPmluc3BlY3Rv
cigmaW5zcGVjdG9yKSkpCi0gICAgICAgIGluc3BlY3Rvci0+c2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoRkFMU0UpOwotCiAgICAgSFdORCB2aWV3V2luZG93OwogICAgIGlmIChTVUNDRUVE
RUQod2ViVmlld1ByaXZhdGUtPnZpZXdXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFORExF
Kj4oJnZpZXdXaW5kb3cpKSkgJiYgdmlld1dpbmRvdykKICAgICAgICAgU2V0Rm9jdXModmlld1dp
bmRvdyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcAppbmRleCBlZWFkOGE4ODkwYWJjY2FmNDgxMjNlNGMwMWMyYWQ1OGFiZGY3
ZTc5Li5hMTY4ZTFlOTM1ZTZmMDY3ZmMyNWNlYWMwNjFmODUxOWZkMjM0OGVjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAK
QEAgLTg0NiwyNCArODQ2LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKICAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwogfQogCi12b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGZsYWcp
Ci17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJhbWUt
PndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElXZWJW
aWV3UHJpdmF0ZT4gdmlld1ByaXZhdGU7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUlu
dGVyZmFjZSgmdmlld1ByaXZhdGUpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElX
ZWJJbnNwZWN0b3I+IGluc3BlY3RvcjsKLSAgICBpZiAoRkFJTEVEKHZpZXdQcml2YXRlLT5pbnNw
ZWN0b3IoJmluc3BlY3RvcikpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKGZsYWcpOwotICAgIGluc3BlY3Rvci0+c2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoZmxhZyk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIENPTVB0cjxJV2Vi
Vmlldz4gd2ViVmlldzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjUwZmE1Yzk1
MGRhY2U3NDlmOTE5MzY3NzQ5NmRjMDlmMTQwNWFmZi4uOTFlZDg5OGVjODFlZTRmZWYyYzY4NWNh
MmI5Zjc3NGFiOWU1MGNjNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ3OCwx
MyArNDc4LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYkluc3Bl
Y3Rvcihsb25nIGNhbGxJRCwgSlNTdHJpbmdSZWYgc2NyaXAKICNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBXS0J1bmRsZUluc3BlY3RvclNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKFdLQnVuZGxl
UGFnZUdldEluc3BlY3RvcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkp
LCBlbmFibGVkKTsKLSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQotfQotCiB0eXBlZGVmIFdU
Rjo6SGFzaE1hcDx1bnNpZ25lZCwgV0tSZXRhaW5QdHI8V0tCdW5kbGVTY3JpcHRXb3JsZFJlZj4g
PiBXb3JsZE1hcDsKIHN0YXRpYyBXb3JsZE1hcCYgd29ybGRNYXAoKQogewpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IDhjYTA5ZjYxYWE1ZTFhYjJkZDM2MWRjNzIxYjFiMTEzNzAwN2Q0MTYu
LmQxYjM4NWQ5YjRkMDljYWY3YmQzOTIxMzIxZTlmZWM5MzExNjIzZDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKQEAgLTE3NCw3ICsxNzQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93V2Vi
SW5zcGVjdG9yKCk7CiAgICAgdm9pZCBjbG9zZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgZXZh
bHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKLSAg
ICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCBz
ZXRQT1NJWExvY2FsZShKU1N0cmluZ1JlZik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMmEyYmNlZjliMzI5OGE2YjVm
NDA4MjYxMDBiNTdiYzQxMTE2ZDczLi44NjU0ZThjZTllN2NiYjFiZmMxMzY0ZWJlYjAzYmZlOTMy
Y2IxYmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTItMDUtMjUgIEplc3VzIFNhbmNoZXot
UGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFdlYktp
dFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGVkIHRlc3RzIHRvIHVzZSB3aW5kb3dzLmludGVybmFscyBpbnN0
ZWFkIG9mIGxheW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sOgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1
bmN0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9u
LWNhbGxzLWV2YWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5j
dGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9h
cHBseS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2Fs
bHMtYW5vbnltb3VzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5j
dGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
Y2FsbC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24t
dGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9m
aWxlci9kZWFkLXRpbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRv
dC13cml0ZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1s
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24t
c2FtZS1saW5lLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFu
ZGxlci5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2Ft
ZS1zY29wZS5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZl
cmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWw6CisgICAgICAgICogZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5o
dG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9u
cy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9uYW1l
ZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9m
aWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sOgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
cHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9m
aWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRz
aWRlLXRoZS1uZXN0aW5nLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxpbmct
ZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2lt
cGxlLWV2ZW50LWNhbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1s
ZXZlbC1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9z
dGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWw6Cisg
ICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0
bWw6CisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1s
OgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1s
LWRpc2FibGVkOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0
cy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvd2lu
ZG93LWRvdC1ldmFsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9m
aWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93azIvU2tpcHBlZDoKKwogMjAxMi0wNS0yOCAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVk
cyBEZWZlcnJlZEZyYW1lTG9hZGluZyBmbGFnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKaW5kZXggM2E4NjYyODIxMGQ1
NzViODg2MjNmMjYyOGY2ZjEyOGNlMTczOTJjZi4uZjFkMzI1Y2VmYTljMjdkYzkzYjI3OTFiYzBk
Mzg4YjNiYTFjYzA2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20t
ZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKaW5kZXggNzlmMTEwODVjMTE4NDExYjA1YWExYjFjMmEy
OWVkNThhYzBmMjhjYS4uYzRkZWI4ZGE4YWQ1NTBhMTc0MDJiZDZlOGZkZTJlODYyNDlkMjUxZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24t
Y2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRl
eHRzLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1j
YWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmluZGV4IDg0
OGMwMDFjODMxNDZlNWY4YjJhYjM0NDNjNTRiNWY3MzZkYTc5NGYuLmU2NDk1ZWY0MGM3MzFiNmVj
YzVhM2M2MWI2OWI0NTJiYjdiODU5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1
aWx0LWluLWZ1bmN0aW9ucy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFy
dFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCmluZGV4IDljYjVjNGI2Yjk5NzIwNGU3
YjcyYzc0MDM4ODcyYTYyY2MzOWQ4YTkuLjAzNDgxZjIyNzNiNmFkNzNjY2E2MWEwNWU4YmVkOWMy
Yjc5MGEyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxo
ZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAK
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLmh0bWwKaW5kZXggM2M0Mjk2NjA1ODQ1ZmE5MTFiN2U2NGJhNTZlNDM4YzVlODRhOTg1ZS4u
ZGJmYjZlNDRhNDcwNjZkZDFmMjczNmQyYzZiNGYyZDQ2ODE5NWQyNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1u
YW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoaXRlcmF0aW9ucykKIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYXBwbHkuaHRtbAppbmRleCBmZDAzYTg0MzY4NTM5N2RiMmYxYzUwMGNlZWNjN2Q3
MDRhMDVhZmY1Li5jMGJjMzljNDVkMjhkMDZmNzQzZjNhNDA1YmUzMGIyYzAzYWRjZWE2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5j
dGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwKaW5kZXgg
ZmIyNjExOWMwMmJkMDc3MWMzMDFkNDMyZjAxM2M2NGI1ZmIyNGMxMy4uNWQ3ZjFhNTdmZjgzYzc4
NDg5NWRmYjRjOWE0ODAyMzFhOGQwZGQwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5o
dG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11
c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVp
bHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKaW5kZXggNjAw
YWJiMzQ2NjA3MThjMmNkNDFjNDQ4MzAyMzZjZjQwYmFmMTYyYy4uYWUxMzRmMmRlOTA5OGE5YzUw
YWE3MTI2M2RjMDI5NjEzMDMzMTQ2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVz
ZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBz
dGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
LXJlZ2lzdGVyLWxlYWsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdp
c3Rlci1sZWFrLmh0bWwKaW5kZXggNTliYzZlM2M2MjlmZTAxOGY0MjUyY2RjMTFjZjJmMmE4ZTY0
NDc4ZC4uNzdiYmQ0YTMyN2FlNWNhODI1ODdkM2QxOTkwNzNmZTk1YzM2Zjg3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCkBAIC0x
LDEwICsxLDEwIEBACiA8Ym9keT4KIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBsb2cocykKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9j
YWxsLmh0bWwKaW5kZXggMTg2MTIyZWJlN2U1NzM0MjQyNmYyMWI2NmI4Y2Y1ZDUxY2QzZWU0OC4u
MDBhYjU3ZDA3NzU0ZDY3NDk1YmU0MjAyMTk0NzVhOTc1NTI0NzE2ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jYWxsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhl
LWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQt
c3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwKaW5kZXggZWFiYWI2
ZWEzZThjYjIyZTA4Yzk4NmQyMWYwNzE1ZjM5OWE0ZGZmYi4uMzNkYTBlYTBkNzU2MmRjZTRkMjRm
NGRjYWU5ZDgwOWMzYzg1NGQzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5v
dGhlci1zY29wZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10
aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUu
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxl
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2Zp
bGVzLmh0bWwKaW5kZXggYzhjNDgxMmY0YmNlM2RiZTRiZTgxZDUyMDNjNmUwYmM3ZTY5MTFiOC4u
Y2FjMTUxYzY5NDEwODQ0ZTZiM2JkZjA5YTg2N2UwMjM0YTQzNzQ1YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBqID0gMDsKIGZ1bmN0aW9uIHRlc3QobGVuKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWwKaW5kZXggMGRkMzhi
Y2ZiMmNmZjdmNGFlYjhmZWZkZWZiZjhmZTc1MDNiOWZhZS4uODk3Njc1NjA4YzY0MjU1ODMzZDJk
MTAwN2ZlZTk1ZDBjZGZhMWQ0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3Ry
dWN0b3IuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCmluZGV4IDIzNjQ3OWQ1NjI5
MTBiZDBmODMyYmUyNTdlZWY0NDk3NmUzYzI4ZTAuLjA3ZmIxZTczZDlkODE0MTU4OTAxODAxNzFi
MjAwOGYyZTgwZjE3NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVh
ZC10aW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRt
bApAQCAtNSw4ICs1LDkgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpAQCAtMjcsMyArMjgsNCBAQCB0aGUgcHJvZmls
ZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUg
JSBzcGVudCBpbgogPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwK
aW5kZXggZjNkNmIwMDFlYWZmMDkwZWJjZWU3YzEzNDgyMTZiZTY4NzMwMDIxMC4uZjI1ZGEwOTI4
YzA0MDQyNjM4OTQzZDA0ZDcwZDdjYjIyZjI5NmJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwog
CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2
ZW50LWhhbmRsZXIuaHRtbAppbmRleCAwZWFkZDkxMjY4NGNjNDk0Y2JiNjg0NTE2NTU1Zjg0MDRj
NzM0ODY2Li5iMmIyMDU1Zjc4M2IwNGFjYjNlOWI4MzJjMTlkOTE4YTNkMGUxMzk2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwx
MCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGlu
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQt
ZXZhbC1vbi1zYW1lLWxpbmUuaHRtbAppbmRleCA5MmFhMzJkODM4NDQ3NjQyNTk4ZjViNDU0ZjIw
ODUzMDdlNTg3NDc1Li5iOThkZDY0MjhjODEzOGE3YmE1OGViZmJkMzMxYWZmMDM4ZmU4ZmE4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFu
ZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
ZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKQEAgLTIsMTAgKzIs
MTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwKaW5kZXggYjc2NzExYzkzN2Mx
MWQ1OWRmNThlMmIwMDBlYmE3Nzc4ZTUwMWZhZS4uMGFhMzU1NWE3Mjc1ZDVkNTBkZmNjNGMxNWQ2
ODZjMDA2YmVlZjMzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxp
bmUtZXZlbnQtaGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5s
aW5lLWV2ZW50LWhhbmRsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKIHsgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21h
bnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCmluZGV4IGZhOTU0YmJkMTgyMGJm
OTNmZjQ2NDI0ZjRhNDA1YjY0MDk5Yjc2ZTEuLjAzYWRkOGYwZTk5ODBiNmZkYjdmZmFjYzE0M2Zk
ZGE4MzliNjUwMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwog
CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24t
Y2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZl
cmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKaW5kZXggNjA0ZDAzYTA3
NjNjMTA4NmUxYzlkYjFjZDRhOTc4NDQ2M2ZhODNjNS4uOTliNTk4Mzk5MzMxMGI1ODk3OTkwZTUx
ODcxODgwZjMwNmJiYjM5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
dWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQt
c2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwog
CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3Bl
ZC1mdW5jdGlvbi1jYWxscy5odG1sCmluZGV4IDRlNDc2ZGVlNDNmZjY5NzI1ODU3YjIxYWMxMGI2
OGFkZGZjYTQ3MGQuLjkxMmY2NDZjY2Y5NzA2MDg3NDY1MDg2OWIyZTczNTQ3NDFjMmMyZTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVu
dC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKQEAg
LTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2Fs
bGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5j
dGlvbi5odG1sCmluZGV4IGM0M2Q3MzNhYzE0ZmU4NTc1NzRiYzQxNmY4YTU1ZDc3ZmYzZDY2YmEu
LmYyYWY1ZTM2OTg5YTEyNmQ3ODRhMzkwODM0YzhkZjZiNjY1ZjZkMWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxs
ZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1m
dW5jdGlvbi5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQog
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKaW5k
ZXggNDMwMzU2ZjI0MDZlODRkMWJhMDNkNDJhYWNjOWJhZDU5MmQ5ZDFlOS4uMDQ5NWYzN2JlYTk2
YzJhNWI5NzU2NTY5MjFhMGEzMmVhY2M1Njk3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5jdGlv
biBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
YW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAppbmRleCAw
N2M1ZTEwY2VjNDI5NTI0MDdjN2RkNWU4Y2M0M2MxNGJkMjQwZjY2Li4yOTRlZTQ4MmM2M2Q3ZjU3
NTc4M2EwNGQ3NGRhNTBkODgwYjRjMzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gZnVuY3Rpb24wKCkKIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rv
bi5odG1sCmluZGV4IGQxMWRjYzIwNDQwMzRiY2I0N2ZjOTNjYjNmOWRiNTcwYjRlMzJhZmMuLjQ4
MDU5MzdmM2Y4ZGU0MWU1Mjg2ZGFkYWQ0ZGY5YTdhMDRhOGU4YjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sCmluZGV4IDMwOGVhZGVjYmMxOTQ2NjhlY2Y1OGRhNGIyM2U5NDIzYzAxNTlh
M2EuLmM0Njg1ZjYxOWUzN2U1ZTFiZmE1NmEyYTU0YTVkNTQxODcxZWZiOTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXIuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0
KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9u
LWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNv
bnRleHQuaHRtbAppbmRleCBlYTYzZmM1ZDUyODA1MWZlZjZhYzZkNjVkYzdlZmRlZDE3NmE3YmMw
Li5lNmI2YjNkYzIxMmVhZTQ0MDU5MjM5ZDhhMGNjN2NiNWQ1NzJlZDRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCkBAIC0y
LDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCmluZGV4IGRlZjNjNGI2
ZDgzYTk3Njc4M2UyMmU4MmYyNDNiZTk5NDhkYzhiYmUuLjgwZjFkOGQ5N2I2YzNkMTI0ZjJkYmEx
NjU3NDViNjVhNDczZjY1NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
b25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCmluZGV4IDMwNWE2MDU2
NGE5MzlmY2JjOTVmYzFjNjllZWQ1YTNjMmViZTUwOWYuLjNmYTgyNDkyNGQ0MzI2N2ExZmQ2Nzgz
ZTliYTA1ODA5NjgwMmU3YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbApAQCAtMiwxMCAr
MiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCmluZGV4IGIwNGQyN2Jk
YjBmZmVhZmU3YTViMzFjMDdhN2YzMzM5ZDJlMWVhZDQuLjNiMjk0MDg2MjlhNGQ4OTlkMTQ0NGU2
MWFjODBmNmM5ZGQ2MjNjMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNp
ZGUtdGhlLW5lc3RpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5n
LWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5l
c3RpbmcuaHRtbAppbmRleCA3ZTA2M2NlODIzOWM1MDkwN2Q5ODY3OWJiODgwMTI2OTBkYjJlNjVj
Li45ODE5YzU4OWQyN2U4MTBiNmJlOTkxMGFiZDI5ZThmMDU4YTk5ZDgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9u
LWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQt
c3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sCkBAIC0yLDEwICsyLDEwIEBA
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1s
CmluZGV4IGU2MjUxYzc4YWEyOTczMGI2MzQxZThiYjhhYmI2NWM0MDIxMWZjY2IuLjIyZDY2YjQ1
NzMzYzM2ZGQzNTU3NmU4YjRkMDFkZGRiMjA5YjE3NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0
aW9uLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKaW5k
ZXggNDM0ZjIwMjY0NzE0MzUzOTdjOTUyNGI0MTU0ODZlNjNhNGE0MWY0MS4uNWE4NTg4ZGQyZmEw
OWVjYTIxMzU1ZjUxY2NhNTY5ZDIyM2E2NTJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwKaW5kZXggMDkyYWVkZWIxNWM2ZjI5ODFiYTQw
M2ZjZGJlM2JmOTcyMjA2ZjYwMy4uMTNkMDUzNTMxYmNkYzYzN2Y4ZWJlNDQ3MGFkYmJhZGIyY2Uz
Y2E3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2
ZWwtY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8t
bGV2ZWwtY2hhbmdlLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKaW5kZXggODU1
OWMxYTlhZDQ5NzdiNTI4NGZlMTdiZWJlZGQwNDVkNmI0YTFjMi4uY2Y2Njc3MzA0NWZmZmRmNzEx
ODIxZjVhYWVhYzkyMzNiY2YyNTNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUt
dGltZXMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJv
ZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sCmlu
ZGV4IDVmYWFmNzQ3NTYxNWQyOTM3YzllN2FjYTA2NGI3OWNlZmViMDgxOTMuLjhmODAzNTRiZmUy
OGVjNWI5NTQzYWQ2Njg0YzNhOGU3ZDFlNWZkMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9m
aWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAppbmRleCAyYTI1Y2Uw
YjY5NmEzMWM3YjA1ZTg2MDYwMTFhNTY1Y2E3MjlhMTJlLi40ZGUzYjkzNTUyZmUxODFiY2ZkNGY3
MzJkM2UwOTY4ZjRkZGUxYmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCkBAIC0yLDEwICsy
LDEwIEBACiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQu
aHRtbAppbmRleCAzOWI5M2RiOWRlNDdkMWQ0ODEzM2VjNGRkZWI0ZmIxMGQ1YzliMDRjLi42ZGNk
YWZkNGEzZTcyNmFhNzMzMzE4ZDc0NDJhMjViYmJiY2E3Yjg4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRp
bWVvdXQuaHRtbApAQCAtNSw4ICs1LDkgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogfQoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmluZGV4IDRm
OTcwMjk2ZGZmZDEyOGZkYmQ3MjJlZjRjNmNhNmU4NGQ1NzY4ZDIuLmNlYTllOWZiZjNmYzViZTNk
MDU5MTU0ZGZkMDE4NDUwZDU1ODYxYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwKQEAgLTIsMTAgKzIsMTAgQEAK
IDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci19CitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
CiAKIHZhciBqID0gMDsKIGZ1bmN0aW9uIHRlc3QobGVuKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbC1kaXNhYmxl
ZCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5o
dG1sLWRpc2FibGVkCmluZGV4IDhiNTdjMDM2NTNmNjVkYjYwM2E3MzY0NTgzYTNjOGRiMjVlYTBh
OWMuLjVlY2M0ZDNlMWU0YTlkODM2MDJlMzlhZmIxODdlMTJiOTk1ZjkyNTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1s
LWRpc2FibGVkCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9u
LWZyb20tZXZhbC5odG1sLWRpc2FibGVkCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBjb25zb2xlLnBy
b2ZpbGUoIlRocm93IHdpdGhpbiBhbiBldmFsLiIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCmluZGV4IGMzZTkxYjUy
ZjEyNjU5NWVlY2JkOWI5M2IzY2U2NDVmNzlkNmRlM2YuLjk2NjhlOTEyYTM1YWM5ODBhNjViN2U5
YTUxZTM2MGJjNzgyYWI1OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotfQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwogCiBmdW5j
dGlvbiBzdGFydFRlc3QoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWls
dC1pbi1mdW5jdGlvbnMuaHRtbAppbmRleCBiZGIxZDVkNmFhMjM1MmIxOGViNjE2MjRjMTc2MDlh
NGRiY2M2YTk0Li5lNjgyYjZmYzM3ODJkYjJhOGQ4ZTIwOGY0M2FhZDlmNWNmYjZkMzFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1j
YWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQog
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sCmluZGV4IDdkOTgzYWMwNTA5
M2U3MWQ1ZWE5OGUxNGQ2ZGQyNWM5ODAyOWU1ZWQuLmIyYTJiNTFjODdlNmFhZjM2OWRhM2FiYjIy
OTVhNjNjYzNhOTNjODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2lu
ZG93LWRvdC1ldmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ct
ZG90LWV2YWwuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmls
ZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvY3B1LXByb2ZpbGVyLXByb2ZpbGluZy13aXRob3V0LWluc3BlY3Rvci5odG1s
CmluZGV4IDY1ZTFjZTJlN2MwNWZjNGQwNmQ5NzI3MzAwZWQ5MmIyNzE0ZDNjM2YuLmYzNzU5ZDE0
Y2EzMmIwNWU3ZTk3MWU1YWQ0ZjAwODFmMjkyYTlhNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm9maWxlci9jcHUtcHJvZmlsZXItcHJvZmlsaW5nLXdpdGhvdXQtaW5zcGVj
dG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxl
ci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGhl
YWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLX0KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKIAogZnVuY3Rp
b24gcGFnZUZ1bmN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggNDdmNWJi
ZGFmZjBiN2IwMzU5MzJjOTg2MmNjN2JlMDM1YmM3YzU4Ny4uMzAyYmM5ZGE3ZjBjNWQ4MzJjYWM4
ZjMxOTgzMDI5ZTlhOTRhMTg3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTM1MSwx
MSArMzUxLDYgQEAgd2ViYXJjaGl2ZS90ZXN0LXRhYmxlLWJhY2tncm91bmQuaHRtbAogd2ViYXJj
aGl2ZS90ZXN0LXRkLWJhY2tncm91bmQuaHRtbAogd2ViYXJjaGl2ZS90ZXN0LXhtbC1zdHlsZXNo
ZWV0LnhtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAotIyA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI4PgotZmFzdC9wcm9maWxlcgotaW5zcGVj
dG9yL3Byb2ZpbGVyL2NwdS1wcm9maWxlci1wcm9maWxpbmctd2l0aG91dC1pbnNwZWN0b3IuaHRt
bAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEZy
YW1lTG9hZENhbGxiYWNrcwogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQyMzMxPgogZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11bmxvYWQtY3Jhc2guaHRt
bApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDA1YWJiZmQzYWU4M2Uy
MTlhZTdhYzVhODhkNWQ4NzM1MTk1OGQ3MTEuLjRiMjI2YzU4MTk4NTdjYzRjZDhlNjZlOGUzZmM3
OTI2YjUzMjk4MjggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxMi0wNS0yNSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0
byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMy
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkZWQgbmVlZGVkIHN5bWJvbHMgZm9yIEdU
SyBidWlsZC4KKwogMjAxMi0wNS0yOCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIE1vdmUgYWxsb3dSb3VuZGluZ0hhY2tzIHRvIEludGVybmFscyBp
bnRlcmZhY2UK
</data>
<flag name="review"
          id="151166"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>