<?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>235010</bug_id>
          
          <creation_ts>2022-01-08 17:39:29 -0800</creation_ts>
          <short_desc>[LFC][IFC] Introduce a dedicated structure for Line::Run&apos;s trailing whitespace information</short_desc>
          <delta_ts>2022-01-09 10:25:19 -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>Layout and Rendering</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>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829268</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-01-08 17:39:29 -0800</bug_when>
    <thetext>-        TrailingWhitespace m_trailingWhitespaceType { TrailingWhitespace::None };
-        InlineLayoutUnit m_trailingWhitespaceWidth { 0 };
+        TrailingWhitespace m_trailingWhitespace { };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829269</commentid>
    <comment_count>1</comment_count>
      <attachid>448689</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-08 17:40:54 -0800</bug_when>
    <thetext>Created attachment 448689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829281</commentid>
    <comment_count>2</comment_count>
      <attachid>448689</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-08 23:03:09 -0800</bug_when>
    <thetext>Comment on attachment 448689
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/InlineLine.h:160
&gt; +        TrailingWhitespace m_trailingWhitespace { };

I suppose std::optional&lt;TrailingWhitespace&gt; without the None value would be an alternative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829300</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-01-09 06:16:25 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 448689 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448689&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/formattingContexts/inline/InlineLine.h:160
&gt; &gt; +        TrailingWhitespace m_trailingWhitespace { };
&gt; 
&gt; I suppose std::optional&lt;TrailingWhitespace&gt; without the None value would be
&gt; an alternative.
Good point!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829304</commentid>
    <comment_count>4</comment_count>
      <attachid>448701</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-09 07:07:09 -0800</bug_when>
    <thetext>Created attachment 448701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829339</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-09 10:24:00 -0800</bug_when>
    <thetext>Committed r287824 (245876@main): &lt;https://commits.webkit.org/245876@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448701.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829340</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-09 10:25:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/87312941&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448689</attachid>
            <date>2022-01-08 17:40:54 -0800</date>
            <delta_ts>2022-01-09 07:07:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235010-20220108174053.patch</filename>
            <type>text/plain</type>
            <size>9332</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyZDFiZDY3YWJmZjUw
