<?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>221204</bug_id>
          
          <creation_ts>2021-02-01 07:02:20 -0800</creation_ts>
          <short_desc>[LFC][IFC] &quot;Find the trailing index&quot; logic repeated in InlineContentBreaker::processOverflowingTextContent</short_desc>
          <delta_ts>2021-02-01 12:53:43 -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>aakash_jain</cc>
    
    <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>1724222</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-02-01 07:02:20 -0800</bug_when>
    <thetext>let&apos;s just implement it once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724227</commentid>
    <comment_count>1</comment_count>
      <attachid>418868</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-02-01 07:10:25 -0800</bug_when>
    <thetext>Created attachment 418868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724264</commentid>
    <comment_count>2</comment_count>
      <attachid>418883</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-02-01 08:54:22 -0800</bug_when>
    <thetext>Created attachment 418883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724342</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-01 11:48:53 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 418883 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724372</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-01 12:51:59 -0800</bug_when>
    <thetext>Committed r272168: &lt;https://trac.webkit.org/changeset/272168&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418883.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724374</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-01 12:53:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/73841962&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418868</attachid>
            <date>2021-02-01 07:10:25 -0800</date>
            <delta_ts>2021-02-01 08:12:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221204-20210201071024.patch</filename>
            <type>text/plain</type>
            <size>14546</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY5NTM4OWJhNzg1ODgw
