<?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>281136</bug_id>
          
          <creation_ts>2024-10-09 05:56:11 -0700</creation_ts>
          <short_desc>webkit-line-clamp in nested context does not render ellipsis when inline content fits.</short_desc>
          <delta_ts>2024-12-06 05:10:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=5990</see_also>
          <bug_file_loc>https://codepen.io/vincent-valentin/pen/WNVGVjK/8c1bac071f91b67f51516a4d2bf3276b</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>284048</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Karl Dubost">karlcow</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>github</cc>
    
    <cc>koivisto</cc>
    
    <cc>renchap</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2066495</commentid>
    <comment_count>0</comment_count>
      <attachid>472879</attachid>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2024-10-09 05:56:11 -0700</bug_when>
    <thetext>Created attachment 472879
testcase

See the testcase in the attachment, only on Safari the text doesn&apos;t get proper ellipsis. 

Initially reported on https://oisaur.com/@renchap/113276852782235890
but wrongly attributed to Bug 5990, which is a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066496</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-10-09 05:56:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/137585973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066507</commentid>
    <comment_count>2</comment_count>
      <attachid>472880</attachid>
    <who name="Renaud Chaput">renchap</who>
    <bug_when>2024-10-09 07:12:08 -0700</bug_when>
    <thetext>Created attachment 472880
testcase-not-lists