OGRhOTNlYmFlOGUzNTg4ZGZkODU2MGQ5Zi4uNTRiOTJkZWRhMGMwNDIxOTUxZDNkY2NmMjY1NDMy
OWU5MTY5ZTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTA4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVj
ZSBhIGRlZGljYXRlZCBzdHJ1Y3R1cmUgZm9yIExpbmU6OlJ1bidzIHRyYWlsaW5nIHdoaXRlc3Bh
Y2UgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6UnVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6Om1fYmlkaUxldmVsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6bV90ZXh0Q29udGVudCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVzcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNpYmxl
VHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6UnVuOjpoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnRyYWlsaW5nV2hpdGVzcGFjZVR5cGUgY29uc3Qp
OiBEZWxldGVkLgorCiAyMDIyLTAxLTA4ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIExpbmU6OlJ1biBuZWVkcyBhY2Nlc3MgdG8gRm9udENhc2Nh
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggOGVhMzQxMTNhOTg0OWQ4MDA5YzUx
Mjc2NTg3NTNmZTFjOWU4MGJiYS4uZjAwMTBjMWYyYjkzZWNmNjllYjFjZThmMmQ3MDhmM2ExNWIx
ZjE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTUzNSw2ICs1MzUsMTcgQEAg
aW5saW5lIHN0YXRpYyBMaW5lOjpSdW46OlR5cGUgdG9MaW5lUnVuVHlwZShJbmxpbmVJdGVtOjpU
eXBlIGlubGluZUl0ZW1UeXBlKQogICAgIHJldHVybiB7IH07CiB9CiAKK0xpbmU6OlJ1bjo6VHJh
aWxpbmdXaGl0ZXNwYWNlOjpUeXBlIExpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0pCit7CisgICAgaWYgKCFpbmxpbmVU
ZXh0SXRlbS5pc1doaXRlc3BhY2UoKSkKKyAgICAgICAgcmV0dXJuIFRyYWlsaW5nV2hpdGVzcGFj
ZTo6VHlwZTo6Tm9uZTsKKyAgICBpZiAoSW5saW5lVGV4dEl0ZW06OnNob3VsZFByZXNlcnZlU3Bh
Y2VzQW5kVGFicyhpbmxpbmVUZXh0SXRlbSkpCisgICAgICAgIHJldHVybiBUcmFpbGluZ1doaXRl
c3BhY2U6OlR5cGU6Ok5vdENvbGxhcHNpYmxlOworICAgIGlmIChpbmxpbmVUZXh0SXRlbS5sZW5n
dGgoKSA9PSAxKQorICAgICAgICByZXR1cm4gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xs
YXBzaWJsZTsKKyAgICByZXR1cm4gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQ7
Cit9CisKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiAgICAgOiBtX3R5cGUodG9MaW5lUnVuVHlwZShpbmxp
bmVJdGVtLnR5cGUoKSkpCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lSXRlbS5sYXlvdXRCb3go
KSkKQEAgLTU3MCw4ICs1ODEsOCBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGlu
ZUJyZWFrSXRlbSYgc29mdExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eQogICAgICwgbV9s
YXlvdXRCb3goJnNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgpKQogICAgICwgbV9zdHlsZShz
dHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCi0gICAgLCBtX3RleHRDb250
ZW50KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogICAgICwgbV9iaWRpTGV2
ZWwoc29mdExpbmVCcmVha0l0ZW0uYmlkaUxldmVsKCkpCisgICAgLCBtX3RleHRDb250ZW50KHsg
c29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogewogfQogCkBAIC01ODEsMTEgKzU5
MiwxMSBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0
ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSQogICAgICwgbV9zdHlsZShzdHlsZSkKICAg
ICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dp
Y2FsV2lkdGgpCi0gICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUodHJhaWxpbmdXaGl0ZXNw
YWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCi0gICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
KG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgPyBs
b2dpY2FsV2lkdGggOiBJbmxpbmVMYXlvdXRVbml0IHsgfSkKLSAgICAsIG1fdGV4dENvbnRlbnQo
eyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJh
aWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkg
fSkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQogeworICAg
IGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRleHRJ
dGVtKTsKKyAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgd2hpdGVzcGFjZVR5cGUsIHdoaXRl
c3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Tm9uZSA/IGxvZ2ljYWxXaWR0
aCA6IElubGluZUxheW91dFVuaXQgeyB9IH07CisgICAgbV90ZXh0Q29udGVudCA9IHsgaW5saW5l
VGV4dEl0ZW0uc3RhcnQoKSwgd2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpU
eXBlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgfTsKIH0KIAogdm9p
ZCBMaW5lOjpSdW46OmV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0s
IElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQpAQCAtNTk2LDE1ICs2MDcsMTUgQEAgdm9p
ZCBMaW5lOjpSdW46OmV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0s
IElubGluZUxheW91dFVuaXQgbG8KICAgICBBU1NFUlQobV9iaWRpTGV2ZWwgPT0gaW5saW5lVGV4
dEl0ZW0uYmlkaUxldmVsKCkpOwogCiAgICAgbV9sb2dpY2FsV2lkdGggKz0gbG9naWNhbFdpZHRo
OwotICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSA9IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUo
aW5saW5lVGV4dEl0ZW0pOworICAgIGF1dG8gd2hpdGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRl
c3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKIAotICAgIGlmIChtX3RyYWlsaW5nV2hpdGVzcGFj
ZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lKSB7Ci0gICAgICAgIG1fdHJhaWxpbmdX
aGl0ZXNwYWNlV2lkdGggPSB7IH07CisgICAgaWYgKHdoaXRlc3BhY2VUeXBlID09IFRyYWlsaW5n
V2hpdGVzcGFjZTo6VHlwZTo6Tm9uZSkgeworICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9
IHsgfTsKICAgICAgICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IGlubGluZVRleHRJdGVtLmxl
bmd0aCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
V2lkdGggKz0gbG9naWNhbFdpZHRoOwotICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSBtX3Ry
YWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAx
IDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CisgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7
IHdoaXRlc3BhY2VUeXBlLCBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aCArIGxvZ2ljYWxXaWR0
aCB9OworICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSB3aGl0ZXNwYWNlVHlwZSA9PSBUcmFp
bGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVUZXh0SXRlbS5sZW5n
dGgoKTsKIH0KIAogYm9vbCBMaW5lOjpSdW46Omhhc1RyYWlsaW5nTGV0dGVyU3BhY2luZygpIGNv
bnN0CkBAIC02MzMsOSArNjQ0LDggQEAgdm9pZCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpCiAgICAgQVNTRVJUKG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CiAgICAgY29uc3Rl
eHByIHNpemVfdCB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogICAgIG1fdGV4
dENvbnRlbnQtPmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7Ci0gICAg
c2hyaW5rSG9yaXpvbnRhbGx5KG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgpOwotICAgIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlV2lkdGggPSB7IH07Ci0gICAgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBl
ID0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lOworICAgIHNocmlua0hvcml6b250YWxseShtX3Ry
YWlsaW5nV2hpdGVzcGFjZS53aWR0aCk7CisgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCBjZDAxMWE1NDMxYzEyMDQ5MGIx
N2M5NjM5ODBkZWUyNGViYzJhYjRmLi43OGI3NjU2Mjc3MmZkMDlkYWFkNTc3YzdkMTk0MGE2Y2Uy
MGEzMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC0xMDYsOCArMTA2LDggQEAgcHVi
bGljOgogCiAgICAgICAgIGNvbnN0IElubGluZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uJiBleHBh
bnNpb24oKSBjb25zdCB7IHJldHVybiBtX2V4cGFuc2lvbjsgfQogCi0gICAgICAgIGJvb2wgaGFz
VHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2VU
eXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZTsgfQotICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1do
aXRlc3BhY2VXaWR0aDsgfQorICAgICAgICBib29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLnR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNw
YWNlOjpUeXBlOjpOb25lOyB9CisgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0
ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS53aWR0aDsg
fQogCiAgICAgICAgIGJvb2wgc2hvdWxkVHJhaWxpbmdXaGl0ZXNwYWNlSGFuZygpIGNvbnN0Owog
ICAgICAgICBUZXh0RGlyZWN0aW9uIGlubGluZURpcmVjdGlvbigpIGNvbnN0OwpAQCAtMTMxLDE1
ICsxMzEsMTkgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNldEV4cGFuc2lvbihJbmxpbmVEaXNw
bGF5OjpCb3g6OkV4cGFuc2lvbiBleHBhbnNpb24pIHsgbV9leHBhbnNpb24gPSBleHBhbnNpb247
IH0KICAgICAgICAgdm9pZCBzZXROZWVkc0h5cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxv
Z2ljYWxXaWR0aCk7CiAKLSAgICAgICAgZW51bSBjbGFzcyBUcmFpbGluZ1doaXRlc3BhY2Ugewot
ICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgIE5vdENvbGxhcHNpYmxlLAotICAgICAgICAg
ICAgQ29sbGFwc2libGUsCi0gICAgICAgICAgICBDb2xsYXBzZWQKKyAgICAgICAgc3RydWN0IFRy
YWlsaW5nV2hpdGVzcGFjZSB7CisgICAgICAgICAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAg
ICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgTm90Q29sbGFwc2libGUsCisgICAgICAg
ICAgICAgICAgQ29sbGFwc2libGUsCisgICAgICAgICAgICAgICAgQ29sbGFwc2VkCisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgVHlwZSB0eXBlIHsgVHlwZTo6Tm9uZSB9OworICAgICAgICAg
ICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCB7IDAgfTsKICAgICAgICAgfTsKLSAgICAgICAgYm9v
bCBoYXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OkNvbGxhcHNpYmxlIHx8
IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpOyB9Ci0gICAgICAgIGJvb2wgaGFzQ29s
bGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRl
c3BhY2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkOyB9Ci0gICAgICAgIFRy
YWlsaW5nV2hpdGVzcGFjZSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGNvbnN0IElubGluZVRleHRJ
dGVtJikgY29uc3Q7CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS50eXBlID09IFRyYWlsaW5n
V2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2libGUgfHwgaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0
ZXNwYWNlKCk7IH0KKyAgICAgICAgYm9vbCBoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2Uo
KSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS50eXBlID09IFRyYWlsaW5nV2hp
dGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkOyB9CisgICAgICAgIHN0YXRpYyBUcmFpbGluZ1doaXRl
c3BhY2U6OlR5cGUgdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShjb25zdCBJbmxpbmVUZXh0SXRlbSYp
OwogICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogCiAgICAgICAgIGJv
b2wgaGFzVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7CkBAIC0xNTEsMTEgKzE1NSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBtX3N0eWxlOwogICAgICAgICBJ
bmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbExlZnQgeyAwIH07CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbV9sb2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgIFRyYWlsaW5nV2hpdGVzcGFjZSBt
X3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgeyBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgfTsKLSAg
ICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoIHsgMCB9Owot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+IG1fdGV4dENvbnRlbnQ7CiAgICAgICAgIElubGlu
ZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgICAgICBVQmlEaUxldmVs
IG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsKKyAgICAgICAgVHJhaWxpbmdXaGl0
ZXNwYWNlIG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxU
ZXh0PiBtX3RleHRDb250ZW50OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxS
dW4sIDEwPjsKICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5z
OyB9CkBAIC0yNTEsMTcgKzI1NCw2IEBAIGlubGluZSB2b2lkIExpbmU6OkhhbmdpbmdUcmFpbGlu
Z0NvbnRlbnQ6OnJlc2V0KCkKICAgICBtX2xlbmd0aCA9IHsgfTsKIH0KIAotaW5saW5lIExpbmU6
OlJ1bjo6VHJhaWxpbmdXaGl0ZXNwYWNlIExpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlVHlw
ZShjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0pIGNvbnN0Ci17Ci0gICAgaWYg
KCFpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSkKLSAgICAgICAgcmV0dXJuIFRyYWlsaW5n
V2hpdGVzcGFjZTo6Tm9uZTsKLSAgICBpZiAoSW5saW5lVGV4dEl0ZW06OnNob3VsZFByZXNlcnZl
U3BhY2VzQW5kVGFicyhpbmxpbmVUZXh0SXRlbSkpCi0gICAgICAgIHJldHVybiBUcmFpbGluZ1do
aXRlc3BhY2U6Ok5vdENvbGxhcHNpYmxlOwotICAgIGlmIChpbmxpbmVUZXh0SXRlbS5sZW5ndGgo
KSA9PSAxKQotICAgICAgICByZXR1cm4gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzaWJsZTsK
LSAgICByZXR1cm4gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQ7Ci19Ci0KIGlubGluZSB2
b2lkIExpbmU6OlJ1bjo6c2V0TmVlZHNIeXBoZW4oSW5saW5lTGF5b3V0VW5pdCBoeXBoZW5Mb2dp
Y2FsV2lkdGgpCiB7CiAgICAgQVNTRVJUKG1fdGV4dENvbnRlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448701</attachid>
            <date>2022-01-09 07:07:09 -0800</date>
            <delta_ts>2022-01-09 10:24:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235010-20220109070708.patch</filename>
            <type>text/plain</type>
            <size>9810</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyZDFiZDY3YWJmZjUw
