<?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>205244</bug_id>
          
          <creation_ts>2019-12-14 21:15:50 -0800</creation_ts>
          <short_desc>[LFC][IFC] Introduce LineBreaker::PartialRun</short_desc>
          <delta_ts>2019-12-15 05:36:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1598694</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-14 21:15:50 -0800</bug_when>
    <thetext>Use it instead of LineBreaker::LeftSide</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598695</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-14 21:16:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/57943825&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598696</commentid>
    <comment_count>2</comment_count>
      <attachid>385707</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-14 21:19:32 -0800</bug_when>
    <thetext>Created attachment 385707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598703</commentid>
    <comment_count>3</comment_count>
      <attachid>385707</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-14 23:48:51 -0800</bug_when>
    <thetext>Comment on attachment 385707
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp:154
&gt;              if (auto leftSide = tryBreakingTextRun(run, adjustedAvailableWidth, lineStatus.lineIsEmpty))

Would &apos;leftSide&apos; better be named as &apos;partialRun&apos;?

&gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp:168
&gt;              if (auto leftSide = tryBreakingTextRun(run, maxInlineLayoutUnit(), lineStatus.lineIsEmpty)) {

Here too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598722</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-15 05:36:40 -0800</bug_when>
    <thetext>Committed r253532: &lt;https://trac.webkit.org/changeset/253532&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385707</attachid>
            <date>2019-12-14 21:19:32 -0800</date>
            <delta_ts>2019-12-14 23:48:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205244-20191214211931.patch</filename>
            <type>text/plain</type>
            <size>12932</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRmMmYxOGMxMTcxOWUw
MTAyYWM4YTVlOGRmMDJjOGNkZTY3NzEzZC4uOTkxNGZiOTMzMzljYTc3ZDc5OTRlZTRlMmVmMzVj
Y2Y4OGY1ODJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTEyLTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBJbnRyb2R1
Y2UgTGluZUJyZWFrZXI6OlBhcnRpYWxSdW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTI0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc5NDM4
MjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IFBhcnRpYWxSdW4gaW5zdGVhZCBvZiBMZWZ0U2lkZSBhbmQgYWxzbyB1c2UgaXQgYXMgb3B0aW9u
YWwgaW4gUGFydGlhbFRyYWlsaW5nQ29udGVudC4KKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJh
dGlvbiBmb3IgZml4aW5nICJicmVhay1zcGFjZXMiIGZhaWxpbmcgY2FzZXMuCisKKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVD
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OndvcmRCcmVh
a2luZ0JlaGF2aW9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFr
ZXI6OnRyeUJyZWFraW5nVGV4dFJ1biBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxpbmVMYXlvdXRDb250ZXh0Ojpwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50KToKKwogMjAxOS0x
Mi0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lG
Q10gRml4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3doaXRl
LXNwYWNlL2JyZWFrLXNwYWNlcy0wMDMuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCmluZGV4
IDlhNjUyNGQ2ZjViMGFkNjVhOGM2ZWI2MjQ3ZTAxNDU3MDBmNmRiZjguLmFmM2ZlNzhjMTQ2ODg0
Yjk5NTgzOTVkZDNhNWU5OTIwMzg4MzY2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKQEAg
LTEwNyw4ICsxMDcsOCBAQCBMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2Vy
OjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0CiAgICAgaWYgKGNhbmRpZGF0
ZVJ1bnMuaGFzVGV4dENvbnRlbnRPbmx5KCkpIHsKICAgICAgICAgYXV0byYgcnVucyA9IGNhbmRp
ZGF0ZVJ1bnMucnVucygpOwogICAgICAgICBpZiAoYXV0byBwYXJ0aWFsVHJhaWxpbmdDb250ZW50
ID0gd29yZEJyZWFraW5nQmVoYXZpb3IocnVucywgbGluZVN0YXR1cykpIHsKLSAgICAgICAgICAg
IC8vIFdlIHRyaWVkIHRvIHNwbGl0IHRoZSBjb250ZW50IGJ1dCB0aGUgYXZhaWxhYmxlIHNwYWNl
IGNhbid0IGV2ZW4gYWNjb21tb2RhdGUgdGhlIGZpcnN0IGNoYXJhY3Rlci4KLSAgICAgICAgICAg
IGlmICghcGFydGlhbFRyYWlsaW5nQ29udGVudC0+bGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAo
IXBhcnRpYWxUcmFpbGluZ0NvbnRlbnQtPnBhcnRpYWxSdW4pIHsKKyAgICAgICAgICAgICAgICAv
LyBXZSB0cmllZCB0byBzcGxpdCB0aGUgY29udGVudCBidXQgdGhlIGF2YWlsYWJsZSBzcGFjZSBj
YW4ndCBldmVuIGFjY29tbW9kYXRlIHRoZSBmaXJzdCBjaGFyYWN0ZXIuCiAgICAgICAgICAgICAg
ICAgLy8gMS4gUHVzaCB0aGUgY29udGVudCBvdmVyIHRvIHRoZSBuZXh0IGxpbmUgd2hlbiB3ZSd2
ZSBnb3QgY29udGVudCBvbiB0aGUgbGluZSBhbHJlYWR5LgogICAgICAgICAgICAgICAgIC8vIDIu
IEtlZXAgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiB0aGUgZW1wdHkgbGluZSAob3Iga2VlcCB0aGUg
d2hvbGUgcnVuIGlmIGl0IGhhcyBvbmx5IG9uZSBjaGFyYWN0ZXIpLgogICAgICAgICAgICAgICAg
IGlmICghbGluZVN0YXR1cy5saW5lSXNFbXB0eSkKQEAgLTExOSw3ICsxMTksOCBAQCBMaW5lQnJl
YWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxp
bmVDb250ZW50KGNvbnN0CiAgICAgICAgICAgICAgICAgaWYgKGlubGluZVRleHRJdGVtLmxlbmd0
aCgpID09IDEpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IEJyZWFraW5nQ29udGV4dDo6
Q29udGVudFdyYXBwaW5nUnVsZTo6S2VlcCwgeyB9IH07CiAgICAgICAgICAgICAgICAgYXV0byBm
aXJzdENoYXJhY3RlcldpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBpbmxp
bmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpICsgMSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHsgQnJlYWtpbmdDb250ZXh0OjpDb250ZW50V3JhcHBpbmdSdWxlOjpT
cGxpdCwgQnJlYWtpbmdDb250ZXh0OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgZmlyc3RUZXh0
UnVuSW5kZXgsIDEsIGZpcnN0Q2hhcmFjdGVyV2lkdGgsIGZhbHNlIH0gfTsKKyAgICAgICAgICAg
ICAgICBhdXRvIHNwbGl0Q29udGVudCA9IEJyZWFraW5nQ29udGV4dDo6UGFydGlhbFRyYWlsaW5n
Q29udGVudCB7IGZpcnN0VGV4dFJ1bkluZGV4LCBQYXJ0aWFsUnVuIHsgMSwgZmlyc3RDaGFyYWN0
ZXJXaWR0aCwgZmFsc2UgfSB9OworICAgICAgICAgICAgICAgIHJldHVybiB7IEJyZWFraW5nQ29u
dGV4dDo6Q29udGVudFdyYXBwaW5nUnVsZTo6U3BsaXQsIHNwbGl0Q29udGVudCB9OwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHsgQnJlYWtpbmdDb250ZXh0OjpDb250ZW50V3Jh
cHBpbmdSdWxlOjpTcGxpdCwgcGFydGlhbFRyYWlsaW5nQ29udGVudCB9OwogICAgICAgICB9CkBA
IC0xNTEsNyArMTUyLDcgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dDo6
UGFydGlhbFRyYWlsaW5nQ29udGVudD4gTGluZUJyZWFrZXI6OndvcmQKICAgICAgICAgICAgIC8v
IFdoZW4gdGhlIGZpcnN0IHNwYW4gY29tcHV0ZXMgbG9uZ2VyIHRoYW4gdGhlIGF2YWlsYWJsZSBz
cGFjZSwgYnkgdGhlIHRpbWUgd2UgZ2V0IHRvIHRoZSBzZWNvbmQgc3BhbiwgdGhlIGFkanVzdGVk
IGF2YWlsYWJsZSBzcGFjZSBiZWNvbWVzIG5lZ2F0aXZlLgogICAgICAgICAgICAgYXV0byBhZGp1
c3RlZEF2YWlsYWJsZVdpZHRoID0gc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgbGluZVN0
YXR1cy5hdmFpbGFibGVXaWR0aCAtIGFjY3VtdWxhdGVkUnVuV2lkdGgpOwogICAgICAgICAgICAg
aWYgKGF1dG8gbGVmdFNpZGUgPSB0cnlCcmVha2luZ1RleHRSdW4ocnVuLCBhZGp1c3RlZEF2YWls
YWJsZVdpZHRoLCBsaW5lU3RhdHVzLmxpbmVJc0VtcHR5KSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gQnJlYWtpbmdDb250ZXh0OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgaW5kZXgsIGxlZnRT
aWRlLT5sZW5ndGgsIGxlZnRTaWRlLT5sb2dpY2FsV2lkdGgsIGxlZnRTaWRlLT5uZWVkc0h5cGhl
biB9OworICAgICAgICAgICAgICAgIHJldHVybiBCcmVha2luZ0NvbnRleHQ6OlBhcnRpYWxUcmFp
bGluZ0NvbnRlbnQgeyBpbmRleCwgbGVmdFNpZGUgfTsKICAgICAgICAgICAgIC8vIElmIHRoaXMg
cnVuIGlzIG5vdCBicmVha2FibGUsIHdlIG5lZWQgdG8gY2hlY2sgaWYgYW55IHByZXZpb3VzIHJ1
biBpcyBicmVha2FibGUKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNjYsNyAr
MTY3LDcgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dDo6UGFydGlhbFRy
YWlsaW5nQ29udGVudD4gTGluZUJyZWFrZXI6OndvcmQKICAgICAgICAgICAgIEFTU0VSVChydW4u
aW5saW5lSXRlbS5pc1RleHQoKSk7CiAgICAgICAgICAgICBpZiAoYXV0byBsZWZ0U2lkZSA9IHRy
eUJyZWFraW5nVGV4dFJ1bihydW4sIG1heElubGluZUxheW91dFVuaXQoKSwgbGluZVN0YXR1cy5s
aW5lSXNFbXB0eSkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIHJ1biBpdHNlbGYgbWlnaHQg
bm90IGJlIHBhcnRpYWwgYnV0IHRoZSBjb250ZW50IChzZXJpZXMgb2YgcnVucykgZGVmaW5pdGVs
eSBpcy4KLSAgICAgICAgICAgICAgICByZXR1cm4gQnJlYWtpbmdDb250ZXh0OjpQYXJ0aWFsVHJh
aWxpbmdDb250ZW50IHsgaW5kZXgsIGxlZnRTaWRlLT5sZW5ndGgsIGxlZnRTaWRlLT5sb2dpY2Fs
V2lkdGgsIGxlZnRTaWRlLT5uZWVkc0h5cGhlbiB9OworICAgICAgICAgICAgICAgIHJldHVybiBC
cmVha2luZ0NvbnRleHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRlbnQgeyBpbmRleCwgbGVmdFNpZGUg
fTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE3NCw3ICsxNzUsNyBAQCBP
cHRpb25hbDxMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0OjpQYXJ0aWFsVHJhaWxpbmdDb250
ZW50PiBMaW5lQnJlYWtlcjo6d29yZAogICAgIHJldHVybiB7IH07CiB9CiAKLU9wdGlvbmFsPExp
bmVCcmVha2VyOjpMZWZ0U2lkZT4gTGluZUJyZWFrZXI6OnRyeUJyZWFraW5nVGV4dFJ1bihjb25z
dCBDb250ZW50OjpSdW4mIG92ZXJmbG93UnVuLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdp
ZHRoLCBib29sIGxpbmVJc0VtcHR5KSBjb25zdAorT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRp
YWxSdW4+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgQ29udGVudDo6UnVu
JiBvdmVyZmxvd1J1biwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgYm9vbCBsaW5l
SXNFbXB0eSkgY29uc3QKIHsKICAgICBBU1NFUlQob3ZlcmZsb3dSdW4uaW5saW5lSXRlbS5pc1Rl
eHQoKSk7CiAgICAgYXV0byYgc3R5bGUgPSBvdmVyZmxvd1J1bi5pbmxpbmVJdGVtLnN0eWxlKCk7
CkBAIC0xODYsMTAgKzE4NywxMCBAQCBPcHRpb25hbDxMaW5lQnJlYWtlcjo6TGVmdFNpZGU+IExp
bmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgQ29udGVudDo6UgogICAgIGlmIChp
c1RleHRTcGxpdEF0QXJiaXRyYXJ5UG9zaXRpb25BbGxvd2VkKHN0eWxlLCBsaW5lSXNFbXB0eSkp
IHsKICAgICAgICAgLy8gV2hlbiB0aGUgcnVuIGNhbiBiZSBzcGxpdCBhdCBhcmJpdHJhcnkgcG9z
aXRpb25zLCBsZXQncyBqdXN0IHJldHVybiB0aGUgZW50aXJlIHJ1biB3aGVuIGl0IGlzIGludGVu
ZGVkIHRvIGZpdCBvbiB0aGUgbGluZS4KICAgICAgICAgaWYgKGZpbmRMYXN0QnJlYWthYmxlUG9z
aXRpb24pCi0gICAgICAgICAgICByZXR1cm4gTGVmdFNpZGUgeyBpbmxpbmVUZXh0SXRlbS5sZW5n
dGgoKSwgb3ZlcmZsb3dSdW4ubG9naWNhbFdpZHRoLCBmYWxzZSB9OworICAgICAgICAgICAgcmV0
dXJuIFBhcnRpYWxSdW4geyBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSwgb3ZlcmZsb3dSdW4ubG9n
aWNhbFdpZHRoLCBmYWxzZSB9OwogICAgICAgICAvLyBGSVhNRTogUGFzcyBpbiB0aGUgY29udGVu
dCBsb2dpY2FsIGxlZnQgdG8gYmUgYWJsZSB0byBtZWFzdXJlIHRhYnMuCiAgICAgICAgIGF1dG8g
c3BsaXREYXRhID0gVGV4dFV0aWw6OnNwbGl0KGlubGluZVRleHRJdGVtLmxheW91dEJveCgpLCBp
bmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSwgb3ZlcmZsb3dS
dW4ubG9naWNhbFdpZHRoLCBhdmFpbGFibGVXaWR0aCwgeyB9KTsKLSAgICAgICAgcmV0dXJuIExl
ZnRTaWRlIHsgc3BsaXREYXRhLmxlbmd0aCwgc3BsaXREYXRhLmxvZ2ljYWxXaWR0aCwgZmFsc2Ug
fTsKKyAgICAgICAgcmV0dXJuIFBhcnRpYWxSdW4geyBzcGxpdERhdGEubGVuZ3RoLCBzcGxpdERh
dGEubG9naWNhbFdpZHRoLCBmYWxzZSB9OwogICAgIH0KICAgICAvLyBGaW5kIHRoZSBoeXBoZW4g
cG9zaXRpb24gYXMgZm9sbG93czoKICAgICAvLyAxLiBTcGxpdCB0aGUgdGV4dCBieSB0YWtpbmcg
dGhlIGh5cGhlbiB3aWR0aCBpbnRvIGFjY291bnQKQEAgLTIyNCw3ICsyMjUsNyBAQCBPcHRpb25h
bDxMaW5lQnJlYWtlcjo6TGVmdFNpZGU+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4o
Y29uc3QgQ29udGVudDo6UgogICAgICAgICByZXR1cm4geyB9OwogICAgIC8vIGh5cGhlbkxvY2F0
aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGlzIElubGluZUl0ZW1UZXh0LgogICAg
IGF1dG8gdHJhaWxpbmdQYXJ0aWFsUnVuV2lkdGhXaXRoSHlwaGVuID0gVGV4dFV0aWw6OndpZHRo
KGlubGluZVRleHRJdGVtLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5z
dGFydCgpICsgaHlwaGVuTG9jYXRpb24pICsgaHlwaGVuV2lkdGg7IAotICAgIHJldHVybiBMZWZ0
U2lkZSB7IGh5cGhlbkxvY2F0aW9uLCB0cmFpbGluZ1BhcnRpYWxSdW5XaWR0aFdpdGhIeXBoZW4s
IHRydWUgfTsKKyAgICByZXR1cm4gUGFydGlhbFJ1biB7IGh5cGhlbkxvY2F0aW9uLCB0cmFpbGlu
Z1BhcnRpYWxSdW5XaWR0aFdpdGhIeXBoZW4sIHRydWUgfTsKIH0KIAogc3RhdGljIGJvb2wgZW5k
c1dpdGhTb2Z0V3JhcE9wcG9ydHVuaXR5KGNvbnN0IElubGluZVRleHRJdGVtJiBwcmV2aW91c1Rl
eHRJdGVtLCBjb25zdCBJbmxpbmVUZXh0SXRlbSYgbmV4dElubGluZVRleHRJdGVtKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJy
ZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVCcmVha2VyLmgKaW5kZXggNDFjMDhhZTcyN2I4YjE0MDVmYjMxZTcwOTFlYzI2ZmQyNThmYTg1
ZS4uNzZiYTgzZWI0Mjc4MDI2MGZjMmFjYmMzNmM0ZDczYjA0ZTM3NzJhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5l
QnJlYWtlci5oCkBAIC0zNyw2ICszNywxMSBAQCBjbGFzcyBJbmxpbmVUZXh0SXRlbTsKIAogY2xh
c3MgTGluZUJyZWFrZXIgewogcHVibGljOgorICAgIHN0cnVjdCBQYXJ0aWFsUnVuIHsKKyAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoIHsgMCB9OworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aCB7IDAgfTsKKyAgICAgICAgYm9vbCBuZWVkc0h5cGhlbiB7IGZhbHNlIH07CisgICAg
fTsKICAgICBzdHJ1Y3QgQnJlYWtpbmdDb250ZXh0IHsKICAgICAgICAgZW51bSBjbGFzcyBDb250
ZW50V3JhcHBpbmdSdWxlIHsKICAgICAgICAgICAgIEtlZXAsIC8vIEtlZXAgY29udGVudCBvbiB0
aGUgY3VycmVudCBsaW5lLgpAQCAtNDUsMTAgKzUwLDggQEAgcHVibGljOgogICAgICAgICB9Owog
ICAgICAgICBDb250ZW50V3JhcHBpbmdSdWxlIGNvbnRlbnRXcmFwcGluZ1J1bGU7CiAgICAgICAg
IHN0cnVjdCBQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHJ1
bkluZGV4IHsgMCB9OwotICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoIHsgMCB9OwotICAgICAg
ICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgICAgICBi
b29sIG5lZWRzSHlwaGVuIHsgZmFsc2UgfTsKKyAgICAgICAgICAgIHVuc2lnbmVkIHRyaWFpbGlu
Z1J1bkluZGV4IHsgMCB9OworICAgICAgICAgICAgT3B0aW9uYWw8UGFydGlhbFJ1bj4gcGFydGlh
bFJ1bjsgLy8gRW1wdHkgcGFydGlhbCBydW4gbWVhbnMgdGhlIHRyYWlsaW5nIHJ1biBpcyBhIGNv
bXBsZXRlIHJ1bi4KICAgICAgICAgfTsKICAgICAgICAgT3B0aW9uYWw8UGFydGlhbFRyYWlsaW5n
Q29udGVudD4gcGFydGlhbFRyYWlsaW5nQ29udGVudDsKICAgICB9OwpAQCAtMTE1LDEyICsxMTgs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8QnJlYWtpbmdDb250ZXh0OjpQ
YXJ0aWFsVHJhaWxpbmdDb250ZW50PiB3b3JkQnJlYWtpbmdCZWhhdmlvcihjb25zdCBDb250ZW50
OjpSdW5MaXN0JiwgY29uc3QgTGluZVN0YXR1cyYpIGNvbnN0OwotICAgIHN0cnVjdCBMZWZ0U2lk
ZSB7Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCB7IDAgfTsKLSAgICAgICAgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgIGJvb2wgbmVlZHNIeXBoZW4geyBmYWxz
ZSB9OwotICAgIH07Ci0gICAgT3B0aW9uYWw8TGVmdFNpZGU+IHRyeUJyZWFraW5nVGV4dFJ1bihj
b25zdCBDb250ZW50OjpSdW4mIG92ZXJmbG93UnVuLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJs
ZVdpZHRoLCBib29sIGxpbmVJc0VtcHR5KSBjb25zdDsKKyAgICBPcHRpb25hbDxQYXJ0aWFsUnVu
PiB0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgQ29udGVudDo6UnVuJiBvdmVyZmxvd1J1biwgSW5s
aW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSkgY29uc3Q7CiAK
ICAgICBib29sIG5faHlwaGVuYXRpb25Jc0Rpc2FibGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5
b3V0Q29udGV4dC5jcHAKaW5kZXggZWU2NmM4MTVlZGUxNTExNzI2NzYwNWQ0YmQ4ZmYxMDVhODM1
NzRmNi4uYTA2NjVjMjUzYzZkOWIwMTk1OGY2ZThkZGI3MDFmNDc5ODUyYThkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVM
YXlvdXRDb250ZXh0LmNwcApAQCAtMjE0LDMyICsyMTQsMzEgQEAgTGluZUxheW91dENvbnRleHQ6
OklzRW5kT2ZMaW5lIExpbmVMYXlvdXRDb250ZXh0Ojpwcm9jZXNzVW5jb21taXR0ZWRDb250ZW50
KExpbmUKICAgICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQobGluZSk7CiAgICAgZWxzZSBpZiAo
YnJlYWtpbmdDb250ZXh0LmNvbnRlbnRXcmFwcGluZ1J1bGUgPT0gTGluZUJyZWFrZXI6OkJyZWFr
aW5nQ29udGV4dDo6Q29udGVudFdyYXBwaW5nUnVsZTo6U3BsaXQpIHsKICAgICAgICAgQVNTRVJU
KGJyZWFraW5nQ29udGV4dC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50KTsKLSAgICAgICAgQVNTRVJU
KG1fdW5jb21taXR0ZWRDb250ZW50LnJ1bnMoKVticmVha2luZ0NvbnRleHQucGFydGlhbFRyYWls
aW5nQ29udGVudC0+cnVuSW5kZXhdLmlubGluZUl0ZW0uaXNUZXh0KCkpOworICAgICAgICBBU1NF
UlQobV91bmNvbW1pdHRlZENvbnRlbnQucnVucygpW2JyZWFraW5nQ29udGV4dC5wYXJ0aWFsVHJh
aWxpbmdDb250ZW50LT50cmlhaWxpbmdSdW5JbmRleF0uaW5saW5lSXRlbS5pc1RleHQoKSk7CiAg
ICAgICAgIC8vIFR1cm4gdGhlIHVuY29tbWl0dGVkIHRyYWlsaW5nIHJ1biBpbnRvIGEgcGFydGlh
bCB0cmFpbGluZyBydW4uCi0gICAgICAgIGF1dG8gdHJhaWxpbmdSdW5JbmRleCA9IGJyZWFraW5n
Q29udGV4dC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT5ydW5JbmRleDsKKyAgICAgICAgYXV0byB0
cmFpbGluZ1J1bkluZGV4ID0gYnJlYWtpbmdDb250ZXh0LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnQt
PnRyaWFpbGluZ1J1bkluZGV4OwogICAgICAgICBhdXRvJiB0cmFpbGluZ0lubGluZVRleHRJdGVt
ID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1fdW5jb21taXR0ZWRDb250ZW50LnJ1bnMoKVt0
cmFpbGluZ1J1bkluZGV4XS5pbmxpbmVJdGVtKTsKIAogICAgICAgICBBU1NFUlQoIW1fcGFydGlh
bFRyYWlsaW5nVGV4dEl0ZW0pOwogICAgICAgICAvLyBDb25zdHJ1Y3QgYSBwYXJ0aWFsIHRyYWls
aW5nIGlubGluZSBydW4gb25seSBpZiB0aGVyZSdzIGEgbmVlZCBmb3Igb25lLgogICAgICAgICAv
LyBXaGVuIHNwbGl0dGluZyBtdWx0aXBsZSBydW5zIDxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBi
cmVhay1hbGwiPnRleHQ8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj4sIHdlIG1pZ2h0IGVuZCB1
cCBzcGxpdHRpbmcgdGhlbSBhdCBydW4gYm91bmRhcnkuCiAgICAgICAgIC8vIEluIHN1Y2ggY2Fz
ZSB3ZSBkb24ndCBuZWVkIHRvIGNvbnN0cnVjdCBhIHBhcnRpYWwgdHJhaWxpbmcgaXRlbSBzaW5j
ZSB0aGUgdHJhaWxpbmcgcnVuIGlzIG5vdCBwYXJ0aWFsIGF0IGFsbC4KLSAgICAgICAgaWYgKHRy
YWlsaW5nSW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgPT0gYnJlYWtpbmdDb250ZXh0LnBhcnRpYWxU
cmFpbGluZ0NvbnRlbnQtPmxlbmd0aCkgeworICAgICAgICBpZiAoYXV0byBwYXJ0aWFsVHJhaWxp
bmdSdW4gPSBicmVha2luZ0NvbnRleHQucGFydGlhbFRyYWlsaW5nQ29udGVudC0+cGFydGlhbFJ1
bikgeworICAgICAgICAgICAgbV9wYXJ0aWFsVHJhaWxpbmdUZXh0SXRlbSA9IHRyYWlsaW5nSW5s
aW5lVGV4dEl0ZW0ubGVmdChwYXJ0aWFsVHJhaWxpbmdSdW4tPmxlbmd0aCk7CisgICAgICAgICAg
ICBtX3BhcnRpYWxDb250ZW50ID0gTGluZUNvbnRlbnQ6OlBhcnRpYWxDb250ZW50IHsgcGFydGlh
bFRyYWlsaW5nUnVuLT5uZWVkc0h5cGhlbiwgdHJhaWxpbmdJbmxpbmVUZXh0SXRlbS5sZW5ndGgo
KSAtIHBhcnRpYWxUcmFpbGluZ1J1bi0+bGVuZ3RoIH07CisgICAgICAgICAgICAvLyBLZWVwIHRo
ZSBub24tb3ZlcmZsb3cgcGFydCBvZiB0aGUgdW5jb21taXR0ZWQgcnVucyBhbmQgYWRkIHRoZSB0
cmFpbGluZyBwYXJ0aWFsIGNvbnRlbnQuCisgICAgICAgICAgICBtX3VuY29tbWl0dGVkQ29udGVu
dC50cmltKHRyYWlsaW5nUnVuSW5kZXgpOworICAgICAgICAgICAgbV91bmNvbW1pdHRlZENvbnRl
bnQuYXBwZW5kKCptX3BhcnRpYWxUcmFpbGluZ1RleHRJdGVtLCBwYXJ0aWFsVHJhaWxpbmdSdW4t
PmxvZ2ljYWxXaWR0aCk7CisgICAgICAgICAgICAvLyBBZGp1c3QgaHlwaGVuYXRlZCBsaW5lIGNv
dW50LgorICAgICAgICAgICAgaWYgKHBhcnRpYWxUcmFpbGluZ1J1bi0+bmVlZHNIeXBoZW4pCisg
ICAgICAgICAgICAgICAgKyttX3N1Y2Nlc3NpdmVIeXBoZW5hdGVkTGluZUNvdW50OworICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gVHJpbSB0aGUgb3ZlcmZsb3duIHJ1biBhbmQga2Vl
cCB0aGUgdHJhaWxpbmcgKG5vbi1wYXJ0aWFsKSBydW4gaW4gdGhlIHF1ZXVlLgogICAgICAgICAg
ICAgYXV0byBvdmVyZmxvd25SdW5JbmRleCA9IHRyYWlsaW5nUnVuSW5kZXggKyAxOwogICAgICAg
ICAgICAgQVNTRVJUKG92ZXJmbG93blJ1bkluZGV4IDwgbV91bmNvbW1pdHRlZENvbnRlbnQuc2l6
ZSgpKTsKICAgICAgICAgICAgIG1fdW5jb21taXR0ZWRDb250ZW50LnRyaW0ob3ZlcmZsb3duUnVu
SW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byB0cmFpbGluZ0NvbnRl
bnRMZW5ndGggPSBicmVha2luZ0NvbnRleHQucGFydGlhbFRyYWlsaW5nQ29udGVudC0+bGVuZ3Ro
OwotICAgICAgICAgICAgbV9wYXJ0aWFsVHJhaWxpbmdUZXh0SXRlbSA9IHRyYWlsaW5nSW5saW5l
VGV4dEl0ZW0ubGVmdCh0cmFpbGluZ0NvbnRlbnRMZW5ndGgpOwotICAgICAgICAgICAgbV9wYXJ0
aWFsQ29udGVudCA9IExpbmVDb250ZW50OjpQYXJ0aWFsQ29udGVudCB7IGJyZWFraW5nQ29udGV4
dC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT5uZWVkc0h5cGhlbiwgdHJhaWxpbmdJbmxpbmVUZXh0
SXRlbS5sZW5ndGgoKSAtIHRyYWlsaW5nQ29udGVudExlbmd0aCB9OwotICAgICAgICAgICAgLy8g
S2VlcCB0aGUgbm9uLW92ZXJmbG93IHBhcnQgb2YgdGhlIHVuY29tbWl0dGVkIHJ1bnMgYW5kIGFk
ZCB0aGUgdHJhaWxpbmcgcGFydGlhbCBjb250ZW50LgotICAgICAgICAgICAgbV91bmNvbW1pdHRl
ZENvbnRlbnQudHJpbSh0cmFpbGluZ1J1bkluZGV4KTsKLSAgICAgICAgICAgIG1fdW5jb21taXR0
ZWRDb250ZW50LmFwcGVuZCgqbV9wYXJ0aWFsVHJhaWxpbmdUZXh0SXRlbSwgYnJlYWtpbmdDb250
ZXh0LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnQtPmxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIH0KICAg
ICAgICAgY29tbWl0UGVuZGluZ0NvbnRlbnQobGluZSk7Ci0gICAgICAgIC8vIEFkanVzdCBoeXBo
ZW5hdGVkIGxpbmUgY291bnQuCi0gICAgICAgIGlmIChicmVha2luZ0NvbnRleHQucGFydGlhbFRy
YWlsaW5nQ29udGVudC0+bmVlZHNIeXBoZW4pCi0gICAgICAgICAgICArK21fc3VjY2Vzc2l2ZUh5
cGhlbmF0ZWRMaW5lQ291bnQ7CiAgICAgfSBlbHNlIGlmIChicmVha2luZ0NvbnRleHQuY29udGVu
dFdyYXBwaW5nUnVsZSA9PSBMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0OjpDb250ZW50V3Jh
cHBpbmdSdWxlOjpQdXNoKSB7CiAgICAgICAgIG1fdW5jb21taXR0ZWRDb250ZW50LnJlc2V0KCk7
CiAgICAgICAgIC8vIENsb3NpbmcgdGhlIGxpbmUgd2l0aG91dCBhbnkgaHlwaGVuLgo=
</data>
<flag name="review"
          id="401504"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>