<?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>219087</bug_id>
          
          <creation_ts>2020-11-18 07:32:28 -0800</creation_ts>
          <short_desc>::first-letter styles cause Range clientRect miscalculations</short_desc>
          <delta_ts>2026-04-13 07:13:47 -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>Safari Technology Preview</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=43830</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pearson">j</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>mickael.menu</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>smoley</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1708598</commentid>
    <comment_count>0</comment_count>
      <attachid>414449</attachid>
    <who name="Joseph Pearson">j</who>
    <bug_when>2020-11-18 07:32:28 -0800</bug_when>
    <thetext>Created attachment 414449
Example showing expected result and miscalcs

If an element has a ::first-letter style rule, creating a Range within that element and measuring its client rectangles (Range#getClientRects or Range#getBoundingClientRects) will produce incorrect dimensions.

The range itself is fine: Range#toString() shows that the correct characters have been selected. But the resulting rectangles are wrong, at least on the x axis (left, width).

Note that *any* ::first-letter declaration on the element produces the bug, even if the styles are not layout-affecting, and even if they&apos;re invalid style values.

See a quick reduction in the attached file. I don&apos;t think this is a new bug — I have observed it for years, but only got around to the reduction today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708677</commentid>
    <comment_count>1</comment_count>
    <who name="Smoley">smoley</who>
    <bug_when>2020-11-18 10:47:43 -0800</bug_when>
    <thetext>Thanks for filing. I can reproduce this with the test case on Safari 13.1.3 as well as STP 115 (14.1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708678</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-18 10:47:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/71546397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900453</commentid>
    <comment_count>3</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-22 14:45:46 -0700</bug_when>
    <thetext>I am able to reproduce this bug in Safari Technology Preview 154 using attached test case and both Example 2 and 3 doe snot highlight &quot;troublemakers&quot; like Expected Results while both Firefox Nightly 107 and Chrome Canary 108 show expected results in all cases / example. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2199252</commentid>
    <comment_count>4</comment_count>
      <attachid>479020</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-04-11 13:38:10 -0700</bug_when>
    <thetext>Created attachment 479020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2199253</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-04-11 13:39:36 -0700</bug_when>
    <thetext>Let&apos;s see if this works without https://github.com/WebKit/WebKit/pull/62142</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2199281</commentid>
    <comment_count>6</comment_count>
      <attachid>479024</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-04-11 15:58:09 -0700</bug_when>
    <thetext>Created attachment 479024
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2199723</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-04-13 07:13:44 -0700</bug_when>
    <thetext>Committed 311085@main (625c8663227c): &lt;https://commits.webkit.org/311085@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479024.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>414449</attachid>
            <date>2020-11-18 07:32:28 -0800</date>
            <delta_ts>2020-11-18 07:32:28 -0800</delta_ts>
            <desc>Example showing expected result and miscalcs</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>2980</size>
            <attacher name="Joseph Pearson">j</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
IC8+CiAgICA8dGl0bGU+Rmlyc3QtbGV0dGVyIHZzIFJhbmdlIFJlY3RzPC90aXRsZT4KCiAgICA8
c3R5bGU+CiAgICAgIC5leGFtcGxlIHsKICAgICAgICBtYXgtd2lkdGg6IDMwZW07CiAgICAgIH0K
CiAgICAgIC5leGFtcGxlLTI6OmZpcnN0LWxldHRlciB7CiAgICAgICAgZmxvYXQ6IGxlZnQ7CiAg
ICAgICAgbWFyZ2luOiAwIDAuMDVlbSAwIDA7CiAgICAgICAgZm9udC1zaXplOiA0LjVlbTsKICAg
ICAgICBsaW5lLWhlaWdodDogMC43NWVtOwogICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7CiAgICAg
IH0KCiAgICAgIC5leGFtcGxlLTM6OmZpcnN0LWxldHRlciB7CiAgICAgICAgY291bnRlci1yZXNl
dDogYW4taW52YWxpZC12YWx1ZTsKICAgICAgfQoKICAgICAgLmhpZ2hsaWdodCB7CiAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDAsMjU1LDAu
NSk7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9oZWFkPgoKICA8Ym9keT4KCiAgICA8c2VjdGlv
bj4KICAgICAgPGgzPkV4YW1wbGUgMTogZXhwZWN0ZWQgcmVzdWx0PC9oMz4KICAgICAgPHAgY2xh
c3M9ImV4YW1wbGUgZXhhbXBsZS0xIj4KICAgICAgICBIZXJlJ3MgdG8gdGhlIGNyYXp5IG9uZXMu
IFRoZSBtaXNmaXRzLiBUaGUgcmViZWxzLiBUaGUgdHJvdWJsZW1ha2Vycy4KICAgICAgICBUaGUg
cm91bmQgcGVncyBpbiB0aGUgc3F1YXJlIGhvbGVzLiBUaGUgb25lcyB3aG8gc2VlIHRoaW5ncyBk
aWZmZXJlbnRseS4KICAgICAgICBUaGV5J3JlIG5vdCBmb25kIG9mIHJ1bGVzLiBBbmQgdGhleSBo
YXZlIG5vIHJlc3BlY3QgZm9yIHRoZSBzdGF0dXMgcXVvLgogICAgICAgIFlvdSBjYW4gcXVvdGUg
dGhlbSwgZGlzYWdyZWUgd2l0aCB0aGVtLCBnbG9yaWZ5IG9yIHZpbGlmeSB0aGVtLgogICAgICAg
IEFib3V0IHRoZSBvbmx5IHRoaW5nIHlvdSBjYW4ndCBkbyBpcyBpZ25vcmUgdGhlbS4KICAgICAg
PC9wPgogICAgPC9zZWN0aW9uPgoKICAgIDxzZWN0aW9uPgogICAgICA8aDM+RXhhbXBsZSAyOiBm
aXJzdC1sZXR0ZXIgZHJvcC1jYXA8L2gzPgogICAgICA8cCBjbGFzcz0iZXhhbXBsZSBleGFtcGxl
LTIiPgogICAgICAgIEhlcmUncyB0byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSBy
ZWJlbHMuIFRoZSB0cm91YmxlbWFrZXJzLgogICAgICAgIFRoZSByb3VuZCBwZWdzIGluIHRoZSBz
cXVhcmUgaG9sZXMuIFRoZSBvbmVzIHdobyBzZWUgdGhpbmdzIGRpZmZlcmVudGx5LgogICAgICAg
IFRoZXkncmUgbm90IGZvbmQgb2YgcnVsZXMuIEFuZCB0aGV5IGhhdmUgbm8gcmVzcGVjdCBmb3Ig
dGhlIHN0YXR1cyBxdW8uCiAgICAgICAgWW91IGNhbiBxdW90ZSB0aGVtLCBkaXNhZ3JlZSB3aXRo
IHRoZW0sIGdsb3JpZnkgb3IgdmlsaWZ5IHRoZW0uCiAgICAgICAgQWJvdXQgdGhlIG9ubHkgdGhp
bmcgeW91IGNhbid0IGRvIGlzIGlnbm9yZSB0aGVtLgogICAgICA8L3A+CiAgICA8L3NlY3Rpb24+
CgogICAgPHNlY3Rpb24+CiAgICAgIDxoMz5FeGFtcGxlIDM6IGFueSBmaXJzdC1sZXR0ZXIgc3R5
bGU8L2gzPgogICAgICA8cCBjbGFzcz0iZXhhbXBsZSBleGFtcGxlLTMiPgogICAgICAgIEhlcmUn
cyB0byB0aGUgY3Jhenkgb25lcy4gVGhlIG1pc2ZpdHMuIFRoZSByZWJlbHMuIFRoZSB0cm91Ymxl
bWFrZXJzLgogICAgICAgIFRoZSByb3VuZCBwZWdzIGluIHRoZSBzcXVhcmUgaG9sZXMuIFRoZSBv
bmVzIHdobyBzZWUgdGhpbmdzIGRpZmZlcmVudGx5LgogICAgICAgIFRoZXkncmUgbm90IGZvbmQg
b2YgcnVsZXMuIEFuZCB0aGV5IGhhdmUgbm8gcmVzcGVjdCBmb3IgdGhlIHN0YXR1cyBxdW8uCiAg
ICAgICAgWW91IGNhbiBxdW90ZSB0aGVtLCBkaXNhZ3JlZSB3aXRoIHRoZW0sIGdsb3JpZnkgb3Ig
dmlsaWZ5IHRoZW0uCiAgICAgICAgQWJvdXQgdGhlIG9ubHkgdGhpbmcgeW91IGNhbid0IGRvIGlz
IGlnbm9yZSB0aGVtLgogICAgICA8L3A+CiAgICA8L3NlY3Rpb24+CgoKICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgdmFyIGV4YW1wbGVzID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnLmV4YW1wbGUnKTsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlpID0gZXhhbXBs
ZXMubGVuZ3RoOyBpIDwgaWk7ICsraSkgewogICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNy
ZWF0ZVJhbmdlKCk7CiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoZXhhbXBsZXNbaV0uZmlyc3RDaGls
ZCwgNjQpOwogICAgICAgIHJhbmdlLnNldEVuZChleGFtcGxlc1tpXS5maXJzdENoaWxkLCA3Nyk7
CiAgICAgICAgY29uc29sZS5sb2coJ0VYQU1QTEVbJXNdOiAiJXMiJywgaSwgcmFuZ2UudG9TdHJp
bmcoKSk7CgogICAgICAgIHZhciByZWN0cyA9IHJhbmdlLmdldENsaWVudFJlY3RzKCk7CiAgICAg
ICAgZm9yICh2YXIgaiA9IDAsIGpqID0gcmVjdHMubGVuZ3RoOyBqIDwgamo7ICsraikgewogICAg
ICAgICAgdmFyIGhpZ2hsaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg
ICAgICAgaGlnaGxpZ2h0LmNsYXNzTGlzdC5hZGQoJ2hpZ2hsaWdodCcpOwogICAgICAgICAgaGln
aGxpZ2h0LnN0eWxlLnNldFByb3BlcnR5KCd0b3AnLCByZWN0c1tqXS50b3ArJ3B4Jyk7CiAgICAg
ICAgICBoaWdobGlnaHQuc3R5bGUuc2V0UHJvcGVydHkoJ2xlZnQnLCByZWN0c1tqXS5sZWZ0Kydw
eCcpOwogICAgICAgICAgaGlnaGxpZ2h0LnN0eWxlLnNldFByb3BlcnR5KCd3aWR0aCcsIHJlY3Rz
W2pdLndpZHRoKydweCcpOwogICAgICAgICAgaGlnaGxpZ2h0LnN0eWxlLnNldFByb3BlcnR5KCdo
ZWlnaHQnLCByZWN0c1tqXS5oZWlnaHQrJ3B4Jyk7CiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGhpZ2hsaWdodCk7CiAgICAgICAgfQogICAgICB9CiAgICA8L3NjcmlwdD4KCiAg
PC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479020</attachid>
            <date>2026-04-11 13:38:10 -0700</date>
            <delta_ts>2026-04-11 15:58:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219087-20260411133810.patch</filename>
            <type>text/plain</type>
            <size>7816</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxN2RjYjFhMmZhN2E1NDYyZDc4MDMwMTJiNTA3MGUyMDQ2NDFmYTdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTEgQXByIDIwMjYgMTM6MzQ6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSYW5nZS5n
ZXRDbGllbnRSZWN0cygpIHJldHVybnMgd3JvbmcgcmVjdCBmb3IgZmlyc3QtbGV0dGVyCiBzdHls
ZWQgdGV4dCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDg3CiA8
cmRhcjovL3Byb2JsZW0vNzE1NDYzOTc+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldo
ZW4gYSB0ZXh0IG5vZGUgaGFzIDo6Zmlyc3QtbGV0dGVyIHN0eWxpbmcsIFdlYktpdCBzcGxpdHMg
aXQgaW50byB0d28KcmVuZGVyZXJzOiBvbmUgZm9yIHRoZSBmaXJzdCBsZXR0ZXIsIG9uZSBmb3Ig
dGhlIHJlc3QuIEJ1dApSYW5nZS5nZXRDbGllbnRSZWN0cygpIG9ubHkgYXNrcyB0aGUgInJlc3Qi
IHJlbmRlcmVyLCBwYXNzaW5nIERPTQpvZmZzZXRzIHRoYXQgZG9uJ3QgbWF0Y2ggaXRzIGxvY2Fs
IG9mZnNldHMuCgpGb3IgZXhhbXBsZSwgd2l0aCAiQUIiIHdoZXJlICJBIiBpcyB0aGUgZmlyc3Qg
bGV0dGVyOgoxLiBET00gb2Zmc2V0IDAgbWFwcyB0byBub3RoaW5nIGluIHRoZSByZW1haW5pbmcg
ZnJhZ21lbnQgKHN0YXJ0cyBhdCAxKQoyLiBnZXRDbGllbnRSZWN0cygwLCAxKSByZXR1cm5zIHRo
ZSByZWN0IGZvciAiQiIgaW5zdGVhZCBvZiAiQSIKClRoZSBmaXggc3BsaXRzIHRoZSByYW5nZSBh
dCB0aGUgZmlyc3QtbGV0dGVyIGJvdW5kYXJ5IGFuZCBxdWVyaWVzIGJvdGgKcmVuZGVyZXJzIHdp
dGggdGhlaXIgcmVzcGVjdGl2ZSBsb2NhbCBvZmZzZXRzLgoKKiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9maXJzdC1sZXR0ZXItY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNsaWVudC1yZWN0cy5odG1sOiBBZGRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OmFic29s
dXRlUmVjdHNGb3JSYW5nZUluVGV4dCk6Ci0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgICAgIHwgMjkgKysrKysrLQogLi4uL2ZpcnN0LWxldHRlci1jbGllbnQt
cmVjdHMtZXhwZWN0ZWQudHh0ICAgIHwgMTUgKysrKwogLi4uL2Zhc3QvY3NzL2ZpcnN0LWxldHRl
ci1jbGllbnQtcmVjdHMuaHRtbCAgIHwgODQgKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj
aGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1jbGllbnQtcmVjdHMtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0
dGVyLWNsaWVudC1yZWN0cy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBlNmRkZjk0OTlmZjcuLjI1YjhlZmJkMGM0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxk
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0yMTgwLDcgKzIxODEsMzMgQEAgc3Rh
dGljIFZlY3RvcjxGbG9hdFJlY3Q+IGFic29sdXRlUmVjdHNGb3JSYW5nZUluVGV4dChjb25zdCBT
aW1wbGVSYW5nZSYgcmFuZ2UsIFQKICAgICAgICAgb2Zmc2V0UmFuZ2Uuc3RhcnQtLTsKICAgICBp
ZiAob2Zmc2V0UmFuZ2UuZW5kIDwgbm9kZS5kYXRhKCkubGVuZ3RoKCkgJiYgb2Zmc2V0UmFuZ2Uu
ZW5kICYmIFUxNl9JU19UUkFJTChub2RlLmRhdGEoKVtvZmZzZXRSYW5nZS5lbmRdKSAmJiBVMTZf
SVNfTEVBRChub2RlLmRhdGEoKVtvZmZzZXRSYW5nZS5lbmQgLSAxXSkpCiAgICAgICAgIG9mZnNl
dFJhbmdlLmVuZCsrOwotICAgIGF1dG8gdGV4dFF1YWRzID0gcmVuZGVyZXItPmFic29sdXRlUXVh
ZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFydCwgb2Zmc2V0UmFuZ2UuZW5kLCBiZWhhdmlvcik7
CisKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgYXV0byBoYW5kbGVGaXJz
dExldHRlclF1YWRzID0gWyZdIHsKKyAgICAgICAgQ2hlY2tlZFB0ciB0ZXh0RnJhZ21lbnRXaXRo
UmVtYWluaW5nVGV4dEFmdGVyRmlyc3RMZXR0ZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4
dEZyYWdtZW50PigqcmVuZGVyZXIpOworICAgICAgICBpZiAoIXRleHRGcmFnbWVudFdpdGhSZW1h
aW5pbmdUZXh0QWZ0ZXJGaXJzdExldHRlciB8fCAhdGV4dEZyYWdtZW50V2l0aFJlbWFpbmluZ1Rl
eHRBZnRlckZpcnN0TGV0dGVyLT5maXJzdExldHRlcigpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGF1dG8gcmVtYWluaW5nVGV4dFN0YXJ0ID0gdGV4dEZyYWdtZW50V2l0aFJlbWFp
bmluZ1RleHRBZnRlckZpcnN0TGV0dGVyLT5zdGFydCgpOworICAgICAgICBpZiAob2Zmc2V0UmFu
Z2Uuc3RhcnQgPCByZW1haW5pbmdUZXh0U3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChDaGVja2Vk
UHRyIGZpcnN0TGV0dGVyUmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4dD4odGV4
dEZyYWdtZW50V2l0aFJlbWFpbmluZ1RleHRBZnRlckZpcnN0TGV0dGVyLT5maXJzdExldHRlcigp
LT5maXJzdENoaWxkKCkpKSB7CisgICAgICAgICAgICAgICAgYXV0byBmaXJzdExldHRlckVuZCA9
IHN0ZDo6bWluKG9mZnNldFJhbmdlLmVuZCwgcmVtYWluaW5nVGV4dFN0YXJ0KTsKKyAgICAgICAg
ICAgICAgICB0ZXh0UXVhZHMuYXBwZW5kVmVjdG9yKGZpcnN0TGV0dGVyUmVuZGVyZXItPmFic29s
dXRlUXVhZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFydCwgZmlyc3RMZXR0ZXJFbmQsIGJlaGF2
aW9yKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXRSYW5nZS5zdGFydCA9IDA7
CisgICAgICAgICAgICBvZmZzZXRSYW5nZS5lbmQgPSBvZmZzZXRSYW5nZS5lbmQgPiByZW1haW5p
bmdUZXh0U3RhcnQgPyBvZmZzZXRSYW5nZS5lbmQgLSByZW1haW5pbmdUZXh0U3RhcnQgOiAwOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKG9mZnNldFJh
bmdlLnN0YXJ0ID49IHJlbWFpbmluZ1RleHRTdGFydCk7CisgICAgICAgIEFTU0VSVChvZmZzZXRS
YW5nZS5lbmQgPj0gcmVtYWluaW5nVGV4dFN0YXJ0KTsKKyAgICAgICAgb2Zmc2V0UmFuZ2Uuc3Rh
cnQgLT0gcmVtYWluaW5nVGV4dFN0YXJ0OworICAgICAgICBvZmZzZXRSYW5nZS5lbmQgLT0gcmVt
YWluaW5nVGV4dFN0YXJ0OworICAgIH07CisKKyAgICBoYW5kbGVGaXJzdExldHRlclF1YWRzKCk7
CisgICAgaWYgKG9mZnNldFJhbmdlLnN0YXJ0IDwgb2Zmc2V0UmFuZ2UuZW5kKQorICAgICAgICB0
ZXh0UXVhZHMuYXBwZW5kVmVjdG9yKHJlbmRlcmVyLT5hYnNvbHV0ZVF1YWRzRm9yUmFuZ2Uob2Zm
c2V0UmFuZ2Uuc3RhcnQsIG9mZnNldFJhbmdlLmVuZCwgYmVoYXZpb3IpKTsKIAogICAgIGlmIChi
ZWhhdmlvci5jb250YWlucyhSZW5kZXJPYmplY3Q6OkJvdW5kaW5nUmVjdEJlaGF2aW9yOjpSZXNw
ZWN0Q2xpcHBpbmcpKSB7CiAgICAgICAgIGF1dG8gYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0
ID0gcmVuZGVyZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1jbGllbnQtcmVjdHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNsaWVudC1y
ZWN0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5jMWRhN2U4ODVlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9m
aXJzdC1sZXR0ZXItY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitB
CitBQgorQUJDREUKK1BBU1M6IHNpbmdsZSBjaGFyICgwLTEpIHJlY3QgY291bnQgPSAxCitQQVNT
OiBzaW5nbGUgY2hhciAoMC0xKSBoYXMgbm9uemVybyB3aWR0aCA9IHRydWUKK1BBU1M6IHR3byBj
aGFycyAoMC0xKSB0b3RhbCB3aWR0aCA9IDIwCitQQVNTOiB0d28gY2hhcnMgKDEtMikgdG90YWwg
d2lkdGggPSAyMAorUEFTUzogdHdvIGNoYXJzICgwLTIpIHRvdGFsIHdpZHRoID0gNDAKK1BBU1M6
IHR3byBjaGFycyAoMC0xKSB4IDwgKDEtMikgeCA9IHRydWUKK1BBU1M6IG11bHRpICgwLTEpIHRv
dGFsIHdpZHRoID0gMjAKK1BBU1M6IG11bHRpICgxLTUpIHRvdGFsIHdpZHRoID0gODAKK1BBU1M6
IG11bHRpICgwLTUpIHRvdGFsIHdpZHRoID0gMTAwCitQQVNTOiBtdWx0aSAoMi0zKSB0b3RhbCB3
aWR0aCA9IDIwCitQQVNTOiBtdWx0aSAoMC0xKSB4IDwgKDEtNSkgZmlyc3QgeCA9IHRydWUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNsaWVudC1yZWN0
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNsaWVudC1yZWN0cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmU3MjNkYTdmZjcz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNs
aWVudC1yZWN0cy5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT5nZXRDbGllbnRSZWN0cyBzaG91bGQgcmV0dXJuIGNvcnJlY3QgcmVj
dHMgZm9yIGZpcnN0LWxldHRlciBzdHlsZWQgdGV4dDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvZm9udHMvYWhlbS5jc3MiPgorPHN0eWxlPgor
ZGl2LnRlc3QgeworICAgIGZvbnQ6IDIwcHgvMSBBaGVtOworICAgIG1hcmdpbjogMTBweDsKK30K
K2Rpdi50ZXN0OjpmaXJzdC1sZXR0ZXIgeworICAgIGNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0i
c2luZ2xlIj5BPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0idHdvIj5BQjwvZGl2PgorPGRp
diBjbGFzcz0idGVzdCIgaWQ9Im11bHRpIj5BQkNERTwvZGl2PgorPHByZSBpZD0icmVzdWx0Ij48
L3ByZT4KKzxzY3JpcHQ+Cit2YXIgcmVzdWx0cyA9IFtdOworCitmdW5jdGlvbiByZWN0U3RyKHIp
IHsKKyAgICByZXR1cm4gciA/ICJ4OiIgKyByLnggKyAiIHc6IiArIHIud2lkdGggOiAibnVsbCI7
Cit9CisKK2Z1bmN0aW9uIGdldFJlY3RzKHRleHROb2RlLCBzdGFydCwgZW5kKSB7CisgICAgdmFy
IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZXRTdGFydCh0ZXh0
Tm9kZSwgc3RhcnQpOworICAgIHJhbmdlLnNldEVuZCh0ZXh0Tm9kZSwgZW5kKTsKKyAgICByZXR1
cm4gQXJyYXkuZnJvbShyYW5nZS5nZXRDbGllbnRSZWN0cygpKTsKK30KKworZnVuY3Rpb24gdG90
YWxXaWR0aChyZWN0cykgeworICAgIHJldHVybiByZWN0cy5yZWR1Y2UoZnVuY3Rpb24oc3VtLCBy
KSB7IHJldHVybiBzdW0gKyByLndpZHRoOyB9LCAwKTsKK30KKworZnVuY3Rpb24gY2hlY2sobGFi
ZWwsIGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgcGFzcyA9IGFjdHVhbCA9PT0gZXhwZWN0
ZWQ7CisgICAgcmVzdWx0cy5wdXNoKChwYXNzID8gIlBBU1MiIDogIkZBSUwiKSArICI6ICIgKyBs
YWJlbCArICIgPSAiICsgYWN0dWFsICsgKHBhc3MgPyAiIiA6ICIgKGV4cGVjdGVkICIgKyBleHBl
Y3RlZCArICIpIikpOworfQorCisvLyBTaW5nbGUgY2hhcmFjdGVyIHdpdGggZmlyc3QtbGV0dGVy
OiB0aGUgb25lIGNoYXJhY3RlciBzaG91bGQgaGF2ZSBhIHJlY3QuCit2YXIgc2luZ2xlVGV4dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaW5nbGUiKS5maXJzdENoaWxkOwordmFyIHNpbmds
ZVJlY3RzID0gZ2V0UmVjdHMoc2luZ2xlVGV4dCwgMCwgMSk7CitjaGVjaygic2luZ2xlIGNoYXIg
KDAtMSkgcmVjdCBjb3VudCIsIHNpbmdsZVJlY3RzLmxlbmd0aCwgMSk7CitjaGVjaygic2luZ2xl
IGNoYXIgKDAtMSkgaGFzIG5vbnplcm8gd2lkdGgiLCBzaW5nbGVSZWN0c1swXS53aWR0aCA+IDAs
IHRydWUpOworCisvLyBUd28gY2hhcmFjdGVyczogcmFuZ2UgMC0xIHNob3VsZCBiZSBmaXJzdCBj
aGFyLCAxLTIgc2hvdWxkIGJlIHNlY29uZCBjaGFyLgordmFyIHR3b1RleHQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidHdvIikuZmlyc3RDaGlsZDsKK3ZhciBjaGFyV2lkdGggPSAyMDsgLy8g
QWhlbSAyMHB4CisKK3ZhciByMDEgPSBnZXRSZWN0cyh0d29UZXh0LCAwLCAxKTsKK3ZhciByMTIg
PSBnZXRSZWN0cyh0d29UZXh0LCAxLCAyKTsKK3ZhciByMDIgPSBnZXRSZWN0cyh0d29UZXh0LCAw
LCAyKTsKKworY2hlY2soInR3byBjaGFycyAoMC0xKSB0b3RhbCB3aWR0aCIsIHRvdGFsV2lkdGgo
cjAxKSwgY2hhcldpZHRoKTsKK2NoZWNrKCJ0d28gY2hhcnMgKDEtMikgdG90YWwgd2lkdGgiLCB0
b3RhbFdpZHRoKHIxMiksIGNoYXJXaWR0aCk7CitjaGVjaygidHdvIGNoYXJzICgwLTIpIHRvdGFs
IHdpZHRoIiwgdG90YWxXaWR0aChyMDIpLCBjaGFyV2lkdGggKiAyKTsKK2NoZWNrKCJ0d28gY2hh
cnMgKDAtMSkgeCA8ICgxLTIpIHgiLCByMDFbMF0ueCA8IHIxMlswXS54LCB0cnVlKTsKKworLy8g
TXVsdGkgY2hhcmFjdGVyczogdmFyaW91cyBzdWItcmFuZ2VzLgordmFyIG11bHRpVGV4dCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtdWx0aSIpLmZpcnN0Q2hpbGQ7CisKK3ZhciBtMDEgPSBn
ZXRSZWN0cyhtdWx0aVRleHQsIDAsIDEpOwordmFyIG0xNSA9IGdldFJlY3RzKG11bHRpVGV4dCwg
MSwgNSk7Cit2YXIgbTA1ID0gZ2V0UmVjdHMobXVsdGlUZXh0LCAwLCA1KTsKK3ZhciBtMjMgPSBn
ZXRSZWN0cyhtdWx0aVRleHQsIDIsIDMpOworCitjaGVjaygibXVsdGkgKDAtMSkgdG90YWwgd2lk
dGgiLCB0b3RhbFdpZHRoKG0wMSksIGNoYXJXaWR0aCk7CitjaGVjaygibXVsdGkgKDEtNSkgdG90
YWwgd2lkdGgiLCB0b3RhbFdpZHRoKG0xNSksIGNoYXJXaWR0aCAqIDQpOworY2hlY2soIm11bHRp
ICgwLTUpIHRvdGFsIHdpZHRoIiwgdG90YWxXaWR0aChtMDUpLCBjaGFyV2lkdGggKiA1KTsKK2No
ZWNrKCJtdWx0aSAoMi0zKSB0b3RhbCB3aWR0aCIsIHRvdGFsV2lkdGgobTIzKSwgY2hhcldpZHRo
KTsKK2NoZWNrKCJtdWx0aSAoMC0xKSB4IDwgKDEtNSkgZmlyc3QgeCIsIG0wMVswXS54IDwgbTE1
WzBdLngsIHRydWUpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikudGV4dENv
bnRlbnQgPSByZXN1bHRzLmpvaW4oIlxuIikgKyAiXG4iOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479024</attachid>
            <date>2026-04-11 15:58:09 -0700</date>
            <delta_ts>2026-04-13 07:13:46 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-219087-20260411155808.patch</filename>
            <type>text/plain</type>
            <size>7890</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhY2U1NGM0YmIxYjQzOTc2Njk0NGM0NzQ0MzQ2NzkzNzg4MmQ0Y2Q2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTEgQXByIDIwMjYgMTM6MzQ6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBSYW5nZS5n
ZXRDbGllbnRSZWN0cygpIHJldHVybnMgd3JvbmcgcmVjdCBmb3IgZmlyc3QtbGV0dGVyCiBzdHls
ZWQgdGV4dCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDg3CiA8
cmRhcjovL3Byb2JsZW0vNzE1NDYzOTc+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldo
ZW4gYSB0ZXh0IG5vZGUgaGFzIDo6Zmlyc3QtbGV0dGVyIHN0eWxpbmcsIFdlYktpdCBzcGxpdHMg
aXQgaW50byB0d28KcmVuZGVyZXJzOiBvbmUgZm9yIHRoZSBmaXJzdCBsZXR0ZXIsIG9uZSBmb3Ig
dGhlIHJlc3QuIEJ1dApSYW5nZS5nZXRDbGllbnRSZWN0cygpIG9ubHkgYXNrcyB0aGUgInJlc3Qi
IHJlbmRlcmVyLCBwYXNzaW5nIERPTQpvZmZzZXRzIHRoYXQgZG9uJ3QgbWF0Y2ggaXRzIGxvY2Fs
IG9mZnNldHMuCgpGb3IgZXhhbXBsZSwgd2l0aCAiQUIiIHdoZXJlICJBIiBpcyB0aGUgZmlyc3Qg
bGV0dGVyOgoxLiBET00gb2Zmc2V0IDAgbWFwcyB0byBub3RoaW5nIGluIHRoZSByZW1haW5pbmcg
ZnJhZ21lbnQgKHN0YXJ0cyBhdCAxKQoyLiBnZXRDbGllbnRSZWN0cygwLCAxKSByZXR1cm5zIHRo
ZSByZWN0IGZvciAiQiIgaW5zdGVhZCBvZiAiQSIKClRoZSBmaXggc3BsaXRzIHRoZSByYW5nZSBh
dCB0aGUgZmlyc3QtbGV0dGVyIGJvdW5kYXJ5IGFuZCBxdWVyaWVzIGJvdGgKcmVuZGVyZXJzIHdp
dGggdGhlaXIgcmVzcGVjdGl2ZSBsb2NhbCBvZmZzZXRzLgoKKiBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9maXJzdC1sZXR0ZXItY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0dGVyLWNsaWVudC1yZWN0cy5odG1sOiBBZGRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OmFic29s
dXRlUmVjdHNGb3JSYW5nZUluVGV4dCk6Ci0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgICAgIHwgMzAgKysrKysrLQogLi4uL2ZpcnN0LWxldHRlci1jbGllbnQt
cmVjdHMtZXhwZWN0ZWQudHh0ICAgIHwgMTUgKysrKwogLi4uL2Zhc3QvY3NzL2ZpcnN0LWxldHRl
ci1jbGllbnQtcmVjdHMuaHRtbCAgIHwgODQgKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj
aGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1jbGllbnQtcmVjdHMtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0
dGVyLWNsaWVudC1yZWN0cy5odG1sCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBlNmRkZjk0OTlmZjcuLmRhYzM1NzMwZGZhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxk
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0yMTgwLDcgKzIxODEsMzQgQEAgc3Rh
dGljIFZlY3RvcjxGbG9hdFJlY3Q+IGFic29sdXRlUmVjdHNGb3JSYW5nZUluVGV4dChjb25zdCBT
aW1wbGVSYW5nZSYgcmFuZ2UsIFQKICAgICAgICAgb2Zmc2V0UmFuZ2Uuc3RhcnQtLTsKICAgICBp
ZiAob2Zmc2V0UmFuZ2UuZW5kIDwgbm9kZS5kYXRhKCkubGVuZ3RoKCkgJiYgb2Zmc2V0UmFuZ2Uu
ZW5kICYmIFUxNl9JU19UUkFJTChub2RlLmRhdGEoKVtvZmZzZXRSYW5nZS5lbmRdKSAmJiBVMTZf
SVNfTEVBRChub2RlLmRhdGEoKVtvZmZzZXRSYW5nZS5lbmQgLSAxXSkpCiAgICAgICAgIG9mZnNl
dFJhbmdlLmVuZCsrOwotICAgIGF1dG8gdGV4dFF1YWRzID0gcmVuZGVyZXItPmFic29sdXRlUXVh
ZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFydCwgb2Zmc2V0UmFuZ2UuZW5kLCBiZWhhdmlvcik7
CisKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiB0ZXh0UXVhZHM7CisgICAgYXV0byBoYW5kbGVGaXJz
dExldHRlclF1YWRzID0gWyZdIHsKKyAgICAgICAgQ2hlY2tlZFB0ciB0ZXh0RnJhZ21lbnRXaXRo
UmVtYWluaW5nVGV4dEFmdGVyRmlyc3RMZXR0ZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4
dEZyYWdtZW50PigqcmVuZGVyZXIpOworICAgICAgICBpZiAoIXRleHRGcmFnbWVudFdpdGhSZW1h
aW5pbmdUZXh0QWZ0ZXJGaXJzdExldHRlciB8fCAhdGV4dEZyYWdtZW50V2l0aFJlbWFpbmluZ1Rl
eHRBZnRlckZpcnN0TGV0dGVyLT5maXJzdExldHRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGF1dG8gcmVtYWluaW5nVGV4dFN0YXJ0ID0gdGV4dEZyYWdtZW50V2l0
aFJlbWFpbmluZ1RleHRBZnRlckZpcnN0TGV0dGVyLT5zdGFydCgpOworICAgICAgICBpZiAob2Zm
c2V0UmFuZ2Uuc3RhcnQgPCByZW1haW5pbmdUZXh0U3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChD
aGVja2VkUHRyIGZpcnN0TGV0dGVyUmVuZGVyZXIgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyVGV4
dD4odGV4dEZyYWdtZW50V2l0aFJlbWFpbmluZ1RleHRBZnRlckZpcnN0TGV0dGVyLT5maXJzdExl
dHRlcigpLT5maXJzdENoaWxkKCkpKSB7CisgICAgICAgICAgICAgICAgYXV0byBmaXJzdExldHRl
ckVuZCA9IHN0ZDo6bWluKG9mZnNldFJhbmdlLmVuZCwgcmVtYWluaW5nVGV4dFN0YXJ0KTsKKyAg
ICAgICAgICAgICAgICB0ZXh0UXVhZHMuYXBwZW5kVmVjdG9yKGZpcnN0TGV0dGVyUmVuZGVyZXIt
PmFic29sdXRlUXVhZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFydCwgZmlyc3RMZXR0ZXJFbmQs
IGJlaGF2aW9yKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXRSYW5nZS5zdGFy
dCA9IDA7CisgICAgICAgICAgICBvZmZzZXRSYW5nZS5lbmQgPSBvZmZzZXRSYW5nZS5lbmQgPiBy
ZW1haW5pbmdUZXh0U3RhcnQgPyBvZmZzZXRSYW5nZS5lbmQgLSByZW1haW5pbmdUZXh0U3RhcnQg
OiAwOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBBU1NF
UlQob2Zmc2V0UmFuZ2Uuc3RhcnQgPj0gcmVtYWluaW5nVGV4dFN0YXJ0KTsKKyAgICAgICAgQVNT
RVJUKG9mZnNldFJhbmdlLmVuZCA+PSByZW1haW5pbmdUZXh0U3RhcnQpOworICAgICAgICBvZmZz
ZXRSYW5nZS5zdGFydCAtPSByZW1haW5pbmdUZXh0U3RhcnQ7CisgICAgICAgIG9mZnNldFJhbmdl
LmVuZCAtPSByZW1haW5pbmdUZXh0U3RhcnQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH07
CisKKyAgICBhdXRvIGhhc0ZpcnN0TGV0dGVyID0gaGFuZGxlRmlyc3RMZXR0ZXJRdWFkcygpOwor
ICAgIGlmICghaGFzRmlyc3RMZXR0ZXIgfHwgb2Zmc2V0UmFuZ2Uuc3RhcnQgPCBvZmZzZXRSYW5n
ZS5lbmQpCisgICAgICAgIHRleHRRdWFkcy5hcHBlbmRWZWN0b3IocmVuZGVyZXItPmFic29sdXRl
UXVhZHNGb3JSYW5nZShvZmZzZXRSYW5nZS5zdGFydCwgb2Zmc2V0UmFuZ2UuZW5kLCBiZWhhdmlv
cikpOwogCiAgICAgaWYgKGJlaGF2aW9yLmNvbnRhaW5zKFJlbmRlck9iamVjdDo6Qm91bmRpbmdS
ZWN0QmVoYXZpb3I6OlJlc3BlY3RDbGlwcGluZykpIHsKICAgICAgICAgYXV0byBhYnNvbHV0ZUNs
aXBwZWRPdmVyZmxvd1JlY3QgPSByZW5kZXJlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZmlyc3QtbGV0
dGVyLWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9maXJz
dC1sZXR0ZXItY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmMxZGE3ZTg4NWU3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ZpcnN0LWxldHRlci1jbGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTUgQEAKK0EKK0FCCitBQkNERQorUEFTUzogc2luZ2xlIGNoYXIgKDAtMSkgcmVj
dCBjb3VudCA9IDEKK1BBU1M6IHNpbmdsZSBjaGFyICgwLTEpIGhhcyBub256ZXJvIHdpZHRoID0g
dHJ1ZQorUEFTUzogdHdvIGNoYXJzICgwLTEpIHRvdGFsIHdpZHRoID0gMjAKK1BBU1M6IHR3byBj
aGFycyAoMS0yKSB0b3RhbCB3aWR0aCA9IDIwCitQQVNTOiB0d28gY2hhcnMgKDAtMikgdG90YWwg
d2lkdGggPSA0MAorUEFTUzogdHdvIGNoYXJzICgwLTEpIHggPCAoMS0yKSB4ID0gdHJ1ZQorUEFT
UzogbXVsdGkgKDAtMSkgdG90YWwgd2lkdGggPSAyMAorUEFTUzogbXVsdGkgKDEtNSkgdG90YWwg
d2lkdGggPSA4MAorUEFTUzogbXVsdGkgKDAtNSkgdG90YWwgd2lkdGggPSAxMDAKK1BBU1M6IG11
bHRpICgyLTMpIHRvdGFsIHdpZHRoID0gMjAKK1BBU1M6IG11bHRpICgwLTEpIHggPCAoMS01KSBm
aXJzdCB4ID0gdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9maXJzdC1s
ZXR0ZXItY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9maXJzdC1sZXR0
ZXItY2xpZW50LXJlY3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi4yZTcyM2RhN2ZmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9maXJzdC1sZXR0ZXItY2xpZW50LXJlY3RzLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPmdldENsaWVudFJlY3RzIHNob3VsZCBy
ZXR1cm4gY29ycmVjdCByZWN0cyBmb3IgZmlyc3QtbGV0dGVyIHN0eWxlZCB0ZXh0PC90aXRsZT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9mb250cy9haGVt
LmNzcyI+Cis8c3R5bGU+CitkaXYudGVzdCB7CisgICAgZm9udDogMjBweC8xIEFoZW07CisgICAg
bWFyZ2luOiAxMHB4OworfQorZGl2LnRlc3Q6OmZpcnN0LWxldHRlciB7CisgICAgY29sb3I6IHJl
ZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
Y2xhc3M9InRlc3QiIGlkPSJzaW5nbGUiPkE8L2Rpdj4KKzxkaXYgY2xhc3M9InRlc3QiIGlkPSJ0
d28iPkFCPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0ZXN0IiBpZD0ibXVsdGkiPkFCQ0RFPC9kaXY+Cis8
cHJlIGlkPSJyZXN1bHQiPjwvcHJlPgorPHNjcmlwdD4KK3ZhciByZXN1bHRzID0gW107CisKK2Z1
bmN0aW9uIHJlY3RTdHIocikgeworICAgIHJldHVybiByID8gIng6IiArIHIueCArICIgdzoiICsg
ci53aWR0aCA6ICJudWxsIjsKK30KKworZnVuY3Rpb24gZ2V0UmVjdHModGV4dE5vZGUsIHN0YXJ0
LCBlbmQpIHsKKyAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHJh
bmdlLnNldFN0YXJ0KHRleHROb2RlLCBzdGFydCk7CisgICAgcmFuZ2Uuc2V0RW5kKHRleHROb2Rl
LCBlbmQpOworICAgIHJldHVybiBBcnJheS5mcm9tKHJhbmdlLmdldENsaWVudFJlY3RzKCkpOwor
fQorCitmdW5jdGlvbiB0b3RhbFdpZHRoKHJlY3RzKSB7CisgICAgcmV0dXJuIHJlY3RzLnJlZHVj
ZShmdW5jdGlvbihzdW0sIHIpIHsgcmV0dXJuIHN1bSArIHIud2lkdGg7IH0sIDApOworfQorCitm
dW5jdGlvbiBjaGVjayhsYWJlbCwgYWN0dWFsLCBleHBlY3RlZCkgeworICAgIHZhciBwYXNzID0g
YWN0dWFsID09PSBleHBlY3RlZDsKKyAgICByZXN1bHRzLnB1c2goKHBhc3MgPyAiUEFTUyIgOiAi
RkFJTCIpICsgIjogIiArIGxhYmVsICsgIiA9ICIgKyBhY3R1YWwgKyAocGFzcyA/ICIiIDogIiAo
ZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIikiKSk7Cit9CisKKy8vIFNpbmdsZSBjaGFyYWN0ZXIg
d2l0aCBmaXJzdC1sZXR0ZXI6IHRoZSBvbmUgY2hhcmFjdGVyIHNob3VsZCBoYXZlIGEgcmVjdC4K
K3ZhciBzaW5nbGVUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpbmdsZSIpLmZpcnN0
Q2hpbGQ7Cit2YXIgc2luZ2xlUmVjdHMgPSBnZXRSZWN0cyhzaW5nbGVUZXh0LCAwLCAxKTsKK2No
ZWNrKCJzaW5nbGUgY2hhciAoMC0xKSByZWN0IGNvdW50Iiwgc2luZ2xlUmVjdHMubGVuZ3RoLCAx
KTsKK2NoZWNrKCJzaW5nbGUgY2hhciAoMC0xKSBoYXMgbm9uemVybyB3aWR0aCIsIHNpbmdsZVJl
Y3RzWzBdLndpZHRoID4gMCwgdHJ1ZSk7CisKKy8vIFR3byBjaGFyYWN0ZXJzOiByYW5nZSAwLTEg
c2hvdWxkIGJlIGZpcnN0IGNoYXIsIDEtMiBzaG91bGQgYmUgc2Vjb25kIGNoYXIuCit2YXIgdHdv
VGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0d28iKS5maXJzdENoaWxkOwordmFyIGNo
YXJXaWR0aCA9IDIwOyAvLyBBaGVtIDIwcHgKKwordmFyIHIwMSA9IGdldFJlY3RzKHR3b1RleHQs
IDAsIDEpOwordmFyIHIxMiA9IGdldFJlY3RzKHR3b1RleHQsIDEsIDIpOwordmFyIHIwMiA9IGdl
dFJlY3RzKHR3b1RleHQsIDAsIDIpOworCitjaGVjaygidHdvIGNoYXJzICgwLTEpIHRvdGFsIHdp
ZHRoIiwgdG90YWxXaWR0aChyMDEpLCBjaGFyV2lkdGgpOworY2hlY2soInR3byBjaGFycyAoMS0y
KSB0b3RhbCB3aWR0aCIsIHRvdGFsV2lkdGgocjEyKSwgY2hhcldpZHRoKTsKK2NoZWNrKCJ0d28g
Y2hhcnMgKDAtMikgdG90YWwgd2lkdGgiLCB0b3RhbFdpZHRoKHIwMiksIGNoYXJXaWR0aCAqIDIp
OworY2hlY2soInR3byBjaGFycyAoMC0xKSB4IDwgKDEtMikgeCIsIHIwMVswXS54IDwgcjEyWzBd
LngsIHRydWUpOworCisvLyBNdWx0aSBjaGFyYWN0ZXJzOiB2YXJpb3VzIHN1Yi1yYW5nZXMuCit2
YXIgbXVsdGlUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpIikuZmlyc3RDaGls
ZDsKKwordmFyIG0wMSA9IGdldFJlY3RzKG11bHRpVGV4dCwgMCwgMSk7Cit2YXIgbTE1ID0gZ2V0
UmVjdHMobXVsdGlUZXh0LCAxLCA1KTsKK3ZhciBtMDUgPSBnZXRSZWN0cyhtdWx0aVRleHQsIDAs
IDUpOwordmFyIG0yMyA9IGdldFJlY3RzKG11bHRpVGV4dCwgMiwgMyk7CisKK2NoZWNrKCJtdWx0
aSAoMC0xKSB0b3RhbCB3aWR0aCIsIHRvdGFsV2lkdGgobTAxKSwgY2hhcldpZHRoKTsKK2NoZWNr
KCJtdWx0aSAoMS01KSB0b3RhbCB3aWR0aCIsIHRvdGFsV2lkdGgobTE1KSwgY2hhcldpZHRoICog
NCk7CitjaGVjaygibXVsdGkgKDAtNSkgdG90YWwgd2lkdGgiLCB0b3RhbFdpZHRoKG0wNSksIGNo
YXJXaWR0aCAqIDUpOworY2hlY2soIm11bHRpICgyLTMpIHRvdGFsIHdpZHRoIiwgdG90YWxXaWR0
aChtMjMpLCBjaGFyV2lkdGgpOworY2hlY2soIm11bHRpICgwLTEpIHggPCAoMS01KSBmaXJzdCB4
IiwgbTAxWzBdLnggPCBtMTVbMF0ueCwgdHJ1ZSk7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKS50ZXh0Q29udGVudCA9IHJlc3VsdHMuam9pbigiXG4iKSArICJcbiI7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>