<?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>113292</bug_id>
          
          <creation_ts>2013-03-26 03:46:29 -0700</creation_ts>
          <short_desc>Move box-shadow/webkit-box-shadow/text-shadow code to StyleBuilder</short_desc>
          <delta_ts>2022-07-13 14:29:34 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dominicc</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>863524</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-26 03:46:29 -0700</bug_when>
    <thetext>Move the CSSPropertyBoxShadow, CSSPropertyTextShadow and CSSPropertyWebkitBoxShadow applying logic out of StyleResolver::applyProperty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863528</commentid>
    <comment_count>1</comment_count>
      <attachid>195053</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-26 03:51:54 -0700</bug_when>
    <thetext>Created attachment 195053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864448</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-27 05:46:08 -0700</bug_when>
    <thetext>The refactored code is less understandable than the current one. It would be nice to refactor StyleBuilder to be more sane before moving anything more there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864471</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2013-03-27 06:23:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; The refactored code is less understandable than the current one. It would be nice to refactor StyleBuilder to be more sane before moving anything more there.

Is there anything in particular you find harder to understand or just the general concept of using templates this way? I&apos;ll gladly change it to make it easier to understand but knowing what you find hard to follow would makes that a lot easier.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866146</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-29 07:16:42 -0700</bug_when>
    <thetext>This factors a relatively straightforward switch branch into something that involves templates and function pointers without any obvious gain. How is this a progression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866149</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-29 07:21:24 -0700</bug_when>
    <thetext>An obvious first step for cleaning this up would be to move StyleResolver::applyProperty and pals to StyleBuilder. Then we could start figuring out how to have a one sane path of doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869130</commentid>
    <comment_count>6</comment_count>
      <attachid>195053</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-04-04 05:50:13 -0700</bug_when>
    <thetext>Comment on attachment 195053
Patch

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

&gt; Source/WebCore/css/StyleBuilder.cpp:1274
&gt; +    static void applyInheritValue(CSSPropertyID, StyleResolver* styleResolver)
&gt; +    {
&gt; +        const ShadowData* shadowData = (styleResolver-&gt;parentStyle()-&gt;*getterFunction)();
&gt; +        (styleResolver-&gt;style()-&gt;*setterFunction)(shadowData ? adoptPtr(new ShadowData(*shadowData)) : nullptr, 0 /* add */);
&gt; +    }

I agree with antti. High order functions are cool and all, but it doesn&apos;t really make it any cleaner here. These methods all already have the CSSPropertyID, so you could use that to select the methods like the original code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1883333</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-13 14:29:34 -0700</bug_when>
    <thetext>This code has been significantly refactored since this patch was proposed. There doesn&apos;t seem to be any action we can take here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195053</attachid>
            <date>2013-03-26 03:51:54 -0700</date>
            <delta_ts>2013-04-04 05:56:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113292-20130326034737.patch</filename>
            <type>text/plain</type>
            <size>11782</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Njg2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAzLTI2ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIGJveC1zaGFkb3cvd2Vi
