<?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>304256</bug_id>
          
          <creation_ts>2025-12-16 08:31:20 -0800</creation_ts>
          <short_desc>[cleanup] Modernize first/lastLineBaseline functions (RenderTable, RenderTableSection, RenderGrid and RenderFlexibleBox)</short_desc>
          <delta_ts>2025-12-16 13:58:46 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2166242</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2025-12-16 08:31:20 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166244</commentid>
    <comment_count>1</comment_count>
      <attachid>477750</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-16 08:34:10 -0800</bug_when>
    <thetext>Created attachment 477750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166252</commentid>
    <comment_count>2</comment_count>
      <attachid>477751</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-16 08:53:54 -0800</bug_when>
    <thetext>Created attachment 477751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166280</commentid>
    <comment_count>3</comment_count>
      <attachid>477753</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-16 10:34:27 -0800</bug_when>
    <thetext>Created attachment 477753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166281</commentid>
    <comment_count>4</comment_count>
      <attachid>477753</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2025-12-16 10:40:02 -0800</bug_when>
    <thetext>Comment on attachment 477753
Patch

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

&gt; Source/WebCore/rendering/RenderTable.cpp:1622
&gt; +    return baseline ? std::make_optional(topNonEmptySection-&gt;logicalTop().toInt() + *baseline) : std::nullopt;

maybe std::make_optional can be just std::optional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166288</commentid>
    <comment_count>5</comment_count>
      <attachid>477754</attachid>
    <who name="alan">zalan</who>
    <bug_when>2025-12-16 11:03:57 -0800</bug_when>
    <thetext>Created attachment 477754
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166345</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-12-16 13:38:37 -0800</bug_when>
    <thetext>Committed 304539@main (1a7ed8b60310): &lt;https://commits.webkit.org/304539@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 477754.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2166348</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-12-16 13:39:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/166644167&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477750</attachid>
            <date>2025-12-16 08:34:10 -0800</date>
            <delta_ts>2025-12-16 08:53:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-304256-20251216083409.patch</filename>
            <type>text/plain</type>
            <size>15885</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2NjRhYmYyN2IzMTYzOTA3ODE5Mjc3NTllMWYwNjg2NzU4MzdiZTU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTYgRGVjIDIwMjUgMDg6MzE6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gTW9kZXJuaXplIGZpcnN0L2xhc3RMaW5lQmFzZWxpbmUgZnVuY3Rpb25zCiAoUmVuZGVyVGFi
bGUsIFJlbmRlclRhYmxlU2VjdGlvbiwgUmVuZGVyR3JpZCBhbmQgUmVuZGVyRmxleGlibGVCb3gp
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjU2CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIGFkZGl0aW9uIHRvIG1vZGVybml6aW5nLCBmbG9vcmlu
ZyB0byBpbnQgaXMgbm93IGNvbnNpc3RlbnQgYWNyb3NzIHJlbmRlcmVycy4KKFRoaXMgaXMgYWxz
byBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBzdWJwaXhlbCBpbmxpbmUgbGF5b3V0KQoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OmZpcnN0TGluZUJhc2VsaW5lIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlckZsZXhpYmxlQm94OjpsYXN0TGluZUJhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpmaXJz
dExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXN0TGluZUJhc2Vs
aW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmJhc2VsaW5lR3JpZEl0ZW0gY29uc3Qp
OgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z2V0QmFzZWxpbmVHcmlkSXRlbSBjb25zdCk6IERlbGV0
ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmZp
cnN0TGluZUJhc2VsaW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXN0TGluZUJh
c2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQmFzZWxpbmUg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpsYXN0TGluZUJhc2VsaW5lIGNv
bnN0KToKLS0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAg
fCA0NCArKysrKysrKystLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgICAgICAgfCAzOCArKysrKysrKystLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcCAgICAgIHwgMzAgKysrKysrLS0tLS0tLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgIHwgMTEgKysrLS0KIDUgZmlsZXMgY2hh
bmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggY2E1MzZmZjA0MDI2Li40
ZmI3ZTAzZDJhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcApAQCAtMzA5LDI2ICszMDksMjYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlmICgo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAhbV9udW1iZXJPZkZsZXhJ
dGVtc09uRmlyc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4SXRlbUZv
ckZpcnN0QmFzZWxpbmUoKTsKKyAgICBDaGVja2VkUHRyIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4
SXRlbUZvckZpcnN0QmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lRmxleEl0ZW0pCiAgICAg
ICAgIHJldHVybiB7IH07CiAKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7IH07CiAgICAgaWYgKCFpc0NvbHVtbkZsb3coKSAmJiAhbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgKGNyb3NzQXhpc0V4dGVudEZvckZsZXhJdGVtKCpiYXNlbGluZUZsZXhJdGVtKSArIGJh
c2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxUb3AoKSkudG9JbnQoKSB9OwotICAgIGlmIChpc0NvbHVt
bkZsb3coKSAmJiBtYWluQXhpc0lzRmxleEl0ZW1JbmxpbmVBeGlzKCpiYXNlbGluZUZsZXhJdGVt
KSkKLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAobWFpbkF4aXNFeHRlbnRGb3JGbGV4SXRl
bSgqYmFzZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRv
SW50KCkgfTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYmFzZWxpbmUgPSBiYXNl
bGluZUZsZXhJdGVtLT5maXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsK
KyAgICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVG
bGV4SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFp
bkF4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAo
YXV0byBmaXJzdExpbmVCYXNlbGluZSA9IGJhc2VsaW5lRmxleEl0ZW0tPmZpcnN0TGluZUJhc2Vs
aW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7
CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0
TGluZUJveEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBt
b2RlIHJvb3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVy
ZSB0aGUgZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1
dG8gZGlyZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246
Okhvcml6b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4
Ym94V3JpdGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJ
dGVtLCBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0
aW5nTW9kZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFz
ZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpOworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVu
dFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJh
c2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFz
ZWxpbmVGbGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJl
Y3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gTGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+
bG9naWNhbFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxv
Z2ljYWxUb3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsIDxMYXlv
dXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CkBAIC0z
MzYsMjYgKzMzNiwyNiBAQCBzdGQ6Om9wdGlvbmFsIDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJs
ZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290
KCkgfHwgIW1fbnVtYmVyT2ZGbGV4SXRlbXNPbkxhc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0
Q29udGFpbm1lbnQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5l
RmxleEl0ZW0gPSBmbGV4SXRlbUZvckxhc3RCYXNlbGluZSgpOworICAgIENoZWNrZWRQdHIgYmFz
ZWxpbmVGbGV4SXRlbSA9IGZsZXhJdGVtRm9yTGFzdEJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNl
bGluZUZsZXhJdGVtKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgYXV0byBiYXNlbGluZSA9
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OwogICAgIGlmICghaXNDb2x1bW5GbG93KCkg
JiYgIW1haW5BeGlzSXNGbGV4SXRlbUlubGluZUF4aXMoKmJhc2VsaW5lRmxleEl0ZW0pKQotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFz
ZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRvSW50KCkg
fTsKLSAgICBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVtSW5saW5lQXhp
cygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKG1haW5B
eGlzRXh0ZW50Rm9yRmxleEl0ZW0oKmJhc2VsaW5lRmxleEl0ZW0pICsgYmFzZWxpbmVGbGV4SXRl
bS0+bG9naWNhbFRvcCgpKS50b0ludCgpIH07Ci0KLSAgICBhdXRvIGJhc2VsaW5lID0gYmFzZWxp
bmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsKKyAg
ICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4
SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVt
SW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFpbkF4
aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAoYXV0
byBsYXN0TGluZUJhc2VsaW5lID0gYmFzZWxpbmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgp
KQorICAgICAgICBiYXNlbGluZSA9IGxhc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJv
eEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBtb2RlIHJv
b3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVyZSB0aGUg
ZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1dG8gZGly
ZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6
b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4Ym94V3Jp
dGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBCYXNlbGlu
ZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJdGVtLCBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9k
ZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVT
eW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNhbFRvcCgp
OworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRl
Ojpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJhc2VsaW5l
ID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVG
bGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24s
IEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxU
b3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyZjk3ZmJkNzA3YWQuLjVkOWFjODU2
YzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkyMyw1
MiArMTkyMyw1NiBAQCBib29sIFJlbmRlckdyaWQ6OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JHcmlk
SXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBTdHlsZQogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgaWYg
KChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFjdXJyZW50R3JpZCgp
Lmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIC8vIEZp
bmRpbmcgdGhlIGZpcnN0IGdyaWQgaXRlbSBpbiBncmlkIG9yZGVyLgotICAgIGF1dG8gYmFzZWxp
bmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpCYXNlbGluZSk7
CisgICAgQ2hlY2tlZFB0ciBiYXNlbGluZUdyaWRJdGVtID0gdGhpcy0+YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb246OkJhc2VsaW5lKTsKIAogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAo
IUdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxp
bmVHcmlkSXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RM
aW5lQmFzZWxpbmUoKTsKIAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25z
Ojppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpu
dWxsb3B0IDogYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICAvLyBX
ZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYgbm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgaWYg
KCFiYXNlbGluZSkgeworICAgICAgICAvLyBXZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYg
bm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGly
ZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdl
J3JlIGEgd3JpdGluZwogICAgICAgICAvLyBtb2RlIHJvb3QuIFRoaXMgd291bGQgYWxzbyBmaXgg
c29tZSBjYXNlcyB3aGVyZSB0aGUgZ3JpZCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIu
CiAgICAgICAgIGF1dG8gZ3JpZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwog
ICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpk
b21pbmFudEJhc2VsaW5lKGdyaWRXcml0aW5nTW9kZSk7CiAgICAgICAgIGF1dG8gZGlyZWN0aW9u
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6b250YWwg
OiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKLSAgICAgICAgcmV0dXJuIEJhc2VsaW5lQWxpZ25t
ZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50
QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0Vk
Z2U6OkJvcmRlckJveCkgKyBsb2dpY2FsVG9wRm9yQ2hpbGQoKmJhc2VsaW5lR3JpZEl0ZW0pOwor
ICAgICAgICBiYXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFz
ZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9k
ZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGJhc2VsaW5lR3JpZEl0ZW0tPmxvZ2ljYWxUb3AoKS50
b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRl
ckdyaWQ6Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewogICAgIGlmIChpc1dyaXRpbmdNb2Rl
Um9vdCgpIHx8ICFjdXJyZW50R3JpZCgpLmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5
b3V0Q29udGFpbm1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYmFzZWxpbmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3Jp
ZEl0ZW0oSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmUpOworICAgIENoZWNrZWRQdHIgYmFzZWxp
bmVHcmlkSXRlbSA9IHRoaXMtPmJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpMYXN0QmFz
ZWxpbmUpOwogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gYmFzZWxpbmUgPSBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAoIUdyaWRMYXlvdXRGdW5jdGlvbnM6
OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxpbmVHcmlkSXRlbSkpCisgICAgICAg
IGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwogCi0gICAg
YXV0byBiYXNlbGluZSA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVt
KCp0aGlzLCAqYmFzZWxpbmVHcmlkSXRlbSkgPyBzdGQ6Om51bGxvcHQgOiBiYXNlbGluZUdyaWRJ
dGVtLT5sYXN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNlbGluZSkgewogICAgICAgICBh
dXRvIGRpcmVjdGlvbiA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBMaW5lRGlyZWN0aW9u
OjpIb3Jpem9udGFsIDogTGluZURpcmVjdGlvbjo6VmVydGljYWw7CiAgICAgICAgIGF1dG8gZ3Jp
ZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwogICAgICAgICBhdXRvIGRvbWlu
YW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGdy
aWRXcml0aW5nTW9kZSk7Ci0gICAgICAgIHJldHVybiBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpz
eW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUdyaWRJdGVtLCBkb21pbmFudEJhc2VsaW5lLCBn
cmlkV3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJC
b3gpICsgbG9naWNhbFRvcEZvckNoaWxkKCpiYXNlbGluZUdyaWRJdGVtKTsKLQorICAgICAgICBi
YXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJh
c2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0
aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQotCi0gICAgcmV0
dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyBiYXNlbGluZUdyaWRJdGVtLT5sb2dpY2FsVG9wKCkudG9J
bnQoKTsKKyAgICByZXR1cm4gYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRvcCgpLnRvSW50KCkg
KyAqYmFzZWxpbmU7CiB9CiAKLVNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBSZW5kZXJH
cmlkOjpnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0Citj
b25zdCBSZW5kZXJCb3gqIFJlbmRlckdyaWQ6OmJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9u
IGFsaWdubWVudCkgY29uc3QKIHsKICAgICBBU1NFUlQoYWxpZ25tZW50ID09IEl0ZW1Qb3NpdGlv
bjo6QmFzZWxpbmUgfHwgYWxpZ25tZW50ID09IEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsK
LSAgICBjb25zdCBSZW5kZXJCb3gqIGJhc2VsaW5lR3JpZEl0ZW0gPSBudWxscHRyOworICAgIGNv
bnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbSA9IHsgfTsKICAgICB1bnNpZ25lZCBudW1D
b2x1bW5zID0gY3VycmVudEdyaWQoKS5udW1UcmFja3MoU3R5bGU6OkdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbjo6Q29sdW1ucyk7CiAgICAgYXV0byByb3dJbmRleERldGVybWluaW5nQmFzZWxpbmUg
PSBhbGlnbm1lbnQgPT0gSXRlbVBvc2l0aW9uOjpCYXNlbGluZSA/IDAgOiBjdXJyZW50R3JpZCgp
Lm51bVRyYWNrcyhTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpSb3dzKSAtIDE7CiAg
ICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgbnVtQ29sdW1uczsgY29sdW1uKysp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDFmMzQ4MjZmZTNhZi4u
ZWExODM3MmYxZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI1
Nyw3ICsyNTcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBm
aXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwotICAgIFNpbmdsZVRocmVhZFdl
YWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1l
bnQpIGNvbnN0OworICAgIGNvbnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbShJdGVtUG9z
aXRpb24gYWxpZ25tZW50KSBjb25zdDsKIAogICAgIExheW91dFVuaXQgY29sdW1uQXhpc0Jhc2Vs
aW5lT2Zmc2V0Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0
VW5pdCByb3dBeGlzQmFzZWxpbmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDM2NDgz
YTFkYjU5My4uNTFkMWNkODUxYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKQEAgLTE2MDMsMjMgKzE2MDMsMjMgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJUYWJsZTo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIC8vIFRoaXMgaXMg
YWxzbyBuZWVkZWQgdG8gcHJvcGVybHkgZGV0ZXJtaW5lIHRoZSBiYXNlbGluZSBvZiBhIGNlbGwg
aWYgaXQgaGFzIGEgdGFibGUgY2hpbGQuCiAKICAgICBpZiAoKGlzV3JpdGluZ01vZGVSb290KCkg
JiYgIWlzRmxleEl0ZW0oKSkgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQotICAg
ICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOworICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgcmVjYWxjU2VjdGlvbnNJZk5lZWRlZCgpOwogCi0gICAgY29uc3QgUmVuZGVy
VGFibGVTZWN0aW9uKiB0b3BOb25FbXB0eVNlY3Rpb24gPSB0aGlzLT50b3BOb25FbXB0eVNlY3Rp
b24oKTsKKyAgICBDaGVja2VkUHRyIHRvcE5vbkVtcHR5U2VjdGlvbiA9IHRoaXMtPnRvcE5vbkVt
cHR5U2VjdGlvbigpOwogICAgIGlmICghdG9wTm9uRW1wdHlTZWN0aW9uKQotICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOwotCi0gICAgaWYgKGF1dG8gYmFzZWxpbmUg
PSB0b3BOb25FbXB0eVNlY3Rpb24tPmZpcnN0TGluZUJhc2VsaW5lKCkpCi0gICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRv
cCgpICsgYmFzZWxpbmUudmFsdWUoKSk7Ci0KLSAgICAvLyBPdGhlciBicm93c2VycyB1c2UgdGhl
IHRvcCBvZiB0aGUgc2VjdGlvbiBhcyB0aGUgYmFzZWxpbmUgaWYgaXRzIGZpcnN0IHJvdyBpcyBl
bXB0eSBvZiBjZWxscyBvciBjb250ZW50LgotICAgIC8vIFRoZSBiYXNlbGluZSBvZiBhbiBlbXB0
eSByb3cgaXNuJ3Qgc3BlY2lmaWVkIGJ5IENTUyAyLjEuCi0gICAgaWYgKHRvcE5vbkVtcHR5U2Vj
dGlvbi0+Zmlyc3RSb3coKSAmJiAhdG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpLT5maXJz
dENlbGwoKSkKLSAgICAgICAgcmV0dXJuIHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRvcCgp
OworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4oKTsKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7
IH07CisgICAgaWYgKGF1dG8gZmlyc3RMaW5lQmFzZWxpbmUgPSB0b3BOb25FbXB0eVNlY3Rpb24t
PmZpcnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxp
bmU7CisgICAgZWxzZSBpZiAodG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpICYmICF0b3BO
b25FbXB0eVNlY3Rpb24tPmZpcnN0Um93KCktPmZpcnN0Q2VsbCgpKSB7CisgICAgICAgIC8vIE90
aGVyIGJyb3dzZXJzIHVzZSB0aGUgdG9wIG9mIHRoZSBzZWN0aW9uIGFzIHRoZSBiYXNlbGluZSBp
ZiBpdHMgZmlyc3Qgcm93IGlzIGVtcHR5IG9mIGNlbGxzIG9yIGNvbnRlbnQuCisgICAgICAgIC8v
IFRoZSBiYXNlbGluZSBvZiBhbiBlbXB0eSByb3cgaXNuJ3Qgc3BlY2lmaWVkIGJ5IENTUyAyLjEu
CisgICAgICAgIGJhc2VsaW5lID0gMF9sdTsKKyAgICB9CisgICAgcmV0dXJuIGJhc2VsaW5lID8g
c3RkOjptYWtlX29wdGlvbmFsKHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRvcCgpLnRvSW50
KCkgKyAqYmFzZWxpbmUpIDogc3RkOjpudWxsb3B0OwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IFJlbmRlclRhYmxlOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTE2MjksMTIg
KzE2MjksMTIgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJUYWJsZTo6bGFzdExp
bmVCYXNlbGluZSgpIGNvbnN0CiAKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CiAKLSAg
ICBhdXRvKiB0YWJsZVNlY3Rpb24gPSBib3R0b21Ob25FbXB0eVNlY3Rpb24oKTsKKyAgICBDaGVj
a2VkUHRyIHRhYmxlU2VjdGlvbiA9IGJvdHRvbU5vbkVtcHR5U2VjdGlvbigpOwogICAgIGlmICgh
dGFibGVTZWN0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGF1dG8gYmFzZWxp
bmUgPSB0YWJsZVNlY3Rpb24tPmxhc3RMaW5lQmFzZWxpbmUoKSkKLSAgICAgICAgcmV0dXJuIExh
eW91dFVuaXQgeyBiYXNlbGluZS52YWx1ZSgpICsgdGFibGVTZWN0aW9uLT5sb2dpY2FsVG9wKCkg
fTsKKyAgICBpZiAoYXV0byBsYXN0TGluZUJhc2VsaW5lID0gdGFibGVTZWN0aW9uLT5sYXN0TGlu
ZUJhc2VsaW5lKCkpCisgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgdGFibGVTZWN0aW9uLT5s
b2dpY2FsVG9wKCkudG9JbnQoKSArICpsYXN0TGluZUJhc2VsaW5lIH07CiAgICAgcmV0dXJuIHsg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcAppbmRleCBiMWMxYTNkYWY0ODkuLmUyN2E4NmZlMzExMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTg5MiwxMSArODkyLDEw
IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNPdXRlckJvcmRlcigpCiBzdGQ6Om9w
dGlvbmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQmFzZWxpbmUo
KSBjb25zdAogewogICAgIGlmICghbV9ncmlkLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4oKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIExheW91
dFVuaXQgZmlyc3RMaW5lQmFzZWxpbmUgPSBtX2dyaWRbMF0uYmFzZWxpbmU7Ci0gICAgaWYgKGZp
cnN0TGluZUJhc2VsaW5lKQotICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUgKyBtX3Jv
d1Bvc1swXTsKKyAgICBpZiAoYXV0byBmaXJzdExpbmVCYXNlbGluZSA9IG1fZ3JpZC5maXJzdCgp
LmJhc2VsaW5lKQorICAgICAgICByZXR1cm4gbV9yb3dQb3MuZmlyc3QoKSArIGZpcnN0TGluZUJh
c2VsaW5lOwogCiAgICAgcmV0dXJuIGJhc2VsaW5lRnJvbUNlbGxDb250ZW50RWRnZXMoSXRlbVBv
c2l0aW9uOjpCYXNlbGluZSk7CiB9CkBAIC05MDYsOCArOTA1LDggQEAgc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiBSZW5kZXJUYWJsZVNlY3Rpb246Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAog
ICAgIGlmICghbV9ncmlkLnNpemUoKSkKICAgICAgICAgcmV0dXJuICB7IH07CiAgICAgCi0gICAg
aWYgKGF1dG8gbGFzdExpbmVCYXNlbGluZSA9IG1fZ3JpZFttX2dyaWQuc2l6ZSgpIC0gMV0uYmFz
ZWxpbmUpCi0gICAgICAgIHJldHVybiBsYXN0TGluZUJhc2VsaW5lICsgbV9yb3dQb3NbbV9ncmlk
LnNpemUoKSAtIDFdOworICAgIGlmIChhdXRvIGxhc3RMaW5lQmFzZWxpbmUgPSBtX2dyaWQubGFz
dCgpLmJhc2VsaW5lKQorICAgICAgICByZXR1cm4gbV9yb3dQb3NbbV9ncmlkLnNpemUoKSAtIDFd
ICsgbGFzdExpbmVCYXNlbGluZTsKIAogICAgIHJldHVybiBiYXNlbGluZUZyb21DZWxsQ29udGVu
dEVkZ2VzKEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477751</attachid>
            <date>2025-12-16 08:53:54 -0800</date>
            <delta_ts>2025-12-16 10:34:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-304256-20251216085354.patch</filename>
            <type>text/plain</type>
            <size>15870</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5YmZjYzkzZGI0NDVjMGQ5Y2UwMGNkZmQ5YWE0NjNjNWRiNGUxZTY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTYgRGVjIDIwMjUgMDg6MzE6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gTW9kZXJuaXplIGZpcnN0L2xhc3RMaW5lQmFzZWxpbmUgZnVuY3Rpb25zCiAoUmVuZGVyVGFi
