<?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>228319</bug_id>
          
          <creation_ts>2021-07-27 01:26:51 -0700</creation_ts>
          <short_desc>Geolocation API should callback with error if doc is not fully active</short_desc>
          <delta_ts>2022-12-04 20:51:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>Safari 16</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>235153</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Caceres">marcos</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ashvayka</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>marcosc</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1779703</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-07-27 01:26:51 -0700</bug_when>
    <thetext>When the document is not fully active the error callback passed to navigator.geolocation.getCurrentPosition() or watchPosition() is not invoked. This behavior can be reproduced by creating an iframe, capturing a reference to navigator.geolocation from its global scope, removing it from the DOM and then attempting to call one of these methods.

The behavior of calling the error callback has been proposed in the specification.

Specification issue: https://github.com/w3c/geolocation-api/issues/96
Specification pull request: https://github.com/w3c/geolocation-api/pull/97

Web platform test:
https://github.com/web-platform-tests/wpt/pull/29799

PS: any chance of getting a &quot;Geolocation&quot; bug component in here in the bug tracker? 🙏</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781566</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-03 01:27:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/81450315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786616</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 17:00:22 -0700</bug_when>
    <thetext>There are quite a few issues causing the new test not to run, besides Geolocation issues:
- Lack of a &lt;body&gt; even though the test relies on document.body
- After re-adding the iframe to the document, it does:
```
document.body.appendChild(iframe);
    iframe.contentWindow.opener = window;
    await new Promise((resolve) =&gt;
      window.addEventListener(&quot;load&quot;, resolve, { once: true })
    );
```

I think this should be:
```
document.body.appendChild(iframe);
    iframe.contentWindow.opener = window;
    await new Promise((resolve) =&gt;
      iframe.addEventListener(&quot;load&quot;, resolve, { once: true })
    );
```

Why would the main frame&apos;s load event fire again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786622</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 17:07:48 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; There are quite a few issues causing the new test not to run, besides
&gt; Geolocation issues:
&gt; - Lack of a &lt;body&gt; even though the test relies on document.body
&gt; - After re-adding the iframe to the document, it does:
&gt; ```
&gt; document.body.appendChild(iframe);
&gt;     iframe.contentWindow.opener = window;
&gt;     await new Promise((resolve) =&gt;
&gt;       window.addEventListener(&quot;load&quot;, resolve, { once: true })
&gt;     );
&gt; ```
&gt; 
&gt; I think this should be:
&gt; ```
&gt; document.body.appendChild(iframe);
&gt;     iframe.contentWindow.opener = window;
&gt;     await new Promise((resolve) =&gt;
&gt;       iframe.addEventListener(&quot;load&quot;, resolve, { once: true })
&gt;     );
&gt; ```
&gt; 
&gt; Why would the main frame&apos;s load event fire again?

