<?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>268691</bug_id>
          
          <creation_ts>2024-02-03 05:05:15 -0800</creation_ts>
          <short_desc>[Painting] text-underline-position left/right behave as under</short_desc>
          <delta_ts>2024-07-26 19:23:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>245559</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>brandonstewart</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>2010363</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-02-03 05:05:15 -0800</bug_when>
    <thetext>see https://drafts.csswg.org/css-text-decor/#text-underline-position-property</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010364</commentid>
    <comment_count>1</comment_count>
      <attachid>469686</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-03 05:20:29 -0800</bug_when>
    <thetext>Created attachment 469686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010373</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2024-02-03 05:59:08 -0800</bug_when>
    <thetext>*** Bug 252583 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010398</commentid>
    <comment_count>3</comment_count>
      <attachid>469693</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-02-03 11:33:45 -0800</bug_when>
    <thetext>Created attachment 469693
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010399</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-02-03 11:34:35 -0800</bug_when>
    <thetext>Apparently underline is used for marked text -remove ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010400</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-02-03 11:54:30 -0800</bug_when>
    <thetext>Committed 274049@main (1b40ca37b3ff): &lt;https://commits.webkit.org/274049@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469693.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2010402</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-02-03 11:55:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/122242025&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469686</attachid>
            <date>2024-02-03 05:20:29 -0800</date>
            <delta_ts>2024-02-03 11:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-268691-20240203052028.patch</filename>
            <type>text/plain</type>
            <size>12840</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1MTJiNDI0ZjliOGFkNDBmOTc0YTgwZGI0Yzk3ZmQyZmI0N2YwYTM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBGZWIgMjAyNCAwNzozMjowOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtQYWludGlu
Z10gdGV4dC11bmRlcmxpbmUtcG9zaXRpb24gbGVmdC9yaWdodCBiZWhhdmUgYXMgdW5kZXIKIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjg2OTEKClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHRleHQt
dW5kZXJsaW5lIGxlZnQvcmlnaHQgcGFpbnRpbmcgc3VwcG9ydC4KCjEuIFJlcGxhY2UgcmVzb2x2
ZWRVbmRlcmxpbmVQb3NpdGlvbiB3aXRoIGlzQWxpZ25lZEZvclVuZGVyICg8LSBzcGVjIHRlcm0p
CnRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIGxlZnQvcmlnaHQgYmVoYXZlIGFzICd1bmRlcicgaW4g
dmVydGljYWwgd3JpdGluZyBtb2RlIChhbHNvIGNoZWNrIGFnYWluc3QgY3VycmVudCB3cml0aW5n
IG1vZGUgaW5zdGVhZCBvZiBiYXNlbGluZSB0eXBlKQoKMi4gVXNlIGlzQWxpZ25lZEZvclVuZGVy
KCkgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdlIGFyZSBkZWFsaW5nIHdpdGggJ3VuZGVyJyB0eXBl
IG9mIG9mZnNldHRpbmcuCi0tLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5
bGUuY3BwICAgfCAxMDIgKysrKysrKysrLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9J
bmxpbmVUZXh0Qm94U3R5bGUuaCAgICAgfCAgIDQgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTYgaW5z
ZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDAy
NmUwNWMyYWY2MS4uNGRmNTliZjJjY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xMDA1
LDcgKzEwMDUsNyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElu
a092ZXJmbG93Rm9yVGV4dERlY29yYXRpb25zKElubGluZURpcwogICAgICAgICAgICAgaWYgKCFs
b2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24pCiAgICAgICAgICAgICAgICAgbG9naWNhbEJv
dHRvbUZvclRleHREZWNvcmF0aW9uID0gbG9naWNhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uQ29u
dGVudChib3hlcywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUpOwogICAgICAgICAgICAgYXV0byB0
ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tID0gKmxvZ2ljYWxCb3R0b21Gb3JUZXh0
RGVjb3JhdGlvbiAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGRpc3BsYXlCb3guYm90dG9t
KCkgOiBkaXNwbGF5Qm94LnJpZ2h0KCkpOwotICAgICAgICAgICAgcmV0dXJuIHZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMocGFyZW50U3R5bGUsIG1fZGlzcGxheUxpbmUuYmFzZWxpbmVUeXBl
KCksIHsgZGlzcGxheUJveC5oZWlnaHQoKSwgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9tTGluZUJv
dHRvbSB9KTsKKyAgICAgICAgICAgIHJldHVybiB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25z
KHBhcmVudFN0eWxlLCB7IGRpc3BsYXlCb3guaGVpZ2h0KCksIHRleHRSdW5Mb2dpY2FsT2Zmc2V0
RnJvbUxpbmVCb3R0b20gfSk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBpZiAoIWRlY29yYXRp
b25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0lubGluZVRleHRCb3hTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0
Qm94U3R5bGUuY3BwCmluZGV4IDU0ZDViN2Q5ODljOC4uYjQ2NTcxNzc1MWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKQEAgLTM5LDExICszOSwyNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVudHMg
ewogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGU7Ci0gICAgVGV4dFVuZGVybGluZVBv
c2l0aW9uIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24geyBUZXh0VW5kZXJsaW5lUG9zaXRpb246
OkF1dG8gfTsKICAgICBmbG9hdCBkZWZhdWx0R2FwIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI+IHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsg
fTsKIH07CiAKK3N0YXRpYyBib29sIGlzQWxpZ25lZEZvclVuZGVyKGNvbnN0IFJlbmRlclN0eWxl
JiBkZWNvcmF0aW5nQm94U3R5bGUpCit7CisgICAgQVNTRVJUKGRlY29yYXRpbmdCb3hTdHlsZS50
ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6VW5k
ZXJsaW5lKSk7CisgICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvbiA9IGRlY29yYXRpbmdCb3hTdHls
ZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKTsKKyAgICBpZiAodW5kZXJsaW5lUG9zaXRpb24gPT0g
VGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlcikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKGRlY29yYXRpbmdCb3hTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHVuZGVybGluZVBvc2l0aW9uID09IFRleHRVbmRlcmxp
bmVQb3NpdGlvbjo6TGVmdCB8fCB1bmRlcmxpbmVQb3NpdGlvbiA9PSBUZXh0VW5kZXJsaW5lUG9z
aXRpb246OlJpZ2h0KSB7CisgICAgICAgIC8vIEluIHZlcnRpY2FsIHR5cG9ncmFwaGljIG1vZGVz
LCB0aGUgdW5kZXJsaW5lIGlzIGFsaWduZWQgYXMgZm9yIHVuZGVyIGZvciAnbGVmdCcgYW5kICdy
aWdodCcuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvLyBXaGVuIGxlZnQvcmln
aHQgc3VwcG9ydCBpcyBub3QgZW5hYmxlZC4KKyAgICByZXR1cm4gdW5kZXJsaW5lUG9zaXRpb24g
PT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvICYmIGRlY29yYXRpbmdCb3hTdHlsZS50ZXh0
VW5kZXJsaW5lT2Zmc2V0KCkuaXNBdXRvKCk7Cit9CisKIHN0YXRpYyBib29sIGlzQW5jZXN0b3JB
bmRXaXRoaW5CbG9jayhjb25zdCBSZW5kZXJJbmxpbmUmIGFuY2VzdG9yLCBjb25zdCBSZW5kZXJP
YmplY3QqIGNoaWxkKQogewogICAgIGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0ID0gY2hpbGQ7
CkBAIC0xNDAsMTcgKzE1NSw2IEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgZGVmYXVsdEdhcChjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIHN0eWxlLmNvbXB1dGVkRm9udFNpemUo
KSAvIHRleHREZWNvcmF0aW9uQmFzZUZvbnRTaXplOwogfQogCi1zdGF0aWMgaW5saW5lIFRleHRV
bmRlcmxpbmVQb3NpdGlvbiByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0
eWxlJiBkZWNvcmF0aW5nQm94U3R5bGUsIHN0ZDo6b3B0aW9uYWw8Rm9udEJhc2VsaW5lPiBiYXNl
bGluZVR5cGUpCi17Ci0gICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvbiA9IGRlY29yYXRpbmdCb3hT
dHlsZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKTsKLSAgICBpZiAodW5kZXJsaW5lUG9zaXRpb24g
PT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvICYmIGRlY29yYXRpbmdCb3hTdHlsZS50ZXh0
VW5kZXJsaW5lT2Zmc2V0KCkuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYgKGJhc2VsaW5lVHlwZSkK
LSAgICAgICAgICAgIHJldHVybiAqYmFzZWxpbmVUeXBlID09IElkZW9ncmFwaGljQmFzZWxpbmUg
PyBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyIDogVGV4dFVuZGVybGluZVBvc2l0aW9uOjpB
dXRvOwotICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOwotICAgIH0K
LSAgICByZXR1cm4gdW5kZXJsaW5lUG9zaXRpb247Ci19Ci0KIHN0YXRpYyBmbG9hdCBjb21wdXRl
ZFVuZGVybGluZU9mZnNldChjb25zdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVudHMmIGNvbnRleHQp
CiB7CiAgICAgLy8gVGhpcyByZXByZXNlbnRzIHRoZSBnYXAgYmV0d2VlbiB0aGUgYmFzZWxpbmUg
YW5kIHRoZSBjbG9zZXN0IGVkZ2Ugb2YgdGhlIHVuZGVybGluZS4KQEAgLTE2NCwzMCArMTY4LDM1
IEBAIHN0YXRpYyBmbG9hdCBjb21wdXRlZFVuZGVybGluZU9mZnNldChjb25zdCBVbmRlcmxpbmVP
ZmZzZXRBcmd1bWVudHMmIGNvbnRleHQpCiAgICAgLy8gU3RyaWN0bHkgc3BlYWtpbmcgdGhpcyBj
YW4gb2NjdXIgd2hlbmV2ZXIgdGhlIGxpbmUgY29udGFpbnMgaWRlb2dyYXBocwogICAgIC8vIGV2
ZW4gaWYgaXQgaXMgaG9yaXpvbnRhbCwgYnV0IGRldGVjdGluZyB0aGlzIGhhcyBwZXJmb3JtYW5j
ZSBpbXBsaWNhdGlvbnMuIEZvciBub3cgd2Ugb25seSB3b3JrIHdpdGgKICAgICAvLyB2ZXJ0aWNh
bCB0ZXh0LCBzaW5jZSB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhlIGJhc2VsaW5lIHR5cGUgdG8g
YmUgaWRlb2dyYXBoaWMgaW4gdGhhdCBjYXNlLgotICAgIGF1dG8gdW5kZXJsaW5lT2Zmc2V0ID0g
Y29udGV4dC5saW5lU3R5bGUudGV4dFVuZGVybGluZU9mZnNldCgpOwotICAgIGF1dG8mIGZvbnRN
ZXRyaWNzID0gY29udGV4dC5saW5lU3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKLQotICAg
IGZsb2F0IGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0OwotICAgIHN3aXRjaCAoY29udGV4dC5yZXNv
bHZlZFVuZGVybGluZVBvc2l0aW9uKSB7Ci0gICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246
OkF1dG86Ci0gICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNj
ZW50KCkgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoZ2FwKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkZyb21Gb250OgotICAgICAgICBjb21wdXRl
ZFVuZGVybGluZU9mZnNldCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZm9udE1ldHJpY3MudW5k
ZXJsaW5lUG9zaXRpb24oKSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhPcigwLmYpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6IHsKKyAgICBh
dXRvJiBzdHlsZVRvVXNlID0gY29udGV4dC5saW5lU3R5bGU7CisgICAgYXV0byB1bmRlcmxpbmVP
ZmZzZXQgPSBzdHlsZVRvVXNlLnRleHRVbmRlcmxpbmVPZmZzZXQoKTsKKyAgICBhdXRvJiBmb250
TWV0cmljcyA9IHN0eWxlVG9Vc2UubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKKyAgICBhdXRvIGNv
bXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gMC5mOworCisgICAgaWYgKGlzQWxpZ25lZEZvclVuZGVy
KHN0eWxlVG9Vc2UpKSB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0LnRleHRVbmRlcmxpbmVQb3Np
dGlvblVuZGVyKTsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJsaW5lIHJlbGF0aXZlIHRvIHRo
ZSBib3R0b20gZWRnZSBvZiB0aGUgbG93ZXN0IGVsZW1lbnQncyBjb250ZW50IGJveC4KICAgICAg
ICAgYXV0byBkZXNpcmVkT2Zmc2V0ID0gY29udGV4dC50ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRl
ci0+dGV4dFJ1bkxvZ2ljYWxIZWlnaHQgKyBnYXAgKyBzdGQ6Om1heChjb250ZXh0LnRleHRVbmRl
cmxpbmVQb3NpdGlvblVuZGVyLT50ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1vc3QsIDAuZikgKyB1
bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoMC5mKTsKICAgICAgICAgY29tcHV0ZWRVbmRlcmxpbmVP
ZmZzZXQgPSBzdGQ6Om1heDxmbG9hdD4oZGVzaXJlZE9mZnNldCwgZm9udE1ldHJpY3MuYXNjZW50
KCkpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgY29tcHV0
ZWRVbmRlcmxpbmVPZmZzZXQgPSBmb250TWV0cmljcy5hc2NlbnQoKSArIGdhcDsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOworICAgIH0gZWxzZSB7CisgICAg
ICAgIHN3aXRjaCAoc3R5bGVUb1VzZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKSkgeworICAgICAg
ICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6TGVmdDoKKyAgICAgICAgY2FzZSBUZXh0VW5k
ZXJsaW5lUG9zaXRpb246OlJpZ2h0OgorICAgICAgICAgICAgLy8gSW4gaG9yaXpvbnRhbCB0eXBv
Z3JhcGhpYyBtb2RlcywgYm90aCAnbGVmdCcgYW5kICdyaWdodCcgdmFsdWVzIGFyZSB0cmVhdGVk
IGFzIGF1dG8uCisgICAgICAgICAgICBBU1NFUlQoc3R5bGVUb1VzZS5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKTsKKyAgICAgICAgICAgIEZBTExUSFJPVUdIOworICAgICAgICBjYXNlIFRleHRV
bmRlcmxpbmVQb3NpdGlvbjo6QXV0bzoKKyAgICAgICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zm
c2V0ID0gZm9udE1ldHJpY3MuYXNjZW50KCkgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoZ2Fw
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlv
bjo6RnJvbUZvbnQ6CisgICAgICAgICAgICBjb21wdXRlZFVuZGVybGluZU9mZnNldCA9IGZvbnRN
ZXRyaWNzLmFzY2VudCgpICsgZm9udE1ldHJpY3MudW5kZXJsaW5lUG9zaXRpb24oKSArIHVuZGVy
bGluZU9mZnNldC5sZW5ndGhPcigwLmYpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGNv
bXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNjZW50KCkgKyBnYXA7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgIH0KLQogICAgIHJldHVybiBjb21wdXRlZFVu
ZGVybGluZU9mZnNldDsKIH0KIApAQCAtMjcwLDI0ICsyNzksMjMgQEAgc3RhdGljIEdseXBoT3Zl
cmZsb3cgY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0
eWxlJiBsaW4KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25z
dCBJbmxpbmVJdGVyYXRvcjo6TGluZUJveEl0ZXJhdG9yJiBsaW5lQm94LCBjb25zdCBSZW5kZXJU
ZXh0JiByZW5kZXJlciwgZmxvYXQgdGV4dEJveExvZ2ljYWxUb3AsIGZsb2F0IHRleHRCb3hMb2dp
Y2FsQm90dG9tKQogewogICAgIGF1dG8mIHN0eWxlID0gbGluZUJveC0+aXNGaXJzdCgpID8gcmVu
ZGVyZXIuZmlyc3RMaW5lU3R5bGUoKSA6IHJlbmRlcmVyLnN0eWxlKCk7Ci0gICAgYXV0byB1bmRl
cmxpbmVQb3NpdGlvblZhbHVlID0gcmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbihzdHlsZSwgbGlu
ZUJveC0+YmFzZWxpbmVUeXBlKCkpOwogICAgIGF1dG8gdGV4dFVuZGVybGluZVBvc2l0aW9uVW5k
ZXIgPSBzdGQ6Om9wdGlvbmFsPFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyPiB7IH07CiAKLSAg
ICBpZiAodW5kZXJsaW5lUG9zaXRpb25WYWx1ZSA9PSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVu
ZGVyKSB7CisgICAgaWYgKGlzQWxpZ25lZEZvclVuZGVyKHN0eWxlKSkgewogICAgICAgICBhdXRv
IHRleHRSdW5PZmZzZXQgPSB0ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1vc3QobGluZUJveCwgcmVu
ZGVyZXIsIHRleHRCb3hMb2dpY2FsVG9wLCB0ZXh0Qm94TG9naWNhbEJvdHRvbSk7CiAgICAgICAg
IHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyID0gVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIg
eyB0ZXh0Qm94TG9naWNhbEJvdHRvbSAtIHRleHRCb3hMb2dpY2FsVG9wLCB0ZXh0UnVuT2Zmc2V0
IH07CiAgICAgfQogCiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBzdHlsZS50ZXh0RGVjb3Jh
dGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6VW5kZXJsaW5lKQot
ICAgICAgICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0
eWxlLCB1bmRlcmxpbmVQb3NpdGlvblZhbHVlLCBkZWZhdWx0R2FwKHN0eWxlKSwgdGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXIgfSkpCisgICAgICAgID8gc3RkOjptYWtlX29wdGlvbmFsKGNvbXB1
dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJs
aW5lUG9zaXRpb25VbmRlciB9KSkKICAgICAgICAgOiBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJu
IGNvbXB1dGVkVmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhzdHlsZSwgdW5kZXJsaW5lT2Zm
c2V0KTsKIH0KIAotR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgVGV4dFVu
ZGVybGluZVBvc2l0aW9uVW5kZXIgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIpCitHbHlwaE92
ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRl
cikKIHsKICAgICBhdXRvIHVuZGVybGluZU9mZnNldCA9IHN0eWxlLnRleHREZWNvcmF0aW9uc0lu
RWZmZWN0KCkuY29udGFpbnMoVGV4dERlY29yYXRpb25MaW5lOjpVbmRlcmxpbmUpCi0gICAgICAg
ID8gc3RkOjptYWtlX29wdGlvbmFsKGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHJl
c29sdmVkVW5kZXJsaW5lUG9zaXRpb24oc3R5bGUsIGJhc2VsaW5lVHlwZSksIGRlZmF1bHRHYXAo
c3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KSkKKyAgICAgICAgPyBzdGQ6Om1h
a2Vfb3B0aW9uYWwoY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQoeyBzdHlsZSwgZGVmYXVsdEdhcChz
dHlsZSksIHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIH0pKQogICAgICAgICA6IHN0ZDo6bnVs
bG9wdDsKICAgICByZXR1cm4gY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKHN0
eWxlLCB1bmRlcmxpbmVPZmZzZXQpOwogfQpAQCAtMjk1LDI1ICszMDMsMjEgQEAgR2x5cGhPdmVy
ZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgRm9udEJhc2VsaW4KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9u
cyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQg
PSBzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9u
TGluZTo6VW5kZXJsaW5lKQotICAgICAgICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlZFVu
ZGVybGluZU9mZnNldCh7IHN0eWxlLCByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKHN0eWxlLCB7
IH0pLCBkZWZhdWx0R2FwKHN0eWxlKSwgeyB9IH0pKQorICAgICAgICA/IHN0ZDo6bWFrZV9vcHRp
b25hbChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCBkZWZhdWx0R2FwKHN0eWxlKSwg
eyB9IH0pKQogICAgICAgICA6IHN0ZDo6bnVsbG9wdDsKICAgICByZXR1cm4gY29tcHV0ZWRWaXN1
YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKHN0eWxlLCB1bmRlcmxpbmVPZmZzZXQpOwogfQogCiBm
bG9hdCB1bmRlcmxpbmVPZmZzZXRGb3JUZXh0Qm94UGFpbnRpbmcoY29uc3QgSW5saW5lSXRlcmF0
b3I6OklubGluZUJveCYgaW5saW5lQm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0g
ICAgYXV0byB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IHN0ZDo6b3B0aW9uYWw8VGV4dFVu
ZGVybGluZVBvc2l0aW9uVW5kZXI+IHsgfTsKLSAgICBhdXRvIHVuZGVybGluZVBvc2l0aW9uVmFs
dWUgPSByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKHN0eWxlLCBpbmxpbmVCb3gubGluZUJveCgp
LT5iYXNlbGluZVR5cGUoKSk7Ci0KLSAgICBpZiAodW5kZXJsaW5lUG9zaXRpb25WYWx1ZSA9PSBU
ZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyKSB7Ci0gICAgICAgIGF1dG8gdGV4dFJ1bk9mZnNl
dCA9IGJveE9mZnNldEZyb21Cb3R0b21Nb3N0KGlubGluZUJveC5saW5lQm94KCksIGlubGluZUJv
eC5yZW5kZXJlcigpLCBpbmxpbmVCb3gubG9naWNhbFRvcCgpLCBpbmxpbmVCb3gubG9naWNhbEJv
dHRvbSgpKTsKLSAgICAgICAgYXV0byBpbmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0ID0gaW5saW5l
Qm94LmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgaWYgKCFpbmxpbmVCb3guaXNSb290SW5saW5l
Qm94KCkpCi0gICAgICAgICAgICBpbmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0IC09IChpbmxpbmVC
b3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBpbmxpbmVCb3gucmVuZGVy
ZXIoKS5ib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSk7Ci0gICAgICAgIHRleHRVbmRlcmxpbmVQb3Np
dGlvblVuZGVyID0gVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgeyBpbmxpbmVCb3hDb250ZW50
Qm94SGVpZ2h0LCB0ZXh0UnVuT2Zmc2V0IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbXB1dGVk
VW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHVuZGVybGluZVBvc2l0aW9uVmFsdWUsIGRlZmF1bHRH
YXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KTsKKyAgICBpZiAoIWlzQWxp
Z25lZEZvclVuZGVyKHN0eWxlKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkVW5kZXJsaW5lT2Zm
c2V0KHsgc3R5bGUsIGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSk7CisKKyAgICBhdXRvIGlubGlu
ZUJveENvbnRlbnRCb3hIZWlnaHQgPSBpbmxpbmVCb3gubG9naWNhbEhlaWdodCgpOworICAgIGlm
ICghaW5saW5lQm94LmlzUm9vdElubGluZUJveCgpKQorICAgICAgICBpbmxpbmVCb3hDb250ZW50
Qm94SGVpZ2h0IC09IChpbmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KCkgKyBpbmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSk7CisgICAg
YXV0byB0ZXh0UnVuT2Zmc2V0ID0gYm94T2Zmc2V0RnJvbUJvdHRvbU1vc3QoaW5saW5lQm94Lmxp
bmVCb3goKSwgaW5saW5lQm94LnJlbmRlcmVyKCksIGlubGluZUJveC5sb2dpY2FsVG9wKCksIGlu
bGluZUJveC5sb2dpY2FsQm90dG9tKCkpOworICAgIHJldHVybiBjb21wdXRlZFVuZGVybGluZU9m
ZnNldCh7IHN0eWxlLCBkZWZhdWx0R2FwKHN0eWxlKSwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5k
ZXIgeyBpbmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0LCB0ZXh0UnVuT2Zmc2V0IH0gfSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKaW5kZXggYmY0YTli
MjIxYzg0Li5mOWMxMjcwMWVlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lu
bGluZVRleHRCb3hTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRC
b3hTdHlsZS5oCkBAIC01NCwxMSArNTQsMTEgQEAgV2F2eVN0cm9rZVBhcmFtZXRlcnMgd2F2eVN0
cm9rZVBhcmFtZXRlcnMoZmxvYXQgZm9udFNpemUpOwogc3RydWN0IFRleHRVbmRlcmxpbmVQb3Np
dGlvblVuZGVyIHsKICAgICBmbG9hdCB0ZXh0UnVuTG9naWNhbEhlaWdodCB7IDAuZiB9OwogICAg
IC8vIFRoaXMgb2Zmc2V0IHZhbHVlIGlzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBjdXJyZW50
IHRleHQgcnVuJ3MgbG9naWNhbCBib3R0b20gYW5kIHRoZSBsb3dlc3QgcG9zaXRpb24gb2YgYWxs
IHRoZSB0ZXh0IHJ1bnMKLSAgICAvLyBvbiBsaW5lIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGRl
Y29yYXRpb24gYm94LgorICAgIC8vIG9uIGxpbmUgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZGVj
b3JhdGluZyBib3guCiAgICAgZmxvYXQgdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0IHsgMC5m
IH07CiB9OwogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0
IFJlbmRlclN0eWxlJik7Ci1HbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlv
bnMoY29uc3QgUmVuZGVyU3R5bGUmLCBGb250QmFzZWxpbmUsIFRleHRVbmRlcmxpbmVQb3NpdGlv
blVuZGVyKTsKK0dseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJTdHlsZSYsIFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyKTsKIEdseXBoT3ZlcmZs
b3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGlu
ZUJveEl0ZXJhdG9yJiwgY29uc3QgUmVuZGVyVGV4dCYsIGZsb2F0IHRleHRCb3hMb2dpY2FsVG9w
LCBmbG9hdCB0ZXh0Qm94TG9naWNhbEJvdHRvbSk7CiAKIGZsb2F0IHVuZGVybGluZU9mZnNldEZv
clRleHRCb3hQYWludGluZyhjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5saW5lQm94JiwgY29uc3Qg
UmVuZGVyU3R5bGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469693</attachid>
            <date>2024-02-03 11:33:45 -0800</date>
            <delta_ts>2024-02-03 11:54:31 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-268691-20240203113344.patch</filename>
            <type>text/plain</type>
            <size>12741</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwYzlhMjlhNGIyMTdiN2VlMjEwNGM4ZTZjNmY0ZjhjMWRlYTA4MmViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMiBGZWIgMjAyNCAwNzozMjowOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtQYWludGlu
Z10gdGV4dC11bmRlcmxpbmUtcG9zaXRpb24gbGVmdC9yaWdodCBiZWhhdmUgYXMgdW5kZXIKIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjg2OTEKClJldmlld2VkIGJ5
IEFudHRpIEtvaXZpc3RvLgoKVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHRleHQt
dW5kZXJsaW5lIGxlZnQvcmlnaHQgcGFpbnRpbmcgc3VwcG9ydC4KCjEuIFJlcGxhY2UgcmVzb2x2
ZWRVbmRlcmxpbmVQb3NpdGlvbiB3aXRoIGlzQWxpZ25lZEZvclVuZGVyICg8LSBzcGVjIHRlcm0p
CnRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIGxlZnQvcmlnaHQgYmVoYXZlIGFzICd1bmRlcicgaW4g
dmVydGljYWwgd3JpdGluZyBtb2RlIChhbHNvIGNoZWNrIGFnYWluc3QgY3VycmVudCB3cml0aW5n
IG1vZGUgaW5zdGVhZCBvZiBiYXNlbGluZSB0eXBlKQoKMi4gVXNlIGlzQWxpZ25lZEZvclVuZGVy
KCkgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdlIGFyZSBkZWFsaW5nIHdpdGggJ3VuZGVyJyB0eXBl
IG9mIG9mZnNldHRpbmcuCi0tLQogLi4uL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5
bGUuY3BwICAgfCAxMDEgKysrKysrKysrLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9J
bmxpbmVUZXh0Qm94U3R5bGUuaCAgICAgfCAgIDQgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTUgaW5z
ZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDAy
NmUwNWMyYWY2MS4uNGRmNTliZjJjY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xMDA1
LDcgKzEwMDUsNyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElu
a092ZXJmbG93Rm9yVGV4dERlY29yYXRpb25zKElubGluZURpcwogICAgICAgICAgICAgaWYgKCFs
b2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24pCiAgICAgICAgICAgICAgICAgbG9naWNhbEJv
dHRvbUZvclRleHREZWNvcmF0aW9uID0gbG9naWNhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uQ29u
dGVudChib3hlcywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUpOwogICAgICAgICAgICAgYXV0byB0
ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tID0gKmxvZ2ljYWxCb3R0b21Gb3JUZXh0
RGVjb3JhdGlvbiAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGRpc3BsYXlCb3guYm90dG9t
KCkgOiBkaXNwbGF5Qm94LnJpZ2h0KCkpOwotICAgICAgICAgICAgcmV0dXJuIHZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMocGFyZW50U3R5bGUsIG1fZGlzcGxheUxpbmUuYmFzZWxpbmVUeXBl
KCksIHsgZGlzcGxheUJveC5oZWlnaHQoKSwgdGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9tTGluZUJv
dHRvbSB9KTsKKyAgICAgICAgICAgIHJldHVybiB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25z
KHBhcmVudFN0eWxlLCB7IGRpc3BsYXlCb3guaGVpZ2h0KCksIHRleHRSdW5Mb2dpY2FsT2Zmc2V0
RnJvbUxpbmVCb3R0b20gfSk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBpZiAoIWRlY29yYXRp
b25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0lubGluZVRleHRCb3hTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0
Qm94U3R5bGUuY3BwCmluZGV4IDU0ZDViN2Q5ODljOC4uZTk0MzhlZGJiODllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKQEAgLTM5LDExICszOSwyNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVudHMg
ewogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGU7Ci0gICAgVGV4dFVuZGVybGluZVBv
c2l0aW9uIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24geyBUZXh0VW5kZXJsaW5lUG9zaXRpb246
OkF1dG8gfTsKICAgICBmbG9hdCBkZWZhdWx0R2FwIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI+IHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsg
fTsKIH07CiAKK3N0YXRpYyBib29sIGlzQWxpZ25lZEZvclVuZGVyKGNvbnN0IFJlbmRlclN0eWxl
JiBkZWNvcmF0aW5nQm94U3R5bGUpCit7CisgICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvbiA9IGRl
Y29yYXRpbmdCb3hTdHlsZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKTsKKyAgICBpZiAodW5kZXJs
aW5lUG9zaXRpb24gPT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlcikKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgaWYgKGRlY29yYXRpbmdCb3hTdHlsZS5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHVuZGVybGluZVBvc2l0aW9u
ID09IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6TGVmdCB8fCB1bmRlcmxpbmVQb3NpdGlvbiA9PSBU
ZXh0VW5kZXJsaW5lUG9zaXRpb246OlJpZ2h0KSB7CisgICAgICAgIC8vIEluIHZlcnRpY2FsIHR5
cG9ncmFwaGljIG1vZGVzLCB0aGUgdW5kZXJsaW5lIGlzIGFsaWduZWQgYXMgZm9yIHVuZGVyIGZv
ciAnbGVmdCcgYW5kICdyaWdodCcuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAv
LyBXaGVuIGxlZnQvcmlnaHQgc3VwcG9ydCBpcyBub3QgZW5hYmxlZC4KKyAgICByZXR1cm4gdW5k
ZXJsaW5lUG9zaXRpb24gPT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvICYmIGRlY29yYXRp
bmdCb3hTdHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0KCkuaXNBdXRvKCk7Cit9CisKIHN0YXRpYyBi
b29sIGlzQW5jZXN0b3JBbmRXaXRoaW5CbG9jayhjb25zdCBSZW5kZXJJbmxpbmUmIGFuY2VzdG9y
LCBjb25zdCBSZW5kZXJPYmplY3QqIGNoaWxkKQogewogICAgIGNvbnN0IFJlbmRlck9iamVjdCog
b2JqZWN0ID0gY2hpbGQ7CkBAIC0xNDAsMTcgKzE1NCw2IEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQg
ZGVmYXVsdEdhcChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0dXJuIHN0eWxlLmNv
bXB1dGVkRm9udFNpemUoKSAvIHRleHREZWNvcmF0aW9uQmFzZUZvbnRTaXplOwogfQogCi1zdGF0
aWMgaW5saW5lIFRleHRVbmRlcmxpbmVQb3NpdGlvbiByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9u
KGNvbnN0IFJlbmRlclN0eWxlJiBkZWNvcmF0aW5nQm94U3R5bGUsIHN0ZDo6b3B0aW9uYWw8Rm9u
dEJhc2VsaW5lPiBiYXNlbGluZVR5cGUpCi17Ci0gICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvbiA9
IGRlY29yYXRpbmdCb3hTdHlsZS50ZXh0VW5kZXJsaW5lUG9zaXRpb24oKTsKLSAgICBpZiAodW5k
ZXJsaW5lUG9zaXRpb24gPT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvICYmIGRlY29yYXRp
bmdCb3hTdHlsZS50ZXh0VW5kZXJsaW5lT2Zmc2V0KCkuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYg
KGJhc2VsaW5lVHlwZSkKLSAgICAgICAgICAgIHJldHVybiAqYmFzZWxpbmVUeXBlID09IElkZW9n
cmFwaGljQmFzZWxpbmUgPyBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyIDogVGV4dFVuZGVy
bGluZVBvc2l0aW9uOjpBdXRvOwotICAgICAgICByZXR1cm4gVGV4dFVuZGVybGluZVBvc2l0aW9u
OjpBdXRvOwotICAgIH0KLSAgICByZXR1cm4gdW5kZXJsaW5lUG9zaXRpb247Ci19Ci0KIHN0YXRp
YyBmbG9hdCBjb21wdXRlZFVuZGVybGluZU9mZnNldChjb25zdCBVbmRlcmxpbmVPZmZzZXRBcmd1
bWVudHMmIGNvbnRleHQpCiB7CiAgICAgLy8gVGhpcyByZXByZXNlbnRzIHRoZSBnYXAgYmV0d2Vl
biB0aGUgYmFzZWxpbmUgYW5kIHRoZSBjbG9zZXN0IGVkZ2Ugb2YgdGhlIHVuZGVybGluZS4KQEAg
LTE2NCwzMCArMTY3LDM1IEBAIHN0YXRpYyBmbG9hdCBjb21wdXRlZFVuZGVybGluZU9mZnNldChj
b25zdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVudHMmIGNvbnRleHQpCiAgICAgLy8gU3RyaWN0bHkg
c3BlYWtpbmcgdGhpcyBjYW4gb2NjdXIgd2hlbmV2ZXIgdGhlIGxpbmUgY29udGFpbnMgaWRlb2dy
YXBocwogICAgIC8vIGV2ZW4gaWYgaXQgaXMgaG9yaXpvbnRhbCwgYnV0IGRldGVjdGluZyB0aGlz
IGhhcyBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuIEZvciBub3cgd2Ugb25seSB3b3JrIHdpdGgK
ICAgICAvLyB2ZXJ0aWNhbCB0ZXh0LCBzaW5jZSB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhlIGJh
c2VsaW5lIHR5cGUgdG8gYmUgaWRlb2dyYXBoaWMgaW4gdGhhdCBjYXNlLgotICAgIGF1dG8gdW5k
ZXJsaW5lT2Zmc2V0ID0gY29udGV4dC5saW5lU3R5bGUudGV4dFVuZGVybGluZU9mZnNldCgpOwot
ICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gY29udGV4dC5saW5lU3R5bGUubWV0cmljc09mUHJpbWFy
eUZvbnQoKTsKLQotICAgIGZsb2F0IGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0OwotICAgIHN3aXRj
aCAoY29udGV4dC5yZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKSB7Ci0gICAgY2FzZSBUZXh0VW5k
ZXJsaW5lUG9zaXRpb246OkF1dG86Ci0gICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0g
Zm9udE1ldHJpY3MuYXNjZW50KCkgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoZ2FwKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkZyb21Gb250Ogot
ICAgICAgICBjb21wdXRlZFVuZGVybGluZU9mZnNldCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpICsg
Zm9udE1ldHJpY3MudW5kZXJsaW5lUG9zaXRpb24oKSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhP
cigwLmYpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6
VW5kZXI6IHsKKyAgICBhdXRvJiBzdHlsZVRvVXNlID0gY29udGV4dC5saW5lU3R5bGU7CisgICAg
YXV0byB1bmRlcmxpbmVPZmZzZXQgPSBzdHlsZVRvVXNlLnRleHRVbmRlcmxpbmVPZmZzZXQoKTsK
KyAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlVG9Vc2UubWV0cmljc09mUHJpbWFyeUZvbnQo
KTsKKyAgICBhdXRvIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gMC5mOworCisgICAgaWYgKGlz
QWxpZ25lZEZvclVuZGVyKHN0eWxlVG9Vc2UpKSB7CiAgICAgICAgIEFTU0VSVChjb250ZXh0LnRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyKTsKICAgICAgICAgLy8gUG9zaXRpb24gdW5kZXJsaW5l
IHJlbGF0aXZlIHRvIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgbG93ZXN0IGVsZW1lbnQncyBjb250
ZW50IGJveC4KICAgICAgICAgYXV0byBkZXNpcmVkT2Zmc2V0ID0gY29udGV4dC50ZXh0VW5kZXJs
aW5lUG9zaXRpb25VbmRlci0+dGV4dFJ1bkxvZ2ljYWxIZWlnaHQgKyBnYXAgKyBzdGQ6Om1heChj
b250ZXh0LnRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyLT50ZXh0UnVuT2Zmc2V0RnJvbUJvdHRv
bU1vc3QsIDAuZikgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoMC5mKTsKICAgICAgICAgY29t
cHV0ZWRVbmRlcmxpbmVPZmZzZXQgPSBzdGQ6Om1heDxmbG9hdD4oZGVzaXJlZE9mZnNldCwgZm9u
dE1ldHJpY3MuYXNjZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQgPSBmb250TWV0cmljcy5hc2NlbnQoKSAr
IGdhcDsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOworICAg
IH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAoc3R5bGVUb1VzZS50ZXh0VW5kZXJsaW5lUG9zaXRp
b24oKSkgeworICAgICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6TGVmdDoKKyAgICAg
ICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlJpZ2h0OgorICAgICAgICAgICAgLy8gSW4g
aG9yaXpvbnRhbCB0eXBvZ3JhcGhpYyBtb2RlcywgYm90aCAnbGVmdCcgYW5kICdyaWdodCcgdmFs
dWVzIGFyZSB0cmVhdGVkIGFzIGF1dG8uCisgICAgICAgICAgICBBU1NFUlQoc3R5bGVUb1VzZS5p
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKKyAgICAgICAgICAgIEZBTExUSFJPVUdIOworICAg
ICAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzoKKyAgICAgICAgICAgIGNvbXB1
dGVkVW5kZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNjZW50KCkgKyB1bmRlcmxpbmVPZmZz
ZXQubGVuZ3RoT3IoZ2FwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRleHRV
bmRlcmxpbmVQb3NpdGlvbjo6RnJvbUZvbnQ6CisgICAgICAgICAgICBjb21wdXRlZFVuZGVybGlu
ZU9mZnNldCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZm9udE1ldHJpY3MudW5kZXJsaW5lUG9z
aXRpb24oKSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhPcigwLmYpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNjZW50
KCkgKyBnYXA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgIH0KLQogICAgIHJl
dHVybiBjb21wdXRlZFVuZGVybGluZU9mZnNldDsKIH0KIApAQCAtMjcwLDI0ICsyNzgsMjMgQEAg
c3RhdGljIEdseXBoT3ZlcmZsb3cgY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25z
KGNvbnN0IFJlbmRlclN0eWxlJiBsaW4KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JE
ZWNvcmF0aW9ucyhjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZUJveEl0ZXJhdG9yJiBsaW5lQm94
LCBjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgZmxvYXQgdGV4dEJveExvZ2ljYWxUb3AsIGZs
b2F0IHRleHRCb3hMb2dpY2FsQm90dG9tKQogewogICAgIGF1dG8mIHN0eWxlID0gbGluZUJveC0+
aXNGaXJzdCgpID8gcmVuZGVyZXIuZmlyc3RMaW5lU3R5bGUoKSA6IHJlbmRlcmVyLnN0eWxlKCk7
Ci0gICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvblZhbHVlID0gcmVzb2x2ZWRVbmRlcmxpbmVQb3Np
dGlvbihzdHlsZSwgbGluZUJveC0+YmFzZWxpbmVUeXBlKCkpOwogICAgIGF1dG8gdGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXIgPSBzdGQ6Om9wdGlvbmFsPFRleHRVbmRlcmxpbmVQb3NpdGlvblVu
ZGVyPiB7IH07CiAKLSAgICBpZiAodW5kZXJsaW5lUG9zaXRpb25WYWx1ZSA9PSBUZXh0VW5kZXJs
aW5lUG9zaXRpb246OlVuZGVyKSB7CisgICAgaWYgKGlzQWxpZ25lZEZvclVuZGVyKHN0eWxlKSkg
ewogICAgICAgICBhdXRvIHRleHRSdW5PZmZzZXQgPSB0ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1v
c3QobGluZUJveCwgcmVuZGVyZXIsIHRleHRCb3hMb2dpY2FsVG9wLCB0ZXh0Qm94TG9naWNhbEJv
dHRvbSk7CiAgICAgICAgIHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyID0gVGV4dFVuZGVybGlu
ZVBvc2l0aW9uVW5kZXIgeyB0ZXh0Qm94TG9naWNhbEJvdHRvbSAtIHRleHRCb3hMb2dpY2FsVG9w
LCB0ZXh0UnVuT2Zmc2V0IH07CiAgICAgfQogCiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBz
dHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGlu
ZTo6VW5kZXJsaW5lKQotICAgICAgICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlZFVuZGVy
bGluZU9mZnNldCh7IHN0eWxlLCB1bmRlcmxpbmVQb3NpdGlvblZhbHVlLCBkZWZhdWx0R2FwKHN0
eWxlKSwgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgfSkpCisgICAgICAgID8gc3RkOjptYWtl
X29wdGlvbmFsKGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIGRlZmF1bHRHYXAoc3R5
bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KSkKICAgICAgICAgOiBzdGQ6Om51bGxv
cHQ7CiAgICAgcmV0dXJuIGNvbXB1dGVkVmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhzdHls
ZSwgdW5kZXJsaW5lT2Zmc2V0KTsKIH0KIAotR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0Zv
ckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgRm9udEJhc2VsaW5lIGJhc2Vs
aW5lVHlwZSwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgdGV4dFVuZGVybGluZVBvc2l0aW9u
VW5kZXIpCitHbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB0ZXh0VW5kZXJs
aW5lUG9zaXRpb25VbmRlcikKIHsKICAgICBhdXRvIHVuZGVybGluZU9mZnNldCA9IHN0eWxlLnRl
eHREZWNvcmF0aW9uc0luRWZmZWN0KCkuY29udGFpbnMoVGV4dERlY29yYXRpb25MaW5lOjpVbmRl
cmxpbmUpCi0gICAgICAgID8gc3RkOjptYWtlX29wdGlvbmFsKGNvbXB1dGVkVW5kZXJsaW5lT2Zm
c2V0KHsgc3R5bGUsIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24oc3R5bGUsIGJhc2VsaW5lVHlw
ZSksIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KSkKKyAg
ICAgICAgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwoY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQoeyBzdHls
ZSwgZGVmYXVsdEdhcChzdHlsZSksIHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIH0pKQogICAg
ICAgICA6IHN0ZDo6bnVsbG9wdDsKICAgICByZXR1cm4gY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0Zv
ckRlY29yYXRpb25zKHN0eWxlLCB1bmRlcmxpbmVPZmZzZXQpOwogfQpAQCAtMjk1LDI1ICszMDIs
MjEgQEAgR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgRm9udEJhc2VsaW4KIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZs
b3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgYXV0byB1
bmRlcmxpbmVPZmZzZXQgPSBzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5z
KFRleHREZWNvcmF0aW9uTGluZTo6VW5kZXJsaW5lKQotICAgICAgICA/IHN0ZDo6bWFrZV9vcHRp
b25hbChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCByZXNvbHZlZFVuZGVybGluZVBv
c2l0aW9uKHN0eWxlLCB7IH0pLCBkZWZhdWx0R2FwKHN0eWxlKSwgeyB9IH0pKQorICAgICAgICA/
IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCBkZWZh
dWx0R2FwKHN0eWxlKSwgeyB9IH0pKQogICAgICAgICA6IHN0ZDo6bnVsbG9wdDsKICAgICByZXR1
cm4gY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKHN0eWxlLCB1bmRlcmxpbmVP
ZmZzZXQpOwogfQogCiBmbG9hdCB1bmRlcmxpbmVPZmZzZXRGb3JUZXh0Qm94UGFpbnRpbmcoY29u
c3QgSW5saW5lSXRlcmF0b3I6OklubGluZUJveCYgaW5saW5lQm94LCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCiB7Ci0gICAgYXV0byB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IHN0ZDo6
b3B0aW9uYWw8VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI+IHsgfTsKLSAgICBhdXRvIHVuZGVy
bGluZVBvc2l0aW9uVmFsdWUgPSByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKHN0eWxlLCBpbmxp
bmVCb3gubGluZUJveCgpLT5iYXNlbGluZVR5cGUoKSk7Ci0KLSAgICBpZiAodW5kZXJsaW5lUG9z
aXRpb25WYWx1ZSA9PSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyKSB7Ci0gICAgICAgIGF1
dG8gdGV4dFJ1bk9mZnNldCA9IGJveE9mZnNldEZyb21Cb3R0b21Nb3N0KGlubGluZUJveC5saW5l
Qm94KCksIGlubGluZUJveC5yZW5kZXJlcigpLCBpbmxpbmVCb3gubG9naWNhbFRvcCgpLCBpbmxp
bmVCb3gubG9naWNhbEJvdHRvbSgpKTsKLSAgICAgICAgYXV0byBpbmxpbmVCb3hDb250ZW50Qm94
SGVpZ2h0ID0gaW5saW5lQm94LmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgaWYgKCFpbmxpbmVC
b3guaXNSb290SW5saW5lQm94KCkpCi0gICAgICAgICAgICBpbmxpbmVCb3hDb250ZW50Qm94SGVp
Z2h0IC09IChpbmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBp
bmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSk7Ci0gICAgICAgIHRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyID0gVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgeyBp
bmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0LCB0ZXh0UnVuT2Zmc2V0IH07Ci0gICAgfQotCi0gICAg
cmV0dXJuIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHVuZGVybGluZVBvc2l0aW9u
VmFsdWUsIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KTsK
KyAgICBpZiAoIWlzQWxpZ25lZEZvclVuZGVyKHN0eWxlKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1
dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSk7CisK
KyAgICBhdXRvIGlubGluZUJveENvbnRlbnRCb3hIZWlnaHQgPSBpbmxpbmVCb3gubG9naWNhbEhl
aWdodCgpOworICAgIGlmICghaW5saW5lQm94LmlzUm9vdElubGluZUJveCgpKQorICAgICAgICBp
bmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0IC09IChpbmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKCkgKyBpbmxpbmVCb3gucmVuZGVyZXIoKS5ib3JkZXJBbmRQYWRkaW5n
QWZ0ZXIoKSk7CisgICAgYXV0byB0ZXh0UnVuT2Zmc2V0ID0gYm94T2Zmc2V0RnJvbUJvdHRvbU1v
c3QoaW5saW5lQm94LmxpbmVCb3goKSwgaW5saW5lQm94LnJlbmRlcmVyKCksIGlubGluZUJveC5s
b2dpY2FsVG9wKCksIGlubGluZUJveC5sb2dpY2FsQm90dG9tKCkpOworICAgIHJldHVybiBjb21w
dXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCBkZWZhdWx0R2FwKHN0eWxlKSwgVGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXIgeyBpbmxpbmVCb3hDb250ZW50Qm94SGVpZ2h0LCB0ZXh0UnVuT2Zm
c2V0IH0gfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGlu
ZVRleHRCb3hTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxl
LmgKaW5kZXggYmY0YTliMjIxYzg0Li5mOWMxMjcwMWVlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCkBAIC01NCwxMSArNTQsMTEgQEAgV2F2eVN0cm9rZVBh
cmFtZXRlcnMgd2F2eVN0cm9rZVBhcmFtZXRlcnMoZmxvYXQgZm9udFNpemUpOwogc3RydWN0IFRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsKICAgICBmbG9hdCB0ZXh0UnVuTG9naWNhbEhlaWdo
dCB7IDAuZiB9OwogICAgIC8vIFRoaXMgb2Zmc2V0IHZhbHVlIGlzIHRoZSBkaXN0YW5jZSBiZXR3
ZWVuIHRoZSBjdXJyZW50IHRleHQgcnVuJ3MgbG9naWNhbCBib3R0b20gYW5kIHRoZSBsb3dlc3Qg
cG9zaXRpb24gb2YgYWxsIHRoZSB0ZXh0IHJ1bnMKLSAgICAvLyBvbiBsaW5lIHRoYXQgYmVsb25n
IHRvIHRoZSBzYW1lIGRlY29yYXRpb24gYm94LgorICAgIC8vIG9uIGxpbmUgdGhhdCBiZWxvbmcg
dG8gdGhlIHNhbWUgZGVjb3JhdGluZyBib3guCiAgICAgZmxvYXQgdGV4dFJ1bk9mZnNldEZyb21C
b3R0b21Nb3N0IHsgMC5mIH07CiB9OwogR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRl
Y29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJik7Ci1HbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmLCBGb250QmFzZWxpbmUsIFRleHRV
bmRlcmxpbmVQb3NpdGlvblVuZGVyKTsKK0dseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JE
ZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYsIFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVy
KTsKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBJbmxp
bmVJdGVyYXRvcjo6TGluZUJveEl0ZXJhdG9yJiwgY29uc3QgUmVuZGVyVGV4dCYsIGZsb2F0IHRl
eHRCb3hMb2dpY2FsVG9wLCBmbG9hdCB0ZXh0Qm94TG9naWNhbEJvdHRvbSk7CiAKIGZsb2F0IHVu
ZGVybGluZU9mZnNldEZvclRleHRCb3hQYWludGluZyhjb25zdCBJbmxpbmVJdGVyYXRvcjo6SW5s
aW5lQm94JiwgY29uc3QgUmVuZGVyU3R5bGUmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>