bGUsIFJlbmRlclRhYmxlU2VjdGlvbiwgUmVuZGVyR3JpZCBhbmQgUmVuZGVyRmxleGlibGVCb3gp
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjU2CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIGFkZGl0aW9uIHRvIG1vZGVybml6aW5nLCBmbG9vcmlu
ZyB0byBpbnQgaXMgbm93IGNvbnNpc3RlbnQgYWNyb3NzIHJlbmRlcmVycy4KKFRoaXMgaXMgYWxz
byBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBzdWJwaXhlbCBpbmxpbmUgbGF5b3V0KQoK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgooV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OmZpcnN0TGluZUJhc2VsaW5lIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlckZsZXhpYmxlQm94OjpsYXN0TGluZUJhc2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpmaXJz
dExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXN0TGluZUJhc2Vs
aW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmJhc2VsaW5lR3JpZEl0ZW0gY29uc3Qp
OgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z2V0QmFzZWxpbmVHcmlkSXRlbSBjb25zdCk6IERlbGV0
ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgooV2ViQ29yZTo6UmVuZGVyVGFibGU6OmZp
cnN0TGluZUJhc2VsaW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXN0TGluZUJh
c2VsaW5lIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQmFzZWxpbmUg
Y29uc3QpOgooV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpsYXN0TGluZUJhc2VsaW5lIGNv
bnN0KToKLS0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAg
fCA0NCArKysrKysrKystLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgICAgICAgfCAzOCArKysrKysrKystLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmNwcCAgICAgIHwgMzAgKysrKysrLS0tLS0tLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgIHwgMTEgKysrLS0KIDUgZmlsZXMgY2hh
bmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggY2E1MzZmZjA0MDI2Li40
ZmI3ZTAzZDJhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcApAQCAtMzA5LDI2ICszMDksMjYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlmICgo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAhbV9udW1iZXJPZkZsZXhJ
dGVtc09uRmlyc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4SXRlbUZv
ckZpcnN0QmFzZWxpbmUoKTsKKyAgICBDaGVja2VkUHRyIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4
SXRlbUZvckZpcnN0QmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lRmxleEl0ZW0pCiAgICAg
ICAgIHJldHVybiB7IH07CiAKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7IH07CiAgICAgaWYgKCFpc0NvbHVtbkZsb3coKSAmJiAhbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgKGNyb3NzQXhpc0V4dGVudEZvckZsZXhJdGVtKCpiYXNlbGluZUZsZXhJdGVtKSArIGJh
c2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxUb3AoKSkudG9JbnQoKSB9OwotICAgIGlmIChpc0NvbHVt
bkZsb3coKSAmJiBtYWluQXhpc0lzRmxleEl0ZW1JbmxpbmVBeGlzKCpiYXNlbGluZUZsZXhJdGVt
KSkKLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAobWFpbkF4aXNFeHRlbnRGb3JGbGV4SXRl
bSgqYmFzZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRv
SW50KCkgfTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYmFzZWxpbmUgPSBiYXNl
bGluZUZsZXhJdGVtLT5maXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsK
KyAgICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVG
bGV4SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFp
bkF4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAo
YXV0byBmaXJzdExpbmVCYXNlbGluZSA9IGJhc2VsaW5lRmxleEl0ZW0tPmZpcnN0TGluZUJhc2Vs
aW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7
CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0
TGluZUJveEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBt
b2RlIHJvb3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVy
ZSB0aGUgZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1
dG8gZGlyZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246
Okhvcml6b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4
Ym94V3JpdGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJ
dGVtLCBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0
aW5nTW9kZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFz
ZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpOworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVu
dFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJh
c2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFz
ZWxpbmVGbGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJl
Y3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gTGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+
bG9naWNhbFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxv
Z2ljYWxUb3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsIDxMYXlv
dXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CkBAIC0z
MzYsMjYgKzMzNiwyNiBAQCBzdGQ6Om9wdGlvbmFsIDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJs
ZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290
KCkgfHwgIW1fbnVtYmVyT2ZGbGV4SXRlbXNPbkxhc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0
Q29udGFpbm1lbnQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5l
RmxleEl0ZW0gPSBmbGV4SXRlbUZvckxhc3RCYXNlbGluZSgpOworICAgIENoZWNrZWRQdHIgYmFz
ZWxpbmVGbGV4SXRlbSA9IGZsZXhJdGVtRm9yTGFzdEJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNl
bGluZUZsZXhJdGVtKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgYXV0byBiYXNlbGluZSA9
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OwogICAgIGlmICghaXNDb2x1bW5GbG93KCkg
JiYgIW1haW5BeGlzSXNGbGV4SXRlbUlubGluZUF4aXMoKmJhc2VsaW5lRmxleEl0ZW0pKQotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFz
ZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRvSW50KCkg
fTsKLSAgICBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVtSW5saW5lQXhp
cygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKG1haW5B
eGlzRXh0ZW50Rm9yRmxleEl0ZW0oKmJhc2VsaW5lRmxleEl0ZW0pICsgYmFzZWxpbmVGbGV4SXRl
bS0+bG9naWNhbFRvcCgpKS50b0ludCgpIH07Ci0KLSAgICBhdXRvIGJhc2VsaW5lID0gYmFzZWxp
bmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsKKyAg
ICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4
SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVt
SW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFpbkF4
aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAoYXV0
byBsYXN0TGluZUJhc2VsaW5lID0gYmFzZWxpbmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgp
KQorICAgICAgICBiYXNlbGluZSA9IGxhc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJv
eEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBtb2RlIHJv
b3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVyZSB0aGUg
ZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1dG8gZGly
ZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6
b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4Ym94V3Jp
dGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBCYXNlbGlu
ZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJdGVtLCBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9k
ZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVT
eW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNhbFRvcCgp
OworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRl
Ojpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJhc2VsaW5l
ID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVG
bGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24s
IEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxU
b3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyZjk3ZmJkNzA3YWQuLjVkOWFjODU2
YzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkyMyw1
MiArMTkyMyw1NiBAQCBib29sIFJlbmRlckdyaWQ6OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JHcmlk
SXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBTdHlsZQogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgaWYg
KChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFjdXJyZW50R3JpZCgp
Lmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIC8vIEZp
bmRpbmcgdGhlIGZpcnN0IGdyaWQgaXRlbSBpbiBncmlkIG9yZGVyLgotICAgIGF1dG8gYmFzZWxp
bmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpCYXNlbGluZSk7
CisgICAgQ2hlY2tlZFB0ciBiYXNlbGluZUdyaWRJdGVtID0gdGhpcy0+YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb246OkJhc2VsaW5lKTsKIAogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAo
IUdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxp
bmVHcmlkSXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RM
aW5lQmFzZWxpbmUoKTsKIAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25z
Ojppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpu
dWxsb3B0IDogYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICAvLyBX
ZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYgbm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgaWYg
KCFiYXNlbGluZSkgeworICAgICAgICAvLyBXZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYg
bm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGly
ZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdl
J3JlIGEgd3JpdGluZwogICAgICAgICAvLyBtb2RlIHJvb3QuIFRoaXMgd291bGQgYWxzbyBmaXgg
c29tZSBjYXNlcyB3aGVyZSB0aGUgZ3JpZCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIu
CiAgICAgICAgIGF1dG8gZ3JpZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwog
ICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpk
b21pbmFudEJhc2VsaW5lKGdyaWRXcml0aW5nTW9kZSk7CiAgICAgICAgIGF1dG8gZGlyZWN0aW9u
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6b250YWwg
OiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKLSAgICAgICAgcmV0dXJuIEJhc2VsaW5lQWxpZ25t
ZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50
QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0Vk
Z2U6OkJvcmRlckJveCkgKyBsb2dpY2FsVG9wRm9yQ2hpbGQoKmJhc2VsaW5lR3JpZEl0ZW0pOwor
ICAgICAgICBiYXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFz
ZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9k
ZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGJhc2VsaW5lR3JpZEl0ZW0tPmxvZ2ljYWxUb3AoKS50
b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRl
ckdyaWQ6Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewogICAgIGlmIChpc1dyaXRpbmdNb2Rl
Um9vdCgpIHx8ICFjdXJyZW50R3JpZCgpLmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5
b3V0Q29udGFpbm1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAg
cmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYmFzZWxpbmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3Jp
ZEl0ZW0oSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmUpOworICAgIENoZWNrZWRQdHIgYmFzZWxp
bmVHcmlkSXRlbSA9IHRoaXMtPmJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpMYXN0QmFz
ZWxpbmUpOwogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gYmFzZWxpbmUgPSBzdGQ6
Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAoIUdyaWRMYXlvdXRGdW5jdGlvbnM6
OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxpbmVHcmlkSXRlbSkpCisgICAgICAg
IGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwogCi0gICAg
YXV0byBiYXNlbGluZSA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVt
KCp0aGlzLCAqYmFzZWxpbmVHcmlkSXRlbSkgPyBzdGQ6Om51bGxvcHQgOiBiYXNlbGluZUdyaWRJ
dGVtLT5sYXN0TGluZUJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNlbGluZSkgewogICAgICAgICBh
dXRvIGRpcmVjdGlvbiA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBMaW5lRGlyZWN0aW9u
OjpIb3Jpem9udGFsIDogTGluZURpcmVjdGlvbjo6VmVydGljYWw7CiAgICAgICAgIGF1dG8gZ3Jp
ZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwogICAgICAgICBhdXRvIGRvbWlu
YW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGdy
aWRXcml0aW5nTW9kZSk7Ci0gICAgICAgIHJldHVybiBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpz
eW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUdyaWRJdGVtLCBkb21pbmFudEJhc2VsaW5lLCBn
cmlkV3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJC
b3gpICsgbG9naWNhbFRvcEZvckNoaWxkKCpiYXNlbGluZUdyaWRJdGVtKTsKLQorICAgICAgICBi
YXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJh
c2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0
aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQotCi0gICAgcmV0
dXJuIGJhc2VsaW5lLnZhbHVlKCkgKyBiYXNlbGluZUdyaWRJdGVtLT5sb2dpY2FsVG9wKCkudG9J
bnQoKTsKKyAgICByZXR1cm4gYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRvcCgpLnRvSW50KCkg
KyAqYmFzZWxpbmU7CiB9CiAKLVNpbmdsZVRocmVhZFdlYWtQdHI8UmVuZGVyQm94PiBSZW5kZXJH
cmlkOjpnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0Citj
b25zdCBSZW5kZXJCb3gqIFJlbmRlckdyaWQ6OmJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9u
IGFsaWdubWVudCkgY29uc3QKIHsKICAgICBBU1NFUlQoYWxpZ25tZW50ID09IEl0ZW1Qb3NpdGlv
bjo6QmFzZWxpbmUgfHwgYWxpZ25tZW50ID09IEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsK
LSAgICBjb25zdCBSZW5kZXJCb3gqIGJhc2VsaW5lR3JpZEl0ZW0gPSBudWxscHRyOworICAgIGNv
bnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbSA9IHsgfTsKICAgICB1bnNpZ25lZCBudW1D
b2x1bW5zID0gY3VycmVudEdyaWQoKS5udW1UcmFja3MoU3R5bGU6OkdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbjo6Q29sdW1ucyk7CiAgICAgYXV0byByb3dJbmRleERldGVybWluaW5nQmFzZWxpbmUg
PSBhbGlnbm1lbnQgPT0gSXRlbVBvc2l0aW9uOjpCYXNlbGluZSA/IDAgOiBjdXJyZW50R3JpZCgp
Lm51bVRyYWNrcyhTdHlsZTo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpSb3dzKSAtIDE7CiAg
ICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgbnVtQ29sdW1uczsgY29sdW1uKysp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDFmMzQ4MjZmZTNhZi4u
ZWExODM3MmYxZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI1
Nyw3ICsyNTcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBm
aXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4gbGFzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwotICAgIFNpbmdsZVRocmVhZFdl
YWtQdHI8UmVuZGVyQm94PiBnZXRCYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1l
bnQpIGNvbnN0OworICAgIGNvbnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbShJdGVtUG9z
aXRpb24gYWxpZ25tZW50KSBjb25zdDsKIAogICAgIExheW91dFVuaXQgY29sdW1uQXhpc0Jhc2Vs
aW5lT2Zmc2V0Rm9yR3JpZEl0ZW0oY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgTGF5b3V0
VW5pdCByb3dBeGlzQmFzZWxpbmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDM2NDgz
YTFkYjU5My4uYTczODU3MDU2NWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKQEAgLTE2MDMsMjMgKzE2MDMsMjMgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJUYWJsZTo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIC8vIFRoaXMgaXMg
YWxzbyBuZWVkZWQgdG8gcHJvcGVybHkgZGV0ZXJtaW5lIHRoZSBiYXNlbGluZSBvZiBhIGNlbGwg
aWYgaXQgaGFzIGEgdGFibGUgY2hpbGQuCiAKICAgICBpZiAoKGlzV3JpdGluZ01vZGVSb290KCkg
JiYgIWlzRmxleEl0ZW0oKSkgfHwgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpKQotICAg
ICAgICByZXR1cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOworICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgcmVjYWxjU2VjdGlvbnNJZk5lZWRlZCgpOwogCi0gICAgY29uc3QgUmVuZGVy
VGFibGVTZWN0aW9uKiB0b3BOb25FbXB0eVNlY3Rpb24gPSB0aGlzLT50b3BOb25FbXB0eVNlY3Rp
b24oKTsKKyAgICBDaGVja2VkUHRyIHRvcE5vbkVtcHR5U2VjdGlvbiA9IHRoaXMtPnRvcE5vbkVt
cHR5U2VjdGlvbigpOwogICAgIGlmICghdG9wTm9uRW1wdHlTZWN0aW9uKQotICAgICAgICByZXR1
cm4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PigpOwotCi0gICAgaWYgKGF1dG8gYmFzZWxpbmUg
PSB0b3BOb25FbXB0eVNlY3Rpb24tPmZpcnN0TGluZUJhc2VsaW5lKCkpCi0gICAgICAgIHJldHVy
biBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRv
cCgpICsgYmFzZWxpbmUudmFsdWUoKSk7Ci0KLSAgICAvLyBPdGhlciBicm93c2VycyB1c2UgdGhl
IHRvcCBvZiB0aGUgc2VjdGlvbiBhcyB0aGUgYmFzZWxpbmUgaWYgaXRzIGZpcnN0IHJvdyBpcyBl
bXB0eSBvZiBjZWxscyBvciBjb250ZW50LgotICAgIC8vIFRoZSBiYXNlbGluZSBvZiBhbiBlbXB0
eSByb3cgaXNuJ3Qgc3BlY2lmaWVkIGJ5IENTUyAyLjEuCi0gICAgaWYgKHRvcE5vbkVtcHR5U2Vj
dGlvbi0+Zmlyc3RSb3coKSAmJiAhdG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpLT5maXJz
dENlbGwoKSkKLSAgICAgICAgcmV0dXJuIHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRvcCgp
OworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4oKTsKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7
IH07CisgICAgaWYgKGF1dG8gZmlyc3RMaW5lQmFzZWxpbmUgPSB0b3BOb25FbXB0eVNlY3Rpb24t
PmZpcnN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxp
bmU7CisgICAgZWxzZSBpZiAodG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpICYmICF0b3BO
b25FbXB0eVNlY3Rpb24tPmZpcnN0Um93KCktPmZpcnN0Q2VsbCgpKSB7CisgICAgICAgIC8vIE90
aGVyIGJyb3dzZXJzIHVzZSB0aGUgdG9wIG9mIHRoZSBzZWN0aW9uIGFzIHRoZSBiYXNlbGluZSBp
ZiBpdHMgZmlyc3Qgcm93IGlzIGVtcHR5IG9mIGNlbGxzIG9yIGNvbnRlbnQuCisgICAgICAgIC8v
IFRoZSBiYXNlbGluZSBvZiBhbiBlbXB0eSByb3cgaXNuJ3Qgc3BlY2lmaWVkIGJ5IENTUyAyLjEu
CisgICAgICAgIGJhc2VsaW5lID0gMF9sdTsKKyAgICB9CisgICAgcmV0dXJuIGJhc2VsaW5lID8g
c3RkOjptYWtlX29wdGlvbmFsKHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRvcCgpLnRvSW50
KCkgKyAqYmFzZWxpbmUpIDogc3RkOjpudWxsb3B0OwogfQogCiBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IFJlbmRlclRhYmxlOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAgLTE2MjksMTIg
KzE2MjksMTIgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJUYWJsZTo6bGFzdExp
bmVCYXNlbGluZSgpIGNvbnN0CiAKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CiAKLSAg
ICBhdXRvKiB0YWJsZVNlY3Rpb24gPSBib3R0b21Ob25FbXB0eVNlY3Rpb24oKTsKKyAgICBDaGVj
a2VkUHRyIHRhYmxlU2VjdGlvbiA9IGJvdHRvbU5vbkVtcHR5U2VjdGlvbigpOwogICAgIGlmICgh
dGFibGVTZWN0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGF1dG8gYmFzZWxp
bmUgPSB0YWJsZVNlY3Rpb24tPmxhc3RMaW5lQmFzZWxpbmUoKSkKLSAgICAgICAgcmV0dXJuIExh
eW91dFVuaXQgeyBiYXNlbGluZS52YWx1ZSgpICsgdGFibGVTZWN0aW9uLT5sb2dpY2FsVG9wKCkg
fTsKKyAgICBpZiAoYXV0byBsYXN0TGluZUJhc2VsaW5lID0gdGFibGVTZWN0aW9uLT5sYXN0TGlu
ZUJhc2VsaW5lKCkpCisgICAgICAgIHJldHVybiB0YWJsZVNlY3Rpb24tPmxvZ2ljYWxUb3AoKS50
b0ludCgpICsgKmxhc3RMaW5lQmFzZWxpbmU7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCBiMWMx
YTNkYWY0ODkuLmUyN2E4NmZlMzExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTg5MiwxMSArODkyLDEwIEBAIHZvaWQgUmVuZGVy
VGFibGVTZWN0aW9uOjpyZWNhbGNPdXRlckJvcmRlcigpCiBzdGQ6Om9wdGlvbmFsPExheW91dFVu
aXQ+IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewogICAg
IGlmICghbV9ncmlkLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8TGF5b3V0
VW5pdD4oKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIExheW91dFVuaXQgZmlyc3RMaW5l
QmFzZWxpbmUgPSBtX2dyaWRbMF0uYmFzZWxpbmU7Ci0gICAgaWYgKGZpcnN0TGluZUJhc2VsaW5l
KQotICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUgKyBtX3Jvd1Bvc1swXTsKKyAgICBp
ZiAoYXV0byBmaXJzdExpbmVCYXNlbGluZSA9IG1fZ3JpZC5maXJzdCgpLmJhc2VsaW5lKQorICAg
ICAgICByZXR1cm4gbV9yb3dQb3MuZmlyc3QoKSArIGZpcnN0TGluZUJhc2VsaW5lOwogCiAgICAg
cmV0dXJuIGJhc2VsaW5lRnJvbUNlbGxDb250ZW50RWRnZXMoSXRlbVBvc2l0aW9uOjpCYXNlbGlu
ZSk7CiB9CkBAIC05MDYsOCArOTA1LDggQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5k
ZXJUYWJsZVNlY3Rpb246Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlmICghbV9ncmlk
LnNpemUoKSkKICAgICAgICAgcmV0dXJuICB7IH07CiAgICAgCi0gICAgaWYgKGF1dG8gbGFzdExp
bmVCYXNlbGluZSA9IG1fZ3JpZFttX2dyaWQuc2l6ZSgpIC0gMV0uYmFzZWxpbmUpCi0gICAgICAg
IHJldHVybiBsYXN0TGluZUJhc2VsaW5lICsgbV9yb3dQb3NbbV9ncmlkLnNpemUoKSAtIDFdOwor
ICAgIGlmIChhdXRvIGxhc3RMaW5lQmFzZWxpbmUgPSBtX2dyaWQubGFzdCgpLmJhc2VsaW5lKQor
ICAgICAgICByZXR1cm4gbV9yb3dQb3NbbV9ncmlkLnNpemUoKSAtIDFdICsgbGFzdExpbmVCYXNl
bGluZTsKIAogICAgIHJldHVybiBiYXNlbGluZUZyb21DZWxsQ29udGVudEVkZ2VzKEl0ZW1Qb3Np
dGlvbjo6TGFzdEJhc2VsaW5lKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477753</attachid>
            <date>2025-12-16 10:34:27 -0800</date>
            <delta_ts>2025-12-16 11:03:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-304256-20251216103427.patch</filename>
            <type>text/plain</type>
            <size>18556</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzMDViNTVkOTdjODMwODVmNDY4YWZlZDQxZTc5YWZjZjgwOGYzM2RkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTYgRGVjIDIwMjUgMDg6MzE6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gTW9kZXJuaXplIGZpcnN0L2xhc3RMaW5lQmFzZWxpbmUgZnVuY3Rpb25zCiAoUmVuZGVyVGFi