a2l0LWJveC1zaGFkb3cvdGV4dC1zaGFkb3cgY29kZSB0byBTdHlsZUJ1aWxkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzI5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIENTU1Byb3Bl
cnR5Qm94U2hhZG93LCBDU1NQcm9wZXJ0eVRleHRTaGFkb3cgYW5kCisgICAgICAgIENTU1Byb3Bl
cnR5V2Via2l0Qm94U2hhZG93IGFwcGx5aW5nIGxvZ2ljIG91dCBvZiBTdHlsZVJlc29sdmVyOjoK
KyAgICAgICAgYXBwbHlQcm9wZXJ0eS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlTaGFkb3cpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVNoYWRvdzo6YXBwbHlJbmhlcml0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVNoYWRvdzo6YXBwbHlJbml0aWFsVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVNoYWRvdzo6YXBwbHlWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5U2hhZG93OjpjcmVhdGVIYW5kbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKToKKyAgICAgICAgQWRkIG5l
dyBjbGFzcyBmb3IgaGFuZGxpbmcgc2hhZG93cyB1c2luZyBhIHRlbXBsYXRlIHRvIGFsbG93IHRo
ZSBnZXR0ZXJzCisgICAgICAgIGFuZCBzZXR0ZXJzIHRvIGJlIHNwZWNpZmllZCBpbnN0ZWFkIG9m
IGJyYW5jaGluZyBvbiB0aGUgcHJvcGVydHkgaWQuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6
CisKIDIwMTMtMDMtMjYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbmFtZSBIVE1MSW5wdXRFbGVtZW50Ojppc0luZGV0ZXJtaW5hdGUgdG8gRWxlbWVudDo6
c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ci5jcHAJKHJldmlzaW9uIDE0Njc3MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJTaGFkb3dWYWx1ZS5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CkBAIC0xMjYzLDYgKzEyNjQsNTUgQEAgcHVibGljOgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
b25zdCBTaGFkb3dEYXRhKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwg
dm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoUGFzc093blB0cjxTaGFkb3dEYXRh
PiwgYm9vbCk+CitjbGFzcyBBcHBseVByb3BlcnR5U2hhZG93IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBz
dHlsZVJlc29sdmVyKQorICAgIHsKKyAgICAgICAgY29uc3QgU2hhZG93RGF0YSogc2hhZG93RGF0
YSA9IChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT4qZ2V0dGVyRnVuY3Rpb24pKCk7Cisg
ICAgICAgIChzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT4qc2V0dGVyRnVuY3Rpb24pKHNoYWRvd0Rh
dGEgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqc2hhZG93RGF0YSkpIDogbnVsbHB0ciwgMCAv
KiBhZGQgKi8pOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENT
U1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAg
ICAoc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+KnNldHRlckZ1bmN0aW9uKShudWxscHRyLCAwIC8q
IGFkZCAqLyk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0
eUlEIGlkLCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCisg
ICAgeworICAgICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgeworICAgICAgICAg
ICAgKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPipzZXR0ZXJGdW5jdGlvbikobnVsbHB0ciwgMCAv
KiBhZGQgKi8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBmbG9hdCB6b29tRmFjdG9yID0gc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpOworICAgICAgICBmb3IgKENTU1ZhbHVlTGlzdEl0ZXJhdG9yIGkgPSB2YWx1
ZTsgaS5oYXNNb3JlKCk7IGkuYWR2YW5jZSgpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogY3Vy
clZhbHVlID0gaS52YWx1ZSgpOworICAgICAgICAgICAgaWYgKCFjdXJyVmFsdWUtPmlzU2hhZG93
VmFsdWUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIFNoYWRvd1Zh
bHVlKiBpdGVtID0gc3RhdGljX2Nhc3Q8U2hhZG93VmFsdWUqPihjdXJyVmFsdWUpOworICAgICAg
ICAgICAgaW50IHggPSBpdGVtLT54LT5jb21wdXRlTGVuZ3RoPGludD4oc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFjdG9yKTsK
KyAgICAgICAgICAgIGludCB5ID0gaXRlbS0+eS0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZh
Y3Rvcik7CisgICAgICAgICAgICBpbnQgYmx1ciA9IGl0ZW0tPmJsdXIgPyBpdGVtLT5ibHVyLT5j
b21wdXRlTGVuZ3RoPGludD4oc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+
cm9vdEVsZW1lbnRTdHlsZSgpLCB6b29tRmFjdG9yKSA6IDA7CisgICAgICAgICAgICBpbnQgc3By
ZWFkID0gaXRlbS0+c3ByZWFkID8gaXRlbS0+c3ByZWFkLT5jb21wdXRlTGVuZ3RoPGludD4oc3R5
bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCB6
b29tRmFjdG9yKSA6IDA7CisgICAgICAgICAgICBTaGFkb3dTdHlsZSBzaGFkb3dTdHlsZSA9IGl0
ZW0tPnN0eWxlICYmIGl0ZW0tPnN0eWxlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlSW5zZXQgPyBJ
bnNldCA6IE5vcm1hbDsKKyAgICAgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICAgICAgaWYg
KGl0ZW0tPmNvbG9yKQorICAgICAgICAgICAgICAgIGNvbG9yID0gc3R5bGVSZXNvbHZlci0+Y29s
b3JGcm9tUHJpbWl0aXZlVmFsdWUoaXRlbS0+Y29sb3IuZ2V0KCkpOworICAgICAgICAgICAgZWxz
ZSBpZiAoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSkKKyAgICAgICAgICAgICAgICBjb2xvciA9IHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNv
bG9yKTsKKworICAgICAgICAgICAgT3duUHRyPFNoYWRvd0RhdGE+IHNoYWRvd0RhdGEgPSBhZG9w
dFB0cihuZXcgU2hhZG93RGF0YShJbnRQb2ludCh4LCB5KSwgYmx1ciwgc3ByZWFkLCBzaGFkb3dT
dHlsZSwgaWQgPT0gQ1NTUHJvcGVydHlXZWJraXRCb3hTaGFkb3csIGNvbG9yLmlzVmFsaWQoKSA/
IGNvbG9yIDogQ29sb3I6OnRyYW5zcGFyZW50KSk7CisgICAgICAgICAgICAoc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKS0+KnNldHRlckZ1bmN0aW9uKShzaGFkb3dEYXRhLnJlbGVhc2UoKSwgaS5pbmRl
eCgpKTsgLy8gYWRkIHRvIHRoZSBsaXN0IGlmIHRoaXMgaXMgbm90IHRoZSBmaXJzdCBlbnRyeQor
ICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5k
bGVyKCkgeyByZXR1cm4gUHJvcGVydHlIYW5kbGVyKCZhcHBseUluaGVyaXRWYWx1ZSwgJmFwcGx5
SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7IH0KK307CisKICNpZiBFTkFCTEUoQ1NTM19URVhU
KQogY2xhc3MgQXBwbHlQcm9wZXJ0eVRleHRVbmRlcmxpbmVQb3NpdGlvbiB7CiBwdWJsaWM6CkBA
IC0yMDI4LDYgKzIwNzgsNyBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcigpCiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGUsIEFwcGx5UHJvcGVydHlE
ZWZhdWx0PEVCb3JkZXJTdHlsZSwgJlJlbmRlclN0eWxlOjpib3JkZXJUb3BTdHlsZSwgRUJvcmRl
clN0eWxlLCAmUmVuZGVyU3R5bGU6OnNldEJvcmRlclRvcFN0eWxlLCBFQm9yZGVyU3R5bGUsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRlclN0eWxlPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBz
ZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlCb3JkZXJUb3BXaWR0aCwgQXBwbHlQcm9wZXJ0
eUNvbXB1dGVMZW5ndGg8dW5zaWduZWQsICZSZW5kZXJTdHlsZTo6Ym9yZGVyVG9wV2lkdGgsICZS
ZW5kZXJTdHlsZTo6c2V0Qm9yZGVyVG9wV2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJvcmRl
cldpZHRoLCBOb3JtYWxEaXNhYmxlZCwgVGhpY2tuZXNzRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIo
KSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm90dG9tLCBBcHBseVByb3Bl
cnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5bGU6OnNldEJvdHRvbSwg
JlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0LCBBdXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIo
KSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm94U2hhZG93LCBBcHBseVBy
b3BlcnR5U2hhZG93PCZSZW5kZXJTdHlsZTo6Ym94U2hhZG93LCAmUmVuZGVyU3R5bGU6OnNldEJv
eFNoYWRvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5Qm94U2l6aW5nLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFQm94U2l6aW5nLCAmUmVuZGVy
U3R5bGU6OmJveFNpemluZywgRUJveFNpemluZywgJlJlbmRlclN0eWxlOjpzZXRCb3hTaXppbmcs
IEVCb3hTaXppbmcsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEJveFNpemluZz46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Q2FwdGlvblNpZGUsIEFw
cGx5UHJvcGVydHlEZWZhdWx0PEVDYXB0aW9uU2lkZSwgJlJlbmRlclN0eWxlOjpjYXB0aW9uU2lk
ZSwgRUNhcHRpb25TaWRlLCAmUmVuZGVyU3R5bGU6OnNldENhcHRpb25TaWRlLCBFQ2FwdGlvblNp
ZGUsICZSZW5kZXJTdHlsZTo6aW5pdGlhbENhcHRpb25TaWRlPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlDbGVhciwgQXBwbHlQcm9wZXJ0eURl
ZmF1bHQ8RUNsZWFyLCAmUmVuZGVyU3R5bGU6OmNsZWFyLCBFQ2xlYXIsICZSZW5kZXJTdHlsZTo6
c2V0Q2xlYXIsIEVDbGVhciwgJlJlbmRlclN0eWxlOjppbml0aWFsQ2xlYXI+OjpjcmVhdGVIYW5k
bGVyKCkpOwpAQCAtMjEwMyw2ICsyMTU0LDcgQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIo
KQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJv
cGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJm
bG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5
bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihD
U1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdN
b2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlv
bjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxl
cigpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0U2hhZG93LCBBcHBs
eVByb3BlcnR5U2hhZG93PCZSZW5kZXJTdHlsZTo6dGV4dFNoYWRvdywgJlJlbmRlclN0eWxlOjpz
ZXRUZXh0U2hhZG93Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5z
Zm9ybSwgJlJlbmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRl
clN0eWxlOjpzZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5VG9wLCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6
dG9wLCAmUmVuZGVyU3R5bGU6OnNldFRvcCwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0LCBB
dXRvRW5hYmxlZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5VW5pY29kZUJpZGksIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVVbmljb2RlQmlkaSwg
JlJlbmRlclN0eWxlOjp1bmljb2RlQmlkaSwgRVVuaWNvZGVCaWRpLCAmUmVuZGVyU3R5bGU6OnNl
dFVuaWNvZGVCaWRpLCBFVW5pY29kZUJpZGksICZSZW5kZXJTdHlsZTo6aW5pdGlhbFVuaWNvZGVC
aWRpPjo6Y3JlYXRlSGFuZGxlcigpKTsKQEAgLTIxNDIsNiArMjE5NCw3IEBAIFN0eWxlQnVpbGRl
cjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRCb3hPcmRpbmFsR3JvdXAsIEFwcGx5UHJvcGVydHlEZWZhdWx0PHVuc2lnbmVkIGludCwgJlJl
bmRlclN0eWxlOjpib3hPcmRpbmFsR3JvdXAsIHVuc2lnbmVkIGludCwgJlJlbmRlclN0eWxlOjpz
ZXRCb3hPcmRpbmFsR3JvdXAsIHVuc2lnbmVkIGludCwgJlJlbmRlclN0eWxlOjppbml0aWFsQm94
T3JkaW5hbEdyb3VwPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRCb3hPcmllbnQsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCb3hPcmll
bnQsICZSZW5kZXJTdHlsZTo6Ym94T3JpZW50LCBFQm94T3JpZW50LCAmUmVuZGVyU3R5bGU6OnNl
dEJveE9yaWVudCwgRUJveE9yaWVudCwgJlJlbmRlclN0eWxlOjppbml0aWFsQm94T3JpZW50Pjo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRCb3hQYWNrLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFQm94UGFjaywgJlJlbmRlclN0eWxlOjpi
b3hQYWNrLCBFQm94UGFjaywgJlJlbmRlclN0eWxlOjpzZXRCb3hQYWNrLCBFQm94UGFjaywgJlJl
bmRlclN0eWxlOjppbml0aWFsQm94UGFjaz46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Qm94U2hhZG93LCBBcHBseVByb3BlcnR5U2hh
ZG93PCZSZW5kZXJTdHlsZTo6Ym94U2hhZG93LCAmUmVuZGVyU3R5bGU6OnNldEJveFNoYWRvdz46
OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Vi
a2l0Q29sb3JDb3JyZWN0aW9uLCBBcHBseVByb3BlcnR5RGVmYXVsdDxDb2xvclNwYWNlLCAmUmVu
ZGVyU3R5bGU6OmNvbG9yU3BhY2UsIENvbG9yU3BhY2UsICZSZW5kZXJTdHlsZTo6c2V0Q29sb3JT
cGFjZSwgQ29sb3JTcGFjZSwgJlJlbmRlclN0eWxlOjppbml0aWFsQ29sb3JTcGFjZT46OmNyZWF0
ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Q29s
dW1uQXhpcywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8Q29sdW1uQXhpcywgJlJlbmRlclN0eWxlOjpj
b2x1bW5BeGlzLCBDb2x1bW5BeGlzLCAmUmVuZGVyU3R5bGU6OnNldENvbHVtbkF4aXMsIENvbHVt
bkF4aXMsICZSZW5kZXJTdHlsZTo6aW5pdGlhbENvbHVtbkF4aXM+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrQWZ0
ZXIsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVQYWdlQnJlYWssICZSZW5kZXJTdHlsZTo6Y29sdW1u
QnJlYWtBZnRlciwgRVBhZ2VCcmVhaywgJlJlbmRlclN0eWxlOjpzZXRDb2x1bW5CcmVha0FmdGVy
LCBFUGFnZUJyZWFrLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxQYWdlQnJlYWs+OjpjcmVhdGVIYW5k
bGVyKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAkocmV2aXNpb24g
MTQ2NzcyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDk2LDQ0ICsyNDk2LDYgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVBy
b3BlcnR5KENTU1BybwogICAgICAgICBicmVhazsKIAogICAgIC8vIENTUzMgUHJvcGVydGllcwot
ICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3hT
aGFkb3c6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFNoYWRvdzogewotICAgICAgICBp
ZiAoaXNJbmhlcml0KSB7Ci0gICAgICAgICAgICBpZiAoaWQgPT0gQ1NTUHJvcGVydHlUZXh0U2hh
ZG93KQotICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZS5zdHlsZSgpLT5zZXRUZXh0U2hhZG93
KHN0YXRlLnBhcmVudFN0eWxlKCktPnRleHRTaGFkb3coKSA/IGFkb3B0UHRyKG5ldyBTaGFkb3dE
YXRhKCpzdGF0ZS5wYXJlbnRTdHlsZSgpLT50ZXh0U2hhZG93KCkpKSA6IG51bGxwdHIpOwotICAg
ICAgICAgICAgcmV0dXJuIHN0YXRlLnN0eWxlKCktPnNldEJveFNoYWRvdyhzdGF0ZS5wYXJlbnRT
dHlsZSgpLT5ib3hTaGFkb3coKSA/IGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKCpzdGF0ZS5wYXJl
bnRTdHlsZSgpLT5ib3hTaGFkb3coKSkpIDogbnVsbHB0cik7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKGlzSW5pdGlhbCB8fCBwcmltaXRpdmVWYWx1ZSkgLy8gaW5pdGlhbCB8IG5vbmUKLSAgICAg
ICAgICAgIHJldHVybiBpZCA9PSBDU1NQcm9wZXJ0eVRleHRTaGFkb3cgPyBzdGF0ZS5zdHlsZSgp
LT5zZXRUZXh0U2hhZG93KG51bGxwdHIpIDogc3RhdGUuc3R5bGUoKS0+c2V0Qm94U2hhZG93KG51
bGxwdHIpOwotCi0gICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgZm9yIChDU1NWYWx1ZUxpc3RJdGVyYXRvciBpID0gdmFsdWU7
IGkuaGFzTW9yZSgpOyBpLmFkdmFuY2UoKSkgewotICAgICAgICAgICAgQ1NTVmFsdWUqIGN1cnJW
YWx1ZSA9IGkudmFsdWUoKTsKLSAgICAgICAgICAgIGlmICghY3VyclZhbHVlLT5pc1NoYWRvd1Zh
bHVlKCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBTaGFkb3dWYWx1
ZSogaXRlbSA9IHN0YXRpY19jYXN0PFNoYWRvd1ZhbHVlKj4oY3VyclZhbHVlKTsKLSAgICAgICAg
ICAgIGludCB4ID0gaXRlbS0+eC0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0YXRlLnN0eWxlKCksIHN0
YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3Rvcik7Ci0gICAgICAgICAgICBpbnQgeSA9
IGl0ZW0tPnktPmNvbXB1dGVMZW5ndGg8aW50PihzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290RWxl
bWVudFN0eWxlKCksIHpvb21GYWN0b3IpOwotICAgICAgICAgICAgaW50IGJsdXIgPSBpdGVtLT5i
bHVyID8gaXRlbS0+Ymx1ci0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0YXRlLnN0eWxlKCksIHN0YXRl
LnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3RvcikgOiAwOwotICAgICAgICAgICAgaW50IHNw
cmVhZCA9IGl0ZW0tPnNwcmVhZCA/IGl0ZW0tPnNwcmVhZC0+Y29tcHV0ZUxlbmd0aDxpbnQ+KHN0
YXRlLnN0eWxlKCksIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSwgem9vbUZhY3RvcikgOiAwOwot
ICAgICAgICAgICAgU2hhZG93U3R5bGUgc2hhZG93U3R5bGUgPSBpdGVtLT5zdHlsZSAmJiBpdGVt
LT5zdHlsZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUluc2V0ID8gSW5zZXQgOiBOb3JtYWw7Ci0g
ICAgICAgICAgICBDb2xvciBjb2xvcjsKLSAgICAgICAgICAgIGlmIChpdGVtLT5jb2xvcikKLSAg
ICAgICAgICAgICAgICBjb2xvciA9IGNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKGl0ZW0tPmNvbG9y
LmdldCgpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlLnN0eWxlKCkpCi0gICAgICAgICAg
ICAgICAgY29sb3IgPSBzdGF0ZS5zdHlsZSgpLT5jb2xvcigpOwotCi0gICAgICAgICAgICBPd25Q
dHI8U2hhZG93RGF0YT4gc2hhZG93RGF0YSA9IGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKEludFBv
aW50KHgsIHkpLCBibHVyLCBzcHJlYWQsIHNoYWRvd1N0eWxlLCBpZCA9PSBDU1NQcm9wZXJ0eVdl
YmtpdEJveFNoYWRvdywgY29sb3IuaXNWYWxpZCgpID8gY29sb3IgOiBDb2xvcjo6dHJhbnNwYXJl
bnQpKTsKLSAgICAgICAgICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0eVRleHRTaGFkb3cpCi0gICAg
ICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VGV4dFNoYWRvdyhzaGFkb3dEYXRhLnJlbGVh
c2UoKSwgaS5pbmRleCgpKTsgLy8gYWRkIHRvIHRoZSBsaXN0IGlmIHRoaXMgaXMgbm90IHRoZSBm
aXJzdCBlbnRyeQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHN0YXRlLnN0eWxl
KCktPnNldEJveFNoYWRvdyhzaGFkb3dEYXRhLnJlbGVhc2UoKSwgaS5pbmRleCgpKTsgLy8gYWRk
IHRvIHRoZSBsaXN0IGlmIHRoaXMgaXMgbm90IHRoZSBmaXJzdCBlbnRyeQotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveFJlZmxl
Y3Q6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoYm94UmVmbGVjdCwgQm94
UmVmbGVjdCkKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKSB7Cg==
</data>
<flag name="review"
          id="216869"
          type_id="1"
          status="-"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="217110"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>