And I think we need this test change too:
-    assert_true(position, &quot;Expected a position&quot;);
+    assert_true(Boolean(position), &quot;Expected a position&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786624</commentid>
    <comment_count>4</comment_count>
      <attachid>436254</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 17:12:56 -0700</bug_when>
    <thetext>Created attachment 436254
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786626</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-23 17:14:17 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786627</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 17:16:00 -0700</bug_when>
    <thetext>The C++ side should be good. More work is needed to either make the WPT test run nicely with our infra or write our own test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786640</commentid>
    <comment_count>7</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-23 18:49:27 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; There are quite a few issues causing the new test not to run, besides
&gt; Geolocation issues:
&gt; - Lack of a &lt;body&gt; even though the test relies on document.body
&gt; - After re-adding the iframe to the document, it does:
&gt; ```
&gt; document.body.appendChild(iframe);
&gt;     iframe.contentWindow.opener = window;
&gt;     await new Promise((resolve) =&gt;
&gt;       window.addEventListener(&quot;load&quot;, resolve, { once: true })
&gt;     );
&gt; ```
&gt; 
&gt; I think this should be:
&gt; ```
&gt; document.body.appendChild(iframe);
&gt;     iframe.contentWindow.opener = window;
&gt;     await new Promise((resolve) =&gt;
&gt;       iframe.addEventListener(&quot;load&quot;, resolve, { once: true })
&gt;     );
&gt; ```
&gt; 
&gt; Why would the main frame&apos;s load event fire again?

Oops! Good catch! Let me know if you want me to fix this over on the WTP side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786641</commentid>
    <comment_count>8</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-23 18:58:22 -0700</bug_when>
    <thetext>Sent fix for WPT:
https://github.com/web-platform-tests/wpt/pull/30143

Happy to fix anything else you spot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786755</commentid>
    <comment_count>9</comment_count>
      <attachid>436293</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 09:17:12 -0700</bug_when>
    <thetext>Created attachment 436293
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786766</commentid>
    <comment_count>10</comment_count>
      <attachid>436297</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 09:42:01 -0700</bug_when>
    <thetext>Created attachment 436297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786863</commentid>
    <comment_count>11</comment_count>
      <attachid>436315</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 11:50:49 -0700</bug_when>
    <thetext>Created attachment 436315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786961</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-24 15:03:41 -0700</bug_when>
    <thetext>Committed r281520 (240893@main): &lt;https://commits.webkit.org/240893@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436315.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831009</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-14 12:20:39 -0800</bug_when>
    <thetext>Reopening since the change was reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832021</commentid>
    <comment_count>14</comment_count>
      <attachid>449481</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-19 07:15:36 -0800</bug_when>
    <thetext>Created attachment 449481
Patch

Re-land on top of r288197.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832107</commentid>
    <comment_count>15</comment_count>
      <attachid>449481</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-19 11:27:15 -0800</bug_when>
    <thetext>Comment on attachment 449481
Patch

https://bugs.webkit.org/show_bug.cgi?id=235368 needs to be investigated first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834721</commentid>
    <comment_count>16</comment_count>
      <attachid>449481</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2022-01-27 15:01:21 -0800</bug_when>
    <thetext>Comment on attachment 449481
Patch

r288307 seems alright.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834738</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 15:25:33 -0800</bug_when>
    <thetext>Committed r288707 (246504@main): &lt;https://commits.webkit.org/246504@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449481.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1916634</commentid>
    <comment_count>18</comment_count>
    <who name="Marcos Caceres">marcosc</who>
    <bug_when>2022-12-04 20:50:08 -0800</bug_when>
    <thetext>Reopening as it has regressed: the callbacks are no longer called.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436254</attachid>
            <date>2021-08-23 17:12:56 -0700</date>
            <delta_ts>2021-08-24 09:17:12 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>228319_geolocation_fullyactive_wip.patch</filename>
            <type>text/plain</type>
            <size>10857</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Z2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkv
bm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi42YzUyMTc0ZGIzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9u
b24tZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQ
QVNTIG5vbi1mdWxseSBhY3RpdmUgZG9jdW1lbnQgYmVoYXZpb3IKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkv
bm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmUyNmQ1OWRhZTk4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCkBAIC0w
LDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgor
PHRpdGxlPkdlb2xvY2F0aW9uIFRlc3Q6IG5vbi1mdWxseSBhY3RpdmUgZG9jdW1lbnQ8L3RpdGxl
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL2dlb2xvY2F0
aW9uLWFwaS9wdWxsLzk3IiAvPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CisgIHByb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdF9k
cml2ZXIuc2V0X3Blcm1pc3Npb24oeyBuYW1lOiAiZ2VvbG9jYXRpb24iIH0sICJncmFudGVkIik7
CisKKyAgICAvLyBDcmVhdGUgdGhlIGlmcmFtZSwgd2FpdCBmb3IgaXQgdG8gbG9hZC4uLgorICAg
IGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlm
cmFtZS5zcmMgPSAicmVzb3VyY2VzL2lmcmFtZS5odG1sIjsKKyAgICBpZnJhbWUuYWxsb3cgPSAi
Z2VvbG9jYXRpb24iOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKwor
ICAgIC8vIC4uLndhaXQgZm9yIHRoZSBpZnJhbWUgdG8gbG9hZC4uLgorICAgIGF3YWl0IG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PgorICAgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSkKKyAgICApOworCisgICAgLy8gU3RlYWwgZ2VvbG9j
YXRpb24uCisgICAgY29uc3QgZ2VvID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmdl
b2xvY2F0aW9uOworCisgICAgLy8gTm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZS4KKyAgICBpZnJhbWUu
cmVtb3ZlKCk7CisKKyAgICAvLyBUcnkgdG8gd2F0Y2ggYSBwb3NpdGlvbiB3aGlsZSBub3QgZnVs
bHkgYWN0aXZlLi4uCisgICAgY29uc3Qgd2F0Y2hFcnJvciA9IGF3YWl0IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGNvbnN0IHdhdGNoSWQgPSBnZW8ud2F0Y2hQb3Np
dGlvbigKKyAgICAgICAgcmVqZWN0LCAvLyBXZSBkb24ndCB3YW50IGEgcG9zaXRpb24KKyAgICAg
ICAgcmVzb2x2ZSAvLyBXZSB3YW50IGFuIGVycm9yIQorICAgICAgKTsKKyAgICAgIC8vIEFsd2F5
cyByZXR1cm4gMC4KKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIHdhdGNoSWQsCisgICAg
ICAgIDAsCisgICAgICAgICJ3YXRjaElkIGlzIDAgd2hlbiBkb2N1bWVudCBpcyBub3QgZnVsbHkt
YWN0aXZlIgorICAgICAgKTsKKyAgICAgIC8vIEFuZCBhZ2FpbiwgdG8gbWFrZSBzdXJlIGl0J3Mg
bm90IGNoYW5naW5nCisgICAgICBjb25zdCB3YXRjaElkMiA9IGdlby53YXRjaFBvc2l0aW9uKAor
ICAgICAgICAoKSA9PiB7fSwKKyAgICAgICAgKCkgPT4ge30KKyAgICAgICk7CisgICAgICBhc3Nl
cnRfZXF1YWxzKAorICAgICAgICB3YXRjaElkMiwKKyAgICAgICAgMCwKKyAgICAgICAgIndhdGNo
SWQgcmVtYWlucyAwIHdoZW4gZG9jdW1lbnQgaXMgbm90IGZ1bGx5LWFjdGl2ZSIKKyAgICAgICk7
CisgICAgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgd2F0Y2hFcnJvci5jb2RlLAor
ICAgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFLAorICAg
ICAgIndhdGNoUG9zaXRpb24oKSByZXR1cm5zIGFuIGVycm9yIG9uIG5vbi1mdWxseS1hY3RpdmUg
ZG9jdW1lbnQiCisgICAgKTsKKworICAgIC8vIE5vdyB0cnkgdG8gZ2V0IGN1cnJlbnQgcG9zaXRp
b24gd2hpbGUgbm90IGZ1bGx5IGFjdGl2ZS4uLgorICAgIGNvbnN0IHBvc2l0aW9uRXJyb3IgPSBh
d2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICBnZW8uZ2V0Q3Vy
cmVudFBvc2l0aW9uKAorICAgICAgICByZWplY3QsIC8vIFdlIGRvbid0IHdhbnQgYSBwb3NpdGlv
bgorICAgICAgICByZXNvbHZlIC8vIFdlIHdhbnQgYW4gZXJyb3IhCisgICAgICApOworICAgIH0p
OworICAgIGFzc2VydF9lcXVhbHMoCisgICAgICBwb3NpdGlvbkVycm9yLmNvZGUsCisgICAgICBH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuUE9TSVRJT05fVU5BVkFJTEFCTEUsCisgICAgICAiZ2V0
Q3VycmVudFBvc2l0aW9uKCkgY2FsbHMgdGhlIGVycm9yQ2FsbGJhY2sgd2l0aCBQT1NJVElPTl9V
TkFWQUlMQUJMRSIKKyAgICApOworCisgICAgLy8gUmUtYXR0YWNoLCBhbmQgZ28gYmFjayB0byBm
dWxseSBhY3RpdmUuCisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAg
IGlmcmFtZS5jb250ZW50V2luZG93Lm9wZW5lciA9IHdpbmRvdzsKKyAgICBhd2FpdCBuZXcgUHJv
bWlzZSgocmVzb2x2ZSkgPT4KKyAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
cmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pCisgICAgKTsKKworICAgIC8vIEFuZCB3ZSBhcmUgYmFj
ayB0byBmdWxseSBhY3RpdmUuCisgICAgbGV0IHdhdGNoSWQ7CisgICAgbGV0IHBvc2l0aW9uID0g
YXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgd2F0Y2hJZCA9
IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9u
KAorICAgICAgICByZXNvbHZlLAorICAgICAgICByZWplY3QKKyAgICAgICk7CisgICAgfSk7Cisg
ICAgYXNzZXJ0X3RydWUoTnVtYmVyLmlzSW50ZWdlcih3YXRjaElkKSwgIkV4cGVjdGVkIHNvbWUg
bnVtYmVyIGZvciB3YXRjaElkIik7CisgICAgYXNzZXJ0X3RydWUoQm9vbGVhbihwb3NpdGlvbiks
ICJFeHBlY3RlZCBhIHBvc2l0aW9uIik7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IG5l
ZWQgdGhpcy4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbig1MS40NzgsIC0wLjE2NiwgMTAwKTsKKwor
ICAgIC8vIEZpbmFsbHksIGxldCdzIGdldCB0aGUgcG9zaXRpb24gZnJvbSB0aGUgcmVhdHRhY2hl
ZCBkb2N1bWVudC4KKyAgICBwb3NpdGlvbiA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5nZW9sb2Nh
dGlvbi5nZXRDdXJyZW50UG9zaXRpb24oCisgICAgICAgIHJlc29sdmUsCisgICAgICAgIHJlamVj
dAorICAgICAgKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfdHJ1ZShCb29sZWFuKHBvc2l0aW9uKSwg
IkV4cGVjdGVkIGEgcG9zaXRpb24iKTsKKyAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0
b3IuZ2VvbG9jYXRpb24uY2xlYXJXYXRjaCh3YXRjaElkKTsKKyAgfSwgIm5vbi1mdWxseSBhY3Rp
dmUgZG9jdW1lbnQgYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1B
UEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjVjZjNkOTJmMzk0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9n
ZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8aDE+SnVzdCBhIHN1cHBvcnQg
ZmlsZTwvaDE+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9y
LmpzCmluZGV4IDI1ZTI0YzU5OGEyNC4uM2YxOTE3MDM4ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVy
LXZlbmRvci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcwpAQCAtMjkzLDMgKzI5MywxNSBAQCB3
aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuYWN0aW9uX3NlcXVlbmNlID0gZnVuY3Rpb24oc291
cmNlcykKICAgICBpZiAocG9pbnRlclR5cGUgPT09ICJtb3VzZSIgfHwgcG9pbnRlclR5cGUgPT09
ICJwZW4iKQogICAgICAgICByZXR1cm4gZGlzcGF0Y2hNb3VzZUFjdGlvbnMocG9pbnRlclNvdXJj
ZS5hY3Rpb25zLCBwb2ludGVyVHlwZSk7CiB9OworCit3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJu
YWwuc2V0X3Blcm1pc3Npb24gPSBmdW5jdGlvbihwZXJtaXNzaW9uX3BhcmFtcywgY29udGV4dD1u
dWxsKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiBwZXJtaXNzaW9uX3BhcmFtcy5k
ZXNjcmlwdG9yLm5hbWUgPT0gImdlb2xvY2F0aW9uIikgeworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbig1MS40NzgsIC0wLjE2NiwgMTAwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRH
ZW9sb2NhdGlvblBlcm1pc3Npb24ocGVybWlzc2lvbl9wYXJhbXMuc3RhdGUgPT0gImdyYW50ZWQi
KTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgIH0KKyAgICByZXR1cm4g
UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJ1bmltcGxlbWVudGVkIikpOworfTsKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRl
eCA3OTk1ZDRkZDQ2MWQuLjE5YTAxNzJkMTIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkdlb05vdGlmaWVyLmgiCkBAIC0yOTksOCArMzAwLDE0IEBAIEdlb2xv
Y2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogCiB2b2lkIEdlb2xv
Y2F0aW9uOjpnZXRDdXJyZW50UG9zaXRpb24oUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2Vz
c0NhbGxiYWNrLCBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ss
IFBvc2l0aW9uT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCFmcmFtZSgpKQorICAgIGlm
ICghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+aXNGdWxseUFjdGl2ZSgpKSB7CisgICAgICAg
IGlmIChlcnJvckNhbGxiYWNrICYmIGVycm9yQ2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6R2VvbG9jYXRpb24sIFtlcnJv
ckNhbGxiYWNrXSB7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQo
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3Mp
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBhdXRvIG5vdGlmaWVyID0gR2VvTm90aWZpZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShz
dWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMp
KTsKICAgICBzdGFydFJlcXVlc3Qobm90aWZpZXIucHRyKCkpOwpAQCAtMzEwLDggKzMxNywxNCBA
QCB2b2lkIEdlb2xvY2F0aW9uOjpnZXRDdXJyZW50UG9zaXRpb24oUmVmPFBvc2l0aW9uQ2FsbGJh
Y2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZQogCiBpbnQgR2VvbG9jYXRpb246OndhdGNoUG9zaXRp
b24oUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8UG9zaXRp
b25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFBvc2l0aW9uT3B0aW9ucyYmIG9wdGlv
bnMpCiB7Ci0gICAgaWYgKCFmcmFtZSgpKQorICAgIGlmICghZG9jdW1lbnQoKSB8fCAhZG9jdW1l
bnQoKS0+aXNGdWxseUFjdGl2ZSgpKSB7CisgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGVy
cm9yQ2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAgICAgZXJy
b3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRh
c2soVGFza1NvdXJjZTo6R2VvbG9jYXRpb24sIFtlcnJvckNhbGxiYWNrXSB7CisgICAgICAgICAg
ICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwg
IkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3MpKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIGF1dG8gbm90aWZpZXIgPSBH
ZW9Ob3RpZmllcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1v
dmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUob3B0aW9ucykpOwogICAgIHN0YXJ0UmVxdWVzdChu
b3RpZmllci5wdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnRDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydENhbGxiYWNrcy5oCmluZGV4IGU2Y2EyYWY3MjdjZS4uOGZiY2M4NTE2M2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3Mu
aApAQCAtMzUsNyArMzUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ29udmVydGVy
PElETENhbGxiYWNrRnVuY3Rpb248VD4+IDogRGVmYXVsdENvbnZlcnRlcgogICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBjb252ZXJzaW9uSGFzU2lkZUVmZmVjdHMgPSBmYWxzZTsKIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEV4Y2VwdGlvblRocm93ZXIgPSBEZWZhdWx0RXhjZXB0aW9uVGhyb3dl
cj4KLSAgICBzdGF0aWMgUmVmUHRyPFQ+IGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0LCBFeGNlcHRpb25UaHJvd2VyJiYgZXhjZXB0aW9uVGhyb3dlciA9IEV4Y2Vw
dGlvblRocm93ZXIoKSkKKyAgICBzdGF0aWMgUmVmUHRyPFQ+IGNvbnZlcnQoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBKU0RPTUds
b2JhbE9iamVjdCYsIEV4Y2VwdGlvblRocm93ZXImJiBleGNlcHRpb25UaHJvd2VyID0gRXhjZXB0
aW9uVGhyb3dlcigpKQogICAgIHsKICAgICAgICAgSlNDOjpWTSYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNDUsNyArNDUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
Q29udmVydGVyPElETENhbGxiYWNrRnVuY3Rpb248VD4+IDogRGVmYXVsdENvbnZlcnRlcgogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJl
dHVybiBUOjpjcmVhdGUoSlNDOjphc09iamVjdCh2YWx1ZSksICZnbG9iYWxPYmplY3QpOworICAg
ICAgICByZXR1cm4gVDo6Y3JlYXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCBKU0M6OmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KEpTQzo6YXNPYmplY3QodmFsdWUpLT5nbG9iYWxPYmplY3QoKSkp
OwogICAgIH0KIH07CiAKQEAgLTY5LDcgKzY5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IEpTQ29udmVydGVyPElETENhbGxiYWNrRnVuY3Rpb248VD4+IHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjxJRExDYWxsYmFja0ludGVyZmFjZTxUPj4gOiBEZWZh
dWx0Q29udmVydGVyPElETENhbGxiYWNrSW50ZXJmYWNlPFQ+PiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRXhjZXB0aW9uVGhyb3dlciA9IERlZmF1bHRFeGNlcHRpb25UaHJvd2VyPgotICAgIHN0
YXRpYyBSZWZQdHI8VD4gY29udmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIEV4Y2VwdGlvblRocm93ZXImJiBleGNlcHRpb25UaHJvd2VyID0gRXhjZXB0aW9uVGhyb3dl
cigpKQorICAgIHN0YXRpYyBSZWZQdHI8VD4gY29udmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0
JiwgRXhjZXB0aW9uVGhyb3dlciYmIGV4Y2VwdGlvblRocm93ZXIgPSBFeGNlcHRpb25UaHJvd2Vy
KCkpCiAgICAgewogICAgICAgICBKU0M6OlZNJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC03OSw3ICs3OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb252ZXJ0ZXI8
SURMQ2FsbGJhY2tJbnRlcmZhY2U8VD4+IDogRGVmYXVsdENvbnZlcnRlCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBUOjpjcmVhdGUoSlND
Ojphc09iamVjdCh2YWx1ZSksICZnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gVDo6Y3Jl
YXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KEpTQzo6YXNPYmplY3QodmFsdWUpLT5nbG9iYWxPYmplY3QoKSkpOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGFza1NvdXJjZS5oCmluZGV4IDQ1MjBkNDU1Nzc4Mi4uNzEzM2Y2NzhlYTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UYXNrU291cmNlLmgKQEAgLTMyLDYgKzMyLDcgQEAgZW51bSBjbGFzcyBUYXNrU291
cmNlIDogdWludDhfdCB7CiAgICAgRGF0YWJhc2VBY2Nlc3MsCiAgICAgRmlsZVJlYWRpbmcsCiAg
ICAgRm9udExvYWRpbmcsCisgICAgR2VvbG9jYXRpb24sCiAgICAgSWRsZVRhc2ssCiAgICAgSW5k
ZXhlZERCLAogICAgIE1lZGlhRWxlbWVudCwK
</data>
<flag name="commit-queue"
          id="459249"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436293</attachid>
            <date>2021-08-24 09:17:12 -0700</date>
            <delta_ts>2021-08-24 09:41:57 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>228319_geolocation_fullyactive_wip.patch</filename>
            <type>text/plain</type>
            <size>19811</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRv
LWRlbGV0ZWQtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGU3
YmE5ZTYzYTQ0Ni4uNjQ1NTc1ZDk1N2M3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0ZWQt
Y29udGV4dC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRlc3RzIHRoYXQgd2hlbiBhIEdl
b2xvY2F0aW9uIHJlcXVlc3QgaXMgbWFkZSBmcm9tIGEgcmVtb3RlIGZyYW1lLCBhbmQgdGhhdCBm
cmFtCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBTdWNjZXNzIGNhbGxiYWNr
IGludm9rZWQKK1BBU1MgTm8gY2FsbGJhY2tzIGludm9rZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQu
aHRtbAppbmRleCA1MDQzYmVmZjM0ZjMuLmUxMDVjNTQwOGYzMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVs
ZXRlZC1jb250ZXh0Lmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAgZnVuY3Rpb24gb25GaXJzdElmcmFt
ZUxvYWRlZCgpIHsKIAogZnVuY3Rpb24gb25TZWNvbmRJZnJhbWVMb2FkZWQoKSB7CiAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ05vIGNhbGxi
YWNrcyBpbnZva2VkJyk7CisgICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2Vk
Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0sIDUwMCk7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxy
ZWFkeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQKaW5kZXggMTI2OTljYzEyYzIwLi5j
YTkxYzEyYTY0OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3Rl
ZC50eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBv
biBhIEdlb2xvY2F0aW9uIG9iamVjdCBhZnRlciBpdHMgZnJhbWUgaGFzIGJlCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotTWV0aG9kIGNhbGxlZCBvbiBHZW9sb2NhdGlvbiBvYmplY3Qg
d2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuCitQQVNTIEVycm9yIGNhbGxiYWNrIGludm9rZWQKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFs
cmVhZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1hbHJlYWR5Lmh0bWwKaW5kZXggMTg3ZjlhNTliMzhlLi5kYjA1ODdiOWIxY2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1hbHJlYWR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlv
biBvblNlY29uZElmcmFtZUxvYWRlZCgpIHsKICAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBj
YWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNr
IGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxi
YWNrIGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7CiAgICAgc2V0
VGltZW91dChmaW5pc2hUZXN0LCAxMDAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0
CmluZGV4IGViYzhiMjU2ZDA3Yi4uOGUxMDYxMTk3ZDQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1l
eHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMg
bWFkZSBvbiBhIEdlb2xvY2F0aW9uIG9iamVjdCBhbmQgaXRzIEZyYW1lIGlzIGRpc2NvCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBObyBjYWxsYmFja3MgaW52b2tlZAorUEFT
UyBFcnJvciBjYWxsYmFjayBpbnZva2VkCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xv
Y2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVy
bWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CmluZGV4IDk0MjQ2MGUzOWQzMS4uNjg5ZDg5YmZj
NjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25u
ZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRl
bmllZC1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiBQQVNTIGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKIFBBU1MgZXJyb3Iu
bWVzc2FnZSBpcyAiVXNlciBkZW5pZWQgR2VvbG9jYXRpb24iCiAKLVBBU1MgTm8gY2FsbGJhY2tz
IGludm9rZWQKK1BBU1MgRXJyb3IgY2FsbGJhY2sgaW52b2tlZAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCmluZGV4IDBhNGRlYzUzZmI1Mi4uNTUzZDUwM2ExZWIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0
ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbApA
QCAtMzYsMTMgKzM2LDEzIEBAIGZ1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQoKSB7CiAgICAgICAg
IHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSwgZnVuY3Rpb24oZSkgewotICAgICAgICB0ZXN0
RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOworICAgICAgICB0
ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkJyk7CiAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwogICAgIH0pOwogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRlc3RQ
YXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CisgICAgICAgIHRlc3RGYWlsZWQoJ05vIGNh
bGxiYWNrcyBpbnZva2VkJyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0sIDEwMCk7
CisgICAgfSwgMTAwMCk7CiB9CiAKIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKaW5kZXggYjA4ZTc2NDI3OGViLi5hYTljM2MyY2I1
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rp
c2Nvbm5lY3RlZC1mcmFtZS5odG1sCkBAIC0yMywxMyArMjMsMTMgQEAgZnVuY3Rpb24gb25JZnJh
bWVVbmxvYWRlZCgpIHsKICAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZv
a2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9LCBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7CisgICAgICAgIHRlc3RQYXNzZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQn
KTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSk7CiAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAg
ICAgICAgdGVzdEZhaWxlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKICAgICAgICAgZmluaXNo
SlNUZXN0KCk7Ci0gICAgfSwgMTAwKTsKKyAgICB9LCAxMDAwKTsKIH0KIAogdmFyIGlmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29u
dGV4dC1pbm5lcjEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291
cmNlcy9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtaW5uZXIxLmh0bWwKaW5kZXggOWM1MTU4
MTkwYTgxLi5mNGMwMjc5ZDFkODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL3Jlc291cmNlcy9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtaW5uZXIxLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2NhbGxi
YWNrLXRvLWRlbGV0ZWQtY29udGV4dC1pbm5lcjEuaHRtbApAQCAtMTMsNyArMTMsNyBAQAogICAg
ICAgICAgIC8vIE1ha2UgcmVxdWVzdCBmcm9tIHJlbW90ZSBmcmFtZSwgdGhpcyBmcmFtZSB3aWxs
IGJlIGdvbmUgYnkgdGhlIHRpbWUgdGhlIEdlb2xvY2F0aW9uCiAgICAgICAgICAgLy8gb2JqZWN0
IGF0dGVtcHRzIHRvIGludm9rZSB0aGUgY2FsbGJhY2suCiAgICAgICAgICAgd2luZG93LnBhcmVu
dC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKCkgewot
ICAgICAgICAgICAgICBwYXJlbnQudGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2Vk
Jyk7CisgICAgICAgICAgICAgIHBhcmVudC50ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGlu
dm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgICAgICAgIHBhcmVudC5maW5pc2hKU1Rlc3Qo
KTsKICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgcGFyZW50LnRlc3RG
YWlsZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRvdy1ldmVu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBh
cmVudC13aW5kb3ctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCAxOWViNTE2OWVlNDUuLjJiN2I4
N2E0NjE0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3Zn
LXBhcmVudC13aW5kb3ctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRvdy1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDkgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBlcnJvcgogVGhpcyB0ZXN0cyBjcmVhdGlu
ZyBhIGRpc2Nvbm5lY3RlZCBTVkcgZWxlbWVudCB3aXRoIHJlc2l6ZSBldmVudCBoYW5kbGVyLiBU
aGUgZXZlbnQgaGFuZGxlciBzaG91bGQgbm90IGdldCBkaXNwYXRjaGVkIHVubGVzcyB0aGUgZWxl
bWVudCBpcyBjb25uZWN0ZWQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mg
RXhjZXB0aW9uIHRocm93bgogUEFTUyBkaWRGaXJlUmVzaXplIGlzIGZhbHNlCiBQQVNTIGRpZEZp
cmVPbkVycm9yIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRv
dy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RldGFjaGVkLXN2Zy1wYXJl
bnQtd2luZG93LWV2ZW50cy5odG1sCmluZGV4IDZmYmM0M2U5ZGNkMC4uODg5ZjAwOWZlNWYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdp
bmRvdy1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1z
dmctcGFyZW50LXdpbmRvdy1ldmVudHMuaHRtbApAQCAtMjEsNyArMjEsMTEgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoJ2RpZEZpcmVPbkVycm9yJyk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmV2YWwoJ3Rocm93ICJl
cnJvciInKTsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmcmFtZS5jb250ZW50V2luZG93LmV2YWwoJ3Rocm93ICJlcnJvciInKTsKKyAgICAgICAg
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiRXhjZXB0aW9uIHRocm93biIpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpZnJhbWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvUG9zaXRpb25PcHRpb25zLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggNDAzMjgyYzFlMTg0Li4wMzkzMzhkODBhOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0
aW9ucy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvUG9zaXRpb25PcHRpb25zLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw1ICsxLDkgQEAKIAogUEFTUyBDYWxsIGdldEN1cnJlbnRQb3NpdGlv
biB3aXRoIHdyb25nIHR5cGUgZm9yIGVuYWJsZUhpZ2hBY2N1cmFjeS4gTm8gZXhjZXB0aW9uIGV4
cGVjdGVkLgogUEFTUyBDYWxsIHdhdGNoUG9zaXRpb24gd2l0aCB3cm9uZyB0eXBlIGZvciBlbmFi
bGVIaWdoQWNjdXJhY3kuIE5vIGV4Y2VwdGlvbiBleHBlY3RlZC4KLUZBSUwgUG9zaXRpb25PcHRp
b25zIHRlc3RzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkVycm9yOiB1bmltcGxlbWVudGVkIgorUEFTUyBQb3NpdGlvbk9wdGlvbnMgdGVzdHMK
K1BBU1MgU2V0IHRpbWVvdXQgYW5kIG1heGltdW1BZ2UgdG8gMCwgY2hlY2sgdGhhdCB0aW1lb3V0
IGVycm9yIHJhaXNlZCAoZ2V0Q3VycmVudFBvc2l0aW9uKQorUEFTUyBTZXQgdGltZW91dCBhbmQg
bWF4aW11bUFnZSB0byAwLCBjaGVjayB0aGF0IHRpbWVvdXQgZXJyb3IgcmFpc2VkICh3YXRjaFBv
c2l0aW9uKQorUEFTUyBDaGVjayB0aGF0IGEgbmVnYXRpdmUgdGltZW91dCB2YWx1ZSBpcyBlcXVp
dmFsZW50IHRvIGEgMCB0aW1lb3V0IHZhbHVlIChnZXRDdXJyZW50TG9jYXRpb24pCitQQVNTIENo
ZWNrIHRoYXQgYSBuZWdhdGl2ZSB0aW1lb3V0IHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gYSAwIHRp
bWVvdXQgdmFsdWUgKHdhdGNoUG9zaXRpb24pCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1h
Y3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42YzUyMTc0
ZGIzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIG5vbi1mdWxseSBhY3RpdmUgZG9jdW1l
bnQgYmVoYXZpb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlv
bi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uYmUyNmQ1OWRhZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9u
LWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPkdlb2xvY2F0aW9uIFRlc3Q6IG5v
bi1mdWxseSBhY3RpdmUgZG9jdW1lbnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2dpdGh1Yi5jb20vdzNjL2dlb2xvY2F0aW9uLWFwaS9wdWxsLzk3IiAvPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgIHByb21pc2VfdGVzdChhc3luYyBm
dW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2V0X3Blcm1pc3Npb24oeyBuYW1l
OiAiZ2VvbG9jYXRpb24iIH0sICJncmFudGVkIik7CisKKyAgICAvLyBDcmVhdGUgdGhlIGlmcmFt
ZSwgd2FpdCBmb3IgaXQgdG8gbG9hZC4uLgorICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlmcmFtZS5zcmMgPSAicmVzb3VyY2VzL2lmcmFt
ZS5odG1sIjsKKyAgICBpZnJhbWUuYWxsb3cgPSAiZ2VvbG9jYXRpb24iOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKworICAgIC8vIC4uLndhaXQgZm9yIHRoZSBpZnJh
bWUgdG8gbG9hZC4uLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PgorICAgICAg
aWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSkK
KyAgICApOworCisgICAgLy8gU3RlYWwgZ2VvbG9jYXRpb24uCisgICAgY29uc3QgZ2VvID0gaWZy
YW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uOworCisgICAgLy8gTm8gbG9u
Z2VyIGZ1bGx5IGFjdGl2ZS4KKyAgICBpZnJhbWUucmVtb3ZlKCk7CisKKyAgICAvLyBUcnkgdG8g
d2F0Y2ggYSBwb3NpdGlvbiB3aGlsZSBub3QgZnVsbHkgYWN0aXZlLi4uCisgICAgY29uc3Qgd2F0
Y2hFcnJvciA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
IGNvbnN0IHdhdGNoSWQgPSBnZW8ud2F0Y2hQb3NpdGlvbigKKyAgICAgICAgcmVqZWN0LCAvLyBX
ZSBkb24ndCB3YW50IGEgcG9zaXRpb24KKyAgICAgICAgcmVzb2x2ZSAvLyBXZSB3YW50IGFuIGVy
cm9yIQorICAgICAgKTsKKyAgICAgIC8vIEFsd2F5cyByZXR1cm4gMC4KKyAgICAgIGFzc2VydF9l
cXVhbHMoCisgICAgICAgIHdhdGNoSWQsCisgICAgICAgIDAsCisgICAgICAgICJ3YXRjaElkIGlz
IDAgd2hlbiBkb2N1bWVudCBpcyBub3QgZnVsbHktYWN0aXZlIgorICAgICAgKTsKKyAgICAgIC8v
IEFuZCBhZ2FpbiwgdG8gbWFrZSBzdXJlIGl0J3Mgbm90IGNoYW5naW5nCisgICAgICBjb25zdCB3
YXRjaElkMiA9IGdlby53YXRjaFBvc2l0aW9uKAorICAgICAgICAoKSA9PiB7fSwKKyAgICAgICAg
KCkgPT4ge30KKyAgICAgICk7CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICB3YXRjaElk
MiwKKyAgICAgICAgMCwKKyAgICAgICAgIndhdGNoSWQgcmVtYWlucyAwIHdoZW4gZG9jdW1lbnQg
aXMgbm90IGZ1bGx5LWFjdGl2ZSIKKyAgICAgICk7CisgICAgfSk7CisKKyAgICBhc3NlcnRfZXF1
YWxzKAorICAgICAgd2F0Y2hFcnJvci5jb2RlLAorICAgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFLAorICAgICAgIndhdGNoUG9zaXRpb24oKSByZXR1cm5z
IGFuIGVycm9yIG9uIG5vbi1mdWxseS1hY3RpdmUgZG9jdW1lbnQiCisgICAgKTsKKworICAgIC8v
IE5vdyB0cnkgdG8gZ2V0IGN1cnJlbnQgcG9zaXRpb24gd2hpbGUgbm90IGZ1bGx5IGFjdGl2ZS4u
LgorICAgIGNvbnN0IHBvc2l0aW9uRXJyb3IgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICBnZW8uZ2V0Q3VycmVudFBvc2l0aW9uKAorICAgICAgICByZWpl
Y3QsIC8vIFdlIGRvbid0IHdhbnQgYSBwb3NpdGlvbgorICAgICAgICByZXNvbHZlIC8vIFdlIHdh
bnQgYW4gZXJyb3IhCisgICAgICApOworICAgIH0pOworICAgIGFzc2VydF9lcXVhbHMoCisgICAg
ICBwb3NpdGlvbkVycm9yLmNvZGUsCisgICAgICBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuUE9T
SVRJT05fVU5BVkFJTEFCTEUsCisgICAgICAiZ2V0Q3VycmVudFBvc2l0aW9uKCkgY2FsbHMgdGhl
IGVycm9yQ2FsbGJhY2sgd2l0aCBQT1NJVElPTl9VTkFWQUlMQUJMRSIKKyAgICApOworCisgICAg
Ly8gUmUtYXR0YWNoLCBhbmQgZ28gYmFjayB0byBmdWxseSBhY3RpdmUuCisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm9wZW5l
ciA9IHdpbmRvdzsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4KKyAgICAgIGlm
cmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pCisg
ICAgKTsKKworICAgIC8vIEFuZCB3ZSBhcmUgYmFjayB0byBmdWxseSBhY3RpdmUuCisgICAgbGV0
IHdhdGNoSWQ7CisgICAgbGV0IHBvc2l0aW9uID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgd2F0Y2hJZCA9IGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmln
YXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKAorICAgICAgICByZXNvbHZlLAorICAgICAg
ICByZWplY3QKKyAgICAgICk7CisgICAgfSk7CisgICAgYXNzZXJ0X3RydWUoTnVtYmVyLmlzSW50
ZWdlcih3YXRjaElkKSwgIkV4cGVjdGVkIHNvbWUgbnVtYmVyIGZvciB3YXRjaElkIik7CisgICAg
YXNzZXJ0X3RydWUoQm9vbGVhbihwb3NpdGlvbiksICJFeHBlY3RlZCBhIHBvc2l0aW9uIik7CisK
KyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IG5lZWQgdGhpcy4KKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvbig1MS40NzgsIC0wLjE2NiwgMTAwKTsKKworICAgIC8vIEZpbmFsbHksIGxldCdzIGdldCB0
aGUgcG9zaXRpb24gZnJvbSB0aGUgcmVhdHRhY2hlZCBkb2N1bWVudC4KKyAgICBwb3NpdGlvbiA9
IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGlmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oCisg
ICAgICAgIHJlc29sdmUsCisgICAgICAgIHJlamVjdAorICAgICAgKTsKKyAgICB9KTsKKyAgICBh
c3NlcnRfdHJ1ZShCb29sZWFuKHBvc2l0aW9uKSwgIkV4cGVjdGVkIGEgcG9zaXRpb24iKTsKKyAg
ICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24uY2xlYXJXYXRjaCh3
YXRjaElkKTsKKyAgfSwgIm5vbi1mdWxseSBhY3RpdmUgZG9jdW1lbnQgYmVoYXZpb3IiKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1B
UEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uMjVjZjNkOTJmMzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lm
cmFtZS5odG1sCkBAIC0wLDAgKzEsMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8aDE+SnVzdCBhIHN1cHBvcnQgZmlsZTwvaDE+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzCmluZGV4IDI1ZTI0YzU5OGEyNC4uM2Yx
OTE3MDM4ZmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZl
bmRvci5qcwpAQCAtMjkzLDMgKzI5MywxNSBAQCB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwu
YWN0aW9uX3NlcXVlbmNlID0gZnVuY3Rpb24oc291cmNlcykKICAgICBpZiAocG9pbnRlclR5cGUg
PT09ICJtb3VzZSIgfHwgcG9pbnRlclR5cGUgPT09ICJwZW4iKQogICAgICAgICByZXR1cm4gZGlz
cGF0Y2hNb3VzZUFjdGlvbnMocG9pbnRlclNvdXJjZS5hY3Rpb25zLCBwb2ludGVyVHlwZSk7CiB9
OworCit3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3Blcm1pc3Npb24gPSBmdW5jdGlv
bihwZXJtaXNzaW9uX3BhcmFtcywgY29udGV4dD1udWxsKQoreworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiBwZXJtaXNzaW9uX3BhcmFtcy5kZXNjcmlwdG9yLm5hbWUgPT0gImdlb2xvY2F0
aW9uIikgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci5zZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbig1MS40NzgsIC0wLjE2Niwg
MTAwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRHZW9sb2NhdGlvblBlcm1pc3Npb24ocGVybWlz
c2lvbl9wYXJhbXMuc3RhdGUgPT0gImdyYW50ZWQiKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOworICAgIH0KKyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJ1
bmltcGxlbWVudGVkIikpOworfTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCA3OTk1ZDRkZDQ2MWQuLjE5YTAxNzJkMTIy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZl
YXR1cmVQb2xpY3kuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkdlb05vdGlmaWVy
LmgiCkBAIC0yOTksOCArMzAwLDE0IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9u
OjpsYXN0UG9zaXRpb24oKQogCiB2b2lkIEdlb2xvY2F0aW9uOjpnZXRDdXJyZW50UG9zaXRpb24o
UmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8UG9zaXRpb25F
cnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFBvc2l0aW9uT3B0aW9ucyYmIG9wdGlvbnMp
CiB7Ci0gICAgaWYgKCFmcmFtZSgpKQorICAgIGlmICghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQo
KS0+aXNGdWxseUFjdGl2ZSgpKSB7CisgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGVycm9y
Q2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgeworICAgICAgICAgICAgZXJyb3JD
YWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2so
VGFza1NvdXJjZTo6R2VvbG9jYXRpb24sIFtlcnJvckNhbGxiYWNrXSB7CisgICAgICAgICAgICAg
ICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpj
cmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgIkRv
Y3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3MpKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvIG5vdGlmaWVyID0gR2VvTm90
aWZpZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGVy
cm9yQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsKICAgICBzdGFydFJlcXVlc3Qobm90aWZp
ZXIucHRyKCkpOwpAQCAtMzEwLDggKzMxNywxNCBAQCB2b2lkIEdlb2xvY2F0aW9uOjpnZXRDdXJy
ZW50UG9zaXRpb24oUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZQog
CiBpbnQgR2VvbG9jYXRpb246OndhdGNoUG9zaXRpb24oUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYg
c3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2Fs
bGJhY2ssIFBvc2l0aW9uT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCFmcmFtZSgpKQor
ICAgIGlmICghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+aXNGdWxseUFjdGl2ZSgpKSB7Cisg
ICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGVycm9yQ2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6R2VvbG9jYXRpb24s
IFtlcnJvckNhbGxiYWNrXSB7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxl
RXZlbnQoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3Rp
dmUiX3MpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIHJldHVybiAwOwor
ICAgIH0KIAogICAgIGF1dG8gbm90aWZpZXIgPSBHZW9Ob3RpZmllcjo6Y3JlYXRlKCp0aGlzLCBX
VEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUo
b3B0aW9ucykpOwogICAgIHN0YXJ0UmVxdWVzdChub3RpZmllci5wdHIoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydENhbGxiYWNrcy5oCmluZGV4IGU2
Y2EyYWY3MjdjZS4uNDJmZDZhNGE3ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3MuaApAQCAtNDQsOCArNDQsMTIgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjxJRExDYWxsYmFja0Z1bmN0aW9uPFQ+PiA6
IERlZmF1bHRDb252ZXJ0ZXIKICAgICAgICAgICAgIGV4Y2VwdGlvblRocm93ZXIobGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IH0KKworICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogaW5jdW1iZW50R2xvYmFsT2JqZWN0ID0g
Jmdsb2JhbE9iamVjdDsKKyAgICAgICAgaWYgKGF1dG8qIGdsb2JhbE9iamVjdCA9IEpTQzo6Q2Fs
bEZyYW1lOjpnbG9iYWxPYmplY3RPZkNsb3Nlc3RDb2RlQmxvY2sodm0sIHZtLnRvcENhbGxGcmFt
ZSkpCisgICAgICAgICAgICBpbmN1bWJlbnRHbG9iYWxPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIAotICAgICAgICByZXR1cm4g
VDo6Y3JlYXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCAmZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
cmV0dXJuIFQ6OmNyZWF0ZShKU0M6OmFzT2JqZWN0KHZhbHVlKSwgaW5jdW1iZW50R2xvYmFsT2Jq
ZWN0KTsKICAgICB9CiB9OwogCkBAIC03OSw3ICs4MywxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQ29udmVydGVyPElETENhbGxiYWNrSW50ZXJmYWNlPFQ+PiA6IERlZmF1bHRDb252
ZXJ0ZQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIAotICAgICAgICBy
ZXR1cm4gVDo6Y3JlYXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCAmZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgSlNET01HbG9iYWxPYmplY3QqIGluY3VtYmVudEdsb2JhbE9iamVjdCA9ICZnbG9iYWxP
YmplY3Q7CisgICAgICAgIGlmIChhdXRvKiBnbG9iYWxPYmplY3QgPSBKU0M6OkNhbGxGcmFtZTo6
Z2xvYmFsT2JqZWN0T2ZDbG9zZXN0Q29kZUJsb2NrKHZtLCB2bS50b3BDYWxsRnJhbWUpKQorICAg
ICAgICAgICAgaW5jdW1iZW50R2xvYmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworCisgICAgICAgIHJldHVybiBUOjpjcmVhdGUoSlNDOjph
c09iamVjdCh2YWx1ZSksIGluY3VtYmVudEdsb2JhbE9iamVjdCk7CiAgICAgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCmluZGV4IDMzMmM5
NzQ5NjY0OC4uYzY5MjFkYTY4YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSWRs
ZUNhbGxiYWNrQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxs
YmFja0NvbnRyb2xsZXIuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBJZGxlQ2FsbGJhY2tD
b250cm9sbGVyOjpxdWV1ZVRhc2tUb0ludm9rZUlkbGVDYWxsYmFja3MoTW9ub3RvbmljVGltZSBk
ZWFkbGkKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9yZXF1ZXN0aWRsZWNhbGxiYWNrLyNpbnZv
a2UtaWRsZS1jYWxsYmFja3MtYWxnb3JpdGhtCiB2b2lkIElkbGVDYWxsYmFja0NvbnRyb2xsZXI6
Omludm9rZUlkbGVDYWxsYmFja3MoTW9ub3RvbmljVGltZSBkZWFkbGluZSkKIHsKLSAgICBpZiAo
IW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKaW5kZXggNDUyMGQ0NTU3NzgyLi43MTMzZjY3OGVhMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaApAQCAtMzIsNiArMzIsNyBAQCBlbnVtIGNsYXNzIFRh
c2tTb3VyY2UgOiB1aW50OF90IHsKICAgICBEYXRhYmFzZUFjY2VzcywKICAgICBGaWxlUmVhZGlu
ZywKICAgICBGb250TG9hZGluZywKKyAgICBHZW9sb2NhdGlvbiwKICAgICBJZGxlVGFzaywKICAg
ICBJbmRleGVkREIsCiAgICAgTWVkaWFFbGVtZW50LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436297</attachid>
            <date>2021-08-24 09:42:01 -0700</date>
            <delta_ts>2021-08-24 11:50:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228319-20210824094200.patch</filename>
            <type>text/plain</type>
            <size>26097</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY0ZGU3ZmVlZGUxMjZk
MjcyY2E4Njk0YzU5M2NhMjZiMWFjZGVhMS4uYjNjZDk3ZGM3ZWZlMjQ1MDQ3YmQ1MjhmMWUwNWRl
YTI5YTUzNWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA4LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIHNo
b3VsZCBjYWxsYmFjayB3aXRoIGVycm9yIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgzMTkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgxNDUwMzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Z2V0Q3VycmVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjp3YXRjaFBvc2l0aW9uKToKKyAgICAgICAgU2NoZWR1bGUgYSB0YXNrIHRvIGNh
bGwgdGhlIGVycm9yIGNhbGxiYWNrIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
LCBhcworICAgICAgICBwZXIgdGhlIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9n
aXRodWIuY29tL3czYy9nZW9sb2NhdGlvbi1hcGkvaXNzdWVzLzk2CisgICAgICAgIC0gaHR0cHM6
Ly9naXRodWIuY29tL3czYy9nZW9sb2NhdGlvbi1hcGkvcHVsbC85NworCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0Q2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252
ZXJ0ZXI8SURMQ2FsbGJhY2tGdW5jdGlvbjxUPj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udmVydGVyPElETENhbGxiYWNrSW50ZXJmYWNlPFQ+Pjo6Y29udmVydCk6CisgICAgICAg
IE1ha2Ugc3VyZSB3ZSB1c2UgdGhlIGluY3VtYmVudCBnbG9iYWwgb2JqZWN0IHdoZW4gY29uc3Ry
dWN0aW5nIGNhbGxiYWNrIGZ1bmN0aW9ucyAvCisgICAgICAgIGludGVyZmFjZXMsIGFzIHBlciB0
aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2VzLWNhbGxiYWNrLWludGVyZmFjZQorICAgICAgICAtIGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLWNhbGxiYWNrLWZ1bmN0aW9uCisgICAgICAgIFdpdGhv
dXQgdGhpcywgdGhlIGdlb2xvY2F0aW9uIEFQSSB3b3VsZCBiZSB1bmFibGUgdG8gY2FsbCBpdHMg
ZXJyb3IgY2FsbGJhY2sgd2hlbiBpbgorICAgICAgICBhIGRldGFjaGVkIGZyYW1lIGJlY2F1c2Ug
dGhlIGNhbGxiYWNrJ3MgZ2xvYmFsIG9iamVjdCB3b3VsZCBiZSB0aGUgZ2VvbG9jYXRpb24gb2Jq
ZWN0J3MKKyAgICAgICAgZ2xvYmFsIG9iamVjdC4KKworICAgICAgICAqIGRvbS9JZGxlQ2FsbGJh
Y2tDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklkbGVDYWxsYmFja0NvbnRyb2xs
ZXI6Omludm9rZUlkbGVDYWxsYmFja3MpOgorICAgICAgICBNYWtlIHN1cmUgd2UgZG9uJ3QgZmly
ZSByZXF1ZXN0SWRsZUNhbGxiYWNrIGNhbGxiYWNrcyBpbiBkZXRhY2hlZCBpZnJhbWVzLCB0byBt
YWludGFpbgorICAgICAgICBwcmUtZXhpc3RpbmcgYmVoYXZpb3IgYW5kIGtlZXAgbGF5b3V0IHRl
c3RzIHBhc3NpbmcuIEkgaGFkIHRvIG1ha2UgdGhpcyBjaGFuZ2UgYmVjYXVzZQorICAgICAgICBj
YWxsYmFjayBpbnRlcmZhY2VzIC8gZnVuY3Rpb25zIGFyZSBub3cgdXNpbmcgYSBkaWZmZXJlbnQg
Z2xvYmFsIG9iamVjdCBhbmQgY2FuIG5vdworICAgICAgICBnZXQgY2FsbGVkIGluIGNhc2VzIHdo
ZW4gdGhleSBwcmV2aW91c2x5IGNvdWxkbid0LgorCisgICAgICAgICogZG9tL1Rhc2tTb3VyY2Uu
aDoKKyAgICAgICAgQXMgR2VvbG9jYXRpb24gdGFzayBzb3VyY2UgZm9yIHRoZSBIVE1MNSBldmVu
dCBsb29wLCBhcyBwZXIgdGhlIEdlb2xvY2F0aW9uCisgICAgICAgIHNwZWNpZmljYXRpb24uCisK
IDIwMjEtMDgtMjQgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4K
IAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgbGF0ZSBBdWd1c3QgMjAyMQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApp
bmRleCA3OTk1ZDRkZDQ2MWRlMDM2Y2Q4NjkxYjNmZjE4MWFlYWVmYjEyZDkyLi4xOWEwMTcyZDEy
MmYzYzRkYzRlMGEyMzkxZDE3MGNjZDJmNDE4YmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRmVhdHVyZVBvbGljeS5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKQEAgLTI5OSw4ICszMDAsMTQgQEAgR2Vv
bG9jYXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiAKIHZvaWQgR2Vv
bG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbihSZWY8UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNj
ZXNzQ2FsbGJhY2ssIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFj
aywgUG9zaXRpb25PcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBpZiAoIWZyYW1lKCkpCisgICAg
aWYgKCFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5pc0Z1bGx5QWN0aXZlKCkpIHsKKyAgICAg
ICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKSB7CisgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpHZW9sb2NhdGlvbiwgW2Vy
cm9yQ2FsbGJhY2tdIHsKKyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVu
dChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJf
cykpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIGF1dG8gbm90aWZpZXIgPSBHZW9Ob3RpZmllcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3Zl
KHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUob3B0aW9u
cykpOwogICAgIHN0YXJ0UmVxdWVzdChub3RpZmllci5wdHIoKSk7CkBAIC0zMTAsOCArMzE3LDE0
IEBAIHZvaWQgR2VvbG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbihSZWY8UG9zaXRpb25DYWxs
YmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlCiAKIGludCBHZW9sb2NhdGlvbjo6d2F0Y2hQb3Np
dGlvbihSZWY8UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxQb3Np
dGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUG9zaXRpb25PcHRpb25zJiYgb3B0
aW9ucykKIHsKLSAgICBpZiAoIWZyYW1lKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFkb2N1
bWVudCgpLT5pc0Z1bGx5QWN0aXZlKCkpIHsKKyAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYg
ZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgICAgICBl
cnJvckNhbGxiYWNrLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVl
VGFzayhUYXNrU291cmNlOjpHZW9sb2NhdGlvbiwgW2Vycm9yQ2FsbGJhY2tdIHsKKyAgICAgICAg
ICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJfcykpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgYXV0byBub3RpZmllciA9
IEdlb05vdGlmaWVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RG
TW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CiAgICAgc3RhcnRSZXF1ZXN0
KG5vdGlmaWVyLnB0cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydENhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0Q2FsbGJhY2tzLmgKaW5kZXggZTZjYTJhZjcyN2NlOGFmN2RiMjMxZGM3MGViNDg2
NDBhODczYzk2ZC4uNDJmZDZhNGE3ZjU4MjBiZjZhYjI2ZWY4YWJmOTcxN2Y1ZDgyMTM1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0Q2FsbGJhY2tz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0Q2FsbGJhY2tz
LmgKQEAgLTQ0LDggKzQ0LDEyIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb252ZXJ0
ZXI8SURMQ2FsbGJhY2tGdW5jdGlvbjxUPj4gOiBEZWZhdWx0Q29udmVydGVyCiAgICAgICAgICAg
ICBleGNlcHRpb25UaHJvd2VyKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CisKKyAgICAgICAgSlNET01HbG9iYWxPYmpl
Y3QqIGluY3VtYmVudEdsb2JhbE9iamVjdCA9ICZnbG9iYWxPYmplY3Q7CisgICAgICAgIGlmIChh
dXRvKiBnbG9iYWxPYmplY3QgPSBKU0M6OkNhbGxGcmFtZTo6Z2xvYmFsT2JqZWN0T2ZDbG9zZXN0
Q29kZUJsb2NrKHZtLCB2bS50b3BDYWxsRnJhbWUpKQorICAgICAgICAgICAgaW5jdW1iZW50R2xv
YmFsT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
OwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIFQ6OmNyZWF0ZShKU0M6OmFzT2JqZWN0KHZhbHVl
KSwgJmdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBUOjpjcmVhdGUoSlNDOjphc09iamVj
dCh2YWx1ZSksIGluY3VtYmVudEdsb2JhbE9iamVjdCk7CiAgICAgfQogfTsKIApAQCAtNzksNyAr
ODMsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjxJRExDYWxsYmFj
a0ludGVyZmFjZTxUPj4gOiBEZWZhdWx0Q29udmVydGUKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIFQ6OmNyZWF0ZShKU0M6OmFzT2JqZWN0
KHZhbHVlKSwgJmdsb2JhbE9iamVjdCk7CisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1
bWJlbnRHbG9iYWxPYmplY3QgPSAmZ2xvYmFsT2JqZWN0OworICAgICAgICBpZiAoYXV0byogZ2xv
YmFsT2JqZWN0ID0gSlNDOjpDYWxsRnJhbWU6Omdsb2JhbE9iamVjdE9mQ2xvc2VzdENvZGVCbG9j
ayh2bSwgdm0udG9wQ2FsbEZyYW1lKSkKKyAgICAgICAgICAgIGluY3VtYmVudEdsb2JhbE9iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKworICAg
ICAgICByZXR1cm4gVDo6Y3JlYXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCBpbmN1bWJlbnRHbG9i
YWxPYmplY3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9J
ZGxlQ2FsbGJhY2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJh
Y2tDb250cm9sbGVyLmNwcAppbmRleCAzMzJjOTc0OTY2NDgyNzcxOTA3NDRjOGUwMDA3NjAyYThh
NzkxZDY1Li5jNjkyMWRhNjhjMDA2NjdiYWU4NDJkYmYwYTUxNmI0NDhlZGZiNzViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCkBAIC0xMDksNyAr
MTA5LDcgQEAgdm9pZCBJZGxlQ2FsbGJhY2tDb250cm9sbGVyOjpxdWV1ZVRhc2tUb0ludm9rZUlk
bGVDYWxsYmFja3MoTW9ub3RvbmljVGltZSBkZWFkbGkKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by9yZXF1ZXN0aWRsZWNhbGxiYWNrLyNpbnZva2UtaWRsZS1jYWxsYmFja3MtYWxnb3JpdGhtCiB2
b2lkIElkbGVDYWxsYmFja0NvbnRyb2xsZXI6Omludm9rZUlkbGVDYWxsYmFja3MoTW9ub3Rvbmlj
VGltZSBkZWFkbGluZSkKIHsKLSAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgaWYgKCFtX2RvY3Vt
ZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRv
IG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Rhc2tTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKaW5kZXgg
NDUyMGQ0NTU3NzgyMjBkZjVhODNlNWI5NWRlYzhiZjRhMjBjMGMyZi4uNzEzM2Y2NzhlYTJkOTky
Njk1MTYwMjA4NjRlZjEzZDRmM2VmZDM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1Rhc2tTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFza1NvdXJjZS5oCkBAIC0z
Miw2ICszMiw3IEBAIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3QgewogICAgIERhdGFi
YXNlQWNjZXNzLAogICAgIEZpbGVSZWFkaW5nLAogICAgIEZvbnRMb2FkaW5nLAorICAgIEdlb2xv
Y2F0aW9uLAogICAgIElkbGVUYXNrLAogICAgIEluZGV4ZWREQiwKICAgICBNZWRpYUVsZW1lbnQs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMWRlYmEwNzk2YWMzYmZjODQ2NmU3ZjE4MmMzZDdhNzBiYTJhZWY2Zi4uMmM5YmNh
NGY5OGZmMGEwODk3YjkwZDhjM2Y5NWRmOTgyODI4ZjUwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDIxLTA4LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
R2VvbG9jYXRpb24gQVBJIHNob3VsZCBjYWxsYmFjayB3aXRoIGVycm9yIGlmIGRvYyBpcyBub3Qg
ZnVsbHkgYWN0aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjgzMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxNDUwMzE1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAvIHJlYmFzZWxp
bmUgZXhpc3RpbmcgbGF5b3V0IHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10
by1kZWxldGVkLWNvbnRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNz
aW9uLWRlbmllZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24v
ZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC1p
bm5lcjEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdp
bmRvdy1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RldGFjaGVk
LXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy5odG1sOgorCiAyMDIxLTA4LTI0ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyODEz
MDUpIFtHU3RyZWFtZXJdIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLWZyYW1lLXJh
dGUuaHRtbCB0aW1lb3V0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjI3Nzgy
NGI4ZjAzMjRiOWU3ZjQ4MzA5MWJjZjBiZjRiNjkyOTUxZC4uMGM1MGI4MTA4MmJhZTczN2ExZjU1
ZTI1MDNkZWQ5YTUyNzVlNWJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMjEtMDgtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBHZW9sb2NhdGlvbiBBUEkgc2hvdWxkIGNhbGxiYWNrIHdpdGggZXJyb3IgaWYg
ZG9jIGlzIG5vdCBmdWxseSBhY3RpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyODMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODE0NTAzMTU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0aW9ucy5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVj
a3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRp
b24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUu
aHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0
aW9uLUFQSS9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICBJbXBvcnQgdGVz
dCBjb3ZlcmFnZSBmcm9tIFdQVCBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9wdWxsLzI5Nzk5LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLXZlbmRvci5qczoKKyAgICAgICAgKHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRl
cm5hbC5zZXRfcGVybWlzc2lvbik6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0ZXN0X2RyaXZl
ci5zZXRfcGVybWlzc2lvbigiZ2VvbG9jYXRpb24iLCAiZ3JhbnRlZCIpIHNvIHRoYXQgR2VvbG9j
YXRpb24KKyAgICAgICAgV1BUIHRlc3RzIGNhbiBydW4gd2l0aCBvdXIgaW5mcmFzdHJ1Y3R1cmUu
CisKIDIwMjEtMDgtMjQgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIGNhbmNlbCBkaWFsb2cgdGFzayB0byBgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyYC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRv
LWRlbGV0ZWQtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IGU3
YmE5ZTYzYTQ0NjNhOTg3ZmZhYjk3NTU3NTVjYzU4ZDZlNjI0M2IuLjY0NTU3NWQ5NTdjNzcxNmM1
OTQzNGYxMDk2Mzk0ODA1Mjc1MTM0ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1j
b250ZXh0LWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgVGVzdHMgdGhhdCB3aGVuIGEgR2Vv
bG9jYXRpb24gcmVxdWVzdCBpcyBtYWRlIGZyb20gYSByZW1vdGUgZnJhbWUsIGFuZCB0aGF0IGZy
YW0KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIFN1Y2Nlc3MgY2FsbGJhY2sg
aW52b2tlZAorUEFTUyBObyBjYWxsYmFja3MgaW52b2tlZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC5o
dG1sCmluZGV4IDUwNDNiZWZmMzRmMzRmYWI1ZjhmYjNkYWI1ODY4M2Y0YWFhZDE4YmMuLmUxMDVj
NTQwOGYzMzdhZGE0NDA4ZTkwNjUwMTczNGVlZGQ5MmE2ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0
ZWQtY29udGV4dC5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIG9uRmlyc3RJZnJhbWVM
b2FkZWQoKSB7CiAKIGZ1bmN0aW9uIG9uU2Vjb25kSWZyYW1lTG9hZGVkKCkgewogICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0RmFpbGVkKCdObyBjYWxsYmFj
a3MgaW52b2tlZCcpOworICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52b2tlZCcp
OwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9LCA1MDApOwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29u
bmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0CmluZGV4IDEyNjk5Y2MxMmMyMGM2MjQx
NDZjYmU0ZjA1ODBiNDJhMmE1ZTcyY2QuLmNhOTFjMTJhNjQ5ZTI1YjVkMTA2ODJmZGMyNGFlYzU5
ZjJjMDhjMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rp
c2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50
eHQKQEAgLTMsNyArMyw3IEBAIFRlc3RzIHRoYXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBh
IEdlb2xvY2F0aW9uIG9iamVjdCBhZnRlciBpdHMgZnJhbWUgaGFzIGJlCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAotTWV0aG9kIGNhbGxlZCBvbiBHZW9sb2NhdGlvbiBvYmplY3Qgd2l0
aCBkaXNjb25uZWN0ZWQgRnJhbWUuCitQQVNTIEVycm9yIGNhbGxiYWNrIGludm9rZWQKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVh
ZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1hbHJlYWR5Lmh0bWwKaW5kZXggMTg3ZjlhNTliMzhlODE1MjFmNDcwN2UzYmI2Yjc1NjE0
NWEzODdjMS4uZGIwNTg3YjliMWNlZjFhNmU4NGUwODljZDY4MzZlNjk0NjkyODQ1ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1l
LWFscmVhZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNj
b25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIG9u
U2Vjb25kSWZyYW1lTG9hZGVkKCkgewogICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxi
YWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAg
IH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52
b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgdGVzdFBhc3NlZCgnRXJyb3IgY2FsbGJhY2sg
aW52b2tlZCcpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKICAgICBzZXRUaW1l
b3V0KGZpbmlzaFRlc3QsIDEwMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3RlZC50eHQKaW5k
ZXggZWJjOGIyNTZkMDdiYzM1NTFhMWVhZTY3NGNiMjMwYTNjMmMyZWNiOS4uOGUxMDYxMTk3ZDQ5
Nzg5NmUyMjUwMzMxMjMwNTA2MzNlN2I0NzJjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0
ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUZXN0cyB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIG1hZGUg
b24gYSBHZW9sb2NhdGlvbiBvYmplY3QgYW5kIGl0cyBGcmFtZSBpcyBkaXNjbwogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgTm8gY2FsbGJhY2tzIGludm9rZWQKK1BBU1MgRXJy
b3IgY2FsbGJhY2sgaW52b2tlZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Np
b24tZGVuaWVkLWV4cGVjdGVkLnR4dAppbmRleCA5NDI0NjBlMzlkMzE2MGZmMGIzMjYwMjQ3YTZm
N2Y0NmU2NTkwYmY0Li42ODlkODliZmM2MzU0MjM2NzhiM2RhYzA2ZmYyZjBkZGViMTg1MDc2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQt
ZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1l
eHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNT
IGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKIFBBU1MgZXJyb3IubWVzc2Fn
ZSBpcyAiVXNlciBkZW5pZWQgR2VvbG9jYXRpb24iCiAKLVBBU1MgTm8gY2FsbGJhY2tzIGludm9r
ZWQKK1BBU1MgRXJyb3IgY2FsbGJhY2sgaW52b2tlZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5odG1sCmluZGV4IDBhNGRlYzUzZmI1MmFiNmMyOTIxMjk4MjhiYTEyZjY1
ZDYzZTE2ZDEuLjU1M2Q1MDNhMWViMzVmNTQ2ZTYzZjFhMzMyNTJjY2Y3YTFhNGIzNWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xv
Y2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCkBAIC0zNiwx
MyArMzYsMTMgQEAgZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKICAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQo
J0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIHRlc3RQYXNz
ZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgfSk7CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVzdFBhc3NlZCgn
Tm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAgICAgICAgdGVzdEZhaWxlZCgnTm8gY2FsbGJhY2tz
IGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSwgMTAwKTsKKyAgICB9
LCAxMDAwKTsKIH0KIAogdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFt
ZScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29u
bmVjdGVkLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNj
b25uZWN0ZWQtZnJhbWUuaHRtbAppbmRleCBiMDhlNzY0Mjc4ZWIxMGQ2M2JhYjVhZmQyZjY5MDYz
ZWI1YTU5ZjlmLi5hYTljM2MyY2I1ODliNjMzZjIwMjhhZjJhZGQ1YWUyNzI2YmM2NTIwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJh
bWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0
ZWQtZnJhbWUuaHRtbApAQCAtMjMsMTMgKzIzLDEzIEBAIGZ1bmN0aW9uIG9uSWZyYW1lVW5sb2Fk
ZWQoKSB7CiAgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4
cGVjdGVkbHknKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSwgZnVuY3Rpb24oZSkg
ewotICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRs
eScpOworICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkJyk7CiAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
Ci0gICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CisgICAgICAgIHRl
c3RGYWlsZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgIH0sIDEwMCk7CisgICAgfSwgMTAwMCk7CiB9CiAKIHZhciBpZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtaW5u
ZXIxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvY2Fs
bGJhY2stdG8tZGVsZXRlZC1jb250ZXh0LWlubmVyMS5odG1sCmluZGV4IDljNTE1ODE5MGE4MTY4
YzJjZWI2MmIwODBhODUyYTQzYWE4MDBjY2UuLmY0YzAyNzlkMWQ4MGU4MmVlOTA2MzgyMDMxOGMx
OGRjY2E4ZmJjZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L3Jlc291cmNlcy9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtaW5uZXIxLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2NhbGxiYWNrLXRvLWRl
bGV0ZWQtY29udGV4dC1pbm5lcjEuaHRtbApAQCAtMTMsNyArMTMsNyBAQAogICAgICAgICAgIC8v
IE1ha2UgcmVxdWVzdCBmcm9tIHJlbW90ZSBmcmFtZSwgdGhpcyBmcmFtZSB3aWxsIGJlIGdvbmUg
YnkgdGhlIHRpbWUgdGhlIEdlb2xvY2F0aW9uCiAgICAgICAgICAgLy8gb2JqZWN0IGF0dGVtcHRz
IHRvIGludm9rZSB0aGUgY2FsbGJhY2suCiAgICAgICAgICAgd2luZG93LnBhcmVudC5uYXZpZ2F0
b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICBwYXJlbnQudGVzdFBhc3NlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkJyk7CisgICAg
ICAgICAgICAgIHBhcmVudC50ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5l
eHBlY3RlZGx5Jyk7CiAgICAgICAgICAgICAgIHBhcmVudC5maW5pc2hKU1Rlc3QoKTsKICAgICAg
ICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgcGFyZW50LnRlc3RGYWlsZWQoJ0Vy
cm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRvdy1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBhcmVudC13aW5k
b3ctZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCAxOWViNTE2OWVlNDVjN2UzNDU4OGI3YzkwOGRm
MzIxOTY4NmUxYmI2Li4yYjdiODdhNDYxNDRhMmFkYzk4Y2MwOGRjZGIzMGI4MjU3MzVkNjZiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdp
bmRvdy1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rl
dGFjaGVkLXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsOSArMSw5
IEBACi1DT05TT0xFIE1FU1NBR0U6IGVycm9yCiBUaGlzIHRlc3RzIGNyZWF0aW5nIGEgZGlzY29u
bmVjdGVkIFNWRyBlbGVtZW50IHdpdGggcmVzaXplIGV2ZW50IGhhbmRsZXIuIFRoZSBldmVudCBo
YW5kbGVyIHNob3VsZCBub3QgZ2V0IGRpc3BhdGNoZWQgdW5sZXNzIHRoZSBlbGVtZW50IGlzIGNv
bm5lY3RlZAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBFeGNlcHRpb24g
dGhyb3duCiBQQVNTIGRpZEZpcmVSZXNpemUgaXMgZmFsc2UKIFBBU1MgZGlkRmlyZU9uRXJyb3Ig
aXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RldGFjaGVkLXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBhcmVudC13aW5kb3ct
ZXZlbnRzLmh0bWwKaW5kZXggNmZiYzQzZTlkY2QwMGU2M2Y0ZDk0NGZlMGJiZTM5NWQ3NDc4Zjc2
NS4uODg5ZjAwOWZlNWYzZTljMzBlMjlkZjJiOTY0NzAwOWUzZmU1YjkxZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBhcmVudC13aW5kb3ctZXZlbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBhcmVudC13
aW5kb3ctZXZlbnRzLmh0bWwKQEAgLTIxLDcgKzIxLDExIEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZUZhbHNlKCdkaWRGaXJlT25FcnJvcicpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5ldmFsKCd0aHJvdyAiZXJyb3IiJyk7Cisg
ICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWUu
Y29udGVudFdpbmRvdy5ldmFsKCd0aHJvdyAiZXJyb3IiJyk7CisgICAgICAgICAgICAgICAgICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2Vw
dGlvbiB0aHJvd24iKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0aW9ucy5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0
aW9uLUFQSS9Qb3NpdGlvbk9wdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQwMzI4MmMx
ZTE4NDUwNTg4YzQ4YWIxNDZkMzc4MjcwZjUzOGNiNjYuLjAzOTMzOGQ4MGE5ZmIzZWNhNGNkZDU2
MDA4ZDhkMmJiOTc4ZmZiYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0aW9ucy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9nZW9sb2NhdGlvbi1BUEkvUG9zaXRpb25PcHRpb25zLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMSw1ICsxLDkgQEAKIAogUEFTUyBDYWxsIGdldEN1cnJlbnRQb3NpdGlvbiB3aXRoIHdyb25n
IHR5cGUgZm9yIGVuYWJsZUhpZ2hBY2N1cmFjeS4gTm8gZXhjZXB0aW9uIGV4cGVjdGVkLgogUEFT
UyBDYWxsIHdhdGNoUG9zaXRpb24gd2l0aCB3cm9uZyB0eXBlIGZvciBlbmFibGVIaWdoQWNjdXJh
Y3kuIE5vIGV4Y2VwdGlvbiBleHBlY3RlZC4KLUZBSUwgUG9zaXRpb25PcHRpb25zIHRlc3RzIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9y
OiB1bmltcGxlbWVudGVkIgorUEFTUyBQb3NpdGlvbk9wdGlvbnMgdGVzdHMKK1BBU1MgU2V0IHRp
bWVvdXQgYW5kIG1heGltdW1BZ2UgdG8gMCwgY2hlY2sgdGhhdCB0aW1lb3V0IGVycm9yIHJhaXNl
ZCAoZ2V0Q3VycmVudFBvc2l0aW9uKQorUEFTUyBTZXQgdGltZW91dCBhbmQgbWF4aW11bUFnZSB0
byAwLCBjaGVjayB0aGF0IHRpbWVvdXQgZXJyb3IgcmFpc2VkICh3YXRjaFBvc2l0aW9uKQorUEFT
UyBDaGVjayB0aGF0IGEgbmVnYXRpdmUgdGltZW91dCB2YWx1ZSBpcyBlcXVpdmFsZW50IHRvIGEg
MCB0aW1lb3V0IHZhbHVlIChnZXRDdXJyZW50TG9jYXRpb24pCitQQVNTIENoZWNrIHRoYXQgYSBu
ZWdhdGl2ZSB0aW1lb3V0IHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8gYSAwIHRpbWVvdXQgdmFsdWUg
KHdhdGNoUG9zaXRpb24pCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmM1MjE3NGRiMzc2N2Q0N2JhMTkyZTRjM2MzNDc1OTRiM2RlMDczZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Z2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCisKK1BBU1Mgbm9uLWZ1bGx5IGFjdGl2ZSBkb2N1bWVudCBiZWhhdmlvcgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2dlb2xvY2F0aW9uLUFQSS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9ub24tZnVs
bHktYWN0aXZlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc1Yzc4N2NhYmY4NjFhZWQ5NjY2NGVh
YjE4MDVhNzZiZTk4NTE2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCIgLz4KKzx0aXRsZT5HZW9sb2NhdGlvbiBUZXN0OiBub24tZnVsbHkgYWN0aXZl
IGRvY3VtZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9naXRodWIu
Y29tL3czYy9nZW9sb2NhdGlvbi1hcGkvcHVsbC85NyIgLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZl
ci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdD4KKyAgcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9u
ICgpIHsKKyAgICBhd2FpdCB0ZXN0X2RyaXZlci5zZXRfcGVybWlzc2lvbih7IG5hbWU6ICJnZW9s
b2NhdGlvbiIgfSwgImdyYW50ZWQiKTsKKworICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lLCB3YWl0
IGZvciBpdCB0byBsb2FkLi4uCisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgaWZyYW1lLnNyYyA9ICJyZXNvdXJjZXMvaWZyYW1lLmh0bWwi
OworICAgIGlmcmFtZS5hbGxvdyA9ICJnZW9sb2NhdGlvbiI7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpZnJhbWUpOworCisgICAgLy8gLi4ud2FpdCBmb3IgdGhlIGlmcmFtZSB0byBs
b2FkLi4uCisgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+CisgICAgICBpZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KQorICAgICk7
CisKKyAgICAvLyBTdGVhbCBnZW9sb2NhdGlvbi4KKyAgICBjb25zdCBnZW8gPSBpZnJhbWUuY29u
dGVudFdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb247CisKKyAgICAvLyBObyBsb25nZXIgZnVs
bHkgYWN0aXZlLgorICAgIGlmcmFtZS5yZW1vdmUoKTsKKworICAgIC8vIFRyeSB0byB3YXRjaCBh
IHBvc2l0aW9uIHdoaWxlIG5vdCBmdWxseSBhY3RpdmUuLi4KKyAgICBjb25zdCB3YXRjaEVycm9y
ID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgY29uc3Qg
d2F0Y2hJZCA9IGdlby53YXRjaFBvc2l0aW9uKAorICAgICAgICByZWplY3QsIC8vIFdlIGRvbid0
IHdhbnQgYSBwb3NpdGlvbgorICAgICAgICByZXNvbHZlIC8vIFdlIHdhbnQgYW4gZXJyb3IhCisg
ICAgICApOworICAgICAgLy8gQWx3YXlzIHJldHVybiAwLgorICAgICAgYXNzZXJ0X2VxdWFscygK
KyAgICAgICAgd2F0Y2hJZCwKKyAgICAgICAgMCwKKyAgICAgICAgIndhdGNoSWQgaXMgMCB3aGVu
IGRvY3VtZW50IGlzIG5vdCBmdWxseS1hY3RpdmUiCisgICAgICApOworICAgICAgLy8gQW5kIGFn
YWluLCB0byBtYWtlIHN1cmUgaXQncyBub3QgY2hhbmdpbmcKKyAgICAgIGNvbnN0IHdhdGNoSWQy
ID0gZ2VvLndhdGNoUG9zaXRpb24oCisgICAgICAgICgpID0+IHt9LAorICAgICAgICAoKSA9PiB7
fQorICAgICAgKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIHdhdGNoSWQyLAorICAg
ICAgICAwLAorICAgICAgICAid2F0Y2hJZCByZW1haW5zIDAgd2hlbiBkb2N1bWVudCBpcyBub3Qg
ZnVsbHktYWN0aXZlIgorICAgICAgKTsKKyAgICB9KTsKKworICAgIGFzc2VydF9lcXVhbHMoCisg
ICAgICB3YXRjaEVycm9yLmNvZGUsCisgICAgICBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuUE9T
SVRJT05fVU5BVkFJTEFCTEUsCisgICAgICAid2F0Y2hQb3NpdGlvbigpIHJldHVybnMgYW4gZXJy
b3Igb24gbm9uLWZ1bGx5LWFjdGl2ZSBkb2N1bWVudCIKKyAgICApOworCisgICAgLy8gTm93IHRy
eSB0byBnZXQgY3VycmVudCBwb3NpdGlvbiB3aGlsZSBub3QgZnVsbHkgYWN0aXZlLi4uCisgICAg
Y29uc3QgcG9zaXRpb25FcnJvciA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgIGdlby5nZXRDdXJyZW50UG9zaXRpb24oCisgICAgICAgIHJlamVjdCwgLy8g
V2UgZG9uJ3Qgd2FudCBhIHBvc2l0aW9uCisgICAgICAgIHJlc29sdmUgLy8gV2Ugd2FudCBhbiBl
cnJvciEKKyAgICAgICk7CisgICAgfSk7CisgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgIHBvc2l0
aW9uRXJyb3IuY29kZSwKKyAgICAgIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5QT1NJVElPTl9V
TkFWQUlMQUJMRSwKKyAgICAgICJnZXRDdXJyZW50UG9zaXRpb24oKSBjYWxscyB0aGUgZXJyb3JD
YWxsYmFjayB3aXRoIFBPU0lUSU9OX1VOQVZBSUxBQkxFIgorICAgICk7CisKKyAgICAvLyBSZS1h
dHRhY2gsIGFuZCBnbyBiYWNrIHRvIGZ1bGx5IGFjdGl2ZS4KKyAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGlmcmFtZSk7CisgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cub3BlbmVyID0gd2lu
ZG93OworICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PgorICAgICAgaWZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSkKKyAgICApOwor
CisgICAgLy8gQW5kIHdlIGFyZSBiYWNrIHRvIGZ1bGx5IGFjdGl2ZS4KKyAgICBsZXQgd2F0Y2hJ
ZDsKKyAgICBsZXQgcG9zaXRpb24gPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICB3YXRjaElkID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmdl
b2xvY2F0aW9uLndhdGNoUG9zaXRpb24oCisgICAgICAgIHJlc29sdmUsCisgICAgICAgIHJlamVj
dAorICAgICAgKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfdHJ1ZShOdW1iZXIuaXNJbnRlZ2VyKHdh
dGNoSWQpLCAiRXhwZWN0ZWQgc29tZSBudW1iZXIgZm9yIHdhdGNoSWQiKTsKKyAgICBhc3NlcnRf
dHJ1ZShCb29sZWFuKHBvc2l0aW9uKSwgIkV4cGVjdGVkIGEgcG9zaXRpb24iKTsKKworICAgIC8v
IEZpbmFsbHksIGxldCdzIGdldCB0aGUgcG9zaXRpb24gZnJvbSB0aGUgcmVhdHRhY2hlZCBkb2N1
bWVudC4KKyAgICBwb3NpdGlvbiA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi5n
ZXRDdXJyZW50UG9zaXRpb24oCisgICAgICAgIHJlc29sdmUsCisgICAgICAgIHJlamVjdAorICAg
ICAgKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfdHJ1ZShCb29sZWFuKHBvc2l0aW9uKSwgIkV4cGVj
dGVkIGEgcG9zaXRpb24iKTsKKyAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3IuZ2Vv
bG9jYXRpb24uY2xlYXJXYXRjaCh3YXRjaElkKTsKKyAgfSwgIm5vbi1mdWxseSBhY3RpdmUgZG9j
dW1lbnQgYmVoYXZpb3IiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9n
ZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1Y2YzZDky
ZjM5NDI3Mzg2ODZhMjY3YzIyZDk1ZDRhNjQ2NGFmN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9y
ZXNvdXJjZXMvaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxoMT5KdXN0IGEgc3VwcG9ydCBmaWxlPC9oMT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMKaW5kZXggMjVlMjRj
NTk4YTI0NTY0NjFjMjk5NmJiMTVkZTMxNGE2ZDc2Y2YxYi4uNGRlNDA1Y2ZlZDM3YWNiYmJkYTEx
YmMzNDk1ZmRkOTc3MzIyMmQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dGRyaXZlci12ZW5kb3IuanMKQEAgLTI5MywzICsyOTMsMTYgQEAgd2luZG93LnRlc3RfZHJpdmVy
X2ludGVybmFsLmFjdGlvbl9zZXF1ZW5jZSA9IGZ1bmN0aW9uKHNvdXJjZXMpCiAgICAgaWYgKHBv
aW50ZXJUeXBlID09PSAibW91c2UiIHx8IHBvaW50ZXJUeXBlID09PSAicGVuIikKICAgICAgICAg
cmV0dXJuIGRpc3BhdGNoTW91c2VBY3Rpb25zKHBvaW50ZXJTb3VyY2UuYWN0aW9ucywgcG9pbnRl
clR5cGUpOwogfTsKKword2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLnNldF9wZXJtaXNzaW9u
ID0gZnVuY3Rpb24ocGVybWlzc2lvbl9wYXJhbXMsIGNvbnRleHQ9bnVsbCkKK3sKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIgJiYgcGVybWlzc2lvbl9wYXJhbXMuZGVzY3JpcHRvci5uYW1lID09
ICJnZW9sb2NhdGlvbiIpIHsKKyAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4geworICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oNTEuNDc4LCAt
MC4xNjYsIDEwMCk7CisgICAgICAgIH0sIDEwMCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uKHBlcm1pc3Npb25fcGFyYW1zLnN0YXRlID09ICJncmFudGVkIik7
CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICB9CisgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KG5ldyBFcnJvcigidW5pbXBsZW1lbnRlZCIpKTsKK307CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436315</attachid>
            <date>2021-08-24 11:50:49 -0700</date>
            <delta_ts>2022-01-19 07:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228319-20210824115048.patch</filename>
            <type>text/plain</type>
            <size>26515</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEzN2ZkOTI4ZDAzMTA5
ODc5YmZkZDkxZGM3M2VkMGFjOTU3MjQ2OC4uZWU4MTkxNjVhMjQ3MmY5YTQ4NzdiMDA3ZjAxYmY1
ZWQxOTE3MmNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA4LTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIHNo
b3VsZCBjYWxsYmFjayB3aXRoIGVycm9yIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgzMTkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgxNDUwMzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Z2V0Q3VycmVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjp3YXRjaFBvc2l0aW9uKToKKyAgICAgICAgU2NoZWR1bGUgYSB0YXNrIHRvIGNh
bGwgdGhlIGVycm9yIGNhbGxiYWNrIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZl
LCBhcworICAgICAgICBwZXIgdGhlIHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly9n
aXRodWIuY29tL3czYy9nZW9sb2NhdGlvbi1hcGkvaXNzdWVzLzk2CisgICAgICAgIC0gaHR0cHM6
Ly9naXRodWIuY29tL3czYy9nZW9sb2NhdGlvbi1hcGkvcHVsbC85NworCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0Q2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252
ZXJ0ZXI8SURMQ2FsbGJhY2tGdW5jdGlvbjxUPj46OmNvbnZlcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udmVydGVyPElETENhbGxiYWNrSW50ZXJmYWNlPFQ+Pjo6Y29udmVydCk6CisgICAgICAg
IE1ha2Ugc3VyZSB3ZSB1c2UgdGhlIGluY3VtYmVudCBnbG9iYWwgb2JqZWN0IHdoZW4gY29uc3Ry
dWN0aW5nIGNhbGxiYWNrIGZ1bmN0aW9ucyAvCisgICAgICAgIGludGVyZmFjZXMsIGFzIHBlciB0
aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2VzLWNhbGxiYWNrLWludGVyZmFjZQorICAgICAgICAtIGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2VzLWNhbGxiYWNrLWZ1bmN0aW9uCisgICAgICAgIFdpdGhv
dXQgdGhpcywgdGhlIGdlb2xvY2F0aW9uIEFQSSB3b3VsZCBiZSB1bmFibGUgdG8gY2FsbCBpdHMg
ZXJyb3IgY2FsbGJhY2sgd2hlbiBpbgorICAgICAgICBhIGRldGFjaGVkIGZyYW1lIGJlY2F1c2Ug
dGhlIGNhbGxiYWNrJ3MgZ2xvYmFsIG9iamVjdCB3b3VsZCBiZSB0aGUgZ2VvbG9jYXRpb24gb2Jq
ZWN0J3MKKyAgICAgICAgZ2xvYmFsIG9iamVjdC4KKworICAgICAgICAqIGRvbS9JZGxlQ2FsbGJh
Y2tDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklkbGVDYWxsYmFja0NvbnRyb2xs
ZXI6Omludm9rZUlkbGVDYWxsYmFja3MpOgorICAgICAgICBNYWtlIHN1cmUgd2UgZG9uJ3QgZmly
ZSByZXF1ZXN0SWRsZUNhbGxiYWNrIGNhbGxiYWNrcyBpbiBkZXRhY2hlZCBpZnJhbWVzLCB0byBt
YWludGFpbgorICAgICAgICBwcmUtZXhpc3RpbmcgYmVoYXZpb3IgYW5kIGtlZXAgbGF5b3V0IHRl
c3RzIHBhc3NpbmcuIEkgaGFkIHRvIG1ha2UgdGhpcyBjaGFuZ2UgYmVjYXVzZQorICAgICAgICBj
YWxsYmFjayBpbnRlcmZhY2VzIC8gZnVuY3Rpb25zIGFyZSBub3cgdXNpbmcgYSBkaWZmZXJlbnQg
Z2xvYmFsIG9iamVjdCBhbmQgY2FuIG5vdworICAgICAgICBnZXQgY2FsbGVkIGluIGNhc2VzIHdo
ZW4gdGhleSBwcmV2aW91c2x5IGNvdWxkbid0LgorCisgICAgICAgICogZG9tL1Rhc2tTb3VyY2Uu
aDoKKyAgICAgICAgQXMgR2VvbG9jYXRpb24gdGFzayBzb3VyY2UgZm9yIHRoZSBIVE1MNSBldmVu
dCBsb29wLCBhcyBwZXIgdGhlIEdlb2xvY2F0aW9uCisgICAgICAgIHNwZWNpZmljYXRpb24uCisK
IDIwMjEtMDgtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBUaHJlYWRTYW5pdGl6ZXI6IGRhdGEgcmFjZSBpbiBXVEY6OlN0cmluZ0ltcGw6
OmRlcmVmKCkgZm9yIFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEZpbGVEYXRhOjpm
aWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcAppbmRleCA3OTk1ZDRkZDQ2MWRlMDM2Y2Q4NjkxYjNmZjE4MWFlYWVmYjEyZDky
Li5iMzY3OWMyMjFmMzcyNDU2YTE4OWU3NGE3ZGZhNjNiNzU0NGQ1NjhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRmVhdHVyZVBvbGljeS5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKQEAgLTI5OSw4ICsz
MDAsMTQgQEAgR2VvbG9jYXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigp
CiAKIHZvaWQgR2VvbG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbihSZWY8UG9zaXRpb25DYWxs
YmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+JiYg
ZXJyb3JDYWxsYmFjaywgUG9zaXRpb25PcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBpZiAoIWZy
YW1lKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFkb2N1bWVudCgpLT5pc0Z1bGx5QWN0aXZl
KCkpIHsKKyAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYgZXJyb3JDYWxsYmFjay0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpHZW9s
b2NhdGlvbiwgW2Vycm9yQ2FsbGJhY2tdIHsKKyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCAiRG9jdW1lbnQgaXMgbm90IGZ1
bGx5IGFjdGl2ZSJfcykpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIGF1dG8gbm90aWZpZXIgPSBHZW9Ob3RpZmllcjo6Y3JlYXRlKCp0
aGlzLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdU
Rk1vdmUob3B0aW9ucykpOwogICAgIHN0YXJ0UmVxdWVzdChub3RpZmllci5wdHIoKSk7CkBAIC0z
MTAsOCArMzE3LDE0IEBAIHZvaWQgR2VvbG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbihSZWY8
UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlCiAKIGludCBHZW9sb2NhdGlv
bjo6d2F0Y2hQb3NpdGlvbihSZWY8UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ss
IFJlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUG9zaXRpb25P
cHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBpZiAoIWZyYW1lKCkpCisgICAgaWYgKCFkb2N1bWVu
dCgpIHx8ICFkb2N1bWVudCgpLT5pc0Z1bGx5QWN0aXZlKCkpIHsKKyAgICAgICAgaWYgKGVycm9y
Q2FsbGJhY2sgJiYgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7Cisg
ICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpHZW9sb2NhdGlvbiwgW2Vycm9yQ2FsbGJhY2td
IHsKKyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9O
X1VOQVZBSUxBQkxFLCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJfcykpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgYXV0
byBub3RpZmllciA9IEdlb05vdGlmaWVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CiAgICAg
c3RhcnRSZXF1ZXN0KG5vdGlmaWVyLnB0cigpKTsKQEAgLTY5MywxMCArNzA2LDggQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwotICAgIEFTU0VSVChwb3NpdGlvbik7Ci0KLSAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOworICAgIGlmIChSZWZQdHIgcG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKSkKKyAgICAg
ICAgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoKnBvc2l0aW9uKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlv
bjo6c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRDYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydENhbGxiYWNrcy5oCmluZGV4IGU2Y2EyYWY3Mjdj
ZThhZjdkYjIzMWRjNzBlYjQ4NjQwYTg3M2M5NmQuLjQyZmQ2YTRhN2Y1ODIwYmY2YWIyNmVmOGFi
Zjk3MTdmNWQ4MjEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydENhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydENhbGxiYWNrcy5oCkBAIC00NCw4ICs0NCwxMiBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgQ29udmVydGVyPElETENhbGxiYWNrRnVuY3Rpb248VD4+IDogRGVmYXVsdENv
bnZlcnRlcgogICAgICAgICAgICAgZXhjZXB0aW9uVGhyb3dlcihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQorCisgICAg
ICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBpbmN1bWJlbnRHbG9iYWxPYmplY3QgPSAmZ2xvYmFsT2Jq
ZWN0OworICAgICAgICBpZiAoYXV0byogZ2xvYmFsT2JqZWN0ID0gSlNDOjpDYWxsRnJhbWU6Omds
b2JhbE9iamVjdE9mQ2xvc2VzdENvZGVCbG9jayh2bSwgdm0udG9wQ2FsbEZyYW1lKSkKKyAgICAg
ICAgICAgIGluY3VtYmVudEdsb2JhbE9iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBUOjpjcmVhdGUo
SlNDOjphc09iamVjdCh2YWx1ZSksICZnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gVDo6
Y3JlYXRlKEpTQzo6YXNPYmplY3QodmFsdWUpLCBpbmN1bWJlbnRHbG9iYWxPYmplY3QpOwogICAg
IH0KIH07CiAKQEAgLTc5LDcgKzgzLDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBD
b252ZXJ0ZXI8SURMQ2FsbGJhY2tJbnRlcmZhY2U8VD4+IDogRGVmYXVsdENvbnZlcnRlCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBUOjpj
cmVhdGUoSlNDOjphc09iamVjdCh2YWx1ZSksICZnbG9iYWxPYmplY3QpOworICAgICAgICBKU0RP
TUdsb2JhbE9iamVjdCogaW5jdW1iZW50R2xvYmFsT2JqZWN0ID0gJmdsb2JhbE9iamVjdDsKKyAg
ICAgICAgaWYgKGF1dG8qIGdsb2JhbE9iamVjdCA9IEpTQzo6Q2FsbEZyYW1lOjpnbG9iYWxPYmpl
Y3RPZkNsb3Nlc3RDb2RlQmxvY2sodm0sIHZtLnRvcENhbGxGcmFtZSkpCisgICAgICAgICAgICBp
bmN1bWJlbnRHbG9iYWxPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCk7CisKKyAgICAgICAgcmV0dXJuIFQ6OmNyZWF0ZShKU0M6OmFzT2JqZWN0KHZh
bHVlKSwgaW5jdW1iZW50R2xvYmFsT2JqZWN0KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vSWRsZUNhbGxiYWNrQ29udHJvbGxlci5jcHAKaW5kZXggMzMyYzk3NDk2NjQ4Mjc3
MTkwNzQ0YzhlMDAwNzYwMmE4YTc5MWQ2NS4uYzY5MjFkYTY4YzAwNjY3YmFlODQyZGJmMGE1MTZi
NDQ4ZWRmYjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lkbGVDYWxsYmFja0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JZGxlQ2FsbGJhY2tDb250cm9s
bGVyLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSWRsZUNhbGxiYWNrQ29udHJvbGxlcjo6
cXVldWVUYXNrVG9JbnZva2VJZGxlQ2FsbGJhY2tzKE1vbm90b25pY1RpbWUgZGVhZGxpCiAvLyBo
dHRwczovL3czYy5naXRodWIuaW8vcmVxdWVzdGlkbGVjYWxsYmFjay8jaW52b2tlLWlkbGUtY2Fs
bGJhY2tzLWFsZ29yaXRobQogdm9pZCBJZGxlQ2FsbGJhY2tDb250cm9sbGVyOjppbnZva2VJZGxl
Q2FsbGJhY2tzKE1vbm90b25pY1RpbWUgZGVhZGxpbmUpCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50
KQorICAgIGlmICghbV9kb2N1bWVudCB8fCAhbV9kb2N1bWVudC0+ZnJhbWUoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgYXV0byBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VGFza1NvdXJjZS5oCmluZGV4IDQ1MjBkNDU1Nzc4MjIwZGY1YTgzZTViOTVkZWM4YmY0YTIwYzBj
MmYuLjcxMzNmNjc4ZWEyZDk5MjY5NTE2MDIwODY0ZWYxM2Q0ZjNlZmQzOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Rhc2tTb3VyY2UuaApAQCAtMzIsNiArMzIsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1
aW50OF90IHsKICAgICBEYXRhYmFzZUFjY2VzcywKICAgICBGaWxlUmVhZGluZywKICAgICBGb250
TG9hZGluZywKKyAgICBHZW9sb2NhdGlvbiwKICAgICBJZGxlVGFzaywKICAgICBJbmRleGVkREIs
CiAgICAgTWVkaWFFbGVtZW50LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkZWJhMDc5NmFjM2JmYzg0NjZlN2YxODJjM2Q3
YTcwYmEyYWVmNmYuLjJjOWJjYTRmOThmZjBhMDg5N2I5MGQ4YzNmOTVkZjk4MjgyOGY1MDQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wOC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBzaG91bGQgY2FsbGJhY2sgd2l0aCBl
cnJvciBpZiBkb2MgaXMgbm90IGZ1bGx5IGFjdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MTQ1MDMxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgLyByZWJhc2VsaW5lIGV4aXN0aW5nIGxheW91dCB0ZXN0cyB0byByZWZsZWN0IGJl
aGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNr
LXRvLWRlbGV0ZWQtY29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vR2Vv
bG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0Lmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZy
YW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25u
ZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9jYWxsYmFjay10
by1kZWxldGVkLWNvbnRleHQtaW5uZXIxLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvZGV0
YWNoZWQtc3ZnLXBhcmVudC13aW5kb3ctZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRvdy1ldmVudHMuaHRtbDoKKwogMjAy
MS0wOC0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjgxMzA1KSBbR1N0cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL2dldERp
c3BsYXlNZWRpYS1mcmFtZS1yYXRlLmh0bWwgdGltZW91dHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IGIyNzc4MjRiOGYwMzI0YjllN2Y0ODMwOTFiY2YwYmY0YjY5Mjk1MWQuLjBj
NTBiODEwODJiYWU3MzdhMWY1NWUyNTAzZGVkOWE1Mjc1ZTViYmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA4LTI0ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIHNob3VsZCBjYWxs
YmFjayB3aXRoIGVycm9yIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgzMTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgxNDUwMzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9Qb3NpdGlv
bk9wdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0
IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQ
SS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgSW1wb3J0IHRlc3QgY292ZXJhZ2UgZnJvbSBXUFQgaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yOTc5OS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanM6CisgICAgICAgICh3aW5k
b3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3Blcm1pc3Npb24pOgorICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgdGVzdF9kcml2ZXIuc2V0X3Blcm1pc3Npb24oImdlb2xvY2F0aW9uIiwgImdyYW50
ZWQiKSBzbyB0aGF0IEdlb2xvY2F0aW9uCisgICAgICAgIFdQVCB0ZXN0cyBjYW4gcnVuIHdpdGgg
b3VyIGluZnJhc3RydWN0dXJlLgorCiAyMDIxLTA4LTI0ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBjYW5jZWwgZGlhbG9nIHRhc2sgdG8gYGRlZmF1bHRLZXli
b2FyZEV2ZW50SGFuZGxlcmAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0LWV4
cGVjdGVkLnR4dAppbmRleCBlN2JhOWU2M2E0NDYzYTk4N2ZmYWI5NzU1NzU1Y2M1OGQ2ZTYyNDNi
Li42NDU1NzVkOTU3Yzc3MTZjNTk0MzRmMTA5NjM5NDgwNTI3NTEzNGQwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Nh
bGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIFRl
c3RzIHRoYXQgd2hlbiBhIEdlb2xvY2F0aW9uIHJlcXVlc3QgaXMgbWFkZSBmcm9tIGEgcmVtb3Rl
IGZyYW1lLCBhbmQgdGhhdCBmcmFtCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFT
UyBTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQKK1BBU1MgTm8gY2FsbGJhY2tzIGludm9rZWQKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tZGVsZXRlZC1j
b250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10
by1kZWxldGVkLWNvbnRleHQuaHRtbAppbmRleCA1MDQzYmVmZjM0ZjM0ZmFiNWY4ZmIzZGFiNTg2
ODNmNGFhYWQxOGJjLi5lMTA1YzU0MDhmMzM3YWRhNDQwOGU5MDY1MDE3MzRlZWRkOTJhNmUxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1k
ZWxldGVkLWNvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQuaHRtbApAQCAtMTMsNyArMTMsNyBAQCBmdW5j
dGlvbiBvbkZpcnN0SWZyYW1lTG9hZGVkKCkgewogCiBmdW5jdGlvbiBvblNlY29uZElmcmFtZUxv
YWRlZCgpIHsKICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgdGVz
dEZhaWxlZCgnTm8gY2FsbGJhY2tzIGludm9rZWQnKTsKKyAgICAgICAgdGVzdFBhc3NlZCgnTm8g
Y2FsbGJhY2tzIGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSwgNTAw
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dAppbmRl
eCAxMjY5OWNjMTJjMjBjNjI0MTQ2Y2JlNGYwNTgwYjQyYTJhNWU3MmNkLi5jYTkxYzEyYTY0OWUy
NWI1ZDEwNjgyZmRjMjRhZWM1OWYyYzA4YzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1l
LWFscmVhZHktZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBUZXN0cyB0aGF0IHdoZW4gYSBy
ZXF1ZXN0IGlzIG1hZGUgb24gYSBHZW9sb2NhdGlvbiBvYmplY3QgYWZ0ZXIgaXRzIGZyYW1lIGhh
cyBiZQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLU1ldGhvZCBjYWxsZWQgb24gR2Vv
bG9jYXRpb24gb2JqZWN0IHdpdGggZGlzY29ubmVjdGVkIEZyYW1lLgorUEFTUyBFcnJvciBjYWxs
YmFjayBpbnZva2VkCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nv
bm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS5odG1sCmluZGV4IDE4N2Y5YTU5YjM4ZTgx
NTIxZjQ3MDdlM2JiNmI3NTYxNDVhMzg3YzEuLmRiMDU4N2I5YjFjZWYxYTZlODRlMDg5Y2Q2ODM2
ZTY5NDY5Mjg0NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9u
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbApAQCAtMjMsNyAr
MjMsNyBAQCBmdW5jdGlvbiBvblNlY29uZElmcmFtZUxvYWRlZCgpIHsKICAgICAgICAgdGVzdEZh
aWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9LCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQo
J0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgICAgIHRlc3RQYXNz
ZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQnKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgfSk7CiAgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMDAwKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJh
bWUtZXhwZWN0ZWQudHh0CmluZGV4IGViYzhiMjU2ZDA3YmMzNTUxYTFlYWU2NzRjYjIzMGEzYzJj
MmVjYjkuLjhlMTA2MTE5N2Q0OTc4OTZlMjI1MDMzMTIzMDUwNjMzZTdiNDcyYzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29u
bmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgVGVzdHMgdGhhdCB3aGVu
IGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgR2VvbG9jYXRpb24gb2JqZWN0IGFuZCBpdHMgRnJhbWUg
aXMgZGlzY28KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIE5vIGNhbGxiYWNr
cyBpbnZva2VkCitQQVNTIEVycm9yIGNhbGxiYWNrIGludm9rZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKaW5kZXggOTQyNDYwZTM5
ZDMxNjBmZjBiMzI2MDI0N2E2ZjdmNDZlNjU5MGJmNC4uNjg5ZDg5YmZjNjM1NDIzNjc4YjNkYWMw
NmZmMmYwZGRlYjE4NTA3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUt
cGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogUEFTUyBlcnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVE
CiBQQVNTIGVycm9yLm1lc3NhZ2UgaXMgIlVzZXIgZGVuaWVkIEdlb2xvY2F0aW9uIgogCi1QQVNT
IE5vIGNhbGxiYWNrcyBpbnZva2VkCitQQVNTIEVycm9yIGNhbGxiYWNrIGludm9rZWQKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1p
c3Npb24tZGVuaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNj
b25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAppbmRleCAwYTRkZWM1M2ZiNTJh
YjZjMjkyMTI5ODI4YmExMmY2NWQ2M2UxNmQxLi41NTNkNTAzYTFlYjM1ZjU0NmU2M2YxYTMzMjUy
Y2NmN2ExYTRiMzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1k
ZW5pZWQuaHRtbApAQCAtMzYsMTMgKzM2LDEzIEBAIGZ1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQo
KSB7CiAgICAgICAgIHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVj
dGVkbHknKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfSwgZnVuY3Rpb24oZSkgewot
ICAgICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScp
OworICAgICAgICB0ZXN0UGFzc2VkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkJyk7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0pOwogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIHRlc3RQYXNzZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CisgICAgICAgIHRlc3RG
YWlsZWQoJ05vIGNhbGxiYWNrcyBpbnZva2VkJyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgIH0sIDEwMCk7CisgICAgfSwgMTAwMCk7CiB9CiAKIHZhciBpZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKaW5kZXggYjA4ZTc2NDI3OGVi
MTBkNjNiYWI1YWZkMmY2OTA2M2ViNWE1OWY5Zi4uYWE5YzNjMmNiNTg5YjYzM2YyMDI4YWYyYWRk
NWFlMjcyNmJjNjUyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwKQEAgLTIzLDEzICsyMywxMyBAQCBmdW5j
dGlvbiBvbklmcmFtZVVubG9hZGVkKCkgewogICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwog
ICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sg
aW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAgICAgICAgdGVzdFBhc3NlZCgnRXJyb3IgY2FsbGJh
Y2sgaW52b2tlZCcpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0UGFzc2VkKCdObyBjYWxsYmFja3MgaW52
b2tlZCcpOworICAgICAgICB0ZXN0RmFpbGVkKCdObyBjYWxsYmFja3MgaW52b2tlZCcpOwogICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9LCAxMDApOworICAgIH0sIDEwMDApOwogfQogCiB2
YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvY2FsbGJhY2stdG8t
ZGVsZXRlZC1jb250ZXh0LWlubmVyMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL2NhbGxiYWNrLXRvLWRlbGV0ZWQtY29udGV4dC1pbm5lcjEuaHRtbApp
bmRleCA5YzUxNTgxOTBhODE2OGMyY2ViNjJiMDgwYTg1MmE0M2FhODAwY2NlLi5mNGMwMjc5ZDFk
ODBlODJlZTkwNjM4MjAzMThjMThkY2NhOGZiY2ZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvY2FsbGJhY2stdG8tZGVsZXRlZC1jb250ZXh0
LWlubmVyMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291
cmNlcy9jYWxsYmFjay10by1kZWxldGVkLWNvbnRleHQtaW5uZXIxLmh0bWwKQEAgLTEzLDcgKzEz
LDcgQEAKICAgICAgICAgICAvLyBNYWtlIHJlcXVlc3QgZnJvbSByZW1vdGUgZnJhbWUsIHRoaXMg
ZnJhbWUgd2lsbCBiZSBnb25lIGJ5IHRoZSB0aW1lIHRoZSBHZW9sb2NhdGlvbgogICAgICAgICAg
IC8vIG9iamVjdCBhdHRlbXB0cyB0byBpbnZva2UgdGhlIGNhbGxiYWNrLgogICAgICAgICAgIHdp
bmRvdy5wYXJlbnQubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgcGFyZW50LnRlc3RQYXNzZWQoJ1N1Y2Nlc3MgY2FsbGJh
Y2sgaW52b2tlZCcpOworICAgICAgICAgICAgICBwYXJlbnQudGVzdEZhaWxlZCgnU3VjY2VzcyBj
YWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwogICAgICAgICAgICAgICBwYXJlbnQuZmlu
aXNoSlNUZXN0KCk7CiAgICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgIHBh
cmVudC50ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0YWNoZWQtc3ZnLXBhcmVudC13
aW5kb3ctZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RldGFj
aGVkLXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMTllYjUxNjll
ZTQ1YzdlMzQ1ODhiN2M5MDhkZjMyMTk2ODZlMWJiNi4uMmI3Yjg3YTQ2MTQ0YTJhZGM5OGNjMDhk
Y2RiMzBiODI1NzM1ZDY2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGV0
YWNoZWQtc3ZnLXBhcmVudC13aW5kb3ctZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFyZW50LXdpbmRvdy1ldmVudHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBlcnJvcgogVGhpcyB0ZXN0
cyBjcmVhdGluZyBhIGRpc2Nvbm5lY3RlZCBTVkcgZWxlbWVudCB3aXRoIHJlc2l6ZSBldmVudCBo
YW5kbGVyLiBUaGUgZXZlbnQgaGFuZGxlciBzaG91bGQgbm90IGdldCBkaXNwYXRjaGVkIHVubGVz
cyB0aGUgZWxlbWVudCBpcyBjb25uZWN0ZWQKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKK1BBU1MgRXhjZXB0aW9uIHRocm93bgogUEFTUyBkaWRGaXJlUmVzaXplIGlzIGZhbHNlCiBQ
QVNTIGRpZEZpcmVPbkVycm9yIGlzIGZhbHNlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kZXRhY2hlZC1zdmctcGFy
ZW50LXdpbmRvdy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RldGFjaGVk
LXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy5odG1sCmluZGV4IDZmYmM0M2U5ZGNkMDBlNjNmNGQ5
NDRmZTBiYmUzOTVkNzQ3OGY3NjUuLjg4OWYwMDlmZTVmM2U5YzMwZTI5ZGYyYjk2NDcwMDllM2Zl
NWI5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RldGFjaGVkLXN2Zy1w
YXJlbnQtd2luZG93LWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rl
dGFjaGVkLXN2Zy1wYXJlbnQtd2luZG93LWV2ZW50cy5odG1sCkBAIC0yMSw3ICsyMSwxMSBAQAog
ICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgnZGlkRmlyZU9uRXJyb3InKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZXZhbCgn
dGhyb3cgImVycm9yIicpOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZXZhbCgndGhyb3cgImVycm9yIicpOwor
ICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIik7CisgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9Qb3NpdGlvbk9wdGlv
bnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvUG9zaXRpb25PcHRpb25zLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCA0MDMyODJjMWUxODQ1MDU4OGM0OGFiMTQ2ZDM3ODI3MGY1MzhjYjY2Li4wMzkz
MzhkODBhOWZiM2VjYTRjZGQ1NjAwOGQ4ZDJiYjk3OGZmYmMyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9Qb3Np
dGlvbk9wdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL1Bvc2l0aW9uT3B0aW9ucy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw5IEBACiAKIFBBU1MgQ2FsbCBnZXRDdXJyZW50
UG9zaXRpb24gd2l0aCB3cm9uZyB0eXBlIGZvciBlbmFibGVIaWdoQWNjdXJhY3kuIE5vIGV4Y2Vw
dGlvbiBleHBlY3RlZC4KIFBBU1MgQ2FsbCB3YXRjaFBvc2l0aW9uIHdpdGggd3JvbmcgdHlwZSBm
b3IgZW5hYmxlSGlnaEFjY3VyYWN5LiBObyBleGNlcHRpb24gZXhwZWN0ZWQuCi1GQUlMIFBvc2l0
aW9uT3B0aW9ucyB0ZXN0cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogdW5pbXBsZW1lbnRlZCIKK1BBU1MgUG9zaXRpb25PcHRpb25z
IHRlc3RzCitQQVNTIFNldCB0aW1lb3V0IGFuZCBtYXhpbXVtQWdlIHRvIDAsIGNoZWNrIHRoYXQg
dGltZW91dCBlcnJvciByYWlzZWQgKGdldEN1cnJlbnRQb3NpdGlvbikKK1BBU1MgU2V0IHRpbWVv
dXQgYW5kIG1heGltdW1BZ2UgdG8gMCwgY2hlY2sgdGhhdCB0aW1lb3V0IGVycm9yIHJhaXNlZCAo
d2F0Y2hQb3NpdGlvbikKK1BBU1MgQ2hlY2sgdGhhdCBhIG5lZ2F0aXZlIHRpbWVvdXQgdmFsdWUg
aXMgZXF1aXZhbGVudCB0byBhIDAgdGltZW91dCB2YWx1ZSAoZ2V0Q3VycmVudExvY2F0aW9uKQor
UEFTUyBDaGVjayB0aGF0IGEgbmVnYXRpdmUgdGltZW91dCB2YWx1ZSBpcyBlcXVpdmFsZW50IHRv
IGEgMCB0aW1lb3V0IHZhbHVlICh3YXRjaFBvc2l0aW9uKQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9ub24t
ZnVsbHktYWN0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjNTIxNzRkYjM3NjdkNDdiYTE5MmU0YzNjMzQ3
NTk0YjNkZTA3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS9ub24tZnVsbHktYWN0aXZlLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIG5vbi1mdWxseSBhY3RpdmUg
ZG9jdW1lbnQgYmVoYXZpb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9nZW9s
b2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NWM3
ODdjYWJmODYxYWVkOTY2NjRlYWIxODA1YTc2YmU5ODUxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQ
SS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+R2VvbG9jYXRpb24gVGVz
dDogbm9uLWZ1bGx5IGFjdGl2ZSBkb2N1bWVudDwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93M2MvZ2VvbG9jYXRpb24tYXBpL3B1bGwvOTciIC8+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQ+CisgIHByb21pc2Vf
dGVzdChhc3luYyBmdW5jdGlvbiAoKSB7CisgICAgYXdhaXQgdGVzdF9kcml2ZXIuc2V0X3Blcm1p
c3Npb24oeyBuYW1lOiAiZ2VvbG9jYXRpb24iIH0sICJncmFudGVkIik7CisKKyAgICAvLyBDcmVh
dGUgdGhlIGlmcmFtZSwgd2FpdCBmb3IgaXQgdG8gbG9hZC4uLgorICAgIGNvbnN0IGlmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlmcmFtZS5zcmMgPSAicmVz
b3VyY2VzL2lmcmFtZS5odG1sIjsKKyAgICBpZnJhbWUuYWxsb3cgPSAiZ2VvbG9jYXRpb24iOwor
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKworICAgIC8vIC4uLndhaXQg
Zm9yIHRoZSBpZnJhbWUgdG8gbG9hZC4uLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PgorICAgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7IG9u
Y2U6IHRydWUgfSkKKyAgICApOworCisgICAgLy8gU3RlYWwgZ2VvbG9jYXRpb24uCisgICAgY29u
c3QgZ2VvID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uOworCisg
ICAgLy8gTm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZS4KKyAgICBpZnJhbWUucmVtb3ZlKCk7CisKKyAg
ICAvLyBUcnkgdG8gd2F0Y2ggYSBwb3NpdGlvbiB3aGlsZSBub3QgZnVsbHkgYWN0aXZlLi4uCisg
ICAgY29uc3Qgd2F0Y2hFcnJvciA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgIGNvbnN0IHdhdGNoSWQgPSBnZW8ud2F0Y2hQb3NpdGlvbigKKyAgICAgICAg
cmVqZWN0LCAvLyBXZSBkb24ndCB3YW50IGEgcG9zaXRpb24KKyAgICAgICAgcmVzb2x2ZSAvLyBX
ZSB3YW50IGFuIGVycm9yIQorICAgICAgKTsKKyAgICAgIC8vIEFsd2F5cyByZXR1cm4gMC4KKyAg
ICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgIHdhdGNoSWQsCisgICAgICAgIDAsCisgICAgICAg
ICJ3YXRjaElkIGlzIDAgd2hlbiBkb2N1bWVudCBpcyBub3QgZnVsbHktYWN0aXZlIgorICAgICAg
KTsKKyAgICAgIC8vIEFuZCBhZ2FpbiwgdG8gbWFrZSBzdXJlIGl0J3Mgbm90IGNoYW5naW5nCisg
ICAgICBjb25zdCB3YXRjaElkMiA9IGdlby53YXRjaFBvc2l0aW9uKAorICAgICAgICAoKSA9PiB7
fSwKKyAgICAgICAgKCkgPT4ge30KKyAgICAgICk7CisgICAgICBhc3NlcnRfZXF1YWxzKAorICAg
ICAgICB3YXRjaElkMiwKKyAgICAgICAgMCwKKyAgICAgICAgIndhdGNoSWQgcmVtYWlucyAwIHdo
ZW4gZG9jdW1lbnQgaXMgbm90IGZ1bGx5LWFjdGl2ZSIKKyAgICAgICk7CisgICAgfSk7CisKKyAg
ICBhc3NlcnRfZXF1YWxzKAorICAgICAgd2F0Y2hFcnJvci5jb2RlLAorICAgICAgR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFLAorICAgICAgIndhdGNoUG9zaXRp
b24oKSByZXR1cm5zIGFuIGVycm9yIG9uIG5vbi1mdWxseS1hY3RpdmUgZG9jdW1lbnQiCisgICAg
KTsKKworICAgIC8vIE5vdyB0cnkgdG8gZ2V0IGN1cnJlbnQgcG9zaXRpb24gd2hpbGUgbm90IGZ1
bGx5IGFjdGl2ZS4uLgorICAgIGNvbnN0IHBvc2l0aW9uRXJyb3IgPSBhd2FpdCBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICBnZW8uZ2V0Q3VycmVudFBvc2l0aW9uKAor
ICAgICAgICByZWplY3QsIC8vIFdlIGRvbid0IHdhbnQgYSBwb3NpdGlvbgorICAgICAgICByZXNv
bHZlIC8vIFdlIHdhbnQgYW4gZXJyb3IhCisgICAgICApOworICAgIH0pOworICAgIGFzc2VydF9l
cXVhbHMoCisgICAgICBwb3NpdGlvbkVycm9yLmNvZGUsCisgICAgICBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuUE9TSVRJT05fVU5BVkFJTEFCTEUsCisgICAgICAiZ2V0Q3VycmVudFBvc2l0aW9u
KCkgY2FsbHMgdGhlIGVycm9yQ2FsbGJhY2sgd2l0aCBQT1NJVElPTl9VTkFWQUlMQUJMRSIKKyAg
ICApOworCisgICAgLy8gUmUtYXR0YWNoLCBhbmQgZ28gYmFjayB0byBmdWxseSBhY3RpdmUuCisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworICAgIGlmcmFtZS5jb250ZW50
V2luZG93Lm9wZW5lciA9IHdpbmRvdzsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4KKyAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwgeyBvbmNl
OiB0cnVlIH0pCisgICAgKTsKKworICAgIC8vIEFuZCB3ZSBhcmUgYmFjayB0byBmdWxseSBhY3Rp
dmUuCisgICAgbGV0IHdhdGNoSWQ7CisgICAgbGV0IHBvc2l0aW9uID0gYXdhaXQgbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgd2F0Y2hJZCA9IGlmcmFtZS5jb250ZW50
V2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKAorICAgICAgICByZXNv
bHZlLAorICAgICAgICByZWplY3QKKyAgICAgICk7CisgICAgfSk7CisgICAgYXNzZXJ0X3RydWUo
TnVtYmVyLmlzSW50ZWdlcih3YXRjaElkKSwgIkV4cGVjdGVkIHNvbWUgbnVtYmVyIGZvciB3YXRj
aElkIik7CisgICAgYXNzZXJ0X3RydWUoQm9vbGVhbihwb3NpdGlvbiksICJFeHBlY3RlZCBhIHBv
c2l0aW9uIik7CisKKyAgICAvLyBGaW5hbGx5LCBsZXQncyBnZXQgdGhlIHBvc2l0aW9uIGZyb20g
dGhlIHJlYXR0YWNoZWQgZG9jdW1lbnQuCisgICAgcG9zaXRpb24gPSBhd2FpdCBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKAorICAgICAgICByZXNvbHZlLAor
ICAgICAgICByZWplY3QKKyAgICAgICk7CisgICAgfSk7CisgICAgYXNzZXJ0X3RydWUoQm9vbGVh
bihwb3NpdGlvbiksICJFeHBlY3RlZCBhIHBvc2l0aW9uIik7CisgICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2god2F0Y2hJZCk7CisgIH0sICJu
b24tZnVsbHkgYWN0aXZlIGRvY3VtZW50IGJlaGF2aW9yIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRp
b24tQVBJL3Jlc291cmNlcy9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL3Jlc291cmNlcy9pZnJhbWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNWNmM2Q5MmYzOTQyNzM4Njg2YTI2N2MyMmQ5NWQ0YTY0NjRhZjdlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9nZW9sb2NhdGlvbi1BUEkvcmVzb3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8aDE+SnVzdCBhIHN1cHBv
cnQgZmlsZTwvaDE+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVu
ZG9yLmpzCmluZGV4IDI1ZTI0YzU5OGEyNDU2NDYxYzI5OTZiYjE1ZGUzMTRhNmQ3NmNmMWIuLjRk
ZTQwNWNmZWQzN2FjYmJiZGExMWJjMzQ5NWZkZDk3NzMyMjJkNjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItdmVuZG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzCkBAIC0yOTMsMyArMjkzLDE2IEBA
IHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5hY3Rpb25fc2VxdWVuY2UgPSBmdW5jdGlvbihz
b3VyY2VzKQogICAgIGlmIChwb2ludGVyVHlwZSA9PT0gIm1vdXNlIiB8fCBwb2ludGVyVHlwZSA9
PT0gInBlbiIpCiAgICAgICAgIHJldHVybiBkaXNwYXRjaE1vdXNlQWN0aW9ucyhwb2ludGVyU291
cmNlLmFjdGlvbnMsIHBvaW50ZXJUeXBlKTsKIH07CisKK3dpbmRvdy50ZXN0X2RyaXZlcl9pbnRl
cm5hbC5zZXRfcGVybWlzc2lvbiA9IGZ1bmN0aW9uKHBlcm1pc3Npb25fcGFyYW1zLCBjb250ZXh0
PW51bGwpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHBlcm1pc3Npb25fcGFyYW1z
LmRlc2NyaXB0b3IubmFtZSA9PSAiZ2VvbG9jYXRpb24iKSB7CisgICAgICAgIHNldEludGVydmFs
KCgpID0+IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKDUxLjQ3OCwgLTAuMTY2LCAxMDApOworICAgICAgICB9LCAxMDApOworICAgICAg
ICB0ZXN0UnVubmVyLnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihwZXJtaXNzaW9uX3BhcmFtcy5z
dGF0ZSA9PSAiZ3JhbnRlZCIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Cisg
ICAgfQorICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoInVuaW1wbGVtZW50ZWQi
KSk7Cit9OworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449481</attachid>
            <date>2022-01-19 07:15:36 -0800</date>
            <delta_ts>2022-01-27 15:25:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228319-20220119151534.patch</filename>
            <type>text/plain</type>
            <size>8963</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODE5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTE5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIHNob3Vs
ZCBjYWxsYmFjayB3aXRoIGVycm9yIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgzMTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgxNDUwMzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2Ug
Tml3YS4KKworICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dl
b2xvY2F0aW9uLUFQSS9ub24tZnVsbHktYWN0aXZlLmh0dHBzLmh0bWwKKworICAgICAgICAqIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OmdldEN1cnJlbnRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvbjo6d2F0Y2hQb3NpdGlvbik6CisgICAgICAgIFNjaGVkdWxlIGEgdGFzayB0byBjYWxsIHRo
ZSBlcnJvciBjYWxsYmFjayBpZiB0aGUgZG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSwgYXMK
KyAgICAgICAgcGVyIHRoZSBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBzOi8vZ2l0aHVi
LmNvbS93M2MvZ2VvbG9jYXRpb24tYXBpL2lzc3Vlcy85NgorICAgICAgICAtIGh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvZ2VvbG9jYXRpb24tYXBpL3B1bGwvOTcKKworICAgICAgICAqIGRvbS9UYXNr
U291cmNlLmg6CisgICAgICAgIEFzIEdlb2xvY2F0aW9uIHRhc2sgc291cmNlIGZvciB0aGUgSFRN
TDUgZXZlbnQgbG9vcCwgYXMgcGVyIHRoZSBHZW9sb2NhdGlvbgorICAgICAgICBzcGVjaWZpY2F0
aW9uLgorCiAyMDIyLTAxLTE5ICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4K
IAogICAgICAgICBDYWxsYmFjayBmdW5jdGlvbnMgLyBpbnRlcmZhY2VzIHNob3VsZCB1c2UgZ2xv
YmFsIG9iamVjdCBvZiBpdHMgX3ZhbHVlXyBmb3IgZXJyb3JzIGFuZCBsaWZlY3ljbGUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwCShyZXZpc2lvbiAyODgxOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiRmVhdHVyZVBvbGljeS5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKQEAgLTI5OSw4ICszMDAsMTQgQEAgR2VvbG9j
YXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQbwogCiB2b2lkIEdlb2xvY2F0aW9uOjpn
ZXRDdXJyZW50UG9zaXRpb24oUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNr
LCBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFBvc2l0aW9u
T3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKCFmcmFtZSgpKQorICAgIGlmICghZG9jdW1l
bnQoKSB8fCAhZG9jdW1lbnQoKS0+aXNGdWxseUFjdGl2ZSgpKSB7CisgICAgICAgIGlmIChlcnJv
ckNhbGxiYWNrICYmIGVycm9yQ2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkgewor
ICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVu
dExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6R2VvbG9jYXRpb24sIFtlcnJvckNhbGxiYWNr
XSB7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgIkRvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUiX3MpKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRv
IG5vdGlmaWVyID0gR2VvTm90aWZpZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsKICAgICBz
dGFydFJlcXVlc3Qobm90aWZpZXIucHRyKCkpOwpAQCAtMzEwLDggKzMxNywxNCBAQCB2b2lkIEdl
b2xvY2F0aW9uOjpnZXRDdXJyZW50UG9zaXRpb24oUmVmCiAKIGludCBHZW9sb2NhdGlvbjo6d2F0
Y2hQb3NpdGlvbihSZWY8UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0
cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUG9zaXRpb25PcHRpb25z
JiYgb3B0aW9ucykKIHsKLSAgICBpZiAoIWZyYW1lKCkpCisgICAgaWYgKCFkb2N1bWVudCgpIHx8
ICFkb2N1bWVudCgpLT5pc0Z1bGx5QWN0aXZlKCkpIHsKKyAgICAgICAgaWYgKGVycm9yQ2FsbGJh
Y2sgJiYgZXJyb3JDYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSB7CisgICAgICAg
ICAgICBlcnJvckNhbGxiYWNrLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpHZW9sb2NhdGlvbiwgW2Vycm9yQ2FsbGJhY2tdIHsKKyAg
ICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZB
SUxBQkxFLCAiRG9jdW1lbnQgaXMgbm90IGZ1bGx5IGFjdGl2ZSJfcykpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgYXV0byBub3Rp
ZmllciA9IEdlb05vdGlmaWVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CiAgICAgc3RhcnRS
ZXF1ZXN0KG5vdGlmaWVyLnB0cigpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9UYXNrU291
cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAkocmV2
aXNpb24gMjg4MTk3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Rhc2tTb3VyY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBlbnVtIGNsYXNzIFRhc2tTb3VyY2UgOiB1aW50OF90
IHsKICAgICBEYXRhYmFzZUFjY2VzcywKICAgICBGaWxlUmVhZGluZywKICAgICBGb250TG9hZGlu
ZywKKyAgICBHZW9sb2NhdGlvbiwKICAgICBJZGxlVGFzaywKICAgICBJbmRleGVkREIsCiAgICAg
TWVkaWFFbGVtZW50LApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjg4MTk3KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHZW9sb2NhdGlvbiBBUEkg
c2hvdWxkIGNhbGxiYWNrIHdpdGggZXJyb3IgaWYgZG9jIGlzIG5vdCBmdWxseSBhY3RpdmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODMxOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODE0NTAzMTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlv
c3VrZSBOaXdhLgorCisgICAgICAgIFVwZGF0ZSBleGlzdGluZyBsYXlvdXQgdGVzdHMgdG8gcmVm
bGVjdCBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9k
aXNjb25uZWN0ZWQtZnJhbWUtYWxyZWFkeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbDoKKyAgICAgICAg
QWxpZ25zIHRlc3QgYXNzZXJ0aW9ucyB3aXRoIHRoZSBzcGVjLiBHZWNrbyBhbHNvIHBhc3NlcyBp
dC4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCB0aGUgV1BUIHRlc3QuCisK
IDIwMjItMDEtMTkgIEFsZXhleSBTaHZheWthICA8YXNodmF5a2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIENhbGxiYWNrIGZ1bmN0aW9ucyAvIGludGVyZmFjZXMgc2hvdWxkIHVzZSBnbG9iYWwgb2Jq
ZWN0IG9mIGl0cyBfdmFsdWVfIGZvciBlcnJvcnMgYW5kIGxpZmVjeWNsZQpJbmRleDogTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCShyZXZpc2lvbiAyODgxOTcpCisrKyBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC01NTEsNyArNTUxLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jb29raWVzLwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9n
ZW9sb2NhdGlvbi1BUEkvbm9uLXNlY3VyZS1jb250ZXh0cy5odHRwLmh0bWwgWyBTa2lwIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL2dldEN1cnJlbnRQ
b3NpdGlvbl9wZXJtaXNzaW9uX2FsbG93Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL2dldEN1cnJlbnRQb3NpdGlvbl9w
ZXJtaXNzaW9uX2RlbnkuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2dlb2xvY2F0aW9uLUFQSS93
YXRjaFBvc2l0aW9uX3Blcm1pc3Npb25fZGVueS5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRp
b24taW50ZXJmYWNlL2xvY2F0aW9uLW9yaWdpbi1pZG5hLnN1Yi53aW5kb3cuaHRtbCBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3Rvcnkv
dGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbl9hc3NpZ24uaHRtbCBbIFNraXAgXQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFs
cmVhZHktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjg4MTk3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVj
dGVkLWZyYW1lLWFscmVhZHktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQs
OSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogTWV0aG9k
IGNhbGxlZCBvbiBHZW9sb2NhdGlvbiBvYmplY3Qgd2l0aCBkaXNjb25uZWN0ZWQgRnJhbWUuCitQ
QVNTIHN1Y2Nlc3NDYWxsYmFja0ludm9rZWQgaXMgZmFsc2UKK1BBU1MgcG9zaXRpb25FcnJvci5j
b2RlIGlzIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5QT1NJVElPTl9VTkFWQUlMQUJMRQorUEFT
UyBwb3NpdGlvbkVycm9yLm1lc3NhZ2UgaXMgJ0RvY3VtZW50IGlzIG5vdCBmdWxseSBhY3RpdmUn
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJl
YWR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24v
ZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHkuaHRtbAkocmV2aXNpb24gMjg4MTk3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWFscmVhZHku
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsMjAgKzE3LDIxIEBAIGZ1bmN0aW9uIG9uRmlyc3RJ
ZnJhbWVMb2FkZWQoKSB7CiAgICAgaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVk
LWZyYW1lLWFscmVhZHktaW5uZXIyLmh0bWwnOwogfQogCi12YXIgZXJyb3I7Cit3aW5kb3cuc3Vj
Y2Vzc0NhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwogZnVuY3Rpb24gb25TZWNvbmRJZnJhbWVMb2Fk
ZWQoKSB7CiAgICAgaWZyYW1lR2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhw
ZWN0ZWRseScpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgd2luZG93LnN1Y2Nl
c3NDYWxsYmFja0ludm9rZWQgPSB0cnVlOwogICAgIH0sIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
dGVzdEZhaWxlZCgnRXJyb3IgY2FsbGJhY2sgaW52b2tlZCcpOwotICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgd2luZG93LnBvc2l0aW9uRXJyb3IgPSBlOwogICAgIH0pOwogICAgIHNl
dFRpbWVvdXQoZmluaXNoVGVzdCwgMTAwMCk7CiB9CiAKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CiAgICAgZGVidWcoJ01ldGhvZCBjYWxsZWQgb24gR2VvbG9jYXRpb24gb2JqZWN0IHdpdGggZGlz
Y29ubmVjdGVkIEZyYW1lLicpOworICAgIHNob3VsZEJlKCJzdWNjZXNzQ2FsbGJhY2tJbnZva2Vk
IiwgImZhbHNlIik7CisgICAgc2hvdWxkQmUoInBvc2l0aW9uRXJyb3IuY29kZSIsICJHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuUE9TSVRJT05fVU5BVkFJTEFCTEUiKTsKKyAgICBzaG91bGRCZSgi
cG9zaXRpb25FcnJvci5tZXNzYWdlIiwgIidEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0aXZlJyIp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI4ODE5NykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMS0xOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBzaG91
bGQgY2FsbGJhY2sgd2l0aCBlcnJvciBpZiBkb2MgaXMgbm90IGZ1bGx5IGFjdGl2ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MzE5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MTQ1MDMxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25v
bi1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFdQ
VCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKIDIwMjItMDEtMTkgIEFsZXhleSBTaHZheWth
ICA8YXNodmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxiYWNrIGZ1bmN0aW9ucyAvIGlu
dGVyZmFjZXMgc2hvdWxkIHVzZSBnbG9iYWwgb2JqZWN0IG9mIGl0cyBfdmFsdWVfIGZvciBlcnJv
cnMgYW5kIGxpZmVjeWNsZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9nZW9sb2NhdGlvbi1BUEkvbm9uLWZ1bGx5LWFjdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDI4ODE5NykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJL25vbi1mdWxseS1hY3RpdmUuaHR0cHMtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKIAotVElNRU9VVCBub24tZnVsbHkgYWN0aXZlIGRvY3Vt
ZW50IGJlaGF2aW9yIFRlc3QgdGltZWQgb3V0CitQQVNTIG5vbi1mdWxseSBhY3RpdmUgZG9jdW1l
bnQgYmVoYXZpb3IKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>