bGUsIFJlbmRlclRhYmxlU2VjdGlvbiwgUmVuZGVyR3JpZCBhbmQgUmVuZGVyRmxleGlibGVCb3gp
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjU2CgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCkluIGFkZGl0aW9uIHRvIG1vZGVybml6aW5nLCBmbG9vcmlu
ZyB0byBpbnQgaXMgbm93IGNvbnNpc3RlbnQgYWNyb3NzIHJlbmRlcmVycyAodGhlcmUncyBhIHNs
aWdodCBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSBoZXJlIGZvciBmbGV4IGNvbnRlbnQgLXNlZSB0
cmVlIGR1bXAgZGlmZiBiZWxvdykKKFRoaXMgaXMgYWxzbyBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vw
cG9ydGluZyBzdWJwaXhlbCBpbmxpbmUgbGF5b3V0KQoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvY3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50
eHQ6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpmaXJzdExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6
Zmlyc3RMaW5lQmFzZWxpbmUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGFzdExpbmVC
YXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpiYXNlbGluZUdyaWRJdGVtIGNv
bnN0KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdldEJhc2VsaW5lR3JpZEl0ZW0gY29uc3QpOiBE
ZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxl
OjpmaXJzdExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6bGFzdExp
bmVCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5jcHA6CihXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJhc2Vs
aW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGFzdExpbmVCYXNlbGlu
ZSBjb25zdCk6Ci0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCAgIHwgNDQgKysrKysrKysrLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwICAgICAgIHwgMzggKysrKysrKysrLS0tLS0tLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuaCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAgICB8IDMwICsrKysrKy0tLS0tLS0KIC4uLi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwICB8IDExICsrKy0tCiAuLi4vZmxl
eGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVkLnR4dCAgICAgfCAgNCArLQogLi4uL2ZsZXhi
b3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50eHQgICAgIHwgIDQgKy0KIDcgZmlsZXMgY2hh
bmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggY2E1MzZmZjA0MDI2Li40
ZmI3ZTAzZDJhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcApAQCAtMzA5LDI2ICszMDksMjYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlmICgo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAhbV9udW1iZXJPZkZsZXhJ
dGVtc09uRmlyc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4SXRlbUZv
ckZpcnN0QmFzZWxpbmUoKTsKKyAgICBDaGVja2VkUHRyIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4
SXRlbUZvckZpcnN0QmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lRmxleEl0ZW0pCiAgICAg
ICAgIHJldHVybiB7IH07CiAKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7IH07CiAgICAgaWYgKCFpc0NvbHVtbkZsb3coKSAmJiAhbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgKGNyb3NzQXhpc0V4dGVudEZvckZsZXhJdGVtKCpiYXNlbGluZUZsZXhJdGVtKSArIGJh
c2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxUb3AoKSkudG9JbnQoKSB9OwotICAgIGlmIChpc0NvbHVt
bkZsb3coKSAmJiBtYWluQXhpc0lzRmxleEl0ZW1JbmxpbmVBeGlzKCpiYXNlbGluZUZsZXhJdGVt
KSkKLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAobWFpbkF4aXNFeHRlbnRGb3JGbGV4SXRl
bSgqYmFzZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRv
SW50KCkgfTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYmFzZWxpbmUgPSBiYXNl
bGluZUZsZXhJdGVtLT5maXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsK
KyAgICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVG
bGV4SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFp
bkF4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAo
YXV0byBmaXJzdExpbmVCYXNlbGluZSA9IGJhc2VsaW5lRmxleEl0ZW0tPmZpcnN0TGluZUJhc2Vs
aW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7
CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0
TGluZUJveEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBt
b2RlIHJvb3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVy
ZSB0aGUgZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1
dG8gZGlyZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246
Okhvcml6b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4
Ym94V3JpdGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJ
dGVtLCBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0
aW5nTW9kZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFz
ZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpOworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVu
dFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJh
c2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFz
ZWxpbmVGbGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJl
Y3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gTGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+
bG9naWNhbFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxv
Z2ljYWxUb3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsIDxMYXlv
dXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CkBAIC0z
MzYsMjYgKzMzNiwyNiBAQCBzdGQ6Om9wdGlvbmFsIDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJs
ZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290
KCkgfHwgIW1fbnVtYmVyT2ZGbGV4SXRlbXNPbkxhc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0
Q29udGFpbm1lbnQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5l
RmxleEl0ZW0gPSBmbGV4SXRlbUZvckxhc3RCYXNlbGluZSgpOworICAgIENoZWNrZWRQdHIgYmFz
ZWxpbmVGbGV4SXRlbSA9IGZsZXhJdGVtRm9yTGFzdEJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNl
bGluZUZsZXhJdGVtKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgYXV0byBiYXNlbGluZSA9
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OwogICAgIGlmICghaXNDb2x1bW5GbG93KCkg
JiYgIW1haW5BeGlzSXNGbGV4SXRlbUlubGluZUF4aXMoKmJhc2VsaW5lRmxleEl0ZW0pKQotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFz
ZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRvSW50KCkg
fTsKLSAgICBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVtSW5saW5lQXhp
cygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKG1haW5B
eGlzRXh0ZW50Rm9yRmxleEl0ZW0oKmJhc2VsaW5lRmxleEl0ZW0pICsgYmFzZWxpbmVGbGV4SXRl
bS0+bG9naWNhbFRvcCgpKS50b0ludCgpIH07Ci0KLSAgICBhdXRvIGJhc2VsaW5lID0gYmFzZWxp
bmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsKKyAg
ICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4
SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVt
SW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFpbkF4
aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAoYXV0
byBsYXN0TGluZUJhc2VsaW5lID0gYmFzZWxpbmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgp
KQorICAgICAgICBiYXNlbGluZSA9IGxhc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJv
eEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBtb2RlIHJv
b3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVyZSB0aGUg
ZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1dG8gZGly
ZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6
b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4Ym94V3Jp
dGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBCYXNlbGlu
ZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJdGVtLCBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9k
ZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVT
eW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNhbFRvcCgp
OworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRl
Ojpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJhc2VsaW5l
ID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVG
bGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24s
IEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxU
b3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyZjk3ZmJkNzA3YWQuLmFkNzk4YjMw
NzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkyMyw1
MiArMTkyMyw1NiBAQCBib29sIFJlbmRlckdyaWQ6OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JHcmlk
SXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBTdHlsZQogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgaWYg
KChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFjdXJyZW50R3JpZCgp
Lmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIC8vIEZp
bmRpbmcgdGhlIGZpcnN0IGdyaWQgaXRlbSBpbiBncmlkIG9yZGVyLgotICAgIGF1dG8gYmFzZWxp
bmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpCYXNlbGluZSk7
CisgICAgQ2hlY2tlZFB0ciBiYXNlbGluZUdyaWRJdGVtID0gdGhpcy0+YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb246OkJhc2VsaW5lKTsKIAogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAo
IUdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxp
bmVHcmlkSXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RM
aW5lQmFzZWxpbmUoKTsKIAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25z
Ojppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpu
dWxsb3B0IDogYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICAvLyBX
ZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYgbm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgaWYg
KCFiYXNlbGluZSkgeworICAgICAgICAvLyBXZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYg
bm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGly
ZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdl
J3JlIGEgd3JpdGluZwogICAgICAgICAvLyBtb2RlIHJvb3QuIFRoaXMgd291bGQgYWxzbyBmaXgg
c29tZSBjYXNlcyB3aGVyZSB0aGUgZ3JpZCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIu
CiAgICAgICAgIGF1dG8gZ3JpZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwog
ICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpk
b21pbmFudEJhc2VsaW5lKGdyaWRXcml0aW5nTW9kZSk7CiAgICAgICAgIGF1dG8gZGlyZWN0aW9u
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6b250YWwg
OiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKLSAgICAgICAgcmV0dXJuIEJhc2VsaW5lQWxpZ25t
ZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50
QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0Vk
Z2U6OkJvcmRlckJveCkgKyBsb2dpY2FsVG9wRm9yQ2hpbGQoKmJhc2VsaW5lR3JpZEl0ZW0pOwor
ICAgICAgICBiYXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFz
ZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9k
ZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlk
SXRlbSkudG9JbnQoKSArICpiYXNlbGluZTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJHcmlkOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBpZiAoaXNXcml0
aW5nTW9kZVJvb3QoKSB8fCAhY3VycmVudEdyaWQoKS5oYXNHcmlkSXRlbXMoKSB8fCBzaG91bGRB
cHBseUxheW91dENvbnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGJhc2VsaW5lR3JpZEl0ZW0gPSBnZXRCYXNl
bGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsKKyAgICBDaGVja2VkUHRy
IGJhc2VsaW5lR3JpZEl0ZW0gPSB0aGlzLT5iYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbjo6
TGFzdEJhc2VsaW5lKTsKICAgICBpZiAoIWJhc2VsaW5lR3JpZEl0ZW0pCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGJhc2VsaW5l
ID0gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7IH07CisgICAgaWYgKCFHcmlkTGF5b3V0RnVu
Y3Rpb25zOjppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pKQor
ICAgICAgICBiYXNlbGluZSA9IGJhc2VsaW5lR3JpZEl0ZW0tPmxhc3RMaW5lQmFzZWxpbmUoKTsK
IAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjppc09ydGhvZ29uYWxH
cmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpudWxsb3B0IDogYmFzZWxp
bmVHcmlkSXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwogICAgIGlmICghYmFzZWxpbmUpIHsKICAg
ICAgICAgYXV0byBkaXJlY3Rpb24gPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gTGluZURp
cmVjdGlvbjo6SG9yaXpvbnRhbCA6IExpbmVEaXJlY3Rpb246OlZlcnRpY2FsOwogICAgICAgICBh
dXRvIGdyaWRXcml0aW5nTW9kZSA9IHN0eWxlKCkud3JpdGluZ01vZGUoKTsKICAgICAgICAgYXV0
byBkb21pbmFudEJhc2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6ZG9taW5hbnRCYXNl
bGluZShncmlkV3JpdGluZ01vZGUpOwotICAgICAgICByZXR1cm4gQmFzZWxpbmVBbGlnbm1lbnRT
dGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVHcmlkSXRlbSwgZG9taW5hbnRCYXNl
bGluZSwgZ3JpZFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6
Qm9yZGVyQm94KSArIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlkSXRlbSk7Ci0KKyAg
ICAgICAgYmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2Vs
aW5lKCpiYXNlbGluZUdyaWRJdGVtLCBkb21pbmFudEJhc2VsaW5lLCBncmlkV3JpdGluZ01vZGUs
IGRpcmVjdGlvbiwgQmFzZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpOwogICAgIH0KLQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlk
SXRlbSkudG9JbnQoKSArICpiYXNlbGluZTsKIH0KIAotU2luZ2xlVGhyZWFkV2Vha1B0cjxSZW5k
ZXJCb3g+IFJlbmRlckdyaWQ6OmdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uIGFsaWdu
bWVudCkgY29uc3QKK2NvbnN0IFJlbmRlckJveCogUmVuZGVyR3JpZDo6YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb24gYWxpZ25tZW50KSBjb25zdAogewogICAgIEFTU0VSVChhbGlnbm1lbnQg
PT0gSXRlbVBvc2l0aW9uOjpCYXNlbGluZSB8fCBhbGlnbm1lbnQgPT0gSXRlbVBvc2l0aW9uOjpM
YXN0QmFzZWxpbmUpOwotICAgIGNvbnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbSA9IG51
bGxwdHI7CisgICAgY29uc3QgUmVuZGVyQm94KiBiYXNlbGluZUdyaWRJdGVtID0geyB9OwogICAg
IHVuc2lnbmVkIG51bUNvbHVtbnMgPSBjdXJyZW50R3JpZCgpLm51bVRyYWNrcyhTdHlsZTo6R3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpDb2x1bW5zKTsKICAgICBhdXRvIHJvd0luZGV4RGV0ZXJt
aW5pbmdCYXNlbGluZSA9IGFsaWdubWVudCA9PSBJdGVtUG9zaXRpb246OkJhc2VsaW5lID8gMCA6
IGN1cnJlbnRHcmlkKCkubnVtVHJhY2tzKFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246
OlJvd3MpIC0gMTsKICAgICBmb3IgKHNpemVfdCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBudW1Db2x1
bW5zOyBjb2x1bW4rKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXgg
MWYzNDgyNmZlM2FmLi5lYTE4MzcyZjFlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaApAQCAtMjU3LDcgKzI1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7Ci0gICAg
U2luZ2xlVGhyZWFkV2Vha1B0cjxSZW5kZXJCb3g+IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBv
c2l0aW9uIGFsaWdubWVudCkgY29uc3Q7CisgICAgY29uc3QgUmVuZGVyQm94KiBiYXNlbGluZUdy
aWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBj
b2x1bW5BeGlzQmFzZWxpbmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBjb25z
dDsKICAgICBMYXlvdXRVbml0IHJvd0F4aXNCYXNlbGluZU9mZnNldEZvckdyaWRJdGVtKGNvbnN0
IFJlbmRlckJveCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHAKaW5kZXggMzY0ODNhMWRiNTkzLi5hNzM4NTcwNTY1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTYwMywyMyArMTYwMywyMyBAQCBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAg
ICAgLy8gVGhpcyBpcyBhbHNvIG5lZWRlZCB0byBwcm9wZXJseSBkZXRlcm1pbmUgdGhlIGJhc2Vs
aW5lIG9mIGEgY2VsbCBpZiBpdCBoYXMgYSB0YWJsZSBjaGlsZC4KIAogICAgIGlmICgoaXNXcml0
aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCBzaG91bGRBcHBseUxheW91dENvbnRh
aW5tZW50KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KCk7Cisg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CiAKLSAg
ICBjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5vbkVtcHR5U2VjdGlvbiA9IHRoaXMtPnRv
cE5vbkVtcHR5U2VjdGlvbigpOworICAgIENoZWNrZWRQdHIgdG9wTm9uRW1wdHlTZWN0aW9uID0g
dGhpcy0+dG9wTm9uRW1wdHlTZWN0aW9uKCk7CiAgICAgaWYgKCF0b3BOb25FbXB0eVNlY3Rpb24p
Ci0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KCk7Ci0KLSAgICBpZiAo
YXV0byBiYXNlbGluZSA9IHRvcE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RMaW5lQmFzZWxpbmUoKSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4odG9wTm9uRW1wdHlTZWN0
aW9uLT5sb2dpY2FsVG9wKCkgKyBiYXNlbGluZS52YWx1ZSgpKTsKLQotICAgIC8vIE90aGVyIGJy
b3dzZXJzIHVzZSB0aGUgdG9wIG9mIHRoZSBzZWN0aW9uIGFzIHRoZSBiYXNlbGluZSBpZiBpdHMg
Zmlyc3Qgcm93IGlzIGVtcHR5IG9mIGNlbGxzIG9yIGNvbnRlbnQuCi0gICAgLy8gVGhlIGJhc2Vs
aW5lIG9mIGFuIGVtcHR5IHJvdyBpc24ndCBzcGVjaWZpZWQgYnkgQ1NTIDIuMS4KLSAgICBpZiAo
dG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpICYmICF0b3BOb25FbXB0eVNlY3Rpb24tPmZp
cnN0Um93KCktPmZpcnN0Q2VsbCgpKQotICAgICAgICByZXR1cm4gdG9wTm9uRW1wdHlTZWN0aW9u
LT5sb2dpY2FsVG9wKCk7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PigpOworICAgIGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAoYXV0byBmaXJzdExpbmVCYXNlbGluZSA9IHRvcE5v
bkVtcHR5U2VjdGlvbi0+Zmlyc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAgICAgYmFzZWxpbmUgPSBm
aXJzdExpbmVCYXNlbGluZTsKKyAgICBlbHNlIGlmICh0b3BOb25FbXB0eVNlY3Rpb24tPmZpcnN0
Um93KCkgJiYgIXRvcE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RSb3coKS0+Zmlyc3RDZWxsKCkpIHsK
KyAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnMgdXNlIHRoZSB0b3Agb2YgdGhlIHNlY3Rpb24gYXMg
dGhlIGJhc2VsaW5lIGlmIGl0cyBmaXJzdCByb3cgaXMgZW1wdHkgb2YgY2VsbHMgb3IgY29udGVu
dC4KKyAgICAgICAgLy8gVGhlIGJhc2VsaW5lIG9mIGFuIGVtcHR5IHJvdyBpc24ndCBzcGVjaWZp
ZWQgYnkgQ1NTIDIuMS4KKyAgICAgICAgYmFzZWxpbmUgPSAwX2x1OworICAgIH0KKyAgICByZXR1
cm4gYmFzZWxpbmUgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwodG9wTm9uRW1wdHlTZWN0aW9uLT5sb2dp
Y2FsVG9wKCkudG9JbnQoKSArICpiYXNlbGluZSkgOiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyVGFibGU6Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25z
dApAQCAtMTYyOSwxMiArMTYyOSwxMiBAQCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IFJlbmRl
clRhYmxlOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKIAogICAgIHJlY2FsY1NlY3Rpb25zSWZO
ZWVkZWQoKTsKIAotICAgIGF1dG8qIHRhYmxlU2VjdGlvbiA9IGJvdHRvbU5vbkVtcHR5U2VjdGlv
bigpOworICAgIENoZWNrZWRQdHIgdGFibGVTZWN0aW9uID0gYm90dG9tTm9uRW1wdHlTZWN0aW9u
KCk7CiAgICAgaWYgKCF0YWJsZVNlY3Rpb24pCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBp
ZiAoYXV0byBiYXNlbGluZSA9IHRhYmxlU2VjdGlvbi0+bGFzdExpbmVCYXNlbGluZSgpKQotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IGJhc2VsaW5lLnZhbHVlKCkgKyB0YWJsZVNlY3Rpb24t
PmxvZ2ljYWxUb3AoKSB9OworICAgIGlmIChhdXRvIGxhc3RMaW5lQmFzZWxpbmUgPSB0YWJsZVNl
Y3Rpb24tPmxhc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAgICAgcmV0dXJuIHRhYmxlU2VjdGlvbi0+
bG9naWNhbFRvcCgpLnRvSW50KCkgKyAqbGFzdExpbmVCYXNlbGluZTsKICAgICByZXR1cm4geyB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
Y3BwCmluZGV4IGIxYzFhM2RhZjQ4OS4uZTI3YTg2ZmUzMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtODkyLDExICs4OTIsMTAg
QEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OnJlY2FsY091dGVyQm9yZGVyKCkKIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdExpbmVCYXNlbGluZSgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX2dyaWQuc2l6ZSgpKQotICAgICAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PigpOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgTGF5b3V0
VW5pdCBmaXJzdExpbmVCYXNlbGluZSA9IG1fZ3JpZFswXS5iYXNlbGluZTsKLSAgICBpZiAoZmly
c3RMaW5lQmFzZWxpbmUpCi0gICAgICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSArIG1fcm93
UG9zWzBdOworICAgIGlmIChhdXRvIGZpcnN0TGluZUJhc2VsaW5lID0gbV9ncmlkLmZpcnN0KCku
YmFzZWxpbmUpCisgICAgICAgIHJldHVybiBtX3Jvd1Bvcy5maXJzdCgpICsgZmlyc3RMaW5lQmFz
ZWxpbmU7CiAKICAgICByZXR1cm4gYmFzZWxpbmVGcm9tQ2VsbENvbnRlbnRFZGdlcyhJdGVtUG9z
aXRpb246OkJhc2VsaW5lKTsKIH0KQEAgLTkwNiw4ICs5MDUsOCBAQCBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IFJlbmRlclRhYmxlU2VjdGlvbjo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAg
ICAgaWYgKCFtX2dyaWQuc2l6ZSgpKQogICAgICAgICByZXR1cm4gIHsgfTsKICAgICAKLSAgICBp
ZiAoYXV0byBsYXN0TGluZUJhc2VsaW5lID0gbV9ncmlkW21fZ3JpZC5zaXplKCkgLSAxXS5iYXNl
bGluZSkKLSAgICAgICAgcmV0dXJuIGxhc3RMaW5lQmFzZWxpbmUgKyBtX3Jvd1Bvc1ttX2dyaWQu
c2l6ZSgpIC0gMV07CisgICAgaWYgKGF1dG8gbGFzdExpbmVCYXNlbGluZSA9IG1fZ3JpZC5sYXN0
KCkuYmFzZWxpbmUpCisgICAgICAgIHJldHVybiBtX3Jvd1Bvc1ttX2dyaWQuc2l6ZSgpIC0gMV0g
KyBsYXN0TGluZUJhc2VsaW5lOwogCiAgICAgcmV0dXJuIGJhc2VsaW5lRnJvbUNlbGxDb250ZW50
RWRnZXMoSXRlbVBvc2l0aW9uOjpMYXN0QmFzZWxpbmUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2NzczMvZmxleGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNl
bGluZS1leHBlY3RlZC50eHQKaW5kZXggN2FiYjBiMjhmYWE4Li5iNDliM2QzOTYwMTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNl
bGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2NzczMvZmxl
eGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVkLnR4dApAQCAtOTQsMTIgKzk0LDEyIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDUxMAogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MjUsNSkgc2l6ZSA2MngxOQogICAgICAgICB0ZXh0IHJ1biBhdCAoMTI1LDUpIHdpZHRoIDYyOiAi
IGFmdGVyIHRleHQiCiAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNDI0KSBzaXplIDgwMHg0
NgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEwKSBzaXplIDE4OHgxOQorICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEwKSBzaXplIDE4OHgyMAogICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxMCkgd2lkdGggMTg4OiAic2hvdWxkIGFsaWduIHdpdGggdGhlIG1pZGRsZSAiCiAg
ICAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMTg3LDUpIHNpemUgNDF4NDAgW2JnY29s
b3I9I0QzRDNEM10KICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA0MHgy
MSBbYm9yZGVyOiBub25lICgxcHggc29saWQgIzAwMDAwMCkgbm9uZV0KICAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMjApIHNpemUgNDB4MjAKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMjI3LDEwKSBzaXplIDEyN3gxOQorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgy
MjcsMTApIHNpemUgMTI3eDIwCiAgICAgICAgIHRleHQgcnVuIGF0ICgyMjcsMTApIHdpZHRoIDEy
NzogIiBvZiB0aGUgZ3JleSBmbGV4Ym94IgogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDQ2
OSkgc2l6ZSA4MDB4NDEKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMCkgc2l6ZSAx
ODh4MTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jc3MzL2ZsZXhib3gv
ZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDJkMmFmMWM1
ZTFkMy4uYjliNjc1MTgxNDFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50
eHQKQEAgLTk0LDEyICs5NCwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg0OTYKICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTI1LDUpIHNpemUgNjJ4MTgKICAgICAgICAgdGV4dCBy
dW4gYXQgKDEyNSw1KSB3aWR0aCA2MjogIiBhZnRlciB0ZXh0IgogICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDQxMSkgc2l6ZSA4MDB4NDYKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwxMSkgc2l6ZSAxODh4MTgKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMSkgc2l6
ZSAxODh4MTkKICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTEpIHdpZHRoIDE4ODogInNob3VsZCBh
bGlnbiB3aXRoIHRoZSBtaWRkbGUgIgogICAgICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQg
KDE4Nyw1KSBzaXplIDQxeDQwIFtiZ2NvbG9yPSNEM0QzRDNdCiAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNDB4MjEgW2JvcmRlcjogbm9uZSAoMXB4IHNvbGlkICMwMDAw
MDApIG5vbmVdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIwKSBzaXplIDQweDIw
Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIyNywxMSkgc2l6ZSAxMjZ4MTgKKyAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjI3LDExKSBzaXplIDEyNngxOQogICAgICAgICB0ZXh0
IHJ1biBhdCAoMjI3LDExKSB3aWR0aCAxMjY6ICIgb2YgdGhlIGdyZXkgZmxleGJveCIKICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NTYpIHNpemUgODAweDQwCiAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMjEpIHNpemUgMTg4eDE4Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>477754</attachid>
            <date>2025-12-16 11:03:57 -0800</date>
            <delta_ts>2025-12-16 13:58:46 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-304256-20251216110356.patch</filename>
            <type>text/plain</type>
            <size>18551</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3NjVhYTg1ODg0Yzg4M2UwN2UzMDA3YzE1YTA3OTI3ZjkwMWQ1M2UwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTYgRGVjIDIwMjUgMDg6MzE6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbY2xlYW51