NmM4MjllZDhhOWI4ZWMzNzhhMTkyMGNjZS4uN2U3NTcxMzVkZTc2N2E4N2VmZjNlMjFkOWNjY2I2
YWM4NjFkZDYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSAiRmluZCB0
aGUgdHJhaWxpbmcgaW5kZXgiIGxvZ2ljIHJlcGVhdGVkIGluIElubGluZUNvbnRlbnRCcmVha2Vy
Ojpwcm9jZXNzT3ZlcmZsb3dpbmdUZXh0Q29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgSW5saW5lQ29udGVudEJyZWFrZXI6OnBy
b2Nlc3NPdmVyZmxvd2luZ1RleHRDb250ZW50IGFzIGRlc2NyaWJlZCBiZWxvdworICAgICAgICAx
LiBmaW5kIHRoZSBvdmVyZmxvd2luZyBydW4gZmlyc3QKKyAgICAgICAgMi4gdGVzdCBpZiB0aGUg
b3ZlcmZsb3dpbmcgcnVuIGlzIGJyZWFrYWJsZSBhbmQgdHJ5IGJyZWFraW5nIGl0LiBJZiBzbywg
cmV0dXJuIHRoZSB0cmFpbGluZyBjb250ZW50LgorICAgICAgICAzLiB0ZXN0IGlmIGFueSBydW4g
b24gdGhlIGxlZnQgc2lkZSBpcyBicmVha2FibGUgYW5kIHRyeSBicmVha2luZyBpdC4gSWYgc28s
IHJldHVybiB0aGUgdHJhaWxpbmcgY29udGVudC4KKyAgICAgICAgNC4gdGVzdCBpZiBhbnkgcnVu
IG9uIHRoZSByaWdodCBzaWRlIGlzIGJyZWFrYWJsZSBhbmQgdHJ5IGJyZWFraW5nIGl0LiBJZiBz
bywgcmV0dXJuIHRoZSB0cmFpbGluZyBjb250ZW50LgorICAgICAgICA1LiB0aGlzIGNvbnRlbnQg
aXMgbm90IGJyZWFrYWJsZQorCisgICAgICAgIFRoZSAicmV0dXJuIHRoZSB0cmFpbGluZyBjb250
ZW50IiBjb2RlIGNoZWNrcyBpZiB3ZSBhcmUgYXQgYW4gaW5saW5lIGJveCBib3VuZGFyeSBhbmQg
YWRqdXN0IHRoZSB0YWlsaW5nIGluZGV4IGFjY29yZGluZ2x5LgorICAgICAgICBUaGlzIHdhcyBp
bXBsZW1lbnRlZCBmb3IgYm90aCAjMiBhbmQgIzQuIFRoaXMgbG9naWMgbm93IGxpdmVzIGluIGZp
bmRUcmFpbGluZ1J1bkluZGV4LgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lQ29udGVudEJyZWFrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nVGV4dENvbnRlbnQgY29uc3QpOgor
CiAyMDIxLTAxLTMxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBpbmxpbmUgYm94IHN1cHBvcnQgKFJlbmRlcklubGlu
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcAppbmRleCA0OWJhM2FmMmFjNWQ2Y2QzNTZk
ZGQxZjEyYzIxZjZmMWI0NDA1NDYyLi43MTM4YzFjYzUyNDBhMzBlODM1YzZjYzNmZDY3NTNlNmNh
NDFmY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVDb250ZW50QnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCkBAIC0yNTgsNiArMjU4LDkg
QEAgSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6cHJv
Y2Vzc092ZXJmbG93aW5nQ29udGVudChjb24KIAogT3B0aW9uYWw8VHJhaWxpbmdUZXh0Q29udGVu
dD4gSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ1RleHRDb250ZW50KGNv
bnN0IENvbnRpbnVvdXNDb250ZW50JiBjb250aW51b3VzQ29udGVudCwgY29uc3QgTGluZVN0YXR1
cyYgbGluZVN0YXR1cykgY29uc3QKIHsKKyAgICBhdXRvJiBydW5zID0gY29udGludW91c0NvbnRl
bnQucnVucygpOworICAgIEFTU0VSVCghcnVucy5pc0VtcHR5KCkpOworCiAgICAgYXV0byBpc0Jy
ZWFrYWJsZVJ1biA9IFtdIChhdXRvJiBydW4pIHsKICAgICAgICAgQVNTRVJUKHJ1bi5pbmxpbmVJ
dGVtLmlzVGV4dCgpIHx8IHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4u
aW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKTsKICAgICAgICAgaWYgKCFydW4uaW5saW5lSXRl
bS5pc1RleHQoKSkgewpAQCAtMjY5LDkzICsyNzIsMTEzIEBAIE9wdGlvbmFsPFRyYWlsaW5nVGV4
dENvbnRlbnQ+IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9jZXNzT3ZlcmZsb3dpbmdUZXh0Q29u
dGVuCiAgICAgICAgIHJldHVybiBpc1dyYXBwaW5nQWxsb3dlZChydW4uaW5saW5lSXRlbS5zdHls
ZSgpKTsKICAgICB9OwogCisgICAgYXV0byBmaW5kVHJhaWxpbmdSdW5JbmRleCA9IFsmXSAoYXV0
byBicmVha2FibGVSdW5JbmRleCkgLT4gT3B0aW9uYWw8c2l6ZV90PiB7CisgICAgICAgIC8vIFdo
ZW4gdGhlIGJyZWFraW5nIHBvc2l0aW9uIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJ1biwg
dGhlIHRyYWlsaW5nIHJ1biBpcyB0aGUgcHJldmlvdXMgb25lLgorICAgICAgICBpZiAoIWJyZWFr
YWJsZVJ1bkluZGV4KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgLy8gVHJ5IG5v
dCBicmVhayBjb250ZW50IGF0IGlubGluZSBib3ggYm91bmRhcnkKKyAgICAgICAgLy8gZS5nLiA8
c3Bhbj5maXRzPC9zcGFuPjxzcGFuPm92ZXJmbG93czwvc3Bhbj4KKyAgICAgICAgLy8gd2hlbiB0
aGUgdGV4dCAib3ZlcmZsb3dzIiBjb21wbGV0ZWx5IG92ZXJmbG93cywgbGV0J3MgYnJlYWsgdGhl
IGNvbnRlbnQgcmlnaHQgYmVmb3JlIHRoZSAnPHNwYW4+Jy4KKyAgICAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBzdWJzZXF1ZW50IGVtcHR5IGlubGluZSBib3hlcyBlLmcuCisgICAgICAg
IGF1dG8gdHJhaWxpbmdDYW5kaWRhdGVJbmRleCA9IGJyZWFrYWJsZVJ1bkluZGV4IC0gMTsKKyAg
ICAgICAgYXV0byBpc0F0SW5saW5lQm94ID0gcnVuc1t0cmFpbGluZ0NhbmRpZGF0ZUluZGV4XS5p
bmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKTsKKyAgICAgICAgcmV0dXJuICFpc0F0SW5saW5l
Qm94ID8gdHJhaWxpbmdDYW5kaWRhdGVJbmRleCA6IHRyYWlsaW5nQ2FuZGlkYXRlSW5kZXggPyBt
YWtlT3B0aW9uYWwodHJhaWxpbmdDYW5kaWRhdGVJbmRleCAtIDEpIDogV1RGOjpudWxsb3B0Owor
ICAgIH07CisKICAgICAvLyBDaGVjayB3aGVyZSB0aGUgb3ZlcmZsb3cgb2NjdXJzIGFuZCB1c2Ug
dGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgdG8gZmlndXJlIG91dCB0aGUgYnJlYWtpbmcgYmVoYXZp
b3VyLgogICAgIC8vIDxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBub3JtYWwiPmZpcnN0PC9zcGFu
PjxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwiPnNlY29uZDwvc3Bhbj48c3BhbiBz
dHlsZT0id29yZC1icmVhazogbm9ybWFsIj50aGlyZDwvc3Bhbj4KLSAgICBhdXRvJiBydW5zID0g
Y29udGludW91c0NvbnRlbnQucnVucygpOwotICAgIGF1dG8gYWNjdW11bGF0ZWRSdW5XaWR0aCA9
IElubGluZUxheW91dFVuaXQgeyB9OyAKLSAgICBzaXplX3QgaW5kZXggPSAwOwotICAgIHdoaWxl
IChpbmRleCA8IHJ1bnMuc2l6ZSgpKSB7Ci0gICAgICAgIGF1dG8mIHJ1biA9IHJ1bnNbaW5kZXhd
OwotICAgICAgICBBU1NFUlQocnVuLmlubGluZUl0ZW0uaXNUZXh0KCkgfHwgcnVuLmlubGluZUl0
ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkp
OwotICAgICAgICBpZiAoYWNjdW11bGF0ZWRSdW5XaWR0aCArIHJ1bi5sb2dpY2FsV2lkdGggPiBs
aW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoICYmIGlzQnJlYWthYmxlUnVuKHJ1bikpIHsKLSAgICAg
ICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGF2YWlsYWJsZSB3aWR0aCBjYW4gdmVyeSB3ZWxs
IGJlIG5lZ2F0aXZlIGUuZy4gd2hlbiBzb21lIHBhcnQgb2YgdGhlIGNvbnRpbnVvdXMgdGV4dCBj
b250ZW50IGNhbiBub3QgYmUgYnJva2VuIGludG8gcGFydHMgLT4KLSAgICAgICAgICAgIC8vIDxz
cGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBrZWVwLWFsbCI+dGV4dGNvbnRlbnR3aXRobm9icmVhazwv
c3Bhbj48c3Bhbj50ZXh0Y29udGVudHdpdGh5ZXNicmVhazwvc3Bhbj4KLSAgICAgICAgICAgIC8v
IFdoZW4gdGhlIGZpcnN0IHNwYW4gY29tcHV0ZXMgbG9uZ2VyIHRoYW4gdGhlIGF2YWlsYWJsZSBz
cGFjZSwgYnkgdGhlIHRpbWUgd2UgZ2V0IHRvIHRoZSBzZWNvbmQgc3BhbiwgdGhlIGFkanVzdGVk
IGF2YWlsYWJsZSBzcGFjZSBiZWNvbWVzIG5lZ2F0aXZlLgotICAgICAgICAgICAgYXV0byBhZGp1
c3RlZEF2YWlsYWJsZVdpZHRoID0gc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgbGluZVN0
YXR1cy5hdmFpbGFibGVXaWR0aCAtIGFjY3VtdWxhdGVkUnVuV2lkdGgpOwotICAgICAgICAgICAg
aWYgKGF1dG8gcGFydGlhbFJ1biA9IHRyeUJyZWFraW5nVGV4dFJ1bihydW4sIGxpbmVTdGF0dXMu
Y29udGVudExvZ2ljYWxSaWdodCArIGFjY3VtdWxhdGVkUnVuV2lkdGgsIGFkanVzdGVkQXZhaWxh
YmxlV2lkdGgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnRpYWxSdW4tPmxlbmd0aCkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYWlsaW5nVGV4dENvbnRlbnQgeyBpbmRleCwgZmFs
c2UsIHBhcnRpYWxSdW4gfTsKLSAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBicmVha2luZyBw
b3NpdGlvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBydW4sIHRoZSB0cmFpbGluZyBydW4g
aXMgdGhlIHByZXZpb3VzIG9uZS4KLSAgICAgICAgICAgICAgICBpZiAoIWluZGV4KSB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIFNvbWV0aW1lcyB3ZSBjYW4ndCBhY2NvbW1vZGF0ZSBldmVuIHRo
ZSB2ZXJ5IGZpcnN0IGNoYXJhY3Rlci4KLSAgICAgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0
IHRoaXMgaXMgZGlmZmVyZW50IGZyb20gd2hlbiB0aGVyZSdzIG5vIGJyZWFrYWJsZSBydW4gaW4g
dGhpcyBzZXQuCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50
IHsgeyB9LCB0cnVlLCB7IH0gfTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
YXV0byB0cmFpbGluZ0NhbmRpZGF0ZUluZGV4ID0gaW5kZXggLSAxOwotICAgICAgICAgICAgICAg
IC8vIFRyeSBub3QgYnJlYWsgY29udGVudCBhdCBpbmxpbmUgYm94IGJvdW5kYXJ5Ci0gICAgICAg
ICAgICAgICAgLy8gZS5nLiA8c3Bhbj5maXRzPC9zcGFuPjxzcGFuPm92ZXJmbG93czwvc3Bhbj4K
LSAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSB0ZXh0ICJvdmVyZmxvd3MiIGNvbXBsZXRlbHkg
b3ZlcmZsb3dzLCBsZXQncyBicmVhayB0aGUgY29udGVudCByaWdodCBiZWZvcmUgdGhlICc8c3Bh
bj4nLgotICAgICAgICAgICAgICAgIGF1dG8gaXNBdElubGluZUJveCA9IHJ1bnNbdHJhaWxpbmdD
YW5kaWRhdGVJbmRleF0uaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFpc0F0SW5saW5lQm94KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJh
aWxpbmdUZXh0Q29udGVudCB7IHRyYWlsaW5nQ2FuZGlkYXRlSW5kZXgsIGZhbHNlLCB7IH0gfTsK
LSAgICAgICAgICAgICAgICAvLyBMZXQncyByZXR1cm4gdGhlIHJ1biByaWdodCBiZWZvcmUgdGhl
IGlubGluZSBib3ggc3RhcnQsIG9yIHJldHVybiBub3RoaW5nIGlmIHdlIGFyZSBhdCB0aGUgYmVn
aW5uaW5nIG9mIHRoZSBzZXQuCi0gICAgICAgICAgICAgICAgLy8gZS5nLiA8c3Bhbj50aGlzX2lz
X2JyZWFrYWJsZTwvc3Bhbj4gdnMuIHNvbWVfYnJlYWthYmxlX2NvbnRlbnQ8c3Bhbj5hbmRfbW9y
ZTwvc3Bhbj4KLSAgICAgICAgICAgICAgICBpZiAodHJhaWxpbmdDYW5kaWRhdGVJbmRleCkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYWlsaW5nVGV4dENvbnRlbnQgeyB0cmFpbGluZ0Nh
bmRpZGF0ZUluZGV4IC0gMSwgZmFsc2UsIHsgfSB9OwotICAgICAgICAgICAgICAgIC8vIFRoaXMg
Y29udGVudCBzdGFydHMgd2l0aCBhbiBpbmxpbmUgYm94IGFuZCBjbGVhcmx5IGRvZXMgbm90IGZp
dC4KLSAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxpbmdUZXh0Q29udGVudCB7IHsgfSwgdHJ1
ZSwgeyB9IH07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBJZiB0aGlzIHJ1biBpcyBu
b3QgYnJlYWthYmxlLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIGFueSBwcmV2aW91cyBvciBuZXh0IHJ1
bnMgYXJlIGJyZWFrYWJsZS4KKworICAgIC8vIEZpcnN0IGZpbmQgdGhlIG92ZXJmbG93aW5nIHJ1
bi4gCisgICAgYXV0byBhY2N1bXVsYXRlZENvbnRlbnRXaWR0aCA9IElubGluZUxheW91dFVuaXQg
eyB9OworICAgIGF1dG8gb3ZlcmZsb3dpbmdSdW5JbmRleCA9IHJ1bnMuc2l6ZSgpOyAKKyAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgcnVucy5zaXplKCk7ICsraW5kZXgpIHsKKyAg
ICAgICAgYXV0byBydW5Mb2dpY2FsV2lkdGggPSBydW5zW2luZGV4XS5sb2dpY2FsV2lkdGg7Cisg
ICAgICAgIGlmIChhY2N1bXVsYXRlZENvbnRlbnRXaWR0aCArIHJ1bkxvZ2ljYWxXaWR0aCAgPiBs
aW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKSB7CisgICAgICAgICAgICBvdmVyZmxvd2luZ1J1bklu
ZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBhY2N1
bXVsYXRlZFJ1bldpZHRoICs9IHJ1bi5sb2dpY2FsV2lkdGg7Ci0gICAgICAgICsraW5kZXg7Cisg
ICAgICAgIGFjY3VtdWxhdGVkQ29udGVudFdpZHRoICs9IHJ1bkxvZ2ljYWxXaWR0aDsKICAgICB9
Ci0gICAgLy8gV2UgZGlkIG5vdCBtYW5hZ2UgdG8gYnJlYWsgdGhlIHJ1biB0aGF0IGFjdHVhbGx5
IG92ZXJmbG93cyB0aGUgbGluZS4KLSAgICAvLyBMZXQncyB0cnkgdG8gZmluZCB0aGUgYSBwcmV2
aW91cyBicmVha2luZyBwb3NpdGlvbiBzdGFydGluZyBmcm9tIHRoZSBvdmVyZmxvd2luZyBydW4u
IEl0IHN1cmVseSBmaXRzLgotICAgIGF1dG8gcHJldmlvdXNSdW5JbmRleCA9IGluZGV4OwotICAg
IGF1dG8gcHJldmlvdXNBY2N1bXVsYXRlZENvbnRlbnRXaWR0aCA9IGFjY3VtdWxhdGVkUnVuV2lk
dGg7Ci0gICAgd2hpbGUgKHByZXZpb3VzUnVuSW5kZXgtLSkgewotICAgICAgICBhdXRvJiBydW4g
PSBydW5zW3ByZXZpb3VzUnVuSW5kZXhdOwotICAgICAgICBwcmV2aW91c0FjY3VtdWxhdGVkQ29u
dGVudFdpZHRoIC09IHJ1bi5sb2dpY2FsV2lkdGg7Ci0gICAgICAgIGlmIChpc0JyZWFrYWJsZVJ1
bihydW4pKSB7CisgICAgLy8gV2UgaGF2ZSB0byBoYXZlIGFuIG92ZXJmbG93aW5nIHJ1bi4KKyAg
ICBSRUxFQVNFX0FTU0VSVChvdmVyZmxvd2luZ1J1bkluZGV4IDwgcnVucy5zaXplKCkpOworCisg
ICAgYXV0byB0cnlCcmVha2luZ092ZXJmbG93aW5nUnVuID0gWyZdKCkgLT4gT3B0aW9uYWw8VHJh
aWxpbmdUZXh0Q29udGVudD4geworICAgICAgICBhdXRvIG92ZXJmbG93aW5nUnVuID0gcnVuc1tv
dmVyZmxvd2luZ1J1bkluZGV4XTsKKyAgICAgICAgaWYgKCFpc0JyZWFrYWJsZVJ1bihvdmVyZmxv
d2luZ1J1bikpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBpZiAoYXV0byBwYXJ0
aWFsUnVuID0gdHJ5QnJlYWtpbmdUZXh0UnVuKG92ZXJmbG93aW5nUnVuLCBsaW5lU3RhdHVzLmNv
bnRlbnRMb2dpY2FsUmlnaHQgKyBhY2N1bXVsYXRlZENvbnRlbnRXaWR0aCwgbGluZVN0YXR1cy5h
dmFpbGFibGVXaWR0aCAtIGFjY3VtdWxhdGVkQ29udGVudFdpZHRoKSkgeworICAgICAgICAgICAg
aWYgKHBhcnRpYWxSdW4tPmxlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxpbmdU
ZXh0Q29udGVudCB7IG92ZXJmbG93aW5nUnVuSW5kZXgsIGZhbHNlLCBwYXJ0aWFsUnVuIH07Cisg
ICAgICAgICAgICAvLyBXaGVuIHRoZSBicmVha2luZyBwb3NpdGlvbiBpcyBhdCB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBydW4sIHRoZSB0cmFpbGluZyBydW4gaXMgdGhlIHByZXZpb3VzIG9uZS4KKyAg
ICAgICAgICAgIGlmIChhdXRvIHRyYWlsaW5nUnVuSW5kZXggPSBmaW5kVHJhaWxpbmdSdW5JbmRl
eChvdmVyZmxvd2luZ1J1bkluZGV4KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxpbmdU
ZXh0Q29udGVudCB7ICp0cmFpbGluZ1J1bkluZGV4LCBmYWxzZSwgeyB9IH07CisgICAgICAgICAg
ICAvLyBTb21ldGltZXMgd2UgY2FuJ3QgYWNjb21tb2RhdGUgZXZlbiB0aGUgdmVyeSBmaXJzdCBj
aGFyYWN0ZXIuIAorICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IGZy
b20gd2hlbiB0aGVyZSdzIG5vIGJyZWFrYWJsZSBydW4gaW4gdGhpcyBzZXQuCisgICAgICAgICAg
ICByZXR1cm4gVHJhaWxpbmdUZXh0Q29udGVudCB7IHsgfSwgdHJ1ZSwgeyB9IH07CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9OworICAgIC8vIENoZWNrIGlmIHdlIGFjdHVh
bGx5IGJyZWFrIHRoaXMgcnVuLgorICAgIGlmIChhdXRvIHRyYWlsaW5nQ29udGVudCA9IHRyeUJy
ZWFraW5nT3ZlcmZsb3dpbmdSdW4oKSkKKyAgICAgICAgcmV0dXJuIHRyYWlsaW5nQ29udGVudDsK
KworICAgIGF1dG8gdHJ5QnJlYWtpbmdQcmV2aW91c05vbk92ZXJmbG93aW5nUnVucyA9IFsmXSgp
IC0+IE9wdGlvbmFsPFRyYWlsaW5nVGV4dENvbnRlbnQ+IHsKKyAgICAgICAgYXV0byBwcmV2aW91
c0NvbnRlbnRXaWR0aCA9IGFjY3VtdWxhdGVkQ29udGVudFdpZHRoOworICAgICAgICBmb3IgKGF1
dG8gaW5kZXggPSBvdmVyZmxvd2luZ1J1bkluZGV4OyBpbmRleC0tOykgeworICAgICAgICAgICAg
YXV0byYgcnVuID0gcnVuc1tpbmRleF07CisgICAgICAgICAgICBwcmV2aW91c0NvbnRlbnRXaWR0
aCAtPSBydW4ubG9naWNhbFdpZHRoOworICAgICAgICAgICAgaWYgKCFpc0JyZWFrYWJsZVJ1bihy
dW4pKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgQVNTRVJUKHJ1bi5p
bmxpbmVJdGVtLmlzVGV4dCgpKTsKLSAgICAgICAgICAgIGlmIChhdXRvIHBhcnRpYWxSdW4gPSB0
cnlCcmVha2luZ1RleHRSdW4ocnVuLCBsaW5lU3RhdHVzLmNvbnRlbnRMb2dpY2FsUmlnaHQgKyBw
cmV2aW91c0FjY3VtdWxhdGVkQ29udGVudFdpZHRoLCB7IH0pKSB7CisgICAgICAgICAgICBpZiAo
YXV0byBwYXJ0aWFsUnVuID0gdHJ5QnJlYWtpbmdUZXh0UnVuKHJ1biwgbGluZVN0YXR1cy5jb250
ZW50TG9naWNhbFJpZ2h0ICsgcHJldmlvdXNDb250ZW50V2lkdGgsIHsgfSkpIHsKICAgICAgICAg
ICAgICAgICAvLyBXZSBrbm93IHRoaXMgcnVuIGZpdHMsIHNvIGlmIGJyZWFraW5nIGlzIGFsbG93
ZWQgb24gdGhlIHJ1biwgaXQgc2hvdWxkIHJldHVybiBhIG5vbi1lbXB0eSBsZWZ0LXNpZGUKICAg
ICAgICAgICAgICAgICAvLyBzaW5jZSBpdCdzIGVpdGhlciBhdCBoeXBlbiBwb3NpdGlvbiBvciB0
aGUgZW50aXJlIHJ1biBpcyByZXR1cm5lZC4KICAgICAgICAgICAgICAgICBBU1NFUlQocGFydGlh
bFJ1bi0+bGVuZ3RoKTsKICAgICAgICAgICAgICAgICBhdXRvIHJ1bklzRnVsbHlBY2NvbW1vZGF0
ZWQgPSBwYXJ0aWFsUnVuLT5sZW5ndGggPT0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KHJ1bi5p
bmxpbmVJdGVtKS5sZW5ndGgoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxpbmdUZXh0
Q29udGVudCB7IHByZXZpb3VzUnVuSW5kZXgsIGZhbHNlLCBydW5Jc0Z1bGx5QWNjb21tb2RhdGVk
ID8gV1RGOjpudWxsb3B0IDogcGFydGlhbFJ1biB9OworICAgICAgICAgICAgICAgIHJldHVybiBU
cmFpbGluZ1RleHRDb250ZW50IHsgaW5kZXgsIGZhbHNlLCBydW5Jc0Z1bGx5QWNjb21tb2RhdGVk
ID8gV1RGOjpudWxsb3B0IDogcGFydGlhbFJ1biB9OwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgfQorICAgICAgICByZXR1cm4geyB9OworICAgIH07CisgICAgLy8gV2UgZGlkIG5vdCBt
YW5hZ2UgdG8gYnJlYWsgdGhlIHJ1biB0aGF0IGFjdHVhbGx5IG92ZXJmbG93cyB0aGUgbGluZS4K
KyAgICAvLyBMZXQncyB0cnkgdG8gZmluZCBhIHByZXZpb3VzIGJyZWFraW5nIHBvc2l0aW9uIHN0
YXJ0aW5nIGZyb20gdGhlIG92ZXJmbG93aW5nIHJ1bi4gSXQgc3VyZWx5IGZpdHMuCisgICAgaWYg
KGF1dG8gdHJhaWxpbmdDb250ZW50ID0gdHJ5QnJlYWtpbmdQcmV2aW91c05vbk92ZXJmbG93aW5n
UnVucygpKQorICAgICAgICByZXR1cm4gdHJhaWxpbmdDb250ZW50OworCisgICAgYXV0byB0cnlC
cmVha2luZ05leHRPdmVyZmxvd2luZ1J1bnMgPSBbJl0oKSAtPiBPcHRpb25hbDxUcmFpbGluZ1Rl
eHRDb250ZW50PiB7CisgICAgICAgIGF1dG8gbmV4dENvbnRlbnRXaWR0aCA9IGFjY3VtdWxhdGVk
Q29udGVudFdpZHRoICsgcnVuc1tvdmVyZmxvd2luZ1J1bkluZGV4XS5sb2dpY2FsV2lkdGg7Cisg
ICAgICAgIGZvciAoYXV0byBpbmRleCA9IG92ZXJmbG93aW5nUnVuSW5kZXggKyAxOyBpbmRleCA8
IHJ1bnMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgICAgICBhdXRvJiBydW4gPSBydW5zW2lu
ZGV4XTsKKyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZVJ1bihydW4pKSB7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKHJ1bi5pbmxpbmVJdGVtLmlzVGV4dCgpKTsKKyAgICAgICAgICAgICAgICAv
LyBXZSBrbm93IHRoYXQgdGhpcyBydW4gZG9lcyBub3QgZml0IHRoZSBhdmFpbGFibGUgc3BhY2Uu
IElmIHdlIGNhbiBicmVhayBpdCBhdCBhbnkgcG9zaXRpb24sIGxldCdzIGp1c3QgdXNlIHRoZSBz
dGFydCBvZiB0aGUgcnVuLgorICAgICAgICAgICAgICAgIGlmICh3b3JkQnJlYWtCZWhhdmlvcihy
dW4uaW5saW5lSXRlbS5zdHlsZSgpKSA9PSBXb3JkQnJlYWtSdWxlOjpBdEFyYml0cmFyeVBvc2l0
aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG11c3QgYmUgb24gYW4gaW5saW5lIGJv
eCBib3VuZGFyeS4gTGV0J3MgZ28gYmFjayB0byB0aGUgcnVuIGluIGZyb250IG9mIHRoZSBpbmxp
bmUgYm94IHN0YXJ0IHJ1bi4KKyAgICAgICAgICAgICAgICAgICAgLy8gZS5nLiA8c3Bhbj51bmJy
ZWFrYWJsZV9hbmRfb3ZlcmZsb3c8c3BhbiBzdHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj5i
cmVha2FibGU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBhdCAiYnJlYWth
YmxlIiwgPHNwYW4+IGlzIGF0IGluZGV4IC0gMSBhbmQgdGhlIHRyYWlsaW5nIHJ1biBpcyBhdCBp
bmRleCAtIDIuCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChydW5zW2luZGV4IC0gMV0uaW5s
aW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHRy
YWlsaW5nUnVuSW5kZXggPSBmaW5kVHJhaWxpbmdSdW5JbmRleChpbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVCh0cmFpbGluZ1J1bkluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gQXQgd29yc3Qgd2UgYXJlIGJhY2sgdG8gdGhlIG92ZXJmbG93aW5nIHJ1biwgbGlrZSBpbiB0
aGUgZXhhbXBsZSBhYm92ZS4KKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCp0cmFpbGluZ1J1
bkluZGV4ID49IG92ZXJmbG93aW5nUnVuSW5kZXgpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gVHJhaWxpbmdUZXh0Q29udGVudCB7ICp0cmFpbGluZ1J1bkluZGV4LCB0cnVlLCB7IH0gfTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gcGFydGlhbFJ1biA9
IHRyeUJyZWFraW5nVGV4dFJ1bihydW4sIGxpbmVTdGF0dXMuY29udGVudExvZ2ljYWxSaWdodCAr
IG5leHRDb250ZW50V2lkdGgsIHsgfSkpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHBh
cnRpYWxSdW4tPmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG1hbmFnZWQgdG8g
YnJlYWsgdGhpcyB0ZXh0IHJ1biBtaWQgY29udGVudC4gSXQgaGFzIHRvIGJlIGEgaHlwaGVuIGJy
ZWFrLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxpbmdUZXh0Q29udGVudCB7IGlu
ZGV4LCB0cnVlLCBwYXJ0aWFsUnVuIH07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgbmV4dENvbnRlbnRXaWR0aCArPSBydW4ubG9naWNhbFdpZHRoOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfTsKICAgICAvLyBBdCB0aGlzIHBvaW50
IHdlIGtub3cgdGhhdCB0aGVyZSdzIG5vIGJyZWFrYWJsZSBydW4gYWxsIHRoZSB3YXkgdG8gdGhl
IG92ZXJmbG93aW5nIHJ1bi4KICAgICAvLyBOb3cgd2UgbmVlZCB0byBjaGVjayBpZiBhbnkgcnVu
IGFmdGVyIHRoZSBvdmVyZmxvd2luZyBjb250ZW50IGNhbiBicmVhay4KICAgICAvLyBlLmcuIDxz
cGFuPnRoaXNfY29udGVudF9vdmVyZmxvd3NfYnV0X25vdF9icmVha2FibGU8c3Bhbj48c3BhbiBz
dHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj5idXRfdGhpc19pc19icmVha2FibGU8L3NwYW4+
Ci0gICAgYXV0byBuZXh0UnVuSW5kZXggPSBpbmRleDsKLSAgICBhdXRvIG5leHRBY2N1bXVsYXRl
ZENvbnRlbnRXaWR0aCA9IGFjY3VtdWxhdGVkUnVuV2lkdGg7Ci0gICAgd2hpbGUgKCsrbmV4dFJ1
bkluZGV4IDwgcnVucy5zaXplKCkpIHsKLSAgICAgICAgYXV0byYgcnVuID0gcnVuc1tuZXh0UnVu
SW5kZXhdOwotICAgICAgICBuZXh0QWNjdW11bGF0ZWRDb250ZW50V2lkdGggKz0gcnVuLmxvZ2lj
YWxXaWR0aDsKLSAgICAgICAgaWYgKGlzQnJlYWthYmxlUnVuKHJ1bikpIHsKLSAgICAgICAgICAg
IEFTU0VSVChydW4uaW5saW5lSXRlbS5pc1RleHQoKSk7Ci0gICAgICAgICAgICAvLyBXZSBrbm93
IHRoYXQgdGhpcyBydW4gZG9lcyBub3QgZml0IHRoZSBhdmFpbGFibGUgc3BhY2UuIElmIHdlIGNh
biBicmVhayBhdCBhbnkgcG9zaXRpb24sIGxldCdzIGp1c3QgdXNlIHRoZSBzdGFydCBvZiB0aGUg
cnVuLgotICAgICAgICAgICAgaWYgKHdvcmRCcmVha0JlaGF2aW9yKHJ1bi5pbmxpbmVJdGVtLnN0
eWxlKCkpID09IFdvcmRCcmVha1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb24pIHsKLSAgICAgICAg
ICAgICAgICAvLyBXZSBtdXN0IGJlIG9uIGFuIGlubGluZSBib3ggYm91bmRhcnkuIExldCdzIGdv
IGJhY2sgdG8gdGhlIHJ1biBpbiBmcm9udCBvZiB0aGUgaW5saW5lIGJveCBzdGFydCBydW4uCi0g
ICAgICAgICAgICAgICAgLy8gZS5nLiA8c3Bhbj51bmJyZWFrYWJsZV9hbmRfb3ZlcmZsb3c8c3Bh
biBzdHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj5icmVha2FibGU8L3NwYW4+Ci0gICAgICAg
ICAgICAgICAgLy8gV2UgYXJlIGF0ICJicmVha2FibGUiLCA8c3Bhbj4gaXMgYXQgbmV4dFJ1bklu
ZGV4IC0gMSBhbmQgdGhlIHRyYWlsaW5nIHJ1biBpcyBhdCBuZXh0UnVuSW5kZXggLSAyLgotICAg
ICAgICAgICAgICAgIEFTU0VSVChydW5zW25leHRSdW5JbmRleCAtIDFdLmlubGluZUl0ZW0uaXNJ
bmxpbmVCb3hTdGFydCgpKTsKLSAgICAgICAgICAgICAgICAvLyBBdCB3b3JzdCB3ZSBhcmUgYmFj
ayB0byB0aGUgb3ZlcmZsb3dpbmcgcnVuLCBsaWtlIGluIHRoZSBleGFtcGxlIGFib3ZlLgotICAg
ICAgICAgICAgICAgIEFTU0VSVChuZXh0UnVuSW5kZXggLSAyID49IGluZGV4KTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gVHJhaWxpbmdUZXh0Q29udGVudCB7IG5leHRSdW5JbmRleCAtIDIsIHRy
dWUsIHsgfSB9OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gcGFydGlhbFJ1
biA9IHRyeUJyZWFraW5nVGV4dFJ1bihydW4sIGxpbmVTdGF0dXMuY29udGVudExvZ2ljYWxSaWdo
dCArIG5leHRBY2N1bXVsYXRlZENvbnRlbnRXaWR0aCwgeyB9KSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChwYXJ0aWFsUnVuLT5sZW5ndGgpOwotICAgICAgICAgICAgICAgIC8vIFdlIG1hbmFn
ZWQgdG8gYnJlYWsgdGhpcyB0ZXh0IHJ1biBtaWQgY29udGVudC4gSXQgaGFzIHRvIGJlIGEgaHlw
aGVuIGJyZWFrLgotICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsg
bmV4dFJ1bkluZGV4LCB0cnVlLCBwYXJ0aWFsUnVuIH07Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9CisgICAgaWYgKGF1dG8gdHJhaWxpbmdDb250ZW50ID0gdHJ5QnJlYWtpbmdOZXh0
T3ZlcmZsb3dpbmdSdW5zKCkpCisgICAgICAgIHJldHVybiB0cmFpbGluZ0NvbnRlbnQ7CisKICAg
ICAvLyBHaXZlIHVwLCB0aGVyZSdzIG5vIGJyZWFrYWJsZSBydW4gaW4gaGVyZS4KICAgICByZXR1
cm4geyB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418883</attachid>
            <date>2021-02-01 08:54:22 -0800</date>
            <delta_ts>2021-02-01 12:52:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221204-20210201085421.patch</filename>
            <type>text/plain</type>
            <size>14575</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRlM2ViMjk3Y2M3NjEw