OGRhOTNlYmFlOGUzNTg4ZGZkODU2MGQ5Zi4uZjJlMmFjMzU2NzJhM2U3OTQ3MWE2ZDczM2IzZTUy
MTk5MWQ3YzM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAxLTA4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVj
ZSBhIGRlZGljYXRlZCBzdHJ1Y3R1cmUgZm9yIExpbmU6OlJ1bidzIHRyYWlsaW5nIHdoaXRlc3Bh
Y2UgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTAxMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNl
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6UnVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6Om1fYmlkaUxldmVsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6bV90ZXh0Q29udGVudCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMaW5lOjpSdW46Omhhc1RyYWlsaW5nV2hpdGVzcGFjZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46Omhhc0NvbGxhcHNpYmxl
VHJhaWxpbmdXaGl0ZXNwYWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6UnVuOjpoYXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnRyYWlsaW5nV2hpdGVzcGFjZVR5cGUgY29uc3Qp
OiBEZWxldGVkLgorCiAyMDIyLTAxLTA4ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIExpbmU6OlJ1biBuZWVkcyBhY2Nlc3MgdG8gRm9udENhc2Nh
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggOGVhMzQxMTNhOTg0OWQ4MDA5YzUx
Mjc2NTg3NTNmZTFjOWU4MGJiYS4uZjIzZDhlMzdmNjA4NGI5ZmU4MzU0ZmYzZWExNmYxNDNmOTM3
MjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTUzNSw2ICs1MzUsMTcgQEAg
aW5saW5lIHN0YXRpYyBMaW5lOjpSdW46OlR5cGUgdG9MaW5lUnVuVHlwZShJbmxpbmVJdGVtOjpU
eXBlIGlubGluZUl0ZW1UeXBlKQogICAgIHJldHVybiB7IH07CiB9CiAKK3N0ZDo6b3B0aW9uYWw8
TGluZTo6UnVuOjpUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU+IExpbmU6OlJ1bjo6dHJhaWxpbmdX
aGl0ZXNwYWNlVHlwZShjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0pCit7Cisg
ICAgaWYgKCFpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICBpZiAoSW5saW5lVGV4dEl0ZW06OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhp
bmxpbmVUZXh0SXRlbSkpCisgICAgICAgIHJldHVybiB7IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlw
ZTo6Tm90Q29sbGFwc2libGUgfTsKKyAgICBpZiAoaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgPT0g
MSkKKyAgICAgICAgcmV0dXJuIHsgVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJs
ZSB9OworICAgIHJldHVybiB7IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkIH07
Cit9CisKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiAgICAgOiBtX3R5cGUodG9MaW5lUnVuVHlwZShpbmxp
bmVJdGVtLnR5cGUoKSkpCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lSXRlbS5sYXlvdXRCb3go
KSkKQEAgLTU3MCw4ICs1ODEsOCBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVTb2Z0TGlu
ZUJyZWFrSXRlbSYgc29mdExpbmVCcmVha0l0ZW0sIGNvbnN0IFJlbmRlclN0eQogICAgICwgbV9s
YXlvdXRCb3goJnNvZnRMaW5lQnJlYWtJdGVtLmxheW91dEJveCgpKQogICAgICwgbV9zdHlsZShz
dHlsZSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCi0gICAgLCBtX3RleHRDb250
ZW50KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogICAgICwgbV9iaWRpTGV2
ZWwoc29mdExpbmVCcmVha0l0ZW0uYmlkaUxldmVsKCkpCisgICAgLCBtX3RleHRDb250ZW50KHsg
c29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQogewogfQogCkBAIC01ODEsMTEgKzU5
MiwxNiBAQCBMaW5lOjpSdW46OlJ1bihjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0
ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSQogICAgICwgbV9zdHlsZShzdHlsZSkKICAg
ICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0aChsb2dp
Y2FsV2lkdGgpCi0gICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUodHJhaWxpbmdXaGl0ZXNw
YWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCi0gICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
KG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgPyBs
b2dpY2FsV2lkdGggOiBJbmxpbmVMYXlvdXRVbml0IHsgfSkKLSAgICAsIG1fdGV4dENvbnRlbnQo
eyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJh
aWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkg
fSkKICAgICAsIG1fYmlkaUxldmVsKGlubGluZVRleHRJdGVtLmJpZGlMZXZlbCgpKQogeworICAg
IGF1dG8gbGVuZ3RoID0gaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CisgICAgYXV0byB3aGl0ZXNw
YWNlVHlwZSA9IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoaW5saW5lVGV4dEl0ZW0pOworICAgIGlm
ICh3aGl0ZXNwYWNlVHlwZSkgeworICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgKndo
aXRlc3BhY2VUeXBlLCBsb2dpY2FsV2lkdGggfTsKKyAgICAgICAgaWYgKCp3aGl0ZXNwYWNlVHlw
ZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxhcHNlZCkKKyAgICAgICAgICAgIGxl
bmd0aCA9ICAxOworICAgIH0KKyAgICBtX3RleHRDb250ZW50ID0geyBpbmxpbmVUZXh0SXRlbS5z
dGFydCgpLCBsZW5ndGggfTsKIH0KIAogdm9pZCBMaW5lOjpSdW46OmV4cGFuZChjb25zdCBJbmxp
bmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRo
KQpAQCAtNTk2LDE1ICs2MTIsMTYgQEAgdm9pZCBMaW5lOjpSdW46OmV4cGFuZChjb25zdCBJbmxp
bmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIElubGluZUxheW91dFVuaXQgbG8KICAgICBBU1NF
UlQobV9iaWRpTGV2ZWwgPT0gaW5saW5lVGV4dEl0ZW0uYmlkaUxldmVsKCkpOwogCiAgICAgbV9s
b2dpY2FsV2lkdGggKz0gbG9naWNhbFdpZHRoOwotICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlw
ZSA9IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoaW5saW5lVGV4dEl0ZW0pOworICAgIGF1dG8gd2hp
dGVzcGFjZVR5cGUgPSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGlubGluZVRleHRJdGVtKTsKIAot
ICAgIGlmIChtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpO
b25lKSB7Ci0gICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSB7IH07CisgICAgaWYg
KCF3aGl0ZXNwYWNlVHlwZSkgeworICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsK
ICAgICAgICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9IGlubGluZVRleHRJdGVtLmxlbmd0aCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgg
Kz0gbG9naWNhbFdpZHRoOwotICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCArPSBtX3RyYWlsaW5n
V2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5s
aW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CisgICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhbV90cmFp
bGluZ1doaXRlc3BhY2UgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lk
dGggKyBsb2dpY2FsV2lkdGg7CisgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSBUcmFpbGluZ1do
aXRlc3BhY2UgeyAqd2hpdGVzcGFjZVR5cGUsIHdoaXRlc3BhY2VXaWR0aCB9OworICAgIG1fdGV4
dENvbnRlbnQtPmxlbmd0aCArPSAqd2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNl
OjpUeXBlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCk7CiB9CiAKIGJv
b2wgTGluZTo6UnVuOjpoYXNUcmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdApAQCAtNjI4LDE0
ICs2NDUsMTQgQEAgdm9pZCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygp
CiAKIHZvaWQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKQogeworICAgIEFT
U0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZSk7CiAgICAgLy8gQWNjb3JkaW5nIHRvIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtdGV4dC0zLyN3aGl0ZS1zcGFjZS1wcm9wZXJ0eSBtYXRyaXgKICAg
ICAvLyBUcmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgY29sbGFwc2libGUgc28gdGhlIGxl
bmd0aCBvZiB0aGUgdHJhaWxpbmcgdHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIDEgKG9y
IG5vbi1leGlzdGVudCkuCiAgICAgQVNTRVJUKG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CiAgICAg
Y29uc3RleHByIHNpemVfdCB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogICAg
IG1fdGV4dENvbnRlbnQtPmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7
Ci0gICAgc2hyaW5rSG9yaXpvbnRhbGx5KG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgpOwotICAg
IG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSB7IH07Ci0gICAgbV90cmFpbGluZ1doaXRlc3Bh
Y2VUeXBlID0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lOworICAgIHNocmlua0hvcml6b250YWxs
eShtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGgpOworICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
ID0geyB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKaW5kZXggY2QwMTFhNTQzMWMx
MjA0OTBiMTdjOTYzOTgwZGVlMjRlYmMyYWI0Zi4uOWFjOTU5ZmQ2YzZlM2EwMWFlMDkxMWI3M2Ji
YTNjYzNlZjk4MzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAtMTA2LDggKzEwNiw4
IEBAIHB1YmxpYzoKIAogICAgICAgICBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lv
biYgZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KIAotICAgICAgICBi
b29sIGhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0
ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmU7IH0KLSAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlV2lkdGg7IH0KKyAgICAgICAgYm9vbCBoYXNUcmFpbGluZ1doaXRlc3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZS5oYXNfdmFsdWUoKTsgfQor
ICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UgPyBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lk
dGggOiAwLmY7IH0KIAogICAgICAgICBib29sIHNob3VsZFRyYWlsaW5nV2hpdGVzcGFjZUhhbmco
KSBjb25zdDsKICAgICAgICAgVGV4dERpcmVjdGlvbiBpbmxpbmVEaXJlY3Rpb24oKSBjb25zdDsK
QEAgLTEzMSwxNSArMTMxLDE4IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBzZXRFeHBhbnNpb24o
SW5saW5lRGlzcGxheTo6Qm94OjpFeHBhbnNpb24gZXhwYW5zaW9uKSB7IG1fZXhwYW5zaW9uID0g
ZXhwYW5zaW9uOyB9CiAgICAgICAgIHZvaWQgc2V0TmVlZHNIeXBoZW4oSW5saW5lTGF5b3V0VW5p
dCBoeXBoZW5Mb2dpY2FsV2lkdGgpOwogCi0gICAgICAgIGVudW0gY2xhc3MgVHJhaWxpbmdXaGl0
ZXNwYWNlIHsKLSAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICBOb3RDb2xsYXBzaWJsZSwK
LSAgICAgICAgICAgIENvbGxhcHNpYmxlLAotICAgICAgICAgICAgQ29sbGFwc2VkCisgICAgICAg
IHN0cnVjdCBUcmFpbGluZ1doaXRlc3BhY2UgeworICAgICAgICAgICAgZW51bSBjbGFzcyBUeXBl
IHsKKyAgICAgICAgICAgICAgICBOb3RDb2xsYXBzaWJsZSwKKyAgICAgICAgICAgICAgICBDb2xs
YXBzaWJsZSwKKyAgICAgICAgICAgICAgICBDb2xsYXBzZWQKKyAgICAgICAgICAgIH07CisgICAg
ICAgICAgICBUeXBlIHR5cGUgeyBUeXBlOjpOb3RDb2xsYXBzaWJsZSB9OworICAgICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCB3aWR0aCB7IDAgfTsKICAgICAgICAgfTsKLSAgICAgICAgYm9vbCBo
YXNDb2xsYXBzaWJsZVRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxp
bmdXaGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OkNvbGxhcHNpYmxlIHx8IGhh
c0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpOyB9Ci0gICAgICAgIGJvb2wgaGFzQ29sbGFw
c2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3Bh
Y2VUeXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29sbGFwc2VkOyB9Ci0gICAgICAgIFRyYWls
aW5nV2hpdGVzcGFjZSB0cmFpbGluZ1doaXRlc3BhY2VUeXBlKGNvbnN0IElubGluZVRleHRJdGVt
JikgY29uc3Q7CisgICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2Uo
KSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiAobV90cmFpbGluZ1doaXRl
c3BhY2UtPnR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBo
YXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KKyAgICAgICAgYm9vbCBoYXNDb2xs
YXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVz
cGFjZSAmJiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6
OlR5cGU6OkNvbGxhcHNlZDsgfQorICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUcmFpbGlu
Z1doaXRlc3BhY2U6OlR5cGU+IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoY29uc3QgSW5saW5lVGV4
dEl0ZW0mKTsKICAgICAgICAgdm9pZCByZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsKIAogICAg
ICAgICBib29sIGhhc1RyYWlsaW5nTGV0dGVyU3BhY2luZygpIGNvbnN0OwpAQCAtMTUxLDExICsx
NTQsMTAgQEAgcHVibGljOgogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbV9zdHlsZTsKICAg
ICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xvZ2ljYWxMZWZ0IHsgMCB9OwogICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoIHsgMCB9OwotICAgICAgICBUcmFpbGluZ1doaXRl
c3BhY2UgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlIHsgVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25l
IH07Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aCB7
IDAgfTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OwogICAgICAg
ICBJbmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKICAgICAgICAgVUJp
RGlMZXZlbCBtX2JpZGlMZXZlbCB7IFVCSURJX0RFRkFVTFRfTFRSIH07CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07Cisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8VGV4dD4gbV90ZXh0Q29udGVudDsKICAgICB9OwogICAgIHVz
aW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAxMD47CiAgICAgY29uc3QgUnVuTGlzdCYgcnVucygp
IGNvbnN0IHsgcmV0dXJuIG1fcnVuczsgfQpAQCAtMjUxLDE3ICsyNTMsNiBAQCBpbmxpbmUgdm9p
ZCBMaW5lOjpIYW5naW5nVHJhaWxpbmdDb250ZW50OjpyZXNldCgpCiAgICAgbV9sZW5ndGggPSB7
IH07CiB9CiAKLWlubGluZSBMaW5lOjpSdW46OlRyYWlsaW5nV2hpdGVzcGFjZSBMaW5lOjpSdW46
OnRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJ
dGVtKSBjb25zdAotewotICAgIGlmICghaW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkpCi0g
ICAgICAgIHJldHVybiBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmU7Ci0gICAgaWYgKElubGluZVRl
eHRJdGVtOjpzaG91bGRQcmVzZXJ2ZVNwYWNlc0FuZFRhYnMoaW5saW5lVGV4dEl0ZW0pKQotICAg
ICAgICByZXR1cm4gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb3RDb2xsYXBzaWJsZTsKLSAgICBpZiAo
aW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIFRyYWlsaW5nV2hp
dGVzcGFjZTo6Q29sbGFwc2libGU7Ci0gICAgcmV0dXJuIFRyYWlsaW5nV2hpdGVzcGFjZTo6Q29s
bGFwc2VkOwotfQotCiBpbmxpbmUgdm9pZCBMaW5lOjpSdW46OnNldE5lZWRzSHlwaGVuKElubGlu
ZUxheW91dFVuaXQgaHlwaGVuTG9naWNhbFdpZHRoKQogewogICAgIEFTU0VSVChtX3RleHRDb250
ZW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>