cF0gTW9kZXJuaXplIGZpcnN0L2xhc3RMaW5lQmFzZWxpbmUgZnVuY3Rpb25zCiAoUmVuZGVyVGFi
bGUsIFJlbmRlclRhYmxlU2VjdGlvbiwgUmVuZGVyR3JpZCBhbmQgUmVuZGVyRmxleGlibGVCb3gp
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA0MjU2CgpSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KCkluIGFkZGl0aW9uIHRvIG1vZGVybml6aW5nLCBmbG9vcmlu
ZyB0byBpbnQgaXMgbm93IGNvbnNpc3RlbnQgYWNyb3NzIHJlbmRlcmVycyAodGhlcmUncyBhIHNs
aWdodCBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSBoZXJlIGZvciBmbGV4IGNvbnRlbnQgLXNlZSB0
cmVlIGR1bXAgZGlmZiBiZWxvdykKKFRoaXMgaXMgYWxzbyBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vw
cG9ydGluZyBzdWJwaXhlbCBpbmxpbmUgbGF5b3V0KQoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvY3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0OgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50
eHQ6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpmaXJzdExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6
Zmlyc3RMaW5lQmFzZWxpbmUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGFzdExpbmVC
YXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJHcmlkOjpiYXNlbGluZUdyaWRJdGVtIGNv
bnN0KToKKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdldEJhc2VsaW5lR3JpZEl0ZW0gY29uc3QpOiBE
ZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRhYmxl
OjpmaXJzdExpbmVCYXNlbGluZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJUYWJsZTo6bGFzdExp
bmVCYXNlbGluZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5jcHA6CihXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJhc2Vs
aW5lIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGFzdExpbmVCYXNlbGlu
ZSBjb25zdCk6Ci0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cCAgIHwgNDQgKysrKysrKysrLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwICAgICAgIHwgMzggKysrKysrKysrLS0tLS0tLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuaCAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAgICB8IDMwICsrKysrKy0tLS0tLS0KIC4uLi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwICB8IDExICsrKy0tCiAuLi4vZmxl
eGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVkLnR4dCAgICAgfCAgNCArLQogLi4uL2ZsZXhi
b3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50eHQgICAgIHwgIDQgKy0KIDcgZmlsZXMgY2hh
bmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggY2E1MzZmZjA0MDI2Li40
ZmI3ZTAzZDJhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcApAQCAtMzA5LDI2ICszMDksMjYgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJGbGV4aWJsZUJveDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlmICgo
aXNXcml0aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCAhbV9udW1iZXJPZkZsZXhJ
dGVtc09uRmlyc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4SXRlbUZv
ckZpcnN0QmFzZWxpbmUoKTsKKyAgICBDaGVja2VkUHRyIGJhc2VsaW5lRmxleEl0ZW0gPSBmbGV4
SXRlbUZvckZpcnN0QmFzZWxpbmUoKTsKICAgICBpZiAoIWJhc2VsaW5lRmxleEl0ZW0pCiAgICAg
ICAgIHJldHVybiB7IH07CiAKKyAgICBhdXRvIGJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7IH07CiAgICAgaWYgKCFpc0NvbHVtbkZsb3coKSAmJiAhbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRV
bml0IHsgKGNyb3NzQXhpc0V4dGVudEZvckZsZXhJdGVtKCpiYXNlbGluZUZsZXhJdGVtKSArIGJh
c2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxUb3AoKSkudG9JbnQoKSB9OwotICAgIGlmIChpc0NvbHVt
bkZsb3coKSAmJiBtYWluQXhpc0lzRmxleEl0ZW1JbmxpbmVBeGlzKCpiYXNlbGluZUZsZXhJdGVt
KSkKLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyAobWFpbkF4aXNFeHRlbnRGb3JGbGV4SXRl
bSgqYmFzZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRv
SW50KCkgfTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gYmFzZWxpbmUgPSBiYXNl
bGluZUZsZXhJdGVtLT5maXJzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsK
KyAgICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVG
bGV4SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJ
dGVtSW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFp
bkF4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAo
YXV0byBmaXJzdExpbmVCYXNlbGluZSA9IGJhc2VsaW5lRmxleEl0ZW0tPmZpcnN0TGluZUJhc2Vs
aW5lKCkpCisgICAgICAgIGJhc2VsaW5lID0gZmlyc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7
CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0
TGluZUJveEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBt
b2RlIHJvb3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVy
ZSB0aGUgZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1
dG8gZGlyZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246
Okhvcml6b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4
Ym94V3JpdGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJ
dGVtLCBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0
aW5nTW9kZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFz
ZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpOworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVu
dFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJh
c2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFz
ZWxpbmVGbGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJl
Y3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gTGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+
bG9naWNhbFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxv
Z2ljYWxUb3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGQ6Om9wdGlvbmFsIDxMYXlv
dXRVbml0PiBSZW5kZXJGbGV4aWJsZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CkBAIC0z
MzYsMjYgKzMzNiwyNiBAQCBzdGQ6Om9wdGlvbmFsIDxMYXlvdXRVbml0PiBSZW5kZXJGbGV4aWJs
ZUJveDo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290
KCkgfHwgIW1fbnVtYmVyT2ZGbGV4SXRlbXNPbkxhc3RMaW5lIHx8IHNob3VsZEFwcGx5TGF5b3V0
Q29udGFpbm1lbnQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIGJhc2VsaW5l
RmxleEl0ZW0gPSBmbGV4SXRlbUZvckxhc3RCYXNlbGluZSgpOworICAgIENoZWNrZWRQdHIgYmFz
ZWxpbmVGbGV4SXRlbSA9IGZsZXhJdGVtRm9yTGFzdEJhc2VsaW5lKCk7CiAgICAgaWYgKCFiYXNl
bGluZUZsZXhJdGVtKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgYXV0byBiYXNlbGluZSA9
IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OwogICAgIGlmICghaXNDb2x1bW5GbG93KCkg
JiYgIW1haW5BeGlzSXNGbGV4SXRlbUlubGluZUF4aXMoKmJhc2VsaW5lRmxleEl0ZW0pKQotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdCB7IChjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFz
ZWxpbmVGbGV4SXRlbSkgKyBiYXNlbGluZUZsZXhJdGVtLT5sb2dpY2FsVG9wKCkpLnRvSW50KCkg
fTsKLSAgICBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVtSW5saW5lQXhp
cygqYmFzZWxpbmVGbGV4SXRlbSkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgKG1haW5B
eGlzRXh0ZW50Rm9yRmxleEl0ZW0oKmJhc2VsaW5lRmxleEl0ZW0pICsgYmFzZWxpbmVGbGV4SXRl
bS0+bG9naWNhbFRvcCgpKS50b0ludCgpIH07Ci0KLSAgICBhdXRvIGJhc2VsaW5lID0gYmFzZWxp
bmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwotICAgIGlmICghYmFzZWxpbmUpIHsKKyAg
ICAgICAgYmFzZWxpbmUgPSBjcm9zc0F4aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4
SXRlbSk7CisgICAgZWxzZSBpZiAoaXNDb2x1bW5GbG93KCkgJiYgbWFpbkF4aXNJc0ZsZXhJdGVt
SW5saW5lQXhpcygqYmFzZWxpbmVGbGV4SXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gbWFpbkF4
aXNFeHRlbnRGb3JGbGV4SXRlbSgqYmFzZWxpbmVGbGV4SXRlbSk7CisgICAgZWxzZSBpZiAoYXV0
byBsYXN0TGluZUJhc2VsaW5lID0gYmFzZWxpbmVGbGV4SXRlbS0+bGFzdExpbmVCYXNlbGluZSgp
KQorICAgICAgICBiYXNlbGluZSA9IGxhc3RMaW5lQmFzZWxpbmU7CisgICAgZWxzZSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGlyZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJv
eEJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdlJ3JlIGEgd3JpdGluZyBtb2RlIHJv
b3QuCiAgICAgICAgIC8vIFRoaXMgd291bGQgYWxzbyBmaXggc29tZSBjYXNlcyB3aGVyZSB0aGUg
ZmxleGJveCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIuCiAgICAgICAgIGF1dG8gZGly
ZWN0aW9uID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6
b250YWwgOiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKICAgICAgICAgYXV0byBmbGV4Ym94V3Jp
dGluZ01vZGUgPSBzdHlsZSgpLndyaXRpbmdNb2RlKCk7Ci0gICAgICAgIHJldHVybiBCYXNlbGlu
ZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2VsaW5lKCpiYXNlbGluZUZsZXhJdGVtLCBC
YXNlbGluZUFsaWdubWVudFN0YXRlOjpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9k
ZSksCi0gICAgICAgICAgICBmbGV4Ym94V3JpdGluZ01vZGUsIGRpcmVjdGlvbiwgQmFzZWxpbmVT
eW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNhbFRvcCgp
OworICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRl
Ojpkb21pbmFudEJhc2VsaW5lKGZsZXhib3hXcml0aW5nTW9kZSk7CisgICAgICAgIGJhc2VsaW5l
ID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVG
bGV4SXRlbSwgZG9taW5hbnRCYXNlbGluZSwgZmxleGJveFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24s
IEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6Qm9yZGVyQm94KTsKICAgICB9Ci0KLSAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IChiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVGbGV4SXRlbS0+bG9naWNh
bFRvcCgpKS50b0ludCgpIH07CisgICAgcmV0dXJuIGJhc2VsaW5lRmxleEl0ZW0tPmxvZ2ljYWxU
b3AoKS50b0ludCgpICsgKmJhc2VsaW5lOwogfQogCiBzdGF0aWMgY29uc3QgU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YSYgY29udGVudEFsaWdubWVudE5vcm1hbEJlaGF2aW9yKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyZjk3ZmJkNzA3YWQuLmFkNzk4YjMw
NzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTkyMyw1
MiArMTkyMyw1NiBAQCBib29sIFJlbmRlckdyaWQ6OmlzQmFzZWxpbmVBbGlnbm1lbnRGb3JHcmlk
SXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBTdHlsZQogc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiBSZW5kZXJHcmlkOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiB7CiAgICAgaWYg
KChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc0ZsZXhJdGVtKCkpIHx8ICFjdXJyZW50R3JpZCgp
Lmhhc0dyaWRJdGVtcygpIHx8IHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIC8vIEZp
bmRpbmcgdGhlIGZpcnN0IGdyaWQgaXRlbSBpbiBncmlkIG9yZGVyLgotICAgIGF1dG8gYmFzZWxp
bmVHcmlkSXRlbSA9IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uOjpCYXNlbGluZSk7
CisgICAgQ2hlY2tlZFB0ciBiYXNlbGluZUdyaWRJdGVtID0gdGhpcy0+YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb246OkJhc2VsaW5lKTsKIAogICAgIGlmICghYmFzZWxpbmVHcmlkSXRlbSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAo
IUdyaWRMYXlvdXRGdW5jdGlvbnM6OmlzT3J0aG9nb25hbEdyaWRJdGVtKCp0aGlzLCAqYmFzZWxp
bmVHcmlkSXRlbSkpCisgICAgICAgIGJhc2VsaW5lID0gYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RM
aW5lQmFzZWxpbmUoKTsKIAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25z
Ojppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpu
dWxsb3B0IDogYmFzZWxpbmVHcmlkSXRlbS0+Zmlyc3RMaW5lQmFzZWxpbmUoKTsKLSAgICAvLyBX
ZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYgbm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgaWYg
KCFiYXNlbGluZSkgeworICAgICAgICAvLyBXZSB0YWtlIGJvcmRlci1ib3gncyBib3R0b20gaWYg
bm8gdmFsaWQgYmFzZWxpbmUuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB8ZGly
ZWN0aW9ufCBpbnRvIGZpcnN0TGluZUJhc2VsaW5lIGFuZCBzdG9wIGJhaWxpbmcgb3V0IGlmIHdl
J3JlIGEgd3JpdGluZwogICAgICAgICAvLyBtb2RlIHJvb3QuIFRoaXMgd291bGQgYWxzbyBmaXgg
c29tZSBjYXNlcyB3aGVyZSB0aGUgZ3JpZCBpcyBvcnRob2dvbmFsIHRvIGl0cyBjb250YWluZXIu
CiAgICAgICAgIGF1dG8gZ3JpZFdyaXRpbmdNb2RlID0gc3R5bGUoKS53cml0aW5nTW9kZSgpOwog
ICAgICAgICBhdXRvIGRvbWluYW50QmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpk
b21pbmFudEJhc2VsaW5lKGdyaWRXcml0aW5nTW9kZSk7CiAgICAgICAgIGF1dG8gZGlyZWN0aW9u
ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IExpbmVEaXJlY3Rpb246Okhvcml6b250YWwg
OiBMaW5lRGlyZWN0aW9uOjpWZXJ0aWNhbDsKLSAgICAgICAgcmV0dXJuIEJhc2VsaW5lQWxpZ25t
ZW50U3RhdGU6OnN5bnRoZXNpemVkQmFzZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50
QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9kZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0Vk
Z2U6OkJvcmRlckJveCkgKyBsb2dpY2FsVG9wRm9yQ2hpbGQoKmJhc2VsaW5lR3JpZEl0ZW0pOwor
ICAgICAgICBiYXNlbGluZSA9IEJhc2VsaW5lQWxpZ25tZW50U3RhdGU6OnN5bnRoZXNpemVkQmFz
ZWxpbmUoKmJhc2VsaW5lR3JpZEl0ZW0sIGRvbWluYW50QmFzZWxpbmUsIGdyaWRXcml0aW5nTW9k
ZSwgZGlyZWN0aW9uLCBCYXNlbGluZVN5bnRoZXNpc0VkZ2U6OkJvcmRlckJveCk7CiAgICAgfQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlk
SXRlbSkudG9JbnQoKSArICpiYXNlbGluZTsKIH0KIAogc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiBSZW5kZXJHcmlkOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKIHsKICAgICBpZiAoaXNXcml0
aW5nTW9kZVJvb3QoKSB8fCAhY3VycmVudEdyaWQoKS5oYXNHcmlkSXRlbXMoKSB8fCBzaG91bGRB
cHBseUxheW91dENvbnRhaW5tZW50KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIGJhc2VsaW5lR3JpZEl0ZW0gPSBnZXRCYXNl
bGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsKKyAgICBDaGVja2VkUHRy
IGJhc2VsaW5lR3JpZEl0ZW0gPSB0aGlzLT5iYXNlbGluZUdyaWRJdGVtKEl0ZW1Qb3NpdGlvbjo6
TGFzdEJhc2VsaW5lKTsKICAgICBpZiAoIWJhc2VsaW5lR3JpZEl0ZW0pCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGJhc2VsaW5l
ID0gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiB7IH07CisgICAgaWYgKCFHcmlkTGF5b3V0RnVu
Y3Rpb25zOjppc09ydGhvZ29uYWxHcmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pKQor
ICAgICAgICBiYXNlbGluZSA9IGJhc2VsaW5lR3JpZEl0ZW0tPmxhc3RMaW5lQmFzZWxpbmUoKTsK
IAotICAgIGF1dG8gYmFzZWxpbmUgPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjppc09ydGhvZ29uYWxH
cmlkSXRlbSgqdGhpcywgKmJhc2VsaW5lR3JpZEl0ZW0pID8gc3RkOjpudWxsb3B0IDogYmFzZWxp
bmVHcmlkSXRlbS0+bGFzdExpbmVCYXNlbGluZSgpOwogICAgIGlmICghYmFzZWxpbmUpIHsKICAg
ICAgICAgYXV0byBkaXJlY3Rpb24gPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gTGluZURp
cmVjdGlvbjo6SG9yaXpvbnRhbCA6IExpbmVEaXJlY3Rpb246OlZlcnRpY2FsOwogICAgICAgICBh
dXRvIGdyaWRXcml0aW5nTW9kZSA9IHN0eWxlKCkud3JpdGluZ01vZGUoKTsKICAgICAgICAgYXV0
byBkb21pbmFudEJhc2VsaW5lID0gQmFzZWxpbmVBbGlnbm1lbnRTdGF0ZTo6ZG9taW5hbnRCYXNl
bGluZShncmlkV3JpdGluZ01vZGUpOwotICAgICAgICByZXR1cm4gQmFzZWxpbmVBbGlnbm1lbnRT
dGF0ZTo6c3ludGhlc2l6ZWRCYXNlbGluZSgqYmFzZWxpbmVHcmlkSXRlbSwgZG9taW5hbnRCYXNl
bGluZSwgZ3JpZFdyaXRpbmdNb2RlLCBkaXJlY3Rpb24sIEJhc2VsaW5lU3ludGhlc2lzRWRnZTo6
Qm9yZGVyQm94KSArIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlkSXRlbSk7Ci0KKyAg
ICAgICAgYmFzZWxpbmUgPSBCYXNlbGluZUFsaWdubWVudFN0YXRlOjpzeW50aGVzaXplZEJhc2Vs
aW5lKCpiYXNlbGluZUdyaWRJdGVtLCBkb21pbmFudEJhc2VsaW5lLCBncmlkV3JpdGluZ01vZGUs
IGRpcmVjdGlvbiwgQmFzZWxpbmVTeW50aGVzaXNFZGdlOjpCb3JkZXJCb3gpOwogICAgIH0KLQot
ICAgIHJldHVybiBiYXNlbGluZS52YWx1ZSgpICsgYmFzZWxpbmVHcmlkSXRlbS0+bG9naWNhbFRv
cCgpLnRvSW50KCk7CisgICAgcmV0dXJuIGxvZ2ljYWxUb3BGb3JDaGlsZCgqYmFzZWxpbmVHcmlk
SXRlbSkudG9JbnQoKSArICpiYXNlbGluZTsKIH0KIAotU2luZ2xlVGhyZWFkV2Vha1B0cjxSZW5k
ZXJCb3g+IFJlbmRlckdyaWQ6OmdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBvc2l0aW9uIGFsaWdu
bWVudCkgY29uc3QKK2NvbnN0IFJlbmRlckJveCogUmVuZGVyR3JpZDo6YmFzZWxpbmVHcmlkSXRl
bShJdGVtUG9zaXRpb24gYWxpZ25tZW50KSBjb25zdAogewogICAgIEFTU0VSVChhbGlnbm1lbnQg
PT0gSXRlbVBvc2l0aW9uOjpCYXNlbGluZSB8fCBhbGlnbm1lbnQgPT0gSXRlbVBvc2l0aW9uOjpM
YXN0QmFzZWxpbmUpOwotICAgIGNvbnN0IFJlbmRlckJveCogYmFzZWxpbmVHcmlkSXRlbSA9IG51
bGxwdHI7CisgICAgY29uc3QgUmVuZGVyQm94KiBiYXNlbGluZUdyaWRJdGVtID0geyB9OwogICAg
IHVuc2lnbmVkIG51bUNvbHVtbnMgPSBjdXJyZW50R3JpZCgpLm51bVRyYWNrcyhTdHlsZTo6R3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uOjpDb2x1bW5zKTsKICAgICBhdXRvIHJvd0luZGV4RGV0ZXJt
aW5pbmdCYXNlbGluZSA9IGFsaWdubWVudCA9PSBJdGVtUG9zaXRpb246OkJhc2VsaW5lID8gMCA6
IGN1cnJlbnRHcmlkKCkubnVtVHJhY2tzKFN0eWxlOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb246
OlJvd3MpIC0gMTsKICAgICBmb3IgKHNpemVfdCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBudW1Db2x1
bW5zOyBjb2x1bW4rKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXgg
MWYzNDgyNmZlM2FmLi5lYTE4MzcyZjFlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaApAQCAtMjU3LDcgKzI1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7Ci0gICAg
U2luZ2xlVGhyZWFkV2Vha1B0cjxSZW5kZXJCb3g+IGdldEJhc2VsaW5lR3JpZEl0ZW0oSXRlbVBv
c2l0aW9uIGFsaWdubWVudCkgY29uc3Q7CisgICAgY29uc3QgUmVuZGVyQm94KiBiYXNlbGluZUdy
aWRJdGVtKEl0ZW1Qb3NpdGlvbiBhbGlnbm1lbnQpIGNvbnN0OwogCiAgICAgTGF5b3V0VW5pdCBj
b2x1bW5BeGlzQmFzZWxpbmVPZmZzZXRGb3JHcmlkSXRlbShjb25zdCBSZW5kZXJCb3gmKSBjb25z
dDsKICAgICBMYXlvdXRVbml0IHJvd0F4aXNCYXNlbGluZU9mZnNldEZvckdyaWRJdGVtKGNvbnN0
IFJlbmRlckJveCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHAKaW5kZXggMzY0ODNhMWRiNTkzLi5iYTVhYWUzY2E1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtMTYwMywyMyArMTYwMywyMyBAQCBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlOjpmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAg
ICAgLy8gVGhpcyBpcyBhbHNvIG5lZWRlZCB0byBwcm9wZXJseSBkZXRlcm1pbmUgdGhlIGJhc2Vs
aW5lIG9mIGEgY2VsbCBpZiBpdCBoYXMgYSB0YWJsZSBjaGlsZC4KIAogICAgIGlmICgoaXNXcml0
aW5nTW9kZVJvb3QoKSAmJiAhaXNGbGV4SXRlbSgpKSB8fCBzaG91bGRBcHBseUxheW91dENvbnRh
aW5tZW50KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KCk7Cisg
ICAgICAgIHJldHVybiB7IH07CiAKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVkKCk7CiAKLSAg
ICBjb25zdCBSZW5kZXJUYWJsZVNlY3Rpb24qIHRvcE5vbkVtcHR5U2VjdGlvbiA9IHRoaXMtPnRv
cE5vbkVtcHR5U2VjdGlvbigpOworICAgIENoZWNrZWRQdHIgdG9wTm9uRW1wdHlTZWN0aW9uID0g
dGhpcy0+dG9wTm9uRW1wdHlTZWN0aW9uKCk7CiAgICAgaWYgKCF0b3BOb25FbXB0eVNlY3Rpb24p
Ci0gICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+KCk7Ci0KLSAgICBpZiAo
YXV0byBiYXNlbGluZSA9IHRvcE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RMaW5lQmFzZWxpbmUoKSkK
LSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4odG9wTm9uRW1wdHlTZWN0
aW9uLT5sb2dpY2FsVG9wKCkgKyBiYXNlbGluZS52YWx1ZSgpKTsKLQotICAgIC8vIE90aGVyIGJy
b3dzZXJzIHVzZSB0aGUgdG9wIG9mIHRoZSBzZWN0aW9uIGFzIHRoZSBiYXNlbGluZSBpZiBpdHMg
Zmlyc3Qgcm93IGlzIGVtcHR5IG9mIGNlbGxzIG9yIGNvbnRlbnQuCi0gICAgLy8gVGhlIGJhc2Vs
aW5lIG9mIGFuIGVtcHR5IHJvdyBpc24ndCBzcGVjaWZpZWQgYnkgQ1NTIDIuMS4KLSAgICBpZiAo
dG9wTm9uRW1wdHlTZWN0aW9uLT5maXJzdFJvdygpICYmICF0b3BOb25FbXB0eVNlY3Rpb24tPmZp
cnN0Um93KCktPmZpcnN0Q2VsbCgpKQotICAgICAgICByZXR1cm4gdG9wTm9uRW1wdHlTZWN0aW9u
LT5sb2dpY2FsVG9wKCk7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PigpOworICAgIGF1dG8gYmFzZWxpbmUgPSBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IHsgfTsKKyAgICBpZiAoYXV0byBmaXJzdExpbmVCYXNlbGluZSA9IHRvcE5v
bkVtcHR5U2VjdGlvbi0+Zmlyc3RMaW5lQmFzZWxpbmUoKSkKKyAgICAgICAgYmFzZWxpbmUgPSBm
aXJzdExpbmVCYXNlbGluZTsKKyAgICBlbHNlIGlmICh0b3BOb25FbXB0eVNlY3Rpb24tPmZpcnN0
Um93KCkgJiYgIXRvcE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RSb3coKS0+Zmlyc3RDZWxsKCkpIHsK
KyAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnMgdXNlIHRoZSB0b3Agb2YgdGhlIHNlY3Rpb24gYXMg
dGhlIGJhc2VsaW5lIGlmIGl0cyBmaXJzdCByb3cgaXMgZW1wdHkgb2YgY2VsbHMgb3IgY29udGVu
dC4KKyAgICAgICAgLy8gVGhlIGJhc2VsaW5lIG9mIGFuIGVtcHR5IHJvdyBpc24ndCBzcGVjaWZp
ZWQgYnkgQ1NTIDIuMS4KKyAgICAgICAgYmFzZWxpbmUgPSAwX2x1OworICAgIH0KKyAgICByZXR1
cm4gYmFzZWxpbmUgPyBzdGQ6Om9wdGlvbmFsKHRvcE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRv
cCgpLnRvSW50KCkgKyAqYmFzZWxpbmUpIDogc3RkOjpudWxsb3B0OwogfQogCiBzdGQ6Om9wdGlv
bmFsPExheW91dFVuaXQ+IFJlbmRlclRhYmxlOjpsYXN0TGluZUJhc2VsaW5lKCkgY29uc3QKQEAg
LTE2MjksMTIgKzE2MjksMTIgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBSZW5kZXJUYWJs
ZTo6bGFzdExpbmVCYXNlbGluZSgpIGNvbnN0CiAKICAgICByZWNhbGNTZWN0aW9uc0lmTmVlZGVk
KCk7CiAKLSAgICBhdXRvKiB0YWJsZVNlY3Rpb24gPSBib3R0b21Ob25FbXB0eVNlY3Rpb24oKTsK
KyAgICBDaGVja2VkUHRyIHRhYmxlU2VjdGlvbiA9IGJvdHRvbU5vbkVtcHR5U2VjdGlvbigpOwog
ICAgIGlmICghdGFibGVTZWN0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGF1
dG8gYmFzZWxpbmUgPSB0YWJsZVNlY3Rpb24tPmxhc3RMaW5lQmFzZWxpbmUoKSkKLSAgICAgICAg
cmV0dXJuIExheW91dFVuaXQgeyBiYXNlbGluZS52YWx1ZSgpICsgdGFibGVTZWN0aW9uLT5sb2dp
Y2FsVG9wKCkgfTsKKyAgICBpZiAoYXV0byBsYXN0TGluZUJhc2VsaW5lID0gdGFibGVTZWN0aW9u
LT5sYXN0TGluZUJhc2VsaW5lKCkpCisgICAgICAgIHJldHVybiB0YWJsZVNlY3Rpb24tPmxvZ2lj
YWxUb3AoKS50b0ludCgpICsgKmxhc3RMaW5lQmFzZWxpbmU7CiAgICAgcmV0dXJuIHsgfTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApp
bmRleCBiMWMxYTNkYWY0ODkuLmUyN2E4NmZlMzExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTg5MiwxMSArODkyLDEwIEBAIHZv
aWQgUmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNPdXRlckJvcmRlcigpCiBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25z
dAogewogICAgIGlmICghbV9ncmlkLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4oKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIExheW91dFVuaXQg
Zmlyc3RMaW5lQmFzZWxpbmUgPSBtX2dyaWRbMF0uYmFzZWxpbmU7Ci0gICAgaWYgKGZpcnN0TGlu
ZUJhc2VsaW5lKQotICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmUgKyBtX3Jvd1Bvc1sw
XTsKKyAgICBpZiAoYXV0byBmaXJzdExpbmVCYXNlbGluZSA9IG1fZ3JpZC5maXJzdCgpLmJhc2Vs
aW5lKQorICAgICAgICByZXR1cm4gbV9yb3dQb3MuZmlyc3QoKSArIGZpcnN0TGluZUJhc2VsaW5l
OwogCiAgICAgcmV0dXJuIGJhc2VsaW5lRnJvbUNlbGxDb250ZW50RWRnZXMoSXRlbVBvc2l0aW9u
OjpCYXNlbGluZSk7CiB9CkBAIC05MDYsOCArOTA1LDggQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBSZW5kZXJUYWJsZVNlY3Rpb246Omxhc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogICAgIGlm
ICghbV9ncmlkLnNpemUoKSkKICAgICAgICAgcmV0dXJuICB7IH07CiAgICAgCi0gICAgaWYgKGF1
dG8gbGFzdExpbmVCYXNlbGluZSA9IG1fZ3JpZFttX2dyaWQuc2l6ZSgpIC0gMV0uYmFzZWxpbmUp
Ci0gICAgICAgIHJldHVybiBsYXN0TGluZUJhc2VsaW5lICsgbV9yb3dQb3NbbV9ncmlkLnNpemUo
KSAtIDFdOworICAgIGlmIChhdXRvIGxhc3RMaW5lQmFzZWxpbmUgPSBtX2dyaWQubGFzdCgpLmJh
c2VsaW5lKQorICAgICAgICByZXR1cm4gbV9yb3dQb3NbbV9ncmlkLnNpemUoKSAtIDFdICsgbGFz
dExpbmVCYXNlbGluZTsKIAogICAgIHJldHVybiBiYXNlbGluZUZyb21DZWxsQ29udGVudEVkZ2Vz
KEl0ZW1Qb3NpdGlvbjo6TGFzdEJhc2VsaW5lKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9jc3MzL2ZsZXhib3gvZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvY3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUt
ZXhwZWN0ZWQudHh0CmluZGV4IDdhYmIwYjI4ZmFhOC4uYjQ5YjNkMzk2MDE0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvY3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9jc3MzL2ZsZXhib3gv
ZmxleGJveC1iYXNlbGluZS1leHBlY3RlZC50eHQKQEAgLTk0LDEyICs5NCwxMiBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MTAKICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTI1LDUp
IHNpemUgNjJ4MTkKICAgICAgICAgdGV4dCBydW4gYXQgKDEyNSw1KSB3aWR0aCA2MjogIiBhZnRl
ciB0ZXh0IgogICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDQyNCkgc2l6ZSA4MDB4NDYKLSAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxMCkgc2l6ZSAxODh4MTkKKyAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwxMCkgc2l6ZSAxODh4MjAKICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTApIHdpZHRoIDE4ODogInNob3VsZCBhbGlnbiB3aXRoIHRoZSBtaWRkbGUgIgogICAgICAg
UmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDE4Nyw1KSBzaXplIDQxeDQwIFtiZ2NvbG9yPSNE
M0QzRDNdCiAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNDB4MjEgW2Jv
cmRlcjogbm9uZSAoMXB4IHNvbGlkICMwMDAwMDApIG5vbmVdCiAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDIwKSBzaXplIDQweDIwCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIyNywxMCkgc2l6ZSAxMjd4MTkKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjI3LDEw
KSBzaXplIDEyN3gyMAogICAgICAgICB0ZXh0IHJ1biBhdCAoMjI3LDEwKSB3aWR0aCAxMjc6ICIg
b2YgdGhlIGdyZXkgZmxleGJveCIKICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw0NjkpIHNp
emUgODAweDQxCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMTg4eDE5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY3NzMy9mbGV4Ym94L2ZsZXhi
b3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMv
ZmxleGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVkLnR4dAppbmRleCAyZDJhZjFjNWUxZDMu
LmI5YjY3NTE4MTQxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NzczMv
ZmxleGJveC9mbGV4Ym94LWJhc2VsaW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvY3NzMy9mbGV4Ym94L2ZsZXhib3gtYmFzZWxpbmUtZXhwZWN0ZWQudHh0CkBA
IC05NCwxMiArOTQsMTIgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDk2CiAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDEyNSw1KSBzaXplIDYyeDE4CiAgICAgICAgIHRleHQgcnVuIGF0
ICgxMjUsNSkgd2lkdGggNjI6ICIgYWZ0ZXIgdGV4dCIKICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw0MTEpIHNpemUgODAweDQ2Ci0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTEp
IHNpemUgMTg4eDE4CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTEpIHNpemUgMTg4
eDE5CiAgICAgICAgIHRleHQgcnVuIGF0ICgwLDExKSB3aWR0aCAxODg6ICJzaG91bGQgYWxpZ24g
d2l0aCB0aGUgbWlkZGxlICIKICAgICAgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0ICgxODcs
NSkgc2l6ZSA0MXg0MCBbYmdjb2xvcj0jRDNEM0QzXQogICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDQweDIxIFtib3JkZXI6IG5vbmUgKDFweCBzb2xpZCAjMDAwMDAwKSBu
b25lXQogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyMCkgc2l6ZSA0MHgyMAotICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjcsMTEpIHNpemUgMTI2eDE4CisgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDIyNywxMSkgc2l6ZSAxMjZ4MTkKICAgICAgICAgdGV4dCBydW4g
YXQgKDIyNywxMSkgd2lkdGggMTI2OiAiIG9mIHRoZSBncmV5IGZsZXhib3giCiAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNDU2KSBzaXplIDgwMHg0MAogICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDIxKSBzaXplIDE4OHgxOAo=
</data>
<flag name="commit-queue"
          id="499954"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>