MWQzYjJiMDgyYjcwZjdmYmI4ZTA0ZjMzOS4uZDU2MTZkMzg4YzQ1ZWJmZmI2YTlhZTgxZmMyNjMz
ZjZhZDY1NWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSAiRmluZCB0
aGUgdHJhaWxpbmcgaW5kZXgiIGxvZ2ljIHJlcGVhdGVkIGluIElubGluZUNvbnRlbnRCcmVha2Vy
Ojpwcm9jZXNzT3ZlcmZsb3dpbmdUZXh0Q29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMjA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgSW5saW5lQ29udGVudEJyZWFrZXI6OnBy
b2Nlc3NPdmVyZmxvd2luZ1RleHRDb250ZW50IGFzIGRlc2NyaWJlZCBiZWxvdworICAgICAgICAx
LiBmaW5kIHRoZSBvdmVyZmxvd2luZyBydW4gZmlyc3QKKyAgICAgICAgMi4gdGVzdCBpZiB0aGUg
b3ZlcmZsb3dpbmcgcnVuIGlzIGJyZWFrYWJsZSBhbmQgdHJ5IGJyZWFraW5nIGl0LiBJZiBzbywg
cmV0dXJuIHRoZSB0cmFpbGluZyBjb250ZW50LgorICAgICAgICAzLiB0ZXN0IGlmIGFueSBydW4g
b24gdGhlIGxlZnQgc2lkZSBpcyBicmVha2FibGUgYW5kIHRyeSBicmVha2luZyBpdC4gSWYgc28s
IHJldHVybiB0aGUgdHJhaWxpbmcgY29udGVudC4KKyAgICAgICAgNC4gdGVzdCBpZiBhbnkgcnVu
IG9uIHRoZSByaWdodCBzaWRlIGlzIGJyZWFrYWJsZSBhbmQgdHJ5IGJyZWFraW5nIGl0LiBJZiBz
bywgcmV0dXJuIHRoZSB0cmFpbGluZyBjb250ZW50LgorICAgICAgICA1LiB0aGlzIGNvbnRlbnQg
aXMgbm90IGJyZWFrYWJsZQorCisgICAgICAgIFRoZSAicmV0dXJuIHRoZSB0cmFpbGluZyBjb250
ZW50IiBjb2RlIGNoZWNrcyBpZiB3ZSBhcmUgYXQgYW4gaW5saW5lIGJveCBib3VuZGFyeSBhbmQg
YWRqdXN0IHRoZSB0YWlsaW5nIGluZGV4IGFjY29yZGluZ2x5LgorICAgICAgICBUaGlzIHdhcyBp
bXBsZW1lbnRlZCBmb3IgYm90aCAjMiBhbmQgIzQuIFRoaXMgbG9naWMgbm93IGxpdmVzIGluIGZp
bmRUcmFpbGluZ1J1bkluZGV4LgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lQ29udGVudEJyZWFrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nVGV4dENvbnRlbnQgY29uc3QpOgor
CiAyMDIxLTAyLTAxICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0Nvb3JkR3JhcGhpY3NdIEF2b2lkIHBhaW50aW5nIGJhY2tpbmcgc3RvcmVzIGZvciB6ZXJv
LW9wYWNpdHkgbGF5ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVDb250ZW50QnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVDb250ZW50QnJlYWtlci5jcHAKaW5kZXggNDliYTNh
ZjJhYzVkNmNkMzU2ZGRkMWYxMmMyMWY2ZjFiNDQwNTQ2Mi4uZWUzZWNkNzhkNDRlMDI1NDc3YTVk
MDAxNGIzMzRlZTNjYTkwMmMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcApAQCAt
MjU4LDYgKzI1OCw5IEBAIElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVu
dEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQoY29uCiAKIE9wdGlvbmFsPFRyYWls
aW5nVGV4dENvbnRlbnQ+IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9jZXNzT3ZlcmZsb3dpbmdU
ZXh0Q29udGVudChjb25zdCBDb250aW51b3VzQ29udGVudCYgY29udGludW91c0NvbnRlbnQsIGNv
bnN0IExpbmVTdGF0dXMmIGxpbmVTdGF0dXMpIGNvbnN0CiB7CisgICAgYXV0byYgcnVucyA9IGNv
bnRpbnVvdXNDb250ZW50LnJ1bnMoKTsKKyAgICBBU1NFUlQoIXJ1bnMuaXNFbXB0eSgpKTsKKwog
ICAgIGF1dG8gaXNCcmVha2FibGVSdW4gPSBbXSAoYXV0byYgcnVuKSB7CiAgICAgICAgIEFTU0VS
VChydW4uaW5saW5lSXRlbS5pc1RleHQoKSB8fCBydW4uaW5saW5lSXRlbS5pc0lubGluZUJveFN0
YXJ0KCkgfHwgcnVuLmlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSk7CiAgICAgICAgIGlmICgh
cnVuLmlubGluZUl0ZW0uaXNUZXh0KCkpIHsKQEAgLTI2OSw5MyArMjcyLDExMyBAQCBPcHRpb25h
bDxUcmFpbGluZ1RleHRDb250ZW50PiBJbmxpbmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc092ZXJm
bG93aW5nVGV4dENvbnRlbgogICAgICAgICByZXR1cm4gaXNXcmFwcGluZ0FsbG93ZWQocnVuLmlu
bGluZUl0ZW0uc3R5bGUoKSk7CiAgICAgfTsKIAorICAgIGF1dG8gZmluZFRyYWlsaW5nUnVuSW5k
ZXggPSBbJl0gKGF1dG8gYnJlYWthYmxlUnVuSW5kZXgpIC0+IE9wdGlvbmFsPHNpemVfdD4gewor
ICAgICAgICAvLyBXaGVuIHRoZSBicmVha2luZyBwb3NpdGlvbiBpcyBhdCB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBydW4sIHRoZSB0cmFpbGluZyBydW4gaXMgdGhlIHByZXZpb3VzIG9uZS4KKyAgICAg
ICAgaWYgKCFicmVha2FibGVSdW5JbmRleCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAg
ICAgIC8vIFRyeSBub3QgYnJlYWsgY29udGVudCBhdCBpbmxpbmUgYm94IGJvdW5kYXJ5CisgICAg
ICAgIC8vIGUuZy4gPHNwYW4+Zml0czwvc3Bhbj48c3Bhbj5vdmVyZmxvd3M8L3NwYW4+CisgICAg
ICAgIC8vIHdoZW4gdGhlIHRleHQgIm92ZXJmbG93cyIgY29tcGxldGVseSBvdmVyZmxvd3MsIGxl
dCdzIGJyZWFrIHRoZSBjb250ZW50IHJpZ2h0IGJlZm9yZSB0aGUgJzxzcGFuPicuCisgICAgICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igc3Vic2VxdWVudCBlbXB0eSBpbmxpbmUgYm94ZXMg
ZS5nLgorICAgICAgICBhdXRvIHRyYWlsaW5nQ2FuZGlkYXRlSW5kZXggPSBicmVha2FibGVSdW5J
bmRleCAtIDE7CisgICAgICAgIGF1dG8gaXNBdElubGluZUJveCA9IHJ1bnNbdHJhaWxpbmdDYW5k
aWRhdGVJbmRleF0uaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCk7CisgICAgICAgIHJldHVy
biAhaXNBdElubGluZUJveCA/IHRyYWlsaW5nQ2FuZGlkYXRlSW5kZXggOiB0cmFpbGluZ0NhbmRp
ZGF0ZUluZGV4ID8gbWFrZU9wdGlvbmFsKHRyYWlsaW5nQ2FuZGlkYXRlSW5kZXggLSAxKSA6IFdU
Rjo6bnVsbG9wdDsKKyAgICB9OworCiAgICAgLy8gQ2hlY2sgd2hlcmUgdGhlIG92ZXJmbG93IG9j
Y3VycyBhbmQgdXNlIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlIHRvIGZpZ3VyZSBvdXQgdGhlIGJy
ZWFraW5nIGJlaGF2aW91ci4KICAgICAvLyA8c3BhbiBzdHlsZT0id29yZC1icmVhazogbm9ybWFs
Ij5maXJzdDwvc3Bhbj48c3BhbiBzdHlsZT0id29yZC1icmVhazogYnJlYWstYWxsIj5zZWNvbmQ8
L3NwYW4+PHNwYW4gc3R5bGU9IndvcmQtYnJlYWs6IG5vcm1hbCI+dGhpcmQ8L3NwYW4+Ci0gICAg
YXV0byYgcnVucyA9IGNvbnRpbnVvdXNDb250ZW50LnJ1bnMoKTsKLSAgICBhdXRvIGFjY3VtdWxh
dGVkUnVuV2lkdGggPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsgCi0gICAgc2l6ZV90IGluZGV4ID0g
MDsKLSAgICB3aGlsZSAoaW5kZXggPCBydW5zLnNpemUoKSkgewotICAgICAgICBhdXRvJiBydW4g
PSBydW5zW2luZGV4XTsKLSAgICAgICAgQVNTRVJUKHJ1bi5pbmxpbmVJdGVtLmlzVGV4dCgpIHx8
IHJ1bi5pbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4uaW5saW5lSXRlbS5pc0lu
bGluZUJveEVuZCgpKTsKLSAgICAgICAgaWYgKGFjY3VtdWxhdGVkUnVuV2lkdGggKyBydW4ubG9n
aWNhbFdpZHRoID4gbGluZVN0YXR1cy5hdmFpbGFibGVXaWR0aCAmJiBpc0JyZWFrYWJsZVJ1bihy
dW4pKSB7Ci0gICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBhdmFpbGFibGUgd2lkdGgg
Y2FuIHZlcnkgd2VsbCBiZSBuZWdhdGl2ZSBlLmcuIHdoZW4gc29tZSBwYXJ0IG9mIHRoZSBjb250
aW51b3VzIHRleHQgY29udGVudCBjYW4gbm90IGJlIGJyb2tlbiBpbnRvIHBhcnRzIC0+Ci0gICAg
ICAgICAgICAvLyA8c3BhbiBzdHlsZT0id29yZC1icmVhazoga2VlcC1hbGwiPnRleHRjb250ZW50
d2l0aG5vYnJlYWs8L3NwYW4+PHNwYW4+dGV4dGNvbnRlbnR3aXRoeWVzYnJlYWs8L3NwYW4+Ci0g
ICAgICAgICAgICAvLyBXaGVuIHRoZSBmaXJzdCBzcGFuIGNvbXB1dGVzIGxvbmdlciB0aGFuIHRo
ZSBhdmFpbGFibGUgc3BhY2UsIGJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUgc2Vjb25kIHNwYW4s
IHRoZSBhZGp1c3RlZCBhdmFpbGFibGUgc3BhY2UgYmVjb21lcyBuZWdhdGl2ZS4KLSAgICAgICAg
ICAgIGF1dG8gYWRqdXN0ZWRBdmFpbGFibGVXaWR0aCA9IHN0ZDo6bWF4PElubGluZUxheW91dFVu
aXQ+KDAsIGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lkdGggLSBhY2N1bXVsYXRlZFJ1bldpZHRoKTsK
LSAgICAgICAgICAgIGlmIChhdXRvIHBhcnRpYWxSdW4gPSB0cnlCcmVha2luZ1RleHRSdW4ocnVu
LCBsaW5lU3RhdHVzLmNvbnRlbnRMb2dpY2FsUmlnaHQgKyBhY2N1bXVsYXRlZFJ1bldpZHRoLCBh
ZGp1c3RlZEF2YWlsYWJsZVdpZHRoKSkgewotICAgICAgICAgICAgICAgIGlmIChwYXJ0aWFsUnVu
LT5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50
IHsgaW5kZXgsIGZhbHNlLCBwYXJ0aWFsUnVuIH07Ci0gICAgICAgICAgICAgICAgLy8gV2hlbiB0
aGUgYnJlYWtpbmcgcG9zaXRpb24gaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuLCB0aGUg
dHJhaWxpbmcgcnVuIGlzIHRoZSBwcmV2aW91cyBvbmUuCi0gICAgICAgICAgICAgICAgaWYgKCFp
bmRleCkgewotICAgICAgICAgICAgICAgICAgICAvLyBTb21ldGltZXMgd2UgY2FuJ3QgYWNjb21t
b2RhdGUgZXZlbiB0aGUgdmVyeSBmaXJzdCBjaGFyYWN0ZXIuCi0gICAgICAgICAgICAgICAgICAg
IC8vIE5vdGUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIHdoZW4gdGhlcmUncyBubyBicmVh
a2FibGUgcnVuIGluIHRoaXMgc2V0LgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhaWxp
bmdUZXh0Q29udGVudCB7IHsgfSwgdHJ1ZSwgeyB9IH07Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGF1dG8gdHJhaWxpbmdDYW5kaWRhdGVJbmRleCA9IGluZGV4IC0gMTsKLSAg
ICAgICAgICAgICAgICAvLyBUcnkgbm90IGJyZWFrIGNvbnRlbnQgYXQgaW5saW5lIGJveCBib3Vu
ZGFyeQotICAgICAgICAgICAgICAgIC8vIGUuZy4gPHNwYW4+Zml0czwvc3Bhbj48c3Bhbj5vdmVy
Zmxvd3M8L3NwYW4+Ci0gICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgdGV4dCAib3ZlcmZsb3dz
IiBjb21wbGV0ZWx5IG92ZXJmbG93cywgbGV0J3MgYnJlYWsgdGhlIGNvbnRlbnQgcmlnaHQgYmVm
b3JlIHRoZSAnPHNwYW4+Jy4KLSAgICAgICAgICAgICAgICBhdXRvIGlzQXRJbmxpbmVCb3ggPSBy
dW5zW3RyYWlsaW5nQ2FuZGlkYXRlSW5kZXhdLmlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgp
OwotICAgICAgICAgICAgICAgIGlmICghaXNBdElubGluZUJveCkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRyYWlsaW5nVGV4dENvbnRlbnQgeyB0cmFpbGluZ0NhbmRpZGF0ZUluZGV4LCBm
YWxzZSwgeyB9IH07Ci0gICAgICAgICAgICAgICAgLy8gTGV0J3MgcmV0dXJuIHRoZSBydW4gcmln
aHQgYmVmb3JlIHRoZSBpbmxpbmUgYm94IHN0YXJ0LCBvciByZXR1cm4gbm90aGluZyBpZiB3ZSBh
cmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2V0LgotICAgICAgICAgICAgICAgIC8vIGUuZy4g
PHNwYW4+dGhpc19pc19icmVha2FibGU8L3NwYW4+IHZzLiBzb21lX2JyZWFrYWJsZV9jb250ZW50
PHNwYW4+YW5kX21vcmU8L3NwYW4+Ci0gICAgICAgICAgICAgICAgaWYgKHRyYWlsaW5nQ2FuZGlk
YXRlSW5kZXgpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50
IHsgdHJhaWxpbmdDYW5kaWRhdGVJbmRleCAtIDEsIGZhbHNlLCB7IH0gfTsKLSAgICAgICAgICAg
ICAgICAvLyBUaGlzIGNvbnRlbnQgc3RhcnRzIHdpdGggYW4gaW5saW5lIGJveCBhbmQgY2xlYXJs
eSBkb2VzIG5vdCBmaXQuCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRyYWlsaW5nVGV4dENvbnRl
bnQgeyB7IH0sIHRydWUsIHsgfSB9OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gSWYg
dGhpcyBydW4gaXMgbm90IGJyZWFrYWJsZSwgd2UgbmVlZCB0byBjaGVjayBpZiBhbnkgcHJldmlv
dXMgb3IgbmV4dCBydW5zIGFyZSBicmVha2FibGUuCisKKyAgICAvLyBGaXJzdCBmaW5kIHRoZSBv
dmVyZmxvd2luZyBydW4uIAorICAgIGF1dG8gYWNjdW11bGF0ZWRDb250ZW50V2lkdGggPSBJbmxp
bmVMYXlvdXRVbml0IHsgfTsKKyAgICBhdXRvIG92ZXJmbG93aW5nUnVuSW5kZXggPSBydW5zLnNp
emUoKTsgCisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IHJ1bnMuc2l6ZSgpOyAr
K2luZGV4KSB7CisgICAgICAgIGF1dG8gcnVuTG9naWNhbFdpZHRoID0gcnVuc1tpbmRleF0ubG9n
aWNhbFdpZHRoOworICAgICAgICBpZiAoYWNjdW11bGF0ZWRDb250ZW50V2lkdGggKyBydW5Mb2dp
Y2FsV2lkdGggID4gbGluZVN0YXR1cy5hdmFpbGFibGVXaWR0aCkgeworICAgICAgICAgICAgb3Zl
cmZsb3dpbmdSdW5JbmRleCA9IGluZGV4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgYWNjdW11bGF0ZWRSdW5XaWR0aCArPSBydW4ubG9naWNhbFdpZHRoOwotICAgICAg
ICArK2luZGV4OworICAgICAgICBhY2N1bXVsYXRlZENvbnRlbnRXaWR0aCArPSBydW5Mb2dpY2Fs
V2lkdGg7CiAgICAgfQotICAgIC8vIFdlIGRpZCBub3QgbWFuYWdlIHRvIGJyZWFrIHRoZSBydW4g
dGhhdCBhY3R1YWxseSBvdmVyZmxvd3MgdGhlIGxpbmUuCi0gICAgLy8gTGV0J3MgdHJ5IHRvIGZp
bmQgdGhlIGEgcHJldmlvdXMgYnJlYWtpbmcgcG9zaXRpb24gc3RhcnRpbmcgZnJvbSB0aGUgb3Zl
cmZsb3dpbmcgcnVuLiBJdCBzdXJlbHkgZml0cy4KLSAgICBhdXRvIHByZXZpb3VzUnVuSW5kZXgg
PSBpbmRleDsKLSAgICBhdXRvIHByZXZpb3VzQWNjdW11bGF0ZWRDb250ZW50V2lkdGggPSBhY2N1
bXVsYXRlZFJ1bldpZHRoOwotICAgIHdoaWxlIChwcmV2aW91c1J1bkluZGV4LS0pIHsKLSAgICAg
ICAgYXV0byYgcnVuID0gcnVuc1twcmV2aW91c1J1bkluZGV4XTsKLSAgICAgICAgcHJldmlvdXNB
Y2N1bXVsYXRlZENvbnRlbnRXaWR0aCAtPSBydW4ubG9naWNhbFdpZHRoOwotICAgICAgICBpZiAo
aXNCcmVha2FibGVSdW4ocnVuKSkgeworICAgIC8vIFdlIGhhdmUgdG8gaGF2ZSBhbiBvdmVyZmxv
d2luZyBydW4uCisgICAgUkVMRUFTRV9BU1NFUlQob3ZlcmZsb3dpbmdSdW5JbmRleCA8IHJ1bnMu
c2l6ZSgpKTsKKworICAgIGF1dG8gdHJ5QnJlYWtpbmdPdmVyZmxvd2luZ1J1biA9IFsmXSgpIC0+
IE9wdGlvbmFsPFRyYWlsaW5nVGV4dENvbnRlbnQ+IHsKKyAgICAgICAgYXV0byBvdmVyZmxvd2lu
Z1J1biA9IHJ1bnNbb3ZlcmZsb3dpbmdSdW5JbmRleF07CisgICAgICAgIGlmICghaXNCcmVha2Fi
bGVSdW4ob3ZlcmZsb3dpbmdSdW4pKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAg
aWYgKGF1dG8gcGFydGlhbFJ1biA9IHRyeUJyZWFraW5nVGV4dFJ1bihvdmVyZmxvd2luZ1J1biwg
bGluZVN0YXR1cy5jb250ZW50TG9naWNhbFJpZ2h0ICsgYWNjdW11bGF0ZWRDb250ZW50V2lkdGgs
IHN0ZDo6bWF4KDAuMGYsIGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lkdGggLSBhY2N1bXVsYXRlZENv
bnRlbnRXaWR0aCkpKSB7CisgICAgICAgICAgICBpZiAocGFydGlhbFJ1bi0+bGVuZ3RoKQorICAg
ICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsgb3ZlcmZsb3dpbmdSdW5J
bmRleCwgZmFsc2UsIHBhcnRpYWxSdW4gfTsKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGJyZWFr
aW5nIHBvc2l0aW9uIGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJ1biwgdGhlIHRyYWlsaW5n
IHJ1biBpcyB0aGUgcHJldmlvdXMgb25lLgorICAgICAgICAgICAgaWYgKGF1dG8gdHJhaWxpbmdS
dW5JbmRleCA9IGZpbmRUcmFpbGluZ1J1bkluZGV4KG92ZXJmbG93aW5nUnVuSW5kZXgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsgKnRyYWlsaW5nUnVuSW5k
ZXgsIGZhbHNlLCB7IH0gfTsKKyAgICAgICAgICAgIC8vIFNvbWV0aW1lcyB3ZSBjYW4ndCBhY2Nv
bW1vZGF0ZSBldmVuIHRoZSB2ZXJ5IGZpcnN0IGNoYXJhY3Rlci4gCisgICAgICAgICAgICAvLyBO
b3RlIHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB3aGVuIHRoZXJlJ3Mgbm8gYnJlYWthYmxl
IHJ1biBpbiB0aGlzIHNldC4KKyAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50
IHsgeyB9LCB0cnVlLCB7IH0gfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geyB9OworICAg
IH07CisgICAgLy8gQ2hlY2sgaWYgd2UgYWN0dWFsbHkgYnJlYWsgdGhpcyBydW4uCisgICAgaWYg
KGF1dG8gdHJhaWxpbmdDb250ZW50ID0gdHJ5QnJlYWtpbmdPdmVyZmxvd2luZ1J1bigpKQorICAg
ICAgICByZXR1cm4gdHJhaWxpbmdDb250ZW50OworCisgICAgYXV0byB0cnlCcmVha2luZ1ByZXZp
b3VzTm9uT3ZlcmZsb3dpbmdSdW5zID0gWyZdKCkgLT4gT3B0aW9uYWw8VHJhaWxpbmdUZXh0Q29u
dGVudD4geworICAgICAgICBhdXRvIHByZXZpb3VzQ29udGVudFdpZHRoID0gYWNjdW11bGF0ZWRD
b250ZW50V2lkdGg7CisgICAgICAgIGZvciAoYXV0byBpbmRleCA9IG92ZXJmbG93aW5nUnVuSW5k
ZXg7IGluZGV4LS07KSB7CisgICAgICAgICAgICBhdXRvJiBydW4gPSBydW5zW2luZGV4XTsKKyAg
ICAgICAgICAgIHByZXZpb3VzQ29udGVudFdpZHRoIC09IHJ1bi5sb2dpY2FsV2lkdGg7CisgICAg
ICAgICAgICBpZiAoIWlzQnJlYWthYmxlUnVuKHJ1bikpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBBU1NFUlQocnVuLmlubGluZUl0ZW0uaXNUZXh0KCkpOwotICAgICAg
ICAgICAgaWYgKGF1dG8gcGFydGlhbFJ1biA9IHRyeUJyZWFraW5nVGV4dFJ1bihydW4sIGxpbmVT
dGF0dXMuY29udGVudExvZ2ljYWxSaWdodCArIHByZXZpb3VzQWNjdW11bGF0ZWRDb250ZW50V2lk
dGgsIHsgfSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhcnRpYWxSdW4gPSB0cnlCcmVha2lu
Z1RleHRSdW4ocnVuLCBsaW5lU3RhdHVzLmNvbnRlbnRMb2dpY2FsUmlnaHQgKyBwcmV2aW91c0Nv
bnRlbnRXaWR0aCwgeyB9KSkgewogICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhpcyBydW4g
Zml0cywgc28gaWYgYnJlYWtpbmcgaXMgYWxsb3dlZCBvbiB0aGUgcnVuLCBpdCBzaG91bGQgcmV0
dXJuIGEgbm9uLWVtcHR5IGxlZnQtc2lkZQogICAgICAgICAgICAgICAgIC8vIHNpbmNlIGl0J3Mg
ZWl0aGVyIGF0IGh5cGVuIHBvc2l0aW9uIG9yIHRoZSBlbnRpcmUgcnVuIGlzIHJldHVybmVkLgog
ICAgICAgICAgICAgICAgIEFTU0VSVChwYXJ0aWFsUnVuLT5sZW5ndGgpOwogICAgICAgICAgICAg
ICAgIGF1dG8gcnVuSXNGdWxseUFjY29tbW9kYXRlZCA9IHBhcnRpYWxSdW4tPmxlbmd0aCA9PSBk
b3duY2FzdDxJbmxpbmVUZXh0SXRlbT4ocnVuLmlubGluZUl0ZW0pLmxlbmd0aCgpOwotICAgICAg
ICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsgcHJldmlvdXNSdW5JbmRleCwg
ZmFsc2UsIHJ1bklzRnVsbHlBY2NvbW1vZGF0ZWQgPyBXVEY6Om51bGxvcHQgOiBwYXJ0aWFsUnVu
IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIFRyYWlsaW5nVGV4dENvbnRlbnQgeyBpbmRleCwg
ZmFsc2UsIHJ1bklzRnVsbHlBY2NvbW1vZGF0ZWQgPyBXVEY6Om51bGxvcHQgOiBwYXJ0aWFsUnVu
IH07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9CisgICAgICAgIHJldHVybiB7IH07
CisgICAgfTsKKyAgICAvLyBXZSBkaWQgbm90IG1hbmFnZSB0byBicmVhayB0aGUgcnVuIHRoYXQg
YWN0dWFsbHkgb3ZlcmZsb3dzIHRoZSBsaW5lLgorICAgIC8vIExldCdzIHRyeSB0byBmaW5kIGEg
cHJldmlvdXMgYnJlYWtpbmcgcG9zaXRpb24gc3RhcnRpbmcgZnJvbSB0aGUgb3ZlcmZsb3dpbmcg
cnVuLiBJdCBzdXJlbHkgZml0cy4KKyAgICBpZiAoYXV0byB0cmFpbGluZ0NvbnRlbnQgPSB0cnlC
cmVha2luZ1ByZXZpb3VzTm9uT3ZlcmZsb3dpbmdSdW5zKCkpCisgICAgICAgIHJldHVybiB0cmFp
bGluZ0NvbnRlbnQ7CisKKyAgICBhdXRvIHRyeUJyZWFraW5nTmV4dE92ZXJmbG93aW5nUnVucyA9
IFsmXSgpIC0+IE9wdGlvbmFsPFRyYWlsaW5nVGV4dENvbnRlbnQ+IHsKKyAgICAgICAgYXV0byBu
ZXh0Q29udGVudFdpZHRoID0gYWNjdW11bGF0ZWRDb250ZW50V2lkdGggKyBydW5zW292ZXJmbG93
aW5nUnVuSW5kZXhdLmxvZ2ljYWxXaWR0aDsKKyAgICAgICAgZm9yIChhdXRvIGluZGV4ID0gb3Zl
cmZsb3dpbmdSdW5JbmRleCArIDE7IGluZGV4IDwgcnVucy5zaXplKCk7ICsraW5kZXgpIHsKKyAg
ICAgICAgICAgIGF1dG8mIHJ1biA9IHJ1bnNbaW5kZXhdOworICAgICAgICAgICAgaWYgKGlzQnJl
YWthYmxlUnVuKHJ1bikpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQocnVuLmlubGluZUl0ZW0u
aXNUZXh0KCkpOworICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIHJ1biBkb2Vz
IG5vdCBmaXQgdGhlIGF2YWlsYWJsZSBzcGFjZS4gSWYgd2UgY2FuIGJyZWFrIGl0IGF0IGFueSBw
b3NpdGlvbiwgbGV0J3MganVzdCB1c2UgdGhlIHN0YXJ0IG9mIHRoZSBydW4uCisgICAgICAgICAg
ICAgICAgaWYgKHdvcmRCcmVha0JlaGF2aW9yKHJ1bi5pbmxpbmVJdGVtLnN0eWxlKCkpID09IFdv
cmRCcmVha1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gV2UgbXVzdCBiZSBvbiBhbiBpbmxpbmUgYm94IGJvdW5kYXJ5LiBMZXQncyBnbyBiYWNrIHRv
IHRoZSBydW4gaW4gZnJvbnQgb2YgdGhlIGlubGluZSBib3ggc3RhcnQgcnVuLgorICAgICAgICAg
ICAgICAgICAgICAvLyBlLmcuIDxzcGFuPnVuYnJlYWthYmxlX2FuZF9vdmVyZmxvdzxzcGFuIHN0
eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwiPmJyZWFrYWJsZTwvc3Bhbj4KKyAgICAgICAgICAg
ICAgICAgICAgLy8gV2UgYXJlIGF0ICJicmVha2FibGUiLCA8c3Bhbj4gaXMgYXQgaW5kZXggLSAx
IGFuZCB0aGUgdHJhaWxpbmcgcnVuIGlzIGF0IGluZGV4IC0gMi4KKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHJ1bnNbaW5kZXggLSAxXS5pbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gdHJhaWxpbmdSdW5JbmRleCA9IGZpbmRUcmFpbGlu
Z1J1bkluZGV4KGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHRyYWlsaW5nUnVu
SW5kZXgpOworICAgICAgICAgICAgICAgICAgICAvLyBBdCB3b3JzdCB3ZSBhcmUgYmFjayB0byB0
aGUgb3ZlcmZsb3dpbmcgcnVuLCBsaWtlIGluIHRoZSBleGFtcGxlIGFib3ZlLgorICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQoKnRyYWlsaW5nUnVuSW5kZXggPj0gb3ZlcmZsb3dpbmdSdW5JbmRl
eCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsgKnRy
YWlsaW5nUnVuSW5kZXgsIHRydWUsIHsgfSB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byBwYXJ0aWFsUnVuID0gdHJ5QnJlYWtpbmdUZXh0UnVuKHJ1biwgbGlu
ZVN0YXR1cy5jb250ZW50TG9naWNhbFJpZ2h0ICsgbmV4dENvbnRlbnRXaWR0aCwgeyB9KSkgewor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQocGFydGlhbFJ1bi0+bGVuZ3RoKTsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gV2UgbWFuYWdlZCB0byBicmVhayB0aGlzIHRleHQgcnVuIG1pZCBjb250
ZW50LiBJdCBoYXMgdG8gYmUgYSBoeXBoZW4gYnJlYWsuCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBUcmFpbGluZ1RleHRDb250ZW50IHsgaW5kZXgsIHRydWUsIHBhcnRpYWxSdW4gfTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuZXh0Q29udGVudFdp
ZHRoICs9IHJ1bi5sb2dpY2FsV2lkdGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9OwogICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IHRoZXJlJ3Mgbm8gYnJl
YWthYmxlIHJ1biBhbGwgdGhlIHdheSB0byB0aGUgb3ZlcmZsb3dpbmcgcnVuLgogICAgIC8vIE5v
dyB3ZSBuZWVkIHRvIGNoZWNrIGlmIGFueSBydW4gYWZ0ZXIgdGhlIG92ZXJmbG93aW5nIGNvbnRl
bnQgY2FuIGJyZWFrLgogICAgIC8vIGUuZy4gPHNwYW4+dGhpc19jb250ZW50X292ZXJmbG93c19i
dXRfbm90X2JyZWFrYWJsZTxzcGFuPjxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwi
PmJ1dF90aGlzX2lzX2JyZWFrYWJsZTwvc3Bhbj4KLSAgICBhdXRvIG5leHRSdW5JbmRleCA9IGlu
ZGV4OwotICAgIGF1dG8gbmV4dEFjY3VtdWxhdGVkQ29udGVudFdpZHRoID0gYWNjdW11bGF0ZWRS
dW5XaWR0aDsKLSAgICB3aGlsZSAoKytuZXh0UnVuSW5kZXggPCBydW5zLnNpemUoKSkgewotICAg
ICAgICBhdXRvJiBydW4gPSBydW5zW25leHRSdW5JbmRleF07Ci0gICAgICAgIG5leHRBY2N1bXVs
YXRlZENvbnRlbnRXaWR0aCArPSBydW4ubG9naWNhbFdpZHRoOwotICAgICAgICBpZiAoaXNCcmVh
a2FibGVSdW4ocnVuKSkgewotICAgICAgICAgICAgQVNTRVJUKHJ1bi5pbmxpbmVJdGVtLmlzVGV4
dCgpKTsKLSAgICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIHJ1biBkb2VzIG5vdCBmaXQg
dGhlIGF2YWlsYWJsZSBzcGFjZS4gSWYgd2UgY2FuIGJyZWFrIGF0IGFueSBwb3NpdGlvbiwgbGV0
J3MganVzdCB1c2UgdGhlIHN0YXJ0IG9mIHRoZSBydW4uCi0gICAgICAgICAgICBpZiAod29yZEJy
ZWFrQmVoYXZpb3IocnVuLmlubGluZUl0ZW0uc3R5bGUoKSkgPT0gV29yZEJyZWFrUnVsZTo6QXRB
cmJpdHJhcnlQb3NpdGlvbikgewotICAgICAgICAgICAgICAgIC8vIFdlIG11c3QgYmUgb24gYW4g
aW5saW5lIGJveCBib3VuZGFyeS4gTGV0J3MgZ28gYmFjayB0byB0aGUgcnVuIGluIGZyb250IG9m
IHRoZSBpbmxpbmUgYm94IHN0YXJ0IHJ1bi4KLSAgICAgICAgICAgICAgICAvLyBlLmcuIDxzcGFu
PnVuYnJlYWthYmxlX2FuZF9vdmVyZmxvdzxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1h
bGwiPmJyZWFrYWJsZTwvc3Bhbj4KLSAgICAgICAgICAgICAgICAvLyBXZSBhcmUgYXQgImJyZWFr
YWJsZSIsIDxzcGFuPiBpcyBhdCBuZXh0UnVuSW5kZXggLSAxIGFuZCB0aGUgdHJhaWxpbmcgcnVu
IGlzIGF0IG5leHRSdW5JbmRleCAtIDIuCi0gICAgICAgICAgICAgICAgQVNTRVJUKHJ1bnNbbmV4
dFJ1bkluZGV4IC0gMV0uaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkpOwotICAgICAgICAg
ICAgICAgIC8vIEF0IHdvcnN0IHdlIGFyZSBiYWNrIHRvIHRoZSBvdmVyZmxvd2luZyBydW4sIGxp
a2UgaW4gdGhlIGV4YW1wbGUgYWJvdmUuCi0gICAgICAgICAgICAgICAgQVNTRVJUKG5leHRSdW5J
bmRleCAtIDIgPj0gaW5kZXgpOwotICAgICAgICAgICAgICAgIHJldHVybiBUcmFpbGluZ1RleHRD
b250ZW50IHsgbmV4dFJ1bkluZGV4IC0gMiwgdHJ1ZSwgeyB9IH07Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAoYXV0byBwYXJ0aWFsUnVuID0gdHJ5QnJlYWtpbmdUZXh0UnVuKHJ1biwg
bGluZVN0YXR1cy5jb250ZW50TG9naWNhbFJpZ2h0ICsgbmV4dEFjY3VtdWxhdGVkQ29udGVudFdp
ZHRoLCB7IH0pKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHBhcnRpYWxSdW4tPmxlbmd0aCk7
Ci0gICAgICAgICAgICAgICAgLy8gV2UgbWFuYWdlZCB0byBicmVhayB0aGlzIHRleHQgcnVuIG1p
ZCBjb250ZW50LiBJdCBoYXMgdG8gYmUgYSBoeXBoZW4gYnJlYWsuCi0gICAgICAgICAgICAgICAg
cmV0dXJuIFRyYWlsaW5nVGV4dENvbnRlbnQgeyBuZXh0UnVuSW5kZXgsIHRydWUsIHBhcnRpYWxS
dW4gfTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoYXV0byB0cmFp
bGluZ0NvbnRlbnQgPSB0cnlCcmVha2luZ05leHRPdmVyZmxvd2luZ1J1bnMoKSkKKyAgICAgICAg
cmV0dXJuIHRyYWlsaW5nQ29udGVudDsKKwogICAgIC8vIEdpdmUgdXAsIHRoZXJlJ3Mgbm8gYnJl
YWthYmxlIHJ1biBpbiBoZXJlLgogICAgIHJldHVybiB7IH07CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>