<?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>236711</bug_id>
          
          <creation_ts>2022-02-16 09:25:29 -0800</creation_ts>
          <short_desc>[content-visibility] Add support for css content-visibility: auto</short_desc>
          <delta_ts>2023-08-22 05:00:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236238</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>bogdan.brinza</cc>
    
    <cc>cathiechen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842320</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-02-16 09:25:29 -0800</bug_when>
    <thetext>https://www.w3.org/TR/css-contain-2/#using-cv-auto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845169</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-23 09:26:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/89360404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849689</commentid>
    <comment_count>2</comment_count>
      <attachid>454239</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-09 08:18:10 -0800</bug_when>
    <thetext>Created attachment 454239
Initial patch

Initial patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850505</commentid>
    <comment_count>3</comment_count>
      <attachid>454485</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-11 07:48:48 -0800</bug_when>
    <thetext>Created attachment 454485
Better ChangeLog.

Better ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851725</commentid>
    <comment_count>4</comment_count>
      <attachid>454822</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-16 05:04:00 -0700</bug_when>
    <thetext>Created attachment 454822
Compute intersections synchronously

Compute intersections synchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851851</commentid>
    <comment_count>5</comment_count>
      <attachid>454844</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-16 09:11:01 -0700</bug_when>
    <thetext>Created attachment 454844
Fix intersection computation

Fix intersection computation, previous patch did the sync call before registration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851903</commentid>
    <comment_count>6</comment_count>
      <attachid>454866</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-16 11:23:12 -0700</bug_when>
    <thetext>Created attachment 454866
Properly fix intersections

Properly fix intersections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854712</commentid>
    <comment_count>7</comment_count>
      <attachid>455647</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-24 09:24:52 -0700</bug_when>
    <thetext>Created attachment 455647
Rebase

Rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858815</commentid>
    <comment_count>8</comment_count>
      <attachid>456817</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-04-06 07:11:19 -0700</bug_when>
    <thetext>Created attachment 456817
Handle selection

Handle selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867889</commentid>
    <comment_count>9</comment_count>
      <attachid>456817</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-05-10 03:39:49 -0700</bug_when>
    <thetext>Comment on attachment 456817
Handle selection

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:543
&gt; +    bool containsSize() const { return effectiveContainment().contains(Containment::Size) || skipsContents(); }

Maybe we can also move `skipsContents()` inside `effectiveContainment()`? Not sure why `containsLayout`, `containsStyle`, and `containsPaint` do not check `skipsContents()` like `containsSize`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867890</commentid>
    <comment_count>10</comment_count>
      <attachid>456817</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-05-10 03:39:51 -0700</bug_when>
    <thetext>Comment on attachment 456817
Handle selection

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:543
&gt; +    bool containsSize() const { return effectiveContainment().contains(Containment::Size) || skipsContents(); }

Maybe we can also move `skipsContents()` inside `effectiveContainment()`? Not sure why `containsLayout`, `containsStyle`, and `containsPaint` do not check `skipsContents()` like `containsSize`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868080</commentid>
    <comment_count>11</comment_count>
      <attachid>456817</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-11 02:10:03 -0700</bug_when>
    <thetext>Comment on attachment 456817
Handle selection

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

&gt;&gt;&gt; Source/WebCore/rendering/style/RenderStyle.h:543
&gt;&gt;&gt; +    bool containsSize() const { return effectiveContainment().contains(Containment::Size) || skipsContents(); }
&gt;&gt; 
&gt;&gt; Maybe we can also move `skipsContents()` inside `effectiveContainment()`? Not sure why `containsLayout`, `containsStyle`, and `containsPaint` do not check `skipsContents()` like `containsSize`?
&gt; 
&gt; Maybe we can also move `skipsContents()` inside `effectiveContainment()`? Not sure why `containsLayout`, `containsStyle`, and `containsPaint` do not check `skipsContents()` like `containsSize`?

See https://drafts.csswg.org/css-contain/#valdef-content-visibility-auto:
&quot;Turns on layout containment, style containment, and paint containment for the element.&quot;
For c-v: hidden all containment is enabled. But actually, I am not sure in our patches c-v: hidden always enables size containment unconditionally....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869606</commentid>
    <comment_count>12</comment_count>
      <attachid>459488</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-05-17 01:12:16 -0700</bug_when>
    <thetext>Created attachment 459488
c_v-auto-based-on-contain-intrinsic-size

The test results in this patch is based on the contain-intrinsic-size implementation patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870307</commentid>
    <comment_count>13</comment_count>
      <attachid>459571</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-19 01:46:32 -0700</bug_when>
    <thetext>Created attachment 459571
Remove ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874682</commentid>
    <comment_count>14</comment_count>
      <attachid>460087</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-06-08 03:07:55 -0700</bug_when>
    <thetext>Created attachment 460087
Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1923167</commentid>
    <comment_count>15</comment_count>
      <attachid>464351</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-05 09:25:13 -0800</bug_when>
    <thetext>Created attachment 464351
Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1924534</commentid>
    <comment_count>16</comment_count>
      <attachid>464444</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-10 11:42:52 -0800</bug_when>
    <thetext>Created attachment 464444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925055</commentid>
    <comment_count>17</comment_count>
      <attachid>464468</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-12 07:49:27 -0800</bug_when>
    <thetext>Created attachment 464468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925058</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2023-01-12 07:53:10 -0800</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>1925270</commentid>
    <comment_count>19</comment_count>
      <attachid>464480</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-13 01:53:43 -0800</bug_when>
    <thetext>Created attachment 464480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925315</commentid>
    <comment_count>20</comment_count>
      <attachid>464485</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-13 05:55:49 -0800</bug_when>
    <thetext>Created attachment 464485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925981</commentid>
    <comment_count>21</comment_count>
      <attachid>464526</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-17 06:56:47 -0800</bug_when>
    <thetext>Created attachment 464526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926226</commentid>
    <comment_count>22</comment_count>
      <attachid>464533</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-18 02:31:20 -0800</bug_when>
    <thetext>Created attachment 464533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926234</commentid>
    <comment_count>23</comment_count>
      <attachid>464534</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-18 03:34:23 -0800</bug_when>
    <thetext>Created attachment 464534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926253</commentid>
    <comment_count>24</comment_count>
      <attachid>464536</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-18 07:16:07 -0800</bug_when>
    <thetext>Created attachment 464536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926613</commentid>
    <comment_count>25</comment_count>
      <attachid>464561</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-19 08:13:51 -0800</bug_when>
    <thetext>Created attachment 464561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926687</commentid>
    <comment_count>26</comment_count>
      <attachid>464565</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-19 12:02:05 -0800</bug_when>
    <thetext>Created attachment 464565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926884</commentid>
    <comment_count>27</comment_count>
      <attachid>464578</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-20 06:32:18 -0800</bug_when>
    <thetext>Created attachment 464578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1928081</commentid>
    <comment_count>28</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-25 02:23:27 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/9096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1966895</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-07-15 08:29:20 -0700</bug_when>
    <thetext>Committed 266084@main (b39fee5ba22e): &lt;https://commits.webkit.org/266084@main&gt;

Reviewed commits have been landed. Closing PR #9096 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1967014</commentid>
    <comment_count>30</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-07-17 01:47:46 -0700</bug_when>
    <thetext>Re-opening for pull request https://github.com/WebKit/WebKit/pull/15879</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972616</commentid>
    <comment_count>31</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-08-22 05:00:26 -0700</bug_when>
    <thetext>Committed 267130@main (6f118d4b6dd0): &lt;https://commits.webkit.org/267130@main&gt;

Reviewed commits have been landed. Closing PR #15879 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454239</attachid>
            <date>2022-03-09 08:18:10 -0800</date>
            <delta_ts>2022-03-11 07:48:48 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug236711.diff</filename>
            <type>text/plain</type>
            <size>19353</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNmM4MDQ2N2Q0ZWYuLjcxMzRjMjliNzVhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTA5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUGFyc2UgYW5kIGFkZCBleHBlcmltZW50YWwgZmxhZyBm
b3IgY29udGVudC12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMmZkMmY0YTJmMDAu
LmRkMzM2ZWI2YjE5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjE5LDEyICs0NjE5LDggQEAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWIKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDQ0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgYy12OiBhdXRvCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA0OC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA1MC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb3VudGVyLXNjb3BpbmctMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwMjIwNGI2NzNlZGMuLjY5YzAxZTBjZDY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
IEBACisyMDIyLTAzLTA5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W2NvbnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxp
dHk6IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdJUC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFk
ZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6
ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNj
cm9sbEludG9WaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVJbnRlcnNlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6ZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQpOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29udGFpbnNTaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpza2lwc0NvbnRlbnRzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRTa2lwc0NvbnRlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpOb25Jbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PSBjb25zdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjItMDMtMDkgIENhdGhpZSBDaGVu
ICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFBhcnNlIGFuZCBhZGQgZXhwZXJp
bWVudGFsIGZsYWcgZm9yIGNvbnRlbnQtdmlzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMjYwMTkzMjc5MjBlLi5lMzk2ZTdkN2EzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTM0LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVy
c2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAt
Mzg5LDYgKzM5MCwzMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhbGxvd0xheW91dCB7IGZh
bHNlIH07CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVy
Q2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2Vy
dmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVy
Q2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBoYXNDYWxs
YmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENhbGxiYWNrUmVzdWx0
PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVjdG9yPFJl
ZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVyc2VjdGlvbk9ic2Vy
dmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5pc0VtcHR5KCkpOwor
CisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50
LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0ludGVyc2VjdGluZygp
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIENvbnRlbnRW
aXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9jdW1lbnQpCisgICAg
eworICAgIH0KK307CisKIC8vIERlZmluZWQgaGVyZSB0byBhdm9pZCBpbmNsdWRpbmcgR0NSZWFj
aGFibGVSZWYuaCBpbiBEb2N1bWVudC5oCiBzdHJ1Y3QgRG9jdW1lbnQ6OlBlbmRpbmdTY3JvbGxF
dmVudFRhcmdldExpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDY2Miw2
ICs0NjkwLDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgb2xkRm9jdXNlZEVs
ZW1lbnQtPnNldEZvY3VzKGZhbHNlKTsKICAgICAgICAgc2V0Rm9jdXNOYXZpZ2F0aW9uU3RhcnRp
bmdOb2RlKG51bGxwdHIpOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gb2xkRm9jdXNl
ZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21w
b3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBmb2N1c2VkLT5jb250
ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICAgICAgICAgICAgICBkYXRhLT5zdWJ0cmVlSGFzRm9j
dXMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvcHRpb25zLnJlbW92YWxFdmVu
dHNNb2RlID09IEZvY3VzUmVtb3ZhbEV2ZW50c01vZGU6OkRpc3BhdGNoKSB7CiAgICAgICAgICAg
ICAvLyBEaXNwYXRjaCBhIGNoYW5nZSBldmVudCBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRo
YXQgaGF2ZSBiZWVuIGVkaXRlZC4KICAgICAgICAgICAgIGlmIChpczxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKSB7CkBAIC00NzMwLDYgKzQ3NjMsMTMgQEAgYm9v
bCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgRm9j
dXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBtX2ZvY3VzZWRFbGVtZW50LT5zZXRGb2N1cyh0
cnVlLCBvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICBtX2xhdGVzdEZvY3VzVHJpZ2dlciA9
IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNlZCA9IG5ld0ZvY3Vz
ZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50RWxlbWVudEluQ29t
cG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0gZm9jdXNlZC0+Y29u
dGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRhLT5zdWJ0cmVlSGFz
Rm9jdXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhdGEtPmlzU2tpcHBlZENvbnRlbnQgPSBm
YWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIC8vIFRoZSBzZXRGb2N1
cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZlbnQgaGFuZGxlcnMg
Y291bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVkLgogICAgICAgICBp
ZiAobV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewogICAgICAgICAgICAg
Ly8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05MTM2LDYgKzkxNzYsNDQgQEAgYm9vbCBEb2N1
bWVudDo6aGFzRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJlZVVwZGF0ZShFbGVt
ZW50JiBlbGVtZW50KQogICAgIHJldHVybiBtX2VsZW1lbnRzV2l0aFBlbmRpbmdVc2VyQWdlbnRT
aGFkb3dUcmVlVXBkYXRlcy5jb250YWlucyhlbGVtZW50KTsKIH0KIAorQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
KCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKQorICAgICAg
ICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlxdWU8Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICptX2NvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
OjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2
ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnJl
bW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNl
cnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNlcnZlKGVsZW1lbnQp
OworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYgKCFtX29ic2VydmVy
KSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZh
bGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAgICAgICBJbnRlcnNl
Y3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBjb250ZW50VmlzaWJp
bGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNr
KSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29ic2VydmVyID0gb2Jz
ZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIu
Z2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIERPQ1VNRU5UX1JF
TEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQzZDkzZDhkYmY5Zi4uZmU4ZDVkNDli
NTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzM5LDYgKzMzOSwyMSBAQCBwcml2YXRlOgog
ICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYpOworCisg
ICAgdm9pZCBhZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKyAgICB2
b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOworCitwcml2
YXRlOgorICAgIEludGVyc2VjdGlvbk9ic2VydmVyKiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZl
cigpOworCisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOworICAg
IFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAg
IDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTE2NDEs
NiArMTY1Niw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNlcnZlciYgbGF6eUxv
YWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUm
IGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9pZCBzZXRIYXNWaXN1
YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9t
Q29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudDsg
fQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwpAQCAtMTg4Niw2
ICsxOTAzLDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdl
T2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRy
PENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3BlbmRpbmdT
dGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3Vt
ZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQxNDg5ODY4MGZlZi4u
YWRiNTc1M2JiMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTgsNiArOTk4LDggQEAg
aW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9u
KHN0ZDo6b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhz
dGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYm
IGFyZykKIHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsK
KwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMDcwLDYgKzMwNzIsMTAgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgaWYgKCFpc0Nvbm5l
Y3RlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxp
dHlBdXRvSWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVudCgpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTQ3OTQsNiArNDgwMCwzOSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNv
bnRlbnRWaXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRWaXNpYmlsaXR5IGNv
bgogICAgICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoc2hvdWxkU2tpcCwg
Y29udGVudFZpc2liaWxpdHkpOwogfQogCisvLyBGSVhNRTogdGhpcyBpcyBpbmNvbXBsZXRlLCBh
bmQgbmVlZHMgdG8gYmUgcmVmYWN0b3JlZCB3aXRoIGludGVyc2VjdGlvbiBvYnNlcnZlciBjb21w
dXRhdGlvbnMgaW4gRG9jdW1lbnQuCitzdGF0aWMgYm9vbCBjb21wdXRlSW50ZXJzZWN0aW9uKGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCit7CisgICAg
aWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRnJhbWVWaWV3KiB2
aWV3ID0gZG9jdW1lbnQudmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRmxvYXRSZWN0IGxvY2FsUm9vdEJvdW5kcyA9IHZpZXctPmxheW91dFZpZXdw
b3J0UmVjdCgpOworICAgIExheW91dFJlY3QgbG9jYWxUYXJnZXRCb3VuZHM7CisgICAgaWYgKGlz
PFJlbmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICAgICAgbG9jYWxUYXJnZXRCb3VuZHMgPSBkb3du
Y2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKS0+Ym9yZGVyQm91bmRpbmdCb3goKTsKKworICAgIHN0
ZDo6b3B0aW9uYWw8TGF5b3V0UmVjdD4gcm9vdExvY2FsVGFyZ2V0UmVjdDsKKyAgICBPcHRpb25T
ZXQ8UmVuZGVyT2JqZWN0OjpWaXNpYmxlUmVjdENvbnRleHRPcHRpb24+IHZpc2libGVSZWN0T3B0
aW9ucyA9IHsgUmVuZGVyT2JqZWN0OjpWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OlVzZUVkZ2VJ
bmNsdXNpdmVJbnRlcnNlY3Rpb24sIFJlbmRlck9iamVjdDo6VmlzaWJsZVJlY3RDb250ZXh0T3B0
aW9uOjpBcHBseUNvbXBvc2l0ZWRDbGlwcywgUmVuZGVyT2JqZWN0OjpWaXNpYmxlUmVjdENvbnRl
eHRPcHRpb246OkFwcGx5Q29tcG9zaXRlZENvbnRhaW5lclNjcm9sbHMgfTsKKyAgICBzdGQ6Om9w
dGlvbmFsPExheW91dFJlY3Q+IHJlY3RJbkZyYW1lQWJzb2x1dGVTcGFjZSA9IHJlbmRlcmVyLT5j
b21wdXRlVmlzaWJsZVJlY3RJbkNvbnRhaW5lcihsb2NhbFRhcmdldEJvdW5kcywgJnJlbmRlcmVy
LT52aWV3KCksIHsgZmFsc2UgLyogaGFzUG9zaXRpb25GaXhlZERlc2NlbmRhbnQgKi8sIGZhbHNl
IC8qIGRpcnR5UmVjdElzRmxpcHBlZCAqLywgdmlzaWJsZVJlY3RPcHRpb25zIH0pOworICAgIGlm
IChyZWN0SW5GcmFtZUFic29sdXRlU3BhY2UpCisgICAgICAgIHJvb3RMb2NhbFRhcmdldFJlY3Qg
PSByZWN0SW5GcmFtZUFic29sdXRlU3BhY2U7CisgICAgRmxvYXRSZWN0IHJvb3RMb2NhbEludGVy
c2VjdGlvblJlY3QgPSBsb2NhbFJvb3RCb3VuZHM7CisgICAgcmV0dXJuIHJvb3RMb2NhbFRhcmdl
dFJlY3QgJiYgcm9vdExvY2FsSW50ZXJzZWN0aW9uUmVjdC5lZGdlSW5jbHVzaXZlSW50ZXJzZWN0
KCpyb290TG9jYWxUYXJnZXRSZWN0KTsKK30KKworYm9vbCBFbGVtZW50OjpkZXRlcm1pbmVJZlN1
YnRyZWVIYXNGb2N1cygpCit7CisgICAgZm9yIChhdXRvKiBmb2N1c2VkID0gZG9jdW1lbnQoKS5m
b2N1c2VkRWxlbWVudCgpOyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50RWxlbWVu
dEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGZvY3VzZWQgPT0gdGhpcykKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
RWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29udGVudFZpc2liaWxpdHkgbmV3Q29u
dGVudFZpc2liaWxpdHkpCiB7CiAgICAgaWYgKCFoYXNSYXJlRGF0YSgpICYmIG5ld0NvbnRlbnRW
aXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQpAQCAtNDgwMiwxMCArNDg0
MSwyMSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5KENvbnRlbnRWaXNp
YmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgIGlmIChkYXRhLmNvbnRlbnRWaXNpYmls
aXR5ID09IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgICAgICByZXR1cm47CiAgICAgZGF0YS5j
b250ZW50VmlzaWJpbGl0eSA9IG5ld0NvbnRlbnRWaXNpYmlsaXR5OwotICAgIC8vIEZJWE1FOiBo
YW5kbGUgYy12OiBhdXRvLgorICAgIGlmIChuZXdDb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50
VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICBkYXRhLmlzSW50ZXJzZWN0aW5nVmlld3BvcnQg
PSBjb21wdXRlSW50ZXJzZWN0aW9uKGRvY3VtZW50KCksIHJlbmRlcmVyKCkpOworICAgICAgICBk
YXRhLnN1YnRyZWVIYXNGb2N1cyA9IGRldGVybWluZUlmU3VidHJlZUhhc0ZvY3VzKCk7CisgICAg
ICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CisgICAgfQogICAgIHVwZGF0ZUNvbnRlbnRW
aXNpYmlsaXR5RGF0YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwogfQogCit2b2lkIEVs
ZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBpc0ludGVyc2VjdGlu
ZykKK3sKKyAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7Cisg
ICAgZGF0YS5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rpbmc7CisgICAgdXBk
YXRlQ29udGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJpbGl0eTo6QXV0byk7
Cit9CisKIGJvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYg
KGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ4MTUsMTEgKzQ4NjUs
MjkgQEAgYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIAogYm9vbCBFbGVt
ZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIGRhdGEgPSBj
b250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRlbnRWaXNp
YmlsaXR5RGF0YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAhZGF0YS0+aXNJbnRl
cnNlY3RpbmdWaWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzOwogICAgICAgICByZXR1
cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRW
aXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBF
bGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKQoreworICAg
IGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSB0YXJn
ZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAgICBpZiAoZGF0YS0+Y29u
dGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgICAg
ICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXQt
PnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cmVuZGVyZXIoKS0+c2V0
TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKIFN0eWxlUHJv
cGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFwKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IDNlNzc5MGVkYzc2Ni4uMjJhYWE1NDhhMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTk1
LDYgKzk1LDggQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0Owogc3RydWN0IENvbnRlbnRWaXNpYmls
aXR5RGF0YSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogICAgIGJvb2wg
aXNTa2lwcGVkQ29udGVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0ludGVyc2VjdGluZ1ZpZXdw
b3J0IHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNGb2N1cyB7IGZhbHNlIH07CiAgICAg
Q29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBAIC02NzUsNiArNjc3
LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5zdXJlQ29udGVudFZp
c2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBjb250ZW50VmlzaWJp
bGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5KENvbnRl
bnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGNvbnRlbnRWaXNp
YmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OwogCkBAIC03MDMsNiAr
NzA2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlQ29udGVudFZpc2liaWxpdHlE
YXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkpOwogCisgICAgYm9vbCBkZXRl
cm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudFZp
c2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBGcmFtZSogZG9jdW1lbnRG
cmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGNjYjJmNjVkODU3Zi4uODI2N2QzNGY4NzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNTM0
LDcgKzUzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRWaXNpYmlsaXR5SGlkZGVuKCkg
Y29uc3QgeyByZXR1cm4gY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
SGlkZGVuOyB9CiAgICAgT3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZlY3RpdmVDb250YWlubWVu
dCgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBlZmZl
Y3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpMYXlvdXQpIHx8IGNvbnRl
bnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0KLSAgICBib29s
IGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29u
dGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVu
dFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNTaXplKCkgY29uc3QgeyBy
ZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U2l6ZSkg
fHwgc2tpcHNDb250ZW50cygpOyB9CiAgICAgYm9vbCBjb250YWluc1N0eWxlKCkgY29uc3QgeyBy
ZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U3R5bGUp
IHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0K
ICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlu
bWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29udGVudFZpc2liaWxpdHko
KSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIENvbnRhaW5lclR5cGUgY29u
dGFpbmVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRhaW5lclR5cGU+KG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW5lclR5cGUpOyB9CkBAIC0xNTA3LDYgKzE1MDcs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBdHRyQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPmhhc0F0dHJDb250ZW50OyB9CiAgICAgdm9pZCBzZXRIYXNB
dHRyQ29udGVudCgpOwogCisgICAgYm9vbCBza2lwc0NvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4g
bV9ub25Jbmhlcml0ZWRGbGFncy5za2lwc0NvbnRlbnRzOyB9CisgICAgdm9pZCBzZXRTa2lwc0Nv
bnRlbnRzKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBzQ29udGVudHMgPSB2OyB9
CisKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0aXZlcygpIGNv
bnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJlY3RpdmVzKCk7
CiAKQEAgLTE5NjUsNiArMTk2OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIGxhc3RD
aGlsZFN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgaXNMaW5rIDogMTsKICAgICAgICAgdW5z
aWduZWQgaGFzQ29udGVudE5vbmUgOiAxOworICAgICAgICB1bnNpZ25lZCBza2lwc0NvbnRlbnRz
IDogMTsKIAogICAgICAgICB1bnNpZ25lZCBzdHlsZVR5cGUgOiA0OyAvLyBQc2V1ZG9JZAogICAg
ICAgICB1bnNpZ25lZCBwc2V1ZG9CaXRzIDogKHN0YXRpY19jYXN0PHVuc2lnbmVkPihQc2V1ZG9J
ZDo6Rmlyc3RJbnRlcm5hbFBzZXVkb0lkKSAtIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQc2V1ZG9J
ZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZCkpOwpAQCAtMjEwMiw2ICsyMTA2LDcgQEAgaW5saW5lIGJv
b2wgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09KGNvbnN0IE5vbklu
aGVyaXRlZEZsYWdzJgogICAgICAgICAmJiBsYXN0Q2hpbGRTdGF0ZSA9PSBvdGhlci5sYXN0Q2hp
bGRTdGF0ZQogICAgICAgICAmJiBpc0xpbmsgPT0gb3RoZXIuaXNMaW5rCiAgICAgICAgICYmIGhh
c0NvbnRlbnROb25lID09IG90aGVyLmhhc0NvbnRlbnROb25lCisgICAgICAgICYmIHNraXBzQ29u
dGVudHMgPT0gb3RoZXIuc2tpcHNDb250ZW50cwogICAgICAgICAmJiBzdHlsZVR5cGUgPT0gb3Ro
ZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3RoZXIucHNldWRvQml0czsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggYmZmMjljMDFjZjk1
Li4zM2I2ZmEyYjJhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBA
IC01NDcsNiArNTQ3LDExIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAgICAgaWYgKG1fZWxl
bWVudCkKICAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzKGNvbXB1dGVF
dmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJlbnRTdHlsZS5ldmVudExp
c3RlbmVyUmVnaW9uVHlwZXMoKSkpOwogCisgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5
KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgIHN0eWxlLnNldFNraXBzQ29u
dGVudHMobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+c2hvdWxkU2tpcENvbnRlbnQoKSk7CisgICAg
ZWxzZQorICAgICAgICBzdHlsZS5zZXRTa2lwc0NvbnRlbnRzKHN0eWxlLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisKICNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQgJiYgbV9kb2N1bWVudC5zZXR0aW5ncygpLnRl
eHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCiAgICAgICAgIGFkanVzdEZvclRleHRB
dXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454485</attachid>
            <date>2022-03-11 07:48:48 -0800</date>
            <delta_ts>2022-03-16 05:04:00 -0700</delta_ts>
            <desc>Better ChangeLog.</desc>
            <filename>bug236711b.diff</filename>
            <type>text/plain</type>
            <size>20945</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZjhmNGEyMTdkZmEuLjc4OTljMmNjZWI2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTExICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0xMSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3Mg
Y29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiZmY2YzAy
MDg2Mi4uMjExNjJlZTU2MTkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ2MTksMTIgKzQ2MTks
OCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDQ4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDUwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5
ZXItMDAwLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDY1ZGE2NjQ5NDE5Li5lZGU3NDUzMmIwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAor
MjAyMi0wMy0xMSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250
ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBh
dXRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIFsx
XS4KKworICAgICAgICBUbyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYW4gZWxlbWVudCBpcyByZWxl
dmFudCB0byB0aGUgdXNlciBbMl0gYW5kCisgICAgICAgIGRlY2lkZSB0byB3aGV0aGVyIGl0IHNo
b3VsZCBza2lwIGNvbnRlbnRzIFszXSB0aGUgZm9sbG93aW5nIGlzIGRvbmU6CisgICAgICAgIC0g
YW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12
aXNpYmlsaXR5OiBhdXRvCisgICAgICAgICAgaXMgc2V0IG9uIGFuIEVsZW1lbnQuIFRoaXMga2Vl
cHMgdHJhY2sgd2hldGhlciB0aGUgRWxlbWVudCBpcyBpbiB0aGUKKyAgICAgICAgICB2aWV3cG9y
dCBvciBub3QgYW5kIHRodXMgaWYgaXQgaXMgcmVsZXZhbiB0byB0aGUgdXNlci4KKyAgICAgICAg
LSBzdGF0ZSBpcyBrZXB0IHdoZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0
cmVlIGNvbnRhaW5zCisgICAgICAgICAgYW55IGZvY3VzZWQgZWxlbWVudHMsIHNpbmNlIHRoYXQg
bWVhbnMgaXQgaXMgcmVsYXZhbnQgdG8gdGhlIHVzZXIuCisKKyAgICAgICAgVGhlIG1ldGhvZHMg
Zm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55IHBy
ZXZpb3VzbHkKKyAgICAgICAgc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRv
IHRoZSB1c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgorCisgICAgICAgIFRoZSBwYXRj
aCBhbHNvIGludHJvZHVjZXMgYSBmbGFnIG9uIFJlbmRlclN0eWxlIHRvIGtlZXAgdHJhY2sgb2Yg
d2hldGhlcgorICAgICAgICB0aGUgUmVuZGVyT2JqZWN0IHNraXBzIGl0IGNvbnRlbnRzIHdoaWNo
IGlzIGtlcHQgaW4gc3luYyB3aXRoIENvbnRlbnRWaXNpYmlsaXR5RGF0YS4KKyAgICAgICAgVGhp
cyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHRvIGRlY2lkZSB3aGV0aGVyIHNpemUgY29udGFp
bm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3MtY29udGFpbi8jdmFsZGVmLWNvbnRlbnQtdmlzaWJpbGl0eS1hdXRvCisgICAg
ICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3JlbGV2YW50LXRv
LXRoZS11c2VyCisgICAgICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRh
aW4vI3NraXBzLWl0cy1jb250ZW50cworCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToga2VlcCB0
cmFjayBvZiB2aWV3cG9ydCBpbnRlcnNlY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5z
dXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBz
a2lwcGVkIGNvbnRlbnRzCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6IHRyeSB0
byBhY3RpdmF0ZSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyBmb3Igc2tpcHBlZCBjb250ZW50cwor
ICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUludGVyc2VjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogdGFrZSAgY29udGVudC12aXNp
YmlsaXR5OiBhdXRvIGludG8gYWNjb3VudAorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW52
YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbnRhaW5zU2l6ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2tpcHNDb250ZW50cyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6c2V0U2tpcHNDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOiBzeW5jIENvbnRlbnRWaXNpYmlsaXR5RGF0YSBz
a2lwcGVkIHN0YXRlIHRvIFJlbmRlclN0eWxlCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QWRq
dXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjItMDMtMTEgIFJvYiBCdWlzICA8cmJ1aXNAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbY29udGVudC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3Ig
Y3NzIGNvbnRlbnQtdmlzaWJpbGl0eTogaGlkZGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA4MzY4Y2E2NjBkMjIuLjU0ZTU2YjQxODJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0xMzQsNiArMTM0LDcgQEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNET01X
aW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgiCkBAIC0zODks
NiArMzkwLDMzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Rpc2FsbG93TGF5b3V0IHsgZmFsc2Ug
fTsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxs
YmFjayBmaW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJD
YWxsYmFjaz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxs
YmFjayhkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNr
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9p
ZD4gaGFuZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPElu
dGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIm
KSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAg
ICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNv
bnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2li
aWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICAgICAgOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7Cisg
ICAgfQorfTsKKwogLy8gRGVmaW5lZCBoZXJlIHRvIGF2b2lkIGluY2x1ZGluZyBHQ1JlYWNoYWJs
ZVJlZi5oIGluIERvY3VtZW50LmgKIHN0cnVjdCBEb2N1bWVudDo6UGVuZGluZ1Njcm9sbEV2ZW50
VGFyZ2V0TGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00NjY0LDYgKzQ2
OTIsMTEgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBvbGRGb2N1c2VkRWxlbWVu
dC0+c2V0Rm9jdXMoZmFsc2UpOwogICAgICAgICBzZXRGb2N1c05hdmlnYXRpb25TdGFydGluZ05v
ZGUobnVsbHB0cik7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBvbGRGb2N1c2VkRWxl
bWVudDsgZm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2Vk
VHJlZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogZGF0YSA9IGZvY3VzZWQtPmNvbnRlbnRW
aXNpYmlsaXR5RGF0YSgpKQorICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNGb2N1cyA9
IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgaWYgKG9wdGlvbnMucmVtb3ZhbEV2ZW50c01v
ZGUgPT0gRm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6RGlzcGF0Y2gpIHsKICAgICAgICAgICAgIC8v
IERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBo
YXZlIGJlZW4gZWRpdGVkLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpIHsKQEAgLTQ3MzIsNiArNDc2NSwxMyBAQCBib29sIERv
Y3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09w
dGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG1fZm9jdXNlZEVsZW1lbnQtPnNldEZvY3VzKHRydWUs
IG9wdGlvbnMudmlzaWJpbGl0eSk7CiAgICAgICAgIG1fbGF0ZXN0Rm9jdXNUcmlnZ2VyID0gb3B0
aW9ucy50cmlnZ2VyOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gbmV3Rm9jdXNlZEVs
ZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3Nl
ZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBmb2N1c2VkLT5jb250ZW50
VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNGb2N1
cyA9IHRydWU7CisgICAgICAgICAgICAgICAgZGF0YS0+aXNTa2lwcGVkQ29udGVudCA9IGZhbHNl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgLy8gVGhlIHNldEZvY3VzIGNh
bGwgdHJpZ2dlcnMgYSBibHVyIGFuZCBhIGZvY3VzIGV2ZW50LiBFdmVudCBoYW5kbGVycyBjb3Vs
ZCBjYXVzZSB0aGUgZm9jdXNlZCBlbGVtZW50IHRvIGJlIGNsZWFyZWQuCiAgICAgICAgIGlmICht
X2ZvY3VzZWRFbGVtZW50ICE9IG5ld0ZvY3VzZWRFbGVtZW50KSB7CiAgICAgICAgICAgICAvLyBo
YW5kbGVyIHNoaWZ0ZWQgZm9jdXMKQEAgLTkxMzgsNiArOTE3OCw0NCBAQCBib29sIERvY3VtZW50
OjpoYXNFbGVtZW50V2l0aFBlbmRpbmdVc2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlKEVsZW1lbnQm
IGVsZW1lbnQpCiAgICAgcmV0dXJuIG1fZWxlbWVudHNXaXRoUGVuZGluZ1VzZXJBZ2VudFNoYWRv
d1RyZWVVcGRhdGVzLmNvbnRhaW5zKGVsZW1lbnQpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQor
eworICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1f
Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6YWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50
KQoreworICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2Vj
dGlvbk9ic2VydmVyKCkpCisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVs
ZW1lbnQpOworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6cmVtb3Zl
Q29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlm
IChhdXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVy
KCkpCisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT51bm9ic2VydmUoZWxlbWVudCk7Cit9
CisKK0ludGVyc2VjdGlvbk9ic2VydmVyKiBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkKK3sKKyAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsK
KyAgICAgICAgYXV0byBjYWxsYmFjayA9IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjazo6Y3JlYXRlKCptX2RvY3VtZW50KTsKKyAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPGNvbnN0IFN0cmluZz4gY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJh
Y2soTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIjEwMCUiKSk7CisgICAgICAgIEludGVyc2VjdGlv
bk9ic2VydmVyOjpJbml0IG9wdGlvbnMgeyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5
Um9vdE1hcmdpbkZhbGxiYWNrLCB7IH0gfTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9IEludGVy
c2VjdGlvbk9ic2VydmVyOjpjcmVhdGUoKm1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBX
VEZNb3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZl
ci5yZXR1cm5WYWx1ZSgpLnB0cigpOworICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFT
RV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZDNkOTNkOGRiZjlmLi5mZThkNWQ0OWI1NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMzksNiArMzM5LDIxIEBAIHByaXZhdGU6CiAgICAg
V2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7CisKKyAgICB2
b2lkIGFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOworICAgIHZvaWQg
cmVtb3ZlQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50Jik7CisKK3ByaXZhdGU6
CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7
CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vh
a1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAgICAgOiBw
dWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpAQCAtMTY0MSw2ICsx
NjU2LDggQEAgcHVibGljOgogCiAgICAgTGF6eUxvYWRJbWFnZU9ic2VydmVyJiBsYXp5TG9hZElt
YWdlT2JzZXJ2ZXIoKTsKIAorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSYgY29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCk7CisKICAgICB2b2lkIHNldEhhc1Zpc3VhbGx5
Tm9uRW1wdHlDdXN0b21Db250ZW50KCkgeyBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250
ZW50ID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQo
KSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50OyB9CiAg
ICAgdm9pZCBlbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CkBAIC0xODg2LDYgKzE5
MDMsOCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNl
cnZlcj4gbV9sYXp5TG9hZEltYWdlT2JzZXJ2ZXI7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPiBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRT
dGF0ZTsKKwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fcGVuZGluZ1N0YXRl
T2JqZWN0OwogI2lmICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIG1fZG9jdW1lbnRD
cmVhdGlvblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNDE0ODk4NjgwZmVmLi5hZGI1
NzUzYmIwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTk5OCw2ICs5OTgsOCBAQCBpbmxp
bmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9yQmxvY2tEaXJlY3Rpb24oc3Rk
OjpvcHRpb25hbDxTY3JvbGxMbwogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6
b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJn
KQogeworICAgIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOworCiAg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAog
ICAgIGlmICghcmVuZGVyZXIoKSkKQEAgLTMwNzAsNiArMzA3MiwxMCBAQCB2b2lkIEVsZW1lbnQ6
OmZvY3VzKGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICBpZiAoIWlzQ29ubmVjdGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1
dG9JZk5lZWRlZCgpOworCisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKwogICAgIGlmIChpc1NraXBwZWRDb250ZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtNDc5NCw2ICs0ODAwLDM5IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVu
dFZpc2liaWxpdHlEYXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkgY29uCiAg
ICAgICAgIGNoaWxkLnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShzaG91bGRTa2lwLCBjb250
ZW50VmlzaWJpbGl0eSk7CiB9CiAKKy8vIEZJWE1FOiB0aGlzIGlzIGluY29tcGxldGUsIGFuZCBu
ZWVkcyB0byBiZSByZWZhY3RvcmVkIHdpdGggaW50ZXJzZWN0aW9uIG9ic2VydmVyIGNvbXB1dGF0
aW9ucyBpbiBEb2N1bWVudC4KK3N0YXRpYyBib29sIGNvbXB1dGVJbnRlcnNlY3Rpb24oY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50LCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikKK3sKKyAgICBpZiAo
IXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGcmFtZVZpZXcqIHZpZXcg
PSBkb2N1bWVudC52aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBGbG9hdFJlY3QgbG9jYWxSb290Qm91bmRzID0gdmlldy0+bGF5b3V0Vmlld3BvcnRS
ZWN0KCk7CisgICAgTGF5b3V0UmVjdCBsb2NhbFRhcmdldEJvdW5kczsKKyAgICBpZiAoaXM8UmVu
ZGVyQm94PigqcmVuZGVyZXIpKQorICAgICAgICBsb2NhbFRhcmdldEJvdW5kcyA9IGRvd25jYXN0
PFJlbmRlckJveD4ocmVuZGVyZXIpLT5ib3JkZXJCb3VuZGluZ0JveCgpOworCisgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRSZWN0PiByb290TG9jYWxUYXJnZXRSZWN0OworICAgIE9wdGlvblNldDxS
ZW5kZXJPYmplY3Q6OlZpc2libGVSZWN0Q29udGV4dE9wdGlvbj4gdmlzaWJsZVJlY3RPcHRpb25z
ID0geyBSZW5kZXJPYmplY3Q6OlZpc2libGVSZWN0Q29udGV4dE9wdGlvbjo6VXNlRWRnZUluY2x1
c2l2ZUludGVyc2VjdGlvbiwgUmVuZGVyT2JqZWN0OjpWaXNpYmxlUmVjdENvbnRleHRPcHRpb246
OkFwcGx5Q29tcG9zaXRlZENsaXBzLCBSZW5kZXJPYmplY3Q6OlZpc2libGVSZWN0Q29udGV4dE9w
dGlvbjo6QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xscyB9OworICAgIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0UmVjdD4gcmVjdEluRnJhbWVBYnNvbHV0ZVNwYWNlID0gcmVuZGVyZXItPmNvbXB1
dGVWaXNpYmxlUmVjdEluQ29udGFpbmVyKGxvY2FsVGFyZ2V0Qm91bmRzLCAmcmVuZGVyZXItPnZp
ZXcoKSwgeyBmYWxzZSAvKiBoYXNQb3NpdGlvbkZpeGVkRGVzY2VuZGFudCAqLywgZmFsc2UgLyog
ZGlydHlSZWN0SXNGbGlwcGVkICovLCB2aXNpYmxlUmVjdE9wdGlvbnMgfSk7CisgICAgaWYgKHJl
Y3RJbkZyYW1lQWJzb2x1dGVTcGFjZSkKKyAgICAgICAgcm9vdExvY2FsVGFyZ2V0UmVjdCA9IHJl
Y3RJbkZyYW1lQWJzb2x1dGVTcGFjZTsKKyAgICBGbG9hdFJlY3Qgcm9vdExvY2FsSW50ZXJzZWN0
aW9uUmVjdCA9IGxvY2FsUm9vdEJvdW5kczsKKyAgICByZXR1cm4gcm9vdExvY2FsVGFyZ2V0UmVj
dCAmJiByb290TG9jYWxJbnRlcnNlY3Rpb25SZWN0LmVkZ2VJbmNsdXNpdmVJbnRlcnNlY3QoKnJv
b3RMb2NhbFRhcmdldFJlY3QpOworfQorCitib29sIEVsZW1lbnQ6OmRldGVybWluZUlmU3VidHJl
ZUhhc0ZvY3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1bWVudCgpLmZvY3Vz
ZWRFbGVtZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlzKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBFbGVt
ZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50
VmlzaWJpbGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3Q29udGVudFZpc2li
aWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODAyLDEwICs0ODQxLDIx
IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29udGVudFZpc2liaWxp
dHkgbmV3Q29udGVudFZpc2liaWxpdHkpCiAgICAgaWYgKGRhdGEuY29udGVudFZpc2liaWxpdHkg
PT0gbmV3Q29udGVudFZpc2liaWxpdHkpCiAgICAgICAgIHJldHVybjsKICAgICBkYXRhLmNvbnRl
bnRWaXNpYmlsaXR5ID0gbmV3Q29udGVudFZpc2liaWxpdHk7Ci0gICAgLy8gRklYTUU6IGhhbmRs
ZSBjLXY6IGF1dG8uCisgICAgaWYgKG5ld0NvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNp
YmlsaXR5OjpBdXRvKSB7CisgICAgICAgIGRhdGEuaXNJbnRlcnNlY3RpbmdWaWV3cG9ydCA9IGNv
bXB1dGVJbnRlcnNlY3Rpb24oZG9jdW1lbnQoKSwgcmVuZGVyZXIoKSk7CisgICAgICAgIGRhdGEu
c3VidHJlZUhhc0ZvY3VzID0gZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMoKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5hZGRDb250ZW50Vmlz
aWJpbGl0eU9ic2VydmF0aW9uKCp0aGlzKTsKKyAgICB9CiAgICAgdXBkYXRlQ29udGVudFZpc2li
aWxpdHlEYXRhKGZhbHNlLCBuZXdDb250ZW50VmlzaWJpbGl0eSk7CiB9CiAKK3ZvaWQgRWxlbWVu
dDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sIGlzSW50ZXJzZWN0aW5nKQor
eworICAgIGF1dG8mIGRhdGEgPSBlbnN1cmVDb250ZW50VmlzaWJpbGl0eURhdGEoKTsKKyAgICBk
YXRhLmlzSW50ZXJzZWN0aW5nVmlld3BvcnQgPSBpc0ludGVyc2VjdGluZzsKKyAgICB1cGRhdGVD
b250ZW50VmlzaWJpbGl0eURhdGEoZmFsc2UsIENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKTsKK30K
KwogYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIHsKICAgICBpZiAoYXV0
byogZGF0YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKQpAQCAtNDgxNSwxMSArNDg2NSwyOSBA
QCBib29sIEVsZW1lbnQ6OmlzU2tpcHBlZENvbnRlbnQoKSBjb25zdAogCiBib29sIEVsZW1lbnQ6
OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRl
bnRWaXNpYmlsaXR5RGF0YSgpKQorICAgIGlmIChhdXRvKiBkYXRhID0gY29udGVudFZpc2liaWxp
dHlEYXRhKCkpIHsKKyAgICAgICAgaWYgKGRhdGEtPmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRl
bnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgcmV0dXJuICFkYXRhLT5pc0ludGVyc2Vj
dGluZ1ZpZXdwb3J0ICYmICFkYXRhLT5zdWJ0cmVlSGFzRm9jdXM7CiAgICAgICAgIHJldHVybiBj
b250ZW50VmlzaWJpbGl0eURhdGEoKS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkhpZGRlbjsKKyAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEVsZW1l
bnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpCit7CisgICAgZm9y
IChhdXRvIHRhcmdldCA9IHRoaXM7IHRhcmdldDsgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRFbGVt
ZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoYXV0byogZGF0YSA9IHRhcmdldC0+
Y29udGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChkYXRhLT5jb250ZW50
VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAgICAgICAg
IGRhdGEtPmlzSW50ZXJzZWN0aW5nVmlld3BvcnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRh
cmdldC0+aW52YWxpZGF0ZVN0eWxlKCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldC0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LT5yZW5kZXJlcigpLT5zZXROZWVk
c0xheW91dCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorfQorCiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAogU3R5bGVQcm9wZXJ0
eU1hcCogRWxlbWVudDo6YXR0cmlidXRlU3R5bGVNYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXgg
M2U3NzkwZWRjNzY2Li4yMmFhYTU0OGEzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtOTUsNiAr
OTUsOCBAQCBzdHJ1Y3QgU2hhZG93Um9vdEluaXQ7CiBzdHJ1Y3QgQ29udGVudFZpc2liaWxpdHlE
YXRhIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgYm9vbCBpc1Nr
aXBwZWRDb250ZW50IHsgZmFsc2UgfTsKKyAgICBib29sIGlzSW50ZXJzZWN0aW5nVmlld3BvcnQg
eyBmYWxzZSB9OworICAgIGJvb2wgc3VidHJlZUhhc0ZvY3VzIHsgZmFsc2UgfTsKICAgICBDb250
ZW50VmlzaWJpbGl0eSBjb250ZW50VmlzaWJpbGl0eTsKIH07CiAKQEAgLTY3NSw2ICs2NzcsNyBA
QCBwdWJsaWM6CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhJiBlbnN1cmVDb250ZW50VmlzaWJp
bGl0eURhdGEoKTsKICAgICBDb250ZW50VmlzaWJpbGl0eURhdGEqIGNvbnRlbnRWaXNpYmlsaXR5
RGF0YSgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29udGVudFZp
c2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpOworICAgIHZvaWQgY29udGVudFZpc2liaWxp
dHlWaWV3cG9ydENoYW5nZShib29sKTsKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25z
dDsKICAgICBib29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CiAKQEAgLTcwMyw2ICs3MDYs
MTAgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCB1cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEo
Ym9vbCBzaG91bGRTa2lwLCBDb250ZW50VmlzaWJpbGl0eSk7CiAKKyAgICBib29sIGRldGVybWlu
ZUlmU3VidHJlZUhhc0ZvY3VzKCk7CisKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50VmlzaWJp
bGl0eUF1dG9JZk5lZWRlZCgpOworCiBwcml2YXRlOgogICAgIEZyYW1lKiBkb2N1bWVudEZyYW1l
V2l0aE5vbk51bGxWaWV3KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggODQzZWNkMjAyYTIwLi4xNDhkZmE0M2M1MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01MzUsNyAr
NTM1LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29udGVudFZpc2liaWxpdHlIaWRkZW4oKSBjb25z
dCB7IHJldHVybiBjb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRk
ZW47IH0KICAgICBPcHRpb25TZXQ8Q29udGFpbm1lbnQ+IGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBjb250YWluc0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2
ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OkxheW91dCkgfHwgY29udGVudFZp
c2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQotICAgIGJvb2wgY29u
dGFpbnNTaXplKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlu
cyhDb250YWlubWVudDo6U2l6ZSkgfHwgY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50Vmlz
aWJpbGl0eTo6SGlkZGVuOyB9CisgICAgYm9vbCBjb250YWluc1NpemUoKSBjb25zdCB7IHJldHVy
biBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpTaXplKSB8fCBz
a2lwc0NvbnRlbnRzKCk7IH0KICAgICBib29sIGNvbnRhaW5zU3R5bGUoKSBjb25zdCB7IHJldHVy
biBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpTdHlsZSkgfHwg
Y29udGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAg
IGJvb2wgY29udGFpbnNQYWludCgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50
KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlBhaW50KSB8fCBjb250ZW50VmlzaWJpbGl0eSgpICE9
IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlOyB9CiAgICAgQ29udGFpbmVyVHlwZSBjb250YWlu
ZXJUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udGFpbmVyVHlwZT4obV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+Y29udGFpbmVyVHlwZSk7IH0KQEAgLTE1MDksNiArMTUwOSw5IEBA
IHB1YmxpYzoKICAgICBib29sIGhhc0F0dHJDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+aGFzQXR0ckNvbnRlbnQ7IH0KICAgICB2b2lkIHNldEhhc0F0dHJD
b250ZW50KCk7CiAKKyAgICBib29sIHNraXBzQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX25v
bkluaGVyaXRlZEZsYWdzLnNraXBzQ29udGVudHM7IH0KKyAgICB2b2lkIHNldFNraXBzQ29udGVu
dHMoYm9vbCB2KSB7IG1fbm9uSW5oZXJpdGVkRmxhZ3Muc2tpcHNDb250ZW50cyA9IHY7IH0KKwog
ICAgIGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7
CiAgICAgQ291bnRlckRpcmVjdGl2ZU1hcCYgYWNjZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKIApA
QCAtMTk2Nyw2ICsxOTcwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbGFzdENoaWxk
U3RhdGUgOiAxOwogICAgICAgICB1bnNpZ25lZCBpc0xpbmsgOiAxOwogICAgICAgICB1bnNpZ25l
ZCBoYXNDb250ZW50Tm9uZSA6IDE7CisgICAgICAgIHVuc2lnbmVkIHNraXBzQ29udGVudHMgOiAx
OwogCiAgICAgICAgIHVuc2lnbmVkIHN0eWxlVHlwZSA6IDQ7IC8vIFBzZXVkb0lkCiAgICAgICAg
IHVuc2lnbmVkIHBzZXVkb0JpdHMgOiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBzZXVkb0lkOjpG
aXJzdEludGVybmFsUHNldWRvSWQpIC0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBzZXVkb0lkOjpG
aXJzdFB1YmxpY1BzZXVkb0lkKSk7CkBAIC0yMTA0LDYgKzIxMDgsNyBAQCBpbmxpbmUgYm9vbCBS
ZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0oY29uc3QgTm9uSW5oZXJp
dGVkRmxhZ3MmCiAgICAgICAgICYmIGxhc3RDaGlsZFN0YXRlID09IG90aGVyLmxhc3RDaGlsZFN0
YXRlCiAgICAgICAgICYmIGlzTGluayA9PSBvdGhlci5pc0xpbmsKICAgICAgICAgJiYgaGFzQ29u
dGVudE5vbmUgPT0gb3RoZXIuaGFzQ29udGVudE5vbmUKKyAgICAgICAgJiYgc2tpcHNDb250ZW50
cyA9PSBvdGhlci5za2lwc0NvbnRlbnRzCiAgICAgICAgICYmIHN0eWxlVHlwZSA9PSBvdGhlci5z
dHlsZVR5cGUKICAgICAgICAgJiYgcHNldWRvQml0cyA9PSBvdGhlci5wc2V1ZG9CaXRzOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCBiZmYyOWMwMWNmOTUuLjMz
YjZmYTJiMmFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU0
Nyw2ICs1NDcsMTEgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICBpZiAobV9lbGVtZW50
KQogICAgICAgICBzdHlsZS5zZXRFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoY29tcHV0ZUV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlcygqbV9lbGVtZW50LCBtX3BhcmVudFN0eWxlLmV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlcygpKSk7CiAKKyAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9
PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgc3R5bGUuc2V0U2tpcHNDb250ZW50
cyhtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5zaG91bGRTa2lwQ29udGVudCgpKTsKKyAgICBlbHNl
CisgICAgICAgIHN0eWxlLnNldFNraXBzQ29udGVudHMoc3R5bGUuY29udGVudFZpc2liaWxpdHko
KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKTsKKwogI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCiAgICAgaWYgKG1fZWxlbWVudCAmJiBtX2RvY3VtZW50LnNldHRpbmdzKCkudGV4dEF1
dG9zaXppbmdVc2VzSWRlbXBvdGVudE1vZGUoKSkKICAgICAgICAgYWRqdXN0Rm9yVGV4dEF1dG9z
aXppbmcoc3R5bGUsICptX2VsZW1lbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454822</attachid>
            <date>2022-03-16 05:04:00 -0700</date>
            <delta_ts>2022-03-16 09:11:01 -0700</delta_ts>
            <desc>Compute intersections synchronously</desc>
            <filename>bug236711c.diff</filename>
            <type>text/plain</type>
            <size>19707</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzliNjMzMDQzZjkuLjQ3MjA2ZWI2N2RiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3Mg
Y29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg2ZWU4NTUy
MjliNS4uYzNlYzdiYTJiZThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ2MzMsMTIgKzQ2MzMs
OCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDQ4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDUwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5
ZXItMDAzLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTlmN2IxYTVmNTNhLi40NmJkMzFjMDM1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250
ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBh
dXRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIFsx
XS4KKworICAgICAgICBUbyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYW4gZWxlbWVudCBpcyByZWxl
dmFudCB0byB0aGUgdXNlciBbMl0gYW5kCisgICAgICAgIGRlY2lkZSB0byB3aGV0aGVyIGl0IHNo
b3VsZCBza2lwIGNvbnRlbnRzIFszXSB0aGUgZm9sbG93aW5nIGlzIGRvbmU6CisgICAgICAgIC0g
YW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12
aXNpYmlsaXR5OiBhdXRvCisgICAgICAgICAgaXMgc2V0IG9uIGFuIEVsZW1lbnQuIFRoaXMga2Vl
cHMgdHJhY2sgd2hldGhlciB0aGUgRWxlbWVudCBpcyBpbiB0aGUKKyAgICAgICAgICB2aWV3cG9y
dCBvciBub3QgYW5kIHRodXMgaWYgaXQgaXMgcmVsZXZhbiB0byB0aGUgdXNlci4KKyAgICAgICAg
LSBzdGF0ZSBpcyBrZXB0IHdoZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0
cmVlIGNvbnRhaW5zCisgICAgICAgICAgYW55IGZvY3VzZWQgZWxlbWVudHMsIHNpbmNlIHRoYXQg
bWVhbnMgaXQgaXMgcmVsYXZhbnQgdG8gdGhlIHVzZXIuCisKKyAgICAgICAgVGhlIG1ldGhvZHMg
Zm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55IHBy
ZXZpb3VzbHkKKyAgICAgICAgc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRv
IHRoZSB1c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgorCisgICAgICAgIFRoZSBwYXRj
aCBhbHNvIGludHJvZHVjZXMgYSBmbGFnIG9uIFJlbmRlclN0eWxlIHRvIGtlZXAgdHJhY2sgb2Yg
d2hldGhlcgorICAgICAgICB0aGUgUmVuZGVyT2JqZWN0IHNraXBzIGl0IGNvbnRlbnRzIHdoaWNo
IGlzIGtlcHQgaW4gc3luYyB3aXRoIENvbnRlbnRWaXNpYmlsaXR5RGF0YS4KKyAgICAgICAgVGhp
cyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHRvIGRlY2lkZSB3aGV0aGVyIHNpemUgY29udGFp
bm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3MtY29udGFpbi8jdmFsZGVmLWNvbnRlbnQtdmlzaWJpbGl0eS1hdXRvCisgICAg
ICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3JlbGV2YW50LXRv
LXRoZS11c2VyCisgICAgICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRh
aW4vI3NraXBzLWl0cy1jb250ZW50cworCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToga2VlcCB0
cmFjayBvZiB2aWV3cG9ydCBpbnRlcnNlY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5z
dXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBz
a2lwcGVkIGNvbnRlbnRzCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6IHRyeSB0
byBhY3RpdmF0ZSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyBmb3Igc2tpcHBlZCBjb250ZW50cwor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IHRh
a2UgIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250YWluc1NpemUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNraXBzQ29udGVudHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFNraXBzQ29udGVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
IGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDogc3luYyBDb250ZW50
VmlzaWJpbGl0eURhdGEgc2tpcHBlZCBzdGF0ZSB0byBSZW5kZXJTdHlsZQorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOgorCiAyMDIyLTAzLTE2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NvbnRlbnQtdmlzaWJpbGl0eV0g
QWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6IGhpZGRlbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggOGY0M2MxNWY5ZTI3Li4zMGJiZjgzMzZlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTM0LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgog
I2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0
ZW5lci5oIgpAQCAtMzg5LDYgKzM5MCwzMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhbGxv
d0xheW91dCB7IGZhbHNlIH07CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJD
YWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
Ym9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENh
bGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29u
c3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVy
c2VjdGlvbk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5p
c0VtcHR5KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAg
ICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAg
ICAgICBlbGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0lu
dGVyc2VjdGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9j
dW1lbnQpCisgICAgeworICAgIH0KK307CisKIC8vIERlZmluZWQgaGVyZSB0byBhdm9pZCBpbmNs
dWRpbmcgR0NSZWFjaGFibGVSZWYuaCBpbiBEb2N1bWVudC5oCiBzdHJ1Y3QgRG9jdW1lbnQ6OlBl
bmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtNDY2NCw2ICs0NjkyLDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAg
b2xkRm9jdXNlZEVsZW1lbnQtPnNldEZvY3VzKGZhbHNlKTsKICAgICAgICAgc2V0Rm9jdXNOYXZp
Z2F0aW9uU3RhcnRpbmdOb2RlKG51bGxwdHIpOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2Vk
ID0gb2xkRm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRF
bGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBm
b2N1c2VkLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICAgICAgICAgICAgICBkYXRhLT5z
dWJ0cmVlSGFzRm9jdXMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvcHRpb25z
LnJlbW92YWxFdmVudHNNb2RlID09IEZvY3VzUmVtb3ZhbEV2ZW50c01vZGU6OkRpc3BhdGNoKSB7
CiAgICAgICAgICAgICAvLyBEaXNwYXRjaCBhIGNoYW5nZSBldmVudCBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHRoYXQgaGF2ZSBiZWVuIGVkaXRlZC4KICAgICAgICAgICAgIGlmIChpczxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKSB7CkBAIC00NzMyLDYgKzQ3
NjUsMTMgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBtX2ZvY3VzZWRFbGVtZW50
LT5zZXRGb2N1cyh0cnVlLCBvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICBtX2xhdGVzdEZv
Y3VzVHJpZ2dlciA9IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNl
ZCA9IG5ld0ZvY3VzZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0g
Zm9jdXNlZC0+Y29udGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRh
LT5zdWJ0cmVlSGFzRm9jdXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhdGEtPmlzU2tpcHBl
ZENvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIC8v
IFRoZSBzZXRGb2N1cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZl
bnQgaGFuZGxlcnMgY291bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVk
LgogICAgICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewog
ICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05MTM4LDYgKzkxNzgsNDQg
QEAgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJl
ZVVwZGF0ZShFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBtX2VsZW1lbnRzV2l0aFBlbmRp
bmdVc2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlcy5jb250YWlucyhlbGVtZW50KTsKIH0KIAorQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlx
dWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICpt
X2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNl
cnZlci0+b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNl
cnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYg
KCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5
Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAg
ICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBj
b250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8g
b2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29i
c2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVm
IERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQzZDkzZDhkYmY5
Zi4uZmU4ZDVkNDliNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzM5LDYgKzMzOSwyMSBA
QCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFz
cyBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1
bWVudCYpOworCisgICAgdm9pZCBhZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1l
bnQmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVu
dCYpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9ic2VydmVyKiBlbnN1cmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBtX29i
c2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKQEAgLTE2NDEsNiArMTY1Niw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNl
cnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9p
ZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgp
OwpAQCAtMTg4Niw2ICsxOTAzLDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtX3BlbmRpbmdTdGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3Rvbmlj
VGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQx
NDg5ODY4MGZlZi4uY2EyYmJiMDRlOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTgs
NiArOTk4LDggQEAgaW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJs
b2NrRGlyZWN0aW9uKHN0ZDo6b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3Jv
bGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmll
d09wdGlvbnM+PiYmIGFyZykKIHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRv
SWZOZWVkZWQoKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMDcwLDYgKzMwNzIsMTAg
QEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAg
aWYgKCFpc0Nvbm5lY3RlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29u
dGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVu
dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3OTQsNiArNDgwMCwxNSBAQCB2b2lkIEVsZW1l
bnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRW
aXNpYmlsaXR5IGNvbgogICAgICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEo
c2hvdWxkU2tpcCwgY29udGVudFZpc2liaWxpdHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVy
bWluZUlmU3VidHJlZUhhc0ZvY3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1
bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJl
bnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlz
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0
eSBuZXdDb250ZW50VmlzaWJpbGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3
Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODAx
LDExICs0ODE2LDI0IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29u
dGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpCiAgICAgYXV0byYgZGF0YSA9IGVu
c3VyZUNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpOwogICAgIGlmIChkYXRhLmNvbnRlbnRWaXNpYmls
aXR5ID09IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgICAgICByZXR1cm47CisgICAgaWYgKGRh
dGEuY29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAg
IGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkucmVtb3ZlQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CiAgICAgZGF0YS5jb250ZW50VmlzaWJpbGl0
eSA9IG5ld0NvbnRlbnRWaXNpYmlsaXR5OwotICAgIC8vIEZJWE1FOiBoYW5kbGUgYy12OiBhdXRv
LgorICAgIGlmIChuZXdDb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bykgeworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucygp
OworICAgICAgICBkYXRhLnN1YnRyZWVIYXNGb2N1cyA9IGRldGVybWluZUlmU3VidHJlZUhhc0Zv
Y3VzKCk7CisgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
KCkuYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CisgICAgfQogICAgIHVw
ZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwog
fQogCit2b2lkIEVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBp
c0ludGVyc2VjdGluZykKK3sKKyAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxp
dHlEYXRhKCk7CisgICAgZGF0YS5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rp
bmc7CisgICAgdXBkYXRlQ29udGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJp
bGl0eTo6QXV0byk7Cit9CisKIGJvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0
CiB7CiAgICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ4
MTUsMTEgKzQ4NDMsMjkgQEAgYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QK
IAogYm9vbCBFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1
dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9
IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50Vmlz
aWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAh
ZGF0YS0+aXNJbnRlcnNlY3RpbmdWaWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzOwog
ICAgICAgICByZXR1cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRWaXNpYmlsaXR5
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVk
ZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRh
cmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IGRhdGEgPSB0YXJnZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAgICBp
ZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsK
KyAgICAgICAgICAgICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAg
IGlmICh0YXJnZXQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cmVu
ZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00p
CiAKIFN0eWxlUHJvcGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFwKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCmluZGV4IDNlNzc5MGVkYzc2Ni4uMjJhYWE1NDhhMzg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTk1LDYgKzk1LDggQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0Owogc3RydWN0IENv
bnRlbnRWaXNpYmlsaXR5RGF0YSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVE
OwogICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0ludGVy
c2VjdGluZ1ZpZXdwb3J0IHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNGb2N1cyB7IGZh
bHNlIH07CiAgICAgQ29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBA
IC02NzUsNiArNjc3LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5z
dXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBj
b250ZW50VmlzaWJpbGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNp
YmlsaXR5KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lk
IGNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBw
ZWRDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Owog
CkBAIC03MDMsNiArNzA2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlQ29udGVu
dFZpc2liaWxpdHlEYXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkpOwogCisg
ICAgYm9vbCBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBGcmFt
ZSogZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGNlZGUzNDdjYzhlNC4uNDlj
YTVkZmFmMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtNTM2LDcgKzUzNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRWaXNpYmls
aXR5SGlkZGVuKCkgY29uc3QgeyByZXR1cm4gY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50
VmlzaWJpbGl0eTo6SGlkZGVuOyB9CiAgICAgT3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZlY3Rp
dmVDb250YWlubWVudCgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpMYXlv
dXQpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7
IH0KLSAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRh
aW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5
KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNTaXpl
KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlu
bWVudDo6U2l6ZSkgfHwgc2tpcHNDb250ZW50cygpOyB9CiAgICAgYm9vbCBjb250YWluc1N0eWxl
KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlu
bWVudDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6
OlZpc2libGU7IH0KICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBlZmZl
Y3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29udGVu
dFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIENvbnRh
aW5lclR5cGUgY29udGFpbmVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRh
aW5lclR5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW5lclR5cGUpOyB9CkBAIC0x
NTE2LDYgKzE1MTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBdHRyQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmhhc0F0dHJDb250ZW50OyB9CiAgICAg
dm9pZCBzZXRIYXNBdHRyQ29udGVudCgpOwogCisgICAgYm9vbCBza2lwc0NvbnRlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ub25Jbmhlcml0ZWRGbGFncy5za2lwc0NvbnRlbnRzOyB9CisgICAgdm9p
ZCBzZXRTa2lwc0NvbnRlbnRzKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBzQ29u
dGVudHMgPSB2OyB9CisKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGly
ZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJE
aXJlY3RpdmVzKCk7CiAKQEAgLTE5NzQsNiArMTk3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVu
c2lnbmVkIGxhc3RDaGlsZFN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgaXNMaW5rIDogMTsK
ICAgICAgICAgdW5zaWduZWQgaGFzQ29udGVudE5vbmUgOiAxOworICAgICAgICB1bnNpZ25lZCBz
a2lwc0NvbnRlbnRzIDogMTsKIAogICAgICAgICB1bnNpZ25lZCBzdHlsZVR5cGUgOiA0OyAvLyBQ
c2V1ZG9JZAogICAgICAgICB1bnNpZ25lZCBwc2V1ZG9CaXRzIDogKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQc2V1ZG9JZDo6Rmlyc3RJbnRlcm5hbFBzZXVkb0lkKSAtIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQc2V1ZG9JZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZCkpOwpAQCAtMjExMSw2ICsyMTE1LDcg
QEAgaW5saW5lIGJvb2wgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
KGNvbnN0IE5vbkluaGVyaXRlZEZsYWdzJgogICAgICAgICAmJiBsYXN0Q2hpbGRTdGF0ZSA9PSBv
dGhlci5sYXN0Q2hpbGRTdGF0ZQogICAgICAgICAmJiBpc0xpbmsgPT0gb3RoZXIuaXNMaW5rCiAg
ICAgICAgICYmIGhhc0NvbnRlbnROb25lID09IG90aGVyLmhhc0NvbnRlbnROb25lCisgICAgICAg
ICYmIHNraXBzQ29udGVudHMgPT0gb3RoZXIuc2tpcHNDb250ZW50cwogICAgICAgICAmJiBzdHls
ZVR5cGUgPT0gb3RoZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3RoZXIu
cHNldWRvQml0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXgg
MWViOTY2NzY4MTlkLi5hOTRmYWZlMDMwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwCkBAIC01NDcsNiArNTQ3LDExIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAg
ICAgaWYgKG1fZWxlbWVudCkKICAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGVzKGNvbXB1dGVFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJlbnRT
dHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSkpOwogCisgICAgaWYgKHN0eWxlLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgIHN0eWxl
LnNldFNraXBzQ29udGVudHMobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+c2hvdWxkU2tpcENvbnRl
bnQoKSk7CisgICAgZWxzZQorICAgICAgICBzdHlsZS5zZXRTa2lwc0NvbnRlbnRzKHN0eWxlLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisKICNpZiBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQgJiYgbV9kb2N1bWVudC5z
ZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCiAgICAgICAgIGFk
anVzdEZvclRleHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454844</attachid>
            <date>2022-03-16 09:11:01 -0700</date>
            <delta_ts>2022-03-16 11:23:12 -0700</delta_ts>
            <desc>Fix intersection computation</desc>
            <filename>bug236711d.diff</filename>
            <type>text/plain</type>
            <size>19707</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MDg5YzdiMDgxM2YuLjhiZTBhMzcwMDA5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3Mg
Y29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg2ZWU4NTUy
MjliNS4uYzNlYzdiYTJiZThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ2MzMsMTIgKzQ2MzMs
OCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDQ4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDUwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5
ZXItMDAzLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWFkMWMxNGJmZjEzLi5lZmNiN2M3YmI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250
ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBh
dXRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIFsx
XS4KKworICAgICAgICBUbyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYW4gZWxlbWVudCBpcyByZWxl
dmFudCB0byB0aGUgdXNlciBbMl0gYW5kCisgICAgICAgIGRlY2lkZSB0byB3aGV0aGVyIGl0IHNo
b3VsZCBza2lwIGNvbnRlbnRzIFszXSB0aGUgZm9sbG93aW5nIGlzIGRvbmU6CisgICAgICAgIC0g
YW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12
aXNpYmlsaXR5OiBhdXRvCisgICAgICAgICAgaXMgc2V0IG9uIGFuIEVsZW1lbnQuIFRoaXMga2Vl
cHMgdHJhY2sgd2hldGhlciB0aGUgRWxlbWVudCBpcyBpbiB0aGUKKyAgICAgICAgICB2aWV3cG9y
dCBvciBub3QgYW5kIHRodXMgaWYgaXQgaXMgcmVsZXZhbiB0byB0aGUgdXNlci4KKyAgICAgICAg
LSBzdGF0ZSBpcyBrZXB0IHdoZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0
cmVlIGNvbnRhaW5zCisgICAgICAgICAgYW55IGZvY3VzZWQgZWxlbWVudHMsIHNpbmNlIHRoYXQg
bWVhbnMgaXQgaXMgcmVsYXZhbnQgdG8gdGhlIHVzZXIuCisKKyAgICAgICAgVGhlIG1ldGhvZHMg
Zm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55IHBy
ZXZpb3VzbHkKKyAgICAgICAgc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRv
IHRoZSB1c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgorCisgICAgICAgIFRoZSBwYXRj
aCBhbHNvIGludHJvZHVjZXMgYSBmbGFnIG9uIFJlbmRlclN0eWxlIHRvIGtlZXAgdHJhY2sgb2Yg
d2hldGhlcgorICAgICAgICB0aGUgUmVuZGVyT2JqZWN0IHNraXBzIGl0IGNvbnRlbnRzIHdoaWNo
IGlzIGtlcHQgaW4gc3luYyB3aXRoIENvbnRlbnRWaXNpYmlsaXR5RGF0YS4KKyAgICAgICAgVGhp
cyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHRvIGRlY2lkZSB3aGV0aGVyIHNpemUgY29udGFp
bm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3MtY29udGFpbi8jdmFsZGVmLWNvbnRlbnQtdmlzaWJpbGl0eS1hdXRvCisgICAg
ICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3JlbGV2YW50LXRv
LXRoZS11c2VyCisgICAgICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRh
aW4vI3NraXBzLWl0cy1jb250ZW50cworCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToga2VlcCB0
cmFjayBvZiB2aWV3cG9ydCBpbnRlcnNlY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5z
dXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBz
a2lwcGVkIGNvbnRlbnRzCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6IHRyeSB0
byBhY3RpdmF0ZSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyBmb3Igc2tpcHBlZCBjb250ZW50cwor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IHRh
a2UgIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250YWluc1NpemUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNraXBzQ29udGVudHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFNraXBzQ29udGVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
IGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDogc3luYyBDb250ZW50
VmlzaWJpbGl0eURhdGEgc2tpcHBlZCBzdGF0ZSB0byBSZW5kZXJTdHlsZQorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOgorCiAyMDIyLTAzLTE2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NvbnRlbnQtdmlzaWJpbGl0eV0g
QWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6IGhpZGRlbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggOGY0M2MxNWY5ZTI3Li4zMGJiZjgzMzZlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTM0LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgog
I2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0
ZW5lci5oIgpAQCAtMzg5LDYgKzM5MCwzMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhbGxv
d0xheW91dCB7IGZhbHNlIH07CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJD
YWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
Ym9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENh
bGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29u
c3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVy
c2VjdGlvbk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5p
c0VtcHR5KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAg
ICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAg
ICAgICBlbGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0lu
dGVyc2VjdGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9j
dW1lbnQpCisgICAgeworICAgIH0KK307CisKIC8vIERlZmluZWQgaGVyZSB0byBhdm9pZCBpbmNs
dWRpbmcgR0NSZWFjaGFibGVSZWYuaCBpbiBEb2N1bWVudC5oCiBzdHJ1Y3QgRG9jdW1lbnQ6OlBl
bmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtNDY2NCw2ICs0NjkyLDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAg
b2xkRm9jdXNlZEVsZW1lbnQtPnNldEZvY3VzKGZhbHNlKTsKICAgICAgICAgc2V0Rm9jdXNOYXZp
Z2F0aW9uU3RhcnRpbmdOb2RlKG51bGxwdHIpOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2Vk
ID0gb2xkRm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRF
bGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBm
b2N1c2VkLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICAgICAgICAgICAgICBkYXRhLT5z
dWJ0cmVlSGFzRm9jdXMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvcHRpb25z
LnJlbW92YWxFdmVudHNNb2RlID09IEZvY3VzUmVtb3ZhbEV2ZW50c01vZGU6OkRpc3BhdGNoKSB7
CiAgICAgICAgICAgICAvLyBEaXNwYXRjaCBhIGNoYW5nZSBldmVudCBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHRoYXQgaGF2ZSBiZWVuIGVkaXRlZC4KICAgICAgICAgICAgIGlmIChpczxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKSB7CkBAIC00NzMyLDYgKzQ3
NjUsMTMgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBtX2ZvY3VzZWRFbGVtZW50
LT5zZXRGb2N1cyh0cnVlLCBvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICBtX2xhdGVzdEZv
Y3VzVHJpZ2dlciA9IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNl
ZCA9IG5ld0ZvY3VzZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0g
Zm9jdXNlZC0+Y29udGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRh
LT5zdWJ0cmVlSGFzRm9jdXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhdGEtPmlzU2tpcHBl
ZENvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIC8v
IFRoZSBzZXRGb2N1cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZl
bnQgaGFuZGxlcnMgY291bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVk
LgogICAgICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewog
ICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05MTM4LDYgKzkxNzgsNDQg
QEAgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJl
ZVVwZGF0ZShFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBtX2VsZW1lbnRzV2l0aFBlbmRp
bmdVc2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlcy5jb250YWlucyhlbGVtZW50KTsKIH0KIAorQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlx
dWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICpt
X2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNl
cnZlci0+b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNl
cnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYg
KCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5
Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAg
ICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBj
b250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8g
b2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29i
c2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVm
IERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQzZDkzZDhkYmY5
Zi4uZmU4ZDVkNDliNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzM5LDYgKzMzOSwyMSBA
QCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFz
cyBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1
bWVudCYpOworCisgICAgdm9pZCBhZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1l
bnQmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVu
dCYpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9ic2VydmVyKiBlbnN1cmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBtX29i
c2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKQEAgLTE2NDEsNiArMTY1Niw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNl
cnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9p
ZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgp
OwpAQCAtMTg4Niw2ICsxOTAzLDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtX3BlbmRpbmdTdGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3Rvbmlj
VGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQx
NDg5ODY4MGZlZi4uY2UyMDI4MTcwN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTgs
NiArOTk4LDggQEAgaW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJs
b2NrRGlyZWN0aW9uKHN0ZDo6b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3Jv
bGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmll
d09wdGlvbnM+PiYmIGFyZykKIHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRv
SWZOZWVkZWQoKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMDcwLDYgKzMwNzIsMTAg
QEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAg
aWYgKCFpc0Nvbm5lY3RlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29u
dGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVu
dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3OTQsNiArNDgwMCwxNSBAQCB2b2lkIEVsZW1l
bnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRW
aXNpYmlsaXR5IGNvbgogICAgICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEo
c2hvdWxkU2tpcCwgY29udGVudFZpc2liaWxpdHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVy
bWluZUlmU3VidHJlZUhhc0ZvY3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1
bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJl
bnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlz
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0
eSBuZXdDb250ZW50VmlzaWJpbGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3
Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODAx
LDExICs0ODE2LDI0IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29u
dGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpCiAgICAgYXV0byYgZGF0YSA9IGVu
c3VyZUNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpOwogICAgIGlmIChkYXRhLmNvbnRlbnRWaXNpYmls
aXR5ID09IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgICAgICByZXR1cm47CisgICAgaWYgKGRh
dGEuY29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAg
IGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkucmVtb3ZlQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CiAgICAgZGF0YS5jb250ZW50VmlzaWJpbGl0
eSA9IG5ld0NvbnRlbnRWaXNpYmlsaXR5OwotICAgIC8vIEZJWE1FOiBoYW5kbGUgYy12OiBhdXRv
LgorICAgIGlmIChuZXdDb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bykgeworICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgp
LmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKnRoaXMpOworICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucygpOworICAgICAgICBkYXRhLnN1YnRy
ZWVIYXNGb2N1cyA9IGRldGVybWluZUlmU3VidHJlZUhhc0ZvY3VzKCk7CisgICAgfQogICAgIHVw
ZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwog
fQogCit2b2lkIEVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBp
c0ludGVyc2VjdGluZykKK3sKKyAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxp
dHlEYXRhKCk7CisgICAgZGF0YS5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rp
bmc7CisgICAgdXBkYXRlQ29udGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJp
bGl0eTo6QXV0byk7Cit9CisKIGJvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0
CiB7CiAgICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ4
MTUsMTEgKzQ4NDMsMjkgQEAgYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QK
IAogYm9vbCBFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1
dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9
IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50Vmlz
aWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAh
ZGF0YS0+aXNJbnRlcnNlY3RpbmdWaWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzOwog
ICAgICAgICByZXR1cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRWaXNpYmlsaXR5
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVk
ZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRh
cmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IGRhdGEgPSB0YXJnZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAgICBp
ZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsK
KyAgICAgICAgICAgICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAg
IGlmICh0YXJnZXQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cmVu
ZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00p
CiAKIFN0eWxlUHJvcGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFwKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCmluZGV4IDNlNzc5MGVkYzc2Ni4uMjJhYWE1NDhhMzg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTk1LDYgKzk1LDggQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0Owogc3RydWN0IENv
bnRlbnRWaXNpYmlsaXR5RGF0YSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVE
OwogICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0ludGVy
c2VjdGluZ1ZpZXdwb3J0IHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNGb2N1cyB7IGZh
bHNlIH07CiAgICAgQ29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBA
IC02NzUsNiArNjc3LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5z
dXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBj
b250ZW50VmlzaWJpbGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNp
YmlsaXR5KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lk
IGNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBw
ZWRDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Owog
CkBAIC03MDMsNiArNzA2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlQ29udGVu
dFZpc2liaWxpdHlEYXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkpOwogCisg
ICAgYm9vbCBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBGcmFt
ZSogZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGNlZGUzNDdjYzhlNC4uNDlj
YTVkZmFmMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtNTM2LDcgKzUzNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRWaXNpYmls
aXR5SGlkZGVuKCkgY29uc3QgeyByZXR1cm4gY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50
VmlzaWJpbGl0eTo6SGlkZGVuOyB9CiAgICAgT3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZlY3Rp
dmVDb250YWlubWVudCgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpMYXlv
dXQpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7
IH0KLSAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRh
aW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5
KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNTaXpl
KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlu
bWVudDo6U2l6ZSkgfHwgc2tpcHNDb250ZW50cygpOyB9CiAgICAgYm9vbCBjb250YWluc1N0eWxl
KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlu
bWVudDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6
OlZpc2libGU7IH0KICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBlZmZl
Y3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29udGVu
dFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIENvbnRh
aW5lclR5cGUgY29udGFpbmVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRh
aW5lclR5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW5lclR5cGUpOyB9CkBAIC0x
NTE2LDYgKzE1MTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBdHRyQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmhhc0F0dHJDb250ZW50OyB9CiAgICAg
dm9pZCBzZXRIYXNBdHRyQ29udGVudCgpOwogCisgICAgYm9vbCBza2lwc0NvbnRlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9ub25Jbmhlcml0ZWRGbGFncy5za2lwc0NvbnRlbnRzOyB9CisgICAgdm9p
ZCBzZXRTa2lwc0NvbnRlbnRzKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBzQ29u
dGVudHMgPSB2OyB9CisKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGly
ZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJE
aXJlY3RpdmVzKCk7CiAKQEAgLTE5NzQsNiArMTk3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVu
c2lnbmVkIGxhc3RDaGlsZFN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgaXNMaW5rIDogMTsK
ICAgICAgICAgdW5zaWduZWQgaGFzQ29udGVudE5vbmUgOiAxOworICAgICAgICB1bnNpZ25lZCBz
a2lwc0NvbnRlbnRzIDogMTsKIAogICAgICAgICB1bnNpZ25lZCBzdHlsZVR5cGUgOiA0OyAvLyBQ
c2V1ZG9JZAogICAgICAgICB1bnNpZ25lZCBwc2V1ZG9CaXRzIDogKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQc2V1ZG9JZDo6Rmlyc3RJbnRlcm5hbFBzZXVkb0lkKSAtIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQc2V1ZG9JZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZCkpOwpAQCAtMjExMSw2ICsyMTE1LDcg
QEAgaW5saW5lIGJvb2wgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
KGNvbnN0IE5vbkluaGVyaXRlZEZsYWdzJgogICAgICAgICAmJiBsYXN0Q2hpbGRTdGF0ZSA9PSBv
dGhlci5sYXN0Q2hpbGRTdGF0ZQogICAgICAgICAmJiBpc0xpbmsgPT0gb3RoZXIuaXNMaW5rCiAg
ICAgICAgICYmIGhhc0NvbnRlbnROb25lID09IG90aGVyLmhhc0NvbnRlbnROb25lCisgICAgICAg
ICYmIHNraXBzQ29udGVudHMgPT0gb3RoZXIuc2tpcHNDb250ZW50cwogICAgICAgICAmJiBzdHls
ZVR5cGUgPT0gb3RoZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3RoZXIu
cHNldWRvQml0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXgg
MWViOTY2NzY4MTlkLi5hOTRmYWZlMDMwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwCkBAIC01NDcsNiArNTQ3LDExIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAg
ICAgaWYgKG1fZWxlbWVudCkKICAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5
cGVzKGNvbXB1dGVFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJlbnRT
dHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSkpOwogCisgICAgaWYgKHN0eWxlLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgIHN0eWxl
LnNldFNraXBzQ29udGVudHMobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+c2hvdWxkU2tpcENvbnRl
bnQoKSk7CisgICAgZWxzZQorICAgICAgICBzdHlsZS5zZXRTa2lwc0NvbnRlbnRzKHN0eWxlLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisKICNpZiBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQgJiYgbV9kb2N1bWVudC5z
ZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCiAgICAgICAgIGFk
anVzdEZvclRleHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454866</attachid>
            <date>2022-03-16 11:23:12 -0700</date>
            <delta_ts>2022-03-24 09:24:52 -0700</delta_ts>
            <desc>Properly fix intersections</desc>
            <filename>bug236711e.diff</filename>
            <type>text/plain</type>
            <size>19767</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYjBjMDUwNjFjYjQuLmUzZDkzYmY5MzcyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTE2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3Mg
Y29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg2ZWU4NTUy
MjliNS4uYzNlYzdiYTJiZThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ2MzMsMTIgKzQ2MzMs
OCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDQ4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDUwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5
ZXItMDAzLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWFkMWMxNGJmZjEzLi5lZmNiN2M3YmI3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAyMi0wMy0xNiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250
ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBh
dXRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3
MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIFsx
XS4KKworICAgICAgICBUbyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgYW4gZWxlbWVudCBpcyByZWxl
dmFudCB0byB0aGUgdXNlciBbMl0gYW5kCisgICAgICAgIGRlY2lkZSB0byB3aGV0aGVyIGl0IHNo
b3VsZCBza2lwIGNvbnRlbnRzIFszXSB0aGUgZm9sbG93aW5nIGlzIGRvbmU6CisgICAgICAgIC0g
YW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12
aXNpYmlsaXR5OiBhdXRvCisgICAgICAgICAgaXMgc2V0IG9uIGFuIEVsZW1lbnQuIFRoaXMga2Vl
cHMgdHJhY2sgd2hldGhlciB0aGUgRWxlbWVudCBpcyBpbiB0aGUKKyAgICAgICAgICB2aWV3cG9y
dCBvciBub3QgYW5kIHRodXMgaWYgaXQgaXMgcmVsZXZhbiB0byB0aGUgdXNlci4KKyAgICAgICAg
LSBzdGF0ZSBpcyBrZXB0IHdoZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0
cmVlIGNvbnRhaW5zCisgICAgICAgICAgYW55IGZvY3VzZWQgZWxlbWVudHMsIHNpbmNlIHRoYXQg
bWVhbnMgaXQgaXMgcmVsYXZhbnQgdG8gdGhlIHVzZXIuCisKKyAgICAgICAgVGhlIG1ldGhvZHMg
Zm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55IHBy
ZXZpb3VzbHkKKyAgICAgICAgc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRv
IHRoZSB1c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgorCisgICAgICAgIFRoZSBwYXRj
aCBhbHNvIGludHJvZHVjZXMgYSBmbGFnIG9uIFJlbmRlclN0eWxlIHRvIGtlZXAgdHJhY2sgb2Yg
d2hldGhlcgorICAgICAgICB0aGUgUmVuZGVyT2JqZWN0IHNraXBzIGl0IGNvbnRlbnRzIHdoaWNo
IGlzIGtlcHQgaW4gc3luYyB3aXRoIENvbnRlbnRWaXNpYmlsaXR5RGF0YS4KKyAgICAgICAgVGhp
cyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHRvIGRlY2lkZSB3aGV0aGVyIHNpemUgY29udGFp
bm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3MtY29udGFpbi8jdmFsZGVmLWNvbnRlbnQtdmlzaWJpbGl0eS1hdXRvCisgICAg
ICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3JlbGV2YW50LXRv
LXRoZS11c2VyCisgICAgICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRh
aW4vI3NraXBzLWl0cy1jb250ZW50cworCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToga2VlcCB0
cmFjayBvZiB2aWV3cG9ydCBpbnRlcnNlY3Rpb25zCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5z
dXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBz
a2lwcGVkIGNvbnRlbnRzCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpmb2N1cyk6IHRyeSB0
byBhY3RpdmF0ZSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyBmb3Igc2tpcHBlZCBjb250ZW50cwor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IHRh
a2UgIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250YWluc1NpemUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNraXBzQ29udGVudHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldFNraXBzQ29udGVudHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09
IGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDogc3luYyBDb250ZW50
VmlzaWJpbGl0eURhdGEgc2tpcHBlZCBzdGF0ZSB0byBSZW5kZXJTdHlsZQorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOgorCiAyMDIyLTAzLTE2ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NvbnRlbnQtdmlzaWJpbGl0eV0g
QWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6IGhpZGRlbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggOGY0M2MxNWY5ZTI3Li4zMGJiZjgzMzZlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTM0LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgog
I2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0
ZW5lci5oIgpAQCAtMzg5LDYgKzM5MCwzMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaXNhbGxv
d0xheW91dCB7IGZhbHNlIH07CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJD
YWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
Ym9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENh
bGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29u
c3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVy
c2VjdGlvbk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5p
c0VtcHR5KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAg
ICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAg
ICAgICBlbGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0lu
dGVyc2VjdGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9j
dW1lbnQpCisgICAgeworICAgIH0KK307CisKIC8vIERlZmluZWQgaGVyZSB0byBhdm9pZCBpbmNs
dWRpbmcgR0NSZWFjaGFibGVSZWYuaCBpbiBEb2N1bWVudC5oCiBzdHJ1Y3QgRG9jdW1lbnQ6OlBl
bmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtNDY2NCw2ICs0NjkyLDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAg
b2xkRm9jdXNlZEVsZW1lbnQtPnNldEZvY3VzKGZhbHNlKTsKICAgICAgICAgc2V0Rm9jdXNOYXZp
Z2F0aW9uU3RhcnRpbmdOb2RlKG51bGxwdHIpOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2Vk
ID0gb2xkRm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRF
bGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBm
b2N1c2VkLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICAgICAgICAgICAgICBkYXRhLT5z
dWJ0cmVlSGFzRm9jdXMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChvcHRpb25z
LnJlbW92YWxFdmVudHNNb2RlID09IEZvY3VzUmVtb3ZhbEV2ZW50c01vZGU6OkRpc3BhdGNoKSB7
CiAgICAgICAgICAgICAvLyBEaXNwYXRjaCBhIGNoYW5nZSBldmVudCBmb3IgZm9ybSBjb250cm9s
IGVsZW1lbnRzIHRoYXQgaGF2ZSBiZWVuIGVkaXRlZC4KICAgICAgICAgICAgIGlmIChpczxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKSB7CkBAIC00NzMyLDYgKzQ3
NjUsMTMgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBtX2ZvY3VzZWRFbGVtZW50
LT5zZXRGb2N1cyh0cnVlLCBvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICBtX2xhdGVzdEZv
Y3VzVHJpZ2dlciA9IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNl
ZCA9IG5ld0ZvY3VzZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0g
Zm9jdXNlZC0+Y29udGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRh
LT5zdWJ0cmVlSGFzRm9jdXMgPSB0cnVlOworICAgICAgICAgICAgICAgIGRhdGEtPmlzU2tpcHBl
ZENvbnRlbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIC8v
IFRoZSBzZXRGb2N1cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZl
bnQgaGFuZGxlcnMgY291bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVk
LgogICAgICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewog
ICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05MTM4LDYgKzkxNzgsNDQg
QEAgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJl
ZVVwZGF0ZShFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBtX2VsZW1lbnRzV2l0aFBlbmRp
bmdVc2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlcy5jb250YWlucyhlbGVtZW50KTsKIH0KIAorQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlx
dWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICpt
X2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNl
cnZlci0+b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNl
cnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYg
KCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5
Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAg
ICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBj
b250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8g
b2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29i
c2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVm
IERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQzZDkzZDhkYmY5
Zi4uZmU4ZDVkNDliNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzM5LDYgKzMzOSwyMSBA
QCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFz
cyBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1
bWVudCYpOworCisgICAgdm9pZCBhZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1l
bnQmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVu
dCYpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9ic2VydmVyKiBlbnN1cmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBtX29i
c2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKQEAgLTE2NDEsNiArMTY1Niw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNl
cnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9p
ZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgp
OwpAQCAtMTg4Niw2ICsxOTAzLDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtX3BlbmRpbmdTdGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3Rvbmlj
VGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQx
NDg5ODY4MGZlZi4uYTljYjY3Zjg3MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTgs
NiArOTk4LDggQEAgaW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJs
b2NrRGlyZWN0aW9uKHN0ZDo6b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3Jv
bGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmll
d09wdGlvbnM+PiYmIGFyZykKIHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRv
SWZOZWVkZWQoKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMDcwLDYgKzMwNzIsMTAg
QEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAg
aWYgKCFpc0Nvbm5lY3RlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29u
dGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVu
dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3OTQsNiArNDgwMCwxNSBAQCB2b2lkIEVsZW1l
bnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRW
aXNpYmlsaXR5IGNvbgogICAgICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEo
c2hvdWxkU2tpcCwgY29udGVudFZpc2liaWxpdHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVy
bWluZUlmU3VidHJlZUhhc0ZvY3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1
bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJl
bnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlz
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0
eSBuZXdDb250ZW50VmlzaWJpbGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3
Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODAx
LDExICs0ODE2LDI2IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkoQ29u
dGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpCiAgICAgYXV0byYgZGF0YSA9IGVu
c3VyZUNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpOwogICAgIGlmIChkYXRhLmNvbnRlbnRWaXNpYmls
aXR5ID09IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgICAgICByZXR1cm47CisgICAgaWYgKGRh
dGEuY29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAg
IGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkucmVtb3ZlQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CiAgICAgZGF0YS5jb250ZW50VmlzaWJpbGl0
eSA9IG5ld0NvbnRlbnRWaXNpYmlsaXR5OwotICAgIC8vIEZJWE1FOiBoYW5kbGUgYy12OiBhdXRv
LgorICAgIGlmIChuZXdDb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bykgeworICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgp
LmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKnRoaXMpOworICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUludGVyc2VjdGlvbk9ic2VydmF0aW9ucygpOworICAgICAgICBkYXRhLnN1YnRy
ZWVIYXNGb2N1cyA9IGRldGVybWluZUlmU3VidHJlZUhhc0ZvY3VzKCk7CisgICAgfQogICAgIHVw
ZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwog
fQogCit2b2lkIEVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBp
c0ludGVyc2VjdGluZykKK3sKKyAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxp
dHlEYXRhKCk7CisgICAgZGF0YS5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rp
bmc7CisgICAgdXBkYXRlQ29udGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJp
bGl0eTo6QXV0byk7CisgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnNl
dE5lZWRzTGF5b3V0KCk7Cit9CisKIGJvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNv
bnN0CiB7CiAgICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAg
LTQ4MTUsMTEgKzQ4NDUsMjkgQEAgYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29u
c3QKIAogYm9vbCBFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYg
KGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0
YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50
VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVy
biAhZGF0YS0+aXNJbnRlcnNlY3RpbmdWaWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3Vz
OwogICAgICAgICByZXR1cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRWaXNpYmls
aXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZO
ZWVkZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9
IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIGRhdGEgPSB0YXJnZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAg
ICBpZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8p
IHsKKyAgICAgICAgICAgICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAg
ICAgIGlmICh0YXJnZXQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+
cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfVFlQRURf
T00pCiAKIFN0eWxlUHJvcGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IDNlNzc5MGVkYzc2Ni4uMjJhYWE1NDhhMzg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTk1LDYgKzk1LDggQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0Owogc3RydWN0
IENvbnRlbnRWaXNpYmlsaXR5RGF0YSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NB
VEVEOwogICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0lu
dGVyc2VjdGluZ1ZpZXdwb3J0IHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNGb2N1cyB7
IGZhbHNlIH07CiAgICAgQ29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9Owog
CkBAIC02NzUsNiArNjc3LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYg
ZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRh
KiBjb250ZW50VmlzaWJpbGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRW
aXNpYmlsaXR5KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2
b2lkIGNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1Nr
aXBwZWRDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0
OwogCkBAIC03MDMsNiArNzA2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlQ29u
dGVudFZpc2liaWxpdHlEYXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkpOwog
CisgICAgYm9vbCBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBG
cmFtZSogZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGNlZGUzNDdjYzhlNC4u
NDljYTVkZmFmMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtNTM2LDcgKzUzNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRWaXNp
YmlsaXR5SGlkZGVuKCkgY29uc3QgeyByZXR1cm4gY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6SGlkZGVuOyB9CiAgICAgT3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZl
Y3RpdmVDb250YWlubWVudCgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25z
dCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpM
YXlvdXQpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2li
bGU7IH0KLSAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNv
bnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNT
aXplKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250
YWlubWVudDo6U2l6ZSkgfHwgc2tpcHNDb250ZW50cygpOyB9CiAgICAgYm9vbCBjb250YWluc1N0
eWxlKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250
YWlubWVudDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGU7IH0KICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBl
ZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29u
dGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIENv
bnRhaW5lclR5cGUgY29udGFpbmVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENv
bnRhaW5lclR5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW5lclR5cGUpOyB9CkBA
IC0xNTE2LDYgKzE1MTYsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBdHRyQ29udGVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmhhc0F0dHJDb250ZW50OyB9CiAg
ICAgdm9pZCBzZXRIYXNBdHRyQ29udGVudCgpOwogCisgICAgYm9vbCBza2lwc0NvbnRlbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9ub25Jbmhlcml0ZWRGbGFncy5za2lwc0NvbnRlbnRzOyB9CisgICAg
dm9pZCBzZXRTa2lwc0NvbnRlbnRzKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBz
Q29udGVudHMgPSB2OyB9CisKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVy
RGlyZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50
ZXJEaXJlY3RpdmVzKCk7CiAKQEAgLTE5NzQsNiArMTk3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHVuc2lnbmVkIGxhc3RDaGlsZFN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgaXNMaW5rIDog
MTsKICAgICAgICAgdW5zaWduZWQgaGFzQ29udGVudE5vbmUgOiAxOworICAgICAgICB1bnNpZ25l
ZCBza2lwc0NvbnRlbnRzIDogMTsKIAogICAgICAgICB1bnNpZ25lZCBzdHlsZVR5cGUgOiA0OyAv
LyBQc2V1ZG9JZAogICAgICAgICB1bnNpZ25lZCBwc2V1ZG9CaXRzIDogKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQc2V1ZG9JZDo6Rmlyc3RJbnRlcm5hbFBzZXVkb0lkKSAtIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQc2V1ZG9JZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZCkpOwpAQCAtMjExMSw2ICsyMTE1
LDcgQEAgaW5saW5lIGJvb2wgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRv
cj09KGNvbnN0IE5vbkluaGVyaXRlZEZsYWdzJgogICAgICAgICAmJiBsYXN0Q2hpbGRTdGF0ZSA9
PSBvdGhlci5sYXN0Q2hpbGRTdGF0ZQogICAgICAgICAmJiBpc0xpbmsgPT0gb3RoZXIuaXNMaW5r
CiAgICAgICAgICYmIGhhc0NvbnRlbnROb25lID09IG90aGVyLmhhc0NvbnRlbnROb25lCisgICAg
ICAgICYmIHNraXBzQ29udGVudHMgPT0gb3RoZXIuc2tpcHNDb250ZW50cwogICAgICAgICAmJiBz
dHlsZVR5cGUgPT0gb3RoZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3Ro
ZXIucHNldWRvQml0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5k
ZXggMWViOTY2NzY4MTlkLi5hOTRmYWZlMDMwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCkBAIC01NDcsNiArNTQ3LDExIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNl
CiAgICAgaWYgKG1fZWxlbWVudCkKICAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGVzKGNvbXB1dGVFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJl
bnRTdHlsZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSkpOwogCisgICAgaWYgKHN0eWxlLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgIHN0
eWxlLnNldFNraXBzQ29udGVudHMobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+c2hvdWxkU2tpcENv
bnRlbnQoKSk7CisgICAgZWxzZQorICAgICAgICBzdHlsZS5zZXRTa2lwc0NvbnRlbnRzKHN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisKICNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQgJiYgbV9kb2N1bWVu
dC5zZXR0aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCiAgICAgICAg
IGFkanVzdEZvclRleHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455647</attachid>
            <date>2022-03-24 09:24:52 -0700</date>
            <delta_ts>2022-04-06 07:11:19 -0700</delta_ts>
            <desc>Rebase</desc>
            <filename>bug236711g.diff</filename>
            <type>text/plain</type>
            <size>18222</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NTVkY2ZkOGY4OGMuLjJlNjJjMTI3NTIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTI0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CiAKIDIwMjIt
MDMtMjQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZTYwNTg3
MGI1MzYuLjIzOTE4OTBiYmU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIyLTAz
LTI0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2NvbnRlbnQtdmlz
aWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjcxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgorCisg
ICAgICAgIFRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBhbiBlbGVtZW50IGlzIHJlbGV2YW50IHRv
IHRoZSB1c2VyIFsyXSBhbmQKKyAgICAgICAgZGVjaWRlIHRvIHdoZXRoZXIgaXQgc2hvdWxkIHNr
aXAgY29udGVudHMgWzNdIHRoZSBmb2xsb3dpbmcgaXMgZG9uZToKKyAgICAgICAgLSBhbiBJbnRl
cnNlY3Rpb25PYnNlcnZlciBpcyBpbnN0YWxsZWQgYXMgc29vbiBhcyBjb250ZW50LXZpc2liaWxp
dHk6IGF1dG8KKyAgICAgICAgICBpcyBzZXQgb24gYW4gRWxlbWVudC4gVGhpcyBrZWVwcyB0cmFj
ayB3aGV0aGVyIHRoZSBFbGVtZW50IGlzIGluIHRoZQorICAgICAgICAgIHZpZXdwb3J0IG9yIG5v
dCBhbmQgdGh1cyBpZiBpdCBpcyByZWxldmFuIHRvIHRoZSB1c2VyLgorICAgICAgICAtIHN0YXRl
IGlzIGtlcHQgd2hldGhlciB0aGUgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIHN1YnRyZWUgY29u
dGFpbnMKKyAgICAgICAgICBhbnkgZm9jdXNlZCBlbGVtZW50cywgc2luY2UgdGhhdCBtZWFucyBp
dCBpcyByZWxhdmFudCB0byB0aGUgdXNlci4KKworICAgICAgICBUaGUgbWV0aG9kcyBmb2N1cygp
IFs0LjMuNl0gYW5kIHNjcm9sbEludG9WaWV3KCkgWzQuMy41XSB0cmVhdCBhbnkgcHJldmlvdXNs
eQorICAgICAgICBza2lwcGVkIGNvbnRlbnQgYXMgYmVjb21pbmcgcmVsZXZhbnQgdG8gdGhlIHVz
ZXIgYmVmb3JlIGRvaW5nIGFueSBzY3JvbGxpbmcuCisKKyAgICAgICAgVGhlIHBhdGNoIGFsc28g
aW50cm9kdWNlcyBhIGZsYWcgb24gUmVuZGVyU3R5bGUgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVy
CisgICAgICAgIHRoZSBSZW5kZXJPYmplY3Qgc2tpcHMgaXQgY29udGVudHMgd2hpY2ggaXMga2Vw
dCBpbiBzeW5jIHdpdGggQ29udGVudFZpc2liaWxpdHlEYXRhLgorICAgICAgICBUaGlzIGlzIHBh
cnRpY3VsYXJseSBpbXBvcnRhbnQgdG8gZGVjaWRlIHdoZXRoZXIgc2l6ZSBjb250YWlubWVudCBz
aG91bGQgYmUgYXBwbGllZC4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12aXNpYmlsaXR5LWF1dG8KKyAgICAgICAgWzJd
IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jcmVsZXZhbnQtdG8tdGhlLXVz
ZXIKKyAgICAgICAgWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jc2tp
cHMtaXRzLWNvbnRlbnRzCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpOiBrZWVwIHRyYWNrIG9m
IHZpZXdwb3J0IGludGVyc2VjdGlvbnMKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6YWRkQ29udGVudFZp
c2liaWxpdHlPYnNlcnZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1Zp
ZXcpOiB0cnkgdG8gYWN0aXZhdGUgZWxlbWVudCBiZWZvcmUgY2hlY2tpbmcgZm9yIHNraXBwZWQg
Y29udGVudHMKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKTogdHJ5IHRvIGFjdGl2
YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBza2lwcGVkIGNvbnRlbnRzCisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cyk6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogdGFrZSAgY29u
dGVudC12aXNpYmlsaXR5OiBhdXRvIGludG8gYWNjb3VudAorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKToKKyAgICAgICAg
KiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbnRhaW5zU2l6ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2tpcHNDb250ZW50cyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0U2tpcHNDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOiBzeW5jIENvbnRlbnRWaXNpYmls
aXR5RGF0YSBza2lwcGVkIHN0YXRlIHRvIFJlbmRlclN0eWxlCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjItMDMtMjQgIFJvYiBCdWlzICA8
cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY29udGVudC12aXNpYmlsaXR5XSBBZGQgc3Vw
cG9ydCBmb3IgY3NzIGNvbnRlbnQtdmlzaWJpbGl0eTogaGlkZGVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAwODYyZWZmZGI2NTIuLjhjZDBjYjliYjkxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlckNh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVk
ZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgi
CkBAIC0zODksNiArMzkwLDMzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Rpc2FsbG93TGF5b3V0
IHsgZmFsc2UgfTsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhh
c0NhbGxiYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tS
ZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0
b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXImKSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHko
KSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvKiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0
aW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29u
dGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1
bWVudCkKKyAgICAgICAgOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkK
KyAgICB7CisgICAgfQorfTsKKwogLy8gRGVmaW5lZCBoZXJlIHRvIGF2b2lkIGluY2x1ZGluZyBH
Q1JlYWNoYWJsZVJlZi5oIGluIERvY3VtZW50LmgKIHN0cnVjdCBEb2N1bWVudDo6UGVuZGluZ1Nj
cm9sbEV2ZW50VGFyZ2V0TGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00
NjY0LDYgKzQ2OTIsMTEgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBvbGRGb2N1
c2VkRWxlbWVudC0+c2V0Rm9jdXMoZmFsc2UpOwogICAgICAgICBzZXRGb2N1c05hdmlnYXRpb25T
dGFydGluZ05vZGUobnVsbHB0cik7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBvbGRG
b2N1c2VkRWxlbWVudDsgZm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJ
bkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogZGF0YSA9IGZvY3VzZWQt
PmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKQorICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVI
YXNGb2N1cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgaWYgKG9wdGlvbnMucmVtb3Zh
bEV2ZW50c01vZGUgPT0gRm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6RGlzcGF0Y2gpIHsKICAgICAg
ICAgICAgIC8vIERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgdGhhdCBoYXZlIGJlZW4gZWRpdGVkLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpIHsKQEAgLTQ3MzIsNiArNDc2NSwxMyBA
QCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25z
dCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG1fZm9jdXNlZEVsZW1lbnQtPnNldEZv
Y3VzKHRydWUsIG9wdGlvbnMudmlzaWJpbGl0eSk7CiAgICAgICAgIG1fbGF0ZXN0Rm9jdXNUcmln
Z2VyID0gb3B0aW9ucy50cmlnZ2VyOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gbmV3
Rm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50
SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBmb2N1c2Vk
LT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRy
ZWVIYXNGb2N1cyA9IHRydWU7CisgICAgICAgICAgICAgICAgZGF0YS0+aXNTa2lwcGVkQ29udGVu
dCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgLy8gVGhlIHNl
dEZvY3VzIGNhbGwgdHJpZ2dlcnMgYSBibHVyIGFuZCBhIGZvY3VzIGV2ZW50LiBFdmVudCBoYW5k
bGVycyBjb3VsZCBjYXVzZSB0aGUgZm9jdXNlZCBlbGVtZW50IHRvIGJlIGNsZWFyZWQuCiAgICAg
ICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50ICE9IG5ld0ZvY3VzZWRFbGVtZW50KSB7CiAgICAgICAg
ICAgICAvLyBoYW5kbGVyIHNoaWZ0ZWQgZm9jdXMKQEAgLTkxNDQsNiArOTE4NCw0NCBAQCBib29s
IERvY3VtZW50Ojppc1NhbWVTaXRlRm9yQ29va2llcyhjb25zdCBVUkwmIHVybCkgY29uc3QKICAg
ICByZXR1cm4gZG9tYWluLm1hdGNoZXModXJsKTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkKK3sK
KyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKQorICAgICAgICBtX2Nv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlxdWU8Q29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICptX2NvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rp
b25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2ZShlbGVt
ZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnJlbW92ZUNv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAo
YXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigp
KQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNlcnZlKGVsZW1lbnQpOworfQor
CitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpl
bnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYgKCFtX29ic2VydmVyKSB7Cisg
ICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2Vy
dmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNr
KE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAgICAgICBJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBjb250ZW50VmlzaWJpbGl0eVJv
b3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBJbnRlcnNl
Y3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RG
TW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXIu
cmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIERPQ1VNRU5UX1JFTEVBU0Vf
TE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGJmYzg5MWRiOGNhYy4uNzY0YWNiMzk4MjBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzM5LDYgKzMzOSwyMSBAQCBwcml2YXRlOgogICAgIFdl
YWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYpOworCisgICAgdm9p
ZCBhZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKyAgICB2b2lkIHJl
bW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOworCitwcml2YXRlOgor
ICAgIEludGVyc2VjdGlvbk9ic2VydmVyKiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpOwor
CisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOworICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVi
bGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTE2NDIsNiArMTY1
Nyw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNlcnZlciYgbGF6eUxvYWRJbWFn
ZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUmIGNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9pZCBzZXRIYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVu
dCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudDsgfQogICAg
IHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgpOwpAQCAtMTg4Nyw2ICsxOTA0
LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2JzZXJ2
ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3BlbmRpbmdTdGF0ZU9i
amVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3VtZW50Q3Jl
YXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc2M2MwNDg4MGNjYi4uZmFlZDE3
YTdhM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTgsNiArOTk4LDggQEAgaW5saW5l
IFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9uKHN0ZDo6
b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhzdGQ6Om9w
dGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZykK
IHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAg
ICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMDY4LDYgKzMwNzAsMTAgQEAgdm9pZCBFbGVtZW50Ojpm
b2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgaWYgKCFpc0Nvbm5lY3RlZCgp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRv
SWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVudCgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTQ4MDYsNiArNDgxMiwxNSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRW
aXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRWaXNpYmlsaXR5IGNvbgogICAg
ICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoc2hvdWxkU2tpcCwgY29udGVu
dFZpc2liaWxpdHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVybWluZUlmU3VidHJlZUhhc0Zv
Y3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1bWVudCgpLmZvY3VzZWRFbGVt
ZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3Nl
ZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlzKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBFbGVtZW50Ojp1
cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50VmlzaWJp
bGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3Q29udGVudFZpc2liaWxpdHkg
PT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODEzLDggKzQ4MjgsMTQgQEAgdm9p
ZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdD
b250ZW50VmlzaWJpbGl0eSkKICAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxp
dHlEYXRhKCk7CiAgICAgaWYgKGRhdGEuY29udGVudFZpc2liaWxpdHkgPT0gbmV3Q29udGVudFZp
c2liaWxpdHkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGF0YS5jb250ZW50VmlzaWJpbGl0
eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5yZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0
aW9uKCp0aGlzKTsKICAgICBkYXRhLmNvbnRlbnRWaXNpYmlsaXR5ID0gbmV3Q29udGVudFZpc2li
aWxpdHk7Ci0gICAgLy8gRklYTUU6IGhhbmRsZSBjLXY6IGF1dG8uCisgICAgaWYgKG5ld0NvbnRl
bnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAgIGRvY3Vt
ZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVudFZpc2liaWxp
dHlPYnNlcnZhdGlvbigqdGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlSW50ZXJzZWN0
aW9uT2JzZXJ2YXRpb25zKCk7CisgICAgICAgIGRhdGEuc3VidHJlZUhhc0ZvY3VzID0gZGV0ZXJt
aW5lSWZTdWJ0cmVlSGFzRm9jdXMoKTsKKyAgICB9CiAgICAgdXBkYXRlRGVzY2VuZGFudFRvcExh
eWVyRWxlbWVudHMobmV3Q29udGVudFZpc2liaWxpdHkpOwogICAgIHVwZGF0ZUNvbnRlbnRWaXNp
YmlsaXR5RGF0YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwogfQpAQCAtNDgzOCw2ICs0
ODU5LDE1IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlRGVzY2VuZGFudFRvcExheWVyRWxlbWVudHMo
Q29udGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liCiAgICAgfQogfQogCit2b2lkIEVsZW1l
bnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBpc0ludGVyc2VjdGluZykK
K3sKKyAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CisgICAg
ZGF0YS5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rpbmc7CisgICAgdXBkYXRl
Q29udGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJpbGl0eTo6QXV0byk7Cisg
ICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KCk7
Cit9CisKIGJvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYg
KGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ4NDcsMTEgKzQ4Nzcs
MjkgQEAgYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIAogYm9vbCBFbGVt
ZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIGRhdGEgPSBj
b250ZW50VmlzaWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRlbnRWaXNp
YmlsaXR5RGF0YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAhZGF0YS0+aXNJbnRl
cnNlY3RpbmdWaWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzOwogICAgICAgICByZXR1
cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRW
aXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBF
bGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKQoreworICAg
IGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSB0YXJn
ZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAgICBpZiAoZGF0YS0+Y29u
dGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgICAg
ICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXQt
PnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+cmVuZGVyZXIoKS0+c2V0
TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAKIFN0eWxlUHJv
cGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFwKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IDA2YmZmYjI4ZjVlZC4uMDFiYzJlYWI1ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTk1
LDYgKzk1LDggQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0Owogc3RydWN0IENvbnRlbnRWaXNpYmls
aXR5RGF0YSB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogICAgIGJvb2wg
aXNTa2lwcGVkQ29udGVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0ludGVyc2VjdGluZ1ZpZXdw
b3J0IHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNGb2N1cyB7IGZhbHNlIH07CiAgICAg
Q29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBAIC02NzUsNiArNjc3
LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5zdXJlQ29udGVudFZp
c2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBjb250ZW50VmlzaWJp
bGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5KENvbnRl
bnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGNvbnRlbnRWaXNp
YmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkg
Y29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OwogCkBAIC03MDUsNiAr
NzA4LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudFRvcExheWVy
RWxlbWVudHMoQ29udGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpOwogCisgICAg
Ym9vbCBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZhbGlkYXRl
Q29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBGcmFtZSog
ZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDcxMmJiYjU4NTI2NS4uZGVmYjZi
ODcyNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aApAQCAtNTQwLDcgKzU0MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRWaXNpYmlsaXR5
SGlkZGVuKCkgY29uc3QgeyByZXR1cm4gY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50Vmlz
aWJpbGl0eTo6SGlkZGVuOyB9CiAgICAgT3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZlY3RpdmVD
b250YWlubWVudCgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25zdCB7IHJl
dHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpMYXlvdXQp
IHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0K
LSAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5t
ZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNTaXplKCkg
Y29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVu
dDo6U2l6ZSkgfHwgc2tpcHNDb250ZW50cygpOyB9CiAgICAgYm9vbCBjb250YWluc1N0eWxlKCkg
Y29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVu
dDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZp
c2libGU7IH0KICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBlZmZlY3Rp
dmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29udGVudFZp
c2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIENvbnRhaW5l
clR5cGUgY29udGFpbmVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRhaW5l
clR5cGU+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW5lclR5cGUpOyB9CkBAIC0xNTIz
LDYgKzE1MjMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBdHRyQ29udGVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmhhc0F0dHJDb250ZW50OyB9CiAgICAgdm9p
ZCBzZXRIYXNBdHRyQ29udGVudCgpOwogCisgICAgYm9vbCBza2lwc0NvbnRlbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9ub25Jbmhlcml0ZWRGbGFncy5za2lwc0NvbnRlbnRzOyB9CisgICAgdm9pZCBz
ZXRTa2lwc0NvbnRlbnRzKGJvb2wgdikgeyBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBzQ29udGVu
dHMgPSB2OyB9CisKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0
aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJl
Y3RpdmVzKCk7CiAKQEAgLTE5ODYsNiArMTk4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2ln
bmVkIGxhc3RDaGlsZFN0YXRlIDogMTsKICAgICAgICAgdW5zaWduZWQgaXNMaW5rIDogMTsKICAg
ICAgICAgdW5zaWduZWQgaGFzQ29udGVudE5vbmUgOiAxOworICAgICAgICB1bnNpZ25lZCBza2lw
c0NvbnRlbnRzIDogMTsKIAogICAgICAgICB1bnNpZ25lZCBzdHlsZVR5cGUgOiA0OyAvLyBQc2V1
ZG9JZAogICAgICAgICB1bnNpZ25lZCBwc2V1ZG9CaXRzIDogKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQc2V1ZG9JZDo6Rmlyc3RJbnRlcm5hbFBzZXVkb0lkKSAtIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQc2V1ZG9JZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZCkpOwpAQCAtMjEyNiw2ICsyMTMwLDcgQEAg
aW5saW5lIGJvb2wgUmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09KGNv
bnN0IE5vbkluaGVyaXRlZEZsYWdzJgogICAgICAgICAmJiBsYXN0Q2hpbGRTdGF0ZSA9PSBvdGhl
ci5sYXN0Q2hpbGRTdGF0ZQogICAgICAgICAmJiBpc0xpbmsgPT0gb3RoZXIuaXNMaW5rCiAgICAg
ICAgICYmIGhhc0NvbnRlbnROb25lID09IG90aGVyLmhhc0NvbnRlbnROb25lCisgICAgICAgICYm
IHNraXBzQ29udGVudHMgPT0gb3RoZXIuc2tpcHNDb250ZW50cwogICAgICAgICAmJiBzdHlsZVR5
cGUgPT0gb3RoZXIuc3R5bGVUeXBlCiAgICAgICAgICYmIHBzZXVkb0JpdHMgPT0gb3RoZXIucHNl
dWRvQml0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMWVi
OTY2NzY4MTlkLi5hOTRmYWZlMDMwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuY3BwCkBAIC01NDcsNiArNTQ3LDExIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAgICAg
aWYgKG1fZWxlbWVudCkKICAgICAgICAgc3R5bGUuc2V0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
KGNvbXB1dGVFdmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKm1fZWxlbWVudCwgbV9wYXJlbnRTdHls
ZS5ldmVudExpc3RlbmVyUmVnaW9uVHlwZXMoKSkpOwogCisgICAgaWYgKHN0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgIHN0eWxlLnNl
dFNraXBzQ29udGVudHMobV9lbGVtZW50ICYmIG1fZWxlbWVudC0+c2hvdWxkU2tpcENvbnRlbnQo
KSk7CisgICAgZWxzZQorICAgICAgICBzdHlsZS5zZXRTa2lwc0NvbnRlbnRzKHN0eWxlLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisKICNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGlmIChtX2VsZW1lbnQgJiYgbV9kb2N1bWVudC5zZXR0
aW5ncygpLnRleHRBdXRvc2l6aW5nVXNlc0lkZW1wb3RlbnRNb2RlKCkpCiAgICAgICAgIGFkanVz
dEZvclRleHRBdXRvc2l6aW5nKHN0eWxlLCAqbV9lbGVtZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456817</attachid>
            <date>2022-04-06 07:11:19 -0700</date>
            <delta_ts>2022-05-19 01:27:34 -0700</delta_ts>
            <desc>Handle selection</desc>
            <filename>bug236711h.diff</filename>
            <type>text/plain</type>
            <size>20516</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNDUyNDVhYzg3OTkuLjAzMTEyODg3NzEyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU5IEBACisyMDIyLTA0LTA2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW2NvbnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50
LXZpc2liaWxpdHk6IGF1dG8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjcxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250ZW50LXZpc2li
aWxpdHk6IGF1dG8gWzFdLgorCisgICAgICAgIFRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBhbiBl
bGVtZW50IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyIFsyXSBhbmQKKyAgICAgICAgZGVjaWRlIHRv
IHdoZXRoZXIgaXQgc2hvdWxkIHNraXAgY29udGVudHMgWzNdIHRoZSBmb2xsb3dpbmcgaXMgZG9u
ZToKKyAgICAgICAgLSBhbiBJbnRlcnNlY3Rpb25PYnNlcnZlciBpcyBpbnN0YWxsZWQgYXMgc29v
biBhcyBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8KKyAgICAgICAgICBpcyBzZXQgb24gYW4gRWxl
bWVudC4gVGhpcyBrZWVwcyB0cmFjayB3aGV0aGVyIHRoZSBFbGVtZW50IGlzIGluIHRoZQorICAg
ICAgICAgIHZpZXdwb3J0IG9yIG5vdCBhbmQgdGh1cyBpZiBpdCBpcyByZWxldmFuIHRvIHRoZSB1
c2VyLgorICAgICAgICAtIHN0YXRlIGlzIGtlcHQgd2hldGhlciB0aGUgY29udGVudC12aXNpYmls
aXR5OiBhdXRvIHN1YnRyZWUgY29udGFpbnMKKyAgICAgICAgICBhbnkgZm9jdXNlZCBvciBzZWxl
Y3RlZCBlbGVtZW50cywgc2luY2UgdGhhdCBtZWFucyBpdCBpcyByZWxhdmFudCB0byB0aGUgdXNl
ci4KKworICAgICAgICBUaGUgbWV0aG9kcyBmb2N1cygpIFs0LjMuNl0gYW5kIHNjcm9sbEludG9W
aWV3KCkgWzQuMy41XSB0cmVhdCBhbnkgcHJldmlvdXNseQorICAgICAgICBza2lwcGVkIGNvbnRl
bnQgYXMgYmVjb21pbmcgcmVsZXZhbnQgdG8gdGhlIHVzZXIgYmVmb3JlIGRvaW5nIGFueSBzY3Jv
bGxpbmcuCisKKyAgICAgICAgVGhlIHBhdGNoIGFsc28gaW50cm9kdWNlcyBhIGZsYWcgb24gUmVu
ZGVyU3R5bGUgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyCisgICAgICAgIHRoZSBSZW5kZXJPYmpl
Y3Qgc2tpcHMgaXQgY29udGVudHMgd2hpY2ggaXMga2VwdCBpbiBzeW5jIHdpdGggQ29udGVudFZp
c2liaWxpdHlEYXRhLgorICAgICAgICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgdG8g
ZGVjaWRlIHdoZXRoZXIgc2l6ZSBjb250YWlubWVudCBzaG91bGQgYmUgYXBwbGllZC4KKworICAg
ICAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29u
dGVudC12aXNpYmlsaXR5LWF1dG8KKyAgICAgICAgWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtY29udGFpbi8jcmVsZXZhbnQtdG8tdGhlLXVzZXIKKyAgICAgICAgWzNdIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jc2tpcHMtaXRzLWNvbnRlbnRzCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZv
Y3VzZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGUpOiBrZWVwIHRyYWNrIG9mIHZpZXdwb3J0IGludGVyc2VjdGlvbnMK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZTo6YWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnJlbW92ZUNv
bnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2VsZWN0aW9uQ2hhbmdlZCk6CisgICAgICAgICogZG9t
L0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcpOiB0cnkgdG8gYWN0aXZhdGUgZWxlbWVudCBiZWZv
cmUgY2hlY2tpbmcgZm9yIHNraXBwZWQgY29udGVudHMKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmZvY3VzKTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNraW5nIGZvciBz
a2lwcGVkIGNvbnRlbnRzCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkZXRlcm1pbmVJZlN1
YnRyZWVIYXNGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50
VmlzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0
eVZpZXdwb3J0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNob3VsZFNraXBD
b250ZW50IGNvbnN0KTogdGFrZSAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIGludG8gYWNjb3Vu
dAorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
QXV0b0lmTmVlZGVkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29udGFpbnNTaXplIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpza2lwc0NvbnRlbnRzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRTa2lwc0NvbnRlbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpOb25Jbmhlcml0ZWRGbGFnczo6b3BlcmF0b3I9PSBjb25zdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6IHN5bmMgQ29udGVudFZpc2liaWxp
dHlEYXRhIHNraXBwZWQgc3RhdGUgdG8gUmVuZGVyU3R5bGUKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKKwogMjAyMi0wNC0wNiAgUm9iIEJ1aXMgIDxy
YnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBw
b3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IGI5YTNmZjE5OTdhMC4uMDg5ODQwZjRiMTlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTEzNCw2ICsxMzQsNyBAQAogI2luY2x1ZGUgIkltYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJ
bnRlcnNlY3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlzdGVuZXIuaCIK
QEAgLTM4OSw2ICszOTAsMzMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGlzYWxsb3dMYXlvdXQg
eyBmYWxzZSB9OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrIGZpbmFsIDogcHVibGljIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrKGRvY3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFz
Q2FsbGJhY2soKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBDYWxsYmFja1Jl
c3VsdDx2b2lkPiBoYW5kbGVFdmVudChJbnRlcnNlY3Rpb25PYnNlcnZlciYsIGNvbnN0IFZlY3Rv
cjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+JiBlbnRyaWVzLCBJbnRlcnNlY3Rpb25P
YnNlcnZlciYpIGZpbmFsCisgICAgeworICAgICAgICBBU1NFUlQoIWVudHJpZXMuaXNFbXB0eSgp
KTsKKworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykgeworICAgICAgICAgICAg
aWYgKGF1dG8qIGVsZW1lbnQgPSBlbnRyeS0+dGFyZ2V0KCkpCisgICAgICAgICAgICAgICAgZWxl
bWVudC0+Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShlbnRyeS0+aXNJbnRlcnNlY3Rp
bmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBDb250
ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgICAgICA6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soJmRvY3VtZW50KQor
ICAgIHsKKyAgICB9Cit9OworCiAvLyBEZWZpbmVkIGhlcmUgdG8gYXZvaWQgaW5jbHVkaW5nIEdD
UmVhY2hhYmxlUmVmLmggaW4gRG9jdW1lbnQuaAogc3RydWN0IERvY3VtZW50OjpQZW5kaW5nU2Ny
b2xsRXZlbnRUYXJnZXRMaXN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ2
NjgsNiArNDY5NiwxMSBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG9sZEZvY3Vz
ZWRFbGVtZW50LT5zZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgIHNldEZvY3VzTmF2aWdhdGlvblN0
YXJ0aW5nTm9kZShudWxscHRyKTsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNlZCA9IG9sZEZv
Y3VzZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50RWxlbWVudElu
Q29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0gZm9jdXNlZC0+
Y29udGVudFZpc2liaWxpdHlEYXRhKCkpCisgICAgICAgICAgICAgICAgZGF0YS0+c3VidHJlZUhh
c0ZvY3VzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmFs
RXZlbnRzTW9kZSA9PSBGb2N1c1JlbW92YWxFdmVudHNNb2RlOjpEaXNwYXRjaCkgewogICAgICAg
ICAgICAgLy8gRGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50
cyB0aGF0IGhhdmUgYmVlbiBlZGl0ZWQuCiAgICAgICAgICAgICBpZiAoaXM8SFRNTEZvcm1Db250
cm9sRWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkgewpAQCAtNDczNiw2ICs0NzY5LDEzIEBA
IGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgbV9mb2N1c2VkRWxlbWVudC0+c2V0Rm9j
dXModHJ1ZSwgb3B0aW9ucy52aXNpYmlsaXR5KTsKICAgICAgICAgbV9sYXRlc3RGb2N1c1RyaWdn
ZXIgPSBvcHRpb25zLnRyaWdnZXI7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBuZXdG
b2N1c2VkRWxlbWVudDsgZm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJ
bkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogZGF0YSA9IGZvY3VzZWQt
PmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAgICAgICAgICAgICAgZGF0YS0+c3VidHJl
ZUhhc0ZvY3VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBkYXRhLT5pc1NraXBwZWRDb250ZW50
ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICAvLyBUaGUgc2V0
Rm9jdXMgY2FsbCB0cmlnZ2VycyBhIGJsdXIgYW5kIGEgZm9jdXMgZXZlbnQuIEV2ZW50IGhhbmRs
ZXJzIGNvdWxkIGNhdXNlIHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8gYmUgY2xlYXJlZC4KICAgICAg
ICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVsZW1lbnQpIHsKICAgICAgICAg
ICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpAQCAtOTE1MSw2ICs5MTkxLDY0IEBAIGJvb2wg
RG9jdW1lbnQ6OmlzU2FtZVNpdGVGb3JDb29raWVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAg
IHJldHVybiBkb21haW4ubWF0Y2hlcyh1cmwpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQorewor
ICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1fY29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2Rv
Y3VtZW50KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRT
dGF0ZTo6YWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50KQor
eworICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlv
bk9ic2VydmVyKCkpCisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1l
bnQpOworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6cmVtb3ZlQ29u
dGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChh
dXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkp
CisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT51bm9ic2VydmUoZWxlbWVudCk7Cit9CisK
K0ludGVyc2VjdGlvbk9ic2VydmVyKiBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVu
c3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkKK3sKKyAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsKKyAg
ICAgICAgYXV0byBjYWxsYmFjayA9IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2
ZXJDYWxsYmFjazo6Y3JlYXRlKCptX2RvY3VtZW50KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IFN0cmluZz4gY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2so
TUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIjEwMCUiKSk7CisgICAgICAgIEludGVyc2VjdGlvbk9i
c2VydmVyOjpJbml0IG9wdGlvbnMgeyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5Um9v
dE1hcmdpbkZhbGxiYWNrLCB7IH0gfTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9IEludGVyc2Vj
dGlvbk9ic2VydmVyOjpjcmVhdGUoKm1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlci5y
ZXR1cm5WYWx1ZSgpLnB0cigpOworICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsK
K30KKwordm9pZCBEb2N1bWVudDo6c2VsZWN0aW9uQ2hhbmdlZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBvbGRTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbikK
K3sKKyAgICBhdXRvIHByb2Nlc3NTZWxlY3Rpb25DaGFuZ2UgPSBbXShjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc2VsZWN0ZWQpIHsKKyAgICAgICAgaWYgKGF1dG8gcmFu
Z2UgPSBzZWxlY3Rpb24ucmFuZ2UoKSkgeworICAgICAgICAgICAgZm9yIChSZWYgbm9kZSA6IGlu
dGVyc2VjdGluZ05vZGVzKCpyYW5nZSkpIHsKKyAgICAgICAgICAgICAgICBFbGVtZW50KiBhbmNl
c3RvciA9IG5vZGUtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpOworICAgICAgICAgICAg
ICAgIHdoaWxlIChhbmNlc3RvcikgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogZGF0
YSA9IGFuY2VzdG9yLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YS0+c3VidHJlZUhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVl
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsK
KyAgICBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlKG9sZFNlbGVjdGlvbiwgZmFsc2UpOworICAgIHBy
b2Nlc3NTZWxlY3Rpb25DaGFuZ2UobmV3U2VsZWN0aW9uLCB0cnVlKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggNGMyMzY0MTdlZjVlLi4zNmVhODg1OGQyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0yMzIsNiArMjMyLDcgQEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3MgVHJl
ZVdhbGtlcjsKIGNsYXNzIFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNsaWVu
dDsKK2NsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwogY2xh
c3MgV2ViQW5pbWF0aW9uOwogY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKQEAgLTMzOSw2
ICszNDAsMjEgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50Owog
fTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGUoRG9jdW1lbnQmKTsKKworICAgIHZvaWQgYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZh
dGlvbihFbGVtZW50Jik7CisgICAgdm9pZCByZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0
aW9uKEVsZW1lbnQmKTsKKworcHJpdmF0ZToKKyAgICBJbnRlcnNlY3Rpb25PYnNlcnZlciogZW5z
dXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTsKKworICAgIFJlZlB0cjxJbnRlcnNlY3Rpb25PYnNl
cnZlcj4gbV9vYnNlcnZlcjsKKyAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworfTsK
KwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJs
aWMgVHJlZVNjb3BlCkBAIC0xNjQ2LDYgKzE2NjIsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9h
ZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsK
KwogICAgIHZvaWQgc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFz
VmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1
YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlO
b25FbXB0eUN1c3RvbUNvbnRlbnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5
SWZOZWVkZWQoKTsKQEAgLTE2ODIsNiArMTcwMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEVs
ZW1lbnRXaXRoUGVuZGluZ1VzZXJBZ2VudFNoYWRvd1RyZWVVcGRhdGUoRWxlbWVudCYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hh
ZG93VHJlZVVwZGF0ZShFbGVtZW50Jik7CiAKKyAgICB2b2lkIHNlbGVjdGlvbkNoYW5nZWQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24pOworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFn
cyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9Owog
ICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25z
dCBVUkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdz
ID0gMCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSB7IH0pOwpAQCAtMTg5Miw2
ICsxOTEyLDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdl
T2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRy
PENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3BlbmRpbmdT
dGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3Vt
ZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGM3YTI2OWRlYzJkNS4u
YTcyNWMxODA1OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDAwLDYgKzEwMDAsOCBA
QCBpbmxpbmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9yQmxvY2tEaXJlY3Rp
b24oc3RkOjpvcHRpb25hbDxTY3JvbGxMbwogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3
KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+
JiYgYXJnKQogeworICAgIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgp
OworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKIAogICAgIGlmICghcmVuZGVyZXIoKSkKQEAgLTMwNjksNiArMzA3MSwxMCBAQCB2b2lkIEVs
ZW1lbnQ6OmZvY3VzKGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICBpZiAoIWlzQ29u
bmVjdGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGludmFsaWRhdGVDb250ZW50VmlzaWJp
bGl0eUF1dG9JZk5lZWRlZCgpOworCisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKKwogICAgIGlmIChpc1NraXBwZWRDb250ZW50KCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNDgwNCw2ICs0ODEwLDE1IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRl
Q29udGVudFZpc2liaWxpdHlEYXRhKGJvb2wgc2hvdWxkU2tpcCwgQ29udGVudFZpc2liaWxpdHkg
Y29uCiAgICAgICAgIGNoaWxkLnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShzaG91bGRTa2lw
LCBjb250ZW50VmlzaWJpbGl0eSk7CiB9CiAKK2Jvb2wgRWxlbWVudDo6ZGV0ZXJtaW5lSWZTdWJ0
cmVlSGFzRm9jdXMoKQoreworICAgIGZvciAoYXV0byogZm9jdXNlZCA9IGRvY3VtZW50KCkuZm9j
dXNlZEVsZW1lbnQoKTsgZm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJ
bkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgIGlmIChmb2N1c2VkID09IHRoaXMpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEVs
ZW1lbnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRl
bnRWaXNpYmlsaXR5KQogewogICAgIGlmICghaGFzUmFyZURhdGEoKSAmJiBuZXdDb250ZW50Vmlz
aWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZSkKQEAgLTQ4MTEsOCArNDgyNiwx
NCBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5KENvbnRlbnRWaXNpYmls
aXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAgIGF1dG8mIGRhdGEgPSBlbnN1cmVDb250ZW50
VmlzaWJpbGl0eURhdGEoKTsKICAgICBpZiAoZGF0YS5jb250ZW50VmlzaWJpbGl0eSA9PSBuZXdD
b250ZW50VmlzaWJpbGl0eSkKICAgICAgICAgcmV0dXJuOworICAgIGlmIChkYXRhLmNvbnRlbnRW
aXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICBkb2N1bWVudCgp
LmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5
T2JzZXJ2YXRpb24oKnRoaXMpOwogICAgIGRhdGEuY29udGVudFZpc2liaWxpdHkgPSBuZXdDb250
ZW50VmlzaWJpbGl0eTsKLSAgICAvLyBGSVhNRTogaGFuZGxlIGMtdjogYXV0by4KKyAgICBpZiAo
bmV3Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAg
ICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5hZGRDb250ZW50
VmlzaWJpbGl0eU9ic2VydmF0aW9uKCp0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVJ
bnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKTsKKyAgICAgICAgZGF0YS5zdWJ0cmVlSGFzRm9jdXMg
PSBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworICAgIH0KICAgICB1cGRhdGVEZXNjZW5k
YW50VG9wTGF5ZXJFbGVtZW50cyhuZXdDb250ZW50VmlzaWJpbGl0eSk7CiAgICAgdXBkYXRlQ29u
dGVudFZpc2liaWxpdHlEYXRhKGZhbHNlLCBuZXdDb250ZW50VmlzaWJpbGl0eSk7CiB9CkBAIC00
ODM2LDYgKzQ4NTcsMTUgQEAgdm9pZCBFbGVtZW50Ojp1cGRhdGVEZXNjZW5kYW50VG9wTGF5ZXJF
bGVtZW50cyhDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50VmlzaWIKICAgICB9CiB9CiAKK3Zv
aWQgRWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sIGlzSW50ZXJz
ZWN0aW5nKQoreworICAgIGF1dG8mIGRhdGEgPSBlbnN1cmVDb250ZW50VmlzaWJpbGl0eURhdGEo
KTsKKyAgICBkYXRhLmlzSW50ZXJzZWN0aW5nVmlld3BvcnQgPSBpc0ludGVyc2VjdGluZzsKKyAg
ICB1cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoZmFsc2UsIENvbnRlbnRWaXNpYmlsaXR5OjpB
dXRvKTsKKyAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNM
YXlvdXQoKTsKK30KKwogYm9vbCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKQpAQCAtNDg0NSwx
MSArNDg3NSwyOSBAQCBib29sIEVsZW1lbnQ6OmlzU2tpcHBlZENvbnRlbnQoKSBjb25zdAogCiBi
b29sIEVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byog
ZGF0YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKQorICAgIGlmIChhdXRvKiBkYXRhID0gY29u
dGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAgICAgICAgaWYgKGRhdGEtPmNvbnRlbnRWaXNpYmls
aXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgcmV0dXJuICFkYXRh
LT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ICYmICFkYXRhLT5zdWJ0cmVlSGFzRm9jdXMgJiYgIWRh
dGEtPnN1YnRyZWVIYXNTZWxlY3Rpb247CiAgICAgICAgIHJldHVybiBjb250ZW50VmlzaWJpbGl0
eURhdGEoKS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsK
KyAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEVsZW1lbnQ6OmludmFsaWRhdGVD
b250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpCit7CisgICAgZm9yIChhdXRvIHRhcmdldCA9
IHRoaXM7IHRhcmdldDsgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRy
ZWUoKSkgeworICAgICAgICBpZiAoYXV0byogZGF0YSA9IHRhcmdldC0+Y29udGVudFZpc2liaWxp
dHlEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAgICAgICAgIGRhdGEtPmlzSW50ZXJz
ZWN0aW5nVmlld3BvcnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRhcmdldC0+aW52YWxpZGF0
ZVN0eWxlKCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldC0+cmVuZGVyZXIoKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQor
CiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKIAogU3R5bGVQcm9wZXJ0eU1hcCogRWxlbWVudDo6
YXR0cmlidXRlU3R5bGVNYXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggZDgzNDRlMmQyMDZlLi5j
NWRkNzYyNjZmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtOTYsNiArOTYsOSBAQCBzdHJ1Y3Qg
U2hhZG93Um9vdEluaXQ7CiBzdHJ1Y3QgQ29udGVudFZpc2liaWxpdHlEYXRhIHsKICAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgYm9vbCBpc1NraXBwZWRDb250ZW50IHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzSW50ZXJzZWN0aW5nVmlld3BvcnQgeyBmYWxzZSB9OworICAg
IGJvb2wgc3VidHJlZUhhc0ZvY3VzIHsgZmFsc2UgfTsKKyAgICBib29sIHN1YnRyZWVIYXNTZWxl
Y3Rpb24geyBmYWxzZSB9OwogICAgIENvbnRlbnRWaXNpYmlsaXR5IGNvbnRlbnRWaXNpYmlsaXR5
OwogfTsKIApAQCAtNjgwLDYgKzY4Myw3IEBAIHB1YmxpYzoKICAgICBDb250ZW50VmlzaWJpbGl0
eURhdGEmIGVuc3VyZUNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpOwogICAgIENvbnRlbnRWaXNpYmls
aXR5RGF0YSogY29udGVudFZpc2liaWxpdHlEYXRhKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVD
b250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50VmlzaWJpbGl0eSk7
CisgICAgdm9pZCBjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wpOwogICAgIGJv
b2wgaXNTa2lwcGVkQ29udGVudCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQo
KSBjb25zdDsKIApAQCAtNzEwLDYgKzcxNCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHVw
ZGF0ZURlc2NlbmRhbnRUb3BMYXllckVsZW1lbnRzKENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRl
bnRWaXNpYmlsaXR5KTsKIAorICAgIGJvb2wgZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMoKTsK
KworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CisK
IHByaXZhdGU6CiAgICAgRnJhbWUqIGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBjZWQz
MjM1ZWZiODkuLmQzMjgxZDEzMmNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKQEAgLTQzMCw2ICs0MzAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8Uwog
ewogICAgIExPR19XSVRIX1NUUkVBTShTZWxlY3Rpb24sIHN0cmVhbSA8PCAiRnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbiAiIDw8IHNlbGVjdGlvbik7CiAKKyAgICBWaXNpYmxlU2VsZWN0aW9u
IG9sZFNlbGVjdGlvbiA9IG1fc2VsZWN0aW9uOwogICAgIFJlZlB0ciBwcm90ZWN0ZWREb2N1bWVu
dCB7IG1fZG9jdW1lbnQuZ2V0KCkgfTsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC00NDcsNiArNDQ4LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0
PFMKICAgICBtX3NlbGVjdGlvblJldmVhbEludGVudCA9IGludGVudDsKICAgICBtX3BlbmRpbmdT
ZWxlY3Rpb25VcGRhdGUgPSB0cnVlOwogCisgICAgcHJvdGVjdGVkRG9jdW1lbnQtPnNlbGVjdGlv
bkNoYW5nZWQob2xkU2VsZWN0aW9uLCBtX3NlbGVjdGlvbik7CisKICAgICBpZiAocHJvdGVjdGVk
RG9jdW1lbnQtPmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMmExODli
Y2JmMWNmLi5kYjI4MWJlYTk5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC01NDAsNyArNTQwLDcgQEAgcHVibGljOgogICAgIGJvb2wgY29u
dGVudFZpc2liaWxpdHlIaWRkZW4oKSBjb25zdCB7IHJldHVybiBjb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47IH0KICAgICBPcHRpb25TZXQ8Q29udGFpbm1l
bnQ+IGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkgY29uc3Q7CiAgICAgYm9vbCBjb250YWluc0xheW91
dCgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFp
bm1lbnQ6OkxheW91dCkgfHwgY29udGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0
eTo6VmlzaWJsZTsgfQotICAgIGJvb2wgY29udGFpbnNTaXplKCkgY29uc3QgeyByZXR1cm4gZWZm
ZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U2l6ZSkgfHwgY29udGVu
dFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOyB9CisgICAgYm9vbCBj
b250YWluc1NpemUoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRh
aW5zKENvbnRhaW5tZW50OjpTaXplKSB8fCBza2lwc0NvbnRlbnRzKCk7IH0KICAgICBib29sIGNv
bnRhaW5zU3R5bGUoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRh
aW5zKENvbnRhaW5tZW50OjpTdHlsZSkgfHwgY29udGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50
VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQogICAgIGJvb2wgY29udGFpbnNQYWludCgpIGNvbnN0IHsg
cmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlBhaW50
KSB8fCBjb250ZW50VmlzaWJpbGl0eSgpICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlOyB9
CiAgICAgQ29udGFpbmVyVHlwZSBjb250YWluZXJUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q29udGFpbmVyVHlwZT4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+Y29udGFpbmVyVHlw
ZSk7IH0KQEAgLTE1MTcsNiArMTUxNyw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0F0dHJDb250
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+aGFzQXR0ckNvbnRl
bnQ7IH0KICAgICB2b2lkIHNldEhhc0F0dHJDb250ZW50KCk7CiAKKyAgICBib29sIHNraXBzQ29u
dGVudHMoKSBjb25zdCB7IHJldHVybiBtX25vbkluaGVyaXRlZEZsYWdzLnNraXBzQ29udGVudHM7
IH0KKyAgICB2b2lkIHNldFNraXBzQ29udGVudHMoYm9vbCB2KSB7IG1fbm9uSW5oZXJpdGVkRmxh
Z3Muc2tpcHNDb250ZW50cyA9IHY7IH0KKwogICAgIGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAq
IGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7CiAgICAgQ291bnRlckRpcmVjdGl2ZU1hcCYgYWNj
ZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKIApAQCAtMTk4MCw2ICsxOTgzLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgdW5zaWduZWQgbGFzdENoaWxkU3RhdGUgOiAxOwogICAgICAgICB1bnNpZ25lZCBp
c0xpbmsgOiAxOwogICAgICAgICB1bnNpZ25lZCBoYXNDb250ZW50Tm9uZSA6IDE7CisgICAgICAg
IHVuc2lnbmVkIHNraXBzQ29udGVudHMgOiAxOwogCiAgICAgICAgIHVuc2lnbmVkIHN0eWxlVHlw
ZSA6IDQ7IC8vIFBzZXVkb0lkCiAgICAgICAgIHVuc2lnbmVkIHBzZXVkb0JpdHMgOiAoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFBzZXVkb0lkOjpGaXJzdEludGVybmFsUHNldWRvSWQpIC0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFBzZXVkb0lkOjpGaXJzdFB1YmxpY1BzZXVkb0lkKSk7CkBAIC0yMTIw
LDYgKzIxMjQsNyBAQCBpbmxpbmUgYm9vbCBSZW5kZXJTdHlsZTo6Tm9uSW5oZXJpdGVkRmxhZ3M6
Om9wZXJhdG9yPT0oY29uc3QgTm9uSW5oZXJpdGVkRmxhZ3MmCiAgICAgICAgICYmIGxhc3RDaGls
ZFN0YXRlID09IG90aGVyLmxhc3RDaGlsZFN0YXRlCiAgICAgICAgICYmIGlzTGluayA9PSBvdGhl
ci5pc0xpbmsKICAgICAgICAgJiYgaGFzQ29udGVudE5vbmUgPT0gb3RoZXIuaGFzQ29udGVudE5v
bmUKKyAgICAgICAgJiYgc2tpcHNDb250ZW50cyA9PSBvdGhlci5za2lwc0NvbnRlbnRzCiAgICAg
ICAgICYmIHN0eWxlVHlwZSA9PSBvdGhlci5zdHlsZVR5cGUKICAgICAgICAgJiYgcHNldWRvQml0
cyA9PSBvdGhlci5wc2V1ZG9CaXRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVy
LmNwcAppbmRleCBmMmMwNzZmN2I3NzIuLjc4Y2FiMjgzZTI4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU0MSw2ICs1NDEsMTEgQEAgdm9pZCBBZGp1c3Rlcjo6
YWRqdXN0KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFw
cGVhcmFuY2UKICAgICBpZiAobV9lbGVtZW50KQogICAgICAgICBzdHlsZS5zZXRFdmVudExpc3Rl
bmVyUmVnaW9uVHlwZXMoY29tcHV0ZUV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygqbV9lbGVtZW50
LCBtX3BhcmVudFN0eWxlLmV2ZW50TGlzdGVuZXJSZWdpb25UeXBlcygpKSk7CiAKKyAgICBpZiAo
c3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAg
ICAgICAgc3R5bGUuc2V0U2tpcHNDb250ZW50cyhtX2VsZW1lbnQgJiYgbV9lbGVtZW50LT5zaG91
bGRTa2lwQ29udGVudCgpKTsKKyAgICBlbHNlCisgICAgICAgIHN0eWxlLnNldFNraXBzQ29udGVu
dHMoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVu
KTsKKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgaWYgKG1fZWxlbWVudCAmJiBt
X2RvY3VtZW50LnNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdVc2VzSWRlbXBvdGVudE1vZGUoKSkK
ICAgICAgICAgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoc3R5bGUsICptX2VsZW1lbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459488</attachid>
            <date>2022-05-17 01:12:16 -0700</date>
            <delta_ts>2022-05-19 01:46:32 -0700</delta_ts>
            <desc>c_v-auto-based-on-contain-intrinsic-size</desc>
            <filename>c_v_auto-002-with-changelog.diff</filename>
            <type>text/plain</type>
            <size>23879</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDY4LWV4cGVjdGVkLnR4dAppbmRleCA1OGUzNjVlYjMxYS4uYjYyMjRmOTA2NDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBv
ZmYtc2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxMAorUEFTUyBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzAtZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5MDZkNmMzLi5hYWRiNDVjNDFjOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLWhlbGxvCiAKLUZBSUwgQ29udGVudCBWaXNpYmls
aXR5OiBvZmYtc2NyZWVuIHNlbGVjdGlvbiBhc3NlcnRfZXF1YWxzOiBzdGVwMSBoZWlnaHQgZXhw
ZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKK1BBU1MgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVu
IHNlbGVjdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKaW5kZXggNDRhMjkzNjUwMzYuLjNjM2YwY2Ez
Mzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA3MS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDkgQEAKIGhlbGxvCi1oZWxsbwot
aGVsbG8KLWhlbGxvCi1oZWxsbwogCi1GQUlMIE9uZSBlbGVtZW50cyBzZWxlY3RlZDogIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBleHRlbmRlZCB0byBj
b3ZlciBtb3JlIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFJhbmdlIHNocnVuayB0byBjb3ZlciBmZXdlciBlbGVtZW50czogIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0
byBmcm9udDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5n
ZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBSYW5nZSBnb2VzIGJhY2sgYW5kIGZvcnRoOiAgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIE9uZSBlbGVtZW50cyBzZWxlY3RlZDoKK1BB
U1MgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVtZW50czoKK1BBU1MgUmFuZ2Ugc2hy
dW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOgorUEFTUyBSYW5nZSBmbGlwcGVkIGZyb20gYmFj
ayB0byBmcm9udDoKK1BBU1MgUmFuZ2UgZmxpcHBlZCBmcm9tIGZyb250IHRvIGJhY2s6CitQQVNT
IFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAppbmRleCAwMGYx
YzdmNDQ0MS4uZjk1MThiY2ZlMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBA
CiAKIFBBU1Mgb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgotRkFJTCB0d28uZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAz
MDQxCi1GQUlMIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczog
eSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmb3VyLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJ
TCBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3Rl
ZCAzMDA3IGJ1dCBnb3QgMzA0MQorUEFTUyB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQ
QVNTIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmb3VyLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOgorUEFTUyBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYjE0YTY0ZWRiNDIuLmVhMzE2YWE1N2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTkgQEAKKzIwMjItMDQtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbY29udGVudC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3IgY3NzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM2NzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHN1cHBvcnQgZm9yIGNvbnRlbnQtdmlzaWJpbGl0eTog
YXV0byBbMV0uCisKKyAgICAgICAgVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVsZW1lbnQg
aXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZAorICAgICAgICBkZWNpZGUgdG8gd2hldGhl
ciBpdCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgorICAg
ICAgICAtIGFuIEludGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNv
bnRlbnQtdmlzaWJpbGl0eTogYXV0bworICAgICAgICAgIGlzIHNldCBvbiBhbiBFbGVtZW50LiBU
aGlzIGtlZXBzIHRyYWNrIHdoZXRoZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCisgICAgICAgICAg
dmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCisg
ICAgICAgIC0gc3RhdGUgaXMga2VwdCB3aGV0aGVyIHRoZSBjb250ZW50LXZpc2liaWxpdHk6IGF1
dG8gc3VidHJlZSBjb250YWlucworICAgICAgICAgIGFueSBmb2N1c2VkIG9yIHNlbGVjdGVkIGVs
ZW1lbnRzLCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGF2YW50IHRvIHRoZSB1c2VyLgorCisg
ICAgICAgIFRoZSBtZXRob2RzIGZvY3VzKCkgWzQuMy42XSBhbmQgc2Nyb2xsSW50b1ZpZXcoKSBb
NC4zLjVdIHRyZWF0IGFueSBwcmV2aW91c2x5CisgICAgICAgIHNraXBwZWQgY29udGVudCBhcyBi
ZWNvbWluZyByZWxldmFudCB0byB0aGUgdXNlciBiZWZvcmUgZG9pbmcgYW55IHNjcm9sbGluZy4K
KworICAgICAgICBUaGUgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEgZmxhZyBvbiBSZW5kZXJTdHls
ZSB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKKyAgICAgICAgdGhlIFJlbmRlck9iamVjdCBza2lw
cyBpdCBjb250ZW50cyB3aGljaCBpcyBrZXB0IGluIHN5bmMgd2l0aCBDb250ZW50VmlzaWJpbGl0
eURhdGEuCisgICAgICAgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCB0byBkZWNpZGUg
d2hldGhlciBzaXplIGNvbnRhaW5tZW50IHNob3VsZCBiZSBhcHBsaWVkLgorCisgICAgICAgIFsx
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250ZW50LXZp
c2liaWxpdHktYXV0bworICAgICAgICBbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1j
b250YWluLyNyZWxldmFudC10by10aGUtdXNlcgorICAgICAgICBbM10gaHR0cHM6Ly9kcmFmdHMu
Y3Nzd2cub3JnL2Nzcy1jb250YWluLyNza2lwcy1pdHMtY29udGVudHMKKworICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZSk6IGtlZXAgdHJhY2sgb2Ygdmlld3BvcnQgaW50ZXJzZWN0aW9ucworICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjphZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6cmVtb3ZlQ29udGVudFZp
c2liaWxpdHlPYnNlcnZhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxJbnRvVmlldyk6IHRyeSB0byBhY3RpdmF0ZSBlbGVtZW50IGJlZm9yZSBjaGVj
a2luZyBmb3Igc2tpcHBlZCBjb250ZW50cworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9j
dXMpOiB0cnkgdG8gYWN0aXZhdGUgZWxlbWVudCBiZWZvcmUgY2hlY2tpbmcgZm9yIHNraXBwZWQg
Y29udGVudHMKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRldGVybWluZUlmU3VidHJlZUhh
c0ZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmls
aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3Bv
cnRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQg
Y29uc3QpOiB0YWtlICBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gaW50byBhY2NvdW50CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZO
ZWVkZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250YWluc1NpemUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNraXBzQ29udGVudHMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU3R5bGU6OnNldFNraXBzQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6Ok5vbkluaGVyaXRlZEZsYWdzOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKiBzdHlsZS9TdHlsZUFkanVzdGVyLmNwcDogc3luYyBDb250ZW50VmlzaWJpbGl0eURhdGEg
c2tpcHBlZCBzdGF0ZSB0byBSZW5kZXJTdHlsZQorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFk
anVzdGVyOjphZGp1c3QgY29uc3QpOgorCiAyMDIyLTA0LTI3ICBDYXRoaWUgQ2hlbiAgPGNhdGhp
ZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgY3NzIHByb3BlcnR5IGNvbnRh
aW4taW50cmluc2ljLXNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNmNjc5OTA5NWYw
Li5jMjM3NTM5Y2RhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzYsNiArMTM2LDcg
QEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIK
KyNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIK
ICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgiCkBAIC0zOTEsNiArMzkyLDMzIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2Rpc2FsbG93TGF5b3V0IHsgZmFsc2UgfTsKIH07CiAKK2NsYXNz
IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1
YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQo
SW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2Vy
dmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5hbAorICAgIHsK
KyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgZm9yIChhdXRv
JiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gZW50
cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5
Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rp
b25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQorfTsKKwogLy8g
RGVmaW5lZCBoZXJlIHRvIGF2b2lkIGluY2x1ZGluZyBHQ1JlYWNoYWJsZVJlZi5oIGluIERvY3Vt
ZW50LmgKIHN0cnVjdCBEb2N1bWVudDo6UGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC00NjczLDYgKzQ3MDEsMTEgQEAgYm9vbCBE
b2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgRm9jdXNP
cHRpb25zJiBvcHRpb25zKQogICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+c2V0Rm9jdXMoZmFs
c2UpOwogICAgICAgICBzZXRGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGUobnVsbHB0cik7CiAK
KyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBvbGRGb2N1c2VkRWxlbWVudDsgZm9jdXNlZDsg
Zm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAg
ICAgICAgICBpZiAoYXV0byogZGF0YSA9IGZvY3VzZWQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgp
KQorICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKG9wdGlvbnMucmVtb3ZhbEV2ZW50c01vZGUgPT0gRm9jdXNSZW1v
dmFsRXZlbnRzTW9kZTo6RGlzcGF0Y2gpIHsKICAgICAgICAgICAgIC8vIERpc3BhdGNoIGEgY2hh
bmdlIGV2ZW50IGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIGJlZW4gZWRpdGVk
LgogICAgICAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpvbGRGb2N1c2Vk
RWxlbWVudCkpIHsKQEAgLTQ3NDIsNiArNDc3NSwxMyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1
c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMp
CiAgICAgICAgIGlmIChvcHRpb25zLnRyaWdnZXIgIT0gRm9jdXNUcmlnZ2VyOjpCaW5kaW5ncykK
ICAgICAgICAgICAgIG1fbGF0ZXN0Rm9jdXNUcmlnZ2VyID0gb3B0aW9ucy50cmlnZ2VyOwogCisg
ICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gbmV3Rm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZv
Y3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8qIGRhdGEgPSBmb2N1c2VkLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkg
eworICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNGb2N1cyA9IHRydWU7CisgICAgICAg
ICAgICAgICAgZGF0YS0+aXNTa2lwcGVkQ29udGVudCA9IGZhbHNlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKICAgICAgICAgLy8gVGhlIHNldEZvY3VzIGNhbGwgdHJpZ2dlcnMgYSBibHVy
IGFuZCBhIGZvY3VzIGV2ZW50LiBFdmVudCBoYW5kbGVycyBjb3VsZCBjYXVzZSB0aGUgZm9jdXNl
ZCBlbGVtZW50IHRvIGJlIGNsZWFyZWQuCiAgICAgICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50ICE9
IG5ld0ZvY3VzZWRFbGVtZW50KSB7CiAgICAgICAgICAgICAvLyBoYW5kbGVyIHNoaWZ0ZWQgZm9j
dXMKQEAgLTkxNzAsNiArOTIxMCw3MSBAQCBib29sIERvY3VtZW50Ojppc1NhbWVTaXRlRm9yQ29v
a2llcyhjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICByZXR1cm4gZG9tYWluLm1hdGNoZXModXJs
KTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSA9IG1ha2VVbmlxdWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7Cisg
ICAgcmV0dXJuICptX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUo
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwor
dm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5
T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0
aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRl
cnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNl
cnZlci0+dW5vYnNlcnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigp
Cit7CisgICAgaWYgKCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250
ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1
bWVudCk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRl
bnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIx
MDAlIikpOworICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3Rk
OjpudWxsb3B0LCBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07Cisg
ICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2Rv
Y3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlm
IChvYnNlcnZlci5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9
CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNlbGVj
dGlvbkNoYW5nZWQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pCit7CisgICAgYXV0byBwcm9jZXNzU2VsZWN0
aW9uQ2hhbmdlID0gW10oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNl
bGVjdGVkKSB7CisgICAgICAgIGlmIChhdXRvIHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlKCkpIHsK
KyAgICAgICAgICAgIGZvciAoUmVmIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcygqcmFuZ2UpKSB7
CisgICAgICAgICAgICAgICAgRWxlbWVudCogYW5jZXN0b3IgPSBub2RlLT5wYXJlbnRFbGVtZW50
SW5Db21wb3NlZFRyZWUoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGRhdGEgPSBhbmNlc3Rvci0+Y29udGVudFZpc2li
aWxpdHlEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLT5jb250ZW50
VmlzaWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChkYXRhLT5zdWJ0cmVlSGFzU2VsZWN0aW9uICE9IHNlbGVjdGVkKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNTZWxlY3Rp
b24gPSBzZWxlY3RlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3It
PmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YW5jZXN0b3ItPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbmNlc3Rvci0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVl
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsK
KyAgICBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlKG9sZFNlbGVjdGlvbiwgZmFsc2UpOworICAgIHBy
b2Nlc3NTZWxlY3Rpb25DaGFuZ2UobmV3U2VsZWN0aW9uLCB0cnVlKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggNDQzZWFkOWUyZDEuLjkwZDliMTA5MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtMjMyLDYgKzIzMiw3IEBAIGNsYXNzIFRyYW5zZm9ybVNvdXJjZTsKIGNsYXNzIFRyZWVX
YWxrZXI7CiBjbGFzcyBVbmRvTWFuYWdlcjsKIGNsYXNzIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQ7
CitjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaXRlZExpbmtTdGF0ZTsKIGNsYXNz
IFdlYkFuaW1hdGlvbjsKIGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7CkBAIC0zMzksNiAr
MzQwLDIxIEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07
CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKERvY3VtZW50Jik7CisKKyAgICB2b2lkIGFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRp
b24oRWxlbWVudCYpOworICAgIHZvaWQgcmVtb3ZlQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlv
bihFbGVtZW50Jik7CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3Vy
ZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2
ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKK307CisK
IGNsYXNzIERvY3VtZW50CiAgICAgOiBwdWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGlj
IFRyZWVTY29wZQpAQCAtMTY0Nyw2ICsxNjYzLDggQEAgcHVibGljOgogCiAgICAgTGF6eUxvYWRJ
bWFnZU9ic2VydmVyJiBsYXp5TG9hZEltYWdlT2JzZXJ2ZXIoKTsKIAorICAgIENvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZSYgY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCk7CisK
ICAgICB2b2lkIHNldEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkgeyBtX2hhc1Zp
c3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50ID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzVmlzdWFs
bHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc3VhbGx5Tm9u
RW1wdHlDdXN0b21Db250ZW50OyB9CiAgICAgdm9pZCBlbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlm
TmVlZGVkKCk7CkBAIC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRFbGVt
ZW50V2l0aFBlbmRpbmdVc2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlKEVsZW1lbnQmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUVsZW1lbnRXaXRoUGVuZGluZ1VzZXJBZ2VudFNoYWRv
d1RyZWVVcGRhdGUoRWxlbWVudCYpOwogCisgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uKTsKKwogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Np
b25JRCgpIGNvbnN0IGZpbmFsOwogCiBwcm90ZWN0ZWQ6CkBAIC0xODk0LDYgKzE5MTQsOCBAQCBw
cml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1hZ2VPYnNlcnZlcj4gbV9s
YXp5TG9hZEltYWdlT2JzZXJ2ZXI7CiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlPiBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKKwog
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fcGVuZGluZ1N0YXRlT2JqZWN0Owog
I2lmICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIG1fZG9jdW1lbnRDcmVhdGlvblRp
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggOGVjMzAyNjA1MzkuLjMxZjEwNjNiZWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTQsNiArOTk0LDggQEAgaW5saW5lIFNjcm9sbEFs
aWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9uKHN0ZDo6b3B0aW9uYWw8
U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0
ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZykKIHsKKyAgICBp
bnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJl
bmRlcmVyKCkpCkBAIC0zMTIzLDYgKzMxMjUsMTAgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhjb25z
dCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgaWYgKCFpc0Nvbm5lY3RlZCgpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQo
KTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVudCgpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTQ4NDYsNiArNDg1MiwxNSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRWaXNpYmlsaXR5IGNvbgogICAgICAgICBjaGls
ZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoc2hvdWxkU2tpcCwgY29udGVudFZpc2liaWxp
dHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVybWluZUlmU3VidHJlZUhhc0ZvY3VzKCkKK3sK
KyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7IGZv
Y3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkg
eworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlzKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250
ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50VmlzaWJpbGl0eSkKIHsK
ICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVu
dFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00ODUzLDggKzQ4NjgsMTQgQEAgdm9pZCBFbGVtZW50
Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50Vmlz
aWJpbGl0eSkKICAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7
CiAgICAgaWYgKGRhdGEuY29udGVudFZpc2liaWxpdHkgPT0gbmV3Q29udGVudFZpc2liaWxpdHkp
CiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGF0YS5jb250ZW50VmlzaWJpbGl0eSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUoKS5yZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKCp0aGlz
KTsKICAgICBkYXRhLmNvbnRlbnRWaXNpYmlsaXR5ID0gbmV3Q29udGVudFZpc2liaWxpdHk7Ci0g
ICAgLy8gRklYTUU6IGhhbmRsZSBjLXY6IGF1dG8uCisgICAgaWYgKG5ld0NvbnRlbnRWaXNpYmls
aXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAgIGRvY3VtZW50KCkuY29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZh
dGlvbigqdGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlSW50ZXJzZWN0aW9uT2JzZXJ2
YXRpb25zKCk7CisgICAgICAgIGRhdGEuc3VidHJlZUhhc0ZvY3VzID0gZGV0ZXJtaW5lSWZTdWJ0
cmVlSGFzRm9jdXMoKTsKKyAgICB9CiAgICAgdXBkYXRlRGVzY2VuZGFudFRvcExheWVyRWxlbWVu
dHMobmV3Q29udGVudFZpc2liaWxpdHkpOwogICAgIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0
YShmYWxzZSwgbmV3Q29udGVudFZpc2liaWxpdHkpOwogfQpAQCAtNDg3OCw2ICs0ODk5LDE1IEBA
IHZvaWQgRWxlbWVudDo6dXBkYXRlRGVzY2VuZGFudFRvcExheWVyRWxlbWVudHMoQ29udGVudFZp
c2liaWxpdHkgbmV3Q29udGVudFZpc2liCiAgICAgfQogfQogCit2b2lkIEVsZW1lbnQ6OmNvbnRl
bnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBpc0ludGVyc2VjdGluZykKK3sKKyAgICBh
dXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CisgICAgZGF0YS5pc0lu
dGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rpbmc7CisgICAgdXBkYXRlQ29udGVudFZp
c2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJpbGl0eTo6QXV0byk7CisgICAgaWYgKHJl
bmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KCk7Cit9CisKIGJv
b2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGRh
dGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ4ODcsMTEgKzQ5MTcsMjkgQEAgYm9v
bCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIAogYm9vbCBFbGVtZW50OjpzaG91
bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50Vmlz
aWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0
YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50Vmlz
aWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAhZGF0YS0+aXNJbnRlcnNlY3RpbmdW
aWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzICYmICFkYXRhLT5zdWJ0cmVlSGFzU2Vs
ZWN0aW9uOwogICAgICAgICByZXR1cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRW
aXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlB
dXRvSWZOZWVkZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRh
cmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIGRhdGEgPSB0YXJnZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAg
ICAgICAgICBpZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8pIHsKKyAgICAgICAgICAgICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAg
ICAgICAgICAgIGlmICh0YXJnZXQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRh
cmdldC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1Nf
VFlQRURfT00pCiAKIFN0eWxlUHJvcGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFw
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlOWU3NTNmYWJmLi5hYzAyMmVkZGMwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCkBAIC0xMDAsNiArMTAwLDkgQEAgdXNpbmcgRXhwbGljaXRseVNldEF0dHJF
bGVtZW50c01hcCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWUK
IHN0cnVjdCBDb250ZW50VmlzaWJpbGl0eURhdGEgewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNU
X0FMTE9DQVRFRDsKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJv
b2wgaXNJbnRlcnNlY3RpbmdWaWV3cG9ydCB7IGZhbHNlIH07CisgICAgYm9vbCBzdWJ0cmVlSGFz
Rm9jdXMgeyBmYWxzZSB9OworICAgIGJvb2wgc3VidHJlZUhhc1NlbGVjdGlvbiB7IGZhbHNlIH07
CiAgICAgQ29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBAIC02ODYs
NiArNjg5LDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5zdXJlQ29u
dGVudFZpc2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBjb250ZW50
VmlzaWJpbGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGNvbnRl
bnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBwZWRDb250
ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OwogCkBAIC03
MTYsNiArNzIwLDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlRGVzY2VuZGFudFRv
cExheWVyRWxlbWVudHMoQ29udGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpOwog
CisgICAgYm9vbCBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpOworCisgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJpdmF0ZToKICAgICBG
cmFtZSogZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDFjZmIyNGNjNWNkLi4wOTVlMzYx
NDc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQz
MCw2ICs0MzAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogewogICAgIExPR19XSVRIX1NU
UkVBTShTZWxlY3Rpb24sIHN0cmVhbSA8PCAiRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbiAi
IDw8IHNlbGVjdGlvbik7CiAKKyAgICBWaXNpYmxlU2VsZWN0aW9uIG9sZFNlbGVjdGlvbiA9IG1f
c2VsZWN0aW9uOwogICAgIFJlZlB0ciBwcm90ZWN0ZWREb2N1bWVudCB7IG1fZG9jdW1lbnQuZ2V0
KCkgfTsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2Vs
ZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBA
IC00NDcsNiArNDQ4LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBtX3NlbGVjdGlv
blJldmVhbEludGVudCA9IGludGVudDsKICAgICBtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgPSB0
cnVlOwogCisgICAgcHJvdGVjdGVkRG9jdW1lbnQtPnNlbGVjdGlvbkNoYW5nZWQob2xkU2VsZWN0
aW9uLCBtX3NlbGVjdGlvbik7CisKICAgICBpZiAocHJvdGVjdGVkRG9jdW1lbnQtPmhhc1BlbmRp
bmdTdHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBiNjZiZGJiYTQyYi4uNTBjYjgwNzAwOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTIxNzQsNyAr
MjE3NCw5IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6YWRqdXN0RnJhZ21lbnRlZEZsb3dTdGF0ZU9u
Q29udGFpbmluZ0Jsb2NrQ2hhbmdlSWZOZWVkZWQoY29uCiAgICAgICAgIHx8IG9sZFN0eWxlLmhh
c1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICE9IG1fc3R5bGUuaGFzVHJhbnNmb3JtUmVsYXRl
ZFByb3BlcnR5KCkKICAgICAgICAgfHwgb2xkU3R5bGUud2lsbENoYW5nZSgpICE9IG5ld1N0eWxl
LndpbGxDaGFuZ2UoKQogICAgICAgICB8fCBvbGRTdHlsZS5jb250YWluc0xheW91dCgpICE9IG5l
d1N0eWxlLmNvbnRhaW5zTGF5b3V0KCkKLSAgICAgICAgfHwgb2xkU3R5bGUuY29udGFpbnNTaXpl
KCkgIT0gbmV3U3R5bGUuY29udGFpbnNTaXplKCk7CisgICAgICAgIHx8IG9sZFN0eWxlLmNvbnRh
aW5zU2l6ZSgpICE9IG5ld1N0eWxlLmNvbnRhaW5zU2l6ZSgpCisgICAgICAgIHx8IG9sZFN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gbmV3U3R5bGUuY29udGVudFZpc2liaWxpdHkoKQorICAg
ICAgICB8fCAoZWxlbWVudCgpICYmIGVsZW1lbnQoKS0+c2hvdWxkU2tpcENvbnRlbnQoKSk7CiAg
ICAgaWYgKCFtYXlOb3RCZUNvbnRhaW5pbmdCbG9ja0ZvckRlc2NlbmRhbnRzQW55bW9yZSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApp
bmRleCBlOGMzYTI3NGY1YS4uZmJiOTdiNjgwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuaApAQCAtNTI0LDYgKzUyNCw4IEBAIGlubGluZSBib29sIFJlbmRlckVs
ZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRDb250YWlubWVudCgpIGNvbnN0CiAKIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKKyAg
ICBpZiAoZWxlbWVudCgpICYmIGVsZW1lbnQoKS0+c2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlu
bWVudChzdHlsZSgpLmNvbnRhaW5zU2l6ZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBjYWEyN2NhNThmMS4uMjdjZDM2ZjE1Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01
MzksNyArNTM5LDcgQEAgcHVibGljOgogICAgIE9wdGlvblNldDxDb250YWlubWVudD4gY29udGFp
bigpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW47IH0KICAg
ICBPcHRpb25TZXQ8Q29udGFpbm1lbnQ+IGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZWZmZWN0aXZlQ29udGFpbm1lbnQoKTsgfQog
ICAgIGJvb2wgY29udGFpbnNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlu
bWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpMYXlvdXQpIHx8IGNvbnRlbnRWaXNpYmlsaXR5
KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0KLSAgICBib29sIGNvbnRhaW5zU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFp
bm1lbnQ6OlNpemUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkhpZGRlbjsgfQorICAgIGJvb2wgY29udGFpbnNTaXplKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0
aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U2l6ZSk7IH0KICAgICBib29s
IGNvbnRhaW5zSW5saW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50
KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OklubGluZVNpemUpOyB9CiAgICAgYm9vbCBjb250YWlu
c1N0eWxlKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhD
b250YWlubWVudDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2li
aWxpdHk6OlZpc2libGU7IH0KICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVy
biBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwg
Y29udGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459571</attachid>
            <date>2022-05-19 01:46:32 -0700</date>
            <delta_ts>2022-06-08 03:07:55 -0700</delta_ts>
            <desc>Remove ChangeLog</desc>
            <filename>bug236711i.diff</filename>
            <type>text/plain</type>
            <size>23006</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">Y29tbWl0IDg2ZjZkYjgyYmM3YmQzOTU4NzgyMjBlZWEwNzE4NDMzNzlhNTJlZTIKQXV0aG9yOiBS
b2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogICBUaHUgTWF5IDE5IDA5OjM3OjMyIDIw
MjIgKzAxMDAKCiAgICBbY29udGVudC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3IgY3NzIGNv
bnRlbnQtdmlzaWJpbGl0eTogYXV0bwogICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjcxMQogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAg
IAogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHN1cHBvcnQgZm9yIGNvbnRlbnQtdmlzaWJpbGl0
eTogYXV0byBbMV0uCiAgICAKICAgIFRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBhbiBlbGVtZW50
IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyIFsyXSBhbmQKICAgIGRlY2lkZSB0byB3aGV0aGVyIGl0
IHNob3VsZCBza2lwIGNvbnRlbnRzIFszXSB0aGUgZm9sbG93aW5nIGlzIGRvbmU6CiAgICAtIGFu
IEludGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlz
aWJpbGl0eTogYXV0bwogICAgICBpcyBzZXQgb24gYW4gRWxlbWVudC4gVGhpcyBrZWVwcyB0cmFj
ayB3aGV0aGVyIHRoZSBFbGVtZW50IGlzIGluIHRoZQogICAgICB2aWV3cG9ydCBvciBub3QgYW5k
IHRodXMgaWYgaXQgaXMgcmVsZXZhbiB0byB0aGUgdXNlci4KICAgIC0gc3RhdGUgaXMga2VwdCB3
aGV0aGVyIHRoZSBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gc3VidHJlZSBjb250YWlucwogICAg
ICBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZCBlbGVtZW50cywgc2luY2UgdGhhdCBtZWFucyBpdCBp
cyByZWxhdmFudCB0byB0aGUgdXNlci4KICAgIAogICAgVGhlIG1ldGhvZHMgZm9jdXMoKSBbNC4z
LjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55IHByZXZpb3VzbHkKICAg
IHNraXBwZWQgY29udGVudCBhcyBiZWNvbWluZyByZWxldmFudCB0byB0aGUgdXNlciBiZWZvcmUg
ZG9pbmcgYW55IHNjcm9sbGluZy4KICAgIAogICAgVGhlIHBhdGNoIGFsc28gaW50cm9kdWNlcyBh
IGZsYWcgb24gUmVuZGVyU3R5bGUgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyCiAgICB0aGUgUmVu
ZGVyT2JqZWN0IHNraXBzIGl0IGNvbnRlbnRzIHdoaWNoIGlzIGtlcHQgaW4gc3luYyB3aXRoIENv
bnRlbnRWaXNpYmlsaXR5RGF0YS4KICAgIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCB0
byBkZWNpZGUgd2hldGhlciBzaXplIGNvbnRhaW5tZW50IHNob3VsZCBiZSBhcHBsaWVkLgogICAg
CiAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29u
dGVudC12aXNpYmlsaXR5LWF1dG8KICAgIFsyXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LWNvbnRhaW4vI3JlbGV2YW50LXRvLXRoZS11c2VyCiAgICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy1jb250YWluLyNza2lwcy1pdHMtY29udGVudHMKICAgIAogICAgKiBkb20vRG9j
dW1lbnQuY3BwOgogICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudCk6CiAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6IGtl
ZXAgdHJhY2sgb2Ygdmlld3BvcnQgaW50ZXJzZWN0aW9ucwogICAgKFdlYkNvcmU6OkNvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToK
ICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRW
aXNpYmlsaXR5T2JzZXJ2YXRpb24pOgogICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZTo6cmVtb3ZlQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbik6CiAgICAoV2Vi
Q29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25P
YnNlcnZlcik6CiAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQpOgogICAg
KiBkb20vRG9jdW1lbnQuaDoKICAgICogZG9tL0VsZW1lbnQuY3BwOgogICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNo
ZWNraW5nIGZvciBza2lwcGVkIGNvbnRlbnRzCiAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMp
OiB0cnkgdG8gYWN0aXZhdGUgZWxlbWVudCBiZWZvcmUgY2hlY2tpbmcgZm9yIHNraXBwZWQgY29u
dGVudHMKICAgIChXZWJDb3JlOjpFbGVtZW50OjpkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cyk6
CiAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHkpOgogICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UpOgogICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogdGFrZSAgY29udGVudC12
aXNpYmlsaXR5OiBhdXRvIGludG8gYWNjb3VudAogICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmludmFs
aWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCk6CiAgICAqIGRvbS9FbGVtZW50Lmg6
CiAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgogICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgogICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29udGFpbnNTaXplIGNvbnN0KToKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1l
eHBlY3RlZC50eHQKaW5kZXggNThlMzY1ZWIzMWFjLi5iNjIyNGY5MDY0NGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYt
c2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0
IGdvdCAxMAorUEFTUyBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAt
ZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5MDZkNmMzZi4uYWFkYjQ1YzQxYzljIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZpc2liaWxp
dHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBl
Y3RlZCAxMDAgYnV0IGdvdCAxMAorUEFTUyBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4g
c2VsZWN0aW9uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAppbmRleCA0NGEyOTM2NTAzNjEuLjNjM2YwY2Ez
Mzk1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSw5IEBACiBoZWxsbwotaGVsbG8K
LWhlbGxvCi1oZWxsbwotaGVsbG8KIAotRkFJTCBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6ICBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZXh0ZW5kZWQgdG8g
Y292ZXIgbW9yZSBlbGVtZW50czogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBSYW5nZSBzaHJ1bmsgdG8gY292ZXIgZmV3ZXIgZWxlbWVudHM6ICBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sg
dG8gZnJvbnQ6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFu
Z2UgZmxpcHBlZCBmcm9tIGZyb250IHRvIGJhY2s6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZ29lcyBiYWNrIGFuZCBmb3J0aDogIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6CitQ
QVNTIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6CitQQVNTIFJhbmdlIHNo
cnVuayB0byBjb3ZlciBmZXdlciBlbGVtZW50czoKK1BBU1MgUmFuZ2UgZmxpcHBlZCBmcm9tIGJh
Y2sgdG8gZnJvbnQ6CitQQVNTIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOgorUEFT
UyBSYW5nZSBnb2VzIGJhY2sgYW5kIGZvcnRoOgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKaW5kZXggMDBm
MWM3ZjQ0NDE4Li5mOTUxOGJjZmUwNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3
IEBACiAKIFBBU1Mgb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgotRkFJTCB0d28uZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdv
dCAzMDQxCi1GQUlMIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFs
czogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmb3VyLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQot
RkFJTCBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBl
Y3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQorUEFTUyB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6
CitQQVNTIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmb3VyLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmNmUzY2FkNDUxM2UuLmYwZDcwOTU2ZjAzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAKICNpbmNsdWRlICJJbWFn
ZU92ZXJsYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0xhenlF
dmVudExpc3RlbmVyLmgiCkBAIC0zOTEsNiArMzkyLDMzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2Rpc2FsbG93TGF5b3V0IHsgZmFsc2UgfTsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmls
aXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
CisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2
ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmll
cywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFl
bnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpKQorICAg
ICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50
cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxi
YWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQorfTsKKwogLy8gRGVmaW5lZCBoZXJlIHRvIGF2
b2lkIGluY2x1ZGluZyBHQ1JlYWNoYWJsZVJlZi5oIGluIERvY3VtZW50LmgKIHN0cnVjdCBEb2N1
bWVudDo6UGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CkBAIC00NzAwLDYgKzQ3MjgsMTEgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQog
ICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+c2V0Rm9jdXMoZmFsc2UpOwogICAgICAgICBzZXRG
b2N1c05hdmlnYXRpb25TdGFydGluZ05vZGUobnVsbHB0cik7CiAKKyAgICAgICAgZm9yIChhdXRv
IGZvY3VzZWQgPSBvbGRGb2N1c2VkRWxlbWVudDsgZm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQt
PnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byog
ZGF0YSA9IGZvY3VzZWQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKQorICAgICAgICAgICAgICAg
IGRhdGEtPnN1YnRyZWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgaWYg
KG9wdGlvbnMucmVtb3ZhbEV2ZW50c01vZGUgPT0gRm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6RGlz
cGF0Y2gpIHsKICAgICAgICAgICAgIC8vIERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciBmb3Jt
IGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIGJlZW4gZWRpdGVkLgogICAgICAgICAgICAgaWYg
KGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpIHsKQEAgLTQ3
NjksNiArNDgwMiwxMyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIGlmIChvcHRp
b25zLnRyaWdnZXIgIT0gRm9jdXNUcmlnZ2VyOjpCaW5kaW5ncykKICAgICAgICAgICAgIG1fbGF0
ZXN0Rm9jdXNUcmlnZ2VyID0gb3B0aW9ucy50cmlnZ2VyOwogCisgICAgICAgIGZvciAoYXV0byBm
b2N1c2VkID0gbmV3Rm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5w
YXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGRh
dGEgPSBmb2N1c2VkLT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgICAg
IGRhdGEtPnN1YnRyZWVIYXNGb2N1cyA9IHRydWU7CisgICAgICAgICAgICAgICAgZGF0YS0+aXNT
a2lwcGVkQ29udGVudCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAg
ICAgLy8gVGhlIHNldEZvY3VzIGNhbGwgdHJpZ2dlcnMgYSBibHVyIGFuZCBhIGZvY3VzIGV2ZW50
LiBFdmVudCBoYW5kbGVycyBjb3VsZCBjYXVzZSB0aGUgZm9jdXNlZCBlbGVtZW50IHRvIGJlIGNs
ZWFyZWQuCiAgICAgICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50ICE9IG5ld0ZvY3VzZWRFbGVtZW50
KSB7CiAgICAgICAgICAgICAvLyBoYW5kbGVyIHNoaWZ0ZWQgZm9jdXMKQEAgLTkyMDMsNiArOTI0
Myw3MSBAQCBib29sIERvY3VtZW50Ojppc1NhbWVTaXRlRm9yQ29va2llcyhjb25zdCBVUkwmIHVy
bCkgY29uc3QKICAgICByZXR1cm4gZG9tYWluLm1hdGNoZXModXJsKTsKIH0KIAorQ29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKQor
ICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlxdWU8Q29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICptX2NvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVu
dCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1
cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+
b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rp
b25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNlcnZlKGVs
ZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYgKCFtX29i
c2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0eUludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1h
cmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAgICAgICBJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBjb250ZW50
VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8gb2JzZXJ2
ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZNb3ZlKGNh
bGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29ic2VydmVy
ID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fb2Jz
ZXJ2ZXIuZ2V0KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb24pCit7CisgICAgYXV0byBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlID0gW10oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNlbGVjdGVkKSB7CisgICAgICAg
IGlmIChhdXRvIHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlKCkpIHsKKyAgICAgICAgICAgIGZvciAo
UmVmIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcygqcmFuZ2UpKSB7CisgICAgICAgICAgICAgICAg
RWxlbWVudCogYW5jZXN0b3IgPSBub2RlLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKTsK
KyAgICAgICAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGF1dG8qIGRhdGEgPSBhbmNlc3Rvci0+Y29udGVudFZpc2liaWxpdHlEYXRhKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChk
YXRhLT5zdWJ0cmVlSGFzU2VsZWN0aW9uICE9IHNlbGVjdGVkKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEtPnN1YnRyZWVIYXNTZWxlY3Rpb24gPSBzZWxlY3RlZDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3ItPmludmFsaWRhdGVTdHlsZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPnJlbmRlcmVy
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvci0+cmVuZGVy
ZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3Ig
PSBhbmNlc3Rvci0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKyAgICBwcm9jZXNzU2VsZWN0
aW9uQ2hhbmdlKG9sZFNlbGVjdGlvbiwgZmFsc2UpOworICAgIHByb2Nlc3NTZWxlY3Rpb25DaGFu
Z2UobmV3U2VsZWN0aW9uLCB0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
dW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNWM2NGM1
ZGRiZTRlLi41NDcxYzJmNmJhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzMsNiArMjMz
LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3MgVHJlZVdhbGtlcjsKIGNsYXNzIFVu
ZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNsaWVudDsKK2NsYXNzIFZpc2libGVT
ZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwogY2xhc3MgV2ViQW5pbWF0aW9uOwog
Y2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKQEAgLTM0MCw2ICszNDEsMjEgQEAgcHJpdmF0
ZToKICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmKTsK
KworICAgIHZvaWQgYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50Jik7Cisg
ICAgdm9pZCByZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKwor
cHJpdmF0ZToKKyAgICBJbnRlcnNlY3Rpb25PYnNlcnZlciogZW5zdXJlSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIoKTsKKworICAgIFJlZlB0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsK
KyAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQK
ICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBAIC0x
NjUwLDYgKzE2NjYsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXImIGxh
enlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0SGFz
VmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0eUN1
c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9t
Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRl
bnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAgLTE2
ODYsNiArMTcwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEVsZW1lbnRXaXRoUGVuZGluZ1Vz
ZXJBZ2VudFNoYWRvd1RyZWVVcGRhdGUoRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJlZVVwZGF0ZShFbGVt
ZW50Jik7CiAKKyAgICB2b2lkIHNlbGVjdGlvbkNoYW5nZWQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgb2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pOwor
CiAgICAgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gc2Vzc2lvbklEKCkgY29uc3QgZmlu
YWw7CiAKIHByb3RlY3RlZDoKQEAgLTE4OTksNiArMTkxOSw4IEBAIHByaXZhdGU6CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNl
cnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworCiAgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbV9wZW5kaW5nU3RhdGVPYmplY3Q7CiAjaWYgIUxPR19ESVNBQkxF
RAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1bWVudENyZWF0aW9uVGltZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBmYmEyNzQ2NmRkN2MuLjEwMTE2ZmViMDQyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtOTk0LDYgKzk5NCw4IEBAIGlubGluZSBTY3JvbGxBbGlnbm1lbnQgdG9TY3Jv
bGxBbGlnbm1lbnRGb3JCbG9ja0RpcmVjdGlvbihzdGQ6Om9wdGlvbmFsPFNjcm9sbExvCiAKIHZv
aWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8Ym9v
bCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcmcpCiB7CisgICAgaW52YWxpZGF0ZUNvbnRl
bnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKCFyZW5kZXJlcigpKQpAQCAt
MzE5Nyw2ICszMTk5LDEwIEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoY29uc3QgRm9jdXNPcHRpb25z
JiBvcHRpb25zKQogICAgIGlmICghaXNDb25uZWN0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CisKKyAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCiAgICAgaWYg
KGlzU2tpcHBlZENvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00OTIxLDYgKzQ5Mjcs
MTUgQEAgdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoYm9vbCBzaG91
bGRTa2lwLCBDb250ZW50VmlzaWJpbGl0eSBjb24KICAgICAgICAgY2hpbGQudXBkYXRlQ29udGVu
dFZpc2liaWxpdHlEYXRhKHNob3VsZFNraXAsIGNvbnRlbnRWaXNpYmlsaXR5KTsKIH0KIAorYm9v
bCBFbGVtZW50OjpkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygpCit7CisgICAgZm9yIChhdXRv
KiBmb2N1c2VkID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOyBmb2N1c2VkOyBmb2N1c2Vk
ID0gZm9jdXNlZC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYg
KGZvY3VzZWQgPT0gdGhpcykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFZpc2liaWxpdHko
Q29udGVudFZpc2liaWxpdHkgbmV3Q29udGVudFZpc2liaWxpdHkpCiB7CiAgICAgaWYgKCFoYXNS
YXJlRGF0YSgpICYmIG5ld0NvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpW
aXNpYmxlKQpAQCAtNDkyOCwxMSArNDk0MywyNiBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRl
bnRWaXNpYmlsaXR5KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KQogICAg
IGF1dG8mIGRhdGEgPSBlbnN1cmVDb250ZW50VmlzaWJpbGl0eURhdGEoKTsKICAgICBpZiAoZGF0
YS5jb250ZW50VmlzaWJpbGl0eSA9PSBuZXdDb250ZW50VmlzaWJpbGl0eSkKICAgICAgICAgcmV0
dXJuOworICAgIGlmIChkYXRhLmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5
OjpBdXRvKQorICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSgpLnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKnRoaXMpOwogICAgIGRhdGEu
Y29udGVudFZpc2liaWxpdHkgPSBuZXdDb250ZW50VmlzaWJpbGl0eTsKLSAgICAvLyBGSVhNRTog
aGFuZGxlIGMtdjogYXV0by4KKyAgICBpZiAobmV3Q29udGVudFZpc2liaWxpdHkgPT0gQ29udGVu
dFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUoKS5hZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKCp0aGlzKTsK
KyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvbnMoKTsKKyAg
ICAgICAgZGF0YS5zdWJ0cmVlSGFzRm9jdXMgPSBkZXRlcm1pbmVJZlN1YnRyZWVIYXNGb2N1cygp
OworICAgIH0KICAgICB1cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoZmFsc2UsIG5ld0NvbnRl
bnRWaXNpYmlsaXR5KTsKIH0KIAordm9pZCBFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdw
b3J0Q2hhbmdlKGJvb2wgaXNJbnRlcnNlY3RpbmcpCit7CisgICAgYXV0byYgZGF0YSA9IGVuc3Vy
ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpOworICAgIGRhdGEuaXNJbnRlcnNlY3RpbmdWaWV3cG9y
dCA9IGlzSW50ZXJzZWN0aW5nOworICAgIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5RGF0YShmYWxz
ZSwgQ29udGVudFZpc2liaWxpdHk6OkF1dG8pOworICAgIGlmIChyZW5kZXJlcigpKQorICAgICAg
ICByZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOworfQorCiBib29sIEVsZW1lbnQ6OmlzU2tp
cHBlZENvbnRlbnQoKSBjb25zdAogewogICAgIGlmIChhdXRvKiBkYXRhID0gY29udGVudFZpc2li
aWxpdHlEYXRhKCkpCkBAIC00OTQyLDExICs0OTcyLDI5IEBAIGJvb2wgRWxlbWVudDo6aXNTa2lw
cGVkQ29udGVudCgpIGNvbnN0CiAKIGJvb2wgRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQoKSBj
b25zdAogewotICAgIGlmIChhdXRvKiBkYXRhID0gY29udGVudFZpc2liaWxpdHlEYXRhKCkpCisg
ICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICBp
ZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisg
ICAgICAgICAgICByZXR1cm4gIWRhdGEtPmlzSW50ZXJzZWN0aW5nVmlld3BvcnQgJiYgIWRhdGEt
PnN1YnRyZWVIYXNGb2N1cyAmJiAhZGF0YS0+c3VidHJlZUhhc1NlbGVjdGlvbjsKICAgICAgICAg
cmV0dXJuIGNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpLT5jb250ZW50VmlzaWJpbGl0eSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6SGlkZGVuOworICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Zv
aWQgRWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCkKK3sK
KyAgICBmb3IgKGF1dG8gdGFyZ2V0ID0gdGhpczsgdGFyZ2V0OyB0YXJnZXQgPSB0YXJnZXQtPnBh
cmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkYXRhID0g
dGFyZ2V0LT5jb250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgaWYgKGRhdGEt
PmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAg
ICAgICAgICAgZGF0YS0+aXNJbnRlcnNlY3RpbmdWaWV3cG9ydCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgdGFyZ2V0LT5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFy
Z2V0LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgICAgICB0YXJnZXQtPnJlbmRlcmVyKCkt
PnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9Cit9CisKICNpZiBFTkFCTEUoQ1NTX1RZUEVEX09NKQogCiBTdHls
ZVByb3BlcnR5TWFwKiBFbGVtZW50OjphdHRyaWJ1dGVTdHlsZU1hcCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCA1M2U4NDJmNzdmZjAuLmFjMDk0M2ZmMTViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC05OCw2ICs5OCw5IEBAIHVzaW5nIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAgPSBIYXNo
TWFwPFF1YWxpZmllZE5hbWUsIFZlY3RvcjxXZWFrUHRyPEVsZW1lCiBzdHJ1Y3QgQ29udGVudFZp
c2liaWxpdHlEYXRhIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAg
Ym9vbCBpc1NraXBwZWRDb250ZW50IHsgZmFsc2UgfTsKKyAgICBib29sIGlzSW50ZXJzZWN0aW5n
Vmlld3BvcnQgeyBmYWxzZSB9OworICAgIGJvb2wgc3VidHJlZUhhc0ZvY3VzIHsgZmFsc2UgfTsK
KyAgICBib29sIHN1YnRyZWVIYXNTZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIENvbnRlbnRWaXNp
YmlsaXR5IGNvbnRlbnRWaXNpYmlsaXR5OwogfTsKIApAQCAtNjg2LDYgKzY4OSw3IEBAIHB1Ymxp
YzoKICAgICBDb250ZW50VmlzaWJpbGl0eURhdGEmIGVuc3VyZUNvbnRlbnRWaXNpYmlsaXR5RGF0
YSgpOwogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSogY29udGVudFZpc2liaWxpdHlEYXRhKCkg
Y29uc3Q7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0
eSBuZXdDb250ZW50VmlzaWJpbGl0eSk7CisgICAgdm9pZCBjb250ZW50VmlzaWJpbGl0eVZpZXdw
b3J0Q2hhbmdlKGJvb2wpOwogICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudCgpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKIApAQCAtNzE1LDYgKzcxOSwxMCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoYm9vbCBzaG91
bGRTa2lwLCBDb250ZW50VmlzaWJpbGl0eSk7CiAKIAorICAgIGJvb2wgZGV0ZXJtaW5lSWZTdWJ0
cmVlSGFzRm9jdXMoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0
b0lmTmVlZGVkKCk7CisKIHByaXZhdGU6CiAgICAgRnJhbWUqIGRvY3VtZW50RnJhbWVXaXRoTm9u
TnVsbFZpZXcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcAppbmRleCAxY2ZiMjRjYzVjZDguLjA5NWUzNjE0NzZlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQzMCw2ICs0MzAsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBPcHRpb25TZXQ8UwogewogICAgIExPR19XSVRIX1NUUkVBTShTZWxlY3Rpb24sIHN0cmVhbSA8
PCAiRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbiAiIDw8IHNlbGVjdGlvbik7CiAKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIG9sZFNlbGVjdGlvbiA9IG1fc2VsZWN0aW9uOwogICAgIFJlZlB0ciBw
cm90ZWN0ZWREb2N1bWVudCB7IG1fZG9jdW1lbnQuZ2V0KCkgfTsKICAgICBpZiAoIXNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwg
Z3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC00NDcsNiArNDQ4LDggQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgT3B0aW9uU2V0PFMKICAgICBtX3NlbGVjdGlvblJldmVhbEludGVudCA9IGludGVudDsK
ICAgICBtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgPSB0cnVlOwogCisgICAgcHJvdGVjdGVkRG9j
dW1lbnQtPnNlbGVjdGlvbkNoYW5nZWQob2xkU2VsZWN0aW9uLCBtX3NlbGVjdGlvbik7CisKICAg
ICBpZiAocHJvdGVjdGVkRG9jdW1lbnQtPmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQogICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApp
bmRleCBhNjUwOGVhMjEzMDEuLjY5MWQwZjc3ODUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjE4OSw3ICsyMTg5LDkgQEAgdm9pZCBSZW5kZXJF
bGVtZW50OjphZGp1c3RGcmFnbWVudGVkRmxvd1N0YXRlT25Db250YWluaW5nQmxvY2tDaGFuZ2VJ
Zk5lZWRlZChjb24KICAgICAgICAgfHwgb2xkU3R5bGUuaGFzVHJhbnNmb3JtUmVsYXRlZFByb3Bl
cnR5KCkgIT0gbV9zdHlsZS5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoKQogICAgICAgICB8
fCBvbGRTdHlsZS53aWxsQ2hhbmdlKCkgIT0gbmV3U3R5bGUud2lsbENoYW5nZSgpCiAgICAgICAg
IHx8IG9sZFN0eWxlLmNvbnRhaW5zTGF5b3V0KCkgIT0gbmV3U3R5bGUuY29udGFpbnNMYXlvdXQo
KQotICAgICAgICB8fCBvbGRTdHlsZS5jb250YWluc1NpemUoKSAhPSBuZXdTdHlsZS5jb250YWlu
c1NpemUoKTsKKyAgICAgICAgfHwgb2xkU3R5bGUuY29udGFpbnNTaXplKCkgIT0gbmV3U3R5bGUu
Y29udGFpbnNTaXplKCkKKyAgICAgICAgfHwgb2xkU3R5bGUuY29udGVudFZpc2liaWxpdHkoKSAh
PSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpCisgICAgICAgIHx8IChlbGVtZW50KCkgJiYg
ZWxlbWVudCgpLT5zaG91bGRTa2lwQ29udGVudCgpKTsKICAgICBpZiAoIW1heU5vdEJlQ29udGFp
bmluZ0Jsb2NrRm9yRGVzY2VuZGFudHNBbnltb3JlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGQ4Mzk2ZmYyNTY4ZC4uY2Fj
NDEwZjgxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAg
LTUyMCw2ICs1MjAsOCBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVBh
aW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7CisgICAgaWYgKGVsZW1lbnQoKSAmJiBl
bGVtZW50KCktPnNob3VsZFNraXBDb250ZW50KCkpCisgICAgICAgIHJldHVybiB0cnVlOwogICAg
IHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQoc3R5bGUoKS5jb250YWlu
c1NpemUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgKaW5kZXggMWMzZmNiMWNjYTEyLi5hOGZiYTBkNmQyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01MzksNyArNTM5LDcgQEAgcHVi
bGljOgogICAgIE9wdGlvblNldDxDb250YWlubWVudD4gY29udGFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmNvbnRhaW47IH0KICAgICBPcHRpb25TZXQ8Q29udGFp
bm1lbnQ+IGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+ZWZmZWN0aXZlQ29udGFpbm1lbnQoKTsgfQogICAgIGJvb2wgY29udGFpbnNM
YXlvdXQoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENv
bnRhaW5tZW50OjpMYXlvdXQpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2li
aWxpdHk6OlZpc2libGU7IH0KLSAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpIHx8IGNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsgfQorICAgIGJv
b2wgY29udGFpbnNTaXplKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5j
b250YWlucyhDb250YWlubWVudDo6U2l6ZSk7IH0KICAgICBib29sIGNvbnRhaW5zSW5saW5lU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFp
bm1lbnQ6OklubGluZVNpemUpOyB9CiAgICAgYm9vbCBjb250YWluc1N0eWxlKCkgY29uc3QgeyBy
ZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U3R5bGUp
IHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0K
ICAgICBib29sIGNvbnRhaW5zUGFpbnQoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlu
bWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpQYWludCkgfHwgY29udGVudFZpc2liaWxpdHko
KSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460087</attachid>
            <date>2022-06-08 03:07:55 -0700</date>
            <delta_ts>2023-01-05 09:25:25 -0800</delta_ts>
            <desc>Rebase</desc>
            <filename>bug236711j.diff</filename>
            <type>text/plain</type>
            <size>24141</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">Y29tbWl0IDU1ZjBlMGVhYzMwMGJhZDI5NWE1Mzc0MDgyMmQ2MDcyZDZhYzEwMWIKQXV0aG9yOiBS
b2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogICBXZWQgSnVuIDggMTA6NTA6NTIgMjAy
MiArMDIwMAoKICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29u
dGVudC12aXNpYmlsaXR5OiBhdXRvCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzExCiAgICAKICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAg
CiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5
OiBhdXRvIFsxXS4KICAgIAogICAgVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVsZW1lbnQg
aXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZAogICAgZGVjaWRlIHRvIHdoZXRoZXIgaXQg
c2hvdWxkIHNraXAgY29udGVudHMgWzNdIHRoZSBmb2xsb3dpbmcgaXMgZG9uZToKICAgIC0gYW4g
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12aXNp
YmlsaXR5OiBhdXRvCiAgICAgIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNr
IHdoZXRoZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgICAgIHZpZXdwb3J0IG9yIG5vdCBhbmQg
dGh1cyBpZiBpdCBpcyByZWxldmFuIHRvIHRoZSB1c2VyLgogICAgLSBzdGF0ZSBpcyBrZXB0IHdo
ZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0cmVlIGNvbnRhaW5zCiAgICAg
IGFueSBmb2N1c2VkIG9yIHNlbGVjdGVkIGVsZW1lbnRzLCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlz
IHJlbGF2YW50IHRvIHRoZSB1c2VyLgogICAgCiAgICBUaGUgbWV0aG9kcyBmb2N1cygpIFs0LjMu
Nl0gYW5kIHNjcm9sbEludG9WaWV3KCkgWzQuMy41XSB0cmVhdCBhbnkgcHJldmlvdXNseQogICAg
c2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRvIHRoZSB1c2VyIGJlZm9yZSBk
b2luZyBhbnkgc2Nyb2xsaW5nLgogICAgCiAgICBUaGUgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VzIGEg
ZmxhZyBvbiBSZW5kZXJTdHlsZSB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIKICAgIHRoZSBSZW5k
ZXJPYmplY3Qgc2tpcHMgaXQgY29udGVudHMgd2hpY2ggaXMga2VwdCBpbiBzeW5jIHdpdGggQ29u
dGVudFZpc2liaWxpdHlEYXRhLgogICAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHRv
IGRlY2lkZSB3aGV0aGVyIHNpemUgY29udGFpbm1lbnQgc2hvdWxkIGJlIGFwcGxpZWQuCiAgICAK
ICAgIFsxXSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250
ZW50LXZpc2liaWxpdHktYXV0bwogICAgWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mt
Y29udGFpbi8jcmVsZXZhbnQtdG8tdGhlLXVzZXIKICAgIFszXSBodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLWNvbnRhaW4vI3NraXBzLWl0cy1jb250ZW50cwogICAgCiAgICAqIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dDoKICAgICog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0
OgogICAgKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBl
Y3RlZC50eHQ6CiAgICAqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcyLWV4cGVjdGVkLnR4dDoKICAgICogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcDoK
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgogICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpOiBrZWVwIHRyYWNrIG9m
IHZpZXdwb3J0IGludGVyc2VjdGlvbnMKICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CiAgICAoV2ViQ29y
ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjphZGRDb250ZW50VmlzaWJpbGl0eU9i
c2VydmF0aW9uKToKICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24pOgogICAgKFdlYkNvcmU6OkNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgog
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKToKICAgICogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50Lmg6CiAgICAqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cDoKICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6IHRyeSB0byBhY3RpdmF0
ZSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyBmb3Igc2tpcHBlZCBjb250ZW50cwogICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmZvY3VzKTogdHJ5IHRvIGFjdGl2YXRlIGVsZW1lbnQgYmVmb3JlIGNoZWNr
aW5nIGZvciBza2lwcGVkIGNvbnRlbnRzCiAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGV0ZXJtaW5l
SWZTdWJ0cmVlSGFzRm9jdXMpOgogICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRW
aXNpYmlsaXR5KToKICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdw
b3J0Q2hhbmdlKToKICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25z
dCk6IHRha2UgIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQKICAgIChXZWJD
b3JlOjpFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQpOgog
ICAgKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oOgogICAgKiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKToKICAgICogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwOgogICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmFkanVzdEZyYWdtZW50ZWRGbG93
U3RhdGVPbkNvbnRhaW5pbmdCbG9ja0NoYW5nZUlmTmVlZGVkKToKICAgICogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBjb25zdCk6CiAgICAqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgogICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
Ojpjb250YWluc1NpemUgY29uc3QpOgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dAppbmRleCA1OGUzNjVlYjMx
YWMuLmI2MjI0ZjkwNjQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMgYXNzZXJ0X2VxdWFsczog
c3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitQQVNTIENvbnRlbnQgVmlzaWJp
bGl0eTogb2ZmLXNjcmVlbiBmb2N1cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKaW5kZXggYTNlNTkwNmQ2
YzNmLi5hYWRiNDVjNDFjOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1o
ZWxsbwogCi1GQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24gYXNz
ZXJ0X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitQQVNTIENv
bnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0
CmluZGV4IDQ0YTI5MzY1MDM2MS4uM2MzZjBjYTMzOTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CkBA
IC0xLDEzICsxLDkgQEAKIGhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCi1oZWxsbwogCi1GQUlM
IE9uZSBlbGVtZW50cyBzZWxlY3RlZDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBSYW5nZSBleHRlbmRlZCB0byBjb3ZlciBtb3JlIGVsZW1lbnRzOiAgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIHNocnVuayB0byBjb3Zl
ciBmZXdlciBlbGVtZW50czogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0byBmcm9udDogIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFj
azogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBnb2Vz
IGJhY2sgYW5kIGZvcnRoOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQ
QVNTIE9uZSBlbGVtZW50cyBzZWxlY3RlZDoKK1BBU1MgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIg
bW9yZSBlbGVtZW50czoKK1BBU1MgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRz
OgorUEFTUyBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0byBmcm9udDoKK1BBU1MgUmFuZ2UgZmxp
cHBlZCBmcm9tIGZyb250IHRvIGJhY2s6CitQQVNTIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDcyLWV4cGVjdGVkLnR4dAppbmRleCAwMGYxYzdmNDQ0MTguLmY5NTE4YmNmZTA2NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBvbmUuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk6Ci1GQUlMIHR3by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9l
cXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgdGhyZWUuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAz
MDQxCi1GQUlMIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5
IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCi1GQUlMIGZpdmUuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCitQQVNT
IHR3by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgdGhyZWUuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk6CitQQVNTIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQQVNTIGZpdmUu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdh
OTYyMzgxZDhlNy4uZjlmZGU4Mjg4YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEz
Niw2ICsxMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRlcnNlY3Rpb25P
YnNlcnZlci5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlzdGVuZXIuaCIKQEAgLTM5MSw2ICsz
OTIsMzMgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGlzYWxsb3dMYXlvdXQgeyBmYWxzZSB9Owog
fTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
IGZpbmFsIDogcHVibGljIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8Q29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxi
YWNrPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
KGRvY3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzQ2FsbGJhY2soKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBDYWxsYmFja1Jlc3VsdDx2b2lkPiBo
YW5kbGVFdmVudChJbnRlcnNlY3Rpb25PYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxSZWY8SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+JiBlbnRyaWVzLCBJbnRlcnNlY3Rpb25PYnNlcnZlciYpIGZp
bmFsCisgICAgeworICAgICAgICBBU1NFUlQoIWVudHJpZXMuaXNFbXB0eSgpKTsKKworICAgICAg
ICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykgeworICAgICAgICAgICAgaWYgKGF1dG8qIGVs
ZW1lbnQgPSBlbnRyeS0+dGFyZ2V0KCkpCisgICAgICAgICAgICAgICAgZWxlbWVudC0+Y29udGVu
dFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShlbnRyeS0+aXNJbnRlcnNlY3RpbmcoKSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAg
ICA6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soJmRvY3VtZW50KQorICAgIHsKKyAgICB9
Cit9OworCiAvLyBEZWZpbmVkIGhlcmUgdG8gYXZvaWQgaW5jbHVkaW5nIEdDUmVhY2hhYmxlUmVm
LmggaW4gRG9jdW1lbnQuaAogc3RydWN0IERvY3VtZW50OjpQZW5kaW5nU2Nyb2xsRXZlbnRUYXJn
ZXRMaXN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ2OTEsNiArNDcxOSwx
MSBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG9sZEZvY3VzZWRFbGVtZW50LT5z
ZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgIHNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShu
dWxscHRyKTsKIAorICAgICAgICBmb3IgKGF1dG8gZm9jdXNlZCA9IG9sZEZvY3VzZWRFbGVtZW50
OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNlZC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVl
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRhID0gZm9jdXNlZC0+Y29udGVudFZpc2li
aWxpdHlEYXRhKCkpCisgICAgICAgICAgICAgICAgZGF0YS0+c3VidHJlZUhhc0ZvY3VzID0gZmFs
c2U7CisgICAgICAgIH0KKwogICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmFsRXZlbnRzTW9kZSA9
PSBGb2N1c1JlbW92YWxFdmVudHNNb2RlOjpEaXNwYXRjaCkgewogICAgICAgICAgICAgLy8gRGlz
cGF0Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUg
YmVlbiBlZGl0ZWQuCiAgICAgICAgICAgICBpZiAoaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4o
Km9sZEZvY3VzZWRFbGVtZW50KSkgewpAQCAtNDc2MCw2ICs0NzkzLDEzIEBAIGJvb2wgRG9jdW1l
bnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9u
cyYgb3B0aW9ucykKICAgICAgICAgaWYgKG9wdGlvbnMudHJpZ2dlciAhPSBGb2N1c1RyaWdnZXI6
OkJpbmRpbmdzKQogICAgICAgICAgICAgbV9sYXRlc3RGb2N1c1RyaWdnZXIgPSBvcHRpb25zLnRy
aWdnZXI7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBuZXdGb2N1c2VkRWxlbWVudDsg
Zm9jdXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byogZGF0YSA9IGZvY3VzZWQtPmNvbnRlbnRWaXNpYmls
aXR5RGF0YSgpKSB7CisgICAgICAgICAgICAgICAgZGF0YS0+c3VidHJlZUhhc0ZvY3VzID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBkYXRhLT5pc1NraXBwZWRDb250ZW50ID0gZmFsc2U7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICAvLyBUaGUgc2V0Rm9jdXMgY2FsbCB0cmln
Z2VycyBhIGJsdXIgYW5kIGEgZm9jdXMgZXZlbnQuIEV2ZW50IGhhbmRsZXJzIGNvdWxkIGNhdXNl
IHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8gYmUgY2xlYXJlZC4KICAgICAgICAgaWYgKG1fZm9jdXNl
ZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVsZW1lbnQpIHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIg
c2hpZnRlZCBmb2N1cwpAQCAtOTE3Nyw2ICs5MjE3LDcxIEBAIGJvb2wgRG9jdW1lbnQ6OmlzU2Ft
ZVNpdGVGb3JDb29raWVzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBkb21haW4u
bWF0Y2hlcyh1cmwpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUmIERvY3Vt
ZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQoreworICAgIGlmICghbV9jb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1fY29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+
KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOwor
fQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6YWRkQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChhdXRv
KiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkpCisg
ICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1lbnQpOworfQorCit2b2lk
IENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6cmVtb3ZlQ29udGVudFZpc2liaWxpdHlP
YnNlcnZhdGlvbihFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rp
b25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkpCisgICAgICAgIGludGVy
c2VjdGlvbk9ic2VydmVyLT51bm9ic2VydmUoZWxlbWVudCk7Cit9CisKK0ludGVyc2VjdGlvbk9i
c2VydmVyKiBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlv
bk9ic2VydmVyKCkKK3sKKyAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsKKyAgICAgICAgYXV0byBjYWxs
YmFjayA9IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjazo6Y3Jl
YXRlKCptX2RvY3VtZW50KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2soTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIjEwMCUiKSk7CisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyOjpJbml0IG9w
dGlvbnMgeyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNr
LCB7IH0gfTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9IEludGVyc2VjdGlvbk9ic2VydmVyOjpj
cmVhdGUoKm1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsK
KyAgICAgICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlci5yZXR1cm5WYWx1ZSgpLnB0
cigpOworICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsKK30KKwordm9pZCBEb2N1
bWVudDo6c2VsZWN0aW9uQ2hhbmdlZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rp
b24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbikKK3sKKyAgICBhdXRvIHBy
b2Nlc3NTZWxlY3Rpb25DaGFuZ2UgPSBbXShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIGJvb2wgc2VsZWN0ZWQpIHsKKyAgICAgICAgaWYgKGF1dG8gcmFuZ2UgPSBzZWxlY3Rpb24u
cmFuZ2UoKSkgeworICAgICAgICAgICAgZm9yIChSZWYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVz
KCpyYW5nZSkpIHsKKyAgICAgICAgICAgICAgICBFbGVtZW50KiBhbmNlc3RvciA9IG5vZGUtPnBh
cmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpOworICAgICAgICAgICAgICAgIHdoaWxlIChhbmNl
c3RvcikgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogZGF0YSA9IGFuY2VzdG9yLT5j
b250ZW50VmlzaWJpbGl0eURhdGEoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRh
dGEtPmNvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEtPnN1YnRyZWVIYXNTZWxlY3Rpb24gIT0g
c2VsZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+c3VidHJl
ZUhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbmNlc3Rvci0+aW52YWxpZGF0ZVN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChhbmNlc3Rvci0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFuY2VzdG9yLT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9OworICAgIHByb2Nlc3NTZWxlY3Rpb25DaGFuZ2Uob2xkU2VsZWN0aW9uLCBmYWxz
ZSk7CisgICAgcHJvY2Vzc1NlbGVjdGlvbkNoYW5nZShuZXdTZWxlY3Rpb24sIHRydWUpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVOVF9SRUxFQVNFX0xPRwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCA2NDE5N2VkZGQwYjYuLjc5ZGEwNDkyYzI3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTIzMiw2ICsyMzIsNyBAQCBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7
CiBjbGFzcyBUcmVlV2Fsa2VyOwogY2xhc3MgVW5kb01hbmFnZXI7CiBjbGFzcyBWaXNpYmlsaXR5
Q2hhbmdlQ2xpZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5r
U3RhdGU7CiBjbGFzcyBXZWJBbmltYXRpb247CiBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OwpAQCAtMzM5LDYgKzM0MCwyMSBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1f
ZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYpOworCisgICAgdm9pZCBhZGRDb250ZW50VmlzaWJp
bGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmls
aXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9i
c2VydmVyKiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVy
c2VjdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUK
ICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTE2NDUsNiArMTY2MSw4IEBAIHB1YmxpYzoKIAog
ICAgIExhenlMb2FkSW1hZ2VPYnNlcnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAg
ICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZSgpOworCiAgICAgdm9pZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVu
dCgpIHsgbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBi
b29sIGhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9o
YXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50
VGltaW5nRW50cnlJZk5lZWRlZCgpOwpAQCAtMTY4MSw2ICsxNjk5LDggQEAgcHVibGljOgogICAg
IHZvaWQgYWRkRWxlbWVudFdpdGhQZW5kaW5nVXNlckFnZW50U2hhZG93VHJlZVVwZGF0ZShFbGVt
ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVFbGVtZW50V2l0aFBlbmRpbmdV
c2VyQWdlbnRTaGFkb3dUcmVlVXBkYXRlKEVsZW1lbnQmKTsKIAorICAgIHZvaWQgc2VsZWN0aW9u
Q2hhbmdlZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbik7CisKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vz
c2lvbklEPiBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsKIAogcHJvdGVjdGVkOgpAQCAtMTg5NCw2
ICsxOTE0LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdl
T2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRy
PENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU7CisKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3BlbmRpbmdT
dGF0ZU9iamVjdDsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3Vt
ZW50Q3JlYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGFjY2ExOGI3MGRkZi4u
OTA2ZTMyZjYxMTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05OTQsNiArOTk0LDggQEAg
aW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9u
KHN0ZDo6b3B0aW9uYWw8U2Nyb2xsTG8KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhz
dGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYm
IGFyZykKIHsKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsK
KwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMTc3LDYgKzMxNzksMTAgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgaWYgKCFpc0Nvbm5l
Y3RlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxp
dHlBdXRvSWZOZWVkZWQoKTsKKworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBpZiAoaXNTa2lwcGVkQ29udGVudCgpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTQ5MTQsNiArNDkyMCwxNSBAQCB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNv
bnRlbnRWaXNpYmlsaXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRWaXNpYmlsaXR5IGNv
bgogICAgICAgICBjaGlsZC51cGRhdGVDb250ZW50VmlzaWJpbGl0eURhdGEoc2hvdWxkU2tpcCwg
Y29udGVudFZpc2liaWxpdHkpOwogfQogCitib29sIEVsZW1lbnQ6OmRldGVybWluZUlmU3VidHJl
ZUhhc0ZvY3VzKCkKK3sKKyAgICBmb3IgKGF1dG8qIGZvY3VzZWQgPSBkb2N1bWVudCgpLmZvY3Vz
ZWRFbGVtZW50KCk7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAoZm9jdXNlZCA9PSB0aGlzKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBFbGVt
ZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0eSBuZXdDb250ZW50
VmlzaWJpbGl0eSkKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkgJiYgbmV3Q29udGVudFZpc2li
aWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCkBAIC00OTIxLDggKzQ5MzYsMTQg
QEAgdm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50VmlzaWJpbGl0eShDb250ZW50VmlzaWJpbGl0
eSBuZXdDb250ZW50VmlzaWJpbGl0eSkKICAgICBhdXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZp
c2liaWxpdHlEYXRhKCk7CiAgICAgaWYgKGRhdGEuY29udGVudFZpc2liaWxpdHkgPT0gbmV3Q29u
dGVudFZpc2liaWxpdHkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoZGF0YS5jb250ZW50Vmlz
aWJpbGl0eSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgZG9jdW1lbnQoKS5j
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5yZW1vdmVDb250ZW50VmlzaWJpbGl0eU9i
c2VydmF0aW9uKCp0aGlzKTsKICAgICBkYXRhLmNvbnRlbnRWaXNpYmlsaXR5ID0gbmV3Q29udGVu
dFZpc2liaWxpdHk7Ci0gICAgLy8gRklYTUU6IGhhbmRsZSBjLXY6IGF1dG8uCisgICAgaWYgKG5l
d0NvbnRlbnRWaXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAg
IGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVudFZp
c2liaWxpdHlPYnNlcnZhdGlvbigqdGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlSW50
ZXJzZWN0aW9uT2JzZXJ2YXRpb25zKCk7CisgICAgICAgIGRhdGEuc3VidHJlZUhhc0ZvY3VzID0g
ZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMoKTsKKyAgICB9CiAgICAgdXBkYXRlQ29udGVudFZp
c2liaWxpdHlEYXRhKGZhbHNlLCBuZXdDb250ZW50VmlzaWJpbGl0eSk7CiAgICAgdXBkYXRlRGVz
Y2VuZGFudFRvcExheWVyRWxlbWVudHMobmV3Q29udGVudFZpc2liaWxpdHkpOwogfQpAQCAtNDk0
NSw2ICs0OTY2LDE1IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlRGVzY2VuZGFudFRvcExheWVyRWxl
bWVudHMoQ29udGVudFZpc2liaWxpdHkpCiAgICAgfQogfQogCit2b2lkIEVsZW1lbnQ6OmNvbnRl
bnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBpc0ludGVyc2VjdGluZykKK3sKKyAgICBh
dXRvJiBkYXRhID0gZW5zdXJlQ29udGVudFZpc2liaWxpdHlEYXRhKCk7CisgICAgZGF0YS5pc0lu
dGVyc2VjdGluZ1ZpZXdwb3J0ID0gaXNJbnRlcnNlY3Rpbmc7CisgICAgdXBkYXRlQ29udGVudFZp
c2liaWxpdHlEYXRhKGZhbHNlLCBDb250ZW50VmlzaWJpbGl0eTo6QXV0byk7CisgICAgaWYgKHJl
bmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KCk7Cit9CisKIGJv
b2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIGRh
dGEgPSBjb250ZW50VmlzaWJpbGl0eURhdGEoKSkKQEAgLTQ5NTQsMTEgKzQ5ODQsMjkgQEAgYm9v
bCBFbGVtZW50Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKIAogYm9vbCBFbGVtZW50OjpzaG91
bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIGRhdGEgPSBjb250ZW50Vmlz
aWJpbGl0eURhdGEoKSkKKyAgICBpZiAoYXV0byogZGF0YSA9IGNvbnRlbnRWaXNpYmlsaXR5RGF0
YSgpKSB7CisgICAgICAgIGlmIChkYXRhLT5jb250ZW50VmlzaWJpbGl0eSA9PSBDb250ZW50Vmlz
aWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiAhZGF0YS0+aXNJbnRlcnNlY3RpbmdW
aWV3cG9ydCAmJiAhZGF0YS0+c3VidHJlZUhhc0ZvY3VzICYmICFkYXRhLT5zdWJ0cmVlSGFzU2Vs
ZWN0aW9uOwogICAgICAgICByZXR1cm4gY29udGVudFZpc2liaWxpdHlEYXRhKCktPmNvbnRlbnRW
aXNpYmlsaXR5ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CisgICAgfQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlB
dXRvSWZOZWVkZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRh
cmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIGRhdGEgPSB0YXJnZXQtPmNvbnRlbnRWaXNpYmlsaXR5RGF0YSgpKSB7CisgICAg
ICAgICAgICBpZiAoZGF0YS0+Y29udGVudFZpc2liaWxpdHkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8pIHsKKyAgICAgICAgICAgICAgICBkYXRhLT5pc0ludGVyc2VjdGluZ1ZpZXdwb3J0ID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZSgpOworICAgICAg
ICAgICAgICAgIGlmICh0YXJnZXQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHRh
cmdldC0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogI2lmIEVOQUJMRShDU1Nf
VFlQRURfT00pCiAKIFN0eWxlUHJvcGVydHlNYXAqIEVsZW1lbnQ6OmF0dHJpYnV0ZVN0eWxlTWFw
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDVmNjhiOTcwYzZlYS4uY2U4Njg1ZjFkZjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKQEAgLTk4LDYgKzk4LDkgQEAgdXNpbmcgRXhwbGljaXRseVNldEF0dHJF
bGVtZW50c01hcCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWUK
IHN0cnVjdCBDb250ZW50VmlzaWJpbGl0eURhdGEgewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNU
X0FMTE9DQVRFRDsKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJv
b2wgaXNJbnRlcnNlY3RpbmdWaWV3cG9ydCB7IGZhbHNlIH07CisgICAgYm9vbCBzdWJ0cmVlSGFz
Rm9jdXMgeyBmYWxzZSB9OworICAgIGJvb2wgc3VidHJlZUhhc1NlbGVjdGlvbiB7IGZhbHNlIH07
CiAgICAgQ29udGVudFZpc2liaWxpdHkgY29udGVudFZpc2liaWxpdHk7CiB9OwogCkBAIC02ODcs
NiArNjkwLDcgQEAgcHVibGljOgogICAgIENvbnRlbnRWaXNpYmlsaXR5RGF0YSYgZW5zdXJlQ29u
dGVudFZpc2liaWxpdHlEYXRhKCk7CiAgICAgQ29udGVudFZpc2liaWxpdHlEYXRhKiBjb250ZW50
VmlzaWJpbGl0eURhdGEoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
KENvbnRlbnRWaXNpYmlsaXR5IG5ld0NvbnRlbnRWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGNvbnRl
bnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CiAgICAgYm9vbCBpc1NraXBwZWRDb250
ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OwogCkBAIC03
MTgsNiArNzIyLDEwIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRWaXNpYmls
aXR5RGF0YShib29sIHNob3VsZFNraXAsIENvbnRlbnRWaXNpYmlsaXR5KTsKICAgICB2b2lkIHVw
ZGF0ZURlc2NlbmRhbnRUb3BMYXllckVsZW1lbnRzKENvbnRlbnRWaXNpYmlsaXR5KTsKIAorICAg
IGJvb2wgZGV0ZXJtaW5lSWZTdWJ0cmVlSGFzRm9jdXMoKTsKKworICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CisKIHByaXZhdGU6CiAgICAgRnJhbWUq
IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0YzNiNGVkYjcxMTguLjFjMTAxNWIzYzk3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQzMCw2
ICs0MzAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogewogICAgIExPR19XSVRIX1NUUkVB
TShTZWxlY3Rpb24sIHN0cmVhbSA8PCAiRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbiAiIDw8
IHNlbGVjdGlvbik7CiAKKyAgICBWaXNpYmxlU2VsZWN0aW9uIG9sZFNlbGVjdGlvbiA9IG1fc2Vs
ZWN0aW9uOwogICAgIFJlZlB0ciBwcm90ZWN0ZWREb2N1bWVudCB7IG1fZG9jdW1lbnQuZ2V0KCkg
fTsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0
aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC00
NDcsNiArNDQ4LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBtX3NlbGVjdGlvblJl
dmVhbEludGVudCA9IGludGVudDsKICAgICBtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgPSB0cnVl
OwogCisgICAgcHJvdGVjdGVkRG9jdW1lbnQtPnNlbGVjdGlvbkNoYW5nZWQob2xkU2VsZWN0aW9u
LCBtX3NlbGVjdGlvbik7CisKICAgICBpZiAocHJvdGVjdGVkRG9jdW1lbnQtPmhhc1BlbmRpbmdT
dHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBkZjUwYjAwN2Q3ODEuLjg5YjdlNjQzM2Y5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMjE3Nyw3ICsy
MTc3LDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGcmFnbWVudGVkRmxvd1N0YXRlT25D
b250YWluaW5nQmxvY2tDaGFuZ2VJZk5lZWRlZChjb24KICAgICAgICAgfHwgb2xkU3R5bGUuaGFz
VHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgIT0gbV9zdHlsZS5oYXNUcmFuc2Zvcm1SZWxhdGVk
UHJvcGVydHkoKQogICAgICAgICB8fCBvbGRTdHlsZS53aWxsQ2hhbmdlKCkgIT0gbmV3U3R5bGUu
d2lsbENoYW5nZSgpCiAgICAgICAgIHx8IG9sZFN0eWxlLmNvbnRhaW5zTGF5b3V0KCkgIT0gbmV3
U3R5bGUuY29udGFpbnNMYXlvdXQoKQotICAgICAgICB8fCBvbGRTdHlsZS5jb250YWluc1NpemUo
KSAhPSBuZXdTdHlsZS5jb250YWluc1NpemUoKTsKKyAgICAgICAgfHwgb2xkU3R5bGUuY29udGFp
bnNTaXplKCkgIT0gbmV3U3R5bGUuY29udGFpbnNTaXplKCkKKyAgICAgICAgfHwgb2xkU3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpCisgICAg
ICAgIHx8IChlbGVtZW50KCkgJiYgZWxlbWVudCgpLT5zaG91bGRTa2lwQ29udGVudCgpKTsKICAg
ICBpZiAoIW1heU5vdEJlQ29udGFpbmluZ0Jsb2NrRm9yRGVzY2VuZGFudHNBbnltb3JlKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmlu
ZGV4IGVhOTllZjI4NDlmYy4uZTIzMWI1YThlZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmgKQEAgLTUyMCw2ICs1MjAsOCBAQCBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9v
bCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Cisg
ICAgaWYgKGVsZW1lbnQoKSAmJiBlbGVtZW50KCktPnNob3VsZFNraXBDb250ZW50KCkpCisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFp
bm1lbnQoQ29udGFpbm1lbnQ6OlNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDEyYjhkY2M5MmEzNy4uYjI1ZDAzMDQ4ZGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNTM5
LDcgKzUzOSw3IEBAIHB1YmxpYzoKICAgICBPcHRpb25TZXQ8Q29udGFpbm1lbnQ+IGNvbnRhaW4o
KSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5jb250YWluOyB9CiAgICAg
T3B0aW9uU2V0PENvbnRhaW5tZW50PiBlZmZlY3RpdmVDb250YWlubWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmVmZmVjdGl2ZUNvbnRhaW5tZW50KCk7IH0KICAg
ICBib29sIGNvbnRhaW5zTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1l
bnQoKS5jb250YWlucyhDb250YWlubWVudDo6TGF5b3V0KSB8fCBjb250ZW50VmlzaWJpbGl0eSgp
ICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlOyB9Ci0gICAgYm9vbCBjb250YWluc1NpemUo
KSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5t
ZW50OjpTaXplKSB8fCBjb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW47IH0KKyAgICBib29sIGNvbnRhaW5zU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2
ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpOyB9CiAgICAgYm9vbCBj
b250YWluc0lubGluZVNpemUoKSBjb25zdCB7IHJldHVybiBlZmZlY3RpdmVDb250YWlubWVudCgp
LmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSB8fCBjb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47IH0KICAgICBib29sIGNvbnRhaW5zU2l6ZU9y
SW5saW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFp
bnNBbnkoeyBDb250YWlubWVudDo6U2l6ZSwgQ29udGFpbm1lbnQ6OklubGluZVNpemUgfSkgfHwg
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOyB9CiAgICAg
Ym9vbCBjb250YWluc1N0eWxlKCkgY29uc3QgeyByZXR1cm4gZWZmZWN0aXZlQ29udGFpbm1lbnQo
KS5jb250YWlucyhDb250YWlubWVudDo6U3R5bGUpIHx8IGNvbnRlbnRWaXNpYmlsaXR5KCkgIT0g
Q29udGVudFZpc2liaWxpdHk6OlZpc2libGU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464351</attachid>
            <date>2023-01-05 09:25:13 -0800</date>
            <delta_ts>2023-01-10 11:42:44 -0800</delta_ts>
            <desc>Rebase</desc>
            <filename>cv-hidden6.diff</filename>
            <type>text/plain</type>
            <size>29162</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">Y29tbWl0IDljZWQyNTA3ZjNmZDYwZTk4NjI2YzdjODdkNmIwNjFhYmFhN2E0ZTMKQXV0aG9yOiBS
b2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogICBUaHUgSmFuIDUgMTc6MjA6MzggMjAy
MyArMDAwMAoKICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29u
dGVudC12aXNpYmlsaXR5OiBhdXRvCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzExCiAgICAKICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAg
CiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgY29udGVudC12aXNpYmlsaXR5
OiBhdXRvIFsxXS4KICAgIAogICAgVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVsZW1lbnQg
aXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZAogICAgZGVjaWRlIHRvIHdoZXRoZXIgaXQg
c2hvdWxkIHNraXAgY29udGVudHMgWzNdIHRoZSBmb2xsb3dpbmcgaXMgZG9uZToKICAgIC0gYW4g
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMgaW5zdGFsbGVkIGFzIHNvb24gYXMgY29udGVudC12aXNp
YmlsaXR5OiBhdXRvCiAgICAgIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNr
IHdoZXRoZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgICAgIHZpZXdwb3J0IG9yIG5vdCBhbmQg
dGh1cyBpZiBpdCBpcyByZWxldmFuIHRvIHRoZSB1c2VyLgogICAgLSBzdGF0ZSBpcyBrZXB0IHdo
ZXRoZXIgdGhlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBzdWJ0cmVlIGNvbnRhaW5zCiAgICAg
IGFueSBmb2N1c2VkIG9yIHNlbGVjdGVkIGVsZW1lbnRzLCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlz
IHJlbGV2YW50IHRvIHRoZSB1c2VyLgogICAgCiAgICBUaGUgbWV0aG9kcyBmb2N1cygpIFs0LjMu
Nl0gYW5kIHNjcm9sbEludG9WaWV3KCkgWzQuMy41XSB0cmVhdCBhbnkgcHJldmlvdXNseQogICAg
c2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRvIHRoZSB1c2VyIGJlZm9yZSBk
b2luZyBhbnkgc2Nyb2xsaW5nLgogICAgCiAgICBbMV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12aXNpYmlsaXR5LWF1dG8KICAgIFsyXSBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3JlbGV2YW50LXRvLXRoZS11c2VyCiAg
ICBbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNza2lwcy1pdHMtY29u
dGVudHMKICAgIAogICAgKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgogICAgKiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQ6CiAg
ICAqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVk
LnR4dDoKICAgICogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEt
ZXhwZWN0ZWQudHh0OgogICAgKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA3Mi1leHBlY3RlZC50eHQ6CiAgICAqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHA6CiAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6aGFzQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbiBjb25zdCk6CiAg
ICAoV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGUpOgogICAgKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6YWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbik6CiAgICAoV2ViQ29yZTo6
Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50VmlzaWJpbGl0eU9i
c2VydmF0aW9uKToKICAgIChXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
Omhhc0NvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24gY29uc3QpOgogICAgKFdlYkNvcmU6OkNv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIp
OgogICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKToKICAgICogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiAgICAqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcDoKICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6CiAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2V0SXNJbnRlcnNlY3RpbmdWaWV3cG9ydCk6CiAgICAoV2ViQ29yZTo6RWxl
bWVudDo6aXNJbnRlcnNlY3RpbmdWaWV3cG9ydCBjb25zdCk6CiAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2V0U3VidHJlZUhhc0ZvY3VzKToKICAgIChXZWJDb3JlOjpFbGVtZW50OjpzdWJ0cmVlSGFz
Rm9jdXMgY29uc3QpOgogICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFN1YnRyZWVIYXNTZWxlY3Rp
b24pOgogICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnN1YnRyZWVIYXNTZWxlY3Rpb24gY29uc3QpOgog
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UpOgog
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIgY29uc3QpOgogICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCk6CiAg
ICAqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmg6CiAgICAqIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5oOgogICAgKiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcDoKICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKICAg
ICogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHA6CiAgICAoV2ViQ29y
ZTo6SFRNTERpYWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6CiAgICAqIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcDoKICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOgogICAgKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6
CiAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKICAgIChXZWJD
b3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6CiAgICAqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CiAgICAoV2ViQ29yZTo6UmVuZGVy
RWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQgY29uc3QpOgogICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgogICAgKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KICAgICogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQgY29uc3QpOgogICAgKiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFk
anVzdCBjb25zdCk6CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzBjNmZiMWRlMzg3Li5hZDQzNjUy
ZGFlNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDgxOCwxMSArNDgxOCw3IEBAIHdlYmFuaW1h
dGlvbnMvdHJhbnNsYXRlLXByb3BlcnR5LWFuZC10cmFuc2xhdGUtYW5pbWF0aW9uLXdpdGgtZGVs
YXktb24tZm9yY2VkLWxhCiAjIENTUyBjb250YWlubWVudCB0ZXN0cyB0aGF0IGZhaWwKIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5l
LXNpemUtYmZjLWZsb2F0cy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6
ZS1pbnRyaW5zaWMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0
bwotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5nZWQu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1zaXpl
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
dmlkZW8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CmluZGV4IDU4
ZTM2NWViMzFhYy4uYjYyMjRmOTA2NDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBmb2N1cyBhc3NlcnRf
ZXF1YWxzOiBzdGVwMSBoZWlnaHQgZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKK1BBU1MgQ29udGVu
dCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dAppbmRleCBh
M2U1OTA2ZDZjM2YuLmFhZGI0NWM0MWM5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDMgQEAKLWhlbGxvCiAKLUZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVuIHNlbGVj
dGlvbiBhc3NlcnRfZXF1YWxzOiBzdGVwMSBoZWlnaHQgZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAK
K1BBU1MgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVuIHNlbGVjdGlvbgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBl
Y3RlZC50eHQKaW5kZXggNDRhMjkzNjUwMzYxLi4zYzNmMGNhMzM5NWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3Rl
ZC50eHQKQEAgLTEsMTMgKzEsOSBAQAogaGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxv
CiAKLUZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6
ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2Ugc2hydW5r
IHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9u
dCB0byBiYWNrOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJh
bmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgT25lIGVsZW1lbnRzIHNlbGVjdGVkOgorUEFTUyBSYW5nZSBleHRlbmRlZCB0
byBjb3ZlciBtb3JlIGVsZW1lbnRzOgorUEFTUyBSYW5nZSBzaHJ1bmsgdG8gY292ZXIgZmV3ZXIg
ZWxlbWVudHM6CitQQVNTIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OgorUEFTUyBS
YW5nZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazoKK1BBU1MgUmFuZ2UgZ29lcyBiYWNrIGFu
ZCBmb3J0aDoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CmluZGV4IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2Zl
MDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA3Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIG9uZS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKToKLUZBSUwgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAg
YXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBi
dXQgZ290IDMwNDEKLUZBSUwgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9l
cXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZml2ZS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMw
NDEKK1BBU1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyB0aHJlZS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BB
U1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggYWQ3MjE0NTQzMTVkLi5mZGQ0NjE0ZTgxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTM3LDYgKzEzNyw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVy
c2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAt
MzY4LDYgKzM2OSwzMyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7
CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBm
aW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
az4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhk
b2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFu
ZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2Vj
dGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5h
bAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVt
ZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRW
aXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJ
bnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAg
OiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQor
fTsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7
CiBib29sIERvY3VtZW50OjpoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZSA9IGZhbHNlOwog
c3RhdGljIGNvbnN0IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdB
ZnRlck1lZGlhRmluaXNoZXNQbGF5aW5nIHsgMV9zIH07CkBAIC00NzcyLDYgKzQ4MDAsMTIgQEAg
Ym9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3Qg
Rm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+c2V0Rm9j
dXMoZmFsc2UpOwogICAgICAgICBzZXRGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGUobnVsbHB0
cik7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBvbGRGb2N1c2VkRWxlbWVudDsgZm9j
dXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7
CisgICAgICAgICAgICBpZiAoZm9jdXNlZC0+cmVuZGVyZXIoKSAmJiBmb2N1c2VkLT5yZW5kZXJl
cigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1
dG8pIHsKKyAgICAgICAgICAgICAgICBmb2N1c2VkLT5zZXRTdWJ0cmVlSGFzRm9jdXMoZmFsc2Up
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgaWYgKG9wdGlvbnMucmVtb3Zh
bEV2ZW50c01vZGUgPT0gRm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6RGlzcGF0Y2gpIHsKICAgICAg
ICAgICAgIC8vIERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgdGhhdCBoYXZlIGJlZW4gZWRpdGVkLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpIHsKQEAgLTQ4NTEsNiArNDg4NSwxMSBA
QCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25z
dCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIGlmIChvcHRpb25zLnRyaWdnZXIgIT0g
Rm9jdXNUcmlnZ2VyOjpCaW5kaW5ncykKICAgICAgICAgICAgIG1fbGF0ZXN0Rm9jdXNUcmlnZ2Vy
ID0gb3B0aW9ucy50cmlnZ2VyOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gbmV3Rm9j
dXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGZvY3VzZWQtPnJlbmRlcmVyKCkgJiYg
Zm9jdXNlZC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRl
bnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGZvY3VzZWQtPnNldFN1YnRyZWVI
YXNGb2N1cyh0cnVlKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIFRoZSBzZXRGb2N1cyBjYWxs
IHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZlbnQgaGFuZGxlcnMgY291bGQg
Y2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVkLgogICAgICAgICBpZiAobV9m
b2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewogICAgICAgICAgICAgLy8gaGFu
ZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05NDEyLDYgKzk0NTEsODMgQEAgYm9vbCBEb2N1bWVudDo6
bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3NldHRpbmdzLT5s
YXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpICYmICFtX3F1aXJrcy0+c2hvdWxkRGlzYWJsZUxhenlJ
bWFnZUxvYWRpbmdRdWlyaygpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUm
IERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQoreworICAgIGlmICgh
bV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1fY29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlOworfQorCitib29sIERvY3VtZW50OjpoYXNDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBt
X2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZS0+aGFzQ29udGVudFZpc2liaWxpdHlPYnNl
cnZhdGlvbihlbGVtZW50KTsKK30KKworQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpD
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDog
bV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVu
dCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2ZShl
bGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnJlbW92
ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBp
ZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZl
cigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+dW5vYnNlcnZlKGVsZW1lbnQpOwor
fQorCitib29sIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6aGFzQ29udGVudFZpc2li
aWxpdHlPYnNlcnZhdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIGlm
ICghbV9vYnNlcnZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX29ic2Vy
dmVyLT5pc09ic2VydmluZyhlbGVtZW50KTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIENv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo
KQoreworICAgIGlmICghbV9vYnNlcnZlcikgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gQ29u
dGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpjcmVhdGUoKm1fZG9j
dW1lbnQpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250
ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjayhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
MTAwJSIpKTsKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OkluaXQgb3B0aW9ucyB7IHN0
ZDo6bnVsbG9wdCwgY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2ssIHsgfSB9Owor
ICAgICAgICBhdXRvIG9ic2VydmVyID0gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSgqbV9k
b2N1bWVudCwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUob3B0aW9ucykpOworICAgICAgICBp
ZiAob2JzZXJ2ZXIuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgbV9vYnNlcnZlciA9IG9ic2VydmVyLnJldHVyblZhbHVlKCkucHRyKCk7CisgICAg
fQorICAgIHJldHVybiBtX29ic2VydmVyLmdldCgpOworfQorCit2b2lkIERvY3VtZW50OjpzZWxl
Y3Rpb25DaGFuZ2VkKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQoreworICAgIGF1dG8gcHJvY2Vzc1NlbGVj
dGlvbkNoYW5nZSA9IFtdKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBz
ZWxlY3RlZCkgeworICAgICAgICBpZiAoYXV0byByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZSgpKSB7
CisgICAgICAgICAgICBmb3IgKFJlZiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMoKnJhbmdlKSkg
eworICAgICAgICAgICAgICAgIEVsZW1lbnQqIGFuY2VzdG9yID0gbm9kZS0+cGFyZW50RWxlbWVu
dEluQ29tcG9zZWRUcmVlKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGFuY2VzdG9yKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+cmVuZGVyZXIoKSAmJiBhbmNlc3Rvci0+
cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmls
aXR5OjpBdXRvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPnN1YnRy
ZWVIYXNTZWxlY3Rpb24oKSAhPSBzZWxlY3RlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuY2VzdG9yLT5zZXRTdWJ0cmVlSGFzU2VsZWN0aW9uKHNlbGVjdGVkKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvci0+aW52YWxpZGF0ZVN0eWxlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGFuY2VzdG9yLT5yZW5kZXJlcigpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvci0+cmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlv
dXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFuY2Vz
dG9yID0gYW5jZXN0b3ItPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH07CisgICAgcHJvY2Vzc1Nl
bGVjdGlvbkNoYW5nZShvbGRTZWxlY3Rpb24sIGZhbHNlKTsKKyAgICBwcm9jZXNzU2VsZWN0aW9u
Q2hhbmdlKG5ld1NlbGVjdGlvbiwgdHJ1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI3VuZGVmIERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDhm
YjBmZDk2NWVkNC4uOWMyMTBlY2E0NGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjM2LDYg
KzIzNiw3IEBAIGNsYXNzIFRyYW5zZm9ybVNvdXJjZTsKIGNsYXNzIFRyZWVXYWxrZXI7CiBjbGFz
cyBVbmRvTWFuYWdlcjsKIGNsYXNzIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQ7CitjbGFzcyBWaXNp
YmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaXRlZExpbmtTdGF0ZTsKIGNsYXNzIFdha2VMb2NrTWFu
YWdlcjsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKQEAgLTM1Myw2ICszNTQsMjIgQEAgcHJpdmF0ZToK
ICAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1f
ZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYpOworCisgICAgdm9pZCBhZGRDb250ZW50VmlzaWJp
bGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRlbnRWaXNpYmls
aXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOworICAgIGJvb2wgaGFzQ29udGVudFZpc2liaWxpdHlP
YnNlcnZhdGlvbihjb25zdCBFbGVtZW50JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQ
dHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVu
dCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OworfTsKKwogY2xh
c3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJl
ZVNjb3BlCkBAIC0xNjgwLDYgKzE2OTcsOSBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdl
T2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKyAgICBi
b29sIGhhc0NvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oY29uc3QgRWxlbWVudCYgZWxlbWVu
dCkgY29uc3Q7CisKICAgICB2b2lkIHNldEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50
KCkgeyBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50ID0gdHJ1ZTsgfQogICAgIGJv
b2wgaGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
c1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50OyB9CiAgICAgdm9pZCBlbnF1ZXVlUGFpbnRU
aW1pbmdFbnRyeUlmTmVlZGVkKCk7CkBAIC0xNzM1LDYgKzE3NTUsOCBAQCBwdWJsaWM6CiAgICAg
RE9NQXVkaW9TZXNzaW9uOjpUeXBlIGF1ZGlvU2Vzc2lvblR5cGUoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvU2Vzc2lvblR5cGU7IH0KICNlbmRpZgogCisgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2Vk
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uKTsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9u
RmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEg
fTsKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwg
Y29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25G
bGFncyA9IDAsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKQEAgLTE5
NTIsNiArMTk3NCw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJ
bWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVl
X3B0cjxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOworCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9k
b2N1bWVudENyZWF0aW9uVGltZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRk
ZDA4YmE3NWJiOS4uMjlkNmE3NDM5Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDU4
LDYgKzEwNTgsOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVu
dCosIExheW91dFJlY3Q+PiBsaXN0Qm94RWxlbWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNj
cm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9W
aWV3T3B0aW9ucz4+JiYgYXJnKQogeworICAgIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1
dG9JZk5lZWRlZCgpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsK
QEAgLTUxNjgsNCArNTE3MCw1NyBAQCB2b2lkIEVsZW1lbnQ6OnNldERpc3BsYXlDb250ZW50c0No
YW5nZWQoYm9vbCBjaGFuZ2VkKQogICAgIHNldEV2ZW50VGFyZ2V0RmxhZyhFdmVudFRhcmdldEZs
YWc6OkRpc3BsYXlDb250ZW50c0NoYW5nZWQsIGNoYW5nZWQpOwogfQogCit2b2lkIEVsZW1lbnQ6
OnNldElzSW50ZXJzZWN0aW5nVmlld3BvcnQoYm9vbCBpc0ludGVyc2VjdGluZykKK3sKKyAgICBz
ZXRFdmVudFRhcmdldEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpJc0ludGVyc2VjdGluZ1ZpZXdwb3J0
LCBpc0ludGVyc2VjdGluZyk7Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNJbnRlcnNlY3RpbmdWaWV3
cG9ydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0V2ZW50VGFyZ2V0RmxhZyhFdmVudFRhcmdl
dEZsYWc6OklzSW50ZXJzZWN0aW5nVmlld3BvcnQpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldFN1
YnRyZWVIYXNGb2N1cyhib29sIHN1YnRyZWVIYXNGb2N1cykKK3sKKyAgICBzZXRFdmVudFRhcmdl
dEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpTdWJ0cmVlSGFzRm9jdXMsIHN1YnRyZWVIYXNGb2N1cyk7
Cit9CisKK2Jvb2wgRWxlbWVudDo6c3VidHJlZUhhc0ZvY3VzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gaGFzRXZlbnRUYXJnZXRGbGFnKEV2ZW50VGFyZ2V0RmxhZzo6U3VidHJlZUhhc0ZvY3VzKTsK
K30KKwordm9pZCBFbGVtZW50OjpzZXRTdWJ0cmVlSGFzU2VsZWN0aW9uKGJvb2wgc3VidHJlZUhh
c1NlbGVjdGlvbikKK3sKKyAgICBzZXRFdmVudFRhcmdldEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpT
dWJ0cmVlSGFzU2VsZWN0aW9uLCBzdWJ0cmVlSGFzU2VsZWN0aW9uKTsKK30KKworYm9vbCBFbGVt
ZW50OjpzdWJ0cmVlSGFzU2VsZWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzRXZlbnRU
YXJnZXRGbGFnKEV2ZW50VGFyZ2V0RmxhZzo6U3VidHJlZUhhc1NlbGVjdGlvbik7Cit9CisKK3Zv
aWQgRWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sIGlzSW50ZXJz
ZWN0aW5nKQoreworICAgIGlmIChpc0ludGVyc2VjdGluZ1ZpZXdwb3J0KCkgIT0gaXNJbnRlcnNl
Y3RpbmcpIHsKKyAgICAgICAgc2V0SXNJbnRlcnNlY3RpbmdWaWV3cG9ydChpc0ludGVyc2VjdGlu
Zyk7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICB9Cit9CisKK2Jv
b2wgRWxlbWVudDo6aXNSZWxldmFudFRvVXNlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzSW50
ZXJzZWN0aW5nVmlld3BvcnQoKSB8fCBzdWJ0cmVlSGFzRm9jdXMoKSB8fCBzdWJ0cmVlSGFzU2Vs
ZWN0aW9uKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
QXV0b0lmTmVlZGVkKCkKK3sKKyAgICBmb3IgKGF1dG8gdGFyZ2V0ID0gdGhpczsgdGFyZ2V0OyB0
YXJnZXQgPSB0YXJnZXQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAg
IGlmICh0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAg
ICAgIHRhcmdldC0+c2V0SXNJbnRlcnNlY3RpbmdWaWV3cG9ydCh0cnVlKTsKKyAgICAgICAgICAg
IHRhcmdldC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOworICAgICAgICB9CisgICAgfQor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAwZDI5ODli
NjUyYTEuLmVmNjYwODljN2U3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC03MDksNiArNzA5LDE4
IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BsYXlDb250ZW50c0NoYW5nZWQoKSBjb25zdDsKICAg
ICB2b2lkIHNldERpc3BsYXlDb250ZW50c0NoYW5nZWQoYm9vbCA9IHRydWUpOwogCisgICAgYm9v
bCBpc0ludGVyc2VjdGluZ1ZpZXdwb3J0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRJc0ludGVyc2Vj
dGluZ1ZpZXdwb3J0KGJvb2wpOworCisgICAgYm9vbCBzdWJ0cmVlSGFzRm9jdXMoKSBjb25zdDsK
KyAgICB2b2lkIHNldFN1YnRyZWVIYXNGb2N1cyhib29sKTsKKworICAgIGJvb2wgc3VidHJlZUhh
c1NlbGVjdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U3VidHJlZUhhc1NlbGVjdGlvbihib29s
KTsKKworICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sKTsKKyAg
ICBib29sIGlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAK
QEAgLTczMiw2ICs3NDQsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHVwZGF0ZUxhYmVsKFRy
ZWVTY29wZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZEZvckF0dHJpYnV0ZVZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiBuZXdGb3JBdHRyaWJ1dGVWYWx1ZSk7CiAKKyAgICB2b2lkIGludmFsaWRhdGVD
b250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOworCiBwcml2YXRlOgogICAgIEZyYW1lKiBk
b2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmgKaW5kZXggNWQ4OWI0MDFmZjMxLi5lM2VjOGYzNTc2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldC5oCkBAIC0xNjYsNiArMTY2LDkgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyBFbGVt
ZW50IGJpdHMKICAgICAgICAgSGFzRHVwbGljYXRlQXR0cmlidXRlID0gMSA8PCAyLAogICAgICAg
ICBEaXNwbGF5Q29udGVudHNDaGFuZ2VkID0gMSA8PCAzLAorICAgICAgICBJc0ludGVyc2VjdGlu
Z1ZpZXdwb3J0ID0gMSA8PCA0LAorICAgICAgICBTdWJ0cmVlSGFzRm9jdXMgPSAxIDw8IDUsCisg
ICAgICAgIFN1YnRyZWVIYXNTZWxlY3Rpb24gPSAxIDw8IDYsCiAgICAgfTsKIAogICAgIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggN2RlYzI1ZGVmZDgyLi5kOTFmZjc3NWMzYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTMsNiArNDUz
LDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Vs
ZWN0aW9uLCBzdHJlYW0gPDwgIkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24gIiA8PCBzZWxl
Y3Rpb24pOwogCisgICAgVmlzaWJsZVNlbGVjdGlvbiBvbGRTZWxlY3Rpb24gPSBtX3NlbGVjdGlv
bjsKKwogICAgIFJlZlB0ciBwcm90ZWN0ZWREb2N1bWVudCB7IG1fZG9jdW1lbnQuZ2V0KCkgfTsK
ICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9u
LCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC00NzAs
NiArNDcyLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBtX3NlbGVjdGlvblJldmVh
bEludGVudCA9IGludGVudDsKICAgICBtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgPSB0cnVlOwog
CisgICAgcHJvdGVjdGVkRG9jdW1lbnQtPnNlbGVjdGlvbkNoYW5nZWQob2xkU2VsZWN0aW9uLCBt
X3NlbGVjdGlvbik7CisKICAgICBpZiAocHJvdGVjdGVkRG9jdW1lbnQtPmhhc1BlbmRpbmdTdHls
ZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlh
bG9nRWxlbWVudC5jcHAKaW5kZXggZmM5MWQyM2ZkYzkzLi43NDY0OThhNTEzY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwxMCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAogICAgIHNl
dElzTW9kYWwodHJ1ZSk7CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlmICghaXNJ
blRvcExheWVyKCkpIHsKKyAgICAgICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lm
TmVlZGVkKCk7CiAgICAgICAgIGFkZFRvVG9wTGF5ZXIoKTsKKyAgICB9CiAKICAgICBtX3ByZXZp
b3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDQ2MWM0YzE1MTg3Yi4uYmJiYWVkZDRjNWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yNjAyLDggKzI2MDIsMTMgQEAgYm9vbCBG
cmFtZVZpZXc6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVS
ZWN0LCBjb25zdCBSZW5kZXIKICAgICBpZiAob3B0aW9ucy5yZXZlYWxNb2RlID09IFNlbGVjdGlv
blJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAocmVuZGVyZXIuaXNTa2lwcGVkQ29udGVudCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKHJlbmRlcmVyLmlzU2tpcHBlZENvbnRlbnQoKSkgeworICAgICAgICBmb3IgKGF1dG8g
dGFyZ2V0ID0gcmVuZGVyZXIucGFyZW50KCk7IHRhcmdldDsgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJl
bnQoKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldC0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0
eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKICAgICBhdXRvKiBs
YXllciA9IHJlbmRlcmVyLmVuY2xvc2luZ0xheWVyKCk7CiAgICAgaWYgKCFsYXllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAyNTViOTU0OWQzZjku
LmQ4OTQ0MDRhNGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENo
YW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ldwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICYmIGVsZW1lbnQoKSkgeworICAg
ICAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKmVsZW1l
bnQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCku
Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVudFZpc2liaWxpdHlPYnNl
cnZhdGlvbigqZWxlbWVudCgpKTsKKyAgICAgICAgfQorCiAgICAgICAgIGF1dG8gbmVlZHNJbnZh
bGlkYXRlRXZlbnRSZWdpb24gPSBbJl0gewogICAgICAgICAgICAgaWYgKG1fc3R5bGUuZWZmZWN0
aXZlUG9pbnRlckV2ZW50cygpICE9IG5ld1N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg2NCw2ICs4NzEsOSBAQCB2b2lkIFJl
bmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyU3R5bGUmIG5ldwogICAgICAgICBzZXRIYXNOb25WaXNpYmxlT3ZlcmZsb3coZmFsc2Up
OwogICAgICAgICBzZXRIYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoZmFsc2UpOwogICAgICAg
ICBzZXRIYXNSZWZsZWN0aW9uKGZhbHNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobmV3
U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byAmJiBl
bGVtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZSgpLmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKmVsZW1lbnQoKSk7CiAg
ICAgfQogCiAgICAgYm9vbCBoYWRPdXRsaW5lID0gb2xkU3R5bGUgJiYgb2xkU3R5bGUtPmhhc091
dGxpbmUoKTsKQEAgLTIyMDcsNCArMjIxNywxMyBAQCBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6
cmVmZXJlbmNlQm94UmVjdChDU1NCb3hUeXBlIGJveFR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIHsg
fTsKIH0KIAorYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7
CisgICAgaWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6VmlzaWJsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIGVsZW1lbnQoKSAmJiAhZWxlbWVudCgpLT5pc1JlbGV2YW50
VG9Vc2VyKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
CmluZGV4IDZmZWQ4ZmJiY2UwNi4uOGY2MTAxNzM5NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTMxMiw2ICszMTIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGVzdGFibGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0
OwogICAgIGJvb2wgY3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAKKyAgICBi
b29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIEJh
c2VUeXBlRmxhZyB7CiAgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3RGbGFnICA9IDEgPDwg
MCwKQEAgLTUzOSw3ICs1NDEsOSBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRB
cHBseUxheW91dE9yUGFpbnRDb250YWlubWVudCgpIGNvbnN0CiAKIGlubGluZSBib29sIFJlbmRl
ckVsZW1lbnQ6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXpl
KCkgfHwgc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW4pOworICAgIGlmIChzaG91bGRTa2lwQ29udGVudCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCku
Y29udGFpbnNTaXplKCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRB
cHBseUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CkBAIC02NTEsNiArNjU1LDEzIEBAIGlu
bGluZSBSZW5kZXJPYmplY3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6c2hv
dWxkU2tpcENvbnRlbnQoKSBjb25zdAoreworICAgIGlmIChpc1RleHQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuc2hv
dWxkU2tpcENvbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX1JFTkRFUl9PQkpFQ1QoUmVuZGVyRWxlbWVudCwgaXNSZW5kZXJFbGVt
ZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRm
ZDlkMGZiODM2NS4uMzU0ODBlNDBiMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMjYzNywxMSArMjYzNyw2IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojpp
c1NraXBwZWRDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCkt
PnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCk7CiB9CiAKLWJvb2wgUmVuZGVyT2JqZWN0
OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuY29udGVu
dFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwotfQotCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDBkZGRmYzIz
OGE0OS4uYzdkMDY4ODhiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEwMzEsNiArMTAzMSw5IEBAIGJvb2wgUmVuZGVyU3R5bGU6
OmNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlJiBvdGhlciwgT3B0aW9uU2V0
PFN0eWxlCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZWZmZWN0
aXZlU2tpcHNDb250ZW50KCkgIT0gb3RoZXIuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDI1MGI1NmQwMjA5ZS4uMTI1NGIyYjg0YWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNTk0LDcgKzU5NCwxNSBA
QCB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSogdXNlckFnZW50QXBwZWFyYW5jZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHN0
eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAg
ICBhdXRvIGVmZmVjdGl2ZVNraXBzQ29udGVudCA9IFtdIChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIC0+IGJvb2wgeworICAgICAgICBpZiAoc3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQg
JiYgIWVsZW1lbnQtPmlzUmVsZXZhbnRUb1VzZXIoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH07CisKKyAgICBpZiAoZWZmZWN0aXZlU2tpcHNDb250ZW50KHN0eWxlLCBtX2VsZW1lbnQp
KQogICAgICAgICBzdHlsZS5zZXRFZmZlY3RpdmVTa2lwc0NvbnRlbnQodHJ1ZSk7CiAKICAgICBh
ZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3Moc3R5bGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464444</attachid>
            <date>2023-01-10 11:42:52 -0800</date>
            <delta_ts>2023-01-12 07:49:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230110194250.patch</filename>
            <type>text/plain</type>
            <size>33442</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA3MGNiOGVlMTU4Y2QyZDZmZjYwZmFhMjRhYjAwMjk3NGEwZGZhODUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAxMCBKYW4gMjAyMyAxOToxMDo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCldJUC4KCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0
ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6
OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5
T2JzZXJ2YXRpb24pOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpy
ZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgooV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xs
SWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KToK
KFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQpOgooV2ViQ29yZTo6RWxl
bWVudDo6Zm9jdXMpOgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBj
b25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIgY29uc3QpOgooV2ViQ29yZTo6RWxl
bWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6CihXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
OgooV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKiBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmg6CiogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHA6CihXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcDoKKFdlYkNv
cmU6OkhUTUxEaWFsb2dFbGVtZW50OjpzaG93TW9kYWwpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlv
bkF0QW5jaG9yKToKKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNo
b3VsZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgooV2ViQ29yZTo6
cmFyZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dCk6CiogU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CihXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVz
dCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwOgooV2ViQ29y
ZTo6U3R5bGU6OmRldGVybWluZUNoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
aGFyaW5nUmVzb2x2ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2Fu
U2hhcmVTdHlsZVdpdGhFbGVtZW50IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxMTMgKysrKysrKysrKysrKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAgMjQgKysrKwogU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwgIDQxICsrKysrKysKIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggICAgICAgICAgICAgICAgICB8ICAxNCArKysKIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCAgICAgICAgICB8ICAgMiArCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggICAgICAgICAgICAgfCAgIDEgKwogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgICAgIHwgICA0ICsKIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwICAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAgMTkgKysrCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAgfCAgMTMgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8ICAgNSAtCiAuLi4vV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUNoYW5nZS5jcHAgICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIHwgICAzICsKIExheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICAgNCAtCiAuLi4vY29udGVudC12aXNpYmlsaXR5
LTA0OC1leHBlY3RlZC50eHQgICAgICAgfCAgIDIgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkt
MDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAgMiArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzAtZXhwZWN0ZWQudHh0ICAgICAgIHwgICAzICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQgICAgICAgfCAgMTYgKy0tCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA3
Mi1leHBlY3RlZC50eHQgICAgICAgfCAgIDggKy0KIDIyIGZpbGVzIGNoYW5nZWQsIDI3MSBpbnNl
cnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0
NmQ0YWY0NzgwNWYuLjM0ZmEyNGE1MDA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0x
MzgsNiArMTM4LDcgQEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW50ZXJzZWN0aW9u
T2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmgiCiAj
aW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3RlbmVyLmgiCkBAIC0zNjksNiAr
MzcwLDMzIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEb2N1bWVudCk7CiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAorY2xh
c3MgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIGZpbmFsIDog
cHVibGljIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8Q29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiBjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKGRvY3VtZW50
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzQ2FsbGJhY2soKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVu
dChJbnRlcnNlY3Rpb25PYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxSZWY8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbnRyeT4+JiBlbnRyaWVzLCBJbnRlcnNlY3Rpb25PYnNlcnZlciYpIGZpbmFsCisgICAg
eworICAgICAgICBBU1NFUlQoIWVudHJpZXMuaXNFbXB0eSgpKTsKKworICAgICAgICBmb3IgKGF1
dG8mIGVudHJ5IDogZW50cmllcykgeworICAgICAgICAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBl
bnRyeS0+dGFyZ2V0KCkpCisgICAgICAgICAgICAgICAgZWxlbWVudC0+Y29udGVudFZpc2liaWxp
dHlWaWV3cG9ydENoYW5nZShlbnRyeS0+aXNJbnRlcnNlY3RpbmcoKSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBDb250ZW50VmlzaWJpbGl0eUludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2soRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IEludGVy
c2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soJmRvY3VtZW50KQorICAgIHsKKyAgICB9Cit9OworCiBz
dGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9uRGVwdGggPSAyMTsKIGJvb2wg
RG9jdW1lbnQ6Omhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlID0gZmFsc2U7CiBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZ0FmdGVyTWVk
aWFGaW5pc2hlc1BsYXlpbmcgeyAxX3MgfTsKQEAgLTQ3NzcsNiArNDgwNSwxMSBAQCBib29sIERv
Y3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09w
dGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIG9sZEZvY3VzZWRFbGVtZW50LT5zZXRGb2N1cyhmYWxz
ZSk7CiAgICAgICAgIHNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShudWxscHRyKTsKIAor
ICAgICAgICBmb3IgKGF1dG8gZm9jdXNlZCA9IG9sZEZvY3VzZWRFbGVtZW50OyBmb2N1c2VkOyBm
b2N1c2VkID0gZm9jdXNlZC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChmb2N1c2VkLT5yZW5kZXJlcigpICYmIGZvY3VzZWQtPnJlbmRlcmVyKCktPnN0
eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAg
ICAgICAgICAgICAgICBmb2N1c2VkLT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRl
bnRSZWxldmFuY3lTdGF0dXM6OkZvY3VzZWQsIGZhbHNlKTsKKyAgICAgICAgfQorCiAgICAgICAg
IGlmIChvcHRpb25zLnJlbW92YWxFdmVudHNNb2RlID09IEZvY3VzUmVtb3ZhbEV2ZW50c01vZGU6
OkRpc3BhdGNoKSB7CiAgICAgICAgICAgICAvLyBEaXNwYXRjaCBhIGNoYW5nZSBldmVudCBmb3Ig
Zm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBiZWVuIGVkaXRlZC4KICAgICAgICAgICAg
IGlmIChpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKSB7CkBA
IC00ODU2LDYgKzQ4ODksMTEgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBpZiAo
b3B0aW9ucy50cmlnZ2VyICE9IEZvY3VzVHJpZ2dlcjo6QmluZGluZ3MpCiAgICAgICAgICAgICBt
X2xhdGVzdEZvY3VzVHJpZ2dlciA9IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBmb3IgKGF1
dG8gZm9jdXNlZCA9IG5ld0ZvY3VzZWRFbGVtZW50OyBmb2N1c2VkOyBmb2N1c2VkID0gZm9jdXNl
ZC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgICAgIGlmIChmb2N1
c2VkLT5yZW5kZXJlcigpICYmIGZvY3VzZWQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29udGVudFZp
c2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBm
b2N1c2VkLT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0
dXM6OkZvY3VzZWQsIHRydWUpOworICAgICAgICB9CisKICAgICAgICAgLy8gVGhlIHNldEZvY3Vz
IGNhbGwgdHJpZ2dlcnMgYSBibHVyIGFuZCBhIGZvY3VzIGV2ZW50LiBFdmVudCBoYW5kbGVycyBj
b3VsZCBjYXVzZSB0aGUgZm9jdXNlZCBlbGVtZW50IHRvIGJlIGNsZWFyZWQuCiAgICAgICAgIGlm
IChtX2ZvY3VzZWRFbGVtZW50ICE9IG5ld0ZvY3VzZWRFbGVtZW50KSB7CiAgICAgICAgICAgICAv
LyBoYW5kbGVyIHNoaWZ0ZWQgZm9jdXMKQEAgLTk0MjIsNiArOTQ2MCw4MSBAQCBib29sIERvY3Vt
ZW50OjpsYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2V0dGlu
Z3MtPmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkgJiYgIW1fcXVpcmtzLT5zaG91bGREaXNhYmxl
TGF6eUltYWdlTG9hZGluZ1F1aXJrKCk7CiB9CiAKK0NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRT
dGF0ZSYgRG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpCit7CisgICAg
aWYgKCFtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSkKKyAgICAgICAgbV9jb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgPSBtYWtlVW5pcXVlPENvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZT4oKnRoaXMpOworICAgIHJldHVybiAqbV9jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU7Cit9CisKK0NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCit7Cit9CisKK3ZvaWQgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
OjphZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmIGVsZW1lbnQpCit7Cisg
ICAgaWYgKGF1dG8qIGludGVyc2VjdGlvbk9ic2VydmVyID0gZW5zdXJlSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIoKSkKKyAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXItPm9ic2VydmUoZWxlbWVudCk7
Cit9CisKK3ZvaWQgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpyZW1vdmVDb250ZW50
VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKG1fb2Jz
ZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2ZXItPnVub2JzZXJ2ZShlbGVtZW50KTsKK30KKworSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIqIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJl
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKQoreworICAgIGlmICghbV9vYnNlcnZlcikgeworICAgICAg
ICBhdXRvIGNhbGxiYWNrID0gQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNh
bGxiYWNrOjpjcmVhdGUoKm1fZG9jdW1lbnQpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjayhNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgiMTAwJSIpKTsKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXI6OkluaXQgb3B0aW9ucyB7IHN0ZDo6bnVsbG9wdCwgY29udGVudFZpc2liaWxpdHlSb290TWFy
Z2luRmFsbGJhY2ssIHsgfSB9OworICAgICAgICBhdXRvIG9ic2VydmVyID0gSW50ZXJzZWN0aW9u
T2JzZXJ2ZXI6OmNyZWF0ZSgqbV9kb2N1bWVudCwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUo
b3B0aW9ucykpOworICAgICAgICBpZiAob2JzZXJ2ZXIuaGFzRXhjZXB0aW9uKCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgbV9vYnNlcnZlciA9IG9ic2VydmVyLnJldHVy
blZhbHVlKCkucHRyKCk7CisgICAgfQorICAgIHJldHVybiBtX29ic2VydmVyLmdldCgpOworfQor
Cit2b2lkIERvY3VtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKQorewor
ICAgIGF1dG8gcHJvY2Vzc1NlbGVjdGlvbkNoYW5nZSA9IFtdKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbiwgYm9vbCBzZWxlY3RlZCkgeworICAgICAgICBpZiAoYXV0byByYW5nZSA9
IHNlbGVjdGlvbi5yYW5nZSgpKSB7CisgICAgICAgICAgICBmb3IgKFJlZiBub2RlIDogaW50ZXJz
ZWN0aW5nTm9kZXMoKnJhbmdlKSkgeworICAgICAgICAgICAgICAgIEVsZW1lbnQqIGFuY2VzdG9y
ID0gbm9kZS0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCk7CisgICAgICAgICAgICAgICAg
d2hpbGUgKGFuY2VzdG9yKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+cmVu
ZGVyZXIoKSAmJiBhbmNlc3Rvci0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0
eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoYW5jZXN0b3ItPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKS5jb250YWlucyhDb250ZW50
UmVsZXZhbmN5U3RhdHVzOjpTZWxlY3RlZCkgIT0gc2VsZWN0ZWQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbmNlc3Rvci0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250
ZW50UmVsZXZhbmN5U3RhdHVzOjpTZWxlY3RlZCwgc2VsZWN0ZWQpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFuY2VzdG9yLT5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVu
dEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH07CisgICAgcHJvY2Vzc1NlbGVjdGlvbkNoYW5nZShvbGRTZWxl
Y3Rpb24sIGZhbHNlKTsKKyAgICBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlKG5ld1NlbGVjdGlvbiwg
dHJ1ZSk7Cit9CisKK3ZvaWQgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjppbnZhbGlk
YXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xsSWZOZWVkZWQoRWxlbWVudCogc2Nyb2xs
QW5jaG9yKQoreworICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Zm9yIChhdXRvIHRhcmdldCA6IG1fb2JzZXJ2ZXItPm9ic2VydmF0aW9uVGFyZ2V0cygpKSB7Cisg
ICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LT5yZW5kZXJlcigpICYmIHRhcmdldC0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpB
dXRvKSB7CisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMo
Q29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFsc2UpOworICAgICAgICAgICAgdGFy
Z2V0LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAg
c2Nyb2xsQW5jaG9yLT5pbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9M
T0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODgzZjMyMWY2YzdjLi41ZjA4NzhkMWUyYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzcsNiArMjM3LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291
cmNlOwogY2xhc3MgVHJlZVdhbGtlcjsKIGNsYXNzIFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJp
bGl0eUNoYW5nZUNsaWVudDsKK2NsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVk
TGlua1N0YXRlOwogY2xhc3MgV2FrZUxvY2tNYW5hZ2VyOwogY2xhc3MgV2ViQW5pbWF0aW9uOwpA
QCAtMzU0LDYgKzM1NSwyMyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7
CisKKyAgICB2b2lkIGFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYpOwor
ICAgIHZvaWQgcmVtb3ZlQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50Jik7CisK
KyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJZk5lZWRl
ZChFbGVtZW50KiBzY3JvbGxBbmNob3IpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9i
c2VydmVyKiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVy
c2VjdGlvbk9ic2VydmVyPiBtX29ic2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3Vt
ZW50CiAgICAgOiBwdWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpA
QCAtMTY4Myw2ICsxNzAxLDggQEAgcHVibGljOgogCiAgICAgTGF6eUxvYWRJbWFnZU9ic2VydmVy
JiBsYXp5TG9hZEltYWdlT2JzZXJ2ZXIoKTsKIAorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZSYgY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCk7CisKICAgICB2b2lkIHNl
dEhhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkgeyBtX2hhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50ID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzVmlzdWFsbHlOb25FbXB0eUN1
c3RvbUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21D
b250ZW50OyB9CiAgICAgdm9pZCBlbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CkBA
IC0xNzM4LDYgKzE3NTgsOCBAQCBwdWJsaWM6CiAgICAgRE9NQXVkaW9TZXNzaW9uOjpUeXBlIGF1
ZGlvU2Vzc2lvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvU2Vzc2lvblR5cGU7IH0KICNl
bmRpZgogCisgICAgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG9sZFNlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uKTsKKwog
cHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEs
IE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBE
b2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgRG9jdW1lbnRDbGFz
c2VzID0geyB9LCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDAsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKQEAgLTE5NTUsNiArMTk3Nyw4IEBAIHByaXZhdGU6
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2Fk
SW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworCiAjaWYgIUxP
R19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1bWVudENyZWF0aW9uVGltZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1ZjdmMmUwYjU5Ni4uNTA0NzQ0NjMxZWJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDY5LDYgKzEwNjksOCBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVudCosIExheW91dFJlY3Q+PiBsaXN0Qm94
RWxlbWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9u
YWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKQogewor
ICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuaW52YWxpZGF0
ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTExMzQsNiArMTEzNiw4IEBAIHZv
aWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wKQogCiB2b2lkIEVsZW1l
bnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkKIHsKKyAgICBk
b2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmludmFsaWRhdGVDb250
ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJZk5lZWRlZCh0aGlzKTsKKwogICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJl
bmRlcmVyKCkpCkBAIC0zMzY1LDYgKzMzNjksOCBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGNvbnN0
IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlu
dmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOworCiAgICAgUmVmUHRyPEVs
ZW1lbnQ+IG5ld1RhcmdldCA9IHRoaXM7CiAKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHJlbmRl
cmVyIHlldCwgaXNGb2N1c2FibGUgd2lsbCBjb21wdXRlIGl0IHdpdGhvdXQgc3R5bGUgdXBkYXRl
LgpAQCAtNTIwNSw0ICs1MjExLDM5IEBAIHZvaWQgRWxlbWVudDo6c2V0RGlzcGxheUNvbnRlbnRz
Q2hhbmdlZChib29sIGNoYW5nZWQpCiAgICAgc2V0RXZlbnRUYXJnZXRGbGFnKEV2ZW50VGFyZ2V0
RmxhZzo6RGlzcGxheUNvbnRlbnRzQ2hhbmdlZCwgY2hhbmdlZCk7CiB9CiAKK09wdGlvblNldDxD
b250ZW50UmVsZXZhbmN5U3RhdHVzPiBFbGVtZW50Ojpjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgcmV0dXJuIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCk7Cit9
CisKK3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIHN0YXR1cywgYm9vbCB2YWx1ZSkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFy
ZURhdGEoKS5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuc2V0KHN0YXR1cywgdmFsdWUpOworfQor
Citib29sIEVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdAoreworICAgIHJldHVybiBo
YXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZhbmN5U3RhdHVz
KCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShi
b29sIGlzSW50ZXJzZWN0aW5nKQoreworICAgIGlmIChjb250ZW50UmVsZXZhbmN5U3RhdHVzKCku
Y29udGFpbnMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSkgIT0gaXNJbnRlcnNlY3Rp
bmcpIHsKKyAgICAgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZh
bmN5U3RhdHVzOjpWaXNpYmxlLCBpc0ludGVyc2VjdGluZyk7CisgICAgICAgIGludmFsaWRhdGVT
dHlsZSgpOworICAgIH0KK30KKwordm9pZCBFbGVtZW50OjppbnZhbGlkYXRlQ29udGVudFZpc2li
aWxpdHlBdXRvSWZOZWVkZWQoKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJn
ZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAg
ICAgICAgaWYgKHRhcmdldC0+cmVuZGVyZXIoKSAmJiB0YXJnZXQtPnJlbmRlcmVyKCktPnN0eWxl
KCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAg
ICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOworICAgICAgICAgICAgdGFyZ2V0LT5pbnZhbGlk
YXRlU3R5bGUoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYjc3MTY3NDJjMTM1Li5lZDUxOWYzMThlNmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtMTA0LDYgKzEwNCwxMiBAQCBzdHJ1Y3QgU2hhZG93Um9vdEluaXQ7
CiAKIHVzaW5nIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAgPSBIYXNoTWFwPFF1YWxpZmll
ZE5hbWUsIFZlY3RvcjxXZWFrUHRyPEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0
RGF0YT4+PjsKIAorZW51bSBjbGFzcyBDb250ZW50UmVsZXZhbmN5U3RhdHVzIDogdWludDhfdCB7
CisgICAgVmlzaWJsZSA9IDEgPDwgMCwKKyAgICBGb2N1c2VkID0gMSA8PCAxLAorICAgIFNlbGVj
dGVkID0gMSA8PCAyLAorfTsKKwogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwog
ZW51bSBjbGFzcyBDaGFuZ2UgOiB1aW50OF90OwpAQCAtNzE5LDYgKzcyNSwxNCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBkaXNwbGF5Q29udGVudHNDaGFuZ2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRE
aXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgPSB0cnVlKTsKIAorICAgIE9wdGlvblNldDxDb250
ZW50UmVsZXZhbmN5U3RhdHVzPiBjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkgY29uc3Q7CisgICAg
dm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMs
IGJvb2wpOworICAgIGJvb2wgaXNSZWxldmFudFRvVXNlcigpIGNvbnN0OworCisgICAgdm9pZCBj
b250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wpOworCisgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKKwogcHJvdGVjdGVkOgogICAgIEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA1MzM3MDJjNmRkN2EuLjk4
YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMTIzLDYg
KzEyMyw4IEBAIHB1YmxpYzoKIAogICAgIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAmIGV4
cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAoKSB7IHJldHVybiBtX2V4cGxpY2l0bHlTZXRBdHRy
RWxlbWVudHNNYXA7IH0KIAorICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiYg
Y29udGVudFJlbGV2YW5jeVN0YXR1cygpIHsgcmV0dXJuIG1fY29udGVudFJlbGV2YW5jeVN0YXR1
czsgfQorCiAjaWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKICAgICBPcHRpb25TZXQ8VXNlVHlwZT4g
dXNlVHlwZXMoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBk
NDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApA
QCAtMzI2LDYgKzMyNiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBVc2VkIGJ5IEVsZW1lbnRSYXJl
RGF0YS4gRGVmaW5lZCBoZXJlIGZvciBiZXR0ZXIgcGFja2luZyBpbiA2NC1iaXQuCiAgICAgaW50
IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRl
eCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4gbV9jb250ZW50
UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2YXRlOgogICAgIGJvb2wgbV9pc0VsZW1lbnRSYXJlRGF0
YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMmJhY2Ri
YjI3NWU0Li44OTg4NGY4NTNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCkBAIC00NTMsNiArNDUzLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKIHsK
ICAgICBMT0dfV0lUSF9TVFJFQU0oU2VsZWN0aW9uLCBzdHJlYW0gPDwgIkZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb24gIiA8PCBzZWxlY3Rpb24pOwogCisgICAgVmlzaWJsZVNlbGVjdGlvbiBv
bGRTZWxlY3Rpb24gPSBtX3NlbGVjdGlvbjsKKwogICAgIFJlZlB0ciBwcm90ZWN0ZWREb2N1bWVu
dCB7IG1fZG9jdW1lbnQuZ2V0KCkgfTsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC00NzAsNiArNDcyLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgT3B0aW9uU2V0
PFMKICAgICBtX3NlbGVjdGlvblJldmVhbEludGVudCA9IGludGVudDsKICAgICBtX3BlbmRpbmdT
ZWxlY3Rpb25VcGRhdGUgPSB0cnVlOwogCisgICAgcHJvdGVjdGVkRG9jdW1lbnQtPnNlbGVjdGlv
bkNoYW5nZWQob2xkU2VsZWN0aW9uLCBtX3NlbGVjdGlvbik7CisKICAgICBpZiAocHJvdGVjdGVk
RG9jdW1lbnQtPmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKaW5kZXggZmM5MWQyM2ZkYzkz
Li43NDY0OThhNTEzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxv
Z0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQu
Y3BwCkBAIC03OSw4ICs3OSwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVu
dDo6c2hvd01vZGFsKCkKIAogICAgIHNldElzTW9kYWwodHJ1ZSk7CiAKLSAgICBpZiAoIWlzSW5U
b3BMYXllcigpKQorICAgIGlmICghaXNJblRvcExheWVyKCkpIHsKKyAgICAgICAgaW52YWxpZGF0
ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CiAgICAgICAgIGFkZFRvVG9wTGF5ZXIo
KTsKKyAgICB9CiAKICAgICBtX3ByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50KCku
Zm9jdXNlZEVsZW1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDc1OGE4
N2ZlYTBmNy4uMDE3ZWM3MjJlNDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0y
Mzc4LDYgKzIzNzgsOSBAQCB2b2lkIEZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0
QW5jaG9yKENvbnRhaW5lck5vZGUqIGFuY2hvck5vZGUpCiAKICAgICBjYW5jZWxTY2hlZHVsZWRT
Y3JvbGxzKCk7CiAKKyAgICBpZiAoaXM8RWxlbWVudD4oYW5jaG9yTm9kZSkpCisgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmludmFs
aWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJZk5lZWRlZChkb3duY2FzdDxFbGVt
ZW50PihhbmNob3JOb2RlKSk7CisKICAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgbGF5b3V0
IGJlZm9yZSBzY3JvbGxpbmcsIG90aGVyd2lzZSB3ZSBjb3VsZAogICAgIC8vIHJlYWxseSBtZXNz
IHRoaW5ncyB1cCBpZiBhbiBhbmNob3Igc2Nyb2xsIGNvbWVzIGF0IGEgYmFkIG1vbWVudC4KICAg
ICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CkBAIC0yNjAxLDgg
KzI2MDQsMTIgQEAgYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5
b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBjb25zdCBSZW5kZXIKICAgICBpZiAob3B0aW9ucy5yZXZl
YWxNb2RlID09IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAocmVuZGVyZXIuaXNTa2lwcGVkQ29udGVudCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHJlbmRlcmVyLmlzU2tpcHBlZENvbnRlbnQoKSkgewor
ICAgICAgICBmb3IgKGF1dG8gdGFyZ2V0ID0gcmVuZGVyZXIucGFyZW50KCk7IHRhcmdldDsgdGFy
Z2V0ID0gdGFyZ2V0LT5wYXJlbnQoKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldC0+c3R5bGUo
KS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQogCiAgICAgYXV0byog
bGF5ZXIgPSByZW5kZXJlci5lbmNsb3NpbmdMYXllcigpOwogICAgIGlmICghbGF5ZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMThlNjlkZWM0MjYz
Li4xMzAwM2JlZWMwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKQEAgLTgxOSw2ICs4MTksMTMgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGlmIChtX3N0eWxlLmNvbnRlbnRWaXNpYmls
aXR5KCkgIT0gbmV3U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSAmJiBlbGVtZW50KCkpIHsKKyAg
ICAgICAgICAgIGlmIChtX3N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUoKS5yZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKCplbGVt
ZW50KCkpOworICAgICAgICAgICAgZWxzZSBpZiAobmV3U3R5bGUuY29udGVudFZpc2liaWxpdHko
KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgp
LmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmFkZENvbnRlbnRWaXNpYmlsaXR5T2Jz
ZXJ2YXRpb24oKmVsZW1lbnQoKSk7CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIG5lZWRzSW52
YWxpZGF0ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmVmZmVj
dGl2ZVBvaW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04NjQsNiArODcxLDkgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgc2V0SGFzTm9uVmlzaWJsZU92ZXJmbG93KGZhbHNl
KTsKICAgICAgICAgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KGZhbHNlKTsKICAgICAg
ICAgc2V0SGFzUmVmbGVjdGlvbihmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG5l
d1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8gJiYg
ZWxlbWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUoKS5hZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKCplbGVtZW50KCkpOwog
ICAgIH0KIAogICAgIGJvb2wgaGFkT3V0bGluZSA9IG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNP
dXRsaW5lKCk7CkBAIC0yMjA4LDQgKzIyMTgsMTMgQEAgRmxvYXRSZWN0IFJlbmRlckVsZW1lbnQ6
OnJlZmVyZW5jZUJveFJlY3QoQ1NTQm94VHlwZSBib3hUeXBlKSBjb25zdAogICAgIHJldHVybiB7
IH07CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAor
eworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUoKS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgIWVsZW1lbnQoKS0+aXNSZWxldmFu
dFRvVXNlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
aAppbmRleCA2ZmVkOGZiYmNlMDYuLjhmNjEwMTczOTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMTIsNiArMzEyLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBlc3RhYmxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25z
dDsKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCisgICAg
Ym9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBC
YXNlVHlwZUZsYWcgewogICAgICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0RmxhZyAgPSAxIDw8
IDAsCkBAIC01MzksNyArNTQxLDkgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBSZW5k
ZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5zU2l6
ZSgpIHx8IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
SGlkZGVuKTsKKyAgICBpZiAoc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgp
LmNvbnRhaW5zU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdApAQCAtNjUxLDYgKzY1NSwxMyBAQCBp
bmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJFbGVtZW50OjpsYXN0SW5GbG93Q2hpbGQoKSBjb25z
dAogICAgIHJldHVybiBudWxscHRyOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OnNo
b3VsZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoaXNUZXh0KCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRoaXMpLnNo
b3VsZFNraXBDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlckVsZW1lbnQsIGlzUmVuZGVyRWxl
bWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA0
ZmQ5ZDBmYjgzNjUuLjM1NDgwZTQwYjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKQEAgLTI2MzcsMTEgKzI2MzcsNiBAQCBib29sIFJlbmRlck9iamVjdDo6
aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVudCgpICYmIHBhcmVudCgp
LT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOwogfQogCi1ib29sIFJlbmRlck9iamVj
dDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiBzdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsKLX0KLQogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBlZTkyODBi
OGYxNzcuLjM4ZDM4ZDBlMTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjUsNiArODY1LDcgQEAgc3RhdGljIGJvb2wgcmFyZUlu
aGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJgogICAgICAgICB8fCBmaXJzdC5saW5lU25hcCAhPSBzZWNvbmQubGluZVNuYXAKICAgICAg
ICAgfHwgZmlyc3QubGluZUFsaWduICE9IHNlY29uZC5saW5lQWxpZ24KICAgICAgICAgfHwgZmly
c3QuaGFuZ2luZ1B1bmN0dWF0aW9uICE9IHNlY29uZC5oYW5naW5nUHVuY3R1YXRpb24KKyAgICAg
ICAgfHwgZmlyc3QuZWZmZWN0aXZlU2tpcHNDb250ZW50ICE9IHNlY29uZC5lZmZlY3RpdmVTa2lw
c0NvbnRlbnQKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQogICAgICAgICB8
fCBmaXJzdC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nICE9IHNlY29uZC51c2VUb3VjaE92ZXJm
bG93U2Nyb2xsaW5nCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAK
aW5kZXggMjUwYjU2ZDAyMDllLi4xMjU0YjJiODRhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCkBAIC01OTQsNyArNTk0LDE1IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVz
dChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJh
bmNlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHko
KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgIGF1dG8gZWZmZWN0aXZlU2tpcHND
b250ZW50ID0gW10gKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxl
bWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09
IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8pCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAhZWxlbWVudC0+aXNSZWxldmFu
dFRvVXNlcigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIGlmIChlZmZl
Y3RpdmVTa2lwc0NvbnRlbnQoc3R5bGUsIG1fZWxlbWVudCkpCiAgICAgICAgIHN0eWxlLnNldEVm
ZmVjdGl2ZVNraXBzQ29udGVudCh0cnVlKTsKIAogICAgIGFkanVzdEZvclNpdGVTcGVjaWZpY1F1
aXJrcyhzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5n
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAKaW5kZXggZjk2MWE4
MjZiMDc4Li5lYmNkYWIzNjhiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQ2hhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAK
QEAgLTU3LDYgKzU3LDkgQEAgQ2hhbmdlIGRldGVybWluZUNoYW5nZShjb25zdCBSZW5kZXJTdHls
ZSYgczEsIGNvbnN0IFJlbmRlclN0eWxlJiBzMikKICAgICBpZiAoczEuaGFzVGV4dENvbWJpbmUo
KSAhPSBzMi5oYXNUZXh0Q29tYmluZSgpKQogICAgICAgICByZXR1cm4gQ2hhbmdlOjpSZW5kZXJl
cjsKIAorICAgIGlmIChzMS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAhPSBzMi5lZmZlY3RpdmVT
a2lwc0NvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIENoYW5nZTo6SW5oZXJpdGVkOworCiAgICAg
Ly8gUXVlcnkgY29udGFpbmVyIGNoYW5nZXMgYWZmZWN0IGRlc2NlbmRhbnQgc3R5bGUuCiAgICAg
aWYgKHMxLmNvbnRhaW5lclR5cGUoKSAhPSBzMi5jb250YWluZXJUeXBlKCkgfHwgczEuY29udGFp
bmVyTmFtZXMoKSAhPSBzMi5jb250YWluZXJOYW1lcygpKQogICAgICAgICByZXR1cm4gQ2hhbmdl
OjpEZXNjZW5kYW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hh
cmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29s
dmVyLmNwcAppbmRleCBmYzEyZWVkODRmMmQuLjU2ZTU4YmUxODE3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjU4LDYgKzI1OCw5IEBA
IGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgaWYgKGVsZW1lbnRIYXNEaXJlY3Rpb25BdXRv
KGNhbmRpZGF0ZUVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoY2Fu
ZGlkYXRlRWxlbWVudC5pc1JlbGV2YW50VG9Vc2VyKCkgIT0gZWxlbWVudC5pc1JlbGV2YW50VG9V
c2VyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50
LmlzTGluaygpICYmIGNvbnRleHQuZWxlbWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+aW5zaWRlTGlu
aygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDExODZj
NThhMTc2Ni4uMTQxZWM2NTQ0ZDA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4MTEsMTEgKzQ4
MTEsNyBAQCB3ZWJhbmltYXRpb25zL3RyYW5zbGF0ZS1wcm9wZXJ0eS1hbmQtdHJhbnNsYXRlLWFu
aW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNlZC1sYQogIyBDU1MgY29udGFpbm1lbnQgdGVzdHMg
dGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluLWlubGluZS1zaXplLWJmYy1mbG9hdHMtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLSMg
Zm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNr
aXAgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktYXV0
by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVj
dGVkLnR4dAppbmRleCBjZmQ4N2JkMjFmODYuLjhhMmY2MjYyNGE2ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAogRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29u
dGVudC12aXNpYmlsaXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29u
dGVudC12aXNpYmlsaXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0MiIgYnV0IGdvdCAidW5rbm93biIKK0ZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3
aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2NrcyBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAidGV4dDIiIGJ1dCBnb3QgInRleHQzIgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKaW5k
ZXggNThlMzY1ZWIzMWFjLi5iNjIyNGY5MDY0NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzIGFz
c2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorUEFTUyBD
b250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGEzZTU5MDZkNmMzZi4uYWFkYjQ1YzQxYzljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsMyBAQAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4g
c2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0IGdv
dCAxMAorUEFTUyBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcx
LWV4cGVjdGVkLnR4dAppbmRleCA0NGEyOTM2NTAzNjEuLjNjM2YwY2EzMzk1ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4
cGVjdGVkLnR4dApAQCAtMSwxMyArMSw5IEBACiBoZWxsbwotaGVsbG8KLWhlbGxvCi1oZWxsbwot
aGVsbG8KIAotRkFJTCBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVt
ZW50czogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBz
aHJ1bmsgdG8gY292ZXIgZmV3ZXIgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6ICBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9t
IGZyb250IHRvIGJhY2s6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUmFuZ2UgZ29lcyBiYWNrIGFuZCBmb3J0aDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorUEFTUyBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6CitQQVNTIFJhbmdlIGV4dGVu
ZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6CitQQVNTIFJhbmdlIHNocnVuayB0byBjb3ZlciBm
ZXdlciBlbGVtZW50czoKK1BBU1MgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6CitQ
QVNTIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOgorUEFTUyBSYW5nZSBnb2VzIGJh
Y2sgYW5kIGZvcnRoOgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKaW5kZXggMDBmMWM3ZjQ0NDE4Li5mOTUx
OGJjZmUwNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1Mgb25l
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgotRkFJTCB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCi1GQUlMIHRo
cmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAz
MDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmb3VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNz
ZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmaXZlLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBn
b3QgMzA0MQorUEFTUyB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQQVNTIHRocmVlLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmb3VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OgorUEFTUyBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464468</attachid>
            <date>2023-01-12 07:49:27 -0800</date>
            <delta_ts>2023-01-13 01:53:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230112154925.patch</filename>
            <type>text/plain</type>
            <size>33939</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBjMTI1ZWEwNjI0MjYxM2UyMDA2NDNhMzUxYmIxZDViOTVhYmZiYmNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAxMCBKYW4gMjAyMyAxOToxMDo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCldJUC4KCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0
ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6
OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5
T2JzZXJ2YXRpb24pOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpy
ZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgooV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xs
SWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KToK
KFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQpOgooV2ViQ29yZTo6RWxl
bWVudDo6Zm9jdXMpOgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBj
b25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIgY29uc3QpOgooV2ViQ29yZTo6RWxl
bWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6CihXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
OgooV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKiBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmg6CiogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHA6CihXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcDoKKFdlYkNv
cmU6OkhUTUxEaWFsb2dFbGVtZW50OjpzaG93TW9kYWwpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlv
bkF0QW5jaG9yKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6
CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRB
cHBseVNpemVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNob3Vs
ZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3Qp
OiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CihXZWJDb3JlOjpyYXJlSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpB
ZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJp
bmdSZXNvbHZlci5jcHA6IGRvIG5vdCBzaGFyZSBzdHlsZXMgd2l0aCBkaWZmZXJlbnQgaXNSZWxl
dmFudFRvVXNlciB2YWx1ZXMKKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5nUmVzb2x2ZXI6OmNhblNo
YXJlU3R5bGVXaXRoRWxlbWVudCBjb25zdCk6Ci0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCAgICAgICAgICAgICAgIHwgMTEzICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDI0ICsrKysKIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAgICAgICAgICB8ICA0MiArKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAgMTQgKysrCiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggICAgICAgICAgfCAgIDIgKwogU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oICAgICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwICAgICB8ICAgNCArCiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAgMTkgKysrCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAgfCAgMTMgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8ICAgNSAtCiAuLi4vV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgIDMgKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5
LTA0OC1leHBlY3RlZC50eHQgICAgICAgfCAgIDIgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkt
MDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAgMiArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0w
NjguaHRtbCAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA3
MC1leHBlY3RlZC50eHQgICAgICAgfCAgIDMgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcx
LWV4cGVjdGVkLnR4dCAgICAgICB8ICAxNiArLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcy
LWV4cGVjdGVkLnR4dCAgICAgICB8ICAgOCArLQogMjIgZmlsZXMgY2hhbmdlZCwgMjY3IGluc2Vy
dGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2
ZDRhZjQ3ODA1Zi4uMzRmYTI0YTUwMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEz
OCw2ICsxMzgsNyBAQAogI2luY2x1ZGUgIkltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRlcnNlY3Rpb25P
YnNlcnZlci5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlzdGVuZXIuaCIKQEAgLTM2OSw2ICsz
NzAsMzMgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCitjbGFz
cyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgZmluYWwgOiBw
dWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soZG9jdW1lbnQp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50
KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNl
cnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVyc2VjdGlvbk9ic2VydmVyJikgZmluYWwKKyAgICB7
CisgICAgICAgIEFTU0VSVCghZW50cmllcy5pc0VtcHR5KCkpOworCisgICAgICAgIGZvciAoYXV0
byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IGVu
dHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50LT5jb250ZW50VmlzaWJpbGl0
eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0ludGVyc2VjdGluZygpKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9jdW1lbnQpCisgICAgeworICAgIH0KK307CisKIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1cnNpb25EZXB0aCA9IDIxOwogYm9vbCBE
b2N1bWVudDo6aGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGUgPSBmYWxzZTsKIHN0YXRpYyBj
b25zdCBTZWNvbmRzIG1heEludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nQWZ0ZXJNZWRp
YUZpbmlzaGVzUGxheWluZyB7IDFfcyB9OwpAQCAtNDc3Nyw2ICs0ODA1LDExIEBAIGJvb2wgRG9j
dW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0
aW9ucyYgb3B0aW9ucykKICAgICAgICAgb2xkRm9jdXNlZEVsZW1lbnQtPnNldEZvY3VzKGZhbHNl
KTsKICAgICAgICAgc2V0Rm9jdXNOYXZpZ2F0aW9uU3RhcnRpbmdOb2RlKG51bGxwdHIpOwogCisg
ICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gb2xkRm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZv
Y3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAg
ICAgICAgaWYgKGZvY3VzZWQtPnJlbmRlcmVyKCkgJiYgZm9jdXNlZC0+cmVuZGVyZXIoKS0+c3R5
bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAg
ICAgICAgICAgICAgIGZvY3VzZWQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVu
dFJlbGV2YW5jeVN0YXR1czo6Rm9jdXNlZCwgZmFsc2UpOworICAgICAgICB9CisKICAgICAgICAg
aWYgKG9wdGlvbnMucmVtb3ZhbEV2ZW50c01vZGUgPT0gRm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6
RGlzcGF0Y2gpIHsKICAgICAgICAgICAgIC8vIERpc3BhdGNoIGEgY2hhbmdlIGV2ZW50IGZvciBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIGJlZW4gZWRpdGVkLgogICAgICAgICAgICAg
aWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpIHsKQEAg
LTQ4NTYsNiArNDg4OSwxMSBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIGlmIChv
cHRpb25zLnRyaWdnZXIgIT0gRm9jdXNUcmlnZ2VyOjpCaW5kaW5ncykKICAgICAgICAgICAgIG1f
bGF0ZXN0Rm9jdXNUcmlnZ2VyID0gb3B0aW9ucy50cmlnZ2VyOwogCisgICAgICAgIGZvciAoYXV0
byBmb2N1c2VkID0gbmV3Rm9jdXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2Vk
LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGZvY3Vz
ZWQtPnJlbmRlcmVyKCkgJiYgZm9jdXNlZC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50Vmlz
aWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGZv
Y3VzZWQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1
czo6Rm9jdXNlZCwgdHJ1ZSk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBUaGUgc2V0Rm9jdXMg
Y2FsbCB0cmlnZ2VycyBhIGJsdXIgYW5kIGEgZm9jdXMgZXZlbnQuIEV2ZW50IGhhbmRsZXJzIGNv
dWxkIGNhdXNlIHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8gYmUgY2xlYXJlZC4KICAgICAgICAgaWYg
KG1fZm9jdXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVsZW1lbnQpIHsKICAgICAgICAgICAgIC8v
IGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpAQCAtOTQyMiw2ICs5NDYwLDgxIEBAIGJvb2wgRG9jdW1l
bnQ6OmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9zZXR0aW5n
cy0+bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSAmJiAhbV9xdWlya3MtPnNob3VsZERpc2FibGVM
YXp5SW1hZ2VMb2FkaW5nUXVpcmsoKTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkKK3sKKyAgICBp
ZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKQorICAgICAgICBtX2NvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlxdWU8Q29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICptX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAg
ICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNl
cnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2ZShlbGVtZW50KTsK
K30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRW
aXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAobV9vYnNl
cnZlcikKKyAgICAgICAgbV9vYnNlcnZlci0+dW5vYnNlcnZlKGVsZW1lbnQpOworfQorCitJbnRl
cnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJ
bnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYgKCFtX29ic2VydmVyKSB7CisgICAgICAg
IGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2Fs
bGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZl
cjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJn
aW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShv
cHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXIucmV0dXJu
VmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisK
K3ZvaWQgRG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
b2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pCit7Cisg
ICAgYXV0byBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlID0gW10oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uLCBib29sIHNlbGVjdGVkKSB7CisgICAgICAgIGlmIChhdXRvIHJhbmdlID0g
c2VsZWN0aW9uLnJhbmdlKCkpIHsKKyAgICAgICAgICAgIGZvciAoUmVmIG5vZGUgOiBpbnRlcnNl
Y3RpbmdOb2RlcygqcmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgRWxlbWVudCogYW5jZXN0b3Ig
PSBub2RlLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKTsKKyAgICAgICAgICAgICAgICB3
aGlsZSAoYW5jZXN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFuY2VzdG9yLT5yZW5k
ZXJlcigpICYmIGFuY2VzdG9yLT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5
KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChhbmNlc3Rvci0+Y29udGVudFJlbGV2YW5jeVN0YXR1cygpLmNvbnRhaW5zKENvbnRlbnRS
ZWxldmFuY3lTdGF0dXM6OlNlbGVjdGVkKSAhPSBzZWxlY3RlZCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFuY2VzdG9yLT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRl
bnRSZWxldmFuY3lTdGF0dXM6OlNlbGVjdGVkLCBzZWxlY3RlZCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5jZXN0b3ItPmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfTsKKyAgICBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlKG9sZFNlbGVj
dGlvbiwgZmFsc2UpOworICAgIHByb2Nlc3NTZWxlY3Rpb25DaGFuZ2UobmV3U2VsZWN0aW9uLCB0
cnVlKTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmludmFsaWRh
dGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJZk5lZWRlZChFbGVtZW50KiBzY3JvbGxB
bmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJnZXRzKCkpIHsKKyAg
ICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJl
cigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1
dG8pIHsKKyAgICAgICAgICAgIHRhcmdldC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhD
b250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCBmYWxzZSk7CisgICAgICAgICAgICB0YXJn
ZXQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBz
Y3JvbGxBbmNob3ItPmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVOVF9SRUxFQVNFX0xP
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNmMzIxZjZjN2MuLjVmMDg3OGQxZTJiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBjbGFzcyBUcmFuc2Zvcm1Tb3Vy
Y2U7CiBjbGFzcyBUcmVlV2Fsa2VyOwogY2xhc3MgVW5kb01hbmFnZXI7CiBjbGFzcyBWaXNpYmls
aXR5Q2hhbmdlQ2xpZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2l0ZWRM
aW5rU3RhdGU7CiBjbGFzcyBXYWtlTG9ja01hbmFnZXI7CiBjbGFzcyBXZWJBbmltYXRpb247CkBA
IC0zNTQsNiArMzU1LDIzIEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0
ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmKTsK
KworICAgIHZvaWQgYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZhdGlvbihFbGVtZW50Jik7Cisg
ICAgdm9pZCByZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKEVsZW1lbnQmKTsKKwor
ICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElmTmVlZGVk
KEVsZW1lbnQqIHNjcm9sbEFuY2hvcik7CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0
ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1l
bnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBA
IC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXIm
IGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0
SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0
eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNv
bnRlbnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAg
LTE3MzgsNiArMTc1OCw4IEBAIHB1YmxpYzoKICAgICBET01BdWRpb1Nlc3Npb246OlR5cGUgYXVk
aW9TZXNzaW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9TZXNzaW9uVHlwZTsgfQogI2Vu
ZGlmCiAKKyAgICB2b2lkIHNlbGVjdGlvbkNoYW5nZWQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
b2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24pOworCiBw
cm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwg
Tm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIERv
Y3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmLCBEb2N1bWVudENsYXNz
ZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgPSB7IH0pOwpAQCAtMTk1NSw2ICsxOTc3LDggQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJ
bWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU7CisKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzVmN2YyZTBiNTk2Li41MjU1ODFiMTAwYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEwNjksNiArMTA2OSw4IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJFbGVtZW50KiwgTGF5b3V0UmVjdD4+IGxpc3RCb3hF
bGVtZW50U2Nyb2xsCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcmcpCiB7Cisg
ICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5pbnZhbGlkYXRl
Q29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xsSWZOZWVkZWQodGhpcyk7CisKICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVu
ZGVyRWxlbWVudCogcmVuZGVyZXIgPSBudWxscHRyOwpAQCAtMTEzNCw2ICsxMTM2LDggQEAgdm9p
ZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhib29sIGFsaWduVG9Ub3ApCiAKIHZvaWQgRWxlbWVu
dDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQogeworICAgIGRv
Y3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuaW52YWxpZGF0ZUNvbnRl
bnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmICghcmVu
ZGVyZXIoKSkKQEAgLTMzNjUsNiArMzM2OSw4IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoY29uc3Qg
Rm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaW52
YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CisKICAgICBSZWZQdHI8RWxl
bWVudD4gbmV3VGFyZ2V0ID0gdGhpczsKIAogICAgIC8vIElmIHdlIGRvbid0IGhhdmUgcmVuZGVy
ZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxsIGNvbXB1dGUgaXQgd2l0aG91dCBzdHlsZSB1cGRhdGUu
CkBAIC01MjA1LDQgKzUyMTEsNDAgQEAgdm9pZCBFbGVtZW50OjpzZXREaXNwbGF5Q29udGVudHND
aGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAgICBzZXRFdmVudFRhcmdldEZsYWcoRXZlbnRUYXJnZXRG
bGFnOjpEaXNwbGF5Q29udGVudHNDaGFuZ2VkLCBjaGFuZ2VkKTsKIH0KIAorT3B0aW9uU2V0PENv
bnRlbnRSZWxldmFuY3lTdGF0dXM+IEVsZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKSBj
b25zdAoreworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKTsKK30K
Kwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGVuc3VyZUVsZW1lbnRSYXJl
RGF0YSgpLmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKS5zZXQoc3RhdHVzLCB2YWx1ZSk7Cit9CisK
K2Jvb2wgRWxlbWVudDo6aXNSZWxldmFudFRvVXNlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMo
KTsKK30KKwordm9pZCBFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJv
b2wgaXNJbnRlcnNlY3RpbmcpCit7CisgICAgaWYgKGNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKS5j
b250YWlucyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlKSAhPSBpc0ludGVyc2VjdGlu
ZykgeworICAgICAgICB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFu
Y3lTdGF0dXM6OlZpc2libGUsIGlzSW50ZXJzZWN0aW5nKTsKKyAgICAgICAgaW52YWxpZGF0ZVN0
eWxlKCk7CisgICAgfQorfQorCit2b2lkIEVsZW1lbnQ6OmludmFsaWRhdGVDb250ZW50VmlzaWJp
bGl0eUF1dG9JZk5lZWRlZCgpCit7CisgICAgZm9yIChhdXRvIHRhcmdldCA9IHRoaXM7IHRhcmdl
dDsgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAg
ICAgICBpZiAodGFyZ2V0LT5yZW5kZXJlcigpICYmIHRhcmdldC0+cmVuZGVyZXIoKS0+c3R5bGUo
KS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAg
ICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2
YW5jeVN0YXR1czo6VmlzaWJsZSwgdHJ1ZSk7CisgICAgICAgICAgICB0YXJnZXQtPmludmFsaWRh
dGVTdHlsZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBiNzcxNjc0MmMxMzUu
LmVkNTE5ZjMxOGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0xMDQsNiArMTA0LDEyIEBAIHN0
cnVjdCBTaGFkb3dSb290SW5pdDsKIAogdXNpbmcgRXhwbGljaXRseVNldEF0dHJFbGVtZW50c01h
cCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWVudCwgV2Vha1B0
ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPj4+OwogCitlbnVtIGNsYXNzIENvbnRlbnRSZWxldmFu
Y3lTdGF0dXMgOiB1aW50OF90IHsKKyAgICBWaXNpYmxlID0gMSA8PCAwLAorICAgIEZvY3VzZWQg
PSAxIDw8IDEsCisgICAgU2VsZWN0ZWQgPSAxIDw8IDIsCit9OworCiBuYW1lc3BhY2UgU3R5bGUg
ewogY2xhc3MgUmVzb2x2ZXI7CiBlbnVtIGNsYXNzIENoYW5nZSA6IHVpbnQ4X3Q7CkBAIC03MTks
NiArNzI1LDE0IEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BsYXlDb250ZW50c0NoYW5nZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldERpc3BsYXlDb250ZW50c0NoYW5nZWQoYm9vbCA9IHRydWUpOwog
CisgICAgT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IGNvbnRlbnRSZWxldmFuY3lT
dGF0dXMoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29u
dGVudFJlbGV2YW5jeVN0YXR1cywgYm9vbCk7CisgICAgYm9vbCBpc1JlbGV2YW50VG9Vc2VyKCkg
Y29uc3Q7CisKKyAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCk7
CisKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOwor
CiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
LCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmlu
ZGV4IDUzMzcwMmM2ZGQ3YS4uOThiZGFhNDc5MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCkBAIC0xMjMsNiArMTIzLDggQEAgcHVibGljOgogCiAgICAgRXhwbGljaXRseVNl
dEF0dHJFbGVtZW50c01hcCYgZXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcCgpIHsgcmV0dXJu
IG1fZXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcDsgfQogCisgICAgT3B0aW9uU2V0PENvbnRl
bnRSZWxldmFuY3lTdGF0dXM+JiBjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkgeyByZXR1cm4gbV9j
b250ZW50UmVsZXZhbmN5U3RhdHVzOyB9CisKICNpZiBEVU1QX05PREVfU1RBVElTVElDUwogICAg
IE9wdGlvblNldDxVc2VUeXBlPiB1c2VUeXBlcygpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oCmluZGV4IGQ0NTlkMDk3MzlkYS4uMDdlYWUxODQwYzkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0zMjYsNiArMzI2LDcgQEAgcHJvdGVjdGVkOgogICAgIC8v
IFVzZWQgYnkgRWxlbWVudFJhcmVEYXRhLiBEZWZpbmVkIGhlcmUgZm9yIGJldHRlciBwYWNraW5n
IGluIDY0LWJpdC4KICAgICBpbnQgbV91bnVzdWFsVGFiSW5kZXggeyAwIH07CiAgICAgdW5zaWdu
ZWQgc2hvcnQgbV9jaGlsZEluZGV4IHsgMCB9OworICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZh
bmN5U3RhdHVzPiBtX2NvbnRlbnRSZWxldmFuY3lTdGF0dXM7CiAKIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzRWxlbWVudFJhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcAppbmRleCAyYmFjZGJiMjc1ZTQuLjg5ODg0Zjg1M2ExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTQ1Myw2ICs0NTMsOCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBPcHRpb25TZXQ8UwogewogICAgIExPR19XSVRIX1NUUkVBTShTZWxlY3Rpb24sIHN0cmVh
bSA8PCAiRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbiAiIDw8IHNlbGVjdGlvbik7CiAKKyAg
ICBWaXNpYmxlU2VsZWN0aW9uIG9sZFNlbGVjdGlvbiA9IG1fc2VsZWN0aW9uOworCiAgICAgUmVm
UHRyIHByb3RlY3RlZERvY3VtZW50IHsgbV9kb2N1bWVudC5nZXQoKSB9OwogICAgIGlmICghc2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFs
aWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ3MCw2ICs0NzIsOCBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBPcHRpb25TZXQ8UwogICAgIG1fc2VsZWN0aW9uUmV2ZWFsSW50ZW50ID0gaW50
ZW50OwogICAgIG1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSA9IHRydWU7CiAKKyAgICBwcm90ZWN0
ZWREb2N1bWVudC0+c2VsZWN0aW9uQ2hhbmdlZChvbGRTZWxlY3Rpb24sIG1fc2VsZWN0aW9uKTsK
KwogICAgIGlmIChwcm90ZWN0ZWREb2N1bWVudC0+aGFzUGVuZGluZ1N0eWxlUmVjYWxjKCkpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlh
bG9nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNw
cAppbmRleCBmYzkxZDIzZmRjOTMuLjc0NjQ5OGE1MTNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKQEAgLTc5LDggKzc5LDEwIEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEhUTUxEaWFsb2dFbGVtZW50OjpzaG93TW9kYWwoKQogCiAgICAgc2V0SXNNb2RhbCh0cnVl
KTsKIAotICAgIGlmICghaXNJblRvcExheWVyKCkpCisgICAgaWYgKCFpc0luVG9wTGF5ZXIoKSkg
eworICAgICAgICBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsKICAg
ICAgICAgYWRkVG9Ub3BMYXllcigpOworICAgIH0KIAogICAgIG1fcHJldmlvdXNseUZvY3VzZWRF
bGVtZW50ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggNzU4YTg3ZmVhMGY3Li5jMzNhNmIwNjc0N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIzNzgsNiArMjM3OCw5IEBAIHZvaWQgRnJhbWVWaWV3OjptYWlu
dGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IoQ29udGFpbmVyTm9kZSogYW5jaG9yTm9kZSkKIAog
ICAgIGNhbmNlbFNjaGVkdWxlZFNjcm9sbHMoKTsKIAorICAgIGlmIChpczxFbGVtZW50PihhbmNo
b3JOb2RlKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkuaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElm
TmVlZGVkKGRvd25jYXN0PEVsZW1lbnQ+KGFuY2hvck5vZGUpKTsKKwogICAgIC8vIFdlIG5lZWQg
dG8gdXBkYXRlIHRoZSBsYXlvdXQgYmVmb3JlIHNjcm9sbGluZywgb3RoZXJ3aXNlIHdlIGNvdWxk
CiAgICAgLy8gcmVhbGx5IG1lc3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29tZXMg
YXQgYSBiYWQgbW9tZW50LgogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZO
ZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRl
eCA3ZTk5MzZjNTIxMjYuLjU3NmY5ZjhjN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCB2b2lkIFJlbmRlckVsZW1l
bnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5
bGUmIG5ldwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fc3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICYmIGVs
ZW1lbnQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9
PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmNv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2Jz
ZXJ2YXRpb24oKmVsZW1lbnQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChuZXdTdHlsZS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAg
ICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkuYWRkQ29udGVu
dFZpc2liaWxpdHlPYnNlcnZhdGlvbigqZWxlbWVudCgpKTsKKyAgICAgICAgfQorCiAgICAgICAg
IGF1dG8gbmVlZHNJbnZhbGlkYXRlRXZlbnRSZWdpb24gPSBbJl0gewogICAgICAgICAgICAgaWYg
KG1fc3R5bGUuZWZmZWN0aXZlUG9pbnRlckV2ZW50cygpICE9IG5ld1N0eWxlLmVmZmVjdGl2ZVBv
aW50ZXJFdmVudHMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTg2NCw2ICs4
NzEsOSBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ldwogICAgICAgICBzZXRIYXNOb25WaXNpYmxl
T3ZlcmZsb3coZmFsc2UpOwogICAgICAgICBzZXRIYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVydHko
ZmFsc2UpOwogICAgICAgICBzZXRIYXNSZWZsZWN0aW9uKGZhbHNlKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZiAobmV3U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0byAmJiBlbGVtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
KmVsZW1lbnQoKSk7CiAgICAgfQogCiAgICAgYm9vbCBoYWRPdXRsaW5lID0gb2xkU3R5bGUgJiYg
b2xkU3R5bGUtPmhhc091dGxpbmUoKTsKQEAgLTIxOTMsNCArMjIwMywxMyBAQCBGbG9hdFJlY3Qg
UmVuZGVyRWxlbWVudDo6cmVmZXJlbmNlQm94UmVjdChDU1NCb3hUeXBlIGJveFR5cGUpIGNvbnN0
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRTa2lwQ29u
dGVudCgpIGNvbnN0Cit7CisgICAgaWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGVsZW1lbnQoKSAmJiAhZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oCmluZGV4IDZmZWQ4ZmJiY2UwNi4uOGY2MTAxNzM5NjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTMxMiw2ICszMTIsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGVzdGFibGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5n
Q29udGV4dCgpIGNvbnN0OwogICAgIGJvb2wgY3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkg
Y29uc3Q7CiAKKyAgICBib29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CisKIHByb3RlY3Rl
ZDoKICAgICBlbnVtIEJhc2VUeXBlRmxhZyB7CiAgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3RGbGFnICA9IDEgPDwgMCwKQEAgLTUzOSw3ICs1NDEsOSBAQCBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudCgpIGNvbnN0CiAKIGlu
bGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgY29u
c3QKIHsKLSAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxl
KCkuY29udGFpbnNTaXplKCkgfHwgc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRl
bnRWaXNpYmlsaXR5OjpIaWRkZW4pOworICAgIGlmIChzaG91bGRTa2lwQ29udGVudCgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRh
aW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CkBAIC02NTEs
NiArNjU1LDEzIEBAIGlubGluZSBSZW5kZXJPYmplY3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZs
b3dDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2lubGluZSBib29sIFJl
bmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAoreworICAgIGlmIChpc1RleHQo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVt
ZW50PigqdGhpcykuc2hvdWxkU2tpcENvbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1JFTkRFUl9PQkpFQ1QoUmVuZGVyRWxlbWVu
dCwgaXNSZW5kZXJFbGVtZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCmluZGV4IDRmZDlkMGZiODM2NS4uMzU0ODBlNDBiMmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjYzNywxMSArMjYzNyw2IEBAIGJvb2wg
UmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50
KCkgJiYgcGFyZW50KCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCk7CiB9CiAKLWJv
b2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVu
OwotfQotCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CmluZGV4IGVlOTI4MGI4ZjE3Ny4uMzhkMzhkMGUxNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTg2NSw2ICs4NjUsNyBAQCBzdGF0
aWMgYm9vbCByYXJlSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFN0eWxl
UmFyZUluaGVyaXRlZERhdGEmCiAgICAgICAgIHx8IGZpcnN0LmxpbmVTbmFwICE9IHNlY29uZC5s
aW5lU25hcAogICAgICAgICB8fCBmaXJzdC5saW5lQWxpZ24gIT0gc2Vjb25kLmxpbmVBbGlnbgog
ICAgICAgICB8fCBmaXJzdC5oYW5naW5nUHVuY3R1YXRpb24gIT0gc2Vjb25kLmhhbmdpbmdQdW5j
dHVhdGlvbgorICAgICAgICB8fCBmaXJzdC5lZmZlY3RpdmVTa2lwc0NvbnRlbnQgIT0gc2Vjb25k
LmVmZmVjdGl2ZVNraXBzQ29udGVudAogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0gpCiAgICAgICAgIHx8IGZpcnN0LnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgIT0gc2Vjb25k
LnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmNwcAppbmRleCAyNTBiNTZkMDIwOWUuLjEyNTRiMmI4NGFmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU5NCw3ICs1OTQsMTUgQEAgdm9pZCBB
ZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVz
ZXJBZ2VudEFwcGVhcmFuY2UKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChzdHlsZS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgYXV0byBl
ZmZlY3RpdmVTa2lwc0NvbnRlbnQgPSBbXSAoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25z
dCBFbGVtZW50KiBlbGVtZW50KSAtPiBib29sIHsKKyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50ICYmICFlbGVt
ZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Owor
CisgICAgaWYgKGVmZmVjdGl2ZVNraXBzQ29udGVudChzdHlsZSwgbV9lbGVtZW50KSkKICAgICAg
ICAgc3R5bGUuc2V0RWZmZWN0aXZlU2tpcHNDb250ZW50KHRydWUpOwogCiAgICAgYWRqdXN0Rm9y
U2l0ZVNwZWNpZmljUXVpcmtzKHN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBmYzEyZWVkODRmMmQuLjU2ZTU4YmUxODE3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjU4
LDYgKzI1OCw5IEBAIGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1l
bnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgaWYgKGVsZW1lbnRIYXNE
aXJlY3Rpb25BdXRvKGNhbmRpZGF0ZUVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5pc1JlbGV2YW50VG9Vc2VyKCkgIT0gZWxlbWVudC5p
c1JlbGV2YW50VG9Vc2VyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChjYW5k
aWRhdGVFbGVtZW50LmlzTGluaygpICYmIGNvbnRleHQuZWxlbWVudExpbmtTdGF0ZSAhPSBzdHls
ZS0+aW5zaWRlTGluaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGY5YjBjZWQxOGNjNi4uZWNhMzkxYzgxYTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTQ2OTMsNiArNDY5Myw4IEBAIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vCiB3ZWJraXQub3JnL2Iv
MjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNw
ZWN0LXJhdGlvL2Zsb2F0cy1hc3BlY3QtcmF0aW8tMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIAogIyBjb250YWluLWludHJpbnNpYy1zaXplCit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwMS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwMi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwNy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwOS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MjgzIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9jb250YWluLWludHJpbnNpYy1zaXplLWxvZ2ljYWwtMDAzLmh0bWwgWyBTa2lwIF0K
QEAgLTQ4MTIsMTEgKzQ4MTQsNyBAQCB3ZWJhbmltYXRpb25zL3RyYW5zbGF0ZS1wcm9wZXJ0eS1h
bmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNlZC1sYQogIyBDU1MgY29u
dGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1mbG9hdHMtMDAxLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktYXV0by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDQ4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDQ4LWV4cGVjdGVkLnR4dAppbmRleCBjZmQ4N2JkMjFmODYuLjhhMmY2MjYyNGE2ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDQ4LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogRkFJTCBGcmFnbWVudCBuYXZp
Z2F0aW9uIHdpdGggY29udGVudC12aXNpYmlsaXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAidGV4dCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBGcmFnbWVudCBuYXZp
Z2F0aW9uIHdpdGggY29udGVudC12aXNpYmlsaXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0MiIgYnV0IGdvdCAidW5rbm93biIKK0ZBSUwgRnJhZ21l
bnQgbmF2aWdhdGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2Nr
cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dDIiIGJ1dCBnb3QgInRleHQzIgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1l
eHBlY3RlZC50eHQKaW5kZXggNThlMzY1ZWIzMWFjLi5iNjIyNGY5MDY0NGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYt
c2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0
IGdvdCAxMAorUEFTUyBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwKaW5k
ZXggMzMwMjU2YWRiMjk4Li5kMTI3Y2FhYzQ1NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbApAQCAtNDcsNyArNDcsNyBAQCBhc3lu
Y190ZXN0KCh0KSA9PiB7CiAgICAgfSk7CiAKICAgICBmb2N1c2FibGUuZm9jdXMoKTsKLSAgICBy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcDIpOworICAgIHNldFRpbWVvdXQoKCkgPT4geyBzdGVw
MigpIH0pOwogICB9CiAgIC8vIEFmdGVyIGZvY3VzaW5nIHRoZSBzdWJ0cmVlLCB0aGUgY29udGFp
bmVyIHNob3VsZCBiZSBzb21ld2hlcmUgY2xvc2VyIHRoYW4KICAgLy8gMzAwMHB4IChzY3JvbGxl
ZCBpbnRvIHZpZXcpIGFuZCB0aGUgaGVpZ2h0IHNob3VsZCBiZSAxMHB4LCBzaW5jZSBpdCBubwpA
QCAtOTIsNyArOTIsNyBAQCBhc3luY190ZXN0KCh0KSA9PiB7CiAgICAgfSk7CiAgICAgdC5kb25l
KCk7CiAgIH0KLSAgc3RlcDEoKTsKKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXAxKTsKIH0p
OwogPC9zY3JpcHQ+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKaW5kZXggYTNlNTkwNmQ2YzNm
Li5hYWRiNDVjNDFjOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1oZWxs
bwogCi1GQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24gYXNzZXJ0
X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitQQVNTIENvbnRl
bnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ0YTI5MzY1MDM2MS4uM2MzZjBjYTMzOTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CkBAIC0x
LDEzICsxLDkgQEAKIGhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCi1oZWxsbwogCi1GQUlMIE9u
ZSBlbGVtZW50cyBzZWxlY3RlZDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBSYW5nZSBleHRlbmRlZCB0byBjb3ZlciBtb3JlIGVsZW1lbnRzOiAgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIHNocnVuayB0byBjb3ZlciBm
ZXdlciBlbGVtZW50czogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0byBmcm9udDogIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazog
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBnb2VzIGJh
Y2sgYW5kIGZvcnRoOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
IE9uZSBlbGVtZW50cyBzZWxlY3RlZDoKK1BBU1MgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9y
ZSBlbGVtZW50czoKK1BBU1MgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOgor
UEFTUyBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0byBmcm9udDoKK1BBU1MgUmFuZ2UgZmxpcHBl
ZCBmcm9tIGZyb250IHRvIGJhY2s6CitQQVNTIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcyLWV4cGVjdGVkLnR4dAppbmRleCAwMGYxYzdmNDQ0MTguLmY5NTE4YmNmZTA2NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcy
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBvbmUuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk6Ci1GQUlMIHR3by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVh
bHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgdGhyZWUuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQx
Ci1GQUlMIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4
cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCi1GQUlMIGZpdmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCitQQVNTIHR3
by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgdGhyZWUuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk6CitQQVNTIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQQVNTIGZpdmUuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk6CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464480</attachid>
            <date>2023-01-13 01:53:43 -0800</date>
            <delta_ts>2023-01-13 05:55:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230113095341.patch</filename>
            <type>text/plain</type>
            <size>33689</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAyOTA0MTRhYWI3ZWYyNGFjMDY2Zjc5MDJiYWU4ZjZhZjViOTQxOTJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAxMCBKYW4gMjAyMyAxOToxMDo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCldJUC4KCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0
ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6
OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5
T2JzZXJ2YXRpb24pOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpy
ZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9uKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgooV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xs
SWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KToK
KFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQpOgooV2ViQ29yZTo6RWxl
bWVudDo6Zm9jdXMpOgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBj
b25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIgY29uc3QpOgooV2ViQ29yZTo6RWxl
bWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZSk6CihXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
OgooV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKiBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmg6CiogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHA6CihXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcDoKKFdlYkNv
cmU6OkhUTUxEaWFsb2dFbGVtZW50OjpzaG93TW9kYWwpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlv
bkF0QW5jaG9yKTogYWRkcmVzcyBhbmNob3Igc2Nyb2xscy4KKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdp
bGxDaGFuZ2UpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQgY29u
c3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CihXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBjb25zdCk6IHRha2Ug
aW50byBhY2NvdW50IGN1cnJlbnQgdmFsdWUgb2YgZWZmZWNpdGl2ZVNraXBzQ29udGVudC4KKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKFdlYkNvcmU6OnJhcmVJbmhlcml0ZWREYXRh
Q2hhbmdlUmVxdWlyZXNMYXlvdXQpOiBhIGNoYW5nZSBpbiBlZmZlY2l0aXZlU2tpcHNDb250ZW50
IHJlcXVpcmVzIGEgbGF5b3V0LgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwOgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcDogZG8gbm90IHNoYXJlIHN0eWxl
cyB3aXRoIGRpZmZlcmVudCBpc1JlbGV2YW50VG9Vc2VyIHZhbHVlcy4KKFdlYkNvcmU6OlN0eWxl
OjpTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCBjb25zdCk6Ci0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMTExICsrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAg
ICAgIHwgIDI0ICsrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAgICAg
ICAgICB8ICA0MSArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAg
ICAgICAgICAgfCAgMTQgKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgg
ICAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oICAgICAg
ICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
ICAgICB8ICAgNCArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAg
ICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAg
fCAgMTkgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAg
fCAgMTMgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8
ICAgNSAtCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwICAgfCAg
IDEgKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgIDEw
ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgIDMg
KwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAgICAgICAgICAgIHwgICA0ICst
CiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQgICAgICAgfCAgIDIgKy0K
IC4uLi9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAgMiArLQog
Li4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbCAgICAgICAgICAgICAgIHwgICA0ICstCiAu
Li4vY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgICAgICAgfCAgIDMgKy0KIC4u
Li9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dCAgICAgICB8ICAxNiArLS0KIC4u
Li9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dCAgICAgICB8ICAgOCArLQogMjIg
ZmlsZXMgY2hhbmdlZCwgMjY0IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2ZDRhZjQ3ODA1Zi4uZmU5OTVmMGYwOWI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzOCw2ICsxMzgsNyBAQAogI2luY2x1ZGUgIkltYWdlT3Zl
cmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50
TGlzdGVuZXIuaCIKQEAgLTM2OSw2ICszNzAsMzMgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKERvY3VtZW50KTsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3Bh
Y2UgV1RGOjpVbmljb2RlOwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBo
YXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENhbGxiYWNr
UmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVj
dG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVyc2VjdGlv
bk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5pc0VtcHR5
KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAgICAgICBl
bGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0ludGVyc2Vj
dGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIENv
bnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVudCYgZG9j
dW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9jdW1lbnQp
CisgICAgeworICAgIH0KK307CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1
cnNpb25EZXB0aCA9IDIxOwogYm9vbCBEb2N1bWVudDo6aGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0
Q2FjaGUgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEludGVydmFsRm9yVXNlckdl
c3R1cmVGb3J3YXJkaW5nQWZ0ZXJNZWRpYUZpbmlzaGVzUGxheWluZyB7IDFfcyB9OwpAQCAtNDc3
Nyw2ICs0ODA1LDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgb2xkRm9jdXNl
ZEVsZW1lbnQtPnNldEZvY3VzKGZhbHNlKTsKICAgICAgICAgc2V0Rm9jdXNOYXZpZ2F0aW9uU3Rh
cnRpbmdOb2RlKG51bGxwdHIpOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gb2xkRm9j
dXNlZEVsZW1lbnQ7IGZvY3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5D
b21wb3NlZFRyZWUoKSkgeworICAgICAgICAgICAgaWYgKGZvY3VzZWQtPnJlbmRlcmVyKCkgJiYg
Zm9jdXNlZC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRl
bnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGZvY3VzZWQtPnVwZGF0ZUNvbnRl
bnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6Rm9jdXNlZCwgZmFsc2Up
OworICAgICAgICB9CisKICAgICAgICAgaWYgKG9wdGlvbnMucmVtb3ZhbEV2ZW50c01vZGUgPT0g
Rm9jdXNSZW1vdmFsRXZlbnRzTW9kZTo6RGlzcGF0Y2gpIHsKICAgICAgICAgICAgIC8vIERpc3Bh
dGNoIGEgY2hhbmdlIGV2ZW50IGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIGJl
ZW4gZWRpdGVkLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpv
bGRGb2N1c2VkRWxlbWVudCkpIHsKQEAgLTQ4NTYsNiArNDg4OSwxMSBAQCBib29sIERvY3VtZW50
OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMm
IG9wdGlvbnMpCiAgICAgICAgIGlmIChvcHRpb25zLnRyaWdnZXIgIT0gRm9jdXNUcmlnZ2VyOjpC
aW5kaW5ncykKICAgICAgICAgICAgIG1fbGF0ZXN0Rm9jdXNUcmlnZ2VyID0gb3B0aW9ucy50cmln
Z2VyOwogCisgICAgICAgIGZvciAoYXV0byBmb2N1c2VkID0gbmV3Rm9jdXNlZEVsZW1lbnQ7IGZv
Y3VzZWQ7IGZvY3VzZWQgPSBmb2N1c2VkLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkg
eworICAgICAgICAgICAgaWYgKGZvY3VzZWQtPnJlbmRlcmVyKCkgJiYgZm9jdXNlZC0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpB
dXRvKQorICAgICAgICAgICAgICAgIGZvY3VzZWQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0
dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6Rm9jdXNlZCwgdHJ1ZSk7CisgICAgICAgIH0KKwog
ICAgICAgICAvLyBUaGUgc2V0Rm9jdXMgY2FsbCB0cmlnZ2VycyBhIGJsdXIgYW5kIGEgZm9jdXMg
ZXZlbnQuIEV2ZW50IGhhbmRsZXJzIGNvdWxkIGNhdXNlIHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8g
YmUgY2xlYXJlZC4KICAgICAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgIT0gbmV3Rm9jdXNlZEVs
ZW1lbnQpIHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpAQCAtOTQyMiw2
ICs5NDYwLDc5IEBAIGJvb2wgRG9jdW1lbnQ6OmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkgY29u
c3QKICAgICByZXR1cm4gbV9zZXR0aW5ncy0+bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSAmJiAh
bV9xdWlya3MtPnNob3VsZERpc2FibGVMYXp5SW1hZ2VMb2FkaW5nUXVpcmsoKTsKIH0KIAorQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VVbmlx
dWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJuICpt
X2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmFkZENvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24o
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
PSBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNl
cnZlci0+b2JzZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU6OnJlbW92ZUNvbnRlbnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAobV9vYnNlcnZlcikKKyAgICAgICAgbV9vYnNlcnZlci0+dW5vYnNl
cnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7CisgICAgaWYg
KCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7CisgICAg
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNpYmlsaXR5
Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIxMDAlIikpOworICAg
ICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRpb25zIHsgc3RkOjpudWxsb3B0LCBj
b250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywgeyB9IH07CisgICAgICAgIGF1dG8g
b2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlKCptX2RvY3VtZW50LCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgICAgIGlmIChvYnNlcnZlci5o
YXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBtX29i
c2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIoKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24pCit7CisgICAgYXV0byBwcm9jZXNzU2VsZWN0aW9uQ2hhbmdlID0g
W10oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNlbGVjdGVkKSB7Cisg
ICAgICAgIGlmIChhdXRvIHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlKCkpIHsKKyAgICAgICAgICAg
IGZvciAoUmVmIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcygqcmFuZ2UpKSB7CisgICAgICAgICAg
ICAgICAgRWxlbWVudCogYW5jZXN0b3IgPSBub2RlLT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRy
ZWUoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGFuY2VzdG9yLT5yZW5kZXJlcigpICYmIGFuY2VzdG9yLT5yZW5kZXJlcigpLT5z
dHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGVudFJlbGV2YW5jeVN0
YXR1cygpLmNvbnRhaW5zKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlNlbGVjdGVkKSAhPSBzZWxl
Y3RlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yLT51cGRhdGVDb250
ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlNlbGVjdGVkLCBzZWxl
Y3RlZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3ItPmludmFsaWRhdGVT
dHlsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYW5j
ZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKyAgICBwcm9jZXNz
U2VsZWN0aW9uQ2hhbmdlKG9sZFNlbGVjdGlvbiwgZmFsc2UpOworICAgIHByb2Nlc3NTZWxlY3Rp
b25DaGFuZ2UobmV3U2VsZWN0aW9uLCB0cnVlKTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU6OmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJ
Zk5lZWRlZChFbGVtZW50KiBzY3JvbGxBbmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2Jz
ZXJ2YXRpb25UYXJnZXRzKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRl
cmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNv
bnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFs
c2UpOworICAgIH0KKyAgICBzY3JvbGxBbmNob3ItPmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0
eUF1dG9JZk5lZWRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBE
T0NVTUVOVF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNmMzIxZjZjN2Mu
LjVmMDg3OGQxZTJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBj
bGFzcyBUcmFuc2Zvcm1Tb3VyY2U7CiBjbGFzcyBUcmVlV2Fsa2VyOwogY2xhc3MgVW5kb01hbmFn
ZXI7CiBjbGFzcyBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlv
bjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RhdGU7CiBjbGFzcyBXYWtlTG9ja01hbmFnZXI7CiBjbGFz
cyBXZWJBbmltYXRpb247CkBAIC0zNTQsNiArMzU1LDIzIEBAIHByaXZhdGU6CiAgICAgV2Vha1B0
cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50Owog
fTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGUoRG9jdW1lbnQmKTsKKworICAgIHZvaWQgYWRkQ29udGVudFZpc2liaWxpdHlPYnNlcnZh
dGlvbihFbGVtZW50Jik7CisgICAgdm9pZCByZW1vdmVDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0
aW9uKEVsZW1lbnQmKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0
b0ZvclNjcm9sbElmTmVlZGVkKEVsZW1lbnQqIHNjcm9sbEFuY2hvcik7CisKK3ByaXZhdGU6Cisg
ICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisK
KyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0
cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50Owor
fTsKKwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBw
dWJsaWMgVHJlZVNjb3BlCkBAIC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5
TG9hZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUo
KTsKKwogICAgIHZvaWQgc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1f
aGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNW
aXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFs
bHlOb25FbXB0eUN1c3RvbUNvbnRlbnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0Vu
dHJ5SWZOZWVkZWQoKTsKQEAgLTE3MzgsNiArMTc1OCw4IEBAIHB1YmxpYzoKICAgICBET01BdWRp
b1Nlc3Npb246OlR5cGUgYXVkaW9TZXNzaW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9T
ZXNzaW9uVHlwZTsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNlbGVjdGlvbkNoYW5nZWQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb24pOworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7
IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAg
IFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBV
UkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0g
MCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSB7IH0pOwpAQCAtMTk1NSw2ICsx
OTc3LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3RkOjp1bmlxdWVfcHRyPENv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGU7CisKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3RvbmljVGltZSBtX2RvY3VtZW50
Q3JlYXRpb25UaW1lOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzVmN2YyZTBi
NTk2Li5iMWIzMTM5NDliZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEwNjksNiArMTA2
OSw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJFbGVtZW50KiwgTGF5
b3V0UmVjdD4+IGxpc3RCb3hFbGVtZW50U2Nyb2xsCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50
b1ZpZXcoc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRp
b25zPj4mJiBhcmcpCiB7CisgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGUoKS5pbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xsSWZOZWVkZWQo
dGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBudWxscHRyOwpAQCAtMTEz
NCw2ICsxMTM2LDggQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhib29sIGFsaWduVG9U
b3ApCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklm
TmVlZGVkKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
KCkuaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElmTmVlZGVkKHRoaXMp
OworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKIAogICAgIGlmICghcmVuZGVyZXIoKSkKQEAgLTMzNjUsNiArMzM2OSw4IEBAIHZvaWQgRWxl
bWVudDo6Zm9jdXMoY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7
CisKICAgICBSZWZQdHI8RWxlbWVudD4gbmV3VGFyZ2V0ID0gdGhpczsKIAogICAgIC8vIElmIHdl
IGRvbid0IGhhdmUgcmVuZGVyZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxsIGNvbXB1dGUgaXQgd2l0
aG91dCBzdHlsZSB1cGRhdGUuCkBAIC01MjA1LDQgKzUyMTEsMzkgQEAgdm9pZCBFbGVtZW50Ojpz
ZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAgICBzZXRFdmVudFRhcmdl
dEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpEaXNwbGF5Q29udGVudHNDaGFuZ2VkLCBjaGFuZ2VkKTsK
IH0KIAorT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IEVsZW1lbnQ6OmNvbnRlbnRS
ZWxldmFuY3lTdGF0dXMoKSBjb25zdAoreworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxl
dmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5
U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAg
IGlmIChjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuY29udGFpbnMoc3RhdHVzKSAhPSB2YWx1ZSkg
eworICAgICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5jb250ZW50UmVsZXZhbmN5U3RhdHVz
KCkuc2V0KHN0YXR1cywgdmFsdWUpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9
Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNSZWxldmFudFRvVXNlcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lT
dGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hh
bmdlKGJvb2wgaXNJbnRlcnNlY3RpbmcpCit7CisgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0
YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCBpc0ludGVyc2VjdGluZyk7Cit9
CisKK3ZvaWQgRWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVk
KCkKK3sKKyAgICBmb3IgKGF1dG8gdGFyZ2V0ID0gdGhpczsgdGFyZ2V0OyB0YXJnZXQgPSB0YXJn
ZXQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgIGlmICh0YXJnZXQt
PnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgICAgIHRhcmdldC0+
dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNp
YmxlLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYjc3MTY3NDJjMTM1
Li5lZDUxOWYzMThlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTA0LDYgKzEwNCwxMiBAQCBz
dHJ1Y3QgU2hhZG93Um9vdEluaXQ7CiAKIHVzaW5nIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNN
YXAgPSBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFZlY3RvcjxXZWFrUHRyPEVsZW1lbnQsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4+PjsKIAorZW51bSBjbGFzcyBDb250ZW50UmVsZXZh
bmN5U3RhdHVzIDogdWludDhfdCB7CisgICAgVmlzaWJsZSA9IDEgPDwgMCwKKyAgICBGb2N1c2Vk
ID0gMSA8PCAxLAorICAgIFNlbGVjdGVkID0gMSA8PCAyLAorfTsKKwogbmFtZXNwYWNlIFN0eWxl
IHsKIGNsYXNzIFJlc29sdmVyOwogZW51bSBjbGFzcyBDaGFuZ2UgOiB1aW50OF90OwpAQCAtNzE5
LDYgKzcyNSwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwbGF5Q29udGVudHNDaGFuZ2VkKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgPSB0cnVlKTsK
IAorICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBjb250ZW50UmVsZXZhbmN5
U3RhdHVzKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENv
bnRlbnRSZWxldmFuY3lTdGF0dXMsIGJvb2wpOworICAgIGJvb2wgaXNSZWxldmFudFRvVXNlcigp
IGNvbnN0OworCisgICAgdm9pZCBjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVkZWQoKTsK
KwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApp
bmRleCA1MzM3MDJjNmRkN2EuLjk4YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaApAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKIAogICAgIEV4cGxpY2l0bHlT
ZXRBdHRyRWxlbWVudHNNYXAmIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAoKSB7IHJldHVy
biBtX2V4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7IH0KIAorICAgIE9wdGlvblNldDxDb250
ZW50UmVsZXZhbmN5U3RhdHVzPiYgY29udGVudFJlbGV2YW5jeVN0YXR1cygpIHsgcmV0dXJuIG1f
Y29udGVudFJlbGV2YW5jeVN0YXR1czsgfQorCiAjaWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKICAg
ICBPcHRpb25TZXQ8VXNlVHlwZT4gdXNlVHlwZXMoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaAppbmRleCBkNDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMzI2LDYgKzMyNiw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBVc2VkIGJ5IEVsZW1lbnRSYXJlRGF0YS4gRGVmaW5lZCBoZXJlIGZvciBiZXR0ZXIgcGFja2lu
ZyBpbiA2NC1iaXQuCiAgICAgaW50IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9OwogICAgIHVuc2ln
bmVkIHNob3J0IG1fY2hpbGRJbmRleCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2
YW5jeVN0YXR1cz4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2YXRlOgogICAgIGJv
b2wgbV9pc0VsZW1lbnRSYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKaW5kZXggMmJhY2RiYjI3NWU0Li44OTg4NGY4NTNhMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC00NTMsNiArNDUzLDggQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgT3B0aW9uU2V0PFMKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2VsZWN0aW9uLCBzdHJl
YW0gPDwgIkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24gIiA8PCBzZWxlY3Rpb24pOwogCisg
ICAgVmlzaWJsZVNlbGVjdGlvbiBvbGRTZWxlY3Rpb24gPSBtX3NlbGVjdGlvbjsKKwogICAgIFJl
ZlB0ciBwcm90ZWN0ZWREb2N1bWVudCB7IG1fZG9jdW1lbnQuZ2V0KCkgfTsKICAgICBpZiAoIXNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBh
bGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC00NzAsNiArNDcyLDggQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgT3B0aW9uU2V0PFMKICAgICBtX3NlbGVjdGlvblJldmVhbEludGVudCA9IGlu
dGVudDsKICAgICBtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUgPSB0cnVlOwogCisgICAgcHJvdGVj
dGVkRG9jdW1lbnQtPnNlbGVjdGlvbkNoYW5nZWQob2xkU2VsZWN0aW9uLCBtX3NlbGVjdGlvbik7
CisKICAgICBpZiAocHJvdGVjdGVkRG9jdW1lbnQtPmhhc1BlbmRpbmdTdHlsZVJlY2FsYygpKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERp
YWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5j
cHAKaW5kZXggZmM5MWQyM2ZkYzkzLi43NDY0OThhNTEzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwxMCBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAogICAgIHNldElzTW9kYWwodHJ1
ZSk7CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlmICghaXNJblRvcExheWVyKCkp
IHsKKyAgICAgICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lmTmVlZGVkKCk7CiAg
ICAgICAgIGFkZFRvVG9wTGF5ZXIoKTsKKyAgICB9CiAKICAgICBtX3ByZXZpb3VzbHlGb2N1c2Vk
RWxlbWVudCA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDc1OGE4N2ZlYTBmNy4uYzMzYTZiMDY3NDdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC0yMzc4LDYgKzIzNzgsOSBAQCB2b2lkIEZyYW1lVmlldzo6bWFp
bnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKENvbnRhaW5lck5vZGUqIGFuY2hvck5vZGUpCiAK
ICAgICBjYW5jZWxTY2hlZHVsZWRTY3JvbGxzKCk7CiAKKyAgICBpZiAoaXM8RWxlbWVudD4oYW5j
aG9yTm9kZSkpCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJ
Zk5lZWRlZChkb3duY2FzdDxFbGVtZW50PihhbmNob3JOb2RlKSk7CisKICAgICAvLyBXZSBuZWVk
IHRvIHVwZGF0ZSB0aGUgbGF5b3V0IGJlZm9yZSBzY3JvbGxpbmcsIG90aGVyd2lzZSB3ZSBjb3Vs
ZAogICAgIC8vIHJlYWxseSBtZXNzIHRoaW5ncyB1cCBpZiBhbiBhbmNob3Igc2Nyb2xsIGNvbWVz
IGF0IGEgYmFkIG1vbWVudC4KICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlm
TmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5k
ZXggN2U5OTM2YzUyMTI2Li41NzZmOWY4YzdkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTgxOSw2ICs4MTksMTMgQEAgdm9pZCBSZW5kZXJFbGVt
ZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlJiBuZXcKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGlmIChtX3N0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gbmV3U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSAmJiBl
bGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5j
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5yZW1vdmVDb250ZW50VmlzaWJpbGl0eU9i
c2VydmF0aW9uKCplbGVtZW50KCkpOworICAgICAgICAgICAgZWxzZSBpZiAobmV3U3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmFkZENvbnRl
bnRWaXNpYmlsaXR5T2JzZXJ2YXRpb24oKmVsZW1lbnQoKSk7CisgICAgICAgIH0KKwogICAgICAg
ICBhdXRvIG5lZWRzSW52YWxpZGF0ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAgICAgIGlm
IChtX3N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZlY3RpdmVQ
b2ludGVyRXZlbnRzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04NjQsNiAr
ODcxLDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgc2V0SGFzTm9uVmlzaWJs
ZU92ZXJmbG93KGZhbHNlKTsKICAgICAgICAgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5
KGZhbHNlKTsKICAgICAgICAgc2V0SGFzUmVmbGVjdGlvbihmYWxzZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkF1dG8gJiYgZWxlbWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5hZGRDb250ZW50VmlzaWJpbGl0eU9ic2VydmF0aW9u
KCplbGVtZW50KCkpOwogICAgIH0KIAogICAgIGJvb2wgaGFkT3V0bGluZSA9IG9sZFN0eWxlICYm
IG9sZFN0eWxlLT5oYXNPdXRsaW5lKCk7CkBAIC0yMTkzLDQgKzIyMDMsMTMgQEAgRmxvYXRSZWN0
IFJlbmRlckVsZW1lbnQ6OnJlZmVyZW5jZUJveFJlY3QoQ1NTQm94VHlwZSBib3hUeXBlKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENv
bnRlbnQoKSBjb25zdAoreworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0g
Q29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRk
ZW4pCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgIWVsZW1l
bnQoKS0+aXNSZWxldmFudFRvVXNlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuaAppbmRleCA2ZmVkOGZiYmNlMDYuLjhmNjEwMTczOTYyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMTIsNiArMzEyLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGlu
Z0NvbnRleHQoKSBjb25zdDsKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgp
IGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgZW51bSBCYXNlVHlwZUZsYWcgewogICAgICAgICBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0RmxhZyAgPSAxIDw8IDAsCkBAIC01MzksNyArNTQxLDkgQEAgaW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBp
bmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHls
ZSgpLmNvbnRhaW5zU2l6ZSgpIHx8IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6SGlkZGVuKTsKKyAgICBpZiAoc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250
YWlubWVudChzdHlsZSgpLmNvbnRhaW5zU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVy
RWxlbWVudDo6c2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdApAQCAtNjUx
LDYgKzY1NSwxMyBAQCBpbmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJFbGVtZW50OjpsYXN0SW5G
bG93Q2hpbGQoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitpbmxpbmUgYm9vbCBS
ZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoaXNUZXh0
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRWxl
bWVudD4oKnRoaXMpLnNob3VsZFNraXBDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlckVsZW1l
bnQsIGlzUmVuZGVyRWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCA0ZmQ5ZDBmYjgzNjUuLjM1NDgwZTQwYjJmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI2MzcsMTEgKzI2MzcsNiBAQCBib29s
IFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVu
dCgpICYmIHBhcmVudCgpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOwogfQogCi1i
b29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVy
biBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bjsKLX0KLQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAppbmRleCBlZTkyODBiOGYxNzcuLjM4ZDM4ZDBlMTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjUsNiArODY1LDcgQEAgc3Rh
dGljIGJvb2wgcmFyZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJgogICAgICAgICB8fCBmaXJzdC5saW5lU25hcCAhPSBzZWNvbmQu
bGluZVNuYXAKICAgICAgICAgfHwgZmlyc3QubGluZUFsaWduICE9IHNlY29uZC5saW5lQWxpZ24K
ICAgICAgICAgfHwgZmlyc3QuaGFuZ2luZ1B1bmN0dWF0aW9uICE9IHNlY29uZC5oYW5naW5nUHVu
Y3R1YXRpb24KKyAgICAgICAgfHwgZmlyc3QuZWZmZWN0aXZlU2tpcHNDb250ZW50ICE9IHNlY29u
ZC5lZmZlY3RpdmVTa2lwc0NvbnRlbnQKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RP
VUNIKQogICAgICAgICB8fCBmaXJzdC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nICE9IHNlY29u
ZC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVBZGp1c3Rlci5jcHAKaW5kZXggMjUwYjU2ZDAyMDllLi4xMjU0YjJiODRhZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01OTQsNyArNTk0LDE1IEBAIHZvaWQg
QWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1
c2VyQWdlbnRBcHBlYXJhbmNlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgIGF1dG8g
ZWZmZWN0aXZlU2tpcHNDb250ZW50ID0gW10gKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29u
c3QgRWxlbWVudCogZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29u
dGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAhZWxl
bWVudC0+aXNSZWxldmFudFRvVXNlcigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsK
KworICAgIGlmIChlZmZlY3RpdmVTa2lwc0NvbnRlbnQoc3R5bGUsIG1fZWxlbWVudCkpCiAgICAg
ICAgIHN0eWxlLnNldEVmZmVjdGl2ZVNraXBzQ29udGVudCh0cnVlKTsKIAogICAgIGFkanVzdEZv
clNpdGVTcGVjaWZpY1F1aXJrcyhzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVNoYXJpbmdSZXNvbHZlci5jcHAKaW5kZXggZmMxMmVlZDg0ZjJkLi41NmU1OGJlMTgxN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKQEAgLTI1
OCw2ICsyNTgsOSBAQCBib29sIFNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVt
ZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0eQogICAgIGlmIChlbGVtZW50SGFz
RGlyZWN0aW9uQXV0byhjYW5kaWRhdGVFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuaXNSZWxldmFudFRvVXNlcigpICE9IGVsZW1lbnQu
aXNSZWxldmFudFRvVXNlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY2Fu
ZGlkYXRlRWxlbWVudC5pc0xpbmsoKSAmJiBjb250ZXh0LmVsZW1lbnRMaW5rU3RhdGUgIT0gc3R5
bGUtPmluc2lkZUxpbmsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBmOWIwY2VkMThjYzYuLjhiZTEzNDlhMzk5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBA
IC00NjkzLDYgKzQ2OTMsOCBAQCB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvLwogd2Via2l0Lm9yZy9i
LzIxNDQ2MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2Fz
cGVjdC1yYXRpby9mbG9hdHMtYXNwZWN0LXJhdGlvLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiAKICMgY29udGFpbi1pbnRyaW5zaWMtc2l6ZQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDcuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjI4MyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS1sb2dpY2FsLTAwMy5odG1sIFsgU2tpcCBd
CkBAIC00ODE1LDggKzQ4MTcsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5odAogIyBmb3JjZWQg
bGF5b3V0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAj
IGMtdjogYXV0bwotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRl
LWNoYW5nZWQuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVs
ZHNldC1zaXplLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktdmlkZW8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0
CmluZGV4IGNmZDg3YmQyMWY4Ni4uOGEyZjYyNjI0YTZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsNCBAQAogCiBGQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZp
c2liaWxpdHk7IHNpbmdsZSB0ZXh0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQg
Z290ICJ1bmRlZmluZWQiCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZp
c2liaWxpdHk7IHJhbmdlIGFjcm9zcyBibG9ja3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRl
eHQyIiBidXQgZ290ICJ1bmtub3duIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29u
dGVudC12aXNpYmlsaXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0MiIgYnV0IGdvdCAidGV4dDMiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dAppbmRleCA1OGUz
NjVlYjMxYWMuLmI2MjI0ZjkwNjQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMg
QEAKIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMgYXNzZXJ0X2Vx
dWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitQQVNTIENvbnRlbnQg
VmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBmb2N1cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAppbmRleCAzMzAyNTZhZGIyOTguLmQxMjdj
YWFjNDU1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNjguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICB9
KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1cygpOwotICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShz
dGVwMik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7IHN0ZXAyKCkgfSk7CiAgIH0KICAgLy8gQWZ0
ZXIgZm9jdXNpbmcgdGhlIHN1YnRyZWUsIHRoZSBjb250YWluZXIgc2hvdWxkIGJlIHNvbWV3aGVy
ZSBjbG9zZXIgdGhhbgogICAvLyAzMDAwcHggKHNjcm9sbGVkIGludG8gdmlldykgYW5kIHRoZSBo
ZWlnaHQgc2hvdWxkIGJlIDEwcHgsIHNpbmNlIGl0IG5vCkBAIC05Miw3ICs5Miw3IEBAIGFzeW5j
X3Rlc3QoKHQpID0+IHsKICAgICB9KTsKICAgICB0LmRvbmUoKTsKICAgfQotICBzdGVwMSgpOwor
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcDEpOwogfSk7CiA8L3NjcmlwdD4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcw
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcwLWV4cGVjdGVkLnR4dAppbmRleCBhM2U1OTA2ZDZjM2YuLmFhZGI0NWM0MWM5YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcw
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLWhlbGxvCiAKLUZBSUwgQ29udGVudCBWaXNp
YmlsaXR5OiBvZmYtc2NyZWVuIHNlbGVjdGlvbiBhc3NlcnRfZXF1YWxzOiBzdGVwMSBoZWlnaHQg
ZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKK1BBU1MgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2Ny
ZWVuIHNlbGVjdGlvbgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKaW5kZXggNDRhMjkzNjUwMzYxLi4zYzNm
MGNhMzM5NWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOSBAQAogaGVsbG8KLWhl
bGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCiAKLUZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAg
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVk
IHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBi
YWNrIHRvIGZyb250OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgT25lIGVsZW1lbnRzIHNlbGVjdGVk
OgorUEFTUyBSYW5nZSBleHRlbmRlZCB0byBjb3ZlciBtb3JlIGVsZW1lbnRzOgorUEFTUyBSYW5n
ZSBzaHJ1bmsgdG8gY292ZXIgZmV3ZXIgZWxlbWVudHM6CitQQVNTIFJhbmdlIGZsaXBwZWQgZnJv
bSBiYWNrIHRvIGZyb250OgorUEFTUyBSYW5nZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazoK
K1BBU1MgUmFuZ2UgZ29lcyBiYWNrIGFuZCBmb3J0aDoKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CmluZGV4
IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2ZlMDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsNyBAQAogCiBQQVNTIG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKLUZBSUwgdHdvLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1
dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9l
cXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZm91ci5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMw
NDEKLUZBSUwgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkg
ZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKK1BBU1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOgorUEFTUyB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZm91ci5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464485</attachid>
            <date>2023-01-13 05:55:49 -0800</date>
            <delta_ts>2023-01-17 06:56:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230113135547.patch</filename>
            <type>text/plain</type>
            <size>31228</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAxM2NhMzYzNWU4NmY4NGFmYjU2MDE1ZGI0MjY3N2UwY2ZiNGY4M2Q0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogRnJp
LCAxMyBKYW4gMjAyMyAxMTozMDoxMiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCi0gc3RhdGUgaXMga2VwdCB1c2luZyBDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIGVudW0gY2xhc3Mgd2hldGhlciB0aGUKICBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8gc3VidHJlZSBjb250YWlucyBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZAogIGVsZW1lbnRz
LCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoKVGhlIG1ldGhv
ZHMgZm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55
IHByZXZpb3VzbHkKc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRvIHRoZSB1
c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgoKSGFuZGxpbmcgZm9jdXNlZCBhbmQgc2Vs
ZWN0ZWQgZWxlbWVudCB3aWxsIGJlIGRvbmUgaW4gYSBmdXR1cmUgcGF0Y2guCgpbMV0gaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12aXNpYmlsaXR5
LWF1dG8KWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jcmVsZXZhbnQt
dG8tdGhlLXVzZXIKWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jc2tp
cHMtaXRzLWNvbnRlbnRzCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0OgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sOgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0
ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1
bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNvcmU6OkNvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToK
KFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2JzZXJ2ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSk6CihXZWJDb3Jl
OjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlvbk9ic2Vy
dmVyKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6aW52YWxpZGF0
ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9sbElmTmVlZGVkKToKKiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6CihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkKToKKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMgY29uc3QpOgooV2ViQ29yZTo6RWxlbWVudDo6
dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyk6CihXZWJDb3JlOjpFbGVtZW50Ojppc1JlbGV2
YW50VG9Vc2VyIGNvbnN0KToKKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmll
d3BvcnRDaGFuZ2UpOgooV2ViQ29yZTo6RWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmls
aXR5QXV0b0lmTmVlZGVkKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oOgoqIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaDoKKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0
YTo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJl
RGF0YS5oOiBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgY29udGVudCBpcyByZWxldmFudCB0byB0aGUg
dXNlci4KKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcDoKKFdlYkNv
cmU6OkhUTUxEaWFsb2dFbGVtZW50OjpzaG93TW9kYWwpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlv
bkF0QW5jaG9yKTogaGFuZGxlIGFuY2hvciBzY3JvbGxzOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2ls
bENoYW5nZSk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgooV2Vi
Q29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBjb25zdCk6IHRha2UgaW50byBhY2NvdW50IGN1
cnJlbnQgdmFsdWUgb2YgZWZmZWNpdGl2ZVNraXBzQ29udGVudC4KKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29u
dGVudCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcDoKKFdlYkNvcmU6OnJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNM
YXlvdXQpOiBhIGNoYW5nZSBpbiBlZmZlY2l0aXZlU2tpcHNDb250ZW50IHJlcXVpcmVzIGEgbGF5
b3V0LgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgooV2ViQ29yZTo6
U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2hhcmluZ1Jlc29sdmVyLmNwcDogZG8gbm90IHNoYXJlIHN0eWxlcyB3aXRoIGRpZmZlcmVu
dCBpc1JlbGV2YW50VG9Vc2VyIHZhbHVlcy4KKFdlYkNvcmU6OlN0eWxlOjpTaGFyaW5nUmVzb2x2
ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCBjb25zdCk6Ci0tLQogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgNzggKysrKysrKysrKysrKysrKysrKwog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgMjIgKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgfCA0MSArKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAx
MyArKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggICAgICAgICAgfCAg
MiArCiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggICAgICAgICAgICAgfCAgMSAr
CiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCAgICAgfCAgNCArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgIHwgIDMgKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwICAgIHwgMjIgKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAgfCAxMyArKystCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAgNSAtLQogLi4u
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgIDEgKwogU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgMTAgKystCiBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgMyArCiBMYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL2NvbnRlbnQt
dmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZp
c2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12aXNp
YmlsaXR5LTA2OC5odG1sICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL2NvbnRlbnQtdmlzaWJp
bGl0eS0wNzAtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDMgKy0KIC4uLi9jb250ZW50LXZpc2liaWxp
dHktMDcxLWV4cGVjdGVkLnR4dCAgICAgICB8IDE3ICsrLS0KIC4uLi9jb250ZW50LXZpc2liaWxp
dHktMDcyLWV4cGVjdGVkLnR4dCAgICAgICB8ICA4ICstCiAyMSBmaWxlcyBjaGFuZ2VkLCAyMjgg
aW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNDZkNGFmNDc4MDVmLi4xOWRjNzE3MzI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTM4LDYgKzEzOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVyc2Vj
dGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAtMzY5
LDYgKzM3MCwzMyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiAK
K2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBmaW5h
bCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1
bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxl
RXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlv
bk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5hbAor
ICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgZm9y
IChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50
ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRWaXNp
YmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAgICB9
CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJbnRl
cnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBJ
bnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQorfTsK
Kwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CiBi
b29sIERvY3VtZW50OjpoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZSA9IGZhbHNlOwogc3Rh
dGljIGNvbnN0IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdBZnRl
ck1lZGlhRmluaXNoZXNQbGF5aW5nIHsgMV9zIH07CkBAIC05NDIyLDYgKzk0NTAsNTYgQEAgYm9v
bCBEb2N1bWVudDo6bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBt
X3NldHRpbmdzLT5sYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpICYmICFtX3F1aXJrcy0+c2hvdWxk
RGlzYWJsZUxhenlJbWFnZUxvYWRpbmdRdWlyaygpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQor
eworICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1f
Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6b2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChhdXRvKiBpbnRl
cnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkpCisgICAgICAg
IGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1lbnQpOworfQorCit2b2lkIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dW5vYnNlcnZlKEVsZW1lbnQmIGVsZW1lbnQpCit7
CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2ZXItPnVub2JzZXJ2ZShlbGVt
ZW50KTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKQoreworICAgIGlmICghbV9vYnNl
cnZlcikgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gQ29udGVudFZpc2liaWxpdHlJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrOjpjcmVhdGUoKm1fZG9jdW1lbnQpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJn
aW5GYWxsYmFjayhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiMCUiKSk7CisgICAgICAgIEludGVy
c2VjdGlvbk9ic2VydmVyOjpJbml0IG9wdGlvbnMgeyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNp
YmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrLCB7IH0gfTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9
IEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGUoKm1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJh
Y2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBv
YnNlcnZlci5yZXR1cm5WYWx1ZSgpLnB0cigpOworICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZl
ci5nZXQoKTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmludmFs
aWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9Gb3JTY3JvbGxJZk5lZWRlZChFbGVtZW50KiBzY3Jv
bGxBbmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJnZXRzKCkpIHsK
KyAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5k
ZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8pCisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMo
Q29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFsc2UpOworICAgIH0KKyAgICBzY3Jv
bGxBbmNob3ItPmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1dG9JZk5lZWRlZCgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVOVF9SRUxFQVNFX0xPRwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNmMzIxZjZjN2MuLjQyNTBlM2Q5M2VmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBjbGFzcyBUcmFuc2Zvcm1Tb3VyY2U7
CiBjbGFzcyBUcmVlV2Fsa2VyOwogY2xhc3MgVW5kb01hbmFnZXI7CiBjbGFzcyBWaXNpYmlsaXR5
Q2hhbmdlQ2xpZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5r
U3RhdGU7CiBjbGFzcyBXYWtlTG9ja01hbmFnZXI7CiBjbGFzcyBXZWJBbmltYXRpb247CkBAIC0z
NTQsNiArMzU1LDIzIEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0cklt
cGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmKTsKKwor
ICAgIHZvaWQgb2JzZXJ2ZShFbGVtZW50Jik7CisgICAgdm9pZCB1bm9ic2VydmUoRWxlbWVudCYp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9yU2Nyb2xsSWZO
ZWVkZWQoRWxlbWVudCogc2Nyb2xsQW5jaG9yKTsKKworcHJpdmF0ZToKKyAgICBJbnRlcnNlY3Rp
b25PYnNlcnZlciogZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTsKKworICAgIFJlZlB0cjxJ
bnRlcnNlY3Rpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKKyAgICBXZWFrUHRyPERvY3VtZW50LCBX
ZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKQEAgLTE2ODMsNiArMTcwMSw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNl
cnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9p
ZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgp
OwpAQCAtMTk1NSw2ICsxOTc1LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU7CisKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3Rvbmlj
VGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggNzVmN2YyZTBiNTk2Li5iMWIzMTM5NDliZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTEwNjksNiArMTA2OSw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5k
ZXJFbGVtZW50KiwgTGF5b3V0UmVjdD4+IGxpc3RCb3hFbGVtZW50U2Nyb2xsCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8Ym9vbCwgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcmcpCiB7CisgICAgZG9jdW1lbnQoKS5jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGUoKS5pbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvRm9y
U2Nyb2xsSWZOZWVkZWQodGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBu
dWxscHRyOwpAQCAtMTEzNCw2ICsxMTM2LDggQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmll
dyhib29sIGFsaWduVG9Ub3ApCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZChib29sIGNlbnRlcklmTmVlZGVkKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlKCkuaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0ZvclNjcm9s
bElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmICghcmVuZGVyZXIoKSkKQEAgLTMzNjUsNiArMzM2
OSw4IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5
QXV0b0lmTmVlZGVkKCk7CisKICAgICBSZWZQdHI8RWxlbWVudD4gbmV3VGFyZ2V0ID0gdGhpczsK
IAogICAgIC8vIElmIHdlIGRvbid0IGhhdmUgcmVuZGVyZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxs
IGNvbXB1dGUgaXQgd2l0aG91dCBzdHlsZSB1cGRhdGUuCkBAIC01MjA1LDQgKzUyMTEsMzkgQEAg
dm9pZCBFbGVtZW50OjpzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAg
ICBzZXRFdmVudFRhcmdldEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpEaXNwbGF5Q29udGVudHNDaGFu
Z2VkLCBjaGFuZ2VkKTsKIH0KIAorT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IEVs
ZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKSBjb25zdAoreworICAgIGlmICghaGFzUmFy
ZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRh
KCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVD
b250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29s
IHZhbHVlKQoreworICAgIGlmIChjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuY29udGFpbnMoc3Rh
dHVzKSAhPSB2YWx1ZSkgeworICAgICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5jb250ZW50
UmVsZXZhbmN5U3RhdHVzKCkuc2V0KHN0YXR1cywgdmFsdWUpOworICAgICAgICBpbnZhbGlkYXRl
U3R5bGUoKTsKKyAgICB9Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNSZWxldmFudFRvVXNlcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVEYXRhKCktPmNv
bnRlbnRSZWxldmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojpjb250ZW50VmlzaWJp
bGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wgaXNJbnRlcnNlY3RpbmcpCit7CisgICAgdXBkYXRlQ29u
dGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCBpc0lu
dGVyc2VjdGluZyk7Cit9CisKK3ZvaWQgRWxlbWVudDo6aW52YWxpZGF0ZUNvbnRlbnRWaXNpYmls
aXR5QXV0b0lmTmVlZGVkKCkKK3sKKyAgICBmb3IgKGF1dG8gdGFyZ2V0ID0gdGhpczsgdGFyZ2V0
OyB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAg
ICAgIGlmICh0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgp
LmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAg
ICAgICAgIHRhcmdldC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZh
bmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5k
ZXggYjc3MTY3NDJjMTM1Li40ZTgyZDY5MGZiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTA0
LDYgKzEwNCwxMSBAQCBzdHJ1Y3QgU2hhZG93Um9vdEluaXQ7CiAKIHVzaW5nIEV4cGxpY2l0bHlT
ZXRBdHRyRWxlbWVudHNNYXAgPSBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFZlY3RvcjxXZWFrUHRy
PEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4+PjsKIAorZW51bSBjbGFz
cyBDb250ZW50UmVsZXZhbmN5U3RhdHVzIDogdWludDhfdCB7CisgICAgVmlzaWJsZSA9IDEgPDwg
MCwKKyAgICAvLyBGSVhNRTogYWRkIEZvY3VzZWQsIFNlbGVjdGVkLgorfTsKKwogbmFtZXNwYWNl
IFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwogZW51bSBjbGFzcyBDaGFuZ2UgOiB1aW50OF90OwpA
QCAtNzE5LDYgKzcyNCwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwbGF5Q29udGVudHNDaGFu
Z2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgPSB0
cnVlKTsKIAorICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBjb250ZW50UmVs
ZXZhbmN5U3RhdHVzKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3Rh
dHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMsIGJvb2wpOworICAgIGJvb2wgaXNSZWxldmFudFRv
VXNlcigpIGNvbnN0OworCisgICAgdm9pZCBjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdl
KGJvb2wpOworCisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudFZpc2liaWxpdHlBdXRvSWZOZWVk
ZWQoKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaAppbmRleCA1MzM3MDJjNmRkN2EuLjk4YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaApAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKIAogICAgIEV4cGxp
Y2l0bHlTZXRBdHRyRWxlbWVudHNNYXAmIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAoKSB7
IHJldHVybiBtX2V4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7IH0KIAorICAgIE9wdGlvblNl
dDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiYgY29udGVudFJlbGV2YW5jeVN0YXR1cygpIHsgcmV0
dXJuIG1fY29udGVudFJlbGV2YW5jeVN0YXR1czsgfQorCiAjaWYgRFVNUF9OT0RFX1NUQVRJU1RJ
Q1MKICAgICBPcHRpb25TZXQ8VXNlVHlwZT4gdXNlVHlwZXMoKSBjb25zdAogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBkNDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMzI2LDYgKzMyNiw3IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBVc2VkIGJ5IEVsZW1lbnRSYXJlRGF0YS4gRGVmaW5lZCBoZXJlIGZvciBiZXR0ZXIg
cGFja2luZyBpbiA2NC1iaXQuCiAgICAgaW50IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9OwogICAg
IHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8Q29udGVu
dFJlbGV2YW5jeVN0YXR1cz4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc0VsZW1lbnRSYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlh
bG9nRWxlbWVudC5jcHAKaW5kZXggZmM5MWQyM2ZkYzkzLi43NDY0OThhNTEzY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwxMCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAogICAgIHNl
dElzTW9kYWwodHJ1ZSk7CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlmICghaXNJ
blRvcExheWVyKCkpIHsKKyAgICAgICAgaW52YWxpZGF0ZUNvbnRlbnRWaXNpYmlsaXR5QXV0b0lm
TmVlZGVkKCk7CiAgICAgICAgIGFkZFRvVG9wTGF5ZXIoKTsKKyAgICB9CiAKICAgICBtX3ByZXZp
b3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDc1OGE4N2ZlYTBmNy4uYzMzYTZiMDY3NDdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMzc4LDYgKzIzNzgsOSBAQCB2b2lkIEZy
YW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKENvbnRhaW5lck5vZGUqIGFu
Y2hvck5vZGUpCiAKICAgICBjYW5jZWxTY2hlZHVsZWRTY3JvbGxzKCk7CiAKKyAgICBpZiAoaXM8
RWxlbWVudD4oYW5jaG9yTm9kZSkpCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLmludmFsaWRhdGVDb250ZW50VmlzaWJpbGl0eUF1
dG9Gb3JTY3JvbGxJZk5lZWRlZChkb3duY2FzdDxFbGVtZW50PihhbmNob3JOb2RlKSk7CisKICAg
ICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgbGF5b3V0IGJlZm9yZSBzY3JvbGxpbmcsIG90aGVy
d2lzZSB3ZSBjb3VsZAogICAgIC8vIHJlYWxseSBtZXNzIHRoaW5ncyB1cCBpZiBhbiBhbmNob3Ig
c2Nyb2xsIGNvbWVzIGF0IGEgYmFkIG1vbWVudC4KICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKaW5kZXggN2U5OTM2YzUyMTI2Li5lZmU2YThlY2JhZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTgxOSw2ICs4MTksMTMgQEAgdm9p
ZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAg
IGlmIChtX3N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gbmV3U3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSAmJiBlbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51bm9ic2VydmUoKmVs
ZW1lbnQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0
eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGRvY3VtZW50
KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkub2JzZXJ2ZSgqZWxlbWVudCgpKTsK
KyAgICAgICAgfQorCiAgICAgICAgIGF1dG8gbmVlZHNJbnZhbGlkYXRlRXZlbnRSZWdpb24gPSBb
Jl0gewogICAgICAgICAgICAgaWYgKG1fc3R5bGUuZWZmZWN0aXZlUG9pbnRlckV2ZW50cygpICE9
IG5ld1N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTg2NCw2ICs4NzEsOSBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnN0eWxlV2ls
bENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ldwogICAg
ICAgICBzZXRIYXNOb25WaXNpYmxlT3ZlcmZsb3coZmFsc2UpOwogICAgICAgICBzZXRIYXNUcmFu
c2Zvcm1SZWxhdGVkUHJvcGVydHkoZmFsc2UpOwogICAgICAgICBzZXRIYXNSZWZsZWN0aW9uKGZh
bHNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobmV3U3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byAmJiBlbGVtZW50KCkpCisgICAgICAgICAg
ICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLm9ic2VydmUoKmVs
ZW1lbnQoKSk7CiAgICAgfQogCiAgICAgYm9vbCBoYWRPdXRsaW5lID0gb2xkU3R5bGUgJiYgb2xk
U3R5bGUtPmhhc091dGxpbmUoKTsKQEAgLTEwNzIsNiArMTA4Miw5IEBAIHZvaWQgUmVuZGVyRWxl
bWVudDo6d2lsbEJlRGVzdHJveWVkKCkKIAogICAgIGlmIChtX2hhc1BhdXNlZEltYWdlQW5pbWF0
aW9ucykKICAgICAgICAgdmlldygpLnJlbW92ZVJlbmRlcmVyV2l0aFBhdXNlZEltYWdlQW5pbWF0
aW9ucygqdGhpcyk7CisKKyAgICBpZiAoc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENv
bnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQoKS5j
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51bm9ic2VydmUoKmVsZW1lbnQoKSk7CiB9
CiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQo
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpAQCAtMjE5Myw0ICsyMjA2LDEzIEBAIEZsb2F0
UmVjdCBSZW5kZXJFbGVtZW50OjpyZWZlcmVuY2VCb3hSZWN0KENTU0JveFR5cGUgYm94VHlwZSkg
Y29uc3QKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZFNr
aXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
SGlkZGVuKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZWxlbWVudCgpICYmICFl
bGVtZW50KCktPmlzUmVsZXZhbnRUb1VzZXIoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggNmZlZDhmYmJjZTA2Li44ZjYxMDE3Mzk2MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAtMzEyLDYgKzMxMiw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZXN0YWJsaXNoZXNJbmRlcGVuZGVudEZvcm1h
dHRpbmdDb250ZXh0KCkgY29uc3Q7CiAgICAgYm9vbCBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRl
eHQoKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKICAgICAgICAgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdEZsYWcgID0gMSA8PCAwLApAQCAtNTM5LDcgKzU0MSw5IEBAIGlubGluZSBib29sIFJl
bmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5TGF5b3V0T3JQYWludENvbnRhaW5tZW50KCkgY29uc3QK
IAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQo
KSBjb25zdAogewotICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQo
c3R5bGUoKS5jb250YWluc1NpemUoKSB8fCBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0g
Q29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisgICAgaWYgKHNob3VsZFNraXBDb250ZW50KCkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxl
Q29udGFpbm1lbnQoc3R5bGUoKS5jb250YWluc1NpemUoKSk7CiB9CiAKIGlubGluZSBib29sIFJl
bmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKQEAg
LTY1MSw2ICs2NTUsMTMgQEAgaW5saW5lIFJlbmRlck9iamVjdCogUmVuZGVyRWxlbWVudDo6bGFz
dEluRmxvd0NoaWxkKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAoraW5saW5lIGJv
b2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKGlz
VGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRl
ckVsZW1lbnQ+KCp0aGlzKS5zaG91bGRTa2lwQ29udGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUkVOREVSX09CSkVDVChSZW5kZXJF
bGVtZW50LCBpc1JlbmRlckVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggNGZkOWQwZmI4MzY1Li4zNTQ4MGU0MGIyZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNjM3LDExICsyNjM3LDYgQEAg
Ym9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBw
YXJlbnQoKSAmJiBwYXJlbnQoKS0+c3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKTsKIH0K
IAotYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW47Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdEZXNj
cmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKaW5kZXggZWU5MjgwYjhmMTc3Li4zOGQzOGQwZTE1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODY1LDYgKzg2NSw3IEBA
IHN0YXRpYyBib29sIHJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3Qg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYKICAgICAgICAgfHwgZmlyc3QubGluZVNuYXAgIT0gc2Vj
b25kLmxpbmVTbmFwCiAgICAgICAgIHx8IGZpcnN0LmxpbmVBbGlnbiAhPSBzZWNvbmQubGluZUFs
aWduCiAgICAgICAgIHx8IGZpcnN0LmhhbmdpbmdQdW5jdHVhdGlvbiAhPSBzZWNvbmQuaGFuZ2lu
Z1B1bmN0dWF0aW9uCisgICAgICAgIHx8IGZpcnN0LmVmZmVjdGl2ZVNraXBzQ29udGVudCAhPSBz
ZWNvbmQuZWZmZWN0aXZlU2tpcHNDb250ZW50CiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElO
R19UT1VDSCkKICAgICAgICAgfHwgZmlyc3QudXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyAhPSBz
ZWNvbmQudXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDI1MGI1NmQwMjA5ZS4uMTI1NGIyYjg0YWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNTk0LDcgKzU5NCwxNSBAQCB2
b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSogdXNlckFnZW50QXBwZWFyYW5jZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICBh
dXRvIGVmZmVjdGl2ZVNraXBzQ29udGVudCA9IFtdIChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIC0+IGJvb2wgeworICAgICAgICBpZiAoc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09
IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQgJiYg
IWVsZW1lbnQtPmlzUmVsZXZhbnRUb1VzZXIoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH07CisKKyAgICBpZiAoZWZmZWN0aXZlU2tpcHNDb250ZW50KHN0eWxlLCBtX2VsZW1lbnQpKQog
ICAgICAgICBzdHlsZS5zZXRFZmZlY3RpdmVTa2lwc0NvbnRlbnQodHJ1ZSk7CiAKICAgICBhZGp1
c3RGb3JTaXRlU3BlY2lmaWNRdWlya3Moc3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCmluZGV4IGZjMTJlZWQ4NGYyZC4uNTZlNThiZTE4MTdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCkBA
IC0yNTgsNiArMjU4LDkgQEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRo
RWxlbWVudChjb25zdCBDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICBpZiAoZWxlbWVu
dEhhc0RpcmVjdGlvbkF1dG8oY2FuZGlkYXRlRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSAhPSBlbGVt
ZW50LmlzUmVsZXZhbnRUb1VzZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYg
KGNhbmRpZGF0ZUVsZW1lbnQuaXNMaW5rKCkgJiYgY29udGV4dC5lbGVtZW50TGlua1N0YXRlICE9
IHN0eWxlLT5pbnNpZGVMaW5rKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZjliMGNlZDE4Y2M2Li44YmUxMzQ5YTM5OTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNDY5Myw2ICs0NjkzLDggQEAgd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby8KIHdlYmtpdC5v
cmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemlu
Zy9hc3BlY3QtcmF0aW8vZmxvYXRzLWFzcGVjdC1yYXRpby0wMDEuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCiAjIGNvbnRhaW4taW50cmluc2ljLXNpemUKK3dlYmtpdC5vcmcvYi8yNDYzMzgg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2F1dG8tMDAxLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yNDYzMzgg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2F1dG8tMDAyLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYzMzgg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2F1dG8tMDA3Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYzMzgg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2F1dG8tMDA5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYyODMg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNpemUtbG9naWNhbC0wMDMuaHRtbCBbIFNr
aXAgXQpAQCAtNDgxNSw4ICs0ODE3LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRyaW5zaWMuaHQKICMgZm9y
Y2VkIGxheW91dAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAg
XQogIyBjLXY6IGF1dG8KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktYXV0by1z
dGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
ZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVk
LnR4dAppbmRleCBjZmQ4N2JkMjFmODYuLjczMjY4ZmRiMDhkZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVu
dC12aXNpYmlsaXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dCIg
YnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVu
dC12aXNpYmlsaXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJ0ZXh0MiIgYnV0IGdvdCAidW5rbm93biIKK0ZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3aXRo
IGNvbnRlbnQtdmlzaWJpbGl0eTsgc2luZ2xlIHRleHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
InRleHQiIGJ1dCBnb3QgInRvcCIKK0ZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3aXRoIGNvbnRl
bnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2NrcyBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAidGV4dDIiIGJ1dCBnb3QgInRvcCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CmluZGV4IDU4ZTM2NWVi
MzFhYy4uYjEwM2VmODJkODMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAog
Ci1GQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBmb2N1cyBhc3NlcnRfZXF1YWxz
OiBzdGVwMSBoZWlnaHQgZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKK0ZBSUwgQ29udGVudCBWaXNp
YmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzIGFzc2VydF9sZXNzX3RoYW46IHN0ZXAyIG9mZnNldCBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gMzAwMCBidXQgZ290IDMwMDAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwKaW5kZXggMzMw
MjU2YWRiMjk4Li5kMTI3Y2FhYzQ1NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbApAQCAtNDcsNyArNDcsNyBAQCBhc3luY190ZXN0
KCh0KSA9PiB7CiAgICAgfSk7CiAKICAgICBmb2N1c2FibGUuZm9jdXMoKTsKLSAgICByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoc3RlcDIpOworICAgIHNldFRpbWVvdXQoKCkgPT4geyBzdGVwMigpIH0p
OwogICB9CiAgIC8vIEFmdGVyIGZvY3VzaW5nIHRoZSBzdWJ0cmVlLCB0aGUgY29udGFpbmVyIHNo
b3VsZCBiZSBzb21ld2hlcmUgY2xvc2VyIHRoYW4KICAgLy8gMzAwMHB4IChzY3JvbGxlZCBpbnRv
IHZpZXcpIGFuZCB0aGUgaGVpZ2h0IHNob3VsZCBiZSAxMHB4LCBzaW5jZSBpdCBubwpAQCAtOTIs
NyArOTIsNyBAQCBhc3luY190ZXN0KCh0KSA9PiB7CiAgICAgfSk7CiAgICAgdC5kb25lKCk7CiAg
IH0KLSAgc3RlcDEoKTsKKyAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXAxKTsKIH0pOwogPC9z
Y3JpcHQ+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKaW5kZXggYTNlNTkwNmQ2YzNmLi45MTEw
MmE3MDVhZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1oZWxsbwogCi1G
QUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24gYXNzZXJ0X2VxdWFs
czogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitGQUlMIENvbnRlbnQgVmlz
aWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24gYXNzZXJ0X2VxdWFsczogc3RlcDMgaGVpZ2h0
IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMTAwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAppbmRleCA0NGEyOTM2
NTAzNjEuLjVjMWRmY2UwMDg2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSw4IEBA
Ci1oZWxsbwotaGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8KIAotRkFJTCBPbmUgZWxlbWVudHMg
c2VsZWN0ZWQ6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFu
Z2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVtZW50czogIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBzaHJ1bmsgdG8gY292ZXIgZmV3ZXIgZWxlbWVu
dHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZmxp
cHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGZyb250IHRvIGJhY2s6ICBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZ29lcyBiYWNrIGFuZCBmb3J0
aDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBPbmUgZWxlbWVu
dHMgc2VsZWN0ZWQ6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZB
SUwgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVtZW50czogIGFzc2VydF9mYWxzZTog
MiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCBSYW5nZSBzaHJ1bmsgdG8gY292ZXIgZmV3
ZXIgZWxlbWVudHM6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZB
SUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6ICBhc3NlcnRfZmFsc2U6IDIgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGZyb250IHRvIGJh
Y2s6ICBhc3NlcnRfZmFsc2U6IDMgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2Ug
Z29lcyBiYWNrIGFuZCBmb3J0aDogIGFzc2VydF9mYWxzZTogdGVzdF8wLCBjb250YWluZXJfMSBl
eHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKaW5kZXggMDBmMWM3ZjQ0
NDE4Li5mOTUxOGJjZmUwNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAK
IFBBU1Mgb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgotRkFJTCB0d28uZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQx
Ci1GQUlMIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBl
eHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmb3VyLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBm
aXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAz
MDA3IGJ1dCBnb3QgMzA0MQorUEFTUyB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQQVNT
IHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmb3VyLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOgorUEFTUyBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464526</attachid>
            <date>2023-01-17 06:56:47 -0800</date>
            <delta_ts>2023-01-18 02:31:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230117145645.patch</filename>
            <type>text/plain</type>
            <size>32124</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA4MGY4MDBkYWE1ZjYwZWEwZGViNWUyYzFjMzJmOTc4ZTllYmJjNzI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogRnJp
LCAxMyBKYW4gMjAyMyAxMTozMDoxMiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCi0gc3RhdGUgaXMga2VwdCB1c2luZyBDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIGVudW0gY2xhc3Mgd2hldGhlciB0aGUKICBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8gc3VidHJlZSBjb250YWlucyBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZAogIGVsZW1lbnRz
LCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoKVGhlIG1ldGhv
ZHMgZm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55
IHByZXZpb3VzbHkKc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRvIHRoZSB1
c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgoKSGFuZGxpbmcgZm9jdXNlZCBhbmQgc2Vs
ZWN0ZWQgZWxlbWVudCB3aWxsIGJlIGRvbmUgaW4gYSBmdXR1cmUgcGF0Y2guCgpbMV0gaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12aXNpYmlsaXR5
LWF1dG8KWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jcmVsZXZhbnQt
dG8tdGhlLXVzZXIKWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jc2tp
cHMtaXRzLWNvbnRlbnRzCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0OgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sOgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0
ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1
bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNvcmU6OkNvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToK
KFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2JzZXJ2ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSk6CihXZWJDb3Jl
OjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlvbk9ic2Vy
dmVyKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dXBkYXRlQ29u
dGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKTogaGVscGVyIGFyb3VuZCBsYWNr
IG9mIHNjcm9sbCBhbmNob3JpbmcuCiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6Ciog
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xs
SW50b1ZpZXcpOiBtYWtlIHN1cmUgc2Nyb2xsZWQgdG8gZWxlbWVudCBpcyBpbiB2aXNpYmxlIHN1
YnRyZWUuCihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVlZGVkKTogbWFrZSBz
dXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6
RWxlbWVudDo6Zm9jdXMpOiBtYWtlIHN1cmUgZm9jdXNlZCBlbGVtZW50IGlzIGluIHZpc2libGUg
c3VidHJlZS4KKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMgY29uc3Qp
OgooV2ViQ29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyk6CihXZWJD
b3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzSWZOZWVkZWQpOiB1cGRh
dGUgaWYgaW4gY29udGVudC12aXNpYmlsaXR5IGF1dG8gc3VidHJlZS4KKFdlYkNvcmU6OkVsZW1l
bnQ6OmlzUmVsZXZhbnRUb1VzZXIgY29uc3QpOiBzZWUgWzJdCihXZWJDb3JlOjpFbGVtZW50Ojpj
b250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKTogaGFuZGxlIGNoYW5nZWQgdmlzaWJpbGl0
eSBpbiB2aWV3cG9ydCBzdGF0dXMuCiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaDoKKiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmg6CihXZWJDb3JlOjpFbGVtZW50UmFy
ZURhdGE6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaDoga2VlcCB0cmFjayBvZiB3aGV0aGVyIGNvbnRlbnQgaXMgcmVsZXZhbnQgdG8g
dGhlIHVzZXIuCiogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHA6CihX
ZWJDb3JlOjpIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKTogbWFrZSBzdXJlIGVsZW1lbnQg
aXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKTog
aGFuZGxlIGFuY2hvciBzY3JvbGxzLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6IGFk
ZC9yZW1vdmUgb2JzZXJ2YXRpb24gZm9yIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50
LgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKTogcmVtb3ZlIG9ic2Vy
dmF0aW9uIGZvciBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudC4KKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlTaXplQ29udGFpbm1lbnQgY29uc3QpOiB0YWtlIGludG8gYWNjb3VudCBjdXJyZW50IHZh
bHVlIG9mIGVmZmVjdGl2ZVNraXBzQ29udGVudC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hv
dWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCBjb25z
dCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcDoKKFdlYkNvcmU6OnJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQpOiBh
IGNoYW5nZSBpbiBlZmZlY2l0aXZlU2tpcHNDb250ZW50IHJlcXVpcmVzIGEgbGF5b3V0LgoqIFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OkFk
anVzdGVyOjphZGp1c3QgY29uc3QpOiB0YWtlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRv
IGFjY291bnQuCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3Bw
OiBkbyBub3Qgc2hhcmUgc3R5bGVzIHdpdGggZGlmZmVyZW50IGlzUmVsZXZhbnRUb1VzZXIgdmFs
dWVzLgooV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhF
bGVtZW50IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAg
ICAgICAgICAgfCA4MiArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCAgICAgICAgICAgICAgICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwgNDEgKysrKysrKysrKwogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCAgICAgICAgICAgICAgICAgIHwgMTMgKysrCiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmggICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmggICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEaWFsb2dFbGVtZW50LmNwcCAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwICAgICAgICAgICAgIHwgIDMgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwICAgIHwgMjIgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggICAgICB8IDEzICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgICAgIHwgIDUgLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuY3BwICAgICAgICB8IDEwICsrLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5n
UmVzb2x2ZXIuY3BwIHwgIDMgKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAg
ICAgICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVkLnR4
dCAgICAgICB8ICA0ICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQg
ICAgICAgfCAgMiArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbCAgICAgICAgICAg
ICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dCAgICAg
ICB8ICAzICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgICAgICAg
fCAxNyArKy0tCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQgICAgICAg
fCAgOCArLQogMjEgZmlsZXMgY2hhbmdlZCwgMjMyIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2ZDRhZjQ3ODA1Zi4uNmM2MTYwNGE1
MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzOCw2ICsxMzgsNyBAQAogI2luY2x1
ZGUgIkltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUg
IkludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUg
IkpTTGF6eUV2ZW50TGlzdGVuZXIuaCIKQEAgLTM2OSw2ICszNzAsMzMgQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKERvY3VtZW50KTsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1
c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUlu
dGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0
eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUlu
dGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKwor
ICAgIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVy
JiwgY29uc3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMs
IEludGVyc2VjdGlvbk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50
cmllcy5pc0VtcHR5KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7
CisgICAgICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAg
ICAgICAgICAgICBlbGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5
LT5pc0ludGVyc2VjdGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAg
IH0KKworICAgIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
aygmZG9jdW1lbnQpCisgICAgeworICAgIH0KK307CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBj
TWF4V3JpdGVSZWN1cnNpb25EZXB0aCA9IDIxOwogYm9vbCBEb2N1bWVudDo6aGFzRXZlckNyZWF0
ZWRBbkFYT2JqZWN0Q2FjaGUgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEludGVy
dmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nQWZ0ZXJNZWRpYUZpbmlzaGVzUGxheWluZyB7IDFf
cyB9OwpAQCAtOTQyMiw2ICs5NDUwLDYwIEBAIGJvb2wgRG9jdW1lbnQ6OmxhenlJbWFnZUxvYWRp
bmdFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9zZXR0aW5ncy0+bGF6eUltYWdlTG9hZGlu
Z0VuYWJsZWQoKSAmJiAhbV9xdWlya3MtPnNob3VsZERpc2FibGVMYXp5SW1hZ2VMb2FkaW5nUXVp
cmsoKTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRT
dGF0ZSA9IG1ha2VVbmlxdWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7
CisgICAgcmV0dXJuICptX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30K
Kwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6Om9ic2VydmUoRWxlbWVudCYg
ZWxlbWVudCkKK3sKKyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJ
bnRlcnNlY3Rpb25PYnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2Jz
ZXJ2ZShlbGVtZW50KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
OnVub2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChtX29ic2VydmVyKQorICAg
ICAgICBtX29ic2VydmVyLT51bm9ic2VydmUoZWxlbWVudCk7Cit9CisKK0ludGVyc2VjdGlvbk9i
c2VydmVyKiBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlv
bk9ic2VydmVyKCkKK3sKKyAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsKKyAgICAgICAgYXV0byBjYWxs
YmFjayA9IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjazo6Y3Jl
YXRlKCptX2RvY3VtZW50KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2soTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIjAlIikpOworICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6SW5pdCBvcHRp
b25zIHsgc3RkOjpudWxsb3B0LCBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjaywg
eyB9IH07CisgICAgICAgIGF1dG8gb2JzZXJ2ZXIgPSBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y3Jl
YXRlKCptX2RvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zKSk7Cisg
ICAgICAgIGlmIChvYnNlcnZlci5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICBtX29ic2VydmVyID0gb2JzZXJ2ZXIucmV0dXJuVmFsdWUoKS5wdHIo
KTsKKyAgICB9CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7Cit9CisKKy8vIFdvcmthcm91
bmQgZm9yIGxhY2sgb2Ygc3VwcG9ydCBmb3Igc2Nyb2xsIGFuY2hvcmluZy4gV2UgbWFrZSBzdXJl
IGFueSBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudHMKKy8vIGFib3ZlIHRoZSBvbmUg
dG8gYmUgc2Nyb2xsZWQgdG8gYXJlIGFscmVhZHkgaGlkZGVuLCBzbyB0aGUgc2Nyb2xsIHBvc2l0
aW9uIHdpbGwgbm90IG5lZWQgdG8gYmUgYWRqdXN0ZWQKKy8vIGxhdGVyLgorLy8gRklYTUU6IHJl
bW92ZSB3aGVuIHNjcm9sbCBhbmNob3JpbmcgaXMgaW1wbGVtZW50ZWQuCit2b2lkIENvbnRlbnRW
aXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNj
cm9sbElmTmVlZGVkKEVsZW1lbnQqIHNjcm9sbEFuY2hvcikKK3sKKyAgICBpZiAoIW1fb2JzZXJ2
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byB0YXJnZXQgOiBtX29ic2VydmVy
LT5vYnNlcnZhdGlvblRhcmdldHMoKSkgeworICAgICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC0+
cmVuZGVyZXIoKSAmJiB0YXJnZXQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHRhcmdldC0+dXBk
YXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxl
LCBmYWxzZSk7CisgICAgfQorICAgIHNjcm9sbEFuY2hvci0+dXBkYXRlQ29udGVudFJlbGV2YW5j
eVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBET0NVTUVOVF9SRUxFQVNFX0xP
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNmMzIxZjZjN2MuLjNmY2E3NGUxNGE5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTIzNyw2ICsyMzcsNyBAQCBjbGFzcyBUcmFuc2Zvcm1Tb3Vy
Y2U7CiBjbGFzcyBUcmVlV2Fsa2VyOwogY2xhc3MgVW5kb01hbmFnZXI7CiBjbGFzcyBWaXNpYmls
aXR5Q2hhbmdlQ2xpZW50OworY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2l0ZWRM
aW5rU3RhdGU7CiBjbGFzcyBXYWtlTG9ja01hbmFnZXI7CiBjbGFzcyBXZWJBbmltYXRpb247CkBA
IC0zNTQsNiArMzU1LDIzIEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0
ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVu
dFZpc2liaWxpdHlEb2N1bWVudFN0YXRlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQmKTsK
KworICAgIHZvaWQgb2JzZXJ2ZShFbGVtZW50Jik7CisgICAgdm9pZCB1bm9ic2VydmUoRWxlbWVu
dCYpOworCisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZO
ZWVkZWQoRWxlbWVudCogc2Nyb2xsQW5jaG9yKTsKKworcHJpdmF0ZToKKyAgICBJbnRlcnNlY3Rp
b25PYnNlcnZlciogZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTsKKworICAgIFJlZlB0cjxJ
bnRlcnNlY3Rpb25PYnNlcnZlcj4gbV9vYnNlcnZlcjsKKyAgICBXZWFrUHRyPERvY3VtZW50LCBX
ZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKQEAgLTE2ODMsNiArMTcwMSw4IEBAIHB1YmxpYzoKIAogICAgIExhenlMb2FkSW1hZ2VPYnNl
cnZlciYgbGF6eUxvYWRJbWFnZU9ic2VydmVyKCk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIGNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpOworCiAgICAgdm9p
ZCBzZXRIYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIHsgbV9oYXNWaXN1YWxseU5v
bkVtcHR5Q3VzdG9tQ29udGVudCA9IHRydWU7IH0KICAgICBib29sIGhhc1Zpc3VhbGx5Tm9uRW1w
dHlDdXN0b21Db250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNWaXN1YWxseU5vbkVtcHR5Q3Vz
dG9tQ29udGVudDsgfQogICAgIHZvaWQgZW5xdWV1ZVBhaW50VGltaW5nRW50cnlJZk5lZWRlZCgp
OwpAQCAtMTk1NSw2ICsxOTc1LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXp5TG9hZEltYWdlT2JzZXJ2ZXI+IG1fbGF6eUxvYWRJbWFnZU9ic2VydmVyOwogCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4gbV9jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGU7CisKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTW9ub3Rvbmlj
VGltZSBtX2RvY3VtZW50Q3JlYXRpb25UaW1lOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggNzVmN2YyZTBiNTk2Li5lYjEyMzFjMzgxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTEwNjksNiArMTA2OSw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5k
ZXJFbGVtZW50KiwgTGF5b3V0UmVjdD4+IGxpc3RCb3hFbGVtZW50U2Nyb2xsCiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8Ym9vbCwgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcmcpCiB7CisgICAgZG9jdW1lbnQoKS5jb250ZW50Vmlz
aWJpbGl0eURvY3VtZW50U3RhdGUoKS51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Ny
b2xsSWZOZWVkZWQodGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBudWxs
cHRyOwpAQCAtMTEzNCw2ICsxMTM2LDggQEAgdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhi
b29sIGFsaWduVG9Ub3ApCiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChi
b29sIGNlbnRlcklmTmVlZGVkKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVl
ZGVkKHRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKIAogICAgIGlmICghcmVuZGVyZXIoKSkKQEAgLTMzNjUsNiArMzM2OSw4IEBA
IHZvaWQgRWxlbWVudDo6Zm9jdXMoY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVl
ZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOworCiAgICAgUmVmUHRy
PEVsZW1lbnQ+IG5ld1RhcmdldCA9IHRoaXM7CiAKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHJl
bmRlcmVyIHlldCwgaXNGb2N1c2FibGUgd2lsbCBjb21wdXRlIGl0IHdpdGhvdXQgc3R5bGUgdXBk
YXRlLgpAQCAtNTIwNSw0ICs1MjExLDM5IEBAIHZvaWQgRWxlbWVudDo6c2V0RGlzcGxheUNvbnRl
bnRzQ2hhbmdlZChib29sIGNoYW5nZWQpCiAgICAgc2V0RXZlbnRUYXJnZXRGbGFnKEV2ZW50VGFy
Z2V0RmxhZzo6RGlzcGxheUNvbnRlbnRzQ2hhbmdlZCwgY2hhbmdlZCk7CiB9CiAKK09wdGlvblNl
dDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBFbGVtZW50Ojpjb250ZW50UmVsZXZhbmN5U3RhdHVz
KCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybiB7IH07
CisgICAgcmV0dXJuIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCk7
Cit9CisKK3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50
UmVsZXZhbmN5U3RhdHVzIHN0YXR1cywgYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAoY29udGVudFJl
bGV2YW5jeVN0YXR1cygpLmNvbnRhaW5zKHN0YXR1cykgIT0gdmFsdWUpIHsKKyAgICAgICAgZW5z
dXJlRWxlbWVudFJhcmVEYXRhKCkuY29udGVudFJlbGV2YW5jeVN0YXR1cygpLnNldChzdGF0dXMs
IHZhbHVlKTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CisgICAgfQorfQorCit2b2lkIEVs
ZW1lbnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZh
bmN5U3RhdHVzIHN0YXR1cywgYm9vbCB2YWx1ZSkKK3sKKyAgICBmb3IgKGF1dG8gdGFyZ2V0ID0g
dGhpczsgdGFyZ2V0OyB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJl
ZSgpKSB7CisgICAgICAgIGlmICh0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJl
cigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1
dG8pIHsKKyAgICAgICAgICAgIHRhcmdldC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhz
dGF0dXMsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30K
KworYm9vbCBFbGVtZW50Ojppc1JlbGV2YW50VG9Vc2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURhdGEoKS0+Y29udGVudFJlbGV2YW5jeVN0YXR1
cygpOworfQorCit2b2lkIEVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2Uo
Ym9vbCBpc0ludGVyc2VjdGluZykKK3sKKyAgICB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVz
KENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIGlzSW50ZXJzZWN0aW5nKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYjc3MTY3NDJjMTM1
Li44YmMyM2E0M2Q1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTA0LDYgKzEwNCwxMSBAQCBz
dHJ1Y3QgU2hhZG93Um9vdEluaXQ7CiAKIHVzaW5nIEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNN
YXAgPSBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFZlY3RvcjxXZWFrUHRyPEVsZW1lbnQsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4+PjsKIAorZW51bSBjbGFzcyBDb250ZW50UmVsZXZh
bmN5U3RhdHVzIDogdWludDhfdCB7CisgICAgVmlzaWJsZSA9IDEgPDwgMCwKKyAgICAvLyBGSVhN
RTogYWRkIEZvY3VzZWQsIFNlbGVjdGVkLgorfTsKKwogbmFtZXNwYWNlIFN0eWxlIHsKIGNsYXNz
IFJlc29sdmVyOwogZW51bSBjbGFzcyBDaGFuZ2UgOiB1aW50OF90OwpAQCAtNzE5LDYgKzcyNCwx
NCBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwbGF5Q29udGVudHNDaGFuZ2VkKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgPSB0cnVlKTsKIAorICAgIE9w
dGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkg
Y29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXMsIGJvb2wpOworICAgIHZvaWQgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1
c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXMsIGJvb2wpOworICAgIGJvb2wgaXNSZWxl
dmFudFRvVXNlcigpIGNvbnN0OworCisgICAgdm9pZCBjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0
Q2hhbmdlKGJvb2wpOworCisKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKaW5kZXggNTMzNzAyYzZkZDdhLi45OGJkYWE0NzkyNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBwdWJsaWM6CiAK
ICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwJiBleHBsaWNpdGx5U2V0QXR0ckVsZW1l
bnRzTWFwKCkgeyByZXR1cm4gbV9leHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwOyB9CiAKKyAg
ICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4mIGNvbnRlbnRSZWxldmFuY3lTdGF0
dXMoKSB7IHJldHVybiBtX2NvbnRlbnRSZWxldmFuY3lTdGF0dXM7IH0KKwogI2lmIERVTVBfTk9E
RV9TVEFUSVNUSUNTCiAgICAgT3B0aW9uU2V0PFVzZVR5cGU+IHVzZVR5cGVzKCkgY29uc3QKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZDQ1OWQwOTczOWRhLi4wN2VhZTE4
NDBjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTMyNiw2ICszMjYsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgLy8gVXNlZCBieSBFbGVtZW50UmFyZURhdGEuIERlZmluZWQgaGVyZSBm
b3IgYmV0dGVyIHBhY2tpbmcgaW4gNjQtYml0LgogICAgIGludCBtX3VudXN1YWxUYWJJbmRleCB7
IDAgfTsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXggeyAwIH07CisgICAgT3B0aW9u
U2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IG1fY29udGVudFJlbGV2YW5jeVN0YXR1czsKIAog
cHJpdmF0ZToKICAgICBib29sIG1faXNFbGVtZW50UmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCmluZGV4IGZjOTFkMjNmZGM5My4uYTY2MzQ4NTBhZjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcApAQCAtNzksOCAr
NzksMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTERpYWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCgp
CiAKICAgICBzZXRJc01vZGFsKHRydWUpOwogCi0gICAgaWYgKCFpc0luVG9wTGF5ZXIoKSkKKyAg
ICBpZiAoIWlzSW5Ub3BMYXllcigpKSB7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lT
dGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKICAg
ICAgICAgYWRkVG9Ub3BMYXllcigpOworICAgIH0KIAogICAgIG1fcHJldmlvdXNseUZvY3VzZWRF
bGVtZW50ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggNzU4YTg3ZmVhMGY3Li44ZGMzMzY5NDU1NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIzNzgsNiArMjM3OCw5IEBAIHZvaWQgRnJhbWVWaWV3OjptYWlu
dGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IoQ29udGFpbmVyTm9kZSogYW5jaG9yTm9kZSkKIAog
ICAgIGNhbmNlbFNjaGVkdWxlZFNjcm9sbHMoKTsKIAorICAgIGlmIChpczxFbGVtZW50PihhbmNo
b3JOb2RlKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVl
ZGVkKGRvd25jYXN0PEVsZW1lbnQ+KGFuY2hvck5vZGUpKTsKKwogICAgIC8vIFdlIG5lZWQgdG8g
dXBkYXRlIHRoZSBsYXlvdXQgYmVmb3JlIHNjcm9sbGluZywgb3RoZXJ3aXNlIHdlIGNvdWxkCiAg
ICAgLy8gcmVhbGx5IG1lc3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29tZXMgYXQg
YSBiYWQgbW9tZW50LgogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA3
ZTk5MzZjNTIxMjYuLmVmZTZhOGVjYmFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6
OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUm
IG5ldwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICYmIGVsZW1l
bnQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZp
c2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICB9CisKICAg
ICAgICAgYXV0byBuZWVkc0ludmFsaWRhdGVFdmVudFJlZ2lvbiA9IFsmXSB7CiAgICAgICAgICAg
ICBpZiAobV9zdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkgIT0gbmV3U3R5bGUuZWZmZWN0
aXZlUG9pbnRlckV2ZW50cygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODY0
LDYgKzg3MSw5IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgIHNldEhhc05vblZp
c2libGVPdmVyZmxvdyhmYWxzZSk7CiAgICAgICAgIHNldEhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9w
ZXJ0eShmYWxzZSk7CiAgICAgICAgIHNldEhhc1JlZmxlY3Rpb24oZmFsc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRW
aXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50KCkuY29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkub2JzZXJ2ZSgqZWxlbWVudCgpKTsKICAgICB9
CiAKICAgICBib29sIGhhZE91dGxpbmUgPSBvbGRTdHlsZSAmJiBvbGRTdHlsZS0+aGFzT3V0bGlu
ZSgpOwpAQCAtMTA3Miw2ICsxMDgyLDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0
cm95ZWQoKQogCiAgICAgaWYgKG1faGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKQogICAgICAgICB2
aWV3KCkucmVtb3ZlUmVuZGVyZXJXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKCp0aGlzKTsKKwor
ICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8gJiYgZWxlbWVudCgpKQorICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBSZW5kZXJF
bGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpCkBAIC0yMTkzLDQgKzIyMDYsMTMgQEAgRmxvYXRSZWN0IFJlbmRlckVsZW1l
bnQ6OnJlZmVyZW5jZUJveFJlY3QoQ1NTQm94VHlwZSBib3hUeXBlKSBjb25zdAogICAgIHJldHVy
biB7IH07CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25z
dAoreworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUoKS5j
b250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgIWVsZW1lbnQoKS0+aXNSZWxl
dmFudFRvVXNlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAppbmRleCA2ZmVkOGZiYmNlMDYuLjhmNjEwMTczOTYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMTIsNiArMzEyLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRleHQoKSBj
b25zdDsKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCisg
ICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZW51
bSBCYXNlVHlwZUZsYWcgewogICAgICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0RmxhZyAgPSAx
IDw8IDAsCkBAIC01MzksNyArNTQxLDkgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hv
dWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBS
ZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5z
U2l6ZSgpIHx8IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6SGlkZGVuKTsKKyAgICBpZiAoc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHls
ZSgpLmNvbnRhaW5zU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hv
dWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdApAQCAtNjUxLDYgKzY1NSwxMyBA
QCBpbmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJFbGVtZW50OjpsYXN0SW5GbG93Q2hpbGQoKSBj
b25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6
OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoaXNUZXh0KCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRoaXMp
LnNob3VsZFNraXBDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlckVsZW1lbnQsIGlzUmVuZGVy
RWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCA0ZmQ5ZDBmYjgzNjUuLjM1NDgwZTQwYjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTI2MzcsMTEgKzI2MzcsNiBAQCBib29sIFJlbmRlck9iamVj
dDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVudCgpICYmIHBhcmVu
dCgpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOwogfQogCi1ib29sIFJlbmRlck9i
amVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiBzdHlsZSgpLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsKLX0KLQogVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBy
ZW5kZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBiMmQx
NzhmMTU1YTMuLjViN2Y0NmFiMTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjUsNiArODY1LDcgQEAgc3RhdGljIGJvb2wgcmFy
ZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhJgogICAgICAgICB8fCBmaXJzdC5saW5lU25hcCAhPSBzZWNvbmQubGluZVNuYXAKICAg
ICAgICAgfHwgZmlyc3QubGluZUFsaWduICE9IHNlY29uZC5saW5lQWxpZ24KICAgICAgICAgfHwg
Zmlyc3QuaGFuZ2luZ1B1bmN0dWF0aW9uICE9IHNlY29uZC5oYW5naW5nUHVuY3R1YXRpb24KKyAg
ICAgICAgfHwgZmlyc3QuZWZmZWN0aXZlU2tpcHNDb250ZW50ICE9IHNlY29uZC5lZmZlY3RpdmVT
a2lwc0NvbnRlbnQKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQogICAgICAg
ICB8fCBmaXJzdC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nICE9IHNlY29uZC51c2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5j
cHAKaW5kZXggMjUwYjU2ZDAyMDllLi4xMjU0YjJiODRhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01OTQsNyArNTk0LDE1IEBAIHZvaWQgQWRqdXN0ZXI6OmFk
anVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBl
YXJhbmNlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgIGF1dG8gZWZmZWN0aXZlU2tp
cHNDb250ZW50ID0gW10gKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCog
ZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OkF1dG8pCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAhZWxlbWVudC0+aXNSZWxl
dmFudFRvVXNlcigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIGlmIChl
ZmZlY3RpdmVTa2lwc0NvbnRlbnQoc3R5bGUsIG1fZWxlbWVudCkpCiAgICAgICAgIHN0eWxlLnNl
dEVmZmVjdGl2ZVNraXBzQ29udGVudCh0cnVlKTsKIAogICAgIGFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyhzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNo
YXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNv
bHZlci5jcHAKaW5kZXggZmMxMmVlZDg0ZjJkLi41NmU1OGJlMTgxN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKQEAgLTI1OCw2ICsyNTgsOSBA
QCBib29sIFNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFN0eQogICAgIGlmIChlbGVtZW50SGFzRGlyZWN0aW9uQXV0
byhjYW5kaWRhdGVFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGNh
bmRpZGF0ZUVsZW1lbnQuaXNSZWxldmFudFRvVXNlcigpICE9IGVsZW1lbnQuaXNSZWxldmFudFRv
VXNlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY2FuZGlkYXRlRWxlbWVu
dC5pc0xpbmsoKSAmJiBjb250ZXh0LmVsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmluc2lkZUxp
bmsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZDE3
NmViZjlkNDcuLjYwZDMyM2Y2OTc4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjkzLDYgKzQ2
OTMsOCBAQCB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvLwogd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby9m
bG9hdHMtYXNwZWN0LXJhdGlvLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDcuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjI4MyBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZS1sb2dpY2FsLTAwMy5odG1sIFsgU2tpcCBdCkBAIC00ODE0LDgg
KzQ4MTYsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5odAogIyBmb3JjZWQgbGF5b3V0CiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5nZWQuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1zaXplLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktdmlk
ZW8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CmluZGV4IGNmZDg3
YmQyMWY4Ni4uNzMyNjhmZGIwOGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAogCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHNp
bmdsZSB0ZXh0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHJh
bmdlIGFjcm9zcyBibG9ja3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBidXQgZ290
ICJ1bmtub3duIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12aXNpYmls
aXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dCIgYnV0IGdvdCAi
dG9wIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12aXNpYmlsaXR5OyBy
YW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0MiIgYnV0IGdv
dCAidG9wIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA2OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKaW5kZXggNThlMzY1ZWIzMWFjLi5iMTAzZWY4MmQ4
MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDY4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA2OC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBW
aXNpYmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBl
eHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3Jl
ZW4gZm9jdXMgYXNzZXJ0X2xlc3NfdGhhbjogc3RlcDIgb2Zmc2V0IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAzMDAwIGJ1dCBnb3QgMzAwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAppbmRleCAzMzAyNTZhZGIyOTguLmQxMjdj
YWFjNDU1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNjguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICB9
KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1cygpOwotICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShz
dGVwMik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7IHN0ZXAyKCkgfSk7CiAgIH0KICAgLy8gQWZ0
ZXIgZm9jdXNpbmcgdGhlIHN1YnRyZWUsIHRoZSBjb250YWluZXIgc2hvdWxkIGJlIHNvbWV3aGVy
ZSBjbG9zZXIgdGhhbgogICAvLyAzMDAwcHggKHNjcm9sbGVkIGludG8gdmlldykgYW5kIHRoZSBo
ZWlnaHQgc2hvdWxkIGJlIDEwcHgsIHNpbmNlIGl0IG5vCkBAIC05Miw3ICs5Miw3IEBAIGFzeW5j
X3Rlc3QoKHQpID0+IHsKICAgICB9KTsKICAgICB0LmRvbmUoKTsKICAgfQotICBzdGVwMSgpOwor
ICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcDEpOwogfSk7CiA8L3NjcmlwdD4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcw
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDcwLWV4cGVjdGVkLnR4dAppbmRleCBhM2U1OTA2ZDZjM2YuLjkxMTAyYTcwNWFmYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcw
LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLWhlbGxvCiAKLUZBSUwgQ29udGVudCBWaXNp
YmlsaXR5OiBvZmYtc2NyZWVuIHNlbGVjdGlvbiBhc3NlcnRfZXF1YWxzOiBzdGVwMSBoZWlnaHQg
ZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMTAKK0ZBSUwgQ29udGVudCBWaXNpYmlsaXR5OiBvZmYtc2Ny
ZWVuIHNlbGVjdGlvbiBhc3NlcnRfZXF1YWxzOiBzdGVwMyBoZWlnaHQgZXhwZWN0ZWQgMTAgYnV0
IGdvdCAxMDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CmluZGV4IDQ0YTI5MzY1MDM2MS4uNWMxZGZjZTAw
ODY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA3MS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDggQEAKLWhlbGxvCi1oZWxsbwot
aGVsbG8KLWhlbGxvCi1oZWxsbwogCi1GQUlMIE9uZSBlbGVtZW50cyBzZWxlY3RlZDogIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBleHRlbmRlZCB0byBj
b3ZlciBtb3JlIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFJhbmdlIHNocnVuayB0byBjb3ZlciBmZXdlciBlbGVtZW50czogIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gYmFjayB0
byBmcm9udDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5n
ZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBSYW5nZSBnb2VzIGJhY2sgYW5kIGZvcnRoOiAgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIE9uZSBlbGVtZW50cyBzZWxlY3RlZDogIGFz
c2VydF9mYWxzZTogMiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCBSYW5nZSBleHRlbmRl
ZCB0byBjb3ZlciBtb3JlIGVsZW1lbnRzOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitGQUlMIFJhbmdlIHNocnVuayB0byBjb3ZlciBmZXdlciBlbGVtZW50czogIGFz
c2VydF9mYWxzZTogMiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCBSYW5nZSBmbGlwcGVk
IGZyb20gYmFjayB0byBmcm9udDogIGFzc2VydF9mYWxzZTogMiBleHBlY3RlZCBmYWxzZSBnb3Qg
dHJ1ZQorRkFJTCBSYW5nZSBmbGlwcGVkIGZyb20gZnJvbnQgdG8gYmFjazogIGFzc2VydF9mYWxz
ZTogMyBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCBSYW5nZSBnb2VzIGJhY2sgYW5kIGZv
cnRoOiAgYXNzZXJ0X2ZhbHNlOiB0ZXN0XzAsIGNvbnRhaW5lcl8xIGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAppbmRleCAwMGYxYzdmNDQ0MTguLmY5NTE4YmNmZTA2
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBvbmUuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk6Ci1GQUlMIHR3by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFz
c2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgdGhyZWUuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0
IGdvdCAzMDQxCi1GQUlMIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1
YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQxCi1GQUlMIGZpdmUuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVjdGVkIDMwMDcgYnV0IGdvdCAzMDQx
CitQQVNTIHR3by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgdGhyZWUuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk6CitQQVNTIGZvdXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CitQQVNT
IGZpdmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464533</attachid>
            <date>2023-01-18 02:31:20 -0800</date>
            <delta_ts>2023-01-18 03:34:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230118103119.patch</filename>
            <type>text/plain</type>
            <size>33488</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA1NThhYzBhZDBiOGEwOGRmMjQwYjc5Mzk4OGU3ZmZiOTQyNTY2N2Q0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxMDowNzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCi0gc3RhdGUgaXMga2VwdCB1c2luZyBDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIGVudW0gY2xhc3Mgd2hldGhlciB0aGUKICBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8gc3VidHJlZSBjb250YWlucyBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZAogIGVsZW1lbnRz
LCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoKVGhlIG1ldGhv
ZHMgZm9jdXMoKSBbNC4zLjZdIGFuZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gdHJlYXQgYW55
IHByZXZpb3VzbHkKc2tpcHBlZCBjb250ZW50IGFzIGJlY29taW5nIHJlbGV2YW50IHRvIHRoZSB1
c2VyIGJlZm9yZSBkb2luZyBhbnkgc2Nyb2xsaW5nLgoKSGFuZGxpbmcgZm9jdXNlZCBhbmQgc2Vs
ZWN0ZWQgZWxlbWVudCB3aWxsIGJlIGRvbmUgaW4gYSBmdXR1cmUgcGF0Y2guCgpbMV0gaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12aXNpYmlsaXR5
LWF1dG8KWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jcmVsZXZhbnQt
dG8tdGhlLXVzZXIKWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jc2tp
cHMtaXRzLWNvbnRlbnRzCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0OgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sOgoqIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dDoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0
ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1
bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgooV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6Om9ic2VydmUpOgooV2ViQ29yZTo6Q29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlOjp1bm9ic2VydmUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcik6CihXZWJDb3JlOjpD
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0
dXNGb3JTY3JvbGxJZk5lZWRlZCk6IGhlbHBlciBhcm91bmQgbGFjayBvZiBzY3JvbGwgYW5jaG9y
aW5nLgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogbWFrZSBz
dXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCk6IG1ha2Ugc3VyZSBzY3JvbGxlZCB0byBl
bGVtZW50IGlzIGluIHZpc2libGUgc3VidHJlZS4KKFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKTog
bWFrZSBzdXJlIGZvY3VzZWQgZWxlbWVudCBpcyBpbiB2aXNpYmxlIHN1YnRyZWUuCihXZWJDb3Jl
OjpFbGVtZW50Ojpjb250ZW50UmVsZXZhbmN5U3RhdHVzIGNvbnN0KToKKFdlYkNvcmU6OkVsZW1l
bnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMpOgooV2ViQ29yZTo6RWxlbWVudDo6dXBk
YXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKTogdXBkYXRlIGlmIGluIGNvbnRlbnQt
dmlzaWJpbGl0eSBhdXRvIHN1YnRyZWUuCihXZWJDb3JlOjpFbGVtZW50Ojppc1JlbGV2YW50VG9V
c2VyIGNvbnN0KToKKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRD
aGFuZ2UpOiBoYW5kbGUgY2hhbmdlZCB2aXNpYmlsaXR5IGluIHZpZXdwb3J0IHN0YXR1cy4KKiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaDoKKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y29udGVudFJlbGV2YW5jeVN0
YXR1cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oOiBrZWVwIHRyYWNrIG9m
IHdoZXRoZXIgY29udGVudCBpcyByZWxldmFudCB0byB0aGUgdXNlci4KKiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxEaWFsb2dFbGVtZW50
OjpzaG93TW9kYWwpOiBtYWtlIHN1cmUgZWxlbWVudCBpcyBpbiB2aXNpYmxlIHN1YnRyZWUuCiog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwOgooV2ViQ29yZTo6RnJhbWVWaWV3Ojpt
YWludGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IpOiBoYW5kbGUgYW5jaG9yIHNjcm9sbHMuCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKTogYWRkL3JlbW92ZSBvYnNlcnZhdGlvbiBmb3Ig
Y29udGVudC12aXNpYmlsaXR5OiBhdXRvIGVsZW1lbnQuCihXZWJDb3JlOjpSZW5kZXJFbGVtZW50
Ojp3aWxsQmVEZXN0cm95ZWQpOiByZW1vdmUgb2JzZXJ2YXRpb24gZm9yIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0byBlbGVtZW50LgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENv
bnRlbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6
CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBjb25z
dCk6IHRha2UgaW50byBhY2NvdW50IGN1cnJlbnQgdmFsdWUgb2YgZWZmZWN0aXZlU2tpcHNDb250
ZW50LgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgooV2ViQ29yZTo6cmFyZUluaGVy
aXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dCk6IGEgY2hhbmdlIGluIGVmZmVjaXRpdmVTa2lw
c0NvbnRlbnQgcmVxdWlyZXMgYSBsYXlvdXQuCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVB
ZGp1c3Rlci5jcHA6CihXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6IHRh
a2UgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIGludG8gYWNjb3VudC4KKiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6IGRvIG5vdCBzaGFyZSBzdHlsZXMgd2l0
aCBkaWZmZXJlbnQgaXNSZWxldmFudFRvVXNlciB2YWx1ZXMuCihXZWJDb3JlOjpTdHlsZTo6U2hh
cmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQgY29uc3QpOgotLS0KIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8IDkyICsrKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICB8
IDIyICsrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAg
fCA0MSArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggICAgICAgICAgICAg
ICAgICB8IDEzICsrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oICAgICAg
ICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oICAgICAgICAgICAg
IHwgIDEgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAgICAgIHwg
IDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICB8ICAz
ICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCAgICB8IDIyICsr
KysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAgfCAxMyAr
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8ICA1IC0K
IC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgICB8ICAxICsKIFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwICAgICAgICB8IDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgMyArCiBMYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL2NvbnRl
bnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50
LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12
aXNpYmlsaXR5LTA2OC5odG1sICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDMgKy0KIC4uLi9jb250ZW50LXZpc2li
aWxpdHktMDcxLWV4cGVjdGVkLnR4dCAgICAgICB8IDE3ICsrLS0KIC4uLi9jb250ZW50LXZpc2li
aWxpdHktMDcyLWV4cGVjdGVkLnR4dCAgICAgICB8ICA4ICstCiAyMSBmaWxlcyBjaGFuZ2VkLCAy
NDEgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggNDZkNGFmNDc4MDVmLi44NjM4NTQ2ZTE0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMTM4LDYgKzEzOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVy
c2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAt
MzY5LDYgKzM3MCwzMyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7
CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBm
aW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
az4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhk
b2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFu
ZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2Vj
dGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5h
bAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAg
Zm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVt
ZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRW
aXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJ
bnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAg
OiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQor
fTsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7
CiBib29sIERvY3VtZW50OjpoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZSA9IGZhbHNlOwog
c3RhdGljIGNvbnN0IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdB
ZnRlck1lZGlhRmluaXNoZXNQbGF5aW5nIHsgMV9zIH07CkBAIC00Nzc3LDYgKzQ4MDUsMTEgQEAg
Ym9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3Qg
Rm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBvbGRGb2N1c2VkRWxlbWVudC0+c2V0Rm9j
dXMoZmFsc2UpOwogICAgICAgICBzZXRGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGUobnVsbHB0
cik7CiAKKyAgICAgICAgZm9yIChhdXRvIGZvY3VzZWQgPSBvbGRGb2N1c2VkRWxlbWVudDsgZm9j
dXNlZDsgZm9jdXNlZCA9IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7
CisgICAgICAgICAgICBpZiAoZm9jdXNlZC0+cmVuZGVyZXIoKSAmJiBmb2N1c2VkLT5yZW5kZXJl
cigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1
dG8pCisgICAgICAgICAgICAgICAgZm9jdXNlZC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1
cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpGb2N1c2VkLCBmYWxzZSk7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmFsRXZlbnRzTW9kZSA9PSBGb2N1c1JlbW92YWxFdmVu
dHNNb2RlOjpEaXNwYXRjaCkgewogICAgICAgICAgICAgLy8gRGlzcGF0Y2ggYSBjaGFuZ2UgZXZl
bnQgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgYmVlbiBlZGl0ZWQuCiAgICAg
ICAgICAgICBpZiAoaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50
KSkgewpAQCAtNDg1Niw2ICs0ODg5LDExIEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAg
ICAgaWYgKG9wdGlvbnMudHJpZ2dlciAhPSBGb2N1c1RyaWdnZXI6OkJpbmRpbmdzKQogICAgICAg
ICAgICAgbV9sYXRlc3RGb2N1c1RyaWdnZXIgPSBvcHRpb25zLnRyaWdnZXI7CiAKKyAgICAgICAg
Zm9yIChhdXRvIGZvY3VzZWQgPSBuZXdGb2N1c2VkRWxlbWVudDsgZm9jdXNlZDsgZm9jdXNlZCA9
IGZvY3VzZWQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICBp
ZiAoZm9jdXNlZC0+cmVuZGVyZXIoKSAmJiBmb2N1c2VkLT5yZW5kZXJlcigpLT5zdHlsZSgpLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAg
ICAgICAgZm9jdXNlZC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZh
bmN5U3RhdHVzOjpGb2N1c2VkLCB0cnVlKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIFRoZSBz
ZXRGb2N1cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZlbnQgaGFu
ZGxlcnMgY291bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVkLgogICAg
ICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewogICAgICAg
ICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05NDIyLDYgKzk0NjAsNjAgQEAgYm9v
bCBEb2N1bWVudDo6bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBt
X3NldHRpbmdzLT5sYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpICYmICFtX3F1aXJrcy0+c2hvdWxk
RGlzYWJsZUxhenlJbWFnZUxvYWRpbmdRdWlyaygpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQor
eworICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1f
Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNv
bnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6b2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChhdXRvKiBpbnRl
cnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkpCisgICAgICAg
IGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1lbnQpOworfQorCit2b2lkIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dW5vYnNlcnZlKEVsZW1lbnQmIGVsZW1lbnQpCit7
CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2ZXItPnVub2JzZXJ2ZShlbGVt
ZW50KTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKQoreworICAgIGlmICghbV9vYnNl
cnZlcikgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gQ29udGVudFZpc2liaWxpdHlJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrOjpjcmVhdGUoKm1fZG9jdW1lbnQpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJn
aW5GYWxsYmFjayhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiMTAwJSIpKTsKKyAgICAgICAgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OkluaXQgb3B0aW9ucyB7IHN0ZDo6bnVsbG9wdCwgY29udGVudFZp
c2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2ssIHsgfSB9OworICAgICAgICBhdXRvIG9ic2VydmVy
ID0gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSgqbV9kb2N1bWVudCwgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUob3B0aW9ucykpOworICAgICAgICBpZiAob2JzZXJ2ZXIuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgbV9vYnNlcnZlciA9
IG9ic2VydmVyLnJldHVyblZhbHVlKCkucHRyKCk7CisgICAgfQorICAgIHJldHVybiBtX29ic2Vy
dmVyLmdldCgpOworfQorCisvLyBXb3JrYXJvdW5kIGZvciBsYWNrIG9mIHN1cHBvcnQgZm9yIHNj
cm9sbCBhbmNob3JpbmcuIFdlIG1ha2Ugc3VyZSBhbnkgY29udGVudC12aXNpYmlsaXR5OiBhdXRv
IGVsZW1lbnRzCisvLyBhYm92ZSB0aGUgb25lIHRvIGJlIHNjcm9sbGVkIHRvIGFyZSBhbHJlYWR5
IGhpZGRlbiwgc28gdGhlIHNjcm9sbCBwb3NpdGlvbiB3aWxsIG5vdCBuZWVkIHRvIGJlIGFkanVz
dGVkCisvLyBsYXRlci4KKy8vIEZJWE1FOiByZW1vdmUgd2hlbiBzY3JvbGwgYW5jaG9yaW5nIGlz
IGltcGxlbWVudGVkLgordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVwZGF0
ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZChFbGVtZW50KiBzY3JvbGxB
bmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJnZXRzKCkpIHsKKyAg
ICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJl
cigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1
dG8pCisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29u
dGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFsc2UpOworICAgIH0KKyAgICBzY3JvbGxB
bmNob3ItPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZh
bmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODgz
ZjMyMWY2YzdjLi4zZmNhNzRlMTRhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzcsNiAr
MjM3LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3MgVHJlZVdhbGtlcjsKIGNsYXNz
IFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNsaWVudDsKK2NsYXNzIFZpc2li
bGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwogY2xhc3MgV2FrZUxvY2tNYW5h
Z2VyOwogY2xhc3MgV2ViQW5pbWF0aW9uOwpAQCAtMzU0LDYgKzM1NSwyMyBAQCBwcml2YXRlOgog
ICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9k
b2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7CisKKyAgICB2b2lkIG9ic2VydmUoRWxlbWVudCYp
OworICAgIHZvaWQgdW5vYnNlcnZlKEVsZW1lbnQmKTsKKworICAgIHZvaWQgdXBkYXRlQ29udGVu
dFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKEVsZW1lbnQqIHNjcm9sbEFuY2hvcik7
CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlv
bk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2
ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRh
PiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWlu
ZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBAIC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJs
aWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigp
OwogCisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3Rv
bUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9
CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQ7IH0KICAgICB2b2lkIGVucXVl
dWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAgLTE5NTUsNiArMTk3NSw4IEBAIHByaXZh
dGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlM
b2FkSW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworCiAjaWYg
IUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1bWVudENyZWF0aW9uVGltZTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1ZjdmMmUwYjU5Ni4uZWIxMjMxYzM4
MWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDY5LDYgKzEwNjksOCBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVudCosIExheW91dFJlY3Q+PiBsaXN0
Qm94RWxlbWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0
aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKQog
eworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkudXBkYXRl
Q29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTExMzQsNiArMTEzNiw4IEBAIHZv
aWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wKQogCiB2b2lkIEVsZW1l
bnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkKIHsKKyAgICBk
b2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVwZGF0ZUNvbnRlbnRS
ZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCh0aGlzKTsKKwogICAgIGRvY3VtZW50KCku
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRl
cmVyKCkpCkBAIC0zMzY1LDYgKzMzNjksOCBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGNvbnN0IEZv
Y3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIHVwZGF0
ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpW
aXNpYmxlLCB0cnVlKTsKKwogICAgIFJlZlB0cjxFbGVtZW50PiBuZXdUYXJnZXQgPSB0aGlzOwog
CiAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSByZW5kZXJlciB5ZXQsIGlzRm9jdXNhYmxlIHdpbGwg
Y29tcHV0ZSBpdCB3aXRob3V0IHN0eWxlIHVwZGF0ZS4KQEAgLTUyMDUsNCArNTIxMSwzOSBAQCB2
b2lkIEVsZW1lbnQ6OnNldERpc3BsYXlDb250ZW50c0NoYW5nZWQoYm9vbCBjaGFuZ2VkKQogICAg
IHNldEV2ZW50VGFyZ2V0RmxhZyhFdmVudFRhcmdldEZsYWc6OkRpc3BsYXlDb250ZW50c0NoYW5n
ZWQsIGNoYW5nZWQpOwogfQogCitPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4gRWxl
bWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cygpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNSYXJl
RGF0YSgpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBlbGVtZW50UmFyZURhdGEo
KS0+Y29udGVudFJlbGV2YW5jeVN0YXR1cygpOworfQorCit2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNv
bnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1cyBzdGF0dXMsIGJvb2wg
dmFsdWUpCit7CisgICAgaWYgKGNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKS5jb250YWlucyhzdGF0
dXMpICE9IHZhbHVlKSB7CisgICAgICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLmNvbnRlbnRS
ZWxldmFuY3lTdGF0dXMoKS5zZXQoc3RhdHVzLCB2YWx1ZSk7CisgICAgICAgIGludmFsaWRhdGVT
dHlsZSgpOworICAgIH0KK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5
U3RhdHVzSWZOZWVkZWQoQ29udGVudFJlbGV2YW5jeVN0YXR1cyBzdGF0dXMsIGJvb2wgdmFsdWUp
Cit7CisgICAgZm9yIChhdXRvIHRhcmdldCA9IHRoaXM7IHRhcmdldDsgdGFyZ2V0ID0gdGFyZ2V0
LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRyZWUoKSkgeworICAgICAgICBpZiAodGFyZ2V0LT5y
ZW5kZXJlcigpICYmIHRhcmdldC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0
eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKSB7CisgICAgICAgICAgICB0YXJnZXQtPnVw
ZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoc3RhdHVzLCB2YWx1ZSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgRWxlbWVudDo6aXNSZWxldmFudFRv
VXNlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVE
YXRhKCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojpjb250
ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wgaXNJbnRlcnNlY3RpbmcpCit7CisgICAg
dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNp
YmxlLCBpc0ludGVyc2VjdGluZyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCmluZGV4IGI3NzE2NzQyYzEzNS4uMDIwODdlNmJkZWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTEwNCw2ICsxMDQsMTIgQEAgc3RydWN0IFNoYWRvd1Jvb3RJbml0OwogCiB1c2lu
ZyBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwID0gSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBW
ZWN0b3I8V2Vha1B0cjxFbGVtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+Pj47
CiAKK2VudW0gY2xhc3MgQ29udGVudFJlbGV2YW5jeVN0YXR1cyA6IHVpbnQ4X3QgeworICAgIFZp
c2libGUgPSAxIDw8IDAsCisgICAgRm9jdXNlZCA9IDEgPDwgMSwKKyAgICAvLyBTZWxlY3RlZCA9
IDEgPDwgMiwKK307CisKIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBSZXNvbHZlcjsKIGVudW0g
Y2xhc3MgQ2hhbmdlIDogdWludDhfdDsKQEAgLTcxOSw2ICs3MjUsMTMgQEAgcHVibGljOgogICAg
IGJvb2wgZGlzcGxheUNvbnRlbnRzQ2hhbmdlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGlzcGxh
eUNvbnRlbnRzQ2hhbmdlZChib29sID0gdHJ1ZSk7CiAKKyAgICBPcHRpb25TZXQ8Q29udGVudFJl
bGV2YW5jeVN0YXR1cz4gY29udGVudFJlbGV2YW5jeVN0YXR1cygpIGNvbnN0OworICAgIHZvaWQg
dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzLCBib29s
KTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50
UmVsZXZhbmN5U3RhdHVzLCBib29sKTsKKyAgICBib29sIGlzUmVsZXZhbnRUb1VzZXIoKSBjb25z
dDsKKworICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sKTsKKwog
cHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
Q29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA1MzM3MDJjNmRkN2EuLjk4YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaApAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKIAogICAgIEV4cGxpY2l0bHlTZXRB
dHRyRWxlbWVudHNNYXAmIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAoKSB7IHJldHVybiBt
X2V4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7IH0KIAorICAgIE9wdGlvblNldDxDb250ZW50
UmVsZXZhbmN5U3RhdHVzPiYgY29udGVudFJlbGV2YW5jeVN0YXR1cygpIHsgcmV0dXJuIG1fY29u
dGVudFJlbGV2YW5jeVN0YXR1czsgfQorCiAjaWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKICAgICBP
cHRpb25TZXQ8VXNlVHlwZT4gdXNlVHlwZXMoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaAppbmRleCBkNDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaApAQCAtMzI2LDYgKzMyNiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBV
c2VkIGJ5IEVsZW1lbnRSYXJlRGF0YS4gRGVmaW5lZCBoZXJlIGZvciBiZXR0ZXIgcGFja2luZyBp
biA2NC1iaXQuCiAgICAgaW50IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9OwogICAgIHVuc2lnbmVk
IHNob3J0IG1fY2hpbGRJbmRleCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5j
eVN0YXR1cz4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2YXRlOgogICAgIGJvb2wg
bV9pc0VsZW1lbnRSYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERpYWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVu
dC5jcHAKaW5kZXggZmM5MWQyM2ZkYzkzLi5hNjYzNDg1MGFmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwxMCBAQCBFeGNlcHRpb25P
cjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAogICAgIHNldElzTW9kYWwo
dHJ1ZSk7CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlmICghaXNJblRvcExheWVy
KCkpIHsKKyAgICAgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRl
bnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOwogICAgICAgICBhZGRUb1RvcExheWVy
KCk7CisgICAgfQogCiAgICAgbV9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgp
LmZvY3VzZWRFbGVtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3NThh
ODdmZWEwZjcuLjhkYzMzNjk0NTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
MjM3OCw2ICsyMzc4LDkgQEAgdm9pZCBGcmFtZVZpZXc6Om1haW50YWluU2Nyb2xsUG9zaXRpb25B
dEFuY2hvcihDb250YWluZXJOb2RlKiBhbmNob3JOb2RlKQogCiAgICAgY2FuY2VsU2NoZWR1bGVk
U2Nyb2xscygpOwogCisgICAgaWYgKGlzPEVsZW1lbnQ+KGFuY2hvck5vZGUpKQorICAgICAgICBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51cGRh
dGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQoZG93bmNhc3Q8RWxlbWVu
dD4oYW5jaG9yTm9kZSkpOworCiAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIGxheW91dCBi
ZWZvcmUgc2Nyb2xsaW5nLCBvdGhlcndpc2Ugd2UgY291bGQKICAgICAvLyByZWFsbHkgbWVzcyB0
aGluZ3MgdXAgaWYgYW4gYW5jaG9yIHNjcm9sbCBjb21lcyBhdCBhIGJhZCBtb21lbnQuCiAgICAg
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDdlOTkzNmM1MjEyNi4uZWZlNmE4
ZWNiYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBA
IC04MTksNiArODE5LDEzIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9zdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICE9
IG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgJiYgZWxlbWVudCgpKSB7CisgICAgICAgICAg
ICBpZiAobV9zdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpB
dXRvKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlKCkudW5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICAgICAgZWxzZSBpZiAobmV3
U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgp
Lm9ic2VydmUoKmVsZW1lbnQoKSk7CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIG5lZWRzSW52
YWxpZGF0ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmVmZmVj
dGl2ZVBvaW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04NjQsNiArODcxLDkgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgc2V0SGFzTm9uVmlzaWJsZU92ZXJmbG93KGZhbHNl
KTsKICAgICAgICAgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KGZhbHNlKTsKICAgICAg
ICAgc2V0SGFzUmVmbGVjdGlvbihmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG5l
d1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8gJiYg
ZWxlbWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOwogICAgIH0KIAogICAgIGJvb2wgaGFkT3V0
bGluZSA9IG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNPdXRsaW5lKCk7CkBAIC0xMDcyLDYgKzEw
ODIsOSBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBpZiAo
bV9oYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMpCiAgICAgICAgIHZpZXcoKS5yZW1vdmVSZW5kZXJl
cldpdGhQYXVzZWRJbWFnZUFuaW1hdGlvbnMoKnRoaXMpOworCisgICAgaWYgKHN0eWxlKCkuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byAmJiBlbGVtZW50KCkp
CisgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkudW5v
YnNlcnZlKCplbGVtZW50KCkpOwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzUG9z
aXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKQEAgLTIx
OTMsNCArMjIwNiwxMyBAQCBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6cmVmZXJlbmNlQm94UmVj
dChDU1NCb3hUeXBlIGJveFR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBS
ZW5kZXJFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKHN0eWxl
KCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
cmV0dXJuIGVsZW1lbnQoKSAmJiAhZWxlbWVudCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IDZmZWQ4ZmJi
Y2UwNi4uOGY2MTAxNzM5NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmgKQEAgLTMxMiw2ICszMTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGVzdGFi
bGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIGJvb2wgY3Jl
YXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZFNraXBD
b250ZW50KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIEJhc2VUeXBlRmxhZyB7CiAg
ICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3RGbGFnICA9IDEgPDwgMCwKQEAgLTUzOSw3ICs1
NDEsOSBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUxheW91dE9yUGFp
bnRDb250YWlubWVudCgpIGNvbnN0CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2hvdWxkQXBwbHlT
aXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkgfHwgc3R5bGUoKS5j
b250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pOworICAgIGlm
IChzaG91bGRTa2lwQ29udGVudCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
c2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkp
OwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVD
b250YWlubWVudCgpIGNvbnN0CkBAIC02NTEsNiArNjU1LDEzIEBAIGlubGluZSBSZW5kZXJPYmpl
Y3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQo
KSBjb25zdAoreworICAgIGlmIChpc1RleHQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuc2hvdWxkU2tpcENvbnRlbnQo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X1JFTkRFUl9PQkpFQ1QoUmVuZGVyRWxlbWVudCwgaXNSZW5kZXJFbGVtZW50KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRmZDlkMGZiODM2NS4uMzU0
ODBlNDBiMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApA
QCAtMjYzNywxMSArMjYzNyw2IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50
KCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPnN0eWxlKCkuZWZmZWN0
aXZlU2tpcHNDb250ZW50KCk7CiB9CiAKLWJvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29u
dGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9
PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwotfQotCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRz
IDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDQ5YTRiNzY2MWVhZi4uN2RmZDhiODU0
ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKQEAgLTg2Niw2ICs4NjYsNyBAQCBzdGF0aWMgYm9vbCByYXJlSW5oZXJpdGVkRGF0YUNoYW5n
ZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAgICAgICAgIHx8
IGZpcnN0LmxpbmVTbmFwICE9IHNlY29uZC5saW5lU25hcAogICAgICAgICB8fCBmaXJzdC5saW5l
QWxpZ24gIT0gc2Vjb25kLmxpbmVBbGlnbgogICAgICAgICB8fCBmaXJzdC5oYW5naW5nUHVuY3R1
YXRpb24gIT0gc2Vjb25kLmhhbmdpbmdQdW5jdHVhdGlvbgorICAgICAgICB8fCBmaXJzdC5lZmZl
Y3RpdmVTa2lwc0NvbnRlbnQgIT0gc2Vjb25kLmVmZmVjdGl2ZVNraXBzQ29udGVudAogI2lmIEVO
QUJMRShPVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCiAgICAgICAgIHx8IGZpcnN0LnVzZVRvdWNo
T3ZlcmZsb3dTY3JvbGxpbmcgIT0gc2Vjb25kLnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCAyNTBiNTZkMDIw
OWUuLjEyNTRiMmI4NGFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVB
ZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAK
QEAgLTU5NCw3ICs1OTQsMTUgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNp
YmlsaXR5OjpIaWRkZW4pCisgICAgYXV0byBlZmZlY3RpdmVTa2lwc0NvbnRlbnQgPSBbXSAoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSAtPiBib29sIHsK
KyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OkhpZGRlbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoc3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAg
ICAgIHJldHVybiBlbGVtZW50ICYmICFlbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgaWYgKGVmZmVjdGl2ZVNraXBzQ29udGVu
dChzdHlsZSwgbV9lbGVtZW50KSkKICAgICAgICAgc3R5bGUuc2V0RWZmZWN0aXZlU2tpcHNDb250
ZW50KHRydWUpOwogCiAgICAgYWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKHN0eWxlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBmYzEy
ZWVkODRmMmQuLjU2ZTU4YmUxODE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjU4LDYgKzI1OCw5IEBAIGJvb2wgU2hhcmluZ1Jlc29s
dmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3R5CiAgICAgaWYgKGVsZW1lbnRIYXNEaXJlY3Rpb25BdXRvKGNhbmRpZGF0ZUVsZW1lbnQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5pc1Jl
bGV2YW50VG9Vc2VyKCkgIT0gZWxlbWVudC5pc1JlbGV2YW50VG9Vc2VyKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmlzTGluaygpICYmIGNvbnRl
eHQuZWxlbWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+aW5zaWRlTGluaygpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYwNWU1MDIyMzUwMi4uMjQ5NmM5MjNm
MGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3MDAsNiArNDcwMCw4IEBAIHdlYmtpdC5vcmcv
Yi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9h
c3BlY3QtcmF0aW8vCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2Zsb2F0cy1hc3BlY3QtcmF0aW8t
MDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBjb250YWluLWludHJpbnNpYy1zaXpl
Cit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwMS5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwMi5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNy5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMjQ2MjgzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9jb250YWluLWludHJpbnNpYy1zaXpl
LWxvZ2ljYWwtMDAzLmh0bWwgWyBTa2lwIF0KQEAgLTQ4MjEsOCArNDgyMyw2IEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNp
emUtaW50cmluc2ljLmh0CiAjIGZvcmNlZCBsYXlvdXQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDM1Lmh0bWwgWyBTa2lwIF0KICMgYy12OiBhdXRvCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LWF1dG8tc3RhdGUtY2hhbmdlZC5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LWZpZWxkc2V0LXNpemUuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS12aWRlby5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA0OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKaW5kZXggY2ZkODdiZDIxZjg2Li43MzI2OGZkYjA4
ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDQ4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA0OC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgRnJhZ21lbnQg
bmF2aWdhdGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgc2luZ2xlIHRleHQgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInRleHQiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgRnJhZ21lbnQg
bmF2aWdhdGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2NrcyBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dDIiIGJ1dCBnb3QgInVua25vd24iCitGQUlMIEZy
YWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHNpbmdsZSB0ZXh0IGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ0b3AiCitGQUlMIEZyYWdtZW50
IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHJhbmdlIGFjcm9zcyBibG9ja3Mg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBidXQgZ290ICJ0b3AiCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVj
dGVkLnR4dAppbmRleCA1OGUzNjVlYjMxYWMuLmI2MjI0ZjkwNjQ0ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3Jl
ZW4gZm9jdXMgYXNzZXJ0X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290
IDEwCitQQVNTIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBmb2N1cwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAppbmRleCAz
MzAyNTZhZGIyOTguLmNlZmJjNTBkMDRjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGFzeW5jX3Rl
c3QoKHQpID0+IHsKICAgICB9KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1cygpOwotICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZShzdGVwMik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7IHN0ZXAyKCk7
IH0pOwogICB9CiAgIC8vIEFmdGVyIGZvY3VzaW5nIHRoZSBzdWJ0cmVlLCB0aGUgY29udGFpbmVy
IHNob3VsZCBiZSBzb21ld2hlcmUgY2xvc2VyIHRoYW4KICAgLy8gMzAwMHB4IChzY3JvbGxlZCBp
bnRvIHZpZXcpIGFuZCB0aGUgaGVpZ2h0IHNob3VsZCBiZSAxMHB4LCBzaW5jZSBpdCBubwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAt
ZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5MDZkNmMzZi4uOTExMDJhNzA1YWZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZpc2liaWxp
dHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBl
Y3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4g
c2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAzIGhlaWdodCBleHBlY3RlZCAxMCBidXQgZ290
IDEwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA3MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA3MS1leHBlY3RlZC50eHQKaW5kZXggNDRhMjkzNjUwMzYxLi41YzFkZmNlMDA4NjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcx
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA3MS1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOCBAQAotaGVsbG8KLWhlbGxvCi1oZWxs
bwotaGVsbG8KLWhlbGxvCiAKLUZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVy
IG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZy
b250OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZs
aXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCi1GQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0
X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGV4dGVuZGVkIHRv
IGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290
IHRydWUKK0ZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0
X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJv
bSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitGQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X2ZhbHNlOiAz
IGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6
ICBhc3NlcnRfZmFsc2U6IHRlc3RfMCwgY29udGFpbmVyXzEgZXhwZWN0ZWQgZmFsc2UgZ290IHRy
dWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNzItZXhwZWN0ZWQudHh0CmluZGV4IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2ZlMDY0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIG9uZS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKToKLUZBSUwgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0
X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290
IDMwNDEKLUZBSUwgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6
IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZml2ZS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKK1BB
U1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyB0aHJlZS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKToKK1BBU1MgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZml2
ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464534</attachid>
            <date>2023-01-18 03:34:23 -0800</date>
            <delta_ts>2023-01-18 07:16:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230118113422.patch</filename>
            <type>text/plain</type>
            <size>29816</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA3YWQ5Y2VjM2NhNjc4MjQ5ZDMxNTBjM2M2MDcxZjVhNjZiYjVmZmRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxMDowNzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCi0gc3RhdGUgaXMga2VwdCB1c2luZyBDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIGVudW0gY2xhc3Mgd2hldGhlciB0aGUKICBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8gc3VidHJlZSBjb250YWlucyBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZAogIGVsZW1lbnRz
LCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoKVGhlIG1ldGhv
ZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gYW5kIG90aGVyIHNjcm9sbCBtZWNoYW5pc21zIHRy
ZWF0IGFueSBwcmV2aW91c2x5CnNraXBwZWQgY29udGVudCBhcyBiZWNvbWluZyByZWxldmFudCB0
byB0aGUgdXNlciBiZWZvcmUgZG9pbmcgYW55IHNjcm9sbGluZy4KCkhhbmRsaW5nIGZvY3VzZWQg
YW5kIHNlbGVjdGVkIGVsZW1lbnRzIHdpbGwgYmUgZG9uZSBpbiBhIGZ1dHVyZSBwYXRjaC4KClsx
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250ZW50LXZp
c2liaWxpdHktYXV0bwpbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNy
ZWxldmFudC10by10aGUtdXNlcgpbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250
YWluLyNza2lwcy1pdHMtY29udGVudHMKCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0
ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNv
cmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2Jz
ZXJ2ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2
ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVy
c2VjdGlvbk9ic2VydmVyKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZTo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKTogaGVscGVy
IGFyb3VuZCBsYWNrIG9mIHNjcm9sbCBhbmNob3JpbmcuCiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcpOiBtYWtlIHN1cmUgc2Nyb2xsZWQgdG8gZWxlbWVudCBpcyBp
biB2aXNpYmxlIHN1YnRyZWUuCihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkKTogbWFrZSBzdXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVl
LgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBjb25zdCk6CihXZWJD
b3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZCk6IHVwZGF0ZSBpZiBp
biBjb250ZW50LXZpc2liaWxpdHkgYXV0byBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6aXNS
ZWxldmFudFRvVXNlciBjb25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0
eVZpZXdwb3J0Q2hhbmdlKTogaGFuZGxlIGNoYW5nZWQgdmlzaWJpbGl0eSBpbiB2aWV3cG9ydCBz
dGF0dXMuCiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmg6CihXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmNvbnRlbnRS
ZWxldmFuY3lTdGF0dXMpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaDoga2Vl
cCB0cmFjayBvZiB3aGV0aGVyIGNvbnRlbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIuCiogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHA6CihXZWJDb3JlOjpIVE1MRGlh
bG9nRWxlbWVudDo6c2hvd01vZGFsKTogbWFrZSBzdXJlIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBz
dWJ0cmVlLgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZy
YW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKTogaGFuZGxlIGFuY2hvciBz
Y3JvbGxzLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6IGFkZC9yZW1vdmUgb2JzZXJ2
YXRpb24gZm9yIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50LgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKTogcmVtb3ZlIG9ic2VydmF0aW9uIGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudC4KKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNo
b3VsZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQgY29uc3QpOiB0YWtlIGludG8gYWNjb3VudCBjdXJyZW50IHZhbHVlIG9mIGVmZmVjdGl2
ZVNraXBzQ29udGVudC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQg
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKFdlYkNvcmU6
OnJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQpOiBhIGNoYW5nZSBpbiBlZmZl
Y2l0aXZlU2tpcHNDb250ZW50IHJlcXVpcmVzIGEgbGF5b3V0LgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3Qg
Y29uc3QpOiB0YWtlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQuCiogU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwOiBkbyBub3Qgc2hhcmUg
c3R5bGVzIHdpdGggZGlmZmVyZW50IGlzUmVsZXZhbnRUb1VzZXIgdmFsdWVzLgooV2ViQ29yZTo6
U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50IGNvbnN0KToK
LS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCA4MiAr
KysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAg
ICAgICAgICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgMzkgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAg
ICAgICAgICAgICAgICAgfCAxMiArKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaCAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCAg
ICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQu
Y3BwICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgICAgICAg
ICAgICAgfCAgMyArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAg
ICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCAg
ICAgIHwgMTMgKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAg
ICAgfCAgNSAtLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAg
IHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwg
MTAgKystCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAg
MyArCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAgICAgfCAgNCAr
LQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDQgKy0K
IC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dCAgICAgICB8ICAzICstCiAu
Li4vY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgICAgICAgfCAxNyArKy0tCiAu
Li4vY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQgICAgICAgfCAgOCArLQogMTkg
ZmlsZXMgY2hhbmdlZCwgMjI2IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2ZDRhZjQ3ODA1Zi4uYWUyNTc1NDFlN2U3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzOCw2ICsxMzgsNyBAQAogI2luY2x1ZGUgIkltYWdlT3Zl
cmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2suaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTGF6eUV2ZW50
TGlzdGVuZXIuaCIKQEAgLTM2OSw2ICszNzAsMzMgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKERvY3VtZW50KTsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3Bh
Y2UgV1RGOjpVbmljb2RlOwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2s+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZW50VmlzaWJpbGl0eUludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2soZG9jdW1lbnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBo
YXNDYWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIENhbGxiYWNr
UmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEludGVyc2VjdGlvbk9ic2VydmVyJiwgY29uc3QgVmVj
dG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mIGVudHJpZXMsIEludGVyc2VjdGlv
bk9ic2VydmVyJikgZmluYWwKKyAgICB7CisgICAgICAgIEFTU0VSVCghZW50cmllcy5pc0VtcHR5
KCkpOworCisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CisgICAgICAgICAg
ICBpZiAoYXV0byogZWxlbWVudCA9IGVudHJ5LT50YXJnZXQoKSkKKyAgICAgICAgICAgICAgICBl
bGVtZW50LT5jb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGVudHJ5LT5pc0ludGVyc2Vj
dGluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIENv
bnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhEb2N1bWVudCYgZG9j
dW1lbnQpCisgICAgICAgIDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaygmZG9jdW1lbnQp
CisgICAgeworICAgIH0KK307CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjTWF4V3JpdGVSZWN1
cnNpb25EZXB0aCA9IDIxOwogYm9vbCBEb2N1bWVudDo6aGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0
Q2FjaGUgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1heEludGVydmFsRm9yVXNlckdl
c3R1cmVGb3J3YXJkaW5nQWZ0ZXJNZWRpYUZpbmlzaGVzUGxheWluZyB7IDFfcyB9OwpAQCAtOTQy
Miw2ICs5NDUwLDYwIEBAIGJvb2wgRG9jdW1lbnQ6OmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zZXR0aW5ncy0+bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSAm
JiAhbV9xdWlya3MtPnNob3VsZERpc2FibGVMYXp5SW1hZ2VMb2FkaW5nUXVpcmsoKTsKIH0KIAor
Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBEb2N1bWVudDo6Y29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlKCkKK3sKKyAgICBpZiAoIW1fY29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlKQorICAgICAgICBtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSA9IG1ha2VV
bmlxdWU8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPigqdGhpcyk7CisgICAgcmV0dXJu
ICptX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTsKK30KKworQ29udGVudFZpc2liaWxp
dHlEb2N1bWVudFN0YXRlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKwordm9pZCBDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6Om9ic2VydmUoRWxlbWVudCYgZWxlbWVudCkKK3sK
KyAgICBpZiAoYXV0byogaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBlbnN1cmVJbnRlcnNlY3Rpb25P
YnNlcnZlcigpKQorICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci0+b2JzZXJ2ZShlbGVtZW50
KTsKK30KKwordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZShF
bGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChtX29ic2VydmVyKQorICAgICAgICBtX29ic2Vy
dmVyLT51bm9ic2VydmUoZWxlbWVudCk7Cit9CisKK0ludGVyc2VjdGlvbk9ic2VydmVyKiBDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkK
K3sKKyAgICBpZiAoIW1fb2JzZXJ2ZXIpIHsKKyAgICAgICAgYXV0byBjYWxsYmFjayA9IENvbnRl
bnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjazo6Y3JlYXRlKCptX2RvY3Vt
ZW50KTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gY29udGVu
dFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2soTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIjEw
MCUiKSk7CisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyOjpJbml0IG9wdGlvbnMgeyBzdGQ6
Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrLCB7IH0gfTsKKyAg
ICAgICAgYXV0byBvYnNlcnZlciA9IEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGUoKm1fZG9j
dW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgaWYg
KG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlci5yZXR1cm5WYWx1ZSgpLnB0cigpOworICAgIH0K
KyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsKK30KKworLy8gV29ya2Fyb3VuZCBmb3IgbGFj
ayBvZiBzdXBwb3J0IGZvciBzY3JvbGwgYW5jaG9yaW5nLiBXZSBtYWtlIHN1cmUgYW55IGNvbnRl
bnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50cworLy8gYWJvdmUgdGhlIG9uZSB0byBiZSBzY3Jv
bGxlZCB0byBhcmUgYWxyZWFkeSBoaWRkZW4sIHNvIHRoZSBzY3JvbGwgcG9zaXRpb24gd2lsbCBu
b3QgbmVlZCB0byBiZSBhZGp1c3RlZAorLy8gbGF0ZXIuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4g
c2Nyb2xsIGFuY2hvcmluZyBpcyBpbXBsZW1lbnRlZC4KK3ZvaWQgQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlOjp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVk
ZWQoRWxlbWVudCogc2Nyb2xsQW5jaG9yKQoreworICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvIHRhcmdldCA6IG1fb2JzZXJ2ZXItPm9ic2VydmF0
aW9uVGFyZ2V0cygpKSB7CisgICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LT5yZW5kZXJlcigp
ICYmIHRhcmdldC0+cmVuZGVyZXIoKS0+c3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENv
bnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250ZW50
UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIGZhbHNlKTsK
KyAgICB9CisgICAgc2Nyb2xsQW5jaG9yLT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzSWZO
ZWVkZWQoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgdHJ1ZSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI3VuZGVmIERPQ1VNRU5UX1JFTEVBU0VfTE9HCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDg4M2YzMjFmNmM3Yy4uM2ZjYTc0ZTE0YTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMjM3LDYgKzIzNyw3IEBAIGNsYXNzIFRyYW5zZm9ybVNvdXJjZTsKIGNsYXNz
IFRyZWVXYWxrZXI7CiBjbGFzcyBVbmRvTWFuYWdlcjsKIGNsYXNzIFZpc2liaWxpdHlDaGFuZ2VD
bGllbnQ7CitjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaXRlZExpbmtTdGF0ZTsK
IGNsYXNzIFdha2VMb2NrTWFuYWdlcjsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKQEAgLTM1NCw2ICsz
NTUsMjMgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhF
dmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYpOworCisgICAgdm9p
ZCBvYnNlcnZlKEVsZW1lbnQmKTsKKyAgICB2b2lkIHVub2JzZXJ2ZShFbGVtZW50Jik7CisKKyAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZChFbGVt
ZW50KiBzY3JvbGxBbmNob3IpOworCitwcml2YXRlOgorICAgIEludGVyc2VjdGlvbk9ic2VydmVy
KiBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpOworCisgICAgUmVmUHRyPEludGVyc2VjdGlv
bk9ic2VydmVyPiBtX29ic2VydmVyOworICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBs
V2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAg
ICAgOiBwdWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpAQCAtMTY4
Myw2ICsxNzAxLDggQEAgcHVibGljOgogCiAgICAgTGF6eUxvYWRJbWFnZU9ic2VydmVyJiBsYXp5
TG9hZEltYWdlT2JzZXJ2ZXIoKTsKIAorICAgIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSYgY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCk7CisKICAgICB2b2lkIHNldEhhc1Zp
c3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50KCkgeyBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0
b21Db250ZW50ID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Zpc3VhbGx5Tm9uRW1wdHlDdXN0b21Db250ZW50
OyB9CiAgICAgdm9pZCBlbnF1ZXVlUGFpbnRUaW1pbmdFbnRyeUlmTmVlZGVkKCk7CkBAIC0xOTU1
LDYgKzE5NzUsOCBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExhenlMb2FkSW1h
Z2VPYnNlcnZlcj4gbV9sYXp5TG9hZEltYWdlT2JzZXJ2ZXI7CiAKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlPiBtX2NvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZTsKKwogI2lmICFMT0dfRElTQUJMRUQKICAgICBNb25vdG9uaWNUaW1lIG1fZG9j
dW1lbnRDcmVhdGlvblRpbWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3NWY3
ZjJlMGI1OTYuLjVkMzc3N2MwNDZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTA2OSw2
ICsxMDY5LDggQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlckVsZW1lbnQq
LCBMYXlvdXRSZWN0Pj4gbGlzdEJveEVsZW1lbnRTY3JvbGwKIAogdm9pZCBFbGVtZW50OjpzY3Jv
bGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmll
d09wdGlvbnM+PiYmIGFyZykKIHsKKyAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZSgpLnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRl
ZCh0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlciA9IG51bGxwdHI7CkBAIC0x
MTM0LDYgKzExMzYsOCBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KGJvb2wgYWxpZ25U
b1RvcCkKIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGJvb2wgY2VudGVy
SWZOZWVkZWQpCiB7CisgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGUoKS51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQodGhpcyk7
CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogCiAgICAgaWYgKCFyZW5kZXJlcigpKQpAQCAtNTIwNSw0ICs1MjA5LDM5IEBAIHZvaWQgRWxl
bWVudDo6c2V0RGlzcGxheUNvbnRlbnRzQ2hhbmdlZChib29sIGNoYW5nZWQpCiAgICAgc2V0RXZl
bnRUYXJnZXRGbGFnKEV2ZW50VGFyZ2V0RmxhZzo6RGlzcGxheUNvbnRlbnRzQ2hhbmdlZCwgY2hh
bmdlZCk7CiB9CiAKK09wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBFbGVtZW50Ojpj
b250ZW50UmVsZXZhbmN5U3RhdHVzKCkgY29uc3QKK3sKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkp
CisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250
ZW50UmVsZXZhbmN5U3RhdHVzKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFJl
bGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzIHN0YXR1cywgYm9vbCB2YWx1ZSkK
K3sKKyAgICBpZiAoY29udGVudFJlbGV2YW5jeVN0YXR1cygpLmNvbnRhaW5zKHN0YXR1cykgIT0g
dmFsdWUpIHsKKyAgICAgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuY29udGVudFJlbGV2YW5j
eVN0YXR1cygpLnNldChzdGF0dXMsIHZhbHVlKTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7
CisgICAgfQorfQorCit2b2lkIEVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJ
Zk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzIHN0YXR1cywgYm9vbCB2YWx1ZSkKK3sKKyAg
ICBmb3IgKGF1dG8gdGFyZ2V0ID0gdGhpczsgdGFyZ2V0OyB0YXJnZXQgPSB0YXJnZXQtPnBhcmVu
dEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgIGlmICh0YXJnZXQtPnJlbmRlcmVy
KCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0g
Q29udGVudFZpc2liaWxpdHk6OkF1dG8pIHsKKyAgICAgICAgICAgIHRhcmdldC0+dXBkYXRlQ29u
dGVudFJlbGV2YW5jeVN0YXR1cyhzdGF0dXMsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgIH0KK30KKworYm9vbCBFbGVtZW50Ojppc1JlbGV2YW50VG9Vc2VyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFyZURhdGEoKS0+
Y29udGVudFJlbGV2YW5jeVN0YXR1cygpOworfQorCit2b2lkIEVsZW1lbnQ6OmNvbnRlbnRWaXNp
YmlsaXR5Vmlld3BvcnRDaGFuZ2UoYm9vbCBpc0ludGVyc2VjdGluZykKK3sKKyAgICB1cGRhdGVD
b250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIGlz
SW50ZXJzZWN0aW5nKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggYjc3MTY3NDJjMTM1Li4wNzhkMzIwNTc3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApA
QCAtMTA0LDYgKzEwNCwxMSBAQCBzdHJ1Y3QgU2hhZG93Um9vdEluaXQ7CiAKIHVzaW5nIEV4cGxp
Y2l0bHlTZXRBdHRyRWxlbWVudHNNYXAgPSBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFZlY3RvcjxX
ZWFrUHRyPEVsZW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4+PjsKIAorZW51
bSBjbGFzcyBDb250ZW50UmVsZXZhbmN5U3RhdHVzIDogdWludDhfdCB7CisgICAgVmlzaWJsZSA9
IDEgPDwgMCwKKyAgICAvLyBGSVhNRTogYWRkIEZvY3VzZWQsIFNlbGVjdGVkLgorfTsKKwogbmFt
ZXNwYWNlIFN0eWxlIHsKIGNsYXNzIFJlc29sdmVyOwogZW51bSBjbGFzcyBDaGFuZ2UgOiB1aW50
OF90OwpAQCAtNzE5LDYgKzcyNCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXNwbGF5Q29udGVu
dHNDaGFuZ2VkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJv
b2wgPSB0cnVlKTsKIAorICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBjb250
ZW50UmVsZXZhbmN5U3RhdHVzKCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZh
bmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMsIGJvb2wpOworICAgIHZvaWQgdXBkYXRl
Q29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXMsIGJv
b2wpOworICAgIGJvb2wgaXNSZWxldmFudFRvVXNlcigpIGNvbnN0OworCisgICAgdm9pZCBjb250
ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKGJvb2wpOworCiBwcm90ZWN0ZWQ6CiAgICAgRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDUzMzcwMmM2ZGQ3YS4uOThi
ZGFhNDc5MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0xMjMsNiAr
MTIzLDggQEAgcHVibGljOgogCiAgICAgRXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcCYgZXhw
bGljaXRseVNldEF0dHJFbGVtZW50c01hcCgpIHsgcmV0dXJuIG1fZXhwbGljaXRseVNldEF0dHJF
bGVtZW50c01hcDsgfQogCisgICAgT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+JiBj
b250ZW50UmVsZXZhbmN5U3RhdHVzKCkgeyByZXR1cm4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVz
OyB9CisKICNpZiBEVU1QX05PREVfU1RBVElTVElDUwogICAgIE9wdGlvblNldDxVc2VUeXBlPiB1
c2VUeXBlcygpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IGQ0
NTlkMDk3MzlkYS4uMDdlYWUxODQwYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBA
IC0zMjYsNiArMzI2LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFVzZWQgYnkgRWxlbWVudFJhcmVE
YXRhLiBEZWZpbmVkIGhlcmUgZm9yIGJldHRlciBwYWNraW5nIGluIDY0LWJpdC4KICAgICBpbnQg
bV91bnVzdWFsVGFiSW5kZXggeyAwIH07CiAgICAgdW5zaWduZWQgc2hvcnQgbV9jaGlsZEluZGV4
IHsgMCB9OworICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiBtX2NvbnRlbnRS
ZWxldmFuY3lTdGF0dXM7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRWxlbWVudFJhcmVEYXRh
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcAppbmRleCBmYzkxZDIz
ZmRjOTMuLmE2NjM0ODUwYWYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGlhbG9nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxl
bWVudC5jcHAKQEAgLTc5LDggKzc5LDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxEaWFsb2dF
bGVtZW50OjpzaG93TW9kYWwoKQogCiAgICAgc2V0SXNNb2RhbCh0cnVlKTsKIAotICAgIGlmICgh
aXNJblRvcExheWVyKCkpCisgICAgaWYgKCFpc0luVG9wTGF5ZXIoKSkgeworICAgICAgICB1cGRh
dGVDb250ZW50UmVsZXZhbmN5U3RhdHVzSWZOZWVkZWQoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6
VmlzaWJsZSwgdHJ1ZSk7CiAgICAgICAgIGFkZFRvVG9wTGF5ZXIoKTsKKyAgICB9CiAKICAgICBt
X3ByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDc1OGE4N2ZlYTBmNy4uOGRjMzM2OTQ1
NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yMzc4LDYgKzIzNzgsOSBAQCB2
b2lkIEZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKENvbnRhaW5lck5v
ZGUqIGFuY2hvck5vZGUpCiAKICAgICBjYW5jZWxTY2hlZHVsZWRTY3JvbGxzKCk7CiAKKyAgICBp
ZiAoaXM8RWxlbWVudD4oYW5jaG9yTm9kZSkpCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCkt
PmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lT
dGF0dXNGb3JTY3JvbGxJZk5lZWRlZChkb3duY2FzdDxFbGVtZW50PihhbmNob3JOb2RlKSk7CisK
ICAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSB0aGUgbGF5b3V0IGJlZm9yZSBzY3JvbGxpbmcsIG90
aGVyd2lzZSB3ZSBjb3VsZAogICAgIC8vIHJlYWxseSBtZXNzIHRoaW5ncyB1cCBpZiBhbiBhbmNo
b3Igc2Nyb2xsIGNvbWVzIGF0IGEgYmFkIG1vbWVudC4KICAgICBtX2ZyYW1lLT5kb2N1bWVudCgp
LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAKaW5kZXggN2U5OTM2YzUyMTI2Li5lZmU2YThlY2JhZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTgxOSw2ICs4MTksMTMgQEAg
dm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAg
ICAgIGlmIChtX3N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gbmV3U3R5bGUuY29udGVudFZp
c2liaWxpdHkoKSAmJiBlbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0eWxlLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51bm9ic2VydmUo
KmVsZW1lbnQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGRvY3Vt
ZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkub2JzZXJ2ZSgqZWxlbWVudCgp
KTsKKyAgICAgICAgfQorCiAgICAgICAgIGF1dG8gbmVlZHNJbnZhbGlkYXRlRXZlbnRSZWdpb24g
PSBbJl0gewogICAgICAgICAgICAgaWYgKG1fc3R5bGUuZWZmZWN0aXZlUG9pbnRlckV2ZW50cygp
ICE9IG5ld1N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTg2NCw2ICs4NzEsOSBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnN0eWxl
V2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ldwog
ICAgICAgICBzZXRIYXNOb25WaXNpYmxlT3ZlcmZsb3coZmFsc2UpOwogICAgICAgICBzZXRIYXNU
cmFuc2Zvcm1SZWxhdGVkUHJvcGVydHkoZmFsc2UpOwogICAgICAgICBzZXRIYXNSZWZsZWN0aW9u
KGZhbHNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobmV3U3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byAmJiBlbGVtZW50KCkpCisgICAgICAg
ICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLm9ic2VydmUo
KmVsZW1lbnQoKSk7CiAgICAgfQogCiAgICAgYm9vbCBoYWRPdXRsaW5lID0gb2xkU3R5bGUgJiYg
b2xkU3R5bGUtPmhhc091dGxpbmUoKTsKQEAgLTEwNzIsNiArMTA4Miw5IEBAIHZvaWQgUmVuZGVy
RWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKCkKIAogICAgIGlmIChtX2hhc1BhdXNlZEltYWdlQW5p
bWF0aW9ucykKICAgICAgICAgdmlldygpLnJlbW92ZVJlbmRlcmVyV2l0aFBhdXNlZEltYWdlQW5p
bWF0aW9ucygqdGhpcyk7CisKKyAgICBpZiAoc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09
IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQo
KS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51bm9ic2VydmUoKmVsZW1lbnQoKSk7
CiB9CiAKIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpAQCAtMjE5Myw0ICsyMjA2LDEzIEBAIEZs
b2F0UmVjdCBSZW5kZXJFbGVtZW50OjpyZWZlcmVuY2VCb3hSZWN0KENTU0JveFR5cGUgYm94VHlw
ZSkgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0
eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6SGlkZGVuKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZWxlbWVudCgpICYm
ICFlbGVtZW50KCktPmlzUmVsZXZhbnRUb1VzZXIoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggNmZlZDhmYmJjZTA2Li44ZjYxMDE3Mzk2MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAtMzEyLDYgKzMx
Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZXN0YWJsaXNoZXNJbmRlcGVuZGVudEZv
cm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAgICAgYm9vbCBjcmVhdGVzTmV3Rm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKwog
cHJvdGVjdGVkOgogICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKICAgICAgICAgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdEZsYWcgID0gMSA8PCAwLApAQCAtNTM5LDcgKzU0MSw5IEBAIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5TGF5b3V0T3JQYWludENvbnRhaW5tZW50KCkgY29u
c3QKIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1l
bnQoKSBjb25zdAogewotICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1l
bnQoc3R5bGUoKS5jb250YWluc1NpemUoKSB8fCBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbik7CisgICAgaWYgKHNob3VsZFNraXBDb250ZW50
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0
eWxlQ29udGFpbm1lbnQoc3R5bGUoKS5jb250YWluc1NpemUoKSk7CiB9CiAKIGlubGluZSBib29s
IFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3QK
QEAgLTY1MSw2ICs2NTUsMTMgQEAgaW5saW5lIFJlbmRlck9iamVjdCogUmVuZGVyRWxlbWVudDo6
bGFzdEluRmxvd0NoaWxkKCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAoraW5saW5l
IGJvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7CisgICAgaWYg
KGlzVGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvd25jYXN0PFJl
bmRlckVsZW1lbnQ+KCp0aGlzKS5zaG91bGRTa2lwQ29udGVudCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfUkVOREVSX09CSkVDVChSZW5k
ZXJFbGVtZW50LCBpc1JlbmRlckVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKaW5kZXggNGZkOWQwZmI4MzY1Li4zNTQ4MGU0MGIyZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNjM3LDExICsyNjM3LDYg
QEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnQoKSBjb25zdAogICAgIHJldHVy
biBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+c3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKTsK
IH0KIAotYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpIaWRkZW47Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdE
ZXNjcmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggNDlhNGI3NjYxZWFmLi43ZGZkOGI4NTRmODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODY2LDYgKzg2Niw3
IEBAIHN0YXRpYyBib29sIHJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQoY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYKICAgICAgICAgfHwgZmlyc3QubGluZVNuYXAgIT0g
c2Vjb25kLmxpbmVTbmFwCiAgICAgICAgIHx8IGZpcnN0LmxpbmVBbGlnbiAhPSBzZWNvbmQubGlu
ZUFsaWduCiAgICAgICAgIHx8IGZpcnN0LmhhbmdpbmdQdW5jdHVhdGlvbiAhPSBzZWNvbmQuaGFu
Z2luZ1B1bmN0dWF0aW9uCisgICAgICAgIHx8IGZpcnN0LmVmZmVjdGl2ZVNraXBzQ29udGVudCAh
PSBzZWNvbmQuZWZmZWN0aXZlU2tpcHNDb250ZW50CiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9M
TElOR19UT1VDSCkKICAgICAgICAgfHwgZmlyc3QudXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyAh
PSBzZWNvbmQudXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDI1MGI1NmQwMjA5ZS4uMTI1NGIyYjg0YWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNTk0LDcgKzU5NCwxNSBA
QCB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSogdXNlckFnZW50QXBwZWFyYW5jZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHN0
eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAg
ICBhdXRvIGVmZmVjdGl2ZVNraXBzQ29udGVudCA9IFtdIChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIC0+IGJvb2wgeworICAgICAgICBpZiAoc3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQg
JiYgIWVsZW1lbnQtPmlzUmVsZXZhbnRUb1VzZXIoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH07CisKKyAgICBpZiAoZWZmZWN0aXZlU2tpcHNDb250ZW50KHN0eWxlLCBtX2VsZW1lbnQp
KQogICAgICAgICBzdHlsZS5zZXRFZmZlY3RpdmVTa2lwc0NvbnRlbnQodHJ1ZSk7CiAKICAgICBh
ZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3Moc3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCmluZGV4IGZjMTJlZWQ4NGYyZC4uNTZlNThiZTE4
MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3Bw
CkBAIC0yNTgsNiArMjU4LDkgQEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVX
aXRoRWxlbWVudChjb25zdCBDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICBpZiAoZWxl
bWVudEhhc0RpcmVjdGlvbkF1dG8oY2FuZGlkYXRlRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSAhPSBl
bGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
aWYgKGNhbmRpZGF0ZUVsZW1lbnQuaXNMaW5rKCkgJiYgY29udGV4dC5lbGVtZW50TGlua1N0YXRl
ICE9IHN0eWxlLT5pbnNpZGVMaW5rKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNjA1ZTUwMjIzNTAyLi4yNDk2YzkyM2YwYTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNDcwMCw2ICs0NzAwLDggQEAgd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby8KIHdlYmtp
dC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNp
emluZy9hc3BlY3QtcmF0aW8vZmxvYXRzLWFzcGVjdC1yYXRpby0wMDEuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCiAjIGNvbnRhaW4taW50cmluc2ljLXNpemUKK3dlYmtpdC5vcmcvYi8yNDYz
MzggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDAxLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yNDYz
MzggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDAyLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYz
MzggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDA3Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYz
MzggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDA5Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yNDYy
ODMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2NvbnRhaW4taW50cmluc2ljLXNpemUtbG9naWNhbC0wMDMuaHRtbCBb
IFNraXAgXQpAQCAtNDgyMSw4ICs0ODIzLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRyaW5zaWMuaHQKICMg
Zm9yY2VkIGxheW91dAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNr
aXAgXQogIyBjLXY6IGF1dG8KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktYXV0
by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVj
dGVkLnR4dAppbmRleCBjZmQ4N2JkMjFmODYuLjczMjY4ZmRiMDhkZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29u
dGVudC12aXNpYmlsaXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4
dCIgYnV0IGdvdCAidW5kZWZpbmVkIgotRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29u
dGVudC12aXNpYmlsaXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0ZXh0MiIgYnV0IGdvdCAidW5rbm93biIKK0ZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3
aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgc2luZ2xlIHRleHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgInRleHQiIGJ1dCBnb3QgInRvcCIKK0ZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3aXRoIGNv
bnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2NrcyBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAidGV4dDIiIGJ1dCBnb3QgInRvcCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5
MDZkNmMzZi4uOTExMDJhNzA1YWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9u
IGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJ
TCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6
IHN0ZXAzIGhlaWdodCBleHBlY3RlZCAxMCBidXQgZ290IDEwMAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQK
aW5kZXggNDRhMjkzNjUwMzYxLi41YzFkZmNlMDA4NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKQEAg
LTEsMTMgKzEsOCBAQAotaGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCiAKLUZBSUwg
T25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVy
IGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNr
OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGdvZXMg
YmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitGQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBh
c3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2Ugc2hydW5r
IHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNl
IGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0
X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJv
bSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X2ZhbHNlOiAzIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVl
CitGQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfZmFsc2U6IHRlc3RfMCwg
Y29udGFpbmVyXzEgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2ZlMDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0x
LDcgKzEsNyBAQAogCiBQQVNTIG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKLUZBSUwgdHdv
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3
IGJ1dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2Vy
dF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZm91ci5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290
IDMwNDEKLUZBSUwgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6
IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKK1BBU1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOgorUEFTUyB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZm91ci5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KToKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464536</attachid>
            <date>2023-01-18 07:16:07 -0800</date>
            <delta_ts>2023-01-19 08:13:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230118151605.patch</filename>
            <type>text/plain</type>
            <size>30964</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA4MmZhY2QwYjE5ZTkyNDM1M2YxZjc5NjBhNjJkM2IxZDg0MDhjMWE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxMDowNzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW4gdG8gdGhlIHVzZXIuCi0gc3RhdGUgaXMga2VwdCB1c2luZyBDb250ZW50UmVs
ZXZhbmN5U3RhdHVzIGVudW0gY2xhc3Mgd2hldGhlciB0aGUKICBjb250ZW50LXZpc2liaWxpdHk6
IGF1dG8gc3VidHJlZSBjb250YWlucyBhbnkgZm9jdXNlZCBvciBzZWxlY3RlZAogIGVsZW1lbnRz
LCBzaW5jZSB0aGF0IG1lYW5zIGl0IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoKVGhlIG1ldGhv
ZCBzY3JvbGxJbnRvVmlldygpIFs0LjMuNV0gYW5kIG90aGVyIHNjcm9sbCBtZWNoYW5pc21zIHRy
ZWF0IGFueSBwcmV2aW91c2x5CnNraXBwZWQgY29udGVudCBhcyBiZWNvbWluZyByZWxldmFudCB0
byB0aGUgdXNlciBiZWZvcmUgZG9pbmcgYW55IHNjcm9sbGluZy4KCkhhbmRsaW5nIGZvY3VzZWQg
YW5kIHNlbGVjdGVkIGVsZW1lbnRzIHdpbGwgYmUgZG9uZSBpbiBhIGZ1dHVyZSBwYXRjaC4KClsx
XSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250ZW50LXZp
c2liaWxpdHktYXV0bwpbMl0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNy
ZWxldmFudC10by10aGUtdXNlcgpbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250
YWluLyNza2lwcy1pdHMtY29udGVudHMKCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoK
KiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50
eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0
ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4
cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3
MS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzItZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihX
ZWJDb3JlOjpEb2N1bWVudDo6Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNv
cmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2Jz
ZXJ2ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2
ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVy
c2VjdGlvbk9ic2VydmVyKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZTo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKTogaGVscGVy
IGFyb3VuZCBsYWNrIG9mIHNjcm9sbCBhbmNob3JpbmcuCiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcpOiBtYWtlIHN1cmUgc2Nyb2xsZWQgdG8gZWxlbWVudCBpcyBp
biB2aXNpYmxlIHN1YnRyZWUuCihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkKTogbWFrZSBzdXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVl
LgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBjb25zdCk6CihXZWJD
b3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZCk6IHVwZGF0ZSBpZiBp
biBjb250ZW50LXZpc2liaWxpdHkgYXV0byBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6aXNS
ZWxldmFudFRvVXNlciBjb25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0
eVZpZXdwb3J0Q2hhbmdlKTogaGFuZGxlIGNoYW5nZWQgdmlzaWJpbGl0eSBpbiB2aWV3cG9ydCBz
dGF0dXMuCiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmg6CihXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmNvbnRlbnRS
ZWxldmFuY3lTdGF0dXMpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaDoga2Vl
cCB0cmFjayBvZiB3aGV0aGVyIGNvbnRlbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIuCiogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHA6CihXZWJDb3JlOjpIVE1MRGlh
bG9nRWxlbWVudDo6c2hvd01vZGFsKTogbWFrZSBzdXJlIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBz
dWJ0cmVlLgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZy
YW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5jaG9yKTogaGFuZGxlIGFuY2hvciBz
Y3JvbGxzLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZSk6IGFkZC9yZW1vdmUgb2JzZXJ2
YXRpb24gZm9yIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50LgooV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKTogcmVtb3ZlIG9ic2VydmF0aW9uIGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudC4KKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNo
b3VsZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQgY29uc3QpOiB0YWtlIGludG8gYWNjb3VudCBjdXJyZW50IHZhbHVlIG9mIGVmZmVjdGl2
ZVNraXBzQ29udGVudC4KKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQg
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKFdlYkNvcmU6
OnJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQpOiBhIGNoYW5nZSBpbiBlZmZl
Y2l0aXZlU2tpcHNDb250ZW50IHJlcXVpcmVzIGEgbGF5b3V0LgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3Qg
Y29uc3QpOiB0YWtlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQuCiogU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwOiBkbyBub3Qgc2hhcmUg
c3R5bGVzIHdpdGggZGlmZmVyZW50IGlzUmVsZXZhbnRUb1VzZXIgdmFsdWVzLgooV2ViQ29yZTo6
U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50IGNvbnN0KToK
LS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCA4MiAr
KysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAg
ICAgICAgICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgNDEgKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCAg
ICAgICAgICAgICAgICAgIHwgMTIgKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmggICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgg
ICAgICAgICAgICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50
LmNwcCAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAg
ICAgICAgIHwgIDMgKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
ICAgIHwgMjIgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmgg
ICAgICB8IDEzICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAg
ICAgIHwgIDUgLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAg
ICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwICAgICAgICB8
IDEwICsrLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIHwg
IDMgKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAgICAgICAgICAgIHwgIDQg
Ky0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVkLnR4dCAgICAgICB8ICA0ICst
CiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQgICAgICAgfCAgMiArLQog
Li4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDMgKy0KIC4u
Li9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dCAgICAgICB8IDE3ICsrLS0KIC4u
Li9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dCAgICAgICB8ICA4ICstCiAyMCBm
aWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNDZkNGFmNDc4MDVmLi5hZTI1NzU0MWU3ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMTM4LDYgKzEzOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVy
bGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5o
IgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRM
aXN0ZW5lci5oIgpAQCAtMzY5LDYgKzM3MCwzMyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoRG9jdW1lbnQpOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY6OlVuaWNvZGU7CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhh
c0NhbGxiYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tS
ZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0
b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXImKSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHko
KSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAg
IGlmIChhdXRvKiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0
aW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29u
dGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1
bWVudCkKKyAgICAgICAgOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkK
KyAgICB7CisgICAgfQorfTsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vy
c2lvbkRlcHRoID0gMjE7CiBib29sIERvY3VtZW50OjpoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RD
YWNoZSA9IGZhbHNlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2Vz
dHVyZUZvcndhcmRpbmdBZnRlck1lZGlhRmluaXNoZXNQbGF5aW5nIHsgMV9zIH07CkBAIC05NDIy
LDYgKzk0NTAsNjAgQEAgYm9vbCBEb2N1bWVudDo6bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSBj
b25zdAogICAgIHJldHVybiBtX3NldHRpbmdzLT5sYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpICYm
ICFtX3F1aXJrcy0+c2hvdWxkRGlzYWJsZUxhenlJbWFnZUxvYWRpbmdRdWlyaygpOwogfQogCitD
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUoKQoreworICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGUpCisgICAgICAgIG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVu
aXF1ZTxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4g
Km1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQorewor
ICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9i
c2VydmVyKCkpCisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1lbnQp
OworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dW5vYnNlcnZlKEVs
ZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2
ZXItPnVub2JzZXJ2ZShlbGVtZW50KTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKQor
eworICAgIGlmICghbV9vYnNlcnZlcikgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gQ29udGVu
dFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpjcmVhdGUoKm1fZG9jdW1l
bnQpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50
VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjayhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiMTAw
JSIpKTsKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OkluaXQgb3B0aW9ucyB7IHN0ZDo6
bnVsbG9wdCwgY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2ssIHsgfSB9OworICAg
ICAgICBhdXRvIG9ic2VydmVyID0gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSgqbV9kb2N1
bWVudCwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUob3B0aW9ucykpOworICAgICAgICBpZiAo
b2JzZXJ2ZXIuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgbV9vYnNlcnZlciA9IG9ic2VydmVyLnJldHVyblZhbHVlKCkucHRyKCk7CisgICAgfQor
ICAgIHJldHVybiBtX29ic2VydmVyLmdldCgpOworfQorCisvLyBXb3JrYXJvdW5kIGZvciBsYWNr
IG9mIHN1cHBvcnQgZm9yIHNjcm9sbCBhbmNob3JpbmcuIFdlIG1ha2Ugc3VyZSBhbnkgY29udGVu
dC12aXNpYmlsaXR5OiBhdXRvIGVsZW1lbnRzCisvLyBhYm92ZSB0aGUgb25lIHRvIGJlIHNjcm9s
bGVkIHRvIGFyZSBhbHJlYWR5IGhpZGRlbiwgc28gdGhlIHNjcm9sbCBwb3NpdGlvbiB3aWxsIG5v
dCBuZWVkIHRvIGJlIGFkanVzdGVkCisvLyBsYXRlci4KKy8vIEZJWE1FOiByZW1vdmUgd2hlbiBz
Y3JvbGwgYW5jaG9yaW5nIGlzIGltcGxlbWVudGVkLgordm9pZCBDb250ZW50VmlzaWJpbGl0eURv
Y3VtZW50U3RhdGU6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRl
ZChFbGVtZW50KiBzY3JvbGxBbmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2JzZXJ2YXRp
b25UYXJnZXRzKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkg
JiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29u
dGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRS
ZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFsc2UpOwor
ICAgIH0KKyAgICBzY3JvbGxBbmNob3ItPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5l
ZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggODgzZjMyMWY2YzdjLi4zZmNhNzRlMTRhOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0yMzcsNiArMjM3LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3Mg
VHJlZVdhbGtlcjsKIGNsYXNzIFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNs
aWVudDsKK2NsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwog
Y2xhc3MgV2FrZUxvY2tNYW5hZ2VyOwogY2xhc3MgV2ViQW5pbWF0aW9uOwpAQCAtMzU0LDYgKzM1
NSwyMyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2
ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7CisKKyAgICB2b2lk
IG9ic2VydmUoRWxlbWVudCYpOworICAgIHZvaWQgdW5vYnNlcnZlKEVsZW1lbnQmKTsKKworICAg
IHZvaWQgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKEVsZW1l
bnQqIHNjcm9sbEFuY2hvcik7CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIq
IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9u
T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxX
aXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQKICAg
ICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBAIC0xNjgz
LDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXImIGxhenlM
b2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
JiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0SGFzVmlz
dWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3Rv
bUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQ7
IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAgLTE5NTUs
NiArMTk3NSw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFn
ZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlOworCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1
bWVudENyZWF0aW9uVGltZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1Zjdm
MmUwYjU5Ni4uOGQ1NmJlNGU0YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDY5LDYg
KzEwNjksOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVudCos
IExheW91dFJlY3Q+PiBsaXN0Qm94RWxlbWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNjcm9s
bEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3
T3B0aW9ucz4+JiYgYXJnKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVk
KHRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTEx
MzQsNiArMTEzNiw4IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRv
VG9wKQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJ
Zk5lZWRlZCkKIHsKKyAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSgpLnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCh0aGlzKTsK
KwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMzY1LDYgKzMzNjksOCBAQCB2b2lkIEVsZW1l
bnQ6OmZvY3VzKGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorICAgIGRvY3VtZW50LT5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51
cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQodGhpcyk7CisKICAg
ICBSZWZQdHI8RWxlbWVudD4gbmV3VGFyZ2V0ID0gdGhpczsKIAogICAgIC8vIElmIHdlIGRvbid0
IGhhdmUgcmVuZGVyZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxsIGNvbXB1dGUgaXQgd2l0aG91dCBz
dHlsZSB1cGRhdGUuCkBAIC01MjA1LDQgKzUyMTEsMzkgQEAgdm9pZCBFbGVtZW50OjpzZXREaXNw
bGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAgICBzZXRFdmVudFRhcmdldEZsYWco
RXZlbnRUYXJnZXRGbGFnOjpEaXNwbGF5Q29udGVudHNDaGFuZ2VkLCBjaGFuZ2VkKTsKIH0KIAor
T3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IEVsZW1lbnQ6OmNvbnRlbnRSZWxldmFu
Y3lTdGF0dXMoKSBjb25zdAoreworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lT
dGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVz
KENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGlmIChj
b250ZW50UmVsZXZhbmN5U3RhdHVzKCkuY29udGFpbnMoc3RhdHVzKSAhPSB2YWx1ZSkgeworICAg
ICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuc2V0
KHN0YXR1cywgdmFsdWUpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9Cit9CisK
K3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRl
bnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGZvciAoYXV0byB0
YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29t
cG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldC0+cmVuZGVyZXIoKSAmJiB0YXJnZXQt
PnJlbmRlcmVyKCktPnN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0bykgeworICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250ZW50UmVsZXZhbmN5
U3RhdHVzKHN0YXR1cywgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorfQorCitib29sIEVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdAoreworICAg
IHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZh
bmN5U3RhdHVzKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9y
dENoYW5nZShib29sIGlzSW50ZXJzZWN0aW5nKQoreworICAgIHVwZGF0ZUNvbnRlbnRSZWxldmFu
Y3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgaXNJbnRlcnNlY3Rpbmcp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBiNzcx
Njc0MmMxMzUuLjA3OGQzMjA1NzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0xMDQsNiArMTA0
LDExIEBAIHN0cnVjdCBTaGFkb3dSb290SW5pdDsKIAogdXNpbmcgRXhwbGljaXRseVNldEF0dHJF
bGVtZW50c01hcCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWVu
dCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPj4+OwogCitlbnVtIGNsYXNzIENvbnRl
bnRSZWxldmFuY3lTdGF0dXMgOiB1aW50OF90IHsKKyAgICBWaXNpYmxlID0gMSA8PCAwLAorICAg
IC8vIEZJWE1FOiBhZGQgRm9jdXNlZCwgU2VsZWN0ZWQuCit9OworCiBuYW1lc3BhY2UgU3R5bGUg
ewogY2xhc3MgUmVzb2x2ZXI7CiBlbnVtIGNsYXNzIENoYW5nZSA6IHVpbnQ4X3Q7CkBAIC03MTks
NiArNzI0LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BsYXlDb250ZW50c0NoYW5nZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldERpc3BsYXlDb250ZW50c0NoYW5nZWQoYm9vbCA9IHRydWUpOwog
CisgICAgT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IGNvbnRlbnRSZWxldmFuY3lT
dGF0dXMoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29u
dGVudFJlbGV2YW5jeVN0YXR1cywgYm9vbCk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZh
bmN5U3RhdHVzSWZOZWVkZWQoQ29udGVudFJlbGV2YW5jeVN0YXR1cywgYm9vbCk7CisgICAgYm9v
bCBpc1JlbGV2YW50VG9Vc2VyKCkgY29uc3Q7CisKKyAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5
Vmlld3BvcnRDaGFuZ2UoYm9vbCk7CisKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggNTMzNzAyYzZkZDdhLi45OGJkYWE0NzkyNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBwdWJs
aWM6CiAKICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwJiBleHBsaWNpdGx5U2V0QXR0
ckVsZW1lbnRzTWFwKCkgeyByZXR1cm4gbV9leHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwOyB9
CiAKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4mIGNvbnRlbnRSZWxldmFu
Y3lTdGF0dXMoKSB7IHJldHVybiBtX2NvbnRlbnRSZWxldmFuY3lTdGF0dXM7IH0KKwogI2lmIERV
TVBfTk9ERV9TVEFUSVNUSUNTCiAgICAgT3B0aW9uU2V0PFVzZVR5cGU+IHVzZVR5cGVzKCkgY29u
c3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZDQ1OWQwOTczOWRhLi4w
N2VhZTE4NDBjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTMyNiw2ICszMjYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gVXNlZCBieSBFbGVtZW50UmFyZURhdGEuIERlZmluZWQg
aGVyZSBmb3IgYmV0dGVyIHBhY2tpbmcgaW4gNjQtYml0LgogICAgIGludCBtX3VudXN1YWxUYWJJ
bmRleCB7IDAgfTsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXggeyAwIH07CisgICAg
T3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IG1fY29udGVudFJlbGV2YW5jeVN0YXR1
czsKIAogcHJpdmF0ZToKICAgICBib29sIG1faXNFbGVtZW50UmFyZURhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCmluZGV4IGZjOTFkMjNmZGM5My4uYTY2MzQ4
NTBhZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcApAQCAt
NzksOCArNzksMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTERpYWxvZ0VsZW1lbnQ6OnNob3dN
b2RhbCgpCiAKICAgICBzZXRJc01vZGFsKHRydWUpOwogCi0gICAgaWYgKCFpc0luVG9wTGF5ZXIo
KSkKKyAgICBpZiAoIWlzSW5Ub3BMYXllcigpKSB7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRSZWxl
dmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVl
KTsKICAgICAgICAgYWRkVG9Ub3BMYXllcigpOworICAgIH0KIAogICAgIG1fcHJldmlvdXNseUZv
Y3VzZWRFbGVtZW50ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggNzU4YTg3ZmVhMGY3Li44ZGMzMzY5NDU1NWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIzNzgsNiArMjM3OCw5IEBAIHZvaWQgRnJhbWVWaWV3
OjptYWludGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IoQ29udGFpbmVyTm9kZSogYW5jaG9yTm9k
ZSkKIAogICAgIGNhbmNlbFNjaGVkdWxlZFNjcm9sbHMoKTsKIAorICAgIGlmIChpczxFbGVtZW50
PihhbmNob3JOb2RlKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9s
bElmTmVlZGVkKGRvd25jYXN0PEVsZW1lbnQ+KGFuY2hvck5vZGUpKTsKKwogICAgIC8vIFdlIG5l
ZWQgdG8gdXBkYXRlIHRoZSBsYXlvdXQgYmVmb3JlIHNjcm9sbGluZywgb3RoZXJ3aXNlIHdlIGNv
dWxkCiAgICAgLy8gcmVhbGx5IG1lc3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29t
ZXMgYXQgYSBiYWQgbW9tZW50LgogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxl
SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApp
bmRleCA3ZTk5MzZjNTIxMjYuLmVmZTZhOGVjYmFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCB2b2lkIFJlbmRlckVs
ZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVy
U3R5bGUmIG5ldwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fc3R5
bGUuY29udGVudFZpc2liaWxpdHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICYm
IGVsZW1lbnQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxpdHko
KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgp
LmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29u
dGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICB9
CisKICAgICAgICAgYXV0byBuZWVkc0ludmFsaWRhdGVFdmVudFJlZ2lvbiA9IFsmXSB7CiAgICAg
ICAgICAgICBpZiAobV9zdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkgIT0gbmV3U3R5bGUu
ZWZmZWN0aXZlUG9pbnRlckV2ZW50cygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtODY0LDYgKzg3MSw5IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgIHNldEhh
c05vblZpc2libGVPdmVyZmxvdyhmYWxzZSk7CiAgICAgICAgIHNldEhhc1RyYW5zZm9ybVJlbGF0
ZWRQcm9wZXJ0eShmYWxzZSk7CiAgICAgICAgIHNldEhhc1JlZmxlY3Rpb24oZmFsc2UpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENv
bnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50
KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkub2JzZXJ2ZSgqZWxlbWVudCgpKTsK
ICAgICB9CiAKICAgICBib29sIGhhZE91dGxpbmUgPSBvbGRTdHlsZSAmJiBvbGRTdHlsZS0+aGFz
T3V0bGluZSgpOwpAQCAtMTA3Miw2ICsxMDgyLDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxs
QmVEZXN0cm95ZWQoKQogCiAgICAgaWYgKG1faGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKQogICAg
ICAgICB2aWV3KCkucmVtb3ZlUmVuZGVyZXJXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKCp0aGlz
KTsKKworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkF1dG8gJiYgZWxlbWVudCgpKQorICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBS
ZW5kZXJFbGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCkBAIC0yMTkzLDQgKzIyMDYsMTMgQEAgRmxvYXRSZWN0IFJlbmRl
ckVsZW1lbnQ6OnJlZmVyZW5jZUJveFJlY3QoQ1NTQm94VHlwZSBib3hUeXBlKSBjb25zdAogICAg
IHJldHVybiB7IH07CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQo
KSBjb25zdAoreworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVu
dFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5
bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgIWVsZW1lbnQoKS0+
aXNSZWxldmFudFRvVXNlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuaAppbmRleCA2ZmVkOGZiYmNlMDYuLjhmNjEwMTczOTYyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMTIsNiArMzEyLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRl
eHQoKSBjb25zdDsKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0
OwogCisgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgZW51bSBCYXNlVHlwZUZsYWcgewogICAgICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0Rmxh
ZyAgPSAxIDw8IDAsCkBAIC01MzksNyArNTQxLDkgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVu
dDo6c2hvdWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUg
Ym9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNv
bnRhaW5zU2l6ZSgpIHx8IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50Vmlz
aWJpbGl0eTo6SGlkZGVuKTsKKyAgICBpZiAoc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVu
dChzdHlsZSgpLmNvbnRhaW5zU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVu
dDo6c2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdApAQCAtNjUxLDYgKzY1
NSwxMyBAQCBpbmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJFbGVtZW50OjpsYXN0SW5GbG93Q2hp
bGQoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJP
YmplY3Q6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoaXNUZXh0KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4o
KnRoaXMpLnNob3VsZFNraXBDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlckVsZW1lbnQsIGlz
UmVuZGVyRWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCA0ZmQ5ZDBmYjgzNjUuLjM1NDgwZTQwYjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI2MzcsMTEgKzI2MzcsNiBAQCBib29sIFJlbmRl
ck9iamVjdDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVudCgpICYm
IHBhcmVudCgpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOwogfQogCi1ib29sIFJl
bmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiBzdHls
ZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsKLX0K
LQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRl
eCA0OWE0Yjc2NjFlYWYuLjdkZmQ4Yjg1NGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjYsNiArODY2LDcgQEAgc3RhdGljIGJv
b2wgcmFyZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhJgogICAgICAgICB8fCBmaXJzdC5saW5lU25hcCAhPSBzZWNvbmQubGluZVNu
YXAKICAgICAgICAgfHwgZmlyc3QubGluZUFsaWduICE9IHNlY29uZC5saW5lQWxpZ24KICAgICAg
ICAgfHwgZmlyc3QuaGFuZ2luZ1B1bmN0dWF0aW9uICE9IHNlY29uZC5oYW5naW5nUHVuY3R1YXRp
b24KKyAgICAgICAgfHwgZmlyc3QuZWZmZWN0aXZlU2tpcHNDb250ZW50ICE9IHNlY29uZC5lZmZl
Y3RpdmVTa2lwc0NvbnRlbnQKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQog
ICAgICAgICB8fCBmaXJzdC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nICE9IHNlY29uZC51c2VU
b3VjaE92ZXJmbG93U2Nyb2xsaW5nCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1
c3Rlci5jcHAKaW5kZXggMjUwYjU2ZDAyMDllLi4xMjU0YjJiODRhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01OTQsNyArNTk0LDE1IEBAIHZvaWQgQWRqdXN0
ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdl
bnRBcHBlYXJhbmNlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoc3R5bGUuY29udGVudFZp
c2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgIGF1dG8gZWZmZWN0
aXZlU2tpcHNDb250ZW50ID0gW10gKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxl
bWVudCogZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZp
c2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAhZWxlbWVudC0+
aXNSZWxldmFudFRvVXNlcigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAg
IGlmIChlZmZlY3RpdmVTa2lwc0NvbnRlbnQoc3R5bGUsIG1fZWxlbWVudCkpCiAgICAgICAgIHN0
eWxlLnNldEVmZmVjdGl2ZVNraXBzQ29udGVudCh0cnVlKTsKIAogICAgIGFkanVzdEZvclNpdGVT
cGVjaWZpY1F1aXJrcyhzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJp
bmdSZXNvbHZlci5jcHAKaW5kZXggZmMxMmVlZDg0ZjJkLi41NmU1OGJlMTgxN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKQEAgLTI1OCw2ICsy
NTgsOSBAQCBib29sIFNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNv
bnN0IENvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0eQogICAgIGlmIChlbGVtZW50SGFzRGlyZWN0
aW9uQXV0byhjYW5kaWRhdGVFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
aWYgKGNhbmRpZGF0ZUVsZW1lbnQuaXNSZWxldmFudFRvVXNlcigpICE9IGVsZW1lbnQuaXNSZWxl
dmFudFRvVXNlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY2FuZGlkYXRl
RWxlbWVudC5pc0xpbmsoKSAmJiBjb250ZXh0LmVsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmlu
c2lkZUxpbmsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA2MDVlNTAyMjM1MDIuLjI0OTZjOTIzZjBhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NzAw
LDYgKzQ3MDAsOCBAQCB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvLwogd2Via2l0Lm9yZy9iLzIxNDQ2
MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1y
YXRpby9mbG9hdHMtYXNwZWN0LXJhdGlvLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
ICMgY29udGFpbi1pbnRyaW5zaWMtc2l6ZQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvYXV0by0wMDEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvYXV0by0wMDIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvYXV0by0wMDcuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvYXV0by0wMDkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjI4MyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS1sb2dpY2FsLTAwMy5odG1sIFsgU2tpcCBdCkBAIC00
ODIxLDggKzQ4MjMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5odAogIyBmb3JjZWQgbGF5b3V0
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAjIGMtdjog
YXV0bwotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5n
ZWQuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1z
aXplLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktdmlkZW8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CmluZGV4
IGNmZDg3YmQyMWY4Ni4uNzMyNjhmZGIwOGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxp
dHk7IHNpbmdsZSB0ZXh0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ1
bmRlZmluZWQiCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxp
dHk7IHJhbmdlIGFjcm9zcyBibG9ja3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBi
dXQgZ290ICJ1bmtub3duIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12
aXNpYmlsaXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dCIgYnV0
IGdvdCAidG9wIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12aXNpYmls
aXR5OyByYW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0MiIg
YnV0IGdvdCAidG9wIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKaW5kZXggNThlMzY1ZWIzMWFjLi5iMTAz
ZWY4MmQ4MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDY4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29u
dGVudCBWaXNpYmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhl
aWdodCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9m
Zi1zY3JlZW4gZm9jdXMgYXNzZXJ0X2xlc3NfdGhhbjogc3RlcDIgb2Zmc2V0IGV4cGVjdGVkIGEg
bnVtYmVyIGxlc3MgdGhhbiAzMDAwIGJ1dCBnb3QgMzAwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKaW5k
ZXggYTNlNTkwNmQ2YzNmLi45MTEwMmE3MDVhZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACi1oZWxsbwogCi1GQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBz
ZWxlY3Rpb24gYXNzZXJ0X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290
IDEwCitGQUlMIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBzZWxlY3Rpb24gYXNzZXJ0
X2VxdWFsczogc3RlcDMgaGVpZ2h0IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMTAwCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVj
dGVkLnR4dAppbmRleCA0NGEyOTM2NTAzNjEuLjVjMWRmY2UwMDg2NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVk
LnR4dApAQCAtMSwxMyArMSw4IEBACi1oZWxsbwotaGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8K
IAotRkFJTCBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVtZW50czog
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBSYW5nZSBzaHJ1bmsg
dG8gY292ZXIgZmV3ZXIgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6ICBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGZyb250
IHRvIGJhY2s6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFu
Z2UgZ29lcyBiYWNrIGFuZCBmb3J0aDogIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorRkFJTCBPbmUgZWxlbWVudHMgc2VsZWN0ZWQ6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2UgZXh0ZW5kZWQgdG8gY292ZXIgbW9yZSBlbGVt
ZW50czogIGFzc2VydF9mYWxzZTogMiBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorRkFJTCBSYW5n
ZSBzaHJ1bmsgdG8gY292ZXIgZmV3ZXIgZWxlbWVudHM6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0
ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2UgZmxpcHBlZCBmcm9tIGJhY2sgdG8gZnJvbnQ6
ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2UgZmxp
cHBlZCBmcm9tIGZyb250IHRvIGJhY2s6ICBhc3NlcnRfZmFsc2U6IDMgZXhwZWN0ZWQgZmFsc2Ug
Z290IHRydWUKK0ZBSUwgUmFuZ2UgZ29lcyBiYWNrIGFuZCBmb3J0aDogIGFzc2VydF9mYWxzZTog
dGVzdF8wLCBjb250YWluZXJfMSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3Rl
ZC50eHQKaW5kZXggMDBmMWM3ZjQ0NDE4Li5mOTUxOGJjZmUwNjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50
eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1Mgb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgot
RkFJTCB0d28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6ICBhc3NlcnRfZXF1YWxzOiB5IGV4cGVj
dGVkIDMwMDcgYnV0IGdvdCAzMDQxCi1GQUlMIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCBmb3Vy
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3
IGJ1dCBnb3QgMzA0MQotRkFJTCBmaXZlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0
X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQorUEFTUyB0d28uZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk6CitQQVNTIHRocmVlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFT
UyBmb3VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyBmaXZlLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464561</attachid>
            <date>2023-01-19 08:13:51 -0800</date>
            <delta_ts>2023-01-19 12:01:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230119161349.patch</filename>
            <type>text/plain</type>
            <size>32707</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBjNjRjOWQ1NDZmMWY0ZTVmNjdmNGVmZTZjMTZkZTc3YjZhYjI2YTRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxMDowNzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgotIHN0YXRlIGlzIGtlcHQgdXNpbmcgQ29udGVudFJl
bGV2YW5jeVN0YXR1cyBlbnVtIGNsYXNzIHdoZXRoZXIgdGhlCiAgY29udGVudC12aXNpYmlsaXR5
OiBhdXRvIHN1YnRyZWUgY29udGFpbnMgYW55IGZvY3VzZWQgb3Igc2VsZWN0ZWQKICBlbGVtZW50
cywgc2luY2UgdGhhdCBtZWFucyBpdCBpcyByZWxldmFudCB0byB0aGUgdXNlci4KClRoZSBtZXRo
b2Qgc2Nyb2xsSW50b1ZpZXcoKSBbNC4zLjVdIGFuZCBvdGhlciBzY3JvbGwgbWVjaGFuaXNtcyB0
cmVhdCBhbnkgcHJldmlvdXNseQpza2lwcGVkIGNvbnRlbnQgYXMgYmVjb21pbmcgcmVsZXZhbnQg
dG8gdGhlIHVzZXIgYmVmb3JlIGRvaW5nIGFueSBzY3JvbGxpbmcuCgpIYW5kbGluZyBmb2N1c2Vk
IGFuZCBzZWxlY3RlZCBlbGVtZW50cyB3aWxsIGJlIGRvbmUgaW4gYSBmdXR1cmUgcGF0Y2guCgpb
MV0gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyN2YWxkZWYtY29udGVudC12
aXNpYmlsaXR5LWF1dG8KWzJdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8j
cmVsZXZhbnQtdG8tdGhlLXVzZXIKWzNdIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29u
dGFpbi8jc2tpcHMtaXRzLWNvbnRlbnRzCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6
CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQu
dHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVj
dGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1l
eHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDcyLWV4cGVjdGVkLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgoo
V2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJD
b3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6Om9i
c2VydmUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjp1bm9ic2Vy
dmUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRl
cnNlY3Rpb25PYnNlcnZlcik6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGU6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCk6IGhlbHBl
ciBhcm91bmQgbGFjayBvZiBzY3JvbGwgYW5jaG9yaW5nLgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KTogbWFrZSBzdXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMg
aW4gdmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCk6IG1ha2Ugc3VyZSBzY3JvbGxlZCB0byBlbGVtZW50IGlzIGluIHZpc2libGUgc3VidHJl
ZS4KKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMgY29uc3QpOgooV2Vi
Q29yZTo6RWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyk6CihXZWJDb3JlOjpF
bGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzSWZOZWVkZWQpOiB1cGRhdGUgaWYg
aW4gY29udGVudC12aXNpYmlsaXR5IGF1dG8gc3VidHJlZS4KKFdlYkNvcmU6OkVsZW1lbnQ6Omlz
UmVsZXZhbnRUb1VzZXIgY29uc3QpOgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFZpc2liaWxp
dHlWaWV3cG9ydENoYW5nZSk6IGhhbmRsZSBjaGFuZ2VkIHZpc2liaWxpdHkgaW4gdmlld3BvcnQg
c3RhdHVzLgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgooV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpjb250ZW50
UmVsZXZhbmN5U3RhdHVzKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmg6IGtl
ZXAgdHJhY2sgb2Ygd2hldGhlciBjb250ZW50IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgoqIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6SFRNTERp
YWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6IG1ha2Ugc3VyZSBlbGVtZW50IGlzIGluIHZpc2libGUg
c3VidHJlZS4KKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHA6CihXZWJDb3JlOjpG
cmFtZVZpZXc6Om1haW50YWluU2Nyb2xsUG9zaXRpb25BdEFuY2hvcik6IGhhbmRsZSBhbmNob3Ig
c2Nyb2xscy4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOiBhZGQvcmVtb3ZlIG9ic2Vy
dmF0aW9uIGZvciBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudC4KKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3llZCk6IHJlbW92ZSBvYnNlcnZhdGlvbiBmb3IgY29u
dGVudC12aXNpYmlsaXR5OiBhdXRvIGVsZW1lbnQuCihXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpz
aG91bGRTa2lwQ29udGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuaDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50IGNvbnN0KTogdGFrZSBpbnRvIGFjY291bnQgY3VycmVudCB2YWx1ZSBvZiBlZmZlY3Rp
dmVTa2lwc0NvbnRlbnQuCihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOiBEZWxldGVkLgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CihXZWJDb3Jl
OjpyYXJlSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KTogYSBjaGFuZ2UgaW4gZWZm
ZWNpdGl2ZVNraXBzQ29udGVudCByZXF1aXJlcyBhIGxheW91dC4KKiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6YWRqdXN0
IGNvbnN0KTogdGFrZSBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gaW50byBhY2NvdW50LgoqIFNv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcDogZG8gbm90IHNoYXJl
IHN0eWxlcyB3aXRoIGRpZmZlcmVudCBpc1JlbGV2YW50VG9Vc2VyIHZhbHVlcy4KKFdlYkNvcmU6
OlN0eWxlOjpTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCBjb25zdCk6
Ci0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgODIg
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAg
ICAgICAgICAgIHwgMjIgKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAg
ICAgICAgICAgICB8IDQxICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
ICAgICAgICAgICAgICAgICB8IDEyICsrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oICAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5o
ICAgICAgICAgICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVu
dC5jcHAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAg
ICAgICAgICB8ICAzICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cCAgICB8IDIyICsrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
ICAgICAgfCAxMyArKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
ICAgICB8ICA1IC0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
ICAgfCAgMSArCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCAgICAgICAg
fCAxMCArKy0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCB8
ICAzICsKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICA0
ICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQgICAgICAgfCAgNCAr
LQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDIgKy0K
IC4uLi9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWwgICAgICAgICAgICAgICB8ICAyICstCiAu
Li4vY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQgICAgICAgfCAgMyArLQogLi4u
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEtZXhwZWN0ZWQudHh0ICAgICAgIHwgMTcgKystLQogLi4u
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0ICAgICAgIHwgIDggKy0KIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyB8ICAyIC0KIDIyIGZpbGVz
IGNoYW5nZWQsIDIzMCBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA0NmQ0YWY0NzgwNWYuLjZjNjE2MDRhNTFjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xMzgsNiArMTM4LDcgQEAKICNpbmNsdWRlICJJbWFnZU92ZXJsYXlD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3Rl
bmVyLmgiCkBAIC0zNjksNiArMzcwLDMzIEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChE
b2N1bWVudCk7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIFdU
Rjo6VW5pY29kZTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZl
ckNhbGxiYWNrIGZpbmFsIDogcHVibGljIEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2sgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8Q29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZl
ckNhbGxiYWNrKGRvY3VtZW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgaGFzQ2Fs
bGJhY2soKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBDYWxsYmFja1Jlc3Vs
dDx2b2lkPiBoYW5kbGVFdmVudChJbnRlcnNlY3Rpb25PYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxS
ZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+JiBlbnRyaWVzLCBJbnRlcnNlY3Rpb25PYnNl
cnZlciYpIGZpbmFsCisgICAgeworICAgICAgICBBU1NFUlQoIWVudHJpZXMuaXNFbXB0eSgpKTsK
KworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykgeworICAgICAgICAgICAgaWYg
KGF1dG8qIGVsZW1lbnQgPSBlbnRyeS0+dGFyZ2V0KCkpCisgICAgICAgICAgICAgICAgZWxlbWVu
dC0+Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShlbnRyeS0+aXNJbnRlcnNlY3Rpbmco
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBDb250ZW50
VmlzaWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgICAgICA6IEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2soJmRvY3VtZW50KQorICAg
IHsKKyAgICB9Cit9OworCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY01heFdyaXRlUmVjdXJzaW9u
RGVwdGggPSAyMTsKIGJvb2wgRG9jdW1lbnQ6Omhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hl
ID0gZmFsc2U7CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBtYXhJbnRlcnZhbEZvclVzZXJHZXN0dXJl
Rm9yd2FyZGluZ0FmdGVyTWVkaWFGaW5pc2hlc1BsYXlpbmcgeyAxX3MgfTsKQEAgLTk0MjIsNiAr
OTQ1MCw2MCBAQCBib29sIERvY3VtZW50OjpsYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fc2V0dGluZ3MtPmxhenlJbWFnZUxvYWRpbmdFbmFibGVkKCkgJiYgIW1f
cXVpcmtzLT5zaG91bGREaXNhYmxlTGF6eUltYWdlTG9hZGluZ1F1aXJrKCk7CiB9CiAKK0NvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSYgRG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZSgpCit7CisgICAgaWYgKCFtX2NvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0
ZSkKKyAgICAgICAgbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUgPSBtYWtlVW5pcXVl
PENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZT4oKnRoaXMpOworICAgIHJldHVybiAqbV9j
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU7Cit9CisKK0NvbnRlbnRWaXNpYmlsaXR5RG9j
dW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50JiBkb2N1
bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK3ZvaWQgQ29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjpvYnNlcnZlKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
aWYgKGF1dG8qIGludGVyc2VjdGlvbk9ic2VydmVyID0gZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIoKSkKKyAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXItPm9ic2VydmUoZWxlbWVudCk7Cit9
CisKK3ZvaWQgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjp1bm9ic2VydmUoRWxlbWVu
dCYgZWxlbWVudCkKK3sKKyAgICBpZiAobV9vYnNlcnZlcikKKyAgICAgICAgbV9vYnNlcnZlci0+
dW5vYnNlcnZlKGVsZW1lbnQpOworfQorCitJbnRlcnNlY3Rpb25PYnNlcnZlciogQ29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlcigpCit7Cisg
ICAgaWYgKCFtX29ic2VydmVyKSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBDb250ZW50Vmlz
aWJpbGl0eUludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s6OmNyZWF0ZSgqbV9kb2N1bWVudCk7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IGNvbnRlbnRWaXNp
YmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCIwJSIpKTsK
KyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OkluaXQgb3B0aW9ucyB7IHN0ZDo6bnVsbG9w
dCwgY29udGVudFZpc2liaWxpdHlSb290TWFyZ2luRmFsbGJhY2ssIHsgfSB9OworICAgICAgICBh
dXRvIG9ic2VydmVyID0gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSgqbV9kb2N1bWVudCwg
V1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUob3B0aW9ucykpOworICAgICAgICBpZiAob2JzZXJ2
ZXIuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
bV9vYnNlcnZlciA9IG9ic2VydmVyLnJldHVyblZhbHVlKCkucHRyKCk7CisgICAgfQorICAgIHJl
dHVybiBtX29ic2VydmVyLmdldCgpOworfQorCisvLyBXb3JrYXJvdW5kIGZvciBsYWNrIG9mIHN1
cHBvcnQgZm9yIHNjcm9sbCBhbmNob3JpbmcuIFdlIG1ha2Ugc3VyZSBhbnkgY29udGVudC12aXNp
YmlsaXR5OiBhdXRvIGVsZW1lbnRzCisvLyBhYm92ZSB0aGUgb25lIHRvIGJlIHNjcm9sbGVkIHRv
IGFyZSBhbHJlYWR5IGhpZGRlbiwgc28gdGhlIHNjcm9sbCBwb3NpdGlvbiB3aWxsIG5vdCBuZWVk
IHRvIGJlIGFkanVzdGVkCisvLyBsYXRlci4KKy8vIEZJWE1FOiByZW1vdmUgd2hlbiBzY3JvbGwg
YW5jaG9yaW5nIGlzIGltcGxlbWVudGVkLgordm9pZCBDb250ZW50VmlzaWJpbGl0eURvY3VtZW50
U3RhdGU6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZChFbGVt
ZW50KiBzY3JvbGxBbmNob3IpCit7CisgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBmb3IgKGF1dG8gdGFyZ2V0IDogbV9vYnNlcnZlci0+b2JzZXJ2YXRpb25UYXJn
ZXRzKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFy
Z2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZp
c2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICB0YXJnZXQtPnVwZGF0ZUNvbnRlbnRSZWxldmFu
Y3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgZmFsc2UpOworICAgIH0K
KyAgICBzY3JvbGxBbmNob3ItPnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChD
b250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggM2NmZDkxNDRhNzgwLi4xM2U3Yjg3YTQ3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0yMzcsNiArMjM3LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3MgVHJlZVdh
bGtlcjsKIGNsYXNzIFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNsaWVudDsK
K2NsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwogY2xhc3Mg
V2FrZUxvY2tNYW5hZ2VyOwogY2xhc3MgV2ViQW5pbWF0aW9uOwpAQCAtMzU0LDYgKzM1NSwyMyBA
QCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFy
Z2V0RGF0YT4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQ29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7CisKKyAgICB2b2lkIG9ic2Vy
dmUoRWxlbWVudCYpOworICAgIHZvaWQgdW5vYnNlcnZlKEVsZW1lbnQmKTsKKworICAgIHZvaWQg
dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKEVsZW1lbnQqIHNj
cm9sbEFuY2hvcik7CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3Vy
ZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2
ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZl
bnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1
YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBAIC0xNjgzLDYgKzE3
MDEsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1h
Z2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBjb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0SGFzVmlzdWFsbHlO
b25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRl
bnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQ7IH0KICAg
ICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAgLTE5NTUsNiArMTk3
NSw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2Vy
dmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlOworCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1bWVudENy
ZWF0aW9uVGltZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1ZjdmMmUwYjU5
Ni4uOGQ1NmJlNGU0YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDY5LDYgKzEwNjks
OCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVudCosIExheW91
dFJlY3Q+PiBsaXN0Qm94RWxlbWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9W
aWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9u
cz4+JiYgYXJnKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0
YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKHRoaXMp
OworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTExMzQsNiAr
MTEzNiw4IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wKQog
CiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRl
ZCkKIHsKKyAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVw
ZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCh0aGlzKTsKKwogICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAg
ICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMzY1LDYgKzMzNjksOCBAQCB2b2lkIEVsZW1lbnQ6OmZv
Y3VzKGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIGRvY3VtZW50LT5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51cGRhdGVD
b250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQodGhpcyk7CisKICAgICBSZWZQ
dHI8RWxlbWVudD4gbmV3VGFyZ2V0ID0gdGhpczsKIAogICAgIC8vIElmIHdlIGRvbid0IGhhdmUg
cmVuZGVyZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxsIGNvbXB1dGUgaXQgd2l0aG91dCBzdHlsZSB1
cGRhdGUuCkBAIC01MjA1LDQgKzUyMTEsMzkgQEAgdm9pZCBFbGVtZW50OjpzZXREaXNwbGF5Q29u
dGVudHNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAgICBzZXRFdmVudFRhcmdldEZsYWcoRXZlbnRU
YXJnZXRGbGFnOjpEaXNwbGF5Q29udGVudHNDaGFuZ2VkLCBjaGFuZ2VkKTsKIH0KIAorT3B0aW9u
U2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IEVsZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0
dXMoKSBjb25zdAoreworICAgIGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMo
KTsKK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRl
bnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGlmIChjb250ZW50
UmVsZXZhbmN5U3RhdHVzKCkuY29udGFpbnMoc3RhdHVzKSAhPSB2YWx1ZSkgeworICAgICAgICBl
bnN1cmVFbGVtZW50UmFyZURhdGEoKS5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuc2V0KHN0YXR1
cywgdmFsdWUpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9Cit9CisKK3ZvaWQg
RWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGZvciAoYXV0byB0YXJnZXQg
PSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRU
cmVlKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldC0+cmVuZGVyZXIoKSAmJiB0YXJnZXQtPnJlbmRl
cmVyKCktPnN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0bykgeworICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVz
KHN0YXR1cywgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
fQorCitib29sIEVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdAoreworICAgIHJldHVy
biBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZhbmN5U3Rh
dHVzKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5n
ZShib29sIGlzSW50ZXJzZWN0aW5nKQoreworICAgIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0
dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgaXNJbnRlcnNlY3RpbmcpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBiNzcxNjc0MmMx
MzUuLjA3OGQzMjA1NzdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0xMDQsNiArMTA0LDExIEBA
IHN0cnVjdCBTaGFkb3dSb290SW5pdDsKIAogdXNpbmcgRXhwbGljaXRseVNldEF0dHJFbGVtZW50
c01hcCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWVudCwgV2Vh
a1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPj4+OwogCitlbnVtIGNsYXNzIENvbnRlbnRSZWxl
dmFuY3lTdGF0dXMgOiB1aW50OF90IHsKKyAgICBWaXNpYmxlID0gMSA8PCAwLAorICAgIC8vIEZJ
WE1FOiBhZGQgRm9jdXNlZCwgU2VsZWN0ZWQuCit9OworCiBuYW1lc3BhY2UgU3R5bGUgewogY2xh
c3MgUmVzb2x2ZXI7CiBlbnVtIGNsYXNzIENoYW5nZSA6IHVpbnQ4X3Q7CkBAIC03MTksNiArNzI0
LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGRpc3BsYXlDb250ZW50c0NoYW5nZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldERpc3BsYXlDb250ZW50c0NoYW5nZWQoYm9vbCA9IHRydWUpOwogCisgICAg
T3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IGNvbnRlbnRSZWxldmFuY3lTdGF0dXMo
KSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJl
bGV2YW5jeVN0YXR1cywgYm9vbCk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50UmVsZXZhbmN5U3Rh
dHVzSWZOZWVkZWQoQ29udGVudFJlbGV2YW5jeVN0YXR1cywgYm9vbCk7CisgICAgYm9vbCBpc1Jl
bGV2YW50VG9Vc2VyKCkgY29uc3Q7CisKKyAgICB2b2lkIGNvbnRlbnRWaXNpYmlsaXR5Vmlld3Bv
cnRDaGFuZ2UoYm9vbCk7CisKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKaW5kZXggNTMzNzAyYzZkZDdhLi45OGJkYWE0NzkyNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBwdWJsaWM6CiAK
ICAgICBFeHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwJiBleHBsaWNpdGx5U2V0QXR0ckVsZW1l
bnRzTWFwKCkgeyByZXR1cm4gbV9leHBsaWNpdGx5U2V0QXR0ckVsZW1lbnRzTWFwOyB9CiAKKyAg
ICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4mIGNvbnRlbnRSZWxldmFuY3lTdGF0
dXMoKSB7IHJldHVybiBtX2NvbnRlbnRSZWxldmFuY3lTdGF0dXM7IH0KKwogI2lmIERVTVBfTk9E
RV9TVEFUSVNUSUNTCiAgICAgT3B0aW9uU2V0PFVzZVR5cGU+IHVzZVR5cGVzKCkgY29uc3QKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggZDQ1OWQwOTczOWRhLi4wN2VhZTE4
NDBjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTMyNiw2ICszMjYsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgLy8gVXNlZCBieSBFbGVtZW50UmFyZURhdGEuIERlZmluZWQgaGVyZSBm
b3IgYmV0dGVyIHBhY2tpbmcgaW4gNjQtYml0LgogICAgIGludCBtX3VudXN1YWxUYWJJbmRleCB7
IDAgfTsKICAgICB1bnNpZ25lZCBzaG9ydCBtX2NoaWxkSW5kZXggeyAwIH07CisgICAgT3B0aW9u
U2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IG1fY29udGVudFJlbGV2YW5jeVN0YXR1czsKIAog
cHJpdmF0ZToKICAgICBib29sIG1faXNFbGVtZW50UmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCmluZGV4IGZjOTFkMjNmZGM5My4uYTY2MzQ4NTBhZjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcApAQCAtNzksOCAr
NzksMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTERpYWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCgp
CiAKICAgICBzZXRJc01vZGFsKHRydWUpOwogCi0gICAgaWYgKCFpc0luVG9wTGF5ZXIoKSkKKyAg
ICBpZiAoIWlzSW5Ub3BMYXllcigpKSB7CisgICAgICAgIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lT
dGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsKICAg
ICAgICAgYWRkVG9Ub3BMYXllcigpOworICAgIH0KIAogICAgIG1fcHJldmlvdXNseUZvY3VzZWRF
bGVtZW50ID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggNzU4YTg3ZmVhMGY3Li44ZGMzMzY5NDU1NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIzNzgsNiArMjM3OCw5IEBAIHZvaWQgRnJhbWVWaWV3OjptYWlu
dGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IoQ29udGFpbmVyTm9kZSogYW5jaG9yTm9kZSkKIAog
ICAgIGNhbmNlbFNjaGVkdWxlZFNjcm9sbHMoKTsKIAorICAgIGlmIChpczxFbGVtZW50PihhbmNo
b3JOb2RlKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVl
ZGVkKGRvd25jYXN0PEVsZW1lbnQ+KGFuY2hvck5vZGUpKTsKKwogICAgIC8vIFdlIG5lZWQgdG8g
dXBkYXRlIHRoZSBsYXlvdXQgYmVmb3JlIHNjcm9sbGluZywgb3RoZXJ3aXNlIHdlIGNvdWxkCiAg
ICAgLy8gcmVhbGx5IG1lc3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29tZXMgYXQg
YSBiYWQgbW9tZW50LgogICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA3
ZTk5MzZjNTIxMjYuLmVmZTZhOGVjYmFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6
OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUm
IG5ldwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1fc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSAhPSBuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICYmIGVsZW1l
bnQoKSkgeworICAgICAgICAgICAgaWYgKG1fc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZp
c2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJp
bGl0eURvY3VtZW50U3RhdGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICB9CisKICAg
ICAgICAgYXV0byBuZWVkc0ludmFsaWRhdGVFdmVudFJlZ2lvbiA9IFsmXSB7CiAgICAgICAgICAg
ICBpZiAobV9zdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkgIT0gbmV3U3R5bGUuZWZmZWN0
aXZlUG9pbnRlckV2ZW50cygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODY0
LDYgKzg3MSw5IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgIHNldEhhc05vblZp
c2libGVPdmVyZmxvdyhmYWxzZSk7CiAgICAgICAgIHNldEhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9w
ZXJ0eShmYWxzZSk7CiAgICAgICAgIHNldEhhc1JlZmxlY3Rpb24oZmFsc2UpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGlmIChuZXdTdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRW
aXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50KCkuY29u
dGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkub2JzZXJ2ZSgqZWxlbWVudCgpKTsKICAgICB9
CiAKICAgICBib29sIGhhZE91dGxpbmUgPSBvbGRTdHlsZSAmJiBvbGRTdHlsZS0+aGFzT3V0bGlu
ZSgpOwpAQCAtMTA3Miw2ICsxMDgyLDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0
cm95ZWQoKQogCiAgICAgaWYgKG1faGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKQogICAgICAgICB2
aWV3KCkucmVtb3ZlUmVuZGVyZXJXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKCp0aGlzKTsKKwor
ICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkF1dG8gJiYgZWxlbWVudCgpKQorICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLnVub2JzZXJ2ZSgqZWxlbWVudCgpKTsKIH0KIAogdm9pZCBSZW5kZXJF
bGVtZW50OjpzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpCkBAIC0yMTkzLDQgKzIyMDYsMTMgQEAgRmxvYXRSZWN0IFJlbmRlckVsZW1l
bnQ6OnJlZmVyZW5jZUJveFJlY3QoQ1NTQm94VHlwZSBib3hUeXBlKSBjb25zdAogICAgIHJldHVy
biB7IH07CiB9CiAKK2Jvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25z
dAoreworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUoKS5j
b250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgIWVsZW1lbnQoKS0+aXNSZWxl
dmFudFRvVXNlcigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAppbmRleCA2ZmVkOGZiYmNlMDYuLjhmNjEwMTczOTYyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0zMTIsNiArMzEyLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0luZGVwZW5kZW50Rm9ybWF0dGluZ0NvbnRleHQoKSBj
b25zdDsKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCisg
ICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZW51
bSBCYXNlVHlwZUZsYWcgewogICAgICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0RmxhZyAgPSAx
IDw8IDAsCkBAIC01MzksNyArNTQxLDkgQEAgaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hv
dWxkQXBwbHlMYXlvdXRPclBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBS
ZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5z
U2l6ZSgpIHx8IHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6SGlkZGVuKTsKKyAgICBpZiAoc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHls
ZSgpLmNvbnRhaW5zU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hv
dWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdApAQCAtNjUxLDYgKzY1NSwxMyBA
QCBpbmxpbmUgUmVuZGVyT2JqZWN0KiBSZW5kZXJFbGVtZW50OjpsYXN0SW5GbG93Q2hpbGQoKSBj
b25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6
OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoaXNUZXh0KCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRoaXMp
LnNob3VsZFNraXBDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19SRU5ERVJfT0JKRUNUKFJlbmRlckVsZW1lbnQsIGlzUmVuZGVy
RWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCA0ZmQ5ZDBmYjgzNjUuLjM1NDgwZTQwYjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTI2MzcsMTEgKzI2MzcsNiBAQCBib29sIFJlbmRlck9iamVj
dDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVudCgpICYmIHBhcmVu
dCgpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOwogfQogCi1ib29sIFJlbmRlck9i
amVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiBzdHlsZSgpLmNv
bnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsKLX0KLQogVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBy
ZW5kZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA0OWE0
Yjc2NjFlYWYuLjdkZmQ4Yjg1NGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NjYsNiArODY2LDcgQEAgc3RhdGljIGJvb2wgcmFy
ZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhJgogICAgICAgICB8fCBmaXJzdC5saW5lU25hcCAhPSBzZWNvbmQubGluZVNuYXAKICAg
ICAgICAgfHwgZmlyc3QubGluZUFsaWduICE9IHNlY29uZC5saW5lQWxpZ24KICAgICAgICAgfHwg
Zmlyc3QuaGFuZ2luZ1B1bmN0dWF0aW9uICE9IHNlY29uZC5oYW5naW5nUHVuY3R1YXRpb24KKyAg
ICAgICAgfHwgZmlyc3QuZWZmZWN0aXZlU2tpcHNDb250ZW50ICE9IHNlY29uZC5lZmZlY3RpdmVT
a2lwc0NvbnRlbnQKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKQogICAgICAg
ICB8fCBmaXJzdC51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nICE9IHNlY29uZC51c2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5j
cHAKaW5kZXggMjUwYjU2ZDAyMDllLi4xMjU0YjJiODRhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01OTQsNyArNTk0LDE1IEBAIHZvaWQgQWRqdXN0ZXI6OmFk
anVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBl
YXJhbmNlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgIGF1dG8gZWZmZWN0aXZlU2tp
cHNDb250ZW50ID0gW10gKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCog
ZWxlbWVudCkgLT4gYm9vbCB7CisgICAgICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OkF1dG8pCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAhZWxlbWVudC0+aXNSZWxl
dmFudFRvVXNlcigpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIGlmIChl
ZmZlY3RpdmVTa2lwc0NvbnRlbnQoc3R5bGUsIG1fZWxlbWVudCkpCiAgICAgICAgIHN0eWxlLnNl
dEVmZmVjdGl2ZVNraXBzQ29udGVudCh0cnVlKTsKIAogICAgIGFkanVzdEZvclNpdGVTcGVjaWZp
Y1F1aXJrcyhzdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNo
YXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNv
bHZlci5jcHAKaW5kZXggZmMxMmVlZDg0ZjJkLi41NmU1OGJlMTgxN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKQEAgLTI1OCw2ICsyNTgsOSBA
QCBib29sIFNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFN0eQogICAgIGlmIChlbGVtZW50SGFzRGlyZWN0aW9uQXV0
byhjYW5kaWRhdGVFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGNh
bmRpZGF0ZUVsZW1lbnQuaXNSZWxldmFudFRvVXNlcigpICE9IGVsZW1lbnQuaXNSZWxldmFudFRv
VXNlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY2FuZGlkYXRlRWxlbWVu
dC5pc0xpbmsoKSAmJiBjb250ZXh0LmVsZW1lbnRMaW5rU3RhdGUgIT0gc3R5bGUtPmluc2lkZUxp
bmsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2MDVl
NTAyMjM1MDIuLjI0OTZjOTIzZjBhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NzAwLDYgKzQ3
MDAsOCBAQCB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvLwogd2Via2l0Lm9yZy9iLzIxNDQ2MyBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpby9m
bG9hdHMtYXNwZWN0LXJhdGlvLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDEuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDcuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjMzOCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0
by0wMDkuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzI0NjI4MyBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZS1sb2dpY2FsLTAwMy5odG1sIFsgU2tpcCBdCkBAIC00ODIxLDgg
KzQ4MjMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5odAogIyBmb3JjZWQgbGF5b3V0CiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5nZWQuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1zaXplLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktdmlk
ZW8uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CmluZGV4IGNmZDg3
YmQyMWY4Ni4uNzMyNjhmZGIwOGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAogCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHNp
bmdsZSB0ZXh0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ1bmRlZmlu
ZWQiCi1GQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHJh
bmdlIGFjcm9zcyBibG9ja3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBidXQgZ290
ICJ1bmtub3duIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12aXNpYmls
aXR5OyBzaW5nbGUgdGV4dCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dCIgYnV0IGdvdCAi
dG9wIgorRkFJTCBGcmFnbWVudCBuYXZpZ2F0aW9uIHdpdGggY29udGVudC12aXNpYmlsaXR5OyBy
YW5nZSBhY3Jvc3MgYmxvY2tzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0MiIgYnV0IGdv
dCAidG9wIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA2OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA2OC1leHBlY3RlZC50eHQKaW5kZXggNThlMzY1ZWIzMWFjLi5iMTAzZWY4MmQ4
MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDY4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA2OC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ29udGVudCBW
aXNpYmlsaXR5OiBvZmYtc2NyZWVuIGZvY3VzIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBl
eHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3Jl
ZW4gZm9jdXMgYXNzZXJ0X2xlc3NfdGhhbjogc3RlcDIgb2Zmc2V0IGV4cGVjdGVkIGEgbnVtYmVy
IGxlc3MgdGhhbiAzMDAwIGJ1dCBnb3QgMzAwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAppbmRleCAzMzAyNTZhZGIyOTguLjI1YzJh
M2QzMTZjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNjguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICB9
KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1cygpOwotICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShz
dGVwMik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVw
Mik7IH0sIDApOwogICB9CiAgIC8vIEFmdGVyIGZvY3VzaW5nIHRoZSBzdWJ0cmVlLCB0aGUgY29u
dGFpbmVyIHNob3VsZCBiZSBzb21ld2hlcmUgY2xvc2VyIHRoYW4KICAgLy8gMzAwMHB4IChzY3Jv
bGxlZCBpbnRvIHZpZXcpIGFuZCB0aGUgaGVpZ2h0IHNob3VsZCBiZSAxMHB4LCBzaW5jZSBpdCBu
bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzAtZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5MDZkNmMzZi4uOTExMDJhNzA1YWZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzAtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZp
c2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdo
dCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1z
Y3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAzIGhlaWdodCBleHBlY3RlZCAxMCBi
dXQgZ290IDEwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKaW5kZXggNDRhMjkzNjUwMzYxLi41YzFkZmNl
MDA4NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDcxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOCBAQAotaGVsbG8KLWhlbGxv
Ci1oZWxsbwotaGVsbG8KLWhlbGxvCiAKLUZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVkIHRv
IGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNr
IHRvIGZyb250OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJh
bmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAg
YXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGV4dGVu
ZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKK0ZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAg
YXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBw
ZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X2Zh
bHNlOiAzIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQg
Zm9ydGg6ICBhc3NlcnRfZmFsc2U6IHRlc3RfMCwgY29udGFpbmVyXzEgZXhwZWN0ZWQgZmFsc2Ug
Z290IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CmluZGV4IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2Zl
MDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA3Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIG9uZS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKToKLUZBSUwgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAg
YXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBi
dXQgZ290IDMwNDEKLUZBSUwgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9l
cXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZml2ZS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMw
NDEKK1BBU1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyB0aHJlZS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BB
U1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQzOTZlNTVmNmQxOS4uZGI1ZDQzZGYy
YzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0xMzg0LDggKzEzODQsNiBAQCB3ZWJraXQub3JnL2IvMjI0Njk4IFsgQmlnU3VyIFJlbGVh
c2UgYXJtNjQgXSBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW9vbS5odG1sCiAKIHdlYmtpdC5v
cmcvYi8yMjQyNTcgWyBEZWJ1ZyBdIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9z
aGFkZXItdW5pZm9ybS1wYWNraW5nLXJlc3RyaWN0aW9ucy5odG1sIFsgU2xvdyBdCiAKLXdlYmtp
dC5vcmcvYi8yMzgwMzMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNTAuaHRtbCBbIFBh
c3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMjQ5NjMgWyBCaWdTdXIgYXJtNjQgXSB3ZWJy
dGMvY2FwdHVyZUNhbnZhcy13ZWJydGMuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5v
cmcvYi8yMjU0MzAgWyBCaWdTdXIgYXJtNjQgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXNpemVzLW5ldHdvcmsuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464565</attachid>
            <date>2023-01-19 12:02:05 -0800</date>
            <delta_ts>2023-01-20 06:32:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230119200203.patch</filename>
            <type>text/plain</type>
            <size>33709</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA3YWYyYzgyNGQzODNkZWFlOThiMTc3NTRmODlkMTExYzVjMWExNjAwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxMDowNzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIGFuIElu
dGVyc2VjdGlvbk9ic2VydmVyIGlzIGluc3RhbGxlZCBhcyBzb29uIGFzIGNvbnRlbnQtdmlzaWJp
bGl0eTogYXV0bwogIGlzIHNldCBvbiBhbiBFbGVtZW50LiBUaGlzIGtlZXBzIHRyYWNrIHdoZXRo
ZXIgdGhlIEVsZW1lbnQgaXMgaW4gdGhlCiAgdmlld3BvcnQgb3Igbm90IGFuZCB0aHVzIGlmIGl0
IGlzIHJlbGV2YW50IHRvIHRoZSB1c2VyLgotIHN0YXRlIGlzIGtlcHQgdXNpbmcgQ29udGVudFJl
bGV2YW5jeVN0YXR1cyBlbnVtIGNsYXNzIHdoZXRoZXIgdGhlCiAgY29udGVudC12aXNpYmlsaXR5
OiBhdXRvIHN1YnRyZWUgY29udGFpbnMgYW55IGZvY3VzZWQgb3Igc2VsZWN0ZWQKICBlbGVtZW50
cywgc2luY2UgdGhhdCBtZWFucyBpdCBpcyByZWxldmFudCB0byB0aGUgdXNlci4KClRoZSBtZXRo
b2RzIGZvY3VzKCkgWzQuMy42XSBhbmQgc2Nyb2xsSW50b1ZpZXcoKSBbNC4zLjVdIHRyZWF0IGFu
eSBwcmV2aW91c2x5CnNraXBwZWQgY29udGVudCBhcyBiZWNvbWluZyByZWxldmFudCB0byB0aGUg
dXNlciBiZWZvcmUgZG9pbmcgYW55IHNjcm9sbGluZy4KCkhhbmRsaW5nIHNlbGVjdGVkIGVsZW1l
bnRzIHdpbGwgYmUgZG9uZSBpbiBhIGZ1dHVyZSBwYXRjaC4KClsxXSBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250ZW50LXZpc2liaWxpdHktYXV0bwpbMl0g
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNyZWxldmFudC10by10aGUtdXNl
cgpbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNza2lwcy1pdHMtY29u
dGVudHMKCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoKKiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcwLWV4cGVjdGVkLnR4dDoKKiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQ6Ciog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0
OgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6
Y29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKToKKFdlYkNv
cmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2JzZXJ2ZSk6CihXZWJDb3JlOjpD
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OnVub2JzZXJ2ZSk6CihXZWJDb3JlOjpDb250
ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKToK
KFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dXBkYXRlQ29udGVudFJl
bGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKTogaGVscGVyIGFyb3VuZCBsYWNrIG9mIHNj
cm9sbCBhbmNob3JpbmcuCiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1Zp
ZXcpOiBtYWtlIHN1cmUgc2Nyb2xsZWQgdG8gZWxlbWVudCBpcyBpbiB2aXNpYmxlIHN1YnRyZWUu
CihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVlZGVkKTogbWFrZSBzdXJlIHNj
cm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVu
dDo6Y29udGVudFJlbGV2YW5jeVN0YXR1cyBjb25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojp1cGRh
dGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKToKKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUNvbnRl
bnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZCk6IHVwZGF0ZSBpZiBpbiBjb250ZW50LXZpc2liaWxp
dHkgYXV0byBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6aXNSZWxldmFudFRvVXNlciBjb25z
dCk6CihXZWJDb3JlOjpFbGVtZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKTog
aGFuZGxlIGNoYW5nZWQgdmlzaWJpbGl0eSBpbiB2aWV3cG9ydCBzdGF0dXMuCiogU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
Lmg6CihXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMpOgoq
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaDoga2VlcCB0cmFjayBvZiB3aGV0aGVy
IGNvbnRlbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIuCiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGlhbG9nRWxlbWVudC5jcHA6CihXZWJDb3JlOjpIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01v
ZGFsKTogbWFrZSBzdXJlIGVsZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgoqIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5T
Y3JvbGxQb3NpdGlvbkF0QW5jaG9yKTogaGFuZGxlIGFuY2hvciBzY3JvbGxzLgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1l
bnQ6OnN0eWxlV2lsbENoYW5nZSk6IGFkZC9yZW1vdmUgb2JzZXJ2YXRpb24gZm9yIGNvbnRlbnQt
dmlzaWJpbGl0eTogYXV0byBlbGVtZW50LgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6d2lsbEJl
RGVzdHJveWVkKTogcmVtb3ZlIG9ic2VydmF0aW9uIGZvciBjb250ZW50LXZpc2liaWxpdHk6IGF1
dG8gZWxlbWVudC4KKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2ViQ29y
ZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQgY29uc3QpOiB0YWtl
IGludG8gYWNjb3VudCBjdXJyZW50IHZhbHVlIG9mIGVmZmVjdGl2ZVNraXBzQ29udGVudC4KKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzaG91bGRTa2lwQ29udGVudCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKFdlYkNvcmU6OnJhcmVJbmhlcml0ZWREYXRh
Q2hhbmdlUmVxdWlyZXNMYXlvdXQpOiBhIGNoYW5nZSBpbiBlZmZlY2l0aXZlU2tpcHNDb250ZW50
IHJlcXVpcmVzIGEgbGF5b3V0LgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwOgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOiB0YWtlIGNvbnRl
bnQtdmlzaWJpbGl0eTogYXV0byBpbnRvIGFjY291bnQuCiogU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwOiBkbyBub3Qgc2hhcmUgc3R5bGVzIHdpdGggZGlmZmVy
ZW50IGlzUmVsZXZhbnRUb1VzZXIgdmFsdWVzLgooV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNv
bHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAyMiArKysr
KwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwgNDEgKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAx
MyArKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCAgICAgICAgICB8ICAy
ICsKIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCAgICAgICAgICAgICB8ICAxICsK
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwICAgICB8ICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgICAgICAgICAgICAgfCAgMyArCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAyMiArKysrKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCAgICAgIHwgMTMgKystCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAgNSAtLQogLi4uL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgIDEgKwogU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgMTAgKystCiBTb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgfCAgMyArCiBMYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL2NvbnRlbnQtdmlz
aWJpbGl0eS0wNDgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZpc2li
aWxpdHktMDY4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12aXNpYmls
aXR5LTA2OC5odG1sICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzAtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDMgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkt
MDcxLWV4cGVjdGVkLnR4dCAgICAgICB8IDE3ICsrLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkt
MDcyLWV4cGVjdGVkLnR4dCAgICAgICB8ICA4ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMgfCAgMiAtCiAyMiBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0
aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDZk
NGFmNDc4MDVmLi4yNDI2ZWM2ODBjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTM4
LDYgKzEzOCw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVyc2VjdGlvbk9i
c2VydmVyLmgiCisjaW5jbHVkZSAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93
Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAtMzY5LDYgKzM3
MCwzMyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiAKK2NsYXNz
IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1
YmxpYyBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENvbnRlbnRWaXNpYmlsaXR5SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQo
SW50ZXJzZWN0aW9uT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2Vy
dmVyRW50cnk+PiYgZW50cmllcywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5hbAorICAgIHsK
KyAgICAgICAgQVNTRVJUKCFlbnRyaWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgZm9yIChhdXRv
JiBlbnRyeSA6IGVudHJpZXMpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gZW50
cnktPnRhcmdldCgpKQorICAgICAgICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5
Vmlld3BvcnRDaGFuZ2UoZW50cnktPmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rp
b25PYnNlcnZlckNhbGxiYWNrKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBJbnRlcnNl
Y3Rpb25PYnNlcnZlckNhbGxiYWNrKCZkb2N1bWVudCkKKyAgICB7CisgICAgfQorfTsKKwogc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGNNYXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CiBib29sIERv
Y3VtZW50OjpoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZSA9IGZhbHNlOwogc3RhdGljIGNv
bnN0IFNlY29uZHMgbWF4SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdBZnRlck1lZGlh
RmluaXNoZXNQbGF5aW5nIHsgMV9zIH07CkBAIC00Nzc3LDYgKzQ4MDUsOCBAQCBib29sIERvY3Vt
ZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlv
bnMmIG9wdGlvbnMpCiAgICAgICAgIG9sZEZvY3VzZWRFbGVtZW50LT5zZXRGb2N1cyhmYWxzZSk7
CiAgICAgICAgIHNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShudWxscHRyKTsKIAorICAg
ICAgICBvbGRGb2N1c2VkRWxlbWVudC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVl
ZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OkZvY3VzZWQsIGZhbHNlKTsKKwogICAgICAgICBp
ZiAob3B0aW9ucy5yZW1vdmFsRXZlbnRzTW9kZSA9PSBGb2N1c1JlbW92YWxFdmVudHNNb2RlOjpE
aXNwYXRjaCkgewogICAgICAgICAgICAgLy8gRGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIGZv
cm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgYmVlbiBlZGl0ZWQuCiAgICAgICAgICAgICBp
ZiAoaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkgewpAQCAt
NDg1Niw2ICs0ODg2LDggQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBpZiAob3B0
aW9ucy50cmlnZ2VyICE9IEZvY3VzVHJpZ2dlcjo6QmluZGluZ3MpCiAgICAgICAgICAgICBtX2xh
dGVzdEZvY3VzVHJpZ2dlciA9IG9wdGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBuZXdGb2N1c2Vk
RWxlbWVudC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXM6OkZvY3VzZWQsIHRydWUpOworCiAgICAgICAgIC8vIFRoZSBzZXRGb2N1cyBj
YWxsIHRyaWdnZXJzIGEgYmx1ciBhbmQgYSBmb2N1cyBldmVudC4gRXZlbnQgaGFuZGxlcnMgY291
bGQgY2F1c2UgdGhlIGZvY3VzZWQgZWxlbWVudCB0byBiZSBjbGVhcmVkLgogICAgICAgICBpZiAo
bV9mb2N1c2VkRWxlbWVudCAhPSBuZXdGb2N1c2VkRWxlbWVudCkgewogICAgICAgICAgICAgLy8g
aGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC05NDIyLDYgKzk0NTQsNTkgQEAgYm9vbCBEb2N1bWVu
dDo6bGF6eUltYWdlTG9hZGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3NldHRpbmdz
LT5sYXp5SW1hZ2VMb2FkaW5nRW5hYmxlZCgpICYmICFtX3F1aXJrcy0+c2hvdWxkRGlzYWJsZUxh
enlJbWFnZUxvYWRpbmdRdWlyaygpOwogfQogCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGUmIERvY3VtZW50Ojpjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQoreworICAgIGlm
ICghbV9jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1fY29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1fY29udGVudFZpc2liaWxpdHlEb2N1bWVu
dFN0YXRlOworfQorCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNp
YmlsaXR5RG9jdW1lbnRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQoreworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6
b2JzZXJ2ZShFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rpb25P
YnNlcnZlciA9IGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCkpCisgICAgICAgIGludGVyc2Vj
dGlvbk9ic2VydmVyLT5vYnNlcnZlKGVsZW1lbnQpOworfQorCit2b2lkIENvbnRlbnRWaXNpYmls
aXR5RG9jdW1lbnRTdGF0ZTo6dW5vYnNlcnZlKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYg
KG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2ZXItPnVub2JzZXJ2ZShlbGVtZW50KTsKK30K
KworSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6
ZW5zdXJlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKQoreworICAgIGlmICghbV9vYnNlcnZlcikgewor
ICAgICAgICBhdXRvIGNhbGxiYWNrID0gQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrOjpjcmVhdGUoKm1fZG9jdW1lbnQpOworICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFj
ayhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiMCUiKSk7CisgICAgICAgIEludGVyc2VjdGlvbk9i
c2VydmVyOjpJbml0IG9wdGlvbnMgeyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5Um9v
dE1hcmdpbkZhbGxiYWNrLCB7IH0gfTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9IEludGVyc2Vj
dGlvbk9ic2VydmVyOjpjcmVhdGUoKm1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKG9wdGlvbnMpKTsKKyAgICAgICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlci5y
ZXR1cm5WYWx1ZSgpLnB0cigpOworICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsK
K30KKworLy8gV29ya2Fyb3VuZCBmb3IgbGFjayBvZiBzdXBwb3J0IGZvciBzY3JvbGwgYW5jaG9y
aW5nLiBXZSBtYWtlIHN1cmUgYW55IGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50cwor
Ly8gYWJvdmUgdGhlIG9uZSB0byBiZSBzY3JvbGxlZCB0byBhcmUgYWxyZWFkeSBoaWRkZW4sIHNv
IHRoZSBzY3JvbGwgcG9zaXRpb24gd2lsbCBub3QgbmVlZCB0byBiZSBhZGp1c3RlZAorLy8gbGF0
ZXIuCisvLyBGSVhNRTogcmVtb3ZlIHdoZW4gc2Nyb2xsIGFuY2hvcmluZyBpcyBpbXBsZW1lbnRl
ZC4KK3ZvaWQgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjp1cGRhdGVDb250ZW50UmVs
ZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQoRWxlbWVudCogc2Nyb2xsQW5jaG9yKQorewor
ICAgIGlmIChtX29ic2VydmVyKSB7CisgICAgICAgIGZvciAoYXV0byB0YXJnZXQgOiBtX29ic2Vy
dmVyLT5vYnNlcnZhdGlvblRhcmdldHMoKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldCAmJiB0
YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAg
dGFyZ2V0LT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0
dXM6OlZpc2libGUsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzY3JvbGxBbmNob3It
PnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3Rh
dHVzOjpWaXNpYmxlLCB0cnVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5k
ZWYgRE9DVU1FTlRfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2NmZDkxNDRh
NzgwLi4xM2U3Yjg3YTQ3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzcsNiArMjM3LDcg
QEAgY2xhc3MgVHJhbnNmb3JtU291cmNlOwogY2xhc3MgVHJlZVdhbGtlcjsKIGNsYXNzIFVuZG9N
YW5hZ2VyOwogY2xhc3MgVmlzaWJpbGl0eUNoYW5nZUNsaWVudDsKK2NsYXNzIFZpc2libGVTZWxl
Y3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0YXRlOwogY2xhc3MgV2FrZUxvY2tNYW5hZ2VyOwog
Y2xhc3MgV2ViQW5pbWF0aW9uOwpAQCAtMzU0LDYgKzM1NSwyMyBAQCBwcml2YXRlOgogICAgIFdl
YWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVu
dDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlKERvY3VtZW50Jik7CisKKyAgICB2b2lkIG9ic2VydmUoRWxlbWVudCYpOworICAg
IHZvaWQgdW5vYnNlcnZlKEVsZW1lbnQmKTsKKworICAgIHZvaWQgdXBkYXRlQ29udGVudFJlbGV2
YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKEVsZW1lbnQqIHNjcm9sbEFuY2hvcik7CisKK3By
aXZhdGU6CisgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2Vy
dmVyKCk7CisKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7Cisg
ICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2Rv
Y3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2Rl
CiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCkBAIC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAK
ICAgICBMYXp5TG9hZEltYWdlT2JzZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisg
ICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUoKTsKKwogICAgIHZvaWQgc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRl
bnQoKSB7IG1faGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAg
Ym9vbCBoYXNWaXN1YWxseU5vbkVtcHR5Q3VzdG9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWlu
dFRpbWluZ0VudHJ5SWZOZWVkZWQoKTsKQEAgLTE5NTUsNiArMTk3NSw4IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1h
Z2VPYnNlcnZlcjsKIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGU+IG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworCiAjaWYgIUxPR19E
SVNBQkxFRAogICAgIE1vbm90b25pY1RpbWUgbV9kb2N1bWVudENyZWF0aW9uVGltZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDc1ZjdmMmUwYjU5Ni4uOGQ1NmJlNGU0YzAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDY5LDYgKzEwNjksOCBAQCBzdGF0aWMgc3RkOjpv
cHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyRWxlbWVudCosIExheW91dFJlY3Q+PiBsaXN0Qm94RWxl
bWVudFNjcm9sbAogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8
c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKQogeworICAg
IGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVu
dFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyID0gbnVsbHB0cjsKQEAgLTExMzQsNiArMTEzNiw4IEBAIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wKQogCiB2b2lkIEVsZW1lbnQ6OnNj
cm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCkKIHsKKyAgICBkb2N1bWVu
dCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLnVwZGF0ZUNvbnRlbnRSZWxldmFu
Y3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCh0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkp
CkBAIC0zMzY1LDYgKzMzNjksOCBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGNvbnN0IEZvY3VzT3B0
aW9ucyYgb3B0aW9ucykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGRvY3VtZW50LT5j
b250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51cGRhdGVDb250ZW50UmVsZXZhbmN5U3Rh
dHVzRm9yU2Nyb2xsSWZOZWVkZWQodGhpcyk7CisKICAgICBSZWZQdHI8RWxlbWVudD4gbmV3VGFy
Z2V0ID0gdGhpczsKIAogICAgIC8vIElmIHdlIGRvbid0IGhhdmUgcmVuZGVyZXIgeWV0LCBpc0Zv
Y3VzYWJsZSB3aWxsIGNvbXB1dGUgaXQgd2l0aG91dCBzdHlsZSB1cGRhdGUuCkBAIC01MjA1LDQg
KzUyMTEsMzkgQEAgdm9pZCBFbGVtZW50OjpzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wg
Y2hhbmdlZCkKICAgICBzZXRFdmVudFRhcmdldEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpEaXNwbGF5
Q29udGVudHNDaGFuZ2VkLCBjaGFuZ2VkKTsKIH0KIAorT3B0aW9uU2V0PENvbnRlbnRSZWxldmFu
Y3lTdGF0dXM+IEVsZW1lbnQ6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKSBjb25zdAoreworICAg
IGlmICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZWxl
bWVudFJhcmVEYXRhKCktPmNvbnRlbnRSZWxldmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVt
ZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMg
c3RhdHVzLCBib29sIHZhbHVlKQoreworICAgIGlmIChjb250ZW50UmVsZXZhbmN5U3RhdHVzKCku
Y29udGFpbnMoc3RhdHVzKSAhPSB2YWx1ZSkgeworICAgICAgICBlbnN1cmVFbGVtZW50UmFyZURh
dGEoKS5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuc2V0KHN0YXR1cywgdmFsdWUpOworICAgICAg
ICBpbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9Cit9CisKK3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29u
dGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVz
LCBib29sIHZhbHVlKQoreworICAgIGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRh
cmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAg
aWYgKHRhcmdldC0+cmVuZGVyZXIoKSAmJiB0YXJnZXQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAg
ICAgdGFyZ2V0LT51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzKHN0YXR1cywgdmFsdWUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCitib29sIEVsZW1lbnQ6
OmlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYm
IGVsZW1lbnRSYXJlRGF0YSgpLT5jb250ZW50UmVsZXZhbmN5U3RhdHVzKCk7Cit9CisKK3ZvaWQg
RWxlbWVudDo6Y29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sIGlzSW50ZXJzZWN0
aW5nKQoreworICAgIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5j
eVN0YXR1czo6VmlzaWJsZSwgaXNJbnRlcnNlY3RpbmcpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBiNzcxNjc0MmMxMzUuLmM5OGQ0YWU0YzMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCkBAIC0xMDQsNiArMTA0LDEyIEBAIHN0cnVjdCBTaGFkb3dSb290
SW5pdDsKIAogdXNpbmcgRXhwbGljaXRseVNldEF0dHJFbGVtZW50c01hcCA9IEhhc2hNYXA8UXVh
bGlmaWVkTmFtZSwgVmVjdG9yPFdlYWtQdHI8RWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRU
YXJnZXREYXRhPj4+OwogCitlbnVtIGNsYXNzIENvbnRlbnRSZWxldmFuY3lTdGF0dXMgOiB1aW50
OF90IHsKKyAgICBWaXNpYmxlID0gMSA8PCAwLAorICAgIEZvY3VzZWQgPSAxIDw8IDEsCisgICAg
Ly8gRklYTUU6IGFkZCBTZWxlY3RlZC4KK307CisKIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBS
ZXNvbHZlcjsKIGVudW0gY2xhc3MgQ2hhbmdlIDogdWludDhfdDsKQEAgLTcxOSw2ICs3MjUsMTMg
QEAgcHVibGljOgogICAgIGJvb2wgZGlzcGxheUNvbnRlbnRzQ2hhbmdlZCgpIGNvbnN0OwogICAg
IHZvaWQgc2V0RGlzcGxheUNvbnRlbnRzQ2hhbmdlZChib29sID0gdHJ1ZSk7CiAKKyAgICBPcHRp
b25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1cz4gY29udGVudFJlbGV2YW5jeVN0YXR1cygpIGNv
bnN0OworICAgIHZvaWQgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZh
bmN5U3RhdHVzLCBib29sKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJ
Zk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzLCBib29sKTsKKyAgICBib29sIGlzUmVsZXZh
bnRUb1VzZXIoKSBjb25zdDsKKworICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlWaWV3cG9ydENo
YW5nZShib29sKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaAppbmRleCA1MzM3MDJjNmRkN2EuLjk4YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKIAogICAg
IEV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAmIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNN
YXAoKSB7IHJldHVybiBtX2V4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7IH0KIAorICAgIE9w
dGlvblNldDxDb250ZW50UmVsZXZhbmN5U3RhdHVzPiYgY29udGVudFJlbGV2YW5jeVN0YXR1cygp
IHsgcmV0dXJuIG1fY29udGVudFJlbGV2YW5jeVN0YXR1czsgfQorCiAjaWYgRFVNUF9OT0RFX1NU
QVRJU1RJQ1MKICAgICBPcHRpb25TZXQ8VXNlVHlwZT4gdXNlVHlwZXMoKSBjb25zdAogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCBkNDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMzI2LDYgKzMyNiw3IEBAIHByb3Rl
Y3RlZDoKICAgICAvLyBVc2VkIGJ5IEVsZW1lbnRSYXJlRGF0YS4gRGVmaW5lZCBoZXJlIGZvciBi
ZXR0ZXIgcGFja2luZyBpbiA2NC1iaXQuCiAgICAgaW50IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9
OwogICAgIHVuc2lnbmVkIHNob3J0IG1fY2hpbGRJbmRleCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8
Q29udGVudFJlbGV2YW5jeVN0YXR1cz4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2
YXRlOgogICAgIGJvb2wgbV9pc0VsZW1lbnRSYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGlhbG9nRWxlbWVudC5jcHAKaW5kZXggZmM5MWQyM2ZkYzkzLi5hNjYzNDg1MGFmMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwx
MCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAog
ICAgIHNldElzTW9kYWwodHJ1ZSk7CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlm
ICghaXNJblRvcExheWVyKCkpIHsKKyAgICAgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1
c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOwogICAgICAg
ICBhZGRUb1RvcExheWVyKCk7CisgICAgfQogCiAgICAgbV9wcmV2aW91c2x5Rm9jdXNlZEVsZW1l
bnQgPSBkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCA3NThhODdmZWEwZjcuLjhkYzMzNjk0NTU1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMjM3OCw2ICsyMzc4LDkgQEAgdm9pZCBGcmFtZVZpZXc6Om1haW50YWlu
U2Nyb2xsUG9zaXRpb25BdEFuY2hvcihDb250YWluZXJOb2RlKiBhbmNob3JOb2RlKQogCiAgICAg
Y2FuY2VsU2NoZWR1bGVkU2Nyb2xscygpOwogCisgICAgaWYgKGlzPEVsZW1lbnQ+KGFuY2hvck5v
ZGUpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUoKS51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQo
ZG93bmNhc3Q8RWxlbWVudD4oYW5jaG9yTm9kZSkpOworCiAgICAgLy8gV2UgbmVlZCB0byB1cGRh
dGUgdGhlIGxheW91dCBiZWZvcmUgc2Nyb2xsaW5nLCBvdGhlcndpc2Ugd2UgY291bGQKICAgICAv
LyByZWFsbHkgbWVzcyB0aGluZ3MgdXAgaWYgYW4gYW5jaG9yIHNjcm9sbCBjb21lcyBhdCBhIGJh
ZCBtb21lbnQuCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDdlOTkz
NmM1MjEyNi4uZWZlNmE4ZWNiYWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCkBAIC04MTksNiArODE5LDEzIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5
bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobV9zdHlsZS5jb250ZW50
VmlzaWJpbGl0eSgpICE9IG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgJiYgZWxlbWVudCgp
KSB7CisgICAgICAgICAgICBpZiAobV9zdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRl
bnRWaXNpYmlsaXR5OjpBdXRvKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlKCkudW5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICAg
ICAgZWxzZSBpZiAobmV3U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0bykKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLm9ic2VydmUoKmVsZW1lbnQoKSk7CisgICAgICAgIH0KKwogICAgICAg
ICBhdXRvIG5lZWRzSW52YWxpZGF0ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAgICAgIGlm
IChtX3N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZlY3RpdmVQ
b2ludGVyRXZlbnRzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04NjQsNiAr
ODcxLDkgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgc2V0SGFzTm9uVmlzaWJs
ZU92ZXJmbG93KGZhbHNlKTsKICAgICAgICAgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5
KGZhbHNlKTsKICAgICAgICAgc2V0SGFzUmVmbGVjdGlvbihmYWxzZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKG5ld1N0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkF1dG8gJiYgZWxlbWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOwogICAgIH0KIAog
ICAgIGJvb2wgaGFkT3V0bGluZSA9IG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNPdXRsaW5lKCk7
CkBAIC0xMDcyLDYgKzEwODIsOSBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3ll
ZCgpCiAKICAgICBpZiAobV9oYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMpCiAgICAgICAgIHZpZXco
KS5yZW1vdmVSZW5kZXJlcldpdGhQYXVzZWRJbWFnZUFuaW1hdGlvbnMoKnRoaXMpOworCisgICAg
aWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
byAmJiBlbGVtZW50KCkpCisgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1
bWVudFN0YXRlKCkudW5vYnNlcnZlKCplbGVtZW50KCkpOwogfQogCiB2b2lkIFJlbmRlckVsZW1l
bnQ6OnNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSkKQEAgLTIxOTMsNCArMjIwNiwxMyBAQCBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6
cmVmZXJlbmNlQm94UmVjdChDU1NCb3hUeXBlIGJveFR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIHsg
fTsKIH0KIAorYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7
CisgICAgaWYgKHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6VmlzaWJsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIGVsZW1lbnQoKSAmJiAhZWxlbWVudCgpLT5pc1JlbGV2YW50
VG9Vc2VyKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
CmluZGV4IDZmZWQ4ZmJiY2UwNi4uOGY2MTAxNzM5NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTMxMiw2ICszMTIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGVzdGFibGlzaGVzSW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0
OwogICAgIGJvb2wgY3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAKKyAgICBi
b29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIEJh
c2VUeXBlRmxhZyB7CiAgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3RGbGFnICA9IDEgPDwg
MCwKQEAgLTUzOSw3ICs1NDEsOSBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRB
cHBseUxheW91dE9yUGFpbnRDb250YWlubWVudCgpIGNvbnN0CiAKIGlubGluZSBib29sIFJlbmRl
ckVsZW1lbnQ6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXpl
KCkgfHwgc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW4pOworICAgIGlmIChzaG91bGRTa2lwQ29udGVudCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCku
Y29udGFpbnNTaXplKCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRB
cHBseUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CkBAIC02NTEsNiArNjU1LDEzIEBAIGlu
bGluZSBSZW5kZXJPYmplY3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6c2hv
dWxkU2tpcENvbnRlbnQoKSBjb25zdAoreworICAgIGlmIChpc1RleHQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuc2hv
dWxkU2tpcENvbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX1JFTkRFUl9PQkpFQ1QoUmVuZGVyRWxlbWVudCwgaXNSZW5kZXJFbGVt
ZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRm
ZDlkMGZiODM2NS4uMzU0ODBlNDBiMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMjYzNywxMSArMjYzNyw2IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojpp
c1NraXBwZWRDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCkt
PnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCk7CiB9CiAKLWJvb2wgUmVuZGVyT2JqZWN0
OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuY29udGVu
dFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwotfQotCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDQ5YTRiNzY2
MWVhZi4uN2RmZDhiODU0ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTg2Niw2ICs4NjYsNyBAQCBzdGF0aWMgYm9vbCByYXJlSW5o
ZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERh
dGEmCiAgICAgICAgIHx8IGZpcnN0LmxpbmVTbmFwICE9IHNlY29uZC5saW5lU25hcAogICAgICAg
ICB8fCBmaXJzdC5saW5lQWxpZ24gIT0gc2Vjb25kLmxpbmVBbGlnbgogICAgICAgICB8fCBmaXJz
dC5oYW5naW5nUHVuY3R1YXRpb24gIT0gc2Vjb25kLmhhbmdpbmdQdW5jdHVhdGlvbgorICAgICAg
ICB8fCBmaXJzdC5lZmZlY3RpdmVTa2lwc0NvbnRlbnQgIT0gc2Vjb25kLmVmZmVjdGl2ZVNraXBz
Q29udGVudAogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCiAgICAgICAgIHx8
IGZpcnN0LnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgIT0gc2Vjb25kLnVzZVRvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVBZGp1c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApp
bmRleCAyNTBiNTZkMDIwOWUuLjEyNTRiMmI4NGFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVBZGp1c3Rlci5jcHAKQEAgLTU5NCw3ICs1OTQsMTUgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0
KFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFu
Y2UKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgp
ID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pCisgICAgYXV0byBlZmZlY3RpdmVTa2lwc0Nv
bnRlbnQgPSBbXSAoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVt
ZW50KSAtPiBib29sIHsKKyAgICAgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0g
Q29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0bykKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50ICYmICFlbGVtZW50LT5pc1JlbGV2YW50
VG9Vc2VyKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgaWYgKGVmZmVj
dGl2ZVNraXBzQ29udGVudChzdHlsZSwgbV9lbGVtZW50KSkKICAgICAgICAgc3R5bGUuc2V0RWZm
ZWN0aXZlU2tpcHNDb250ZW50KHRydWUpOwogCiAgICAgYWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVp
cmtzKHN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmlu
Z1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVy
LmNwcAppbmRleCBmYzEyZWVkODRmMmQuLjU2ZTU4YmUxODE3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcApAQCAtMjU4LDYgKzI1OCw5IEBAIGJv
b2wgU2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4
dCYgY29udGV4dCwgY29uc3QgU3R5CiAgICAgaWYgKGVsZW1lbnRIYXNEaXJlY3Rpb25BdXRvKGNh
bmRpZGF0ZUVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoY2FuZGlk
YXRlRWxlbWVudC5pc1JlbGV2YW50VG9Vc2VyKCkgIT0gZWxlbWVudC5pc1JlbGV2YW50VG9Vc2Vy
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50Lmlz
TGluaygpICYmIGNvbnRleHQuZWxlbWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+aW5zaWRlTGluaygp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYwNWU1MDIy
MzUwMi4uMjQ5NmM5MjNmMGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3MDAsNiArNDcwMCw4
IEBAIHdlYmtpdC5vcmcvYi8yMTQ0NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNpemluZy9hc3BlY3QtcmF0aW8vCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2Zsb2F0
cy1hc3BlY3QtcmF0aW8tMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBjb250YWlu
LWludHJpbnNpYy1zaXplCit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAw
MS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAw
Mi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAw
Ny5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAw
OS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQ2MjgzIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9jb250YWlu
LWludHJpbnNpYy1zaXplLWxvZ2ljYWwtMDAzLmh0bWwgWyBTa2lwIF0KQEAgLTQ4MjEsOCArNDgy
Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0CiAjIGZvcmNlZCBsYXlvdXQKIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgWyBTa2lwIF0KICMgYy12OiBhdXRvCi1pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LWF1dG8tc3RhdGUtY2hhbmdlZC5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LWZpZWxkc2V0LXNpemUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS12aWRlby5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKaW5kZXggY2ZkODdiZDIx
Zjg2Li43MzI2OGZkYjA4ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDQ4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAK
LUZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgc2luZ2xl
IHRleHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQiIGJ1dCBnb3QgInVuZGVmaW5lZCIK
LUZBSUwgRnJhZ21lbnQgbmF2aWdhdGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2Ug
YWNyb3NzIGJsb2NrcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidGV4dDIiIGJ1dCBnb3QgInVu
a25vd24iCitGQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7
IHNpbmdsZSB0ZXh0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ0b3Ai
CitGQUlMIEZyYWdtZW50IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHJhbmdl
IGFjcm9zcyBibG9ja3MgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBidXQgZ290ICJ0
b3AiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDY4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDY4LWV4cGVjdGVkLnR4dAppbmRleCA1OGUzNjVlYjMxYWMuLmI2MjI0ZjkwNjQ0ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDY4LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBDb250ZW50IFZpc2li
aWxpdHk6IG9mZi1zY3JlZW4gZm9jdXMgYXNzZXJ0X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVj
dGVkIDEwMCBidXQgZ290IDEwCitQQVNTIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBm
b2N1cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA2OC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NjguaHRtbAppbmRleCAzMzAyNTZhZGIyOTguLjI1YzJhM2QzMTZjYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0
Nyw3IEBAIGFzeW5jX3Rlc3QoKHQpID0+IHsKICAgICB9KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1
cygpOwotICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwMik7CisgICAgc2V0VGltZW91dCgo
KSA9PiB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwMik7IH0sIDApOwogICB9CiAgIC8vIEFm
dGVyIGZvY3VzaW5nIHRoZSBzdWJ0cmVlLCB0aGUgY29udGFpbmVyIHNob3VsZCBiZSBzb21ld2hl
cmUgY2xvc2VyIHRoYW4KICAgLy8gMzAwMHB4IChzY3JvbGxlZCBpbnRvIHZpZXcpIGFuZCB0aGUg
aGVpZ2h0IHNob3VsZCBiZSAxMHB4LCBzaW5jZSBpdCBubwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CmluZGV4
IGEzZTU5MDZkNmMzZi4uOTExMDJhNzA1YWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMyBAQAotaGVsbG8KIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2Vs
ZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0IGdvdCAx
MAorRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9l
cXVhbHM6IHN0ZXAzIGhlaWdodCBleHBlY3RlZCAxMCBidXQgZ290IDEwMAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3Rl
ZC50eHQKaW5kZXggNDRhMjkzNjUwMzYxLi41YzFkZmNlMDA4NjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50
eHQKQEAgLTEsMTMgKzEsOCBAQAotaGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCiAK
LUZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCi1GQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2Ugc2hydW5rIHRv
IGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0
byBiYWNrOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdl
IGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgT25lIGVsZW1lbnRzIHNlbGVjdGVkOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVu
dHM6ICBhc3NlcnRfZmFsc2U6IDIgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2Ug
c2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRzOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVk
IGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAg
YXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBw
ZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X2ZhbHNlOiAzIGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCitGQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfZmFsc2U6IHRl
c3RfMCwgY29udGFpbmVyXzEgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQu
dHh0CmluZGV4IDAwZjFjN2Y0NDQxOC4uZjk1MThiY2ZlMDY0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKLUZB
SUwgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3Rl
ZCAzMDA3IGJ1dCBnb3QgMzA0MQotRkFJTCB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTog
IGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZm91ci5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBi
dXQgZ290IDMwNDEKLUZBSUwgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9l
cXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKK1BBU1MgdHdvLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOgorUEFTUyB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1Mg
Zm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKToKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGQzOTZlNTVmNmQxOS4uZGI1ZDQzZGYyYzNlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzg0LDggKzEzODQsNiBAQCB3
ZWJraXQub3JnL2IvMjI0Njk4IFsgQmlnU3VyIFJlbGVhc2UgYXJtNjQgXSBpbnNwZWN0b3IvY29u
c29sZS9jb25zb2xlLW9vbS5odG1sCiAKIHdlYmtpdC5vcmcvYi8yMjQyNTcgWyBEZWJ1ZyBdIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9zaGFkZXItdW5pZm9ybS1wYWNraW5nLXJl
c3RyaWN0aW9ucy5odG1sIFsgU2xvdyBdCiAKLXdlYmtpdC5vcmcvYi8yMzgwMzMgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNTAuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5v
cmcvYi8yMjQ5NjMgWyBCaWdTdXIgYXJtNjQgXSB3ZWJydGMvY2FwdHVyZUNhbnZhcy13ZWJydGMu
aHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjU0MzAgWyBCaWdTdXIgYXJt
NjQgXSBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464578</attachid>
            <date>2023-01-20 06:32:18 -0800</date>
            <delta_ts>2023-01-20 09:51:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236711-20230120143217.patch</filename>
            <type>text/plain</type>
            <size>35128</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA0OWM3YzY2MTUwMTEzZTM5MmEyZTQxYmI1YzBhYzgxNmJiZGRiM2I5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogRnJp
LCAyMCBKYW4gMjAyMyAxNDoyNjo1MyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OgogYXV0byBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzExCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBjb250
ZW50LXZpc2liaWxpdHk6IGF1dG8gWzFdLgoKVG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGVs
ZW1lbnQgaXMgcmVsZXZhbnQgdG8gdGhlIHVzZXIgWzJdIGFuZApkZWNpZGUgdG8gd2hldGhlciBp
dCBzaG91bGQgc2tpcCBjb250ZW50cyBbM10gdGhlIGZvbGxvd2luZyBpcyBkb25lOgotIHN0YXRl
IGlzIGtlcHQgdXNpbmcgQ29udGVudFJlbGV2YW5jeVN0YXR1cyBlbnVtIGNsYXNzIHdoZXRoZXIg
dGhlCiAgY29udGVudC12aXNpYmlsaXR5OiBhdXRvIHN1YnRyZWUgY29udGFpbnMgYW55IGZvY3Vz
ZWQgb3Igc2VsZWN0ZWQKICBlbGVtZW50cywgc2luY2UgdGhhdCBtZWFucyBpdCBpcyByZWxldmFu
dCB0byB0aGUgdXNlci4KLSBhbiBJbnRlcnNlY3Rpb25PYnNlcnZlciBpcyBpbnN0YWxsZWQgYXMg
c29vbiBhcyBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8KICBpcyBzZXQgb24gYW4gRWxlbWVudC4g
VGhpcyBrZWVwcyB0cmFjayB3aGV0aGVyIHRoZSBFbGVtZW50IGlzIGluIHRoZQogIHZpZXdwb3J0
IG9yIG5vdCBhbmQgdGh1cyBpZiBpdCBpcyByZWxldmFudCB0byB0aGUgdXNlci4KClRoZSBtZXRo
b2RzIGZvY3VzKCkgWzQuMy42XSBhbmQgc2Nyb2xsSW50b1ZpZXcoKSBbNC4zLjVdIHRyZWF0IGFu
eSBwcmV2aW91c2x5CnNraXBwZWQgY29udGVudCBhcyBiZWNvbWluZyByZWxldmFudCB0byB0aGUg
dXNlciBiZWZvcmUgZG9pbmcgYW55IHNjcm9sbGluZy4KCkhhbmRsaW5nIHNlbGVjdGVkIGVsZW1l
bnRzIHdpbGwgYmUgZG9uZSBpbiBhIGZ1dHVyZSBwYXRjaC4KClsxXSBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWNvbnRhaW4vI3ZhbGRlZi1jb250ZW50LXZpc2liaWxpdHktYXV0bwpbMl0g
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNyZWxldmFudC10by10aGUtdXNl
cgpbM10gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLyNza2lwcy1pdHMtY29u
dGVudHMKCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoKKiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OC1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4Lmh0bWw6CiogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dDoKKiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQ6Ciog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgooV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSk6CihXZWJDb3Jl
OjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1l
bnRTdGF0ZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6Om9ic2Vy
dmUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjp1bm9ic2VydmUp
OgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOjplbnN1cmVJbnRlcnNl
Y3Rpb25PYnNlcnZlcik6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6
OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5lZWRlZCk6IGhlbHBlciBh
cm91bmQgbGFjayBvZiBzY3JvbGwgYW5jaG9yaW5nLgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1l
bnQ6OnNjcm9sbEludG9WaWV3KTogbWFrZSBzdXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQgaXMgaW4g
dmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZCk6IG1ha2Ugc3VyZSBzY3JvbGxlZCB0byBlbGVtZW50IGlzIGluIHZpc2libGUgc3VidHJlZS4K
KFdlYkNvcmU6OkVsZW1lbnQ6OmZvY3VzKTogbWFrZSBzdXJlIHNjcm9sbGVkIHRvIGVsZW1lbnQg
aXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgooV2ViQ29yZTo6RWxlbWVudDo6Y29udGVudFJlbGV2YW5j
eVN0YXR1cyBjb25zdCk6CihXZWJDb3JlOjpFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVsZXZhbmN5
U3RhdHVzKToKKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJ
Zk5lZWRlZCk6IHVwZGF0ZSBpZiBpbiBjb250ZW50LXZpc2liaWxpdHkgYXV0byBzdWJ0cmVlLgoo
V2ViQ29yZTo6RWxlbWVudDo6aXNSZWxldmFudFRvVXNlciBjb25zdCk6CihXZWJDb3JlOjpFbGVt
ZW50Ojpjb250ZW50VmlzaWJpbGl0eVZpZXdwb3J0Q2hhbmdlKTogaGFuZGxlIGNoYW5nZWQgdmlz
aWJpbGl0eSBpbiB2aWV3cG9ydCBzdGF0dXMuCiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmg6CihXZWJDb3JlOjpFbGVt
ZW50UmFyZURhdGE6OmNvbnRlbnRSZWxldmFuY3lTdGF0dXMpOgoqIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaDoga2VlcCB0cmFjayBvZiB3aGV0aGVyIGNvbnRlbnQgaXMgcmVsZXZh
bnQgdG8gdGhlIHVzZXIuCiogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5j
cHA6CihXZWJDb3JlOjpIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKTogbWFrZSBzdXJlIGVs
ZW1lbnQgaXMgaW4gdmlzaWJsZSBzdWJ0cmVlLgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6bWFpbnRhaW5TY3JvbGxQb3NpdGlvbkF0QW5j
aG9yKTogaGFuZGxlIGFuY2hvciBzY3JvbGxzLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5n
ZSk6IGFkZC9yZW1vdmUgb2JzZXJ2YXRpb24gZm9yIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBl
bGVtZW50LgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKTogcmVtb3Zl
IG9ic2VydmF0aW9uIGZvciBjb250ZW50LXZpc2liaWxpdHk6IGF1dG8gZWxlbWVudC4KKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZFNraXBDb250ZW50IGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQgY29uc3QpOiB0YWtlIGludG8gYWNjb3VudCBjdXJy
ZW50IHZhbHVlIG9mIGVmZmVjdGl2ZVNraXBzQ29udGVudC4KKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6c2hvdWxkU2tpcENvbnRlbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVu
dCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcDoKKFdlYkNvcmU6OnJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNMYXlv
dXQpOiBhIGNoYW5nZSBpbiBlZmZlY2l0aXZlU2tpcHNDb250ZW50IHJlcXVpcmVzIGEgbGF5b3V0
LgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwOgooV2ViQ29yZTo6U3R5
bGU6OkFkanVzdGVyOjphZGp1c3QgY29uc3QpOiB0YWtlIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0
byBpbnRvIGFjY291bnQuCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2
ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdp
dGhFbGVtZW50IGNvbnN0KTogZG8gbm90IHNoYXJlIHN0eWxlcyB3aXRoIGRpZmZlcmVudCBpc1Jl
bGV2YW50VG9Vc2VyIHZhbHVlcy4KLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
ICAgICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwgNDEgKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAxMyArKysKIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmFyZURhdGEuaCAgICAgICAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgICAgICAgICAgICAgfCAgMyArCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAyMiArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaCAgICAgIHwgMTMgKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgfCAgNSAtLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVB
ZGp1c3Rlci5jcHAgICAgICAgIHwgMTAgKystCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNo
YXJpbmdSZXNvbHZlci5jcHAgfCAgMyArCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zICAg
ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNDgtZXhwZWN0
ZWQudHh0ICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVk
LnR4dCAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sICAgICAg
ICAgICAgICAgfCAgMiArLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0
ICAgICAgIHwgIDMgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dCAg
ICAgICB8IDE3ICsrLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDcyLWV4cGVjdGVkLnR4dCAg
ICAgICB8ICA4ICstCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgfCAgMiAtCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
fCAgMiAtCiAyMyBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDZkNGFmNDc4MDVmLi4yNDI2ZWM2ODBj
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTM4LDYgKzEzOCw3IEBACiAjaW5jbHVk
ZSAiSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAi
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAi
SlNMYXp5RXZlbnRMaXN0ZW5lci5oIgpAQCAtMzY5LDYgKzM3MCwzMyBAQCBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoRG9jdW1lbnQpOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHVz
aW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBJbnRlcnNlY3Rpb25PYnNl
cnZlckNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENvbnRlbnRWaXNpYmlsaXR5
SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENvbnRlbnRWaXNpYmlsaXR5SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayhkb2N1bWVudCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisg
ICAgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoSW50ZXJzZWN0aW9uT2JzZXJ2ZXIm
LCBjb25zdCBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYgZW50cmllcywg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXImKSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKCFlbnRy
aWVzLmlzRW1wdHkoKSk7CisKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBlbGVtZW50ID0gZW50cnktPnRhcmdldCgpKQorICAgICAg
ICAgICAgICAgIGVsZW1lbnQtPmNvbnRlbnRWaXNpYmlsaXR5Vmlld3BvcnRDaGFuZ2UoZW50cnkt
PmlzSW50ZXJzZWN0aW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorCisgICAgQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKERv
Y3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
KCZkb2N1bWVudCkKKyAgICB7CisgICAgfQorfTsKKwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNN
YXhXcml0ZVJlY3Vyc2lvbkRlcHRoID0gMjE7CiBib29sIERvY3VtZW50OjpoYXNFdmVyQ3JlYXRl
ZEFuQVhPYmplY3RDYWNoZSA9IGZhbHNlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWF4SW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmdBZnRlck1lZGlhRmluaXNoZXNQbGF5aW5nIHsgMV9z
IH07CkBAIC00Nzc3LDYgKzQ4MDUsOCBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAg
IG9sZEZvY3VzZWRFbGVtZW50LT5zZXRGb2N1cyhmYWxzZSk7CiAgICAgICAgIHNldEZvY3VzTmF2
aWdhdGlvblN0YXJ0aW5nTm9kZShudWxscHRyKTsKIAorICAgICAgICBvbGRGb2N1c2VkRWxlbWVu
dC0+dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lT
dGF0dXM6OkZvY3VzZWQsIGZhbHNlKTsKKwogICAgICAgICBpZiAob3B0aW9ucy5yZW1vdmFsRXZl
bnRzTW9kZSA9PSBGb2N1c1JlbW92YWxFdmVudHNNb2RlOjpEaXNwYXRjaCkgewogICAgICAgICAg
ICAgLy8gRGlzcGF0Y2ggYSBjaGFuZ2UgZXZlbnQgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB0
aGF0IGhhdmUgYmVlbiBlZGl0ZWQuCiAgICAgICAgICAgICBpZiAoaXM8SFRNTEZvcm1Db250cm9s
RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkgewpAQCAtNDg1Niw2ICs0ODg2LDggQEAgYm9v
bCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgY29uc3QgRm9j
dXNPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBpZiAob3B0aW9ucy50cmlnZ2VyICE9IEZvY3Vz
VHJpZ2dlcjo6QmluZGluZ3MpCiAgICAgICAgICAgICBtX2xhdGVzdEZvY3VzVHJpZ2dlciA9IG9w
dGlvbnMudHJpZ2dlcjsKIAorICAgICAgICBuZXdGb2N1c2VkRWxlbWVudC0+dXBkYXRlQ29udGVu
dFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OkZvY3VzZWQs
IHRydWUpOworCiAgICAgICAgIC8vIFRoZSBzZXRGb2N1cyBjYWxsIHRyaWdnZXJzIGEgYmx1ciBh
bmQgYSBmb2N1cyBldmVudC4gRXZlbnQgaGFuZGxlcnMgY291bGQgY2F1c2UgdGhlIGZvY3VzZWQg
ZWxlbWVudCB0byBiZSBjbGVhcmVkLgogICAgICAgICBpZiAobV9mb2N1c2VkRWxlbWVudCAhPSBu
ZXdGb2N1c2VkRWxlbWVudCkgewogICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3Vz
CkBAIC05NDIyLDYgKzk0NTQsNTkgQEAgYm9vbCBEb2N1bWVudDo6bGF6eUltYWdlTG9hZGluZ0Vu
YWJsZWQoKSBjb25zdAogICAgIHJldHVybiBtX3NldHRpbmdzLT5sYXp5SW1hZ2VMb2FkaW5nRW5h
YmxlZCgpICYmICFtX3F1aXJrcy0+c2hvdWxkRGlzYWJsZUxhenlJbWFnZUxvYWRpbmdRdWlyaygp
OwogfQogCitDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUmIERvY3VtZW50Ojpjb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKQoreworICAgIGlmICghbV9jb250ZW50VmlzaWJpbGl0
eURvY3VtZW50U3RhdGUpCisgICAgICAgIG1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
ID0gbWFrZVVuaXF1ZTxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+KCp0aGlzKTsKKyAg
ICByZXR1cm4gKm1fY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlOworfQorCitDb250ZW50
VmlzaWJpbGl0eURvY3VtZW50U3RhdGU6OkNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZShE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworfQorCit2
b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6b2JzZXJ2ZShFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIGlmIChhdXRvKiBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IGVuc3VyZUludGVy
c2VjdGlvbk9ic2VydmVyKCkpCisgICAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLT5vYnNlcnZl
KGVsZW1lbnQpOworfQorCit2b2lkIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6dW5v
YnNlcnZlKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAg
IG1fb2JzZXJ2ZXItPnVub2JzZXJ2ZShlbGVtZW50KTsKK30KKworSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIqIENvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZTo6ZW5zdXJlSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIoKQoreworICAgIGlmICghbV9vYnNlcnZlcikgeworICAgICAgICBhdXRvIGNhbGxiYWNr
ID0gQ29udGVudFZpc2liaWxpdHlJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpjcmVhdGUo
Km1fZG9jdW1lbnQpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5n
PiBjb250ZW50VmlzaWJpbGl0eVJvb3RNYXJnaW5GYWxsYmFjayhNQUtFX1NUQVRJQ19TVFJJTkdf
SU1QTCgiMCUiKSk7CisgICAgICAgIEludGVyc2VjdGlvbk9ic2VydmVyOjpJbml0IG9wdGlvbnMg
eyBzdGQ6Om51bGxvcHQsIGNvbnRlbnRWaXNpYmlsaXR5Um9vdE1hcmdpbkZhbGxiYWNrLCB7IH0g
fTsKKyAgICAgICAgYXV0byBvYnNlcnZlciA9IEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGUo
Km1fZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICAg
ICAgaWYgKG9ic2VydmVyLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlci5yZXR1cm5WYWx1ZSgpLnB0cigpOwor
ICAgIH0KKyAgICByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsKK30KKworLy8gV29ya2Fyb3VuZCBm
b3IgbGFjayBvZiBzdXBwb3J0IGZvciBzY3JvbGwgYW5jaG9yaW5nLiBXZSBtYWtlIHN1cmUgYW55
IGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0byBlbGVtZW50cworLy8gYWJvdmUgdGhlIG9uZSB0byBi
ZSBzY3JvbGxlZCB0byBhcmUgYWxyZWFkeSBoaWRkZW4sIHNvIHRoZSBzY3JvbGwgcG9zaXRpb24g
d2lsbCBub3QgbmVlZCB0byBiZSBhZGp1c3RlZAorLy8gbGF0ZXIuCisvLyBGSVhNRTogcmVtb3Zl
IHdoZW4gc2Nyb2xsIGFuY2hvcmluZyBpcyBpbXBsZW1lbnRlZC4KK3ZvaWQgQ29udGVudFZpc2li
aWxpdHlEb2N1bWVudFN0YXRlOjp1cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xs
SWZOZWVkZWQoRWxlbWVudCogc2Nyb2xsQW5jaG9yKQoreworICAgIGlmIChtX29ic2VydmVyKSB7
CisgICAgICAgIGZvciAoYXV0byB0YXJnZXQgOiBtX29ic2VydmVyLT5vYnNlcnZhdGlvblRhcmdl
dHMoKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQtPnJlbmRlcmVyKCkgJiYg
dGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVu
dFZpc2liaWxpdHk6OkF1dG8pCisgICAgICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250ZW50
UmVsZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXM6OlZpc2libGUsIGZhbHNlKTsK
KyAgICAgICAgfQorICAgIH0KKyAgICBzY3JvbGxBbmNob3ItPnVwZGF0ZUNvbnRlbnRSZWxldmFu
Y3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZhbmN5U3RhdHVzOjpWaXNpYmxlLCB0cnVlKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgRE9DVU1FTlRfUkVMRUFTRV9M
T0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2NmZDkxNDRhNzgwLi4xM2U3Yjg3YTQ3OTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzcsNiArMjM3LDcgQEAgY2xhc3MgVHJhbnNmb3JtU291
cmNlOwogY2xhc3MgVHJlZVdhbGtlcjsKIGNsYXNzIFVuZG9NYW5hZ2VyOwogY2xhc3MgVmlzaWJp
bGl0eUNoYW5nZUNsaWVudDsKK2NsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVk
TGlua1N0YXRlOwogY2xhc3MgV2FrZUxvY2tNYW5hZ2VyOwogY2xhc3MgV2ViQW5pbWF0aW9uOwpA
QCAtMzU0LDYgKzM1NSwyMyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQ
dHJJbXBsV2l0aEV2ZW50VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRl
bnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKERvY3VtZW50Jik7
CisKKyAgICB2b2lkIG9ic2VydmUoRWxlbWVudCYpOworICAgIHZvaWQgdW5vYnNlcnZlKEVsZW1l
bnQmKTsKKworICAgIHZvaWQgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNjcm9sbElm
TmVlZGVkKEVsZW1lbnQqIHNjcm9sbEFuY2hvcik7CisKK3ByaXZhdGU6CisgICAgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIqIGVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyKCk7CisKKyAgICBSZWZQdHI8
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CisgICAgV2Vha1B0cjxEb2N1bWVudCwg
V2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OworfTsKKwogY2xhc3Mg
RG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNj
b3BlCkBAIC0xNjgzLDYgKzE3MDEsOCBAQCBwdWJsaWM6CiAKICAgICBMYXp5TG9hZEltYWdlT2Jz
ZXJ2ZXImIGxhenlMb2FkSW1hZ2VPYnNlcnZlcigpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlE
b2N1bWVudFN0YXRlJiBjb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKTsKKwogICAgIHZv
aWQgc2V0SGFzVmlzdWFsbHlOb25FbXB0eUN1c3RvbUNvbnRlbnQoKSB7IG1faGFzVmlzdWFsbHlO
b25FbXB0eUN1c3RvbUNvbnRlbnQgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNWaXN1YWxseU5vbkVt
cHR5Q3VzdG9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlzdWFsbHlOb25FbXB0eUN1
c3RvbUNvbnRlbnQ7IH0KICAgICB2b2lkIGVucXVldWVQYWludFRpbWluZ0VudHJ5SWZOZWVkZWQo
KTsKQEAgLTE5NTUsNiArMTk3NSw4IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGF6eUxvYWRJbWFnZU9ic2VydmVyPiBtX2xhenlMb2FkSW1hZ2VPYnNlcnZlcjsKIAorICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGU+IG1fY29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlOworCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIE1vbm90b25p
Y1RpbWUgbV9kb2N1bWVudENyZWF0aW9uVGltZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDc1ZjdmMmUwYjU5Ni4uOGQ1NmJlNGU0YzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0xMDY5LDYgKzEwNjksOCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVu
ZGVyRWxlbWVudCosIExheW91dFJlY3Q+PiBsaXN0Qm94RWxlbWVudFNjcm9sbAogCiB2b2lkIEVs
ZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNj
cm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKQogeworICAgIGRvY3VtZW50KCkuY29udGVudFZp
c2liaWxpdHlEb2N1bWVudFN0YXRlKCkudXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0ZvclNj
cm9sbElmTmVlZGVkKHRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyID0gbnVs
bHB0cjsKQEAgLTExMzQsNiArMTEzNiw4IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXco
Ym9vbCBhbGlnblRvVG9wKQogCiB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOZWVkZWQo
Ym9vbCBjZW50ZXJJZk5lZWRlZCkKIHsKKyAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5
RG9jdW1lbnRTdGF0ZSgpLnVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNGb3JTY3JvbGxJZk5l
ZWRlZCh0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC0zMzY1LDYgKzMzNjksOCBA
QCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGNvbnN0IEZvY3VzT3B0aW9ucyYgb3B0aW9ucykKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIGRvY3VtZW50LT5jb250ZW50VmlzaWJpbGl0eURvY3Vt
ZW50U3RhdGUoKS51cGRhdGVDb250ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQo
dGhpcyk7CisKICAgICBSZWZQdHI8RWxlbWVudD4gbmV3VGFyZ2V0ID0gdGhpczsKIAogICAgIC8v
IElmIHdlIGRvbid0IGhhdmUgcmVuZGVyZXIgeWV0LCBpc0ZvY3VzYWJsZSB3aWxsIGNvbXB1dGUg
aXQgd2l0aG91dCBzdHlsZSB1cGRhdGUuCkBAIC01MjA1LDQgKzUyMTEsMzkgQEAgdm9pZCBFbGVt
ZW50OjpzZXREaXNwbGF5Q29udGVudHNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkKICAgICBzZXRFdmVu
dFRhcmdldEZsYWcoRXZlbnRUYXJnZXRGbGFnOjpEaXNwbGF5Q29udGVudHNDaGFuZ2VkLCBjaGFu
Z2VkKTsKIH0KIAorT3B0aW9uU2V0PENvbnRlbnRSZWxldmFuY3lTdGF0dXM+IEVsZW1lbnQ6OmNv
bnRlbnRSZWxldmFuY3lTdGF0dXMoKSBjb25zdAoreworICAgIGlmICghaGFzUmFyZURhdGEoKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPmNvbnRl
bnRSZWxldmFuY3lTdGF0dXMoKTsKK30KKwordm9pZCBFbGVtZW50Ojp1cGRhdGVDb250ZW50UmVs
ZXZhbmN5U3RhdHVzKENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQor
eworICAgIGlmIChjb250ZW50UmVsZXZhbmN5U3RhdHVzKCkuY29udGFpbnMoc3RhdHVzKSAhPSB2
YWx1ZSkgeworICAgICAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5jb250ZW50UmVsZXZhbmN5
U3RhdHVzKCkuc2V0KHN0YXR1cywgdmFsdWUpOworICAgICAgICBpbnZhbGlkYXRlU3R5bGUoKTsK
KyAgICB9Cit9CisKK3ZvaWQgRWxlbWVudDo6dXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lm
TmVlZGVkKENvbnRlbnRSZWxldmFuY3lTdGF0dXMgc3RhdHVzLCBib29sIHZhbHVlKQoreworICAg
IGZvciAoYXV0byB0YXJnZXQgPSB0aGlzOyB0YXJnZXQ7IHRhcmdldCA9IHRhcmdldC0+cGFyZW50
RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAgaWYgKHRhcmdldC0+cmVuZGVyZXIo
KSAmJiB0YXJnZXQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6QXV0bykgeworICAgICAgICAgICAgdGFyZ2V0LT51cGRhdGVDb250
ZW50UmVsZXZhbmN5U3RhdHVzKHN0YXR1cywgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorfQorCitib29sIEVsZW1lbnQ6OmlzUmVsZXZhbnRUb1VzZXIoKSBj
b25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIGVsZW1lbnRSYXJlRGF0YSgpLT5j
b250ZW50UmVsZXZhbmN5U3RhdHVzKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6Y29udGVudFZpc2li
aWxpdHlWaWV3cG9ydENoYW5nZShib29sIGlzSW50ZXJzZWN0aW5nKQoreworICAgIHVwZGF0ZUNv
bnRlbnRSZWxldmFuY3lTdGF0dXMoQ29udGVudFJlbGV2YW5jeVN0YXR1czo6VmlzaWJsZSwgaXNJ
bnRlcnNlY3RpbmcpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCBiNzcxNjc0MmMxMzUuLmM5OGQ0YWU0YzMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0xMDQsNiArMTA0LDEyIEBAIHN0cnVjdCBTaGFkb3dSb290SW5pdDsKIAogdXNpbmcgRXhwbGlj
aXRseVNldEF0dHJFbGVtZW50c01hcCA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVmVjdG9yPFdl
YWtQdHI8RWxlbWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPj4+OwogCitlbnVt
IGNsYXNzIENvbnRlbnRSZWxldmFuY3lTdGF0dXMgOiB1aW50OF90IHsKKyAgICBWaXNpYmxlID0g
MSA8PCAwLAorICAgIEZvY3VzZWQgPSAxIDw8IDEsCisgICAgLy8gRklYTUU6IGFkZCBTZWxlY3Rl
ZC4KK307CisKIG5hbWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBSZXNvbHZlcjsKIGVudW0gY2xhc3Mg
Q2hhbmdlIDogdWludDhfdDsKQEAgLTcxOSw2ICs3MjUsMTMgQEAgcHVibGljOgogICAgIGJvb2wg
ZGlzcGxheUNvbnRlbnRzQ2hhbmdlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGlzcGxheUNvbnRl
bnRzQ2hhbmdlZChib29sID0gdHJ1ZSk7CiAKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5j
eVN0YXR1cz4gY29udGVudFJlbGV2YW5jeVN0YXR1cygpIGNvbnN0OworICAgIHZvaWQgdXBkYXRl
Q29udGVudFJlbGV2YW5jeVN0YXR1cyhDb250ZW50UmVsZXZhbmN5U3RhdHVzLCBib29sKTsKKyAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWxldmFuY3lTdGF0dXNJZk5lZWRlZChDb250ZW50UmVsZXZh
bmN5U3RhdHVzLCBib29sKTsKKyAgICBib29sIGlzUmVsZXZhbnRUb1VzZXIoKSBjb25zdDsKKwor
ICAgIHZvaWQgY29udGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZShib29sKTsKKwogcHJvdGVj
dGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3Ry
dWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA1MzM3
MDJjNmRkN2EuLjk4YmRhYTQ3OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aApAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKIAogICAgIEV4cGxpY2l0bHlTZXRBdHRyRWxl
bWVudHNNYXAmIGV4cGxpY2l0bHlTZXRBdHRyRWxlbWVudHNNYXAoKSB7IHJldHVybiBtX2V4cGxp
Y2l0bHlTZXRBdHRyRWxlbWVudHNNYXA7IH0KIAorICAgIE9wdGlvblNldDxDb250ZW50UmVsZXZh
bmN5U3RhdHVzPiYgY29udGVudFJlbGV2YW5jeVN0YXR1cygpIHsgcmV0dXJuIG1fY29udGVudFJl
bGV2YW5jeVN0YXR1czsgfQorCiAjaWYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MKICAgICBPcHRpb25T
ZXQ8VXNlVHlwZT4gdXNlVHlwZXMoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURh
dGEuaAppbmRleCBkNDU5ZDA5NzM5ZGEuLjA3ZWFlMTg0MGM5MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaApAQCAtMzI2LDYgKzMyNiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBVc2VkIGJ5
IEVsZW1lbnRSYXJlRGF0YS4gRGVmaW5lZCBoZXJlIGZvciBiZXR0ZXIgcGFja2luZyBpbiA2NC1i
aXQuCiAgICAgaW50IG1fdW51c3VhbFRhYkluZGV4IHsgMCB9OwogICAgIHVuc2lnbmVkIHNob3J0
IG1fY2hpbGRJbmRleCB7IDAgfTsKKyAgICBPcHRpb25TZXQ8Q29udGVudFJlbGV2YW5jeVN0YXR1
cz4gbV9jb250ZW50UmVsZXZhbmN5U3RhdHVzOwogCiBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Vs
ZW1lbnRSYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxv
Z0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAK
aW5kZXggZmM5MWQyM2ZkYzkzLi5hNjYzNDg1MGFmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERpYWxvZ0VsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwxMCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01vZGFsKCkKIAogICAgIHNldElzTW9kYWwodHJ1ZSk7
CiAKLSAgICBpZiAoIWlzSW5Ub3BMYXllcigpKQorICAgIGlmICghaXNJblRvcExheWVyKCkpIHsK
KyAgICAgICAgdXBkYXRlQ29udGVudFJlbGV2YW5jeVN0YXR1c0lmTmVlZGVkKENvbnRlbnRSZWxl
dmFuY3lTdGF0dXM6OlZpc2libGUsIHRydWUpOwogICAgICAgICBhZGRUb1RvcExheWVyKCk7Cisg
ICAgfQogCiAgICAgbV9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudCgpLmZvY3Vz
ZWRFbGVtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3NThhODdmZWEw
ZjcuLjhkYzMzNjk0NTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjM3OCw2
ICsyMzc4LDkgQEAgdm9pZCBGcmFtZVZpZXc6Om1haW50YWluU2Nyb2xsUG9zaXRpb25BdEFuY2hv
cihDb250YWluZXJOb2RlKiBhbmNob3JOb2RlKQogCiAgICAgY2FuY2VsU2NoZWR1bGVkU2Nyb2xs
cygpOwogCisgICAgaWYgKGlzPEVsZW1lbnQ+KGFuY2hvck5vZGUpKQorICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3RhdGUoKS51cGRhdGVDb250
ZW50UmVsZXZhbmN5U3RhdHVzRm9yU2Nyb2xsSWZOZWVkZWQoZG93bmNhc3Q8RWxlbWVudD4oYW5j
aG9yTm9kZSkpOworCiAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgdGhlIGxheW91dCBiZWZvcmUg
c2Nyb2xsaW5nLCBvdGhlcndpc2Ugd2UgY291bGQKICAgICAvLyByZWFsbHkgbWVzcyB0aGluZ3Mg
dXAgaWYgYW4gYW5jaG9yIHNjcm9sbCBjb21lcyBhdCBhIGJhZCBtb21lbnQuCiAgICAgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDdlOTkzNmM1MjEyNi4uZWZlNmE4ZWNiYWY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC04MTks
NiArODE5LDEzIEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAobV9zdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICE9IG5ld1N0
eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgJiYgZWxlbWVudCgpKSB7CisgICAgICAgICAgICBpZiAo
bV9zdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvKQor
ICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRl
KCkudW5vYnNlcnZlKCplbGVtZW50KCkpOworICAgICAgICAgICAgZWxzZSBpZiAobmV3U3R5bGUu
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudCgpLmNvbnRlbnRWaXNpYmlsaXR5RG9jdW1lbnRTdGF0ZSgpLm9ic2Vy
dmUoKmVsZW1lbnQoKSk7CisgICAgICAgIH0KKwogICAgICAgICBhdXRvIG5lZWRzSW52YWxpZGF0
ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAgICAgIGlmIChtX3N0eWxlLmVmZmVjdGl2ZVBv
aW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZlY3RpdmVQb2ludGVyRXZlbnRzKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC04NjQsNiArODcxLDkgQEAgdm9pZCBSZW5kZXJF
bGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlJiBuZXcKICAgICAgICAgc2V0SGFzTm9uVmlzaWJsZU92ZXJmbG93KGZhbHNlKTsKICAg
ICAgICAgc2V0SGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KGZhbHNlKTsKICAgICAgICAgc2V0
SGFzUmVmbGVjdGlvbihmYWxzZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG5ld1N0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8gJiYgZWxlbWVu
dCgpKQorICAgICAgICAgICAgZG9jdW1lbnQoKS5jb250ZW50VmlzaWJpbGl0eURvY3VtZW50U3Rh
dGUoKS5vYnNlcnZlKCplbGVtZW50KCkpOwogICAgIH0KIAogICAgIGJvb2wgaGFkT3V0bGluZSA9
IG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNPdXRsaW5lKCk7CkBAIC0xMDcyLDYgKzEwODIsOSBA
QCB2b2lkIFJlbmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBpZiAobV9oYXNQ
YXVzZWRJbWFnZUFuaW1hdGlvbnMpCiAgICAgICAgIHZpZXcoKS5yZW1vdmVSZW5kZXJlcldpdGhQ
YXVzZWRJbWFnZUFuaW1hdGlvbnMoKnRoaXMpOworCisgICAgaWYgKHN0eWxlKCkuY29udGVudFZp
c2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byAmJiBlbGVtZW50KCkpCisgICAg
ICAgIGRvY3VtZW50KCkuY29udGVudFZpc2liaWxpdHlEb2N1bWVudFN0YXRlKCkudW5vYnNlcnZl
KCplbGVtZW50KCkpOwogfQogCiB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzUG9zaXRpb25l
ZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKQEAgLTIxOTMsNCAr
MjIwNiwxMyBAQCBGbG9hdFJlY3QgUmVuZGVyRWxlbWVudDo6cmVmZXJlbmNlQm94UmVjdChDU1NC
b3hUeXBlIGJveFR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKHN0eWxlKCkuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29u
dGVudFZpc2liaWxpdHk6OkhpZGRlbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJu
IGVsZW1lbnQoKSAmJiAhZWxlbWVudCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IDZmZWQ4ZmJiY2UwNi4u
OGY2MTAxNzM5NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgK
QEAgLTMxMiw2ICszMTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGVzdGFibGlzaGVz
SW5kZXBlbmRlbnRGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIGJvb2wgY3JlYXRlc05l
d0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZFNraXBDb250ZW50
KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBlbnVtIEJhc2VUeXBlRmxhZyB7CiAgICAgICAg
IFJlbmRlckxheWVyTW9kZWxPYmplY3RGbGFnICA9IDEgPDwgMCwKQEAgLTUzOSw3ICs1NDEsOSBA
QCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250
YWlubWVudCgpIGNvbnN0CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5
U2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2hvdWxkQXBwbHlTaXplT3JT
dHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkgfHwgc3R5bGUoKS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pOworICAgIGlmIChzaG91
bGRTa2lwQ29udGVudCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc2hvdWxk
QXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkpOwogfQog
CiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlu
bWVudCgpIGNvbnN0CkBAIC02NTEsNiArNjU1LDEzIEBAIGlubGluZSBSZW5kZXJPYmplY3QqIFJl
bmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKK2lubGluZSBib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25z
dAoreworICAgIGlmIChpc1RleHQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuc2hvdWxkU2tpcENvbnRlbnQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1JFTkRF
Ul9PQkpFQ1QoUmVuZGVyRWxlbWVudCwgaXNSZW5kZXJFbGVtZW50KCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRmZDlkMGZiODM2NS4uMzU0ODBlNDBi
MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjYz
NywxMSArMjYzNyw2IEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50KCkgY29u
c3QKICAgICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPnN0eWxlKCkuZWZmZWN0aXZlU2tp
cHNDb250ZW50KCk7CiB9CiAKLWJvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250
ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwotfQotCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJl
bmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGMzY2IzMWU3MTg4NS4uN2ZkODhjMDE4YjA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTg2Niw2ICs4NjYsNyBAQCBzdGF0aWMgYm9vbCByYXJlSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVp
cmVzTGF5b3V0KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAgICAgICAgIHx8IGZpcnN0
LmxpbmVTbmFwICE9IHNlY29uZC5saW5lU25hcAogICAgICAgICB8fCBmaXJzdC5saW5lQWxpZ24g
IT0gc2Vjb25kLmxpbmVBbGlnbgogICAgICAgICB8fCBmaXJzdC5oYW5naW5nUHVuY3R1YXRpb24g
IT0gc2Vjb25kLmhhbmdpbmdQdW5jdHVhdGlvbgorICAgICAgICB8fCBmaXJzdC5lZmZlY3RpdmVT
a2lwc0NvbnRlbnQgIT0gc2Vjb25kLmVmZmVjdGl2ZVNraXBzQ29udGVudAogI2lmIEVOQUJMRShP
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpCiAgICAgICAgIHx8IGZpcnN0LnVzZVRvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcgIT0gc2Vjb25kLnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCAyNTBiNTZkMDIwOWUuLjEy
NTRiMmI4NGFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKQEAgLTU5
NCw3ICs1OTQsMTUgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICAgICAgfQogICAgIH0K
IAotICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpIaWRkZW4pCisgICAgYXV0byBlZmZlY3RpdmVTa2lwc0NvbnRlbnQgPSBbXSAoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSAtPiBib29sIHsKKyAgICAg
ICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6Okhp
ZGRlbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoc3R5bGUuY29udGVu
dFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykKKyAgICAgICAgICAgIHJl
dHVybiBlbGVtZW50ICYmICFlbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9OworCisgICAgaWYgKGVmZmVjdGl2ZVNraXBzQ29udGVudChzdHls
ZSwgbV9lbGVtZW50KSkKICAgICAgICAgc3R5bGUuc2V0RWZmZWN0aXZlU2tpcHNDb250ZW50KHRy
dWUpOwogCiAgICAgYWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKHN0eWxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNwcAppbmRleCBmYzEyZWVkODRm
MmQuLjU2ZTU4YmUxODE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
aGFyaW5nUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmlu
Z1Jlc29sdmVyLmNwcApAQCAtMjU4LDYgKzI1OCw5IEBAIGJvb2wgU2hhcmluZ1Jlc29sdmVyOjpj
YW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoY29uc3QgQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3R5
CiAgICAgaWYgKGVsZW1lbnRIYXNEaXJlY3Rpb25BdXRvKGNhbmRpZGF0ZUVsZW1lbnQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoY2FuZGlkYXRlRWxlbWVudC5pc1JlbGV2YW50
VG9Vc2VyKCkgIT0gZWxlbWVudC5pc1JlbGV2YW50VG9Vc2VyKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKwogICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LmlzTGluaygpICYmIGNvbnRleHQuZWxl
bWVudExpbmtTdGF0ZSAhPSBzdHlsZS0+aW5zaWRlTGluaygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc5NDQ4MGE0ZjM4ZC4uMTkwNDNjZmE2NjM1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3MDEsNiArNDcwMSw4IEBAIHdlYmtpdC5vcmcvYi8yMTQ0
NjMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9hc3BlY3Qt
cmF0aW8vCiB3ZWJraXQub3JnL2IvMjE0NDYzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zaXppbmcvYXNwZWN0LXJhdGlvL2Zsb2F0cy1hc3BlY3QtcmF0aW8tMDAxLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBjb250YWluLWludHJpbnNpYy1zaXplCit3ZWJr
aXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwMS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwMi5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNy5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMjQ2MzM4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOS5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvMjQ2MjgzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
aXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9jb250YWluLWludHJpbnNpYy1zaXplLWxvZ2lj
YWwtMDAzLmh0bWwgWyBTa2lwIF0KQEAgLTQ4MjIsOCArNDgyNCw2IEBAIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50
cmluc2ljLmh0CiAjIGZvcmNlZCBsYXlvdXQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDM1Lmh0bWwgWyBTa2lwIF0KICMgYy12OiBhdXRvCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LWF1dG8tc3RhdGUtY2hhbmdlZC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LWZpZWxkc2V0LXNpemUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS12aWRlby5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA0OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA0OC1leHBlY3RlZC50eHQKaW5kZXggY2ZkODdiZDIxZjg2Li43MzI2OGZkYjA4ZGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ4LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTA0OC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgRnJhZ21lbnQgbmF2aWdh
dGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgc2luZ2xlIHRleHQgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRleHQiIGJ1dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgRnJhZ21lbnQgbmF2aWdh
dGlvbiB3aXRoIGNvbnRlbnQtdmlzaWJpbGl0eTsgcmFuZ2UgYWNyb3NzIGJsb2NrcyBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAidGV4dDIiIGJ1dCBnb3QgInVua25vd24iCitGQUlMIEZyYWdtZW50
IG5hdmlnYXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHNpbmdsZSB0ZXh0IGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJ0ZXh0IiBidXQgZ290ICJ0b3AiCitGQUlMIEZyYWdtZW50IG5hdmln
YXRpb24gd2l0aCBjb250ZW50LXZpc2liaWxpdHk7IHJhbmdlIGFjcm9zcyBibG9ja3MgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInRleHQyIiBidXQgZ290ICJ0b3AiCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4
dAppbmRleCA1OGUzNjVlYjMxYWMuLmI2MjI0ZjkwNjQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjgtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDY4LWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gZm9j
dXMgYXNzZXJ0X2VxdWFsczogc3RlcDEgaGVpZ2h0IGV4cGVjdGVkIDEwMCBidXQgZ290IDEwCitQ
QVNTIENvbnRlbnQgVmlzaWJpbGl0eTogb2ZmLXNjcmVlbiBmb2N1cwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA2OC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAppbmRleCAzMzAyNTZh
ZGIyOTguLjI1YzJhM2QzMTZjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29u
dGVudC12aXNpYmlsaXR5LTA2OC5odG1sCkBAIC00Nyw3ICs0Nyw3IEBAIGFzeW5jX3Rlc3QoKHQp
ID0+IHsKICAgICB9KTsKIAogICAgIGZvY3VzYWJsZS5mb2N1cygpOwotICAgIHJlcXVlc3RBbmlt
YXRpb25GcmFtZShzdGVwMik7CisgICAgc2V0VGltZW91dCgoKSA9PiB7IHJlcXVlc3RBbmltYXRp
b25GcmFtZShzdGVwMik7IH0sIDApOwogICB9CiAgIC8vIEFmdGVyIGZvY3VzaW5nIHRoZSBzdWJ0
cmVlLCB0aGUgY29udGFpbmVyIHNob3VsZCBiZSBzb21ld2hlcmUgY2xvc2VyIHRoYW4KICAgLy8g
MzAwMHB4IChzY3JvbGxlZCBpbnRvIHZpZXcpIGFuZCB0aGUgaGVpZ2h0IHNob3VsZCBiZSAxMHB4
LCBzaW5jZSBpdCBubwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CmluZGV4IGEzZTU5MDZkNmMzZi4uOTExMDJh
NzA1YWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTA3MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNzAtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotaGVsbG8KIAotRkFJ
TCBDb250ZW50IFZpc2liaWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6
IHN0ZXAxIGhlaWdodCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxMAorRkFJTCBDb250ZW50IFZpc2li
aWxpdHk6IG9mZi1zY3JlZW4gc2VsZWN0aW9uIGFzc2VydF9lcXVhbHM6IHN0ZXAzIGhlaWdodCBl
eHBlY3RlZCAxMCBidXQgZ290IDEwMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKaW5kZXggNDRhMjkzNjUw
MzYxLi41YzFkZmNlMDA4NjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDcxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MS1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsOCBAQAot
aGVsbG8KLWhlbGxvCi1oZWxsbwotaGVsbG8KLWhlbGxvCiAKLUZBSUwgT25lIGVsZW1lbnRzIHNl
bGVjdGVkOiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdl
IGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2VyIGVsZW1lbnRz
OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGZsaXBw
ZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNrOiAgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFJhbmdlIGdvZXMgYmFjayBhbmQgZm9ydGg6
ICBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgT25lIGVsZW1lbnRz
IHNlbGVjdGVkOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlM
IFJhbmdlIGV4dGVuZGVkIHRvIGNvdmVyIG1vcmUgZWxlbWVudHM6ICBhc3NlcnRfZmFsc2U6IDIg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK0ZBSUwgUmFuZ2Ugc2hydW5rIHRvIGNvdmVyIGZld2Vy
IGVsZW1lbnRzOiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlM
IFJhbmdlIGZsaXBwZWQgZnJvbSBiYWNrIHRvIGZyb250OiAgYXNzZXJ0X2ZhbHNlOiAyIGV4cGVj
dGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGZsaXBwZWQgZnJvbSBmcm9udCB0byBiYWNr
OiAgYXNzZXJ0X2ZhbHNlOiAzIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitGQUlMIFJhbmdlIGdv
ZXMgYmFjayBhbmQgZm9ydGg6ICBhc3NlcnRfZmFsc2U6IHRlc3RfMCwgY29udGFpbmVyXzEgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CmluZGV4IDAwZjFjN2Y0NDQx
OC4uZjk1MThiY2ZlMDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA3Mi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQ
QVNTIG9uZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKLUZBSUwgdHdvLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOiAgYXNzZXJ0X2VxdWFsczogeSBleHBlY3RlZCAzMDA3IGJ1dCBnb3QgMzA0MQot
RkFJTCB0aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhw
ZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZm91ci5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAwNyBidXQgZ290IDMwNDEKLUZBSUwgZml2
ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogIGFzc2VydF9lcXVhbHM6IHkgZXhwZWN0ZWQgMzAw
NyBidXQgZ290IDMwNDEKK1BBU1MgdHdvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOgorUEFTUyB0
aHJlZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKK1BBU1MgZm91ci5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKToKK1BBU1MgZml2ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKToKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMmY2Y2IzN2M3ZTAuLjUyOGVi
Y2NlMWNhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM1NDcsOCArMzU0Nyw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW4tc2l6ZS1zZWxlY3QtMDAxLmh0bWwgWyBQCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLXNpemUtc2VsZWN0LTAw
Mi5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250YWluLXNpemUtc2VsZWN0LWVsZW0tMDAxLmh0bWwgWyBQYXNzIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4tc2l6ZS1z
ZWxlY3QtZWxlbS0wMDIuaHRtbCBbIFBhc3MgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzUuaHRtbCBbIFBhc3MgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRt
bCBbIFBhc3MgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRl
bnQvcXVvdGVzLTAwNi5odG1sIFsgUGFzcyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGVudC9xdW90ZXMtMDA3Lmh0bWwgWyBQYXNzIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250ZW50L3F1b3Rlcy0wMTIuaHRtbCBbIFBh
c3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDUwODNmYjAxNDNmMS4uYjNhZjNhNGQxMDY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzg0LDggKzEzODQsNiBAQCB3ZWJraXQu
b3JnL2IvMjI0Njk4IFsgQmlnU3VyIFJlbGVhc2UgYXJtNjQgXSBpbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLW9vbS5odG1sCiAKIHdlYmtpdC5vcmcvYi8yMjQyNTcgWyBEZWJ1ZyBdIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9zaGFkZXItdW5pZm9ybS1wYWNraW5nLXJlc3RyaWN0
aW9ucy5odG1sIFsgU2xvdyBdCiAKLXdlYmtpdC5vcmcvYi8yMzgwMzMgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wNTAuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8y
MjQ5NjMgWyBCaWdTdXIgYXJtNjQgXSB3ZWJydGMvY2FwdHVyZUNhbnZhcy13ZWJydGMuaHRtbCBb
IFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8yMjU0MzAgWyBCaWdTdXIgYXJtNjQgXSBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCg==
</data>
<flag name="commit-queue"
          id="492829"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>