This bug is not specific to lists, it also happens if for example the content is multiple &lt;p&gt; tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066509</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 07:17:33 -0700</bug_when>
    <thetext>(In reply to Renaud Chaput from comment #2)
&gt; Created attachment 472880 [details]
&gt; testcase-not-lists
&gt; 
&gt; This bug is not specific to lists, it also happens if for example the
&gt; content is multiple &lt;p&gt; tags.
Do you mind adding a test case, please? The codepen shows ellipsis on the second (&lt;p&gt;) example on trunk webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066511</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 07:18:14 -0700</bug_when>
    <thetext>never mind, I didn&apos;t see the test case. Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066520</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 08:17:59 -0700</bug_when>
    <thetext>This bugs (not rendering ellipsis) seems to happen when the content actually fits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066523</commentid>
    <comment_count>6</comment_count>
      <attachid>472881</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 08:23:13 -0700</bug_when>
    <thetext>Created attachment 472881
Test reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066526</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 08:33:23 -0700</bug_when>
    <thetext>(In reply to zalan from comment #5)
&gt; This bugs (not rendering ellipsis) seems to happen when the content actually
&gt; fits.
in block direction (i.e. clamping direction)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066538</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 09:09:42 -0700</bug_when>
    <thetext>This is the classic &quot;last formatting line&quot; bug where individual inline formatting contexts can&apos;t decided whether ellipsis is required or not on their _last_ line since they can&apos;t tell if that&apos;s the actual _last_ line in the line clamp context (as we are not supposed to put ellipsis when the clamped line is the actual _last_ line in the clamp context)
e.g.
&lt;div clamp=1&gt;
  &lt;div&gt;this is the last line both in this FC and in the clamp context&lt;/div&gt;
&lt;/div&gt;

vs.

&lt;div clamp=1&gt;
  &lt;div&gt;this is the last line in this formatting context&lt;/div&gt;
  &lt;div&gt;this is the last line both in this FC and in the clamp context&lt;/div&gt;
&lt;/div&gt;

where only the second case should show ellipsis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2066540</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-09 09:10:21 -0700</bug_when>
    <thetext>(In reply to zalan from comment #8)
&gt; This is the classic &quot;last formatting line&quot; bug where individual inline
&quot;last formatting line&quot; should read &quot;last formatted line&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2078796</commentid>
    <comment_count>10</comment_count>
    <who name="">github</who>
    <bug_when>2024-12-03 06:18:57 -0800</bug_when>
    <thetext>I&apos;m facing the same issue (Safari Version 18.1.1 (20619.2.8.11.12)): https://codepen.io/CyrilKrylatov/pen/dPbYOEK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2079001</commentid>
    <comment_count>11</comment_count>
      <attachid>473452</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-12-03 19:08:07 -0800</bug_when>
    <thetext>Created attachment 473452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2079105</commentid>
    <comment_count>12</comment_count>
      <attachid>473458</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-12-04 06:04:38 -0800</bug_when>
    <thetext>Created attachment 473458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2079526</commentid>
    <comment_count>13</comment_count>
      <attachid>473478</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-12-05 16:37:56 -0800</bug_when>
    <thetext>Created attachment 473478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2079575</commentid>
    <comment_count>14</comment_count>
      <attachid>473481</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-12-05 20:46:58 -0800</bug_when>
    <thetext>Created attachment 473481
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2079618</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-12-06 05:10:34 -0800</bug_when>
    <thetext>Committed 287441@main (8ea2903a98c4): &lt;https://commits.webkit.org/287441@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473481.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>472879</attachid>
            <date>2024-10-09 05:56:11 -0700</date>
            <delta_ts>2024-10-09 05:56:11 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>testcase.html</filename>
            <type>text/html</type>
            <size>1336</size>
            <attacher name="Karl Dubost">karlcow</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+VGVzdGNhc2UgZm9yIGxpbmUt
Y2xhbXAgaW5zaWRlIGxpc3RzPC90aXRsZT4KICAgIDxzdHlsZT4uY2xhbXAgewogICAgICAgIGRp
c3BsYXk6IC13ZWJraXQtYm94OwogICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7
CiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiB2YXIoLS1jbGFtcCk7CiAgICAgICAgb3ZlcmZs
b3c6IGhpZGRlbjsKICAgICAgICAKICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7CiAgICAgICAg
Ym9yZGVyOiAxcHggc29saWQ7CiAgICAgICAgbWFyZ2luOiAxcmVtOwogICAgfQogICAgPC9zdHls
ZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxwPjxhIGhyZWY9Imh0dHBzOi8vY29kZXBlbi5pby92aW5j
ZW50LXZhbGVudGluL3Blbi9XTlZHVmpLLzhjMWJhYzA3MWY5MWI2N2Y1MTUxNmE0ZDJiZjMyNzZi
Ij5UZXN0IGJ5IFZpbmNlbnQgVmFsZW50aW48L2E+PC9wPgogICAgPGRpdiBjbGFzcz0iY2xhbXAi
IHN0eWxlPSItLWNsYW1wOiA0Ij4KICAgICAgICA8cD4xLiBMb3JlbSBpcHN1bS48L3A+CiAgICAg
ICAgPHA+Mi4gTG9yZW0gaXBzdW0uPC9wPgogICAgICAgIDxvbCBzdGFydD0iMyI+CiAgICAgICAg
ICAgIDxsaT5Mb3JlbTwvbGk+CiAgICAgICAgICAgIDxsaT5JcHN1bTwvbGk+CiAgICAgICAgICAg
IDxsaT5Eb2xvcjwvbGk+CiAgICAgICAgICAgIDxsaT5TaXQgYW1ldDwvbGk+CiAgICAgICAgPC9v
bD4KICAgIDwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJjbGFtcCIgc3R5bGU9Ii0tY2xhbXA6
IDQiPgogICAgICAgIDxwPgogICAgICAgICAgICAxLiBMb3JlbSBpcHN1bSwgZG9sb3Igc2l0IGFt
ZXQgY29uc2VjdGV0dXI8YnIgLz4KICAgICAgICAgICAgMi4gYWRpcGlzaWNpbmcgZWxpdC4gVGVt
cG9yZSwgcXVpYSBhdHF1ZS48YnIgLz4KICAgICAgICAgICAgMy4gTGFib3Jpb3NhbSBwZXJmZXJl
bmRpcyByZXB1ZGlhbmRhZSBxdWlkZW08YnIgLz4KICAgICAgICAgICAgNC4gaXBzYW0gb2ZmaWNp
aXMgdGVtcG9yZSBkaWduaXNzaW1vcyByZWN1c2FuZGFlPGJyIC8+CiAgICAgICAgICAgIDUuIG1p
bnVzIGltcGVkaXQsIHBlcnNwaWNpYXRpcyByZXJ1bSBlYXJ1bSBzZXF1aSw8YnIgLz4KICAgICAg
ICAgICAgNi4gdm9sdXB0YXR1bSwgcmVwZWxsYXQgaWQgZGVsZW5pdGkuCiAgICAgICAgPC9wPgog
ICAgPC9kaXY+CjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>472880</attachid>
            <date>2024-10-09 07:12:08 -0700</date>
            <delta_ts>2024-10-09 07:12:08 -0700</delta_ts>
            <desc>testcase-not-lists</desc>
            <filename>webkit-281136.html</filename>
            <type>text/html</type>
            <size>1947</size>
            <attacher name="Renaud Chaput">renchap</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+VGVzdGNhc2UgZm9yIGxpbmUt
Y2xhbXAgaW5zaWRlIGxpc3RzPC90aXRsZT4KICAgIDxzdHlsZT4uY2xhbXAgewogICAgICAgIGRp
c3BsYXk6IC13ZWJraXQtYm94OwogICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7
CiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiB2YXIoLS1jbGFtcCk7CiAgICAgICAgb3ZlcmZs
b3c6IGhpZGRlbjsKCiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50OwogICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkOwogICAgICAgIG1hcmdpbjogMXJlbTsKICAgIH0KICAgIDwvc3R5bGU+CjwvaGVh
ZD4KPGJvZHk+CiAgICA8cD48YSBocmVmPSJodHRwczovL2NvZGVwZW4uaW8vdmluY2VudC12YWxl
bnRpbi9wZW4vV05WR1ZqSy84YzFiYWMwNzFmOTFiNjdmNTE1MTZhNGQyYmYzMjc2YiI+VGVzdCBi
eSBWaW5jZW50IFZhbGVudGluPC9hPjwvcD4KICAgIDxkaXYgY2xhc3M9ImNsYW1wIiBzdHlsZT0i
LS1jbGFtcDogNCI+CiAgICAgICAgPHA+MS4gTG9yZW0gaXBzdW0uPC9wPgogICAgICAgIDxwPjIu
IExvcmVtIGlwc3VtLjwvcD4KICAgICAgICA8b2wgc3RhcnQ9IjMiPgogICAgICAgICAgICA8bGk+
TG9yZW08L2xpPgogICAgICAgICAgICA8bGk+SXBzdW08L2xpPgogICAgICAgICAgICA8bGk+RG9s
b3I8L2xpPgogICAgICAgICAgICA8bGk+U2l0IGFtZXQ8L2xpPgogICAgICAgIDwvb2w+CiAgICA8
L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJjbGFtcCIgc3R5bGU9Ii0tY2xhbXA6IDQiPgogICAgICAg
IDxwPgogICAgICAgICAgICAxLiBMb3JlbSBpcHN1bSwgZG9sb3Igc2l0IGFtZXQgY29uc2VjdGV0
dXI8YnIgLz4KICAgICAgICAgICAgMi4gYWRpcGlzaWNpbmcgZWxpdC4gVGVtcG9yZSwgcXVpYSBh
dHF1ZS48YnIgLz4KICAgICAgICAgICAgMy4gTGFib3Jpb3NhbSBwZXJmZXJlbmRpcyByZXB1ZGlh
bmRhZSBxdWlkZW08YnIgLz4KICAgICAgICAgICAgNC4gaXBzYW0gb2ZmaWNpaXMgdGVtcG9yZSBk
aWduaXNzaW1vcyByZWN1c2FuZGFlPGJyIC8+CiAgICAgICAgICAgIDUuIG1pbnVzIGltcGVkaXQs
IHBlcnNwaWNpYXRpcyByZXJ1bSBlYXJ1bSBzZXF1aSw8YnIgLz4KICAgICAgICAgICAgNi4gdm9s
dXB0YXR1bSwgcmVwZWxsYXQgaWQgZGVsZW5pdGkuCiAgICAgICAgPC9wPgogICAgPC9kaXY+CiAg
ICA8ZGl2IGNsYXNzPSJjbGFtcCIgc3R5bGU9Ii0tY2xhbXA6IDQiPgogICAgICA8cD4xLiBMb3Jl
bSBpcHN1bSwgZG9sb3Igc2l0IGFtZXQgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gVGVt
cG9yZSwgcXVpYSBhdHF1ZS48L3A+CiAgICAgIDxwPjIuIExvcmVtIGlwc3VtLCBkb2xvciBzaXQg
YW1ldCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBUZW1wb3JlLCBxdWlhIGF0cXVlLjwv
cD4KICAgICAgPHA+My4gTG9yZW0gaXBzdW0sIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQuIFRlbXBvcmUsIHF1aWEgYXRxdWUuPC9wPgogICAgICA8cD40LiBMb3Jl
bSBpcHN1bSwgZG9sb3Igc2l0IGFtZXQgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gVGVt
cG9yZSwgcXVpYSBhdHF1ZS48L3A+CiAgICAgIDxwPjUuIExvcmVtIGlwc3VtLCBkb2xvciBzaXQg
YW1ldCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBUZW1wb3JlLCBxdWlhIGF0cXVlLjwv
cD4KICAgICAgPHA+Ni4gTG9yZW0gaXBzdW0sIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGFk
aXBpc2ljaW5nIGVsaXQuIFRlbXBvcmUsIHF1aWEgYXRxdWUuPC9wPgogIDwvZGl2Pgo8L2JvZHk+
CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>472881</attachid>
            <date>2024-10-09 08:23:13 -0700</date>
            <delta_ts>2024-10-09 08:23:13 -0700</delta_ts>
            <desc>Test reduction</desc>
            <filename>281136.html</filename>
            <type>text/html</type>
            <size>302</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">PHN0eWxlPgouY2xhbXAgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIC13ZWJraXQtYm94LW9y
aWVudDogdmVydGljYWw7CiAgLXdlYmtpdC1saW5lLWNsYW1wOiAxOwogIG92ZXJmbG93OiBoaWRk
ZW47CiAgb3V0bGluZTogMXB4IHNvbGlkOwogIGZvbnQtZmFtaWx5OiBNb25vc3BhY2U7CiAgZm9u
dC1zaXplOiAxMnB4OwogIHdpZHRoOiA1MDBweDsKfQo8L3N0eWxlPgo8ZGl2IGNsYXNzPSJjbGFt
cCI+PGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+PGRpdj5zZWNvbmQg
bGluZTwvZGl2PjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473452</attachid>
            <date>2024-12-03 19:08:07 -0800</date>
            <delta_ts>2024-12-04 06:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-281136-20241203190806.patch</filename>
            <type>text/plain</type>
            <size>15125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiMTlkOGVhODcyOTBmYzYxNTlhNDBkNzQyOTEyMzA3M2E5ODI4NDdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMyBEZWMgMjAyNCAxODoxMDo0OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHdlYmtpdC1s
aW5lLWNsYW1wIGluIG5lc3RlZCBjb250ZXh0IGRvZXMgbm90IHJlbmRlciBlbGxpcHNpcwogd2hl
biBpbmxpbmUgY29udGVudCBmaXRzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgxMTM2CiA8cmRhcjovL3Byb2JsZW0vMTM3NTg1OTczPgoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgpXZSBmYWlsIHRvIHB1dCBlbGxpcHNpcyBvbiB0aGUgY2xhbXBlZCBsaW5l
IHdoZW4gaXQgaXMgdGhlIGxhc3QgZm9ybWF0dGVkIGxpbmUgZm9sbG93ZWQgYnkKYSBzaWJsaW5n
IElGQyB3aXRoIG1vcmUgaW5saW5lIGNvbnRlbnQuCmUuZy4KPGRpdiBjbGFtcD0xPgogPGRpdj5M
YXN0IGZvcm1hdHRlZCBsaW5lIGluIHRoaXMgSUZDIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBCRkMu
IE5lZWRzIGVsbGlwc2lzLjwvZGl2PgogPGRpdj50aGlzIGxpbmUgaXMgY2xhbXBlZDwvZGl2Pgo8
L2Rpdj4KCl4gaW4gdGhpcyBjYXNlIGVsbGlwc2lzIHNob3VsZCBnbyB0byB0aGUgZW5kIG9mICJs
YXN0IGZvcm1hdHRlZCBsaW5lIiwgZXZlbiB0aG91Z2ggaXQgZG9lcwpub3Qgb3ZlcmZsb3cgdGhl
IGNvbnRhaW5lciBpbiBibG9jayBkaXJlY3Rpb24sIGJ1dCBpdCBpcyBjb25zaWRlcmVkICJvdmVy
Zmxvd2luZyIgdGhlIHBhcmVudCBCRkMuCgpJbiB0aGlzIGNoYW5nZSwgd2Ugc3RhcnQgcHV0dGlu
ZyBlbGxpcHNpcyBvbiBzdWNoIGxhc3QgZm9ybWF0dGVkIGxpbmVzIGFuZCBpZiB0aGV5IHR1cm4g
b3V0IHRvIGJlIHRydWx5IHRoZSBsYXN0IGxpbmUgaW4gdGhlIGNsYW1wIGNvbnRleHQgKHdoZXJl
IHdlIHNob3VsZCBOT1QgcHV0IGVsbGlwc2lzKSB3ZSBzaW1wbHkgcmVtb3ZlIHRoZSBlbGxpcHNp
cyBieSBydW5uaW5nIGEgbm8tY2xhbXAgbGF5b3V0Lgo8ZGl2IGNsYW1wPTE+CiA8ZGl2Pkxhc3Qg
Zm9ybWF0dGVkIGxpbmUgaW4gdGhpcyBJRkMgYW5kIGluIHRoZSBwYXJlbnQgQkZDIGFzIHdlbGwu
IE5vIGVsbGlwc2lzIGhlcmUuPC9kaXY+CjwvZGl2PgoKKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJm
bG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0
ZWQtbGluZS5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGlu
ZUNvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6dHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRydW5jYXRpb24pOgooV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRlZCk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CihXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGlyZWN0
aW9uT25MYXN0Rm9ybWF0dGVkTGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNv
cmU6OmJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUpOgooV2ViQ29yZTo6UmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6Ci0tLQogLi4uL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgIDIgKy0KIC4uLi9kaXNwbGF5L0lu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5oIHwgIDIgKy0KIC4uLi9pbmxpbmUvTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCAgICB8IDEzICsrKysKIC4uLi9pbmxpbmUvTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggICAgICB8ICAxICsKIC4uLi9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCB8IDI2ICsrKysrKysKIC4uLmNsYW1wLW9uLWxhc3Qt
Zm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbCB8IDE1ICsrKysKIC4uLi9saW5lLWNsYW1wLW9u
LWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbCAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysKIDgg
ZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3Qt
Zm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLmh0bWwK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggY2E0NDMwZjEzOTZmLi4xYjNiNjIzMDVlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQxMCw3ICs0MTAsNyBAQCBJbmxpbmVS
ZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGlu
ZUNvbnRlbnQoY29uc3QgTAogICAgIGF1dG8gYm94ZXMgPSBJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIgeyAqdGhpcywgY29uc3RyYWludHMsIGxpbmVCb3gsIGRpc3BsYXlMaW5lIH0uYnVpbGQo
bGluZUxheW91dFJlc3VsdCk7CiAKICAgICBhdXRvIHRydW5jYXRpb25Qb2xpY3kgPSBJbmxpbmVG
b3JtYXR0aW5nVXRpbHM6OmxpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5KHJvb3QoKS5zdHlsZSgp
LCBudW1iZXJPZkxpbmVzV2l0aElubGluZUNvbnRlbnQsIG51bWJlck9mVmlzaWJsZUxpbmVzQWxs
b3dlZCwgIWxpbmVMYXlvdXRSZXN1bHQuaW5saW5lQ29udGVudC5pc0VtcHR5KCkpOwotICAgIElu
bGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKHRydW5jYXRpb25Q
b2xpY3ksIGRpc3BsYXlMaW5lLCBib3hlcywgbGluZUxheW91dFJlc3VsdC5pc0ZpcnN0TGFzdC5p
c0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQsIGlzTGVnYWN5TGluZUNsYW1wKTsKKyAgICBJbmxp
bmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRlZCh0cnVuY2F0aW9uUG9s
aWN5LCBkaXNwbGF5TGluZSwgYm94ZXMsIGlzTGVnYWN5TGluZUNsYW1wKTsKICAgICBhdXRvIGxp
bmVIYXNMZWdhY3lMaW5lQ2xhbXAgPSBpc0xlZ2FjeUxpbmVDbGFtcCAmJiBkaXNwbGF5TGluZS5o
YXNFbGxpcHNpcygpICYmIHRydW5jYXRpb25Qb2xpY3kgPT0gTGluZUVuZGluZ1RydW5jYXRpb25Q
b2xpY3k6OldoZW5Db250ZW50T3ZlcmZsb3dzSW5CbG9ja0RpcmVjdGlvbjsKICAgICBpZiAobGlu
ZUhhc0xlZ2FjeUxpbmVDbGFtcCkKICAgICAgICAgbGF5b3V0U3RhdGUoKS5zZXRMZWdhY3lDbGFt
cGVkTGluZUluZGV4KGxpbmVCb3gubGluZUluZGV4KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5TGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuY3BwCmluZGV4IDBk
OTgwZmExODBkNi4uMzc4ZTIyMTM2M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVp
bGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuY3BwCkBAIC0yODQsNyArMjg0
LDcgQEAgc3RhdGljIGZsb2F0IHRydW5jYXRlT3ZlcmZsb3dpbmdEaXNwbGF5Qm94ZXMoSW5saW5l
RGlzcGxheTo6Qm94ZXMmIGJveGVzLCBzaXplX3QKICAgICByZXR1cm4gdHJ1bmNhdGVMZWZ0LnZh
bHVlX29yKGxlZnQoYm94ZXMuZmlyc3QoKSkpIC0gZWxsaXBzaXNXaWR0aDsKIH0KIAotc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiB0cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVy
VHJ1bmNhdGlvbihMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSBsaW5lRW5kaW5nVHJ1bmNhdGlv
blBvbGljeSwgU3RyaW5nIGVsbGlwc2lzVGV4dCwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYg
ZGlzcGxheUxpbmUsIElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGJvb2wgaXNM
YXN0TGluZVdpdGhJbmxpbmVDb250ZW50KQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0
PiB0cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVyVHJ1bmNhdGlvbihMaW5lRW5kaW5nVHJ1
bmNhdGlvblBvbGljeSBsaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSwgU3RyaW5nIGVsbGlwc2lz
VGV4dCwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYgZGlzcGxheUxpbmUsIElubGluZURpc3Bs
YXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMpCiB7CiAgICAgQVNTRVJUKGxpbmVFbmRpbmdUcnVuY2F0
aW9uUG9saWN5ICE9IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpOb1RydW5jYXRpb24pOwog
ICAgIGlmIChkaXNwbGF5Qm94ZXMuaXNFbXB0eSgpKQpAQCAtMjk0LDcgKzI5NCw5IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gdHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRl
clRydW5jYXRpb24oTGluZUVuCiAgICAgICAgIGlmIChsaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGlj
eSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6V2hlbkNvbnRlbnRPdmVyZmxvd3NJbklu
bGluZURpcmVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TGluZS5jb250ZW50TG9n
aWNhbFdpZHRoKCkgJiYgZGlzcGxheUxpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpID4gZGlzcGxh
eUxpbmUubGluZUJveExvZ2ljYWxSZWN0KCkud2lkdGgoKTsKICAgICAgICAgQVNTRVJUKGxpbmVF
bmRpbmdUcnVuY2F0aW9uUG9saWN5ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpXaGVu
Q29udGVudE92ZXJmbG93c0luQmxvY2tEaXJlY3Rpb24pOwotICAgICAgICByZXR1cm4gIWlzTGFz
dExpbmVXaXRoSW5saW5lQ29udGVudDsKKyAgICAgICAgLy8gV2UgY29uc2lkZXIgZXZlbiB0aGUg
bGFzdCBsaW5lIGFzIG92ZXJmbG93IGluIGJsb2NrIGRpcmVjdGlvbiBkdWUgdG8gdGhlIHByb3Bh
Z2F0ZWQgbmF0dXJlIG9mIGxpbmUtY2xhbXAgd2hlcmUgY2xhbXBpbmcgaXMgc2hhcmVkCisgICAg
ICAgIC8vIGFjcm9zcyBzaWJsaW5nIElGQ3MuIElmIHRoaXMgSUZDIGhhcyB0aGUgbGFzdCBmb3Jt
YXR0ZWQgbGluZSAoaW4gd2hpY2ggY2FzZSB0aGUgbGFzdCBsaW5lIG5lZWRzIG5vIGVsbGlwc2lz
KSB0aGUgcGFyZW50IEJGQyByZWlzc3VlcyBhIGxheW91dCB3aXRoIG5vIGNsYW1waW5nLgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9OwogICAgIGlmICghbmVlZHNFbGxpcHNpcygpKQogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtNDYwLDcgKzQ2Miw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUxp
bmVCdWlsZGVyOjphZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2FibGUo
Y29uCiAgICAgY2xhbXBlZExpbmUuc2V0SGFzQ29udGVudEFmdGVyRWxsaXBzaXNCb3goKTsKIH0K
IAotdm9pZCBJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRlZChM
aW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSB0cnVuY2F0aW9uUG9saWN5LCBJbmxpbmVEaXNwbGF5
OjpMaW5lJiBkaXNwbGF5TGluZSwgSW5saW5lRGlzcGxheTo6Qm94ZXMmIGRpc3BsYXlCb3hlcywg
Ym9vbCBpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQsIGJvb2wgaXNMZWdhY3lMaW5lQ2xhbXAp
Cit2b2lkIElubGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKExp
bmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5IHRydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6
OkxpbmUmIGRpc3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYgZGlzcGxheUJveGVzLCBi
b29sIGlzTGVnYWN5TGluZUNsYW1wKQogewogICAgIGlmICh0cnVuY2F0aW9uUG9saWN5ID09IExp
bmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpOb1RydW5jYXRpb24gfHwgIWRpc3BsYXlCb3hlcy5z
aXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4MSw3ICs0ODMsNyBAQCB2b2lkIElubGluZURp
c3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKExpbmVFbmRpbmdUcnVuY2F0
aW9uUG9saWN5CiAgICAgaWYgKGVsbGlwc2lzVGV4dC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKGF1dG8gZWxsaXBzaXNSZWN0ID0gdHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJl
Y3RBZnRlclRydW5jYXRpb24odHJ1bmNhdGlvblBvbGljeSwgZWxsaXBzaXNUZXh0LCBkaXNwbGF5
TGluZSwgZGlzcGxheUJveGVzLCBpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQpKQorICAgIGlm
IChhdXRvIGVsbGlwc2lzUmVjdCA9IHRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0ZXJUcnVu
Y2F0aW9uKHRydW5jYXRpb25Qb2xpY3ksIGVsbGlwc2lzVGV4dCwgZGlzcGxheUxpbmUsIGRpc3Bs
YXlCb3hlcykpCiAgICAgICAgIGRpc3BsYXlMaW5lLnNldEVsbGlwc2lzKHsgdHJ1bmNhdGlvblBv
bGljeSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6V2hlbkNvbnRlbnRPdmVyZmxvd3NJ
bklubGluZURpcmVjdGlvbiA/IElubGluZURpc3BsYXk6OkxpbmU6OkVsbGlwc2lzOjpUeXBlOjpJ
bmxpbmUgOiBJbmxpbmVEaXNwbGF5OjpMaW5lOjpFbGxpcHNpczo6VHlwZTo6QmxvY2ssICplbGxp
cHNpc1JlY3QsIGVsbGlwc2lzVGV4dCB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
TGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmgKaW5kZXggZGY2OTE1MGNm
OTA5Li4wMTNiMzY1YTE0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6
CiAKICAgICBJbmxpbmVEaXNwbGF5OjpMaW5lIGJ1aWxkKGNvbnN0IExpbmVMYXlvdXRSZXN1bHQm
LCBjb25zdCBMaW5lQm94JiwgYm9vbCBsaW5lSXNGdWxseVRydW5jYXRlZEluQmxvY2tEaXJlY3Rp
b24pIGNvbnN0OwogCi0gICAgc3RhdGljIHZvaWQgYXBwbHlFbGxpcHNpc0lmTmVlZGVkKExpbmVF
bmRpbmdUcnVuY2F0aW9uUG9saWN5LCBJbmxpbmVEaXNwbGF5OjpMaW5lJiwgSW5saW5lRGlzcGxh
eTo6Qm94ZXMmLCBib29sIGlzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCwgYm9vbCBpc0xlZ2Fj
eUxpbmVDbGFtcCk7CisgICAgc3RhdGljIHZvaWQgYXBwbHlFbGxpcHNpc0lmTmVlZGVkKExpbmVF
bmRpbmdUcnVuY2F0aW9uUG9saWN5LCBJbmxpbmVEaXNwbGF5OjpMaW5lJiwgSW5saW5lRGlzcGxh
eTo6Qm94ZXMmLCBib29sIGlzTGVnYWN5TGluZUNsYW1wKTsKICAgICBzdGF0aWMgdm9pZCBhZGRM
ZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2FibGUoY29uc3QgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQmLCBjb25zdCBJbmxpbmVMYXlvdXRTdGF0ZSYsIElubGluZURpc3BsYXk6
OkNvbnRlbnQmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcAppbmRleCBhYWYwNmVmMDY5NmQuLmExNDAwMmIzYTE1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtNzM4LDYgKzczOCwx
OSBAQCBib29sIExpbmVMYXlvdXQ6OmlzUGFnaW5hdGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9p
bmxpbmVDb250ZW50ICYmIG1faW5saW5lQ29udGVudC0+aXNQYWdpbmF0ZWQ7CiB9CiAKK2Jvb2wg
TGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGlyZWN0aW9uT25MYXN0Rm9ybWF0dGVkTGlu
ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2lubGluZUNvbnRlbnQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGF1dG8mIGxpbmVzID0gbV9pbmxpbmVDb250ZW50LT5kaXNwbGF5Q29udGVu
dCgpLmxpbmVzOworICAgIGlmIChsaW5lcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gbGFzdExpbmVFbGxpcHNpcyA9IGxpbmVzLmxhc3QoKS5lbGxpcHNpcygp
OworICAgIHJldHVybiBsYXN0TGluZUVsbGlwc2lzICYmIGxhc3RMaW5lRWxsaXBzaXMtPnR5cGUg
PT0gSW5saW5lRGlzcGxheTo6TGluZTo6RWxsaXBzaXM6OlR5cGU6OkJsb2NrOworfQorCiBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IExpbmVMYXlvdXQ6OmNsYW1wZWRDb250ZW50TG9naWNhbEhl
aWdodCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lubGluZUNvbnRlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCBkMDYzMzY1YWE4YmUuLjk5YTkwYWQ4
YzhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGlu
ZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0x
MDMsNiArMTAzLDcgQEAgcHVibGljOgogCiAgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEhl
aWdodCgpIGNvbnN0OwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY2xhbXBlZENvbnRl
bnRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CisgICAgYm9vbCBoYXNFbGxpcHNpc0luQmxvY2tEaXJl
Y3Rpb25Pbkxhc3RGb3JtYXR0ZWRMaW5lKCkgY29uc3Q7CiAgICAgYm9vbCBjb250YWlucyhjb25z
dCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3Q7CiAKICAgICBib29sIGlzUGFnaW5hdGVk
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDUyYWJiYzYwNWI2NC4uNWEyY2NiZGQ0ZDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiRm9udENh
c2NhZGUuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvckxpbmVCb3guaCIKKyNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIu
aCIKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveElubGlu
ZXMuaCIKQEAgLTk2Miw2ICs5NjMsMjAgQEAgc3RhdGljIHNpemVfdCBsaW5lQ291bnRGb3IoY29u
c3QgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zsb3cpCiAgICAgcmV0dXJuIGNvdW50OwogfQogCitz
dGF0aWMgUmVuZGVyQmxvY2tGbG93KiBibG9ja0NvbnRhaW5lckZvckxhc3RGb3JtYXR0ZWRMaW5l
KGNvbnN0IFJlbmRlckJsb2NrJiBlbmNsb3NpbmdCbG9ja0NvbnRhaW5lcikKK3sKKyAgICBmb3Ig
KGF1dG8qIGNoaWxkID0gZW5jbG9zaW5nQmxvY2tDb250YWluZXIubGFzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgeworICAgICAgICBDaGVja2VkUHRy
IGJsb2NrQ29udGFpbmVyID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKmNoaWxk
KTsKKyAgICAgICAgaWYgKCFibG9ja0NvbnRhaW5lcikKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBpZiAoYXV0byogZGVzY2VuZGFudFJvb3QgPSBibG9ja0NvbnRhaW5lckZvckxhc3RG
b3JtYXR0ZWRMaW5lKCpibG9ja0NvbnRhaW5lcikpCisgICAgICAgICAgICByZXR1cm4gZGVzY2Vu
ZGFudFJvb3Q7CisgICAgICAgIGlmIChibG9ja0NvbnRhaW5lci0+aGFzTGluZXMoKSkKKyAgICAg
ICAgICAgIHJldHVybiBibG9ja0NvbnRhaW5lci5nZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIHsg
fTsKK30KKwogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpDbGFtcGVkQ29udGVudCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYg
aXRlcmF0b3IsIGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIHsKICAgICBhdXRvIGluaXRpYWxpemUg
PSBbJl0gewpAQCAtMTAxNSw2ICsxMDMwLDE3IEBAIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6Q2xhbXBlZENvbnRlbnQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpCiAg
ICAgICAgIGNoaWxkLT5tYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKTsKICAgICAg
ICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAgICAgfQorICAgIGlmIChhdXRvKiBsYXN0Um9v
dCA9IGJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUoKnRoaXMpKSB7CisgICAgICAg
IGlmIChhdXRvKiBpbmxpbmVMYXlvdXQgPSBsYXN0Um9vdC0+aW5saW5lTGF5b3V0KCk7IGlubGlu
ZUxheW91dCAmJiBpbmxpbmVMYXlvdXQtPmhhc0VsbGlwc2lzSW5CbG9ja0RpcmVjdGlvbk9uTGFz
dEZvcm1hdHRlZExpbmUoKSkgeworICAgICAgICAgICAgYXV0byBjdXJyZW50TGluZUNsYW1wID0g
bGF5b3V0U3RhdGUubGVnYWN5TGluZUNsYW1wKCk7CisKKyAgICAgICAgICAgIGxheW91dFN0YXRl
LnNldExlZ2FjeUxpbmVDbGFtcCh7IH0pOworICAgICAgICAgICAgbGFzdFJvb3QtPnNldENoaWxk
TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGxhc3RSb290LT5sYXlvdXRJ
Zk5lZWRlZCgpOworCisgICAgICAgICAgICBsYXlvdXRTdGF0ZS5zZXRMZWdhY3lMaW5lQ2xhbXAo
Y3VycmVudExpbmVDbGFtcCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICBhdXRvIGxpbmVDbGFt
cCA9ICpsYXlvdXRTdGF0ZS5sZWdhY3lMaW5lQ2xhbXAoKTsKICAgICBpZiAoIWxpbmVDbGFtcC5j
bGFtcGVkQ29udGVudExvZ2ljYWxIZWlnaHQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0
ZWQtbGluZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uZTA1YjAzY2RkNWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDE1IEBACis8c3R5bGU+CitkaXYgeworICBmb250LWZhbWlseTogTW9ub3NwYWNl
OworICBmb250LXNpemU6IDEycHg7CisgIG1hcmdpbi1ib3R0b206IDEwcHg7Cit9Cis8L3N0eWxl
PgorPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIGRvZXMgTk9UIHNob3c8L2Rpdj4KKzxk
aXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBB
U1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5QQVNTIGlm
IHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+UEFTUyBpZiB0cmFp
bGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBBU1MgaWYgdHJhaWxpbmcg
ZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlw
c2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBz
aG93cyYjeDIwMjY7PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxNjQxNmQ3N2NhZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZv
cm1hdHRlZC1saW5lLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPHN0eWxlPgorLmNsYW1wIHsKKyAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7Cisg
IC13ZWJraXQtbGluZS1jbGFtcDogMTsKKyAgZm9udC1mYW1pbHk6IE1vbm9zcGFjZTsKKyAgZm9u
dC1zaXplOiAxMnB4OworICBvdmVyZmxvdzogaGlkZGVuOworICBtYXJnaW4tYm90dG9tOiAxMHB4
OworfQorPC9zdHlsZT4KKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj5QQVNTIGlmIHRyYWls
aW5nIGVsbGlwc2lzIGRvZXMgTk9UIHNob3c8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJj
bGFtcCI+CisgIDxkaXY+PGRpdj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPlBB
U1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3M8L2Rpdj48L2Rpdj48L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+PGRpdj48ZGl2PlBBU1MgaWYgdHJhaWxpbmcg
ZWxsaXBzaXMgc2hvd3M8L2Rpdj48L2Rpdj48L2Rpdj4KKyAgPGRpdj5zZWNvbmQgbGluZTwvZGl2
PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj48ZGl2PjxkaXYgc3R5bGU9
ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMDBweDsiPlBBU1MgaWYgdHJhaWxpbmcg
ZWxsaXBzaXMgc2hvd3M8L2Rpdj48L2Rpdj48L2Rpdj4KKyAgPGRpdj5zZWNvbmQgbGluZTwvZGl2
PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj5QQVNTIGlmIHRyYWlsaW5n
IGVsbGlwc2lzIHNob3dzPC9kaXY+CisgIDxkaXY+CisgICAgPGRpdj4KKyAgICAgIDxkaXY+c2Vj
b25kIGxpbmU8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFz
cz0iY2xhbXAiPgorICA8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3M8YnI+c2Vj
b25kPGJyPnRoaXJkIGxpbmU8L2Rpdj4KKyAgPGRpdj4KKyAgICA8ZGl2PgorICAgICAgPGRpdj5m
b3J0aCBsaW5lPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xh
c3M9ImNsYW1wIj4KKyAgPGRpdj48L2Rpdj4KKyAgPGRpdj48L2Rpdj4KKyAgPGRpdj5QQVNTIGlm
IHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+CisgIDxkaXY+CisgICAgPGRpdj4KKyAgICAg
IDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2PjwvZGl2PgorICA8ZGl2PjwvZGl2PgorICA8ZGl2
PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3M8L2Rpdj4KKyAgPGRpdj48L2Rpdj4KKyAg
PGRpdj4KKyAgICA8ZGl2PgorICAgICAgPGRpdj5zZWNvbmQgbGluZTwvZGl2PgorICAgIDwvZGl2
PgorICA8L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473458</attachid>
            <date>2024-12-04 06:04:38 -0800</date>
            <delta_ts>2024-12-05 16:37:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-281136-20241204060437.patch</filename>
            <type>text/plain</type>
            <size>16662</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4YzEzZTMwYzU1NTUwYWJlZjU4MWFhNmMyYTI5ZDg5MWU1ZTM1MDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMyBEZWMgMjAyNCAxODoxMDo0OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHdlYmtpdC1s
aW5lLWNsYW1wIGluIG5lc3RlZCBjb250ZXh0IGRvZXMgbm90IHJlbmRlciBlbGxpcHNpcwogd2hl
biBpbmxpbmUgY29udGVudCBmaXRzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgxMTM2CiA8cmRhcjovL3Byb2JsZW0vMTM3NTg1OTczPgoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgpXZSBmYWlsIHRvIHB1dCBlbGxpcHNpcyBvbiB0aGUgY2xhbXBlZCBsaW5l
IHdoZW4gaXQgaXMgdGhlIGxhc3QgZm9ybWF0dGVkIGxpbmUgZm9sbG93ZWQgYnkKYSBzaWJsaW5n
IElGQyB3aXRoIG1vcmUgaW5saW5lIGNvbnRlbnQuCmUuZy4KPGRpdiBjbGFtcD0xPgogPGRpdj5M
YXN0IGZvcm1hdHRlZCBsaW5lIGluIHRoaXMgSUZDIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBCRkMu
IE5lZWRzIGVsbGlwc2lzLjwvZGl2PgogPGRpdj50aGlzIGxpbmUgaXMgY2xhbXBlZDwvZGl2Pgo8
L2Rpdj4KCl4gaW4gdGhpcyBjYXNlIGVsbGlwc2lzIHNob3VsZCBnbyB0byB0aGUgZW5kIG9mICJs
YXN0IGZvcm1hdHRlZCBsaW5lIiwgZXZlbiB0aG91Z2ggaXQgZG9lcwpub3Qgb3ZlcmZsb3cgdGhl
IGNvbnRhaW5lciBpbiBibG9jayBkaXJlY3Rpb24sIGJ1dCBpdCBpcyBjb25zaWRlcmVkICJvdmVy
Zmxvd2luZyIgdGhlIHBhcmVudCBCRkMuCgpJbiB0aGlzIGNoYW5nZSwgd2Ugc3RhcnQgcHV0dGlu
ZyBlbGxpcHNpcyBvbiBzdWNoIGxhc3QgZm9ybWF0dGVkIGxpbmVzIGFuZCBpZiB0aGV5IHR1cm4g
b3V0IHRvIGJlIHRydWx5IHRoZSBsYXN0IGxpbmUgaW4gdGhlIGNsYW1wIGNvbnRleHQgKHdoZXJl
IHdlIHNob3VsZCBOT1QgcHV0IGVsbGlwc2lzKSB3ZSBzaW1wbHkgcmVtb3ZlIHRoZSBlbGxpcHNp
cyBieSBydW5uaW5nIGEgbm8tY2xhbXAgbGF5b3V0Lgo8ZGl2IGNsYW1wPTE+CiA8ZGl2Pkxhc3Qg
Zm9ybWF0dGVkIGxpbmUgaW4gdGhpcyBJRkMgYW5kIGluIHRoZSBwYXJlbnQgQkZDIGFzIHdlbGwu
IE5vIGVsbGlwc2lzIGhlcmUuPC9kaXY+CjwvZGl2PgoKKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJm
bG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0
ZWQtbGluZS5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGlu
ZUNvbnRlbnQpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6dHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRydW5jYXRpb24pOgooV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRlZCk6
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CihXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGlyZWN0
aW9uT25MYXN0Rm9ybWF0dGVkTGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdlYkNv
cmU6OmJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUpOgooV2ViQ29yZTo6UmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6Ci0tLQogLi4uL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgIDIgKy0KIC4uLi9kaXNwbGF5L0lu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgICAgICB8IDEwICstLQogLi4uL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5oIHwgIDIgKy0KIC4uLi9pbmxpbmUvTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCAgICB8IDE2ICsrKysrCiAuLi4vaW5saW5lL0xheW91
dEludGVncmF0aW9uTGluZUxheW91dC5oICAgICAgfCAgMSArCiAuLi4vcmVuZGVyaW5nL1JlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgfCAyNyArKysrKysrKwogLi4uY2xhbXAtY29sbGFw
c2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sIHwgIDIgKy0KIC4uLmFtcC1jaGFuZ2Utb24t
bmVzdGVkLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbCB8ICAyICstCiAuLi5jbGFtcC1vbi1sYXN0LWZv
cm1hdHRlZC1saW5lLWV4cGVjdGVkLmh0bWwgfCAxNSArKysrCiAuLi4vbGluZS1jbGFtcC1vbi1s
YXN0LWZvcm1hdHRlZC1saW5lLmh0bWwgICAgfCA2OSArKysrKysrKysrKysrKysrKysrCiAxMCBm
aWxlcyBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1m
b3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbAoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRl
eCBjYTQ0MzBmMTM5NmYuLjFiM2I2MjMwNWVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIElubGluZVJl
Y3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNyZWF0ZURpc3BsYXlDb250ZW50Rm9ySW5saW5l
Q29udGVudChjb25zdCBMCiAgICAgYXV0byBib3hlcyA9IElubGluZURpc3BsYXlDb250ZW50QnVp
bGRlciB7ICp0aGlzLCBjb25zdHJhaW50cywgbGluZUJveCwgZGlzcGxheUxpbmUgfS5idWlsZChs
aW5lTGF5b3V0UmVzdWx0KTsKIAogICAgIGF1dG8gdHJ1bmNhdGlvblBvbGljeSA9IElubGluZUZv
cm1hdHRpbmdVdGlsczo6bGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kocm9vdCgpLnN0eWxlKCks
IG51bWJlck9mTGluZXNXaXRoSW5saW5lQ29udGVudCwgbnVtYmVyT2ZWaXNpYmxlTGluZXNBbGxv
d2VkLCAhbGluZUxheW91dFJlc3VsdC5pbmxpbmVDb250ZW50LmlzRW1wdHkoKSk7Ci0gICAgSW5s
aW5lRGlzcGxheUxpbmVCdWlsZGVyOjphcHBseUVsbGlwc2lzSWZOZWVkZWQodHJ1bmNhdGlvblBv
bGljeSwgZGlzcGxheUxpbmUsIGJveGVzLCBsaW5lTGF5b3V0UmVzdWx0LmlzRmlyc3RMYXN0Lmlz
TGFzdExpbmVXaXRoSW5saW5lQ29udGVudCwgaXNMZWdhY3lMaW5lQ2xhbXApOworICAgIElubGlu
ZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKHRydW5jYXRpb25Qb2xp
Y3ksIGRpc3BsYXlMaW5lLCBib3hlcywgaXNMZWdhY3lMaW5lQ2xhbXApOwogICAgIGF1dG8gbGlu
ZUhhc0xlZ2FjeUxpbmVDbGFtcCA9IGlzTGVnYWN5TGluZUNsYW1wICYmIGRpc3BsYXlMaW5lLmhh
c0VsbGlwc2lzKCkgJiYgdHJ1bmNhdGlvblBvbGljeSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBv
bGljeTo6V2hlbkNvbnRlbnRPdmVyZmxvd3NJbkJsb2NrRGlyZWN0aW9uOwogICAgIGlmIChsaW5l
SGFzTGVnYWN5TGluZUNsYW1wKQogICAgICAgICBsYXlvdXRTdGF0ZSgpLnNldExlZ2FjeUNsYW1w
ZWRMaW5lSW5kZXgobGluZUJveC5saW5lSW5kZXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3Bs
YXlMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAKaW5kZXggMGQ5
ODBmYTE4MGQ2Li4zNzhlMjIxMzYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAKQEAgLTI4NCw3ICsyODQs
NyBAQCBzdGF0aWMgZmxvYXQgdHJ1bmNhdGVPdmVyZmxvd2luZ0Rpc3BsYXlCb3hlcyhJbmxpbmVE
aXNwbGF5OjpCb3hlcyYgYm94ZXMsIHNpemVfdAogICAgIHJldHVybiB0cnVuY2F0ZUxlZnQudmFs
dWVfb3IobGVmdChib3hlcy5maXJzdCgpKSkgLSBlbGxpcHNpc1dpZHRoOwogfQogCi1zdGF0aWMg
c3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0ZXJU
cnVuY2F0aW9uKExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5IGxpbmVFbmRpbmdUcnVuY2F0aW9u
UG9saWN5LCBTdHJpbmcgZWxsaXBzaXNUZXh0LCBjb25zdCBJbmxpbmVEaXNwbGF5OjpMaW5lJiBk
aXNwbGF5TGluZSwgSW5saW5lRGlzcGxheTo6Qm94ZXMmIGRpc3BsYXlCb3hlcywgYm9vbCBpc0xh
c3RMaW5lV2l0aElubGluZUNvbnRlbnQpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+
IHRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0ZXJUcnVuY2F0aW9uKExpbmVFbmRpbmdUcnVu
Y2F0aW9uUG9saWN5IGxpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5LCBTdHJpbmcgZWxsaXBzaXNU
ZXh0LCBjb25zdCBJbmxpbmVEaXNwbGF5OjpMaW5lJiBkaXNwbGF5TGluZSwgSW5saW5lRGlzcGxh
eTo6Qm94ZXMmIGRpc3BsYXlCb3hlcykKIHsKICAgICBBU1NFUlQobGluZUVuZGluZ1RydW5jYXRp
b25Qb2xpY3kgIT0gTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3k6Ok5vVHJ1bmNhdGlvbik7CiAg
ICAgaWYgKGRpc3BsYXlCb3hlcy5pc0VtcHR5KCkpCkBAIC0yOTQsNyArMjk0LDkgQEAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiB0cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVy
VHJ1bmNhdGlvbihMaW5lRW4KICAgICAgICAgaWYgKGxpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5
ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpXaGVuQ29udGVudE92ZXJmbG93c0luSW5s
aW5lRGlyZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlMaW5lLmNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSAmJiBkaXNwbGF5TGluZS5jb250ZW50TG9naWNhbFdpZHRoKCkgPiBkaXNwbGF5
TGluZS5saW5lQm94TG9naWNhbFJlY3QoKS53aWR0aCgpOwogICAgICAgICBBU1NFUlQobGluZUVu
ZGluZ1RydW5jYXRpb25Qb2xpY3kgPT0gTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3k6OldoZW5D
b250ZW50T3ZlcmZsb3dzSW5CbG9ja0RpcmVjdGlvbik7Ci0gICAgICAgIHJldHVybiAhaXNMYXN0
TGluZVdpdGhJbmxpbmVDb250ZW50OworICAgICAgICAvLyBXZSBjb25zaWRlciBldmVuIHRoZSBs
YXN0IGxpbmUgYXMgb3ZlcmZsb3cgaW4gYmxvY2sgZGlyZWN0aW9uIGR1ZSB0byB0aGUgcHJvcGFn
YXRlZCBuYXR1cmUgb2YgbGluZS1jbGFtcCB3aGVyZSBjbGFtcGluZyBpcyBzaGFyZWQKKyAgICAg
ICAgLy8gYWNyb3NzIHNpYmxpbmcgSUZDcy4gSWYgdGhpcyBJRkMgaGFzIHRoZSBsYXN0IGZvcm1h
dHRlZCBsaW5lIChpbiB3aGljaCBjYXNlIHRoZSBsYXN0IGxpbmUgbmVlZHMgbm8gZWxsaXBzaXMp
IHRoZSBwYXJlbnQgQkZDIHJlaXNzdWVzIGEgbGF5b3V0IHdpdGggbm8gY2xhbXBpbmcuCisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH07CiAgICAgaWYgKCFuZWVkc0VsbGlwc2lzKCkpCiAgICAg
ICAgIHJldHVybiB7IH07CkBAIC00NjAsNyArNDYyLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5TGlu
ZUJ1aWxkZXI6OmFkZExlZ2FjeUxpbmVDbGFtcFRyYWlsaW5nTGlua0JveElmQXBwbGljYWJsZShj
b24KICAgICBjbGFtcGVkTGluZS5zZXRIYXNDb250ZW50QWZ0ZXJFbGxpcHNpc0JveCgpOwogfQog
Ci12b2lkIElubGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKExp
bmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5IHRydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6
OkxpbmUmIGRpc3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYgZGlzcGxheUJveGVzLCBi
b29sIGlzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCwgYm9vbCBpc0xlZ2FjeUxpbmVDbGFtcCkK
K3ZvaWQgSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyOjphcHBseUVsbGlwc2lzSWZOZWVkZWQoTGlu
ZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kgdHJ1bmNhdGlvblBvbGljeSwgSW5saW5lRGlzcGxheTo6
TGluZSYgZGlzcGxheUxpbmUsIElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGJv
b2wgaXNMZWdhY3lMaW5lQ2xhbXApCiB7CiAgICAgaWYgKHRydW5jYXRpb25Qb2xpY3kgPT0gTGlu
ZUVuZGluZ1RydW5jYXRpb25Qb2xpY3k6Ok5vVHJ1bmNhdGlvbiB8fCAhZGlzcGxheUJveGVzLnNp
emUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDgxLDcgKzQ4Myw3IEBAIHZvaWQgSW5saW5lRGlz
cGxheUxpbmVCdWlsZGVyOjphcHBseUVsbGlwc2lzSWZOZWVkZWQoTGluZUVuZGluZ1RydW5jYXRp
b25Qb2xpY3kKICAgICBpZiAoZWxsaXBzaXNUZXh0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoYXV0byBlbGxpcHNpc1JlY3QgPSB0cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVj
dEFmdGVyVHJ1bmNhdGlvbih0cnVuY2F0aW9uUG9saWN5LCBlbGxpcHNpc1RleHQsIGRpc3BsYXlM
aW5lLCBkaXNwbGF5Qm94ZXMsIGlzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCkpCisgICAgaWYg
KGF1dG8gZWxsaXBzaXNSZWN0ID0gdHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRydW5j
YXRpb24odHJ1bmNhdGlvblBvbGljeSwgZWxsaXBzaXNUZXh0LCBkaXNwbGF5TGluZSwgZGlzcGxh
eUJveGVzKSkKICAgICAgICAgZGlzcGxheUxpbmUuc2V0RWxsaXBzaXMoeyB0cnVuY2F0aW9uUG9s
aWN5ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpXaGVuQ29udGVudE92ZXJmbG93c0lu
SW5saW5lRGlyZWN0aW9uID8gSW5saW5lRGlzcGxheTo6TGluZTo6RWxsaXBzaXM6OlR5cGU6Oklu
bGluZSA6IElubGluZURpc3BsYXk6OkxpbmU6OkVsbGlwc2lzOjpUeXBlOjpCbG9jaywgKmVsbGlw
c2lzUmVjdCwgZWxsaXBzaXNUZXh0IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlM
aW5lQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaAppbmRleCBkZjY5MTUwY2Y5
MDkuLjAxM2IzNjVhMTQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoK
IAogICAgIElubGluZURpc3BsYXk6OkxpbmUgYnVpbGQoY29uc3QgTGluZUxheW91dFJlc3VsdCYs
IGNvbnN0IExpbmVCb3gmLCBib29sIGxpbmVJc0Z1bGx5VHJ1bmNhdGVkSW5CbG9ja0RpcmVjdGlv
bikgY29uc3Q7CiAKLSAgICBzdGF0aWMgdm9pZCBhcHBseUVsbGlwc2lzSWZOZWVkZWQoTGluZUVu
ZGluZ1RydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6OkxpbmUmLCBJbmxpbmVEaXNwbGF5
OjpCb3hlcyYsIGJvb2wgaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50LCBib29sIGlzTGVnYWN5
TGluZUNsYW1wKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseUVsbGlwc2lzSWZOZWVkZWQoTGluZUVu
ZGluZ1RydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6OkxpbmUmLCBJbmxpbmVEaXNwbGF5
OjpCb3hlcyYsIGJvb2wgaXNMZWdhY3lMaW5lQ2xhbXApOwogICAgIHN0YXRpYyB2b2lkIGFkZExl
Z2FjeUxpbmVDbGFtcFRyYWlsaW5nTGlua0JveElmQXBwbGljYWJsZShjb25zdCBJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCYsIGNvbnN0IElubGluZUxheW91dFN0YXRlJiwgSW5saW5lRGlzcGxheTo6
Q29udGVudCYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwCmluZGV4IGFhZjA2ZWYwNjk2ZC4uZTkyNGQ1NmMwYWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0
aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC03MzgsNiArNzM4LDIy
IEBAIGJvb2wgTGluZUxheW91dDo6aXNQYWdpbmF0ZWQoKSBjb25zdAogICAgIHJldHVybiBtX2lu
bGluZUNvbnRlbnQgJiYgbV9pbmxpbmVDb250ZW50LT5pc1BhZ2luYXRlZDsKIH0KIAorYm9vbCBM
aW5lTGF5b3V0OjpoYXNFbGxpcHNpc0luQmxvY2tEaXJlY3Rpb25Pbkxhc3RGb3JtYXR0ZWRMaW5l
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1faW5saW5lQ29udGVudCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgZm9yIChhdXRvJiBsaW5lIDogbWFrZVJldmVyc2VkUmFuZ2UobV9pbmxpbmVD
b250ZW50LT5kaXNwbGF5Q29udGVudCgpLmxpbmVzKSkgeworICAgICAgICBpZiAobGluZS5ib3hD
b3VudCgpID09IDEpIHsKKyAgICAgICAgICAgIC8vIE91dC1vZi1mbG93IGNvbnRlbnQgY291bGQg
aW5pdGlhdGUgYSBsaW5lIHdpdGggbm8gaW5saW5lIGNvbnRlbnQuCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGxhc3RGb3JtYXR0ZWRMaW5lRWxsaXBzaXMg
PSBsaW5lLmVsbGlwc2lzKCk7CisgICAgICAgIHJldHVybiBsYXN0Rm9ybWF0dGVkTGluZUVsbGlw
c2lzICYmIGxhc3RGb3JtYXR0ZWRMaW5lRWxsaXBzaXMtPnR5cGUgPT0gSW5saW5lRGlzcGxheTo6
TGluZTo6RWxsaXBzaXM6OlR5cGU6OkJsb2NrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gTGluZUxheW91dDo6Y2xhbXBlZENvbnRlbnRM
b2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5saW5lQ29udGVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
aW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCmluZGV4IGQwNjMzNjVhYThiZS4u
OTlhOTBhZDhjOGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
LmgKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiAKICAgICBMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBjbGFt
cGVkQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICBib29sIGhhc0VsbGlwc2lzSW5C
bG9ja0RpcmVjdGlvbk9uTGFzdEZvcm1hdHRlZExpbmUoKSBjb25zdDsKICAgICBib29sIGNvbnRh
aW5zKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25zdDsKIAogICAgIGJvb2wgaXNQ
YWdpbmF0ZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggNTJhYmJjNjA1YjY0Li5hNjA5
OGZmYmJmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRl
ICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yTGluZUJveC5oIgorI2lu
Y2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIgogI2luY2x1ZGUgIkxheW91dFJl
cGFpbnRlci5oIgogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Qm94SW5saW5lcy5oIgpAQCAtOTYyLDYgKzk2MywyMCBAQCBzdGF0aWMgc2l6ZV90IGxpbmVDb3Vu
dEZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrRmxvdykKICAgICByZXR1cm4gY291bnQ7
CiB9CiAKK3N0YXRpYyBSZW5kZXJCbG9ja0Zsb3cqIGJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1h
dHRlZExpbmUoY29uc3QgUmVuZGVyQmxvY2smIGVuY2xvc2luZ0Jsb2NrQ29udGFpbmVyKQorewor
ICAgIGZvciAoYXV0byogY2hpbGQgPSBlbmNsb3NpbmdCbG9ja0NvbnRhaW5lci5sYXN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7CisgICAgICAgIENo
ZWNrZWRQdHIgYmxvY2tDb250YWluZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93
PigqY2hpbGQpOworICAgICAgICBpZiAoIWJsb2NrQ29udGFpbmVyKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIGlmIChhdXRvKiBkZXNjZW5kYW50Um9vdCA9IGJsb2NrQ29udGFpbmVy
Rm9yTGFzdEZvcm1hdHRlZExpbmUoKmJsb2NrQ29udGFpbmVyKSkKKyAgICAgICAgICAgIHJldHVy
biBkZXNjZW5kYW50Um9vdDsKKyAgICAgICAgaWYgKGJsb2NrQ29udGFpbmVyLT5oYXNMaW5lcygp
KQorICAgICAgICAgICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLmdldCgpOworICAgIH0KKyAgICBy
ZXR1cm4geyB9OworfQorCiBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OkNsYW1wZWRDb250
ZW50IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0
ZXJhdG9yJiBpdGVyYXRvciwgYm9vbCByZWxheW91dENoaWxkcmVuKQogewogICAgIGF1dG8gaW5p
dGlhbGl6ZSA9IFsmXSB7CkBAIC0xMDE1LDYgKzEwMzAsMTggQEAgUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94OjpDbGFtcGVkQ29udGVudCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFw
cGx5TGkKICAgICAgICAgY2hpbGQtPm1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgp
OwogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKICAgICB9CisgICAgaWYgKGF1dG8q
IGxhc3RSb290ID0gYmxvY2tDb250YWluZXJGb3JMYXN0Rm9ybWF0dGVkTGluZSgqdGhpcykpIHsK
KyAgICAgICAgaWYgKGF1dG8qIGlubGluZUxheW91dCA9IGxhc3RSb290LT5pbmxpbmVMYXlvdXQo
KTsgaW5saW5lTGF5b3V0ICYmIGlubGluZUxheW91dC0+aGFzRWxsaXBzaXNJbkJsb2NrRGlyZWN0
aW9uT25MYXN0Rm9ybWF0dGVkTGluZSgpKSB7CisgICAgICAgICAgICBhdXRvIGN1cnJlbnRMaW5l
Q2xhbXAgPSBsYXlvdXRTdGF0ZS5sZWdhY3lMaW5lQ2xhbXAoKTsKKworICAgICAgICAgICAgLy8g
TGV0IGxpbmUtY2xhbXAgbG9naWMgcnVuIGJ1dCBtYWtlIHN1cmUgbm8gY2xhbXBpbmcgaGFwcGVu
cyAoaXQncyBuZWVkZWQgdG8gbWFrZSBzdXJlIGNlcnRhaW4gZmVhdHVyZXMgYXJlIGRpc2FibGVk
IGxpa2UgZWxsaXBzaXMgaW4gaW5saW5lIGRpcmVjdGlvbikuCisgICAgICAgICAgICBsYXlvdXRT
dGF0ZS5zZXRMZWdhY3lMaW5lQ2xhbXAoUmVuZGVyTGF5b3V0U3RhdGU6OkxlZ2FjeUxpbmVDbGFt
cCB7IGlubGluZUxheW91dC0+bGluZUNvdW50KCkgKyAxLCB7IH0sIHsgfSwgeyB9IH0pOworICAg
ICAgICAgICAgbGFzdFJvb3QtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAg
ICAgICAgICAgIGxhc3RSb290LT5sYXlvdXRJZk5lZWRlZCgpOworCisgICAgICAgICAgICBsYXlv
dXRTdGF0ZS5zZXRMZWdhY3lMaW5lQ2xhbXAoY3VycmVudExpbmVDbGFtcCk7CisgICAgICAgIH0K
KyAgICB9CiAKICAgICBhdXRvIGxpbmVDbGFtcCA9ICpsYXlvdXRTdGF0ZS5sZWdhY3lMaW5lQ2xh
bXAoKTsKICAgICBpZiAoIWxpbmVDbGFtcC5jbGFtcGVkQ29udGVudExvZ2ljYWxIZWlnaHQpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1jbGFtcC1jb2xsYXBzZS1u
ZXN0ZWQtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xpbmUt
Y2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sCmluZGV4IDllNzZhMGQ4
YTRmMC4uMDYzYjZjZTRkYzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xp
bmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1jbGFtcC1jb2xsYXBzZS1uZXN0ZWQtYmxvY2tzLWV4cGVj
dGVkLmh0bWwKQEAgLTUsNCArNSw0IEBACiAgIG92ZXJmbG93OiBoaWRkZW47IAogfQogPC9zdHls
ZT4KLTxkaXYgY2xhc3M9Y29udGFpbmVyPlBBU1MgaWYgdGhpcyBpcyB2aXNpYmxlPC9kaXY+Cis8
ZGl2IGNsYXNzPWNvbnRhaW5lcj5QQVNTIGlmIHRoaXMgaXMgdmlzaWJsZSYjeDIwMjY7PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9keW5hbWljLWxpbmUtY2xhbXAt
Y2hhbmdlLW9uLW5lc3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2lubGluZS9keW5hbWljLWxpbmUtY2xhbXAtY2hhbmdlLW9uLW5lc3RlZC1jb250ZW50LWV4cGVj
dGVkLmh0bWwKaW5kZXggNDY1NzAxZTM0NjBhLi44MjRjNzA3ODVkNzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaW5saW5lL2R5bmFtaWMtbGluZS1jbGFtcC1jaGFuZ2Utb24tbmVzdGVk
LWNvbnRlbnQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9keW5h
bWljLWxpbmUtY2xhbXAtY2hhbmdlLW9uLW5lc3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwKQEAg
LTEgKzEgQEAKLVBBU1MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitQQVNTJiN4MjAyNjsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVk
LWxpbmUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmUwNWIwM2NkZDViMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3Zl
cmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxNSBAQAorPHN0eWxlPgorZGl2IHsKKyAgZm9udC1mYW1pbHk6IE1vbm9zcGFjZTsK
KyAgZm9udC1zaXplOiAxMnB4OworICBtYXJnaW4tYm90dG9tOiAxMHB4OworfQorPC9zdHlsZT4K
KzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBkb2VzIE5PVCBzaG93PC9kaXY+Cis8ZGl2
PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5QQVNT
IGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+UEFTUyBpZiB0
cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBBU1MgaWYgdHJhaWxp
bmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVs
bGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNp
cyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hv
d3MmI3gyMDI2OzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9s
aW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMTY0MTZkNzdjYWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3Jt
YXR0ZWQtbGluZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzxzdHlsZT4KKy5jbGFtcCB7CisgIGRp
c3BsYXk6IC13ZWJraXQtYm94OworICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOworICAt
d2Via2l0LWxpbmUtY2xhbXA6IDE7CisgIGZvbnQtZmFtaWx5OiBNb25vc3BhY2U7CisgIGZvbnQt
c2l6ZTogMTJweDsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgbWFyZ2luLWJvdHRvbTogMTBweDsK
K30KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGlu
ZyBlbGxpcHNpcyBkb2VzIE5PVCBzaG93PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xh
bXAiPgorICA8ZGl2PjxkaXY+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj5QQVNT
IGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2PjxkaXY+PGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVs
bGlwc2lzIHNob3dzPC9kaXY+PC9kaXY+PC9kaXY+CisgIDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4K
KzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+PGRpdj48ZGl2IHN0eWxlPSJk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAxMDAwcHg7Ij5QQVNTIGlmIHRyYWlsaW5nIGVs
bGlwc2lzIHNob3dzPC9kaXY+PC9kaXY+PC9kaXY+CisgIDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4K
KzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBl
bGxpcHNpcyBzaG93czwvZGl2PgorICA8ZGl2PgorICAgIDxkaXY+CisgICAgICA8ZGl2PnNlY29u
ZCBsaW5lPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9
ImNsYW1wIj4KKyAgPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPGJyPnNlY29u
ZDxicj50aGlyZCBsaW5lPC9kaXY+CisgIDxkaXY+CisgICAgPGRpdj4KKyAgICAgIDxkaXY+Zm9y
dGggbGluZTwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNz
PSJjbGFtcCI+CisgIDxkaXY+PC9kaXY+CisgIDxkaXY+PC9kaXY+CisgIDxkaXY+UEFTUyBpZiB0
cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2PgorICA8ZGl2PgorICAgIDxkaXY+CisgICAgICA8
ZGl2PnNlY29uZCBsaW5lPC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxk
aXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj48L2Rpdj4KKyAgPGRpdj48L2Rpdj4KKyAgPGRpdj5Q
QVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+CisgIDxkaXY+PC9kaXY+CisgIDxk
aXY+CisgICAgPGRpdj4KKyAgICAgIDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4KKyAgICA8L2Rpdj4K
KyAgPC9kaXY+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473478</attachid>
            <date>2024-12-05 16:37:56 -0800</date>
            <delta_ts>2024-12-05 21:18:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-281136-20241205163755.patch</filename>
            <type>text/plain</type>
            <size>18733</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiZTIyNGRmYzM4MmRkYjU0YzAwM2E2OTY3MzBjYmJlYWY1NDg5ZDQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgNSBEZWMgMjAyNCAxMTo0OTo1MiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHdlYmtpdC1s
aW5lLWNsYW1wIGluIG5lc3RlZCBjb250ZXh0IGRvZXMgbm90IHJlbmRlciBlbGxpcHNpcwogd2hl
biBpbmxpbmUgY29udGVudCBmaXRzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgxMTM2CiA8cmRhcjovL3Byb2JsZW0vMTM3NTg1OTczPgoKUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCgpXZSBmYWlsIHRvIHB1dCBlbGxpcHNpcyBvbiB0aGUgY2xhbXBlZCBsaW5l
IHdoZW4gaXQgaXMgdGhlIGxhc3QgZm9ybWF0dGVkIGxpbmUgZm9sbG93ZWQgYnkKYSBzaWJsaW5n
IElGQyB3aXRoIG1vcmUgaW5saW5lIGNvbnRlbnQuCmUuZy4KPGRpdiBjbGFtcD0xPgogPGRpdj5M
YXN0IGZvcm1hdHRlZCBsaW5lIGluIHRoaXMgSUZDIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBCRkMu
IE5lZWRzIGVsbGlwc2lzLjwvZGl2PgogPGRpdj50aGlzIGxpbmUgaXMgY2xhbXBlZDwvZGl2Pgo8
L2Rpdj4KCl4gaW4gdGhpcyBjYXNlIGVsbGlwc2lzIHNob3VsZCBnbyB0byB0aGUgZW5kIG9mICJs
YXN0IGZvcm1hdHRlZCBsaW5lIiwgZXZlbiB0aG91Z2ggaXQgZG9lcwpub3Qgb3ZlcmZsb3cgdGhl
IGNvbnRhaW5lciBpbiBibG9jayBkaXJlY3Rpb24sIGJ1dCBpdCBpcyBjb25zaWRlcmVkICJvdmVy
Zmxvd2luZyIgdGhlIHBhcmVudCBCRkMuCgpJbiB0aGlzIGNoYW5nZSwgd2Ugc3RhcnQgcHV0dGlu
ZyBlbGxpcHNpcyBvbiBzdWNoIGxhc3QgZm9ybWF0dGVkIGxpbmVzIGFuZCBpZiB0aGV5IHR1cm4g
b3V0IHRvIGJlIHRydWx5IHRoZSBsYXN0IGxpbmUgaW4gdGhlIGNsYW1wIGNvbnRleHQgKHdoZXJl
IHdlIHNob3VsZCBOT1QgcHV0IGVsbGlwc2lzKSB3ZSBzaW1wbHkgcmVtb3ZlIHRoZSBlbGxpcHNp
cyBieSBydW5uaW5nIGEgbm8tY2xhbXAgbGF5b3V0Lgo8ZGl2IGNsYW1wPTE+CiA8ZGl2Pkxhc3Qg
Zm9ybWF0dGVkIGxpbmUgaW4gdGhpcyBJRkMgYW5kIGluIHRoZSBwYXJlbnQgQkZDIGFzIHdlbGwu
IE5vIGVsbGlwc2lzIGhlcmUuPC9kaXY+CjwvZGl2PgoKKiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L2xpbmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sOgoqIExheW91
dFRlc3RzL2Zhc3QvaW5saW5lL2R5bmFtaWMtbGluZS1jbGFtcC1jaGFuZ2Utb24tbmVzdGVkLWNv
bnRlbnQtZXhwZWN0ZWQuaHRtbDoKKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xh
bXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKiBMYXlvdXRU
ZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS5odG1s
OiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGluZUNvbnRlbnQpOgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1JhbmdlQmFz
ZWRMaW5lQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlJhbmdlQmFzZWRMaW5lQnVpbGRl
cjo6aXNFbGlnaWJsZUZvclJhbmdlSW5saW5lTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVp
bGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OnRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0
ZXJUcnVuY2F0aW9uKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUxpbmVCdWlsZGVy
OjphZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2FibGUpOgooV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRl
ZCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGly
ZWN0aW9uT25MYXN0Rm9ybWF0dGVkTGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdl
YkNvcmU6OmJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUpOgooV2ViQ29yZTo6UmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6Ci0tLQogLi4uL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUv
UmFuZ2VCYXNlZExpbmVCdWlsZGVyLmNwcCAgICAgICAgICB8ICAzICsKIC4uLi9kaXNwbGF5L0lu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgICAgICB8IDE2ICsrKy0tCiAuLi4vaW5saW5lL2Rp
c3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmggfCAgMiArLQogLi4uL2lubGluZS9MYXlv
dXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwICAgIHwgMTYgKysrKysKIC4uLi9pbmxpbmUvTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggICAgICB8ICAxICsKIC4uLi9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCB8IDI3ICsrKysrKysrCiAuLi5jbGFtcC1jb2xs
YXBzZS1uZXN0ZWQtYmxvY2tzLWV4cGVjdGVkLmh0bWwgfCAgMiArLQogLi4uYW1wLWNoYW5nZS1v
bi1uZXN0ZWQtY29udGVudC1leHBlY3RlZC5odG1sIHwgIDIgKy0KIC4uLmNsYW1wLW9uLWxhc3Qt
Zm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbCB8IDE1ICsrKysKIC4uLi9saW5lLWNsYW1wLW9u
LWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbCAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysKIDEx
IGZpbGVzIGNoYW5nZWQsIDE0NiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0
LWZvcm1hdHRlZC1saW5lLWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS5odG1s
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDIxMTdlYTMwNGVkYS4uMjcyMjIwMTRiMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgSW5saW5l
UmVjdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y3JlYXRlRGlzcGxheUNvbnRlbnRGb3JJbmxp
bmVDb250ZW50KGNvbnN0IEwKICAgICBhdXRvIGlzQ3VycmVudExpbmVDb250ZW50ZnVsID0gYm94
ZXMuc2l6ZSgpID4gMTsKICAgICBudW1iZXJPZlByZXZpb3VzTENvbnRlbnRmdWxMaW5lcyArPSAo
aXNDdXJyZW50TGluZUNvbnRlbnRmdWwgPyAxIDogMCk7CiAgICAgYXV0byB0cnVuY2F0aW9uUG9s
aWN5ID0gSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpsaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeShy
b290KCkuc3R5bGUoKSwgbnVtYmVyT2ZQcmV2aW91c0xDb250ZW50ZnVsTGluZXMsIG51bWJlck9m
VmlzaWJsZUxpbmVzQWxsb3dlZCwgaXNDdXJyZW50TGluZUNvbnRlbnRmdWwpOwotICAgIElubGlu
ZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKHRydW5jYXRpb25Qb2xp
Y3ksIGRpc3BsYXlMaW5lLCBib3hlcywgbGluZUxheW91dFJlc3VsdC5pc0ZpcnN0TGFzdC5pc0xh
c3RMaW5lV2l0aElubGluZUNvbnRlbnQsIGlzTGVnYWN5TGluZUNsYW1wKTsKKyAgICBJbmxpbmVE
aXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRlZCh0cnVuY2F0aW9uUG9saWN5
LCBkaXNwbGF5TGluZSwgYm94ZXMsIGlzTGVnYWN5TGluZUNsYW1wKTsKICAgICBhdXRvIGxpbmVI
YXNMZWdhY3lMaW5lQ2xhbXAgPSBpc0xlZ2FjeUxpbmVDbGFtcCAmJiBkaXNwbGF5TGluZS5oYXNF
bGxpcHNpcygpICYmIHRydW5jYXRpb25Qb2xpY3kgPT0gTGluZUVuZGluZ1RydW5jYXRpb25Qb2xp
Y3k6OldoZW5Db250ZW50T3ZlcmZsb3dzSW5CbG9ja0RpcmVjdGlvbjsKICAgICBpZiAobGluZUhh
c0xlZ2FjeUxpbmVDbGFtcCkKICAgICAgICAgbGF5b3V0U3RhdGUoKS5zZXRMZWdhY3lDbGFtcGVk
TGluZUluZGV4KGxpbmVCb3gubGluZUluZGV4KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvUmFuZ2VCYXNlZExpbmVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1Jh
bmdlQmFzZWRMaW5lQnVpbGRlci5jcHAKaW5kZXggYjc0NDQwNmEyYTUwLi41NmM1ZGFhMjljYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL1JhbmdlQmFzZWRMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvUmFuZ2VCYXNlZExpbmVCdWlsZGVyLmNwcApAQCAt
MTA5LDYgKzEwOSw5IEBAIGJvb2wgUmFuZ2VCYXNlZExpbmVCdWlsZGVyOjppc0VsaWdpYmxlRm9y
UmFuZ2VJbmxpbmVMYXlvdXQoY29uc3QgSW5saW5lRm9ybWF0dGluCiAgICAgaWYgKGlubGluZUJv
eC5zdHlsZSgpLmJveERlY29yYXRpb25CcmVhaygpICE9IFJlbmRlclN0eWxlOjppbml0aWFsQm94
RGVjb3JhdGlvbkJyZWFrKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChpbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpLnBhcmVudEJsb2NrTGF5b3V0U3RhdGUo
KS5saW5lQ2xhbXAoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgLy8gQ2hlY2sgdGhl
IG5lc3RlZCB0ZXh0IGNvbnRlbnQuCiAgICAgaWYgKCFpbmxpbmVJdGVtcy5oYXNUZXh0QW5kTGlu
ZUJyZWFrT25seUNvbnRlbnQoKSB8fCBpbmxpbmVJdGVtcy5yZXF1aXJlc1Zpc3VhbFJlb3JkZXJp
bmcoKSB8fCAhcGxhY2VkRmxvYXRzLmlzRW1wdHkoKSB8fCBpbmxpbmVJdGVtcy5oYXNUZXh0QXV0
b3NwYWNlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmNwcAppbmRleCAxYTA5
ZjRiYjAyY2IuLmVmNGY3NWIxYzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmNwcApAQCAtMjg0LDcgKzI4NCw3
IEBAIHN0YXRpYyBmbG9hdCB0cnVuY2F0ZU92ZXJmbG93aW5nRGlzcGxheUJveGVzKElubGluZURp
c3BsYXk6OkJveGVzJiBib3hlcywgc2l6ZV90CiAgICAgcmV0dXJuIHRydW5jYXRlTGVmdC52YWx1
ZV9vcihsZWZ0KGJveGVzLmZpcnN0KCkpKSAtIGVsbGlwc2lzV2lkdGg7CiB9CiAKLXN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gdHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRy
dW5jYXRpb24oTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kgbGluZUVuZGluZ1RydW5jYXRpb25Q
b2xpY3ksIFN0cmluZyBlbGxpcHNpc1RleHQsIGNvbnN0IElubGluZURpc3BsYXk6OkxpbmUmIGRp
c3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYgZGlzcGxheUJveGVzLCBib29sIGlzTGFz
dExpbmVXaXRoSW5saW5lQ29udGVudCkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4g
dHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRydW5jYXRpb24oTGluZUVuZGluZ1RydW5j
YXRpb25Qb2xpY3kgbGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3ksIFN0cmluZyBlbGxpcHNpc1Rl
eHQsIGNvbnN0IElubGluZURpc3BsYXk6OkxpbmUmIGRpc3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5
OjpCb3hlcyYgZGlzcGxheUJveGVzKQogewogICAgIEFTU0VSVChsaW5lRW5kaW5nVHJ1bmNhdGlv
blBvbGljeSAhPSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6Tm9UcnVuY2F0aW9uKTsKICAg
ICBpZiAoZGlzcGxheUJveGVzLmlzRW1wdHkoKSkKQEAgLTI5NCw3ICsyOTQsOSBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0ZXJU
cnVuY2F0aW9uKExpbmVFbgogICAgICAgICBpZiAobGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kg
PT0gTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3k6OldoZW5Db250ZW50T3ZlcmZsb3dzSW5Jbmxp
bmVEaXJlY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gZGlzcGxheUxpbmUuY29udGVudExvZ2lj
YWxXaWR0aCgpICYmIGRpc3BsYXlMaW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKSA+IGRpc3BsYXlM
aW5lLmxpbmVCb3hMb2dpY2FsUmVjdCgpLndpZHRoKCk7CiAgICAgICAgIEFTU0VSVChsaW5lRW5k
aW5nVHJ1bmNhdGlvblBvbGljeSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6V2hlbkNv
bnRlbnRPdmVyZmxvd3NJbkJsb2NrRGlyZWN0aW9uKTsKLSAgICAgICAgcmV0dXJuICFpc0xhc3RM
aW5lV2l0aElubGluZUNvbnRlbnQ7CisgICAgICAgIC8vIFdlIGNvbnNpZGVyIGV2ZW4gdGhlIGxh
c3QgbGluZSBhcyBvdmVyZmxvdyBpbiBibG9jayBkaXJlY3Rpb24gZHVlIHRvIHRoZSBwcm9wYWdh
dGVkIG5hdHVyZSBvZiBsaW5lLWNsYW1wIHdoZXJlIGNsYW1waW5nIGlzIHNoYXJlZAorICAgICAg
ICAvLyBhY3Jvc3Mgc2libGluZyBJRkNzLiBJZiB0aGlzIElGQyBoYXMgdGhlIGxhc3QgZm9ybWF0
dGVkIGxpbmUgKGluIHdoaWNoIGNhc2UgdGhlIGxhc3QgbGluZSBuZWVkcyBubyBlbGxpcHNpcykg
dGhlIHBhcmVudCBCRkMgcmVpc3N1ZXMgYSBsYXlvdXQgd2l0aCBubyBjbGFtcGluZy4KKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfTsKICAgICBpZiAoIW5lZWRzRWxsaXBzaXMoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKQEAgLTQwOSwxMCArNDExLDE0IEBAIHZvaWQgSW5saW5lRGlzcGxheUxp
bmVCdWlsZGVyOjphZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2FibGUo
Y29uCiAgICAgaWYgKCFjbGFtcGVkTGluZUluZGV4KQogICAgICAgICByZXR1cm47CiAgICAgYXV0
byYgZGlzcGxheUxpbmVzID0gZGlzcGxheUNvbnRlbnQubGluZXM7Ci0gICAgaWYgKCpjbGFtcGVk
TGluZUluZGV4ID49IGRpc3BsYXlMaW5lcy5zaXplKCkgfHwgIWRpc3BsYXlMaW5lc1sqY2xhbXBl
ZExpbmVJbmRleF0uaGFzRWxsaXBzaXMoKSkgeworICAgIGlmIChkaXNwbGF5TGluZXMuaXNFbXB0
eSgpIHx8ICpjbGFtcGVkTGluZUluZGV4ID49IGRpc3BsYXlMaW5lcy5zaXplKCkgfHwgIWRpc3Bs
YXlMaW5lc1sqY2xhbXBlZExpbmVJbmRleF0uaGFzRWxsaXBzaXMoKSkgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoKmNsYW1w
ZWRMaW5lSW5kZXggPT0gZGlzcGxheUxpbmVzLnNpemUoKSAtIDEpIHsKKyAgICAgICAgLy8gTm8g
bmVlZCB0byBsaW5rLWJveCBsaW5lIGNsYW1wIHRoZSBsYXN0IGxpbmUuCisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBpZiAoIWlzRWxpZ2libGVGb3JMaW5rQm94TGluZUNsYW1wKGRpc3Bs
YXlDb250ZW50LmJveGVzKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDY0LDcgKzQ3MCw3IEBAIHZv
aWQgSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyOjphZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xp
bmtCb3hJZkFwcGxpY2FibGUoY29uCiAgICAgY2xhbXBlZExpbmUuc2V0SGFzQ29udGVudEFmdGVy
RWxsaXBzaXNCb3goKTsKIH0KIAotdm9pZCBJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5
RWxsaXBzaXNJZk5lZWRlZChMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSB0cnVuY2F0aW9uUG9s
aWN5LCBJbmxpbmVEaXNwbGF5OjpMaW5lJiBkaXNwbGF5TGluZSwgSW5saW5lRGlzcGxheTo6Qm94
ZXMmIGRpc3BsYXlCb3hlcywgYm9vbCBpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQsIGJvb2wg
aXNMZWdhY3lMaW5lQ2xhbXApCit2b2lkIElubGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlF
bGxpcHNpc0lmTmVlZGVkKExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5IHRydW5jYXRpb25Qb2xp
Y3ksIElubGluZURpc3BsYXk6OkxpbmUmIGRpc3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5OjpCb3hl
cyYgZGlzcGxheUJveGVzLCBib29sIGlzTGVnYWN5TGluZUNsYW1wKQogewogICAgIGlmICh0cnVu
Y2F0aW9uUG9saWN5ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpOb1RydW5jYXRpb24g
fHwgIWRpc3BsYXlCb3hlcy5zaXplKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4NSw3ICs0OTEs
NyBAQCB2b2lkIElubGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVk
KExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5CiAgICAgaWYgKGVsbGlwc2lzVGV4dC5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1dG8gZWxsaXBzaXNSZWN0ID0gdHJhaWxp
bmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRydW5jYXRpb24odHJ1bmNhdGlvblBvbGljeSwgZWxs
aXBzaXNUZXh0LCBkaXNwbGF5TGluZSwgZGlzcGxheUJveGVzLCBpc0xhc3RMaW5lV2l0aElubGlu
ZUNvbnRlbnQpKQorICAgIGlmIChhdXRvIGVsbGlwc2lzUmVjdCA9IHRyYWlsaW5nRWxsaXBzaXNW
aXN1YWxSZWN0QWZ0ZXJUcnVuY2F0aW9uKHRydW5jYXRpb25Qb2xpY3ksIGVsbGlwc2lzVGV4dCwg
ZGlzcGxheUxpbmUsIGRpc3BsYXlCb3hlcykpCiAgICAgICAgIGRpc3BsYXlMaW5lLnNldEVsbGlw
c2lzKHsgdHJ1bmNhdGlvblBvbGljeSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6V2hl
bkNvbnRlbnRPdmVyZmxvd3NJbklubGluZURpcmVjdGlvbiA/IElubGluZURpc3BsYXk6OkxpbmU6
OkVsbGlwc2lzOjpUeXBlOjpJbmxpbmUgOiBJbmxpbmVEaXNwbGF5OjpMaW5lOjpFbGxpcHNpczo6
VHlwZTo6QmxvY2ssICplbGxpcHNpc1JlY3QsIGVsbGlwc2lzVGV4dCB9KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVy
LmgKaW5kZXggZGY2OTE1MGNmOTA5Li4wMTNiMzY1YTE0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlz
cGxheUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaApAQCAtNDEs
NyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBJbmxpbmVEaXNwbGF5OjpMaW5lIGJ1aWxkKGNvbnN0
IExpbmVMYXlvdXRSZXN1bHQmLCBjb25zdCBMaW5lQm94JiwgYm9vbCBsaW5lSXNGdWxseVRydW5j
YXRlZEluQmxvY2tEaXJlY3Rpb24pIGNvbnN0OwogCi0gICAgc3RhdGljIHZvaWQgYXBwbHlFbGxp
cHNpc0lmTmVlZGVkKExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5LCBJbmxpbmVEaXNwbGF5OjpM
aW5lJiwgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBib29sIGlzTGFzdExpbmVXaXRoSW5saW5lQ29u
dGVudCwgYm9vbCBpc0xlZ2FjeUxpbmVDbGFtcCk7CisgICAgc3RhdGljIHZvaWQgYXBwbHlFbGxp
cHNpc0lmTmVlZGVkKExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5LCBJbmxpbmVEaXNwbGF5OjpM
aW5lJiwgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBib29sIGlzTGVnYWN5TGluZUNsYW1wKTsKICAg
ICBzdGF0aWMgdm9pZCBhZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2Fi
bGUoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmLCBjb25zdCBJbmxpbmVMYXlvdXRTdGF0
ZSYsIElubGluZURpc3BsYXk6OkNvbnRlbnQmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUv
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCA4NzBiZmE5NWNlODkuLmFjNjk0
ZjYzYzUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lu
bGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNw
cApAQCAtNzU5LDYgKzc1OSwyMiBAQCBib29sIExpbmVMYXlvdXQ6OmlzUGFnaW5hdGVkKCkgY29u
c3QKICAgICByZXR1cm4gbV9pbmxpbmVDb250ZW50ICYmIG1faW5saW5lQ29udGVudC0+aXNQYWdp
bmF0ZWQ7CiB9CiAKK2Jvb2wgTGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGlyZWN0aW9u
T25MYXN0Rm9ybWF0dGVkTGluZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2lubGluZUNvbnRlbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoYXV0byYgbGluZSA6IG1ha2VSZXZl
cnNlZFJhbmdlKG1faW5saW5lQ29udGVudC0+ZGlzcGxheUNvbnRlbnQoKS5saW5lcykpIHsKKyAg
ICAgICAgaWYgKGxpbmUuYm94Q291bnQoKSA9PSAxKSB7CisgICAgICAgICAgICAvLyBPdXQtb2Yt
ZmxvdyBjb250ZW50IGNvdWxkIGluaXRpYXRlIGEgbGluZSB3aXRoIG5vIGlubGluZSBjb250ZW50
LgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYXV0byBsYXN0Rm9y
bWF0dGVkTGluZUVsbGlwc2lzID0gbGluZS5lbGxpcHNpcygpOworICAgICAgICByZXR1cm4gbGFz
dEZvcm1hdHRlZExpbmVFbGxpcHNpcyAmJiBsYXN0Rm9ybWF0dGVkTGluZUVsbGlwc2lzLT50eXBl
ID09IElubGluZURpc3BsYXk6OkxpbmU6OkVsbGlwc2lzOjpUeXBlOjpCbG9jazsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IExpbmVMYXlv
dXQ6OmNsYW1wZWRDb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lu
bGluZUNvbnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaApp
bmRleCA4Y2ZlZjRjN2U3NzMuLmE1ZGI1MzlhYWYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dElu
dGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHVibGljOgogCiAgICAg
TGF5b3V0VW5pdCBjb250ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0OwogICAgIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gY2xhbXBlZENvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CisgICAg
Ym9vbCBoYXNFbGxpcHNpc0luQmxvY2tEaXJlY3Rpb25Pbkxhc3RGb3JtYXR0ZWRMaW5lKCkgY29u
c3Q7CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29u
c3Q7CiAKICAgICBib29sIGlzUGFnaW5hdGVkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4
IDUyYWJiYzYwNWI2NC4uYTYwOThmZmJiZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJJbmxpbmVJdGVy
YXRvckxpbmVCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5o
IgogI2luY2x1ZGUgIlJlbmRlckJveElubGluZXMuaCIKQEAgLTk2Miw2ICs5NjMsMjAgQEAgc3Rh
dGljIHNpemVfdCBsaW5lQ291bnRGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zsb3cp
CiAgICAgcmV0dXJuIGNvdW50OwogfQogCitzdGF0aWMgUmVuZGVyQmxvY2tGbG93KiBibG9ja0Nv
bnRhaW5lckZvckxhc3RGb3JtYXR0ZWRMaW5lKGNvbnN0IFJlbmRlckJsb2NrJiBlbmNsb3NpbmdC
bG9ja0NvbnRhaW5lcikKK3sKKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gZW5jbG9zaW5nQmxvY2tD
b250YWluZXIubGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxp
bmcoKSkgeworICAgICAgICBDaGVja2VkUHRyIGJsb2NrQ29udGFpbmVyID0gZHluYW1pY0Rvd25j
YXN0PFJlbmRlckJsb2NrRmxvdz4oKmNoaWxkKTsKKyAgICAgICAgaWYgKCFibG9ja0NvbnRhaW5l
cikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoYXV0byogZGVzY2VuZGFudFJv
b3QgPSBibG9ja0NvbnRhaW5lckZvckxhc3RGb3JtYXR0ZWRMaW5lKCpibG9ja0NvbnRhaW5lcikp
CisgICAgICAgICAgICByZXR1cm4gZGVzY2VuZGFudFJvb3Q7CisgICAgICAgIGlmIChibG9ja0Nv
bnRhaW5lci0+aGFzTGluZXMoKSkKKyAgICAgICAgICAgIHJldHVybiBibG9ja0NvbnRhaW5lci5n
ZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKwogUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94OjpDbGFtcGVkQ29udGVudCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5
TGluZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wgcmVsYXlvdXRDaGlsZHJl
bikKIHsKICAgICBhdXRvIGluaXRpYWxpemUgPSBbJl0gewpAQCAtMTAxNSw2ICsxMDMwLDE4IEBA
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Q2xhbXBlZENvbnRlbnQgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94OjphcHBseUxpCiAgICAgICAgIGNoaWxkLT5tYXJrRm9yUGFnaW5hdGlv
blJlbGF5b3V0SWZOZWVkZWQoKTsKICAgICAgICAgY2hpbGQtPmxheW91dElmTmVlZGVkKCk7CiAg
ICAgfQorICAgIGlmIChhdXRvKiBsYXN0Um9vdCA9IGJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1h
dHRlZExpbmUoKnRoaXMpKSB7CisgICAgICAgIGlmIChhdXRvKiBpbmxpbmVMYXlvdXQgPSBsYXN0
Um9vdC0+aW5saW5lTGF5b3V0KCk7IGlubGluZUxheW91dCAmJiBpbmxpbmVMYXlvdXQtPmhhc0Vs
bGlwc2lzSW5CbG9ja0RpcmVjdGlvbk9uTGFzdEZvcm1hdHRlZExpbmUoKSkgeworICAgICAgICAg
ICAgYXV0byBjdXJyZW50TGluZUNsYW1wID0gbGF5b3V0U3RhdGUubGVnYWN5TGluZUNsYW1wKCk7
CisKKyAgICAgICAgICAgIC8vIExldCBsaW5lLWNsYW1wIGxvZ2ljIHJ1biBidXQgbWFrZSBzdXJl
IG5vIGNsYW1waW5nIGhhcHBlbnMgKGl0J3MgbmVlZGVkIHRvIG1ha2Ugc3VyZSBjZXJ0YWluIGZl
YXR1cmVzIGFyZSBkaXNhYmxlZCBsaWtlIGVsbGlwc2lzIGluIGlubGluZSBkaXJlY3Rpb24pLgor
ICAgICAgICAgICAgbGF5b3V0U3RhdGUuc2V0TGVnYWN5TGluZUNsYW1wKFJlbmRlckxheW91dFN0
YXRlOjpMZWdhY3lMaW5lQ2xhbXAgeyBpbmxpbmVMYXlvdXQtPmxpbmVDb3VudCgpICsgMSwgeyB9
LCB7IH0sIHsgfSB9KTsKKyAgICAgICAgICAgIGxhc3RSb290LT5zZXRDaGlsZE5lZWRzTGF5b3V0
KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICBsYXN0Um9vdC0+bGF5b3V0SWZOZWVkZWQoKTsK
KworICAgICAgICAgICAgbGF5b3V0U3RhdGUuc2V0TGVnYWN5TGluZUNsYW1wKGN1cnJlbnRMaW5l
Q2xhbXApOworICAgICAgICB9CisgICAgfQogCiAgICAgYXV0byBsaW5lQ2xhbXAgPSAqbGF5b3V0
U3RhdGUubGVnYWN5TGluZUNsYW1wKCk7CiAgICAgaWYgKCFsaW5lQ2xhbXAuY2xhbXBlZENvbnRl
bnRMb2dpY2FsSGVpZ2h0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xp
bmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ibG9jay9saW5lLWNsYW1wLWNvbGxhcHNlLW5lc3RlZC1ibG9ja3MtZXhwZWN0ZWQu
aHRtbAppbmRleCA5ZTc2YTBkOGE0ZjAuLjA2M2I2Y2U0ZGMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9saW5lLWNsYW1wLWNvbGxhcHNlLW5lc3RlZC1ibG9ja3MtZXhwZWN0
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xpbmUtY2xhbXAtY29sbGFwc2Ut
bmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sCkBAIC01LDQgKzUsNCBAQAogICBvdmVyZmxvdzog
aGlkZGVuOyAKIH0KIDwvc3R5bGU+Ci08ZGl2IGNsYXNzPWNvbnRhaW5lcj5QQVNTIGlmIHRoaXMg
aXMgdmlzaWJsZTwvZGl2PgorPGRpdiBjbGFzcz1jb250YWluZXI+UEFTUyBpZiB0aGlzIGlzIHZp
c2libGUmI3gyMDI2OzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUv
ZHluYW1pYy1saW5lLWNsYW1wLWNoYW5nZS1vbi1uZXN0ZWQtY29udGVudC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvZHluYW1pYy1saW5lLWNsYW1wLWNoYW5nZS1vbi1u
ZXN0ZWQtY29udGVudC1leHBlY3RlZC5odG1sCmluZGV4IDQ2NTcwMWUzNDYwYS4uODI0YzcwNzg1
ZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9keW5hbWljLWxpbmUtY2xh
bXAtY2hhbmdlLW9uLW5lc3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbmxpbmUvZHluYW1pYy1saW5lLWNsYW1wLWNoYW5nZS1vbi1uZXN0ZWQtY29udGVu
dC1leHBlY3RlZC5odG1sCkBAIC0xICsxIEBACi1QQVNTClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQorUEFTUyYjeDIwMjY7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVk
LWxpbmUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFt
cC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lMDViMDNjZGQ1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGlu
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdHlsZT4KK2RpdiB7CisgIGZvbnQt
ZmFtaWx5OiBNb25vc3BhY2U7CisgIGZvbnQtc2l6ZTogMTJweDsKKyAgbWFyZ2luLWJvdHRvbTog
MTBweDsKK30KKzwvc3R5bGU+Cis8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgZG9lcyBO
T1Qgc2hvdzwvZGl2PgorPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAy
Njs8L2Rpdj4KKzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9k
aXY+Cis8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2Pgor
PGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+
UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBBU1Mg
aWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5QQVNTIGlmIHRy
YWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQt
bGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE2NDE2
ZDc3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5l
LWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbApAQCAtMCwwICsxLDY5IEBACis8c3R5
bGU+CisuY2xhbXAgeworICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgLXdlYmtpdC1ib3gtb3Jp
ZW50OiB2ZXJ0aWNhbDsKKyAgLXdlYmtpdC1saW5lLWNsYW1wOiAxOworICBmb250LWZhbWlseTog
TW9ub3NwYWNlOworICBmb250LXNpemU6IDEycHg7CisgIG92ZXJmbG93OiBoaWRkZW47CisgIG1h
cmdpbi1ib3R0b206IDEwcHg7Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8
ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgZG9lcyBOT1Qgc2hvdzwvZGl2PgorPC9kaXY+
CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj48ZGl2PjxkaXYgc3R5bGU9ImRpc3BsYXk6
IGlubGluZS1ibG9jayI+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2PjwvZGl2
PjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj48ZGl2PjxkaXY+
UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2PjwvZGl2PjwvZGl2PgorICA8ZGl2
PnNlY29uZCBsaW5lPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2
PjxkaXY+PGRpdiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwMHB4OyI+
UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2PjwvZGl2PjwvZGl2PgorICA8ZGl2
PnNlY29uZCBsaW5lPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2
PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3M8L2Rpdj4KKyAgPGRpdj4KKyAgICA8ZGl2
PgorICAgICAgPGRpdj5zZWNvbmQgbGluZTwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwv
ZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxp
cHNpcyBzaG93czxicj5zZWNvbmQ8YnI+dGhpcmQgbGluZTwvZGl2PgorICA8ZGl2PgorICAgIDxk
aXY+CisgICAgICA8ZGl2PmZvcnRoIGxpbmU8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8
L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2PjwvZGl2PgorICA8ZGl2PjwvZGl2
PgorICA8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3M8L2Rpdj4KKyAgPGRpdj4K
KyAgICA8ZGl2PgorICAgICAgPGRpdj5zZWNvbmQgbGluZTwvZGl2PgorICAgIDwvZGl2PgorICA8
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+PC9kaXY+CisgIDxk
aXY+PC9kaXY+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2Pgor
ICA8ZGl2PjwvZGl2PgorICA8ZGl2PgorICAgIDxkaXY+CisgICAgICA8ZGl2PnNlY29uZCBsaW5l
PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9kaXY+Cg==
</data>
<flag name="commit-queue"
          id="498173"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473481</attachid>
            <date>2024-12-05 20:46:58 -0800</date>
            <delta_ts>2024-12-06 05:10:35 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-281136-20241205204658.patch</filename>
            <type>text/plain</type>
            <size>18801</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxNGY1ODYwMDhkNTFkMjU2MzIyYmMzZjUyMDMwN2M4NGQ3MzQxYTMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgNSBEZWMgMjAyNCAxMTo0OTo1MiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHdlYmtpdC1s
aW5lLWNsYW1wIGluIG5lc3RlZCBjb250ZXh0IGRvZXMgbm90IHJlbmRlciBlbGxpcHNpcwogd2hl
biBpbmxpbmUgY29udGVudCBmaXRzLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgxMTM2CiA8cmRhcjovL3Byb2JsZW0vMTM3NTg1OTczPgoKUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCgpXZSBmYWlsIHRvIHB1dCBlbGxpcHNpcyBvbiB0aGUgY2xhbXBlZCBsaW5l
IHdoZW4gaXQgaXMgdGhlIGxhc3QgZm9ybWF0dGVkIGxpbmUgZm9sbG93ZWQgYnkKYSBzaWJsaW5n
IElGQyB3aXRoIG1vcmUgaW5saW5lIGNvbnRlbnQuCmUuZy4KPGRpdiBjbGFtcD0xPgogPGRpdj5M
YXN0IGZvcm1hdHRlZCBsaW5lIGluIHRoaXMgSUZDIGJ1dCBub3QgaW4gdGhlIHBhcmVudCBCRkMu
IE5lZWRzIGVsbGlwc2lzLjwvZGl2PgogPGRpdj50aGlzIGxpbmUgaXMgY2xhbXBlZDwvZGl2Pgo8
L2Rpdj4KCl4gaW4gdGhpcyBjYXNlIGVsbGlwc2lzIHNob3VsZCBnbyB0byB0aGUgZW5kIG9mICJs
YXN0IGZvcm1hdHRlZCBsaW5lIiwgZXZlbiB0aG91Z2ggaXQgZG9lcwpub3Qgb3ZlcmZsb3cgdGhl
IGNvbnRhaW5lciBpbiBibG9jayBkaXJlY3Rpb24sIGJ1dCBpdCBpcyBjb25zaWRlcmVkICJvdmVy
Zmxvd2luZyIgdGhlIHBhcmVudCBCRkMuCgpJbiB0aGlzIGNoYW5nZSwgd2Ugc3RhcnQgcHV0dGlu
ZyBlbGxpcHNpcyBvbiBzdWNoIGxhc3QgZm9ybWF0dGVkIGxpbmVzIGFuZCBpZiB0aGV5IHR1cm4g
b3V0IHRvIGJlIHRydWx5IHRoZSBsYXN0IGxpbmUgaW4gdGhlIGNsYW1wIGNvbnRleHQgKHdoZXJl
IHdlIHNob3VsZCBOT1QgcHV0IGVsbGlwc2lzKSB3ZSBzaW1wbHkgcmVtb3ZlIHRoZSBlbGxpcHNp
cyBieSBydW5uaW5nIGEgbm8tY2xhbXAgbGF5b3V0Lgo8ZGl2IGNsYW1wPTE+CiA8ZGl2Pkxhc3Qg
Zm9ybWF0dGVkIGxpbmUgaW4gdGhpcyBJRkMgYW5kIGluIHRoZSBwYXJlbnQgQkZDIGFzIHdlbGwu
IE5vIGVsbGlwc2lzIGhlcmUuPC9kaXY+CjwvZGl2PgoKKiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L2xpbmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5odG1sOgoqIExheW91
dFRlc3RzL2Zhc3QvaW5saW5lL2R5bmFtaWMtbGluZS1jbGFtcC1jaGFuZ2Utb24tbmVzdGVkLWNv
bnRlbnQtZXhwZWN0ZWQuaHRtbDoKKiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xh
bXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKiBMYXlvdXRU
ZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS5odG1s
OiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGluZUNvbnRlbnQpOgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1JhbmdlQmFz
ZWRMaW5lQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlJhbmdlQmFzZWRMaW5lQnVpbGRl
cjo6aXNFbGlnaWJsZUZvclJhbmdlSW5saW5lTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVp
bGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OnRyYWlsaW5nRWxsaXBzaXNWaXN1YWxSZWN0QWZ0
ZXJUcnVuY2F0aW9uKToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUxpbmVCdWlsZGVy
OjphZGRMZWdhY3lMaW5lQ2xhbXBUcmFpbGluZ0xpbmtCb3hJZkFwcGxpY2FibGUpOgooV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFwcGx5RWxsaXBzaXNJZk5lZWRl
ZCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlz
cGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CihXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aGFzRWxsaXBzaXNJbkJsb2NrRGly
ZWN0aW9uT25MYXN0Rm9ybWF0dGVkTGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKFdl
YkNvcmU6OmJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUpOgooV2ViQ29yZTo6UmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcCk6Ci0tLQogLi4uL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgICAgICAgIHwgIDIgKy0KIC4uLi9pbmxpbmUv
UmFuZ2VCYXNlZExpbmVCdWlsZGVyLmNwcCAgICAgICAgICB8ICAzICsKIC4uLi9kaXNwbGF5L0lu
bGluZURpc3BsYXlMaW5lQnVpbGRlci5jcHAgICAgICB8IDE2ICsrKy0tCiAuLi4vaW5saW5lL2Rp
c3BsYXkvSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyLmggfCAgMiArLQogLi4uL2lubGluZS9MYXlv
dXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwICAgIHwgMTYgKysrKysKIC4uLi9pbmxpbmUvTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggICAgICB8ICAxICsKIC4uLi9yZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCB8IDI3ICsrKysrKysKIC4uLmNsYW1wLWNvbGxh
cHNlLW5lc3RlZC1ibG9ja3MtZXhwZWN0ZWQuaHRtbCB8ICAyICstCiAuLi5hbXAtY2hhbmdlLW9u
LW5lc3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwgfCAgMiArLQogLi4uY2xhbXAtb24tbGFzdC1m
b3JtYXR0ZWQtbGluZS1leHBlY3RlZC5odG1sIHwgMTUgKysrKwogLi4uL2xpbmUtY2xhbXAtb24t
bGFzdC1mb3JtYXR0ZWQtbGluZS5odG1sICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKwogMTEg
ZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3Qt
Zm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5lLmh0bWwK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggMjExN2VhMzA0ZWRhLi4yNzIyMjAxNGIzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBJbmxpbmVS
ZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpjcmVhdGVEaXNwbGF5Q29udGVudEZvcklubGlu
ZUNvbnRlbnQoY29uc3QgTAogICAgIGF1dG8gaXNDdXJyZW50TGluZUNvbnRlbnRmdWwgPSBib3hl
cy5zaXplKCkgPiAxOwogICAgIG51bWJlck9mUHJldmlvdXNMQ29udGVudGZ1bExpbmVzICs9IChp
c0N1cnJlbnRMaW5lQ29udGVudGZ1bCA/IDEgOiAwKTsKICAgICBhdXRvIHRydW5jYXRpb25Qb2xp
Y3kgPSBJbmxpbmVGb3JtYXR0aW5nVXRpbHM6OmxpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5KHJv
b3QoKS5zdHlsZSgpLCBudW1iZXJPZlByZXZpb3VzTENvbnRlbnRmdWxMaW5lcywgbnVtYmVyT2ZW
aXNpYmxlTGluZXNBbGxvd2VkLCBpc0N1cnJlbnRMaW5lQ29udGVudGZ1bCk7Ci0gICAgSW5saW5l
RGlzcGxheUxpbmVCdWlsZGVyOjphcHBseUVsbGlwc2lzSWZOZWVkZWQodHJ1bmNhdGlvblBvbGlj
eSwgZGlzcGxheUxpbmUsIGJveGVzLCBsaW5lTGF5b3V0UmVzdWx0LmlzRmlyc3RMYXN0LmlzTGFz
dExpbmVXaXRoSW5saW5lQ29udGVudCwgaXNMZWdhY3lMaW5lQ2xhbXApOworICAgIElubGluZURp
c3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlFbGxpcHNpc0lmTmVlZGVkKHRydW5jYXRpb25Qb2xpY3ks
IGRpc3BsYXlMaW5lLCBib3hlcywgaXNMZWdhY3lMaW5lQ2xhbXApOwogICAgIGF1dG8gbGluZUhh
c0xlZ2FjeUxpbmVDbGFtcCA9IGlzTGVnYWN5TGluZUNsYW1wICYmIGRpc3BsYXlMaW5lLmhhc0Vs
bGlwc2lzKCkgJiYgdHJ1bmNhdGlvblBvbGljeSA9PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGlj
eTo6V2hlbkNvbnRlbnRPdmVyZmxvd3NJbkJsb2NrRGlyZWN0aW9uOwogICAgIGlmIChsaW5lSGFz
TGVnYWN5TGluZUNsYW1wKQogICAgICAgICBsYXlvdXRTdGF0ZSgpLnNldExlZ2FjeUNsYW1wZWRM
aW5lSW5kZXgobGluZUJveC5saW5lSW5kZXgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9SYW5nZUJhc2VkTGluZUJ1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvUmFu
Z2VCYXNlZExpbmVCdWlsZGVyLmNwcAppbmRleCBiNzQ0NDA2YTJhNTAuLjU2YzVkYWEyOWNhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvUmFuZ2VCYXNlZExpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9SYW5nZUJhc2VkTGluZUJ1aWxkZXIuY3BwCkBAIC0x
MDksNiArMTA5LDkgQEAgYm9vbCBSYW5nZUJhc2VkTGluZUJ1aWxkZXI6OmlzRWxpZ2libGVGb3JS
YW5nZUlubGluZUxheW91dChjb25zdCBJbmxpbmVGb3JtYXR0aW4KICAgICBpZiAoaW5saW5lQm94
LnN0eWxlKCkuYm94RGVjb3JhdGlvbkJyZWFrKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxCb3hE
ZWNvcmF0aW9uQnJlYWsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCkucGFyZW50QmxvY2tMYXlvdXRTdGF0ZSgp
LmxpbmVDbGFtcCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBDaGVjayB0aGUg
bmVzdGVkIHRleHQgY29udGVudC4KICAgICBpZiAoIWlubGluZUl0ZW1zLmhhc1RleHRBbmRMaW5l
QnJlYWtPbmx5Q29udGVudCgpIHx8IGlubGluZUl0ZW1zLnJlcXVpcmVzVmlzdWFsUmVvcmRlcmlu
ZygpIHx8ICFwbGFjZWRGbG9hdHMuaXNFbXB0eSgpIHx8IGlubGluZUl0ZW1zLmhhc1RleHRBdXRv
c3BhY2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
TGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuY3BwCmluZGV4IDFhMDlm
NGJiMDJjYi4uZWY0Zjc1YjFjNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIuY3BwCkBAIC0yODQsNyArMjg0LDcg
QEAgc3RhdGljIGZsb2F0IHRydW5jYXRlT3ZlcmZsb3dpbmdEaXNwbGF5Qm94ZXMoSW5saW5lRGlz
cGxheTo6Qm94ZXMmIGJveGVzLCBzaXplX3QKICAgICByZXR1cm4gdHJ1bmNhdGVMZWZ0LnZhbHVl
X29yKGxlZnQoYm94ZXMuZmlyc3QoKSkpIC0gZWxsaXBzaXNXaWR0aDsKIH0KIAotc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiB0cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVyVHJ1
bmNhdGlvbihMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSBsaW5lRW5kaW5nVHJ1bmNhdGlvblBv
bGljeSwgU3RyaW5nIGVsbGlwc2lzVGV4dCwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYgZGlz
cGxheUxpbmUsIElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGJvb2wgaXNMYXN0
TGluZVdpdGhJbmxpbmVDb250ZW50KQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiB0
cmFpbGluZ0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVyVHJ1bmNhdGlvbihMaW5lRW5kaW5nVHJ1bmNh
dGlvblBvbGljeSBsaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSwgU3RyaW5nIGVsbGlwc2lzVGV4
dCwgY29uc3QgSW5saW5lRGlzcGxheTo6TGluZSYgZGlzcGxheUxpbmUsIElubGluZURpc3BsYXk6
OkJveGVzJiBkaXNwbGF5Qm94ZXMpCiB7CiAgICAgQVNTRVJUKGxpbmVFbmRpbmdUcnVuY2F0aW9u
UG9saWN5ICE9IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpOb1RydW5jYXRpb24pOwogICAg
IGlmIChkaXNwbGF5Qm94ZXMuaXNFbXB0eSgpKQpAQCAtMjk0LDcgKzI5NCw5IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gdHJhaWxpbmdFbGxpcHNpc1Zpc3VhbFJlY3RBZnRlclRy
dW5jYXRpb24oTGluZUVuCiAgICAgICAgIGlmIChsaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeSA9
PSBMaW5lRW5kaW5nVHJ1bmNhdGlvblBvbGljeTo6V2hlbkNvbnRlbnRPdmVyZmxvd3NJbklubGlu
ZURpcmVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TGluZS5jb250ZW50TG9naWNh
bFdpZHRoKCkgJiYgZGlzcGxheUxpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpID4gZGlzcGxheUxp
bmUubGluZUJveExvZ2ljYWxSZWN0KCkud2lkdGgoKTsKICAgICAgICAgQVNTRVJUKGxpbmVFbmRp
bmdUcnVuY2F0aW9uUG9saWN5ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpXaGVuQ29u
dGVudE92ZXJmbG93c0luQmxvY2tEaXJlY3Rpb24pOwotICAgICAgICByZXR1cm4gIWlzTGFzdExp
bmVXaXRoSW5saW5lQ29udGVudDsKKyAgICAgICAgLy8gV2UgY29uc2lkZXIgZXZlbiB0aGUgbGFz
dCBsaW5lIGFzIG92ZXJmbG93IGluIGJsb2NrIGRpcmVjdGlvbiBkdWUgdG8gdGhlIHByb3BhZ2F0
ZWQgbmF0dXJlIG9mIGxpbmUtY2xhbXAgd2hlcmUgY2xhbXBpbmcgaXMgc2hhcmVkCisgICAgICAg
IC8vIGFjcm9zcyBzaWJsaW5nIElGQ3MuIElmIHRoaXMgSUZDIGhhcyB0aGUgbGFzdCBmb3JtYXR0
ZWQgbGluZSAoaW4gd2hpY2ggY2FzZSB0aGUgbGFzdCBsaW5lIG5lZWRzIG5vIGVsbGlwc2lzKSB0
aGUgcGFyZW50IEJGQyByZWlzc3VlcyBhIGxheW91dCB3aXRoIG5vIGNsYW1waW5nLgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9OwogICAgIGlmICghbmVlZHNFbGxpcHNpcygpKQogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtNDA5LDEwICs0MTEsMTQgQEAgdm9pZCBJbmxpbmVEaXNwbGF5TGlu
ZUJ1aWxkZXI6OmFkZExlZ2FjeUxpbmVDbGFtcFRyYWlsaW5nTGlua0JveElmQXBwbGljYWJsZShj
b24KICAgICBpZiAoIWNsYW1wZWRMaW5lSW5kZXgpCiAgICAgICAgIHJldHVybjsKICAgICBhdXRv
JiBkaXNwbGF5TGluZXMgPSBkaXNwbGF5Q29udGVudC5saW5lczsKLSAgICBpZiAoKmNsYW1wZWRM
aW5lSW5kZXggPj0gZGlzcGxheUxpbmVzLnNpemUoKSB8fCAhZGlzcGxheUxpbmVzWypjbGFtcGVk
TGluZUluZGV4XS5oYXNFbGxpcHNpcygpKSB7CisgICAgaWYgKGRpc3BsYXlMaW5lcy5pc0VtcHR5
KCkgfHwgKmNsYW1wZWRMaW5lSW5kZXggPj0gZGlzcGxheUxpbmVzLnNpemUoKSB8fCAhZGlzcGxh
eUxpbmVzWypjbGFtcGVkTGluZUluZGV4XS5oYXNFbGxpcHNpcygpKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGlmICgqY2xhbXBl
ZExpbmVJbmRleCA9PSBkaXNwbGF5TGluZXMuc2l6ZSgpIC0gMSkgeworICAgICAgICAvLyBObyBu
ZWVkIHRvIGxpbmstYm94IGxpbmUgY2xhbXAgdGhlIGxhc3QgbGluZS4KKyAgICAgICAgcmV0dXJu
OworICAgIH0KIAogICAgIGlmICghaXNFbGlnaWJsZUZvckxpbmtCb3hMaW5lQ2xhbXAoZGlzcGxh
eUNvbnRlbnQuYm94ZXMpKQogICAgICAgICByZXR1cm47CkBAIC00NjQsNyArNDcwLDcgQEAgdm9p
ZCBJbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXI6OmFkZExlZ2FjeUxpbmVDbGFtcFRyYWlsaW5nTGlu
a0JveElmQXBwbGljYWJsZShjb24KICAgICBjbGFtcGVkTGluZS5zZXRIYXNDb250ZW50QWZ0ZXJF
bGxpcHNpc0JveCgpOwogfQogCi12b2lkIElubGluZURpc3BsYXlMaW5lQnVpbGRlcjo6YXBwbHlF
bGxpcHNpc0lmTmVlZGVkKExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5IHRydW5jYXRpb25Qb2xp
Y3ksIElubGluZURpc3BsYXk6OkxpbmUmIGRpc3BsYXlMaW5lLCBJbmxpbmVEaXNwbGF5OjpCb3hl
cyYgZGlzcGxheUJveGVzLCBib29sIGlzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCwgYm9vbCBp
c0xlZ2FjeUxpbmVDbGFtcCkKK3ZvaWQgSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyOjphcHBseUVs
bGlwc2lzSWZOZWVkZWQoTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kgdHJ1bmNhdGlvblBvbGlj
eSwgSW5saW5lRGlzcGxheTo6TGluZSYgZGlzcGxheUxpbmUsIElubGluZURpc3BsYXk6OkJveGVz
JiBkaXNwbGF5Qm94ZXMsIGJvb2wgaXNMZWdhY3lMaW5lQ2xhbXApCiB7CiAgICAgaWYgKHRydW5j
YXRpb25Qb2xpY3kgPT0gTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3k6Ok5vVHJ1bmNhdGlvbiB8
fCAhZGlzcGxheUJveGVzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDg1LDcgKzQ5MSw3
IEBAIHZvaWQgSW5saW5lRGlzcGxheUxpbmVCdWlsZGVyOjphcHBseUVsbGlwc2lzSWZOZWVkZWQo
TGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3kKICAgICBpZiAoZWxsaXBzaXNUZXh0LmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBlbGxpcHNpc1JlY3QgPSB0cmFpbGlu
Z0VsbGlwc2lzVmlzdWFsUmVjdEFmdGVyVHJ1bmNhdGlvbih0cnVuY2F0aW9uUG9saWN5LCBlbGxp
cHNpc1RleHQsIGRpc3BsYXlMaW5lLCBkaXNwbGF5Qm94ZXMsIGlzTGFzdExpbmVXaXRoSW5saW5l
Q29udGVudCkpCisgICAgaWYgKGF1dG8gZWxsaXBzaXNSZWN0ID0gdHJhaWxpbmdFbGxpcHNpc1Zp
c3VhbFJlY3RBZnRlclRydW5jYXRpb24odHJ1bmNhdGlvblBvbGljeSwgZWxsaXBzaXNUZXh0LCBk
aXNwbGF5TGluZSwgZGlzcGxheUJveGVzKSkKICAgICAgICAgZGlzcGxheUxpbmUuc2V0RWxsaXBz
aXMoeyB0cnVuY2F0aW9uUG9saWN5ID09IExpbmVFbmRpbmdUcnVuY2F0aW9uUG9saWN5OjpXaGVu
Q29udGVudE92ZXJmbG93c0luSW5saW5lRGlyZWN0aW9uID8gSW5saW5lRGlzcGxheTo6TGluZTo6
RWxsaXBzaXM6OlR5cGU6OklubGluZSA6IElubGluZURpc3BsYXk6OkxpbmU6OkVsbGlwc2lzOjpU
eXBlOjpCbG9jaywgKmVsbGlwc2lzUmVjdCwgZWxsaXBzaXNUZXh0IH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNw
bGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5TGluZUJ1aWxkZXIu
aAppbmRleCBkZjY5MTUwY2Y5MDkuLjAxM2IzNjVhMTQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNw
bGF5TGluZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlMaW5lQnVpbGRlci5oCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIElubGluZURpc3BsYXk6OkxpbmUgYnVpbGQoY29uc3Qg
TGluZUxheW91dFJlc3VsdCYsIGNvbnN0IExpbmVCb3gmLCBib29sIGxpbmVJc0Z1bGx5VHJ1bmNh
dGVkSW5CbG9ja0RpcmVjdGlvbikgY29uc3Q7CiAKLSAgICBzdGF0aWMgdm9pZCBhcHBseUVsbGlw
c2lzSWZOZWVkZWQoTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6Okxp
bmUmLCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIGJvb2wgaXNMYXN0TGluZVdpdGhJbmxpbmVDb250
ZW50LCBib29sIGlzTGVnYWN5TGluZUNsYW1wKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseUVsbGlw
c2lzSWZOZWVkZWQoTGluZUVuZGluZ1RydW5jYXRpb25Qb2xpY3ksIElubGluZURpc3BsYXk6Okxp
bmUmLCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIGJvb2wgaXNMZWdhY3lMaW5lQ2xhbXApOwogICAg
IHN0YXRpYyB2b2lkIGFkZExlZ2FjeUxpbmVDbGFtcFRyYWlsaW5nTGlua0JveElmQXBwbGljYWJs
ZShjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IElubGluZUxheW91dFN0YXRl
JiwgSW5saW5lRGlzcGxheTo6Q29udGVudCYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IDg3MGJmYTk1Y2U4OS4uYWM2OTRm
NjNjNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5s
aW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL2lubGluZS9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3Bw
CkBAIC03NTksNiArNzU5LDIyIEBAIGJvb2wgTGluZUxheW91dDo6aXNQYWdpbmF0ZWQoKSBjb25z
dAogICAgIHJldHVybiBtX2lubGluZUNvbnRlbnQgJiYgbV9pbmxpbmVDb250ZW50LT5pc1BhZ2lu
YXRlZDsKIH0KIAorYm9vbCBMaW5lTGF5b3V0OjpoYXNFbGxpcHNpc0luQmxvY2tEaXJlY3Rpb25P
bkxhc3RGb3JtYXR0ZWRMaW5lKCkgY29uc3QKK3sKKyAgICBpZiAoIW1faW5saW5lQ29udGVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChhdXRvJiBsaW5lIDogbWFrZVJldmVy
c2VkUmFuZ2UobV9pbmxpbmVDb250ZW50LT5kaXNwbGF5Q29udGVudCgpLmxpbmVzKSkgeworICAg
ICAgICBpZiAobGluZS5ib3hDb3VudCgpID09IDEpIHsKKyAgICAgICAgICAgIC8vIE91dC1vZi1m
bG93IGNvbnRlbnQgY291bGQgaW5pdGlhdGUgYSBsaW5lIHdpdGggbm8gaW5saW5lIGNvbnRlbnQu
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGxhc3RGb3Jt
YXR0ZWRMaW5lRWxsaXBzaXMgPSBsaW5lLmVsbGlwc2lzKCk7CisgICAgICAgIHJldHVybiBsYXN0
Rm9ybWF0dGVkTGluZUVsbGlwc2lzICYmIGxhc3RGb3JtYXR0ZWRMaW5lRWxsaXBzaXMtPnR5cGUg
PT0gSW5saW5lRGlzcGxheTo6TGluZTo6RWxsaXBzaXM6OlR5cGU6OkJsb2NrOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gTGluZUxheW91
dDo6Y2xhbXBlZENvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5s
aW5lQ29udGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9pbmxpbmUvTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCmlu
ZGV4IDhjZmVmNGM3ZTc3My4uYTVkYjUzOWFhZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vaW5saW5lL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9pbmxpbmUvTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAKICAgICBM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiBjbGFtcGVkQ29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKKyAgICBi
b29sIGhhc0VsbGlwc2lzSW5CbG9ja0RpcmVjdGlvbk9uTGFzdEZvcm1hdHRlZExpbmUoKSBjb25z
dDsKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKSBjb25z
dDsKIAogICAgIGJvb2wgaXNQYWdpbmF0ZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXgg
NTJhYmJjNjA1YjY0Li5hNjA5OGZmYmJmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJh
dG9yTGluZUJveC5oIgorI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIgog
I2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQm94SW5saW5lcy5oIgpAQCAtOTYyLDYgKzk2MywyMCBAQCBzdGF0
aWMgc2l6ZV90IGxpbmVDb3VudEZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGJsb2NrRmxvdykK
ICAgICByZXR1cm4gY291bnQ7CiB9CiAKK3N0YXRpYyBSZW5kZXJCbG9ja0Zsb3cqIGJsb2NrQ29u
dGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUoY29uc3QgUmVuZGVyQmxvY2smIGVuY2xvc2luZ0Js
b2NrQ29udGFpbmVyKQoreworICAgIGZvciAoYXV0byogY2hpbGQgPSBlbmNsb3NpbmdCbG9ja0Nv
bnRhaW5lci5sYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGlu
ZygpKSB7CisgICAgICAgIENoZWNrZWRQdHIgYmxvY2tDb250YWluZXIgPSBkeW5hbWljRG93bmNh
c3Q8UmVuZGVyQmxvY2tGbG93PigqY2hpbGQpOworICAgICAgICBpZiAoIWJsb2NrQ29udGFpbmVy
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChhdXRvKiBkZXNjZW5kYW50Um9v
dCA9IGJsb2NrQ29udGFpbmVyRm9yTGFzdEZvcm1hdHRlZExpbmUoKmJsb2NrQ29udGFpbmVyKSkK
KyAgICAgICAgICAgIHJldHVybiBkZXNjZW5kYW50Um9vdDsKKyAgICAgICAgaWYgKGJsb2NrQ29u
dGFpbmVyLT5oYXNMaW5lcygpKQorICAgICAgICAgICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLmdl
dCgpOworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OkNsYW1wZWRDb250ZW50IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlM
aW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbCByZWxheW91dENoaWxkcmVu
KQogewogICAgIGF1dG8gaW5pdGlhbGl6ZSA9IFsmXSB7CkBAIC0xMDE1LDYgKzEwMzAsMTggQEAg
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpDbGFtcGVkQ29udGVudCBSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3g6OmFwcGx5TGkKICAgICAgICAgY2hpbGQtPm1hcmtGb3JQYWdpbmF0aW9u
UmVsYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKICAg
ICB9CisgICAgaWYgKGF1dG8qIGxhc3RSb290ID0gYmxvY2tDb250YWluZXJGb3JMYXN0Rm9ybWF0
dGVkTGluZSgqdGhpcykpIHsKKyAgICAgICAgaWYgKGF1dG8qIGlubGluZUxheW91dCA9IGxhc3RS
b290LT5pbmxpbmVMYXlvdXQoKTsgaW5saW5lTGF5b3V0ICYmIGlubGluZUxheW91dC0+aGFzRWxs
aXBzaXNJbkJsb2NrRGlyZWN0aW9uT25MYXN0Rm9ybWF0dGVkTGluZSgpKSB7CisgICAgICAgICAg
ICBhdXRvIGN1cnJlbnRMaW5lQ2xhbXAgPSBsYXlvdXRTdGF0ZS5sZWdhY3lMaW5lQ2xhbXAoKTsK
KworICAgICAgICAgICAgLy8gTGV0IGxpbmUtY2xhbXAgbG9naWMgcnVuIGJ1dCBtYWtlIHN1cmUg
bm8gY2xhbXBpbmcgaGFwcGVucyAoaXQncyBuZWVkZWQgdG8gbWFrZSBzdXJlIGNlcnRhaW4gZmVh
dHVyZXMgYXJlIGRpc2FibGVkIGxpa2UgZWxsaXBzaXMgaW4gaW5saW5lIGRpcmVjdGlvbikuCisg
ICAgICAgICAgICBsYXlvdXRTdGF0ZS5zZXRMZWdhY3lMaW5lQ2xhbXAoUmVuZGVyTGF5b3V0U3Rh
dGU6OkxlZ2FjeUxpbmVDbGFtcCB7IGlubGluZUxheW91dC0+bGluZUNvdW50KCkgKyAxLCB7IH0s
IHsgfSwgeyB9IH0pOworICAgICAgICAgICAgbGFzdFJvb3QtPnNldENoaWxkTmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGxhc3RSb290LT5sYXlvdXRJZk5lZWRlZCgpOwor
CisgICAgICAgICAgICBsYXlvdXRTdGF0ZS5zZXRMZWdhY3lMaW5lQ2xhbXAoY3VycmVudExpbmVD
bGFtcCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICBhdXRvIGxpbmVDbGFtcCA9ICpsYXlvdXRT
dGF0ZS5sZWdhY3lMaW5lQ2xhbXAoKTsKICAgICBpZiAoIWxpbmVDbGFtcC5jbGFtcGVkQ29udGVu
dExvZ2ljYWxIZWlnaHQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbGlu
ZS1jbGFtcC1jb2xsYXBzZS1uZXN0ZWQtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL2xpbmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3RlZC5o
dG1sCmluZGV4IDllNzZhMGQ4YTRmMC4uMDYzYjZjZTRkYzFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL2xpbmUtY2xhbXAtY29sbGFwc2UtbmVzdGVkLWJsb2Nrcy1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1jbGFtcC1jb2xsYXBzZS1u
ZXN0ZWQtYmxvY2tzLWV4cGVjdGVkLmh0bWwKQEAgLTUsNCArNSw0IEBACiAgIG92ZXJmbG93OiBo
aWRkZW47IAogfQogPC9zdHlsZT4KLTxkaXYgY2xhc3M9Y29udGFpbmVyPlBBU1MgaWYgdGhpcyBp
cyB2aXNpYmxlPC9kaXY+Cis8ZGl2IGNsYXNzPWNvbnRhaW5lcj5QQVNTIGlmIHRoaXMgaXMgdmlz
aWJsZSYjeDIwMjY7PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9k
eW5hbWljLWxpbmUtY2xhbXAtY2hhbmdlLW9uLW5lc3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9keW5hbWljLWxpbmUtY2xhbXAtY2hhbmdlLW9uLW5l
c3RlZC1jb250ZW50LWV4cGVjdGVkLmh0bWwKaW5kZXggNDY1NzAxZTM0NjBhLi44MjRjNzA3ODVk
NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2R5bmFtaWMtbGluZS1jbGFt
cC1jaGFuZ2Utb24tbmVzdGVkLWNvbnRlbnQtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2lubGluZS9keW5hbWljLWxpbmUtY2xhbXAtY2hhbmdlLW9uLW5lc3RlZC1jb250ZW50
LWV4cGVjdGVkLmh0bWwKQEAgLTEgKzEgQEAKLVBBU1MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCitQQVNTJiN4MjAyNjsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUtY2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQt
bGluZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1w
LW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLmUwNWIwM2NkZDViMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1saW5l
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPHN0eWxlPgorZGl2IHsKKyAgZm9udC1m
YW1pbHk6IE1vbm9zcGFjZTsKKyAgZm9udC1zaXplOiAxMnB4OworICBtYXJnaW4tYm90dG9tOiAx
MHB4OworfQorPC9zdHlsZT4KKzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBkb2VzIE5P
VCBzaG93PC9kaXY+Cis8ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2
OzwvZGl2PgorPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rp
dj4KKzxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8
ZGl2PlBBU1MgaWYgdHJhaWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgorPGRpdj5Q
QVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzJiN4MjAyNjs8L2Rpdj4KKzxkaXY+UEFTUyBp
ZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93cyYjeDIwMjY7PC9kaXY+Cis8ZGl2PlBBU1MgaWYgdHJh
aWxpbmcgZWxsaXBzaXMgc2hvd3MmI3gyMDI2OzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9saW5lLWNsYW1wLW9uLWxhc3QtZm9ybWF0dGVkLWxpbmUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvbGluZS1jbGFtcC1vbi1sYXN0LWZvcm1hdHRlZC1s
aW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZmI1YjJm
MTU1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L2xpbmUt
Y2xhbXAtb24tbGFzdC1mb3JtYXR0ZWQtbGluZS5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzxtZXRh
IG5hbWU9ImZ1enp5IiBjb250ZW50PSJtYXhEaWZmZXJlbmNlPTEyNzsgdG90YWxQaXhlbHM9MC0x
MSIgLz4KKzxzdHlsZT4KKy5jbGFtcCB7CisgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAtd2Vi
a2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOworICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7CisgIGZv
bnQtZmFtaWx5OiBNb25vc3BhY2U7CisgIGZvbnQtc2l6ZTogMTJweDsKKyAgb3ZlcmZsb3c6IGhp
ZGRlbjsKKyAgbWFyZ2luLWJvdHRvbTogMTBweDsKK30KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPSJj
bGFtcCI+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBkb2VzIE5PVCBzaG93PC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2PjxkaXY+PGRpdiBzdHls
ZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dz
PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY2xhbXAiPgorICA8ZGl2
PjxkaXY+PGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+PC9kaXY+PC9k
aXY+CisgIDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFt
cCI+CisgIDxkaXY+PGRpdj48ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRo
OiAxMDAwcHg7Ij5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNob3dzPC9kaXY+PC9kaXY+PC9k
aXY+CisgIDxkaXY+c2Vjb25kIGxpbmU8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFt
cCI+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2PgorICA8ZGl2
PgorICAgIDxkaXY+CisgICAgICA8ZGl2PnNlY29uZCBsaW5lPC9kaXY+CisgICAgPC9kaXY+Cisg
IDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj5QQVNTIGlmIHRy
YWlsaW5nIGVsbGlwc2lzIHNob3dzPGJyPnNlY29uZDxicj50aGlyZCBsaW5lPC9kaXY+CisgIDxk
aXY+CisgICAgPGRpdj4KKyAgICAgIDxkaXY+Zm9ydGggbGluZTwvZGl2PgorICAgIDwvZGl2Pgor
ICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjbGFtcCI+CisgIDxkaXY+PC9kaXY+Cisg
IDxkaXY+PC9kaXY+CisgIDxkaXY+UEFTUyBpZiB0cmFpbGluZyBlbGxpcHNpcyBzaG93czwvZGl2
PgorICA8ZGl2PgorICAgIDxkaXY+CisgICAgICA8ZGl2PnNlY29uZCBsaW5lPC9kaXY+CisgICAg
PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNsYW1wIj4KKyAgPGRpdj48
L2Rpdj4KKyAgPGRpdj48L2Rpdj4KKyAgPGRpdj5QQVNTIGlmIHRyYWlsaW5nIGVsbGlwc2lzIHNo
b3dzPC9kaXY+CisgIDxkaXY+PC9kaXY+CisgIDxkaXY+CisgICAgPGRpdj4KKyAgICAgIDxkaXY+
c2Vjb25kIGxpbmU8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Rpdj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>