<?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>74269</bug_id>
          
          <creation_ts>2011-12-12 00:56:58 -0800</creation_ts>
          <short_desc>Implement a cache for CSSStyleRule::selectorText()</short_desc>
          <delta_ts>2011-12-12 07:48:00 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>74004</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>macpherson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519059</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-12 00:56:58 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519079</commentid>
    <comment_count>1</comment_count>
      <attachid>118754</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-12 02:20:42 -0800</bug_when>
    <thetext>Created attachment 118754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519172</commentid>
    <comment_count>2</comment_count>
      <attachid>118782</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-12 07:09:44 -0800</bug_when>
    <thetext>Created attachment 118782
[PATCH] ChangeLog entry augmented</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519182</commentid>
    <comment_count>3</comment_count>
      <attachid>118782</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-12 07:21:07 -0800</bug_when>
    <thetext>Comment on attachment 118782
[PATCH] ChangeLog entry augmented

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

r=me, but please inline cleanup() before landing.

&gt; Source/WebCore/css/CSSStyleRule.cpp:51
&gt; +    cleanup();

I&apos;d rather we inline cleanup() here to avoid introducing a perf regression (however tiny) in document teardown.

&gt; Source/WebCore/css/CSSStyleRule.cpp:126
&gt; +    if (m_hasCachedSelectorText) {
&gt; +        ASSERT(selectorTextCache().contains(this));
&gt; +        selectorTextCache().remove(this);
&gt; +        m_hasCachedSelectorText = false;
&gt; +    }
&gt; +
&gt;      if (this-&gt;selectorText() == oldSelectorText)
&gt;          return;

We could factor this differently to reduce hash map churn (the remove() is always followed by a set().)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519192</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-12-12 07:48:00 -0800</bug_when>
    <thetext>Committed r102584: &lt;http://trac.webkit.org/changeset/102584&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118754</attachid>
            <date>2011-12-12 02:20:42 -0800</date>
            <delta_ts>2011-12-12 07:09:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74269-20111212142040.patch</filename>
            <type>text/plain</type>
            <size>4899</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2OWZhYjMxNGU4M2Ex
MGU1ZWU2MWZmOGE0NTcyYjA3M2FiNGI4Mi4uODljMjNmZTFlOGMzZGRiMWE3MTVhOTkyODQ2OGJk
ZDEwMWQ1MjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEyLTEyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IGEgY2FjaGUgZm9yIENTU1N0eWxlUnVsZTo6c2VsZWN0b3JUZXh0KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGZ1
bmN0aW9uYWxpdHkgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNz
cy9DU1NSdWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NSdWxlOjpDU1NSdWxlKToKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVs
ZTo6fkNTU1N0eWxlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpzZWxlY3RvclRleHRDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVJ1bGU6OmNsZWFudXApOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3R5bGVSdWxlOjpzZWxlY3RvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVSdWxlOjpzZXRTZWxlY3RvclRleHQpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUu
aDoKKwogMjAxMS0xMi0xMiAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAK
ICAgICAgICAgV2ViUEltYWdlRGVjb2RlcjogSW5jcmVhc2UgaW1hZ2Uvd2VicCBkZWNvZGluZyBw
ZXJmb3JtYW5jZSAxMC0yMCUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCmluZGV4IGQwNDNmNTlhZTNjMjQyZWFl
NjAyMWI2NjBlYWQ1ZDUxZWJjNjg2YTguLjQzYmI2MGMzY2RhMzI1OGQ0OTUxZGRhZTk3YTEyZTcy
MmYwMGVmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBDU1NSdWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgVHlwZSB0eXBl
KQogICAgICAgICA6IG1fc291cmNlTGluZSgwKQorICAgICAgICAsIG1faGFzQ2FjaGVkU2VsZWN0
b3JUZXh0KGZhbHNlKQogICAgICAgICAsIG1fcGFyZW50SXNSdWxlKGZhbHNlKQogICAgICAgICAs
IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fcGFyZW50U3R5bGVTaGVldChwYXJlbnQpCkBAIC0x
MjIsNyArMTIzLDggQEAgcHJvdGVjdGVkOgogICAgIH5DU1NSdWxlKCkgeyB9CiAKICAgICAvLyBP
bmx5IHVzZWQgYnkgQ1NTU3R5bGVSdWxlIGJ1dCBrZXB0IGhlcmUgdG8gbWF4aW1pemUgc3RydWN0
IHBhY2tpbmcuCi0gICAgc2lnbmVkIG1fc291cmNlTGluZSA6IDI3OworICAgIHNpZ25lZCBtX3Nv
dXJjZUxpbmUgOiAyNjsKKyAgICBtdXRhYmxlIGJvb2wgbV9oYXNDYWNoZWRTZWxlY3RvclRleHQg
OiAxOwogCiBwcml2YXRlOgogICAgIGJvb2wgbV9wYXJlbnRJc1J1bGUgOiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVSdWxlLmNwcAppbmRleCBjMzg4MjNiN2I4YmFlMmZhNDY4N2RkNDM1OGM0ODU5
ZTc1YmNiZmY0Li5iZTdhZmE0OGZjNWJmNzQwZWFmMjJkNWEwODFhNjExZDE2NzI2NWQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUg
IlN0eWxlZEVsZW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1NTU3R5
bGVSdWxlOjpDU1NTdHlsZVJ1bGUoQ1NTU3R5bGVTaGVldCogcGFyZW50LCBpbnQgc291cmNlTGlu
ZSwgQ1NTUnVsZTo6VHlwZSB0eXBlKQpAQCAtNDYsMjAgKzQ4LDQ4IEBAIENTU1N0eWxlUnVsZTo6
fkNTU1N0eWxlUnVsZSgpCiB7CiAgICAgaWYgKG1fc3R5bGUpCiAgICAgICAgIG1fc3R5bGUtPnNl
dFBhcmVudFJ1bGUoMCk7CisgICAgY2xlYW51cCgpOworfQorCit0eXBlZGVmIEhhc2hNYXA8Y29u
c3QgQ1NTU3R5bGVSdWxlKiwgU3RyaW5nPiBTZWxlY3RvclRleHRDYWNoZTsKK3N0YXRpYyBTZWxl
Y3RvclRleHRDYWNoZSYgc2VsZWN0b3JUZXh0Q2FjaGUoKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU2VsZWN0b3JUZXh0Q2FjaGUsIGNhY2hlLCAoKSk7CisgICAgcmV0dXJuIGNhY2hlOwor
fQorCit2b2lkIENTU1N0eWxlUnVsZTo6Y2xlYW51cCgpCit7CisgICAgaWYgKG1faGFzQ2FjaGVk
U2VsZWN0b3JUZXh0KSB7CisgICAgICAgIHNlbGVjdG9yVGV4dENhY2hlKCkucmVtb3ZlKHRoaXMp
OworICAgICAgICBtX2hhc0NhY2hlZFNlbGVjdG9yVGV4dCA9IGZhbHNlOworICAgIH0KIH0KIAog
U3RyaW5nIENTU1N0eWxlUnVsZTo6c2VsZWN0b3JUZXh0KCkgY29uc3QKIHsKLSAgICBpZiAoaXNQ
YWdlUnVsZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ1NTUGFnZVJ1bGUq
Pih0aGlzKS0+cGFnZVNlbGVjdG9yVGV4dCgpOworICAgIGlmIChtX2hhc0NhY2hlZFNlbGVjdG9y
VGV4dCkgeworICAgICAgICBBU1NFUlQoc2VsZWN0b3JUZXh0Q2FjaGUoKS5jb250YWlucyh0aGlz
KSk7CisgICAgICAgIHJldHVybiBzZWxlY3RvclRleHRDYWNoZSgpLmdldCh0aGlzKTsKKyAgICB9
CiAKLSAgICBTdHJpbmcgc3RyOwotICAgIGZvciAoQ1NTU2VsZWN0b3IqIHMgPSBzZWxlY3Rvckxp
c3QoKS5maXJzdCgpOyBzOyBzID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHMpKSB7Ci0gICAgICAg
IGlmIChzICE9IHNlbGVjdG9yTGlzdCgpLmZpcnN0KCkpCi0gICAgICAgICAgICBzdHIgKz0gIiwg
IjsKLSAgICAgICAgc3RyICs9IHMtPnNlbGVjdG9yVGV4dCgpOworICAgIFN0cmluZyB0ZXh0Owor
ICAgIGlmIChpc1BhZ2VSdWxlKCkpCisgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxjb25zdCBD
U1NQYWdlUnVsZSo+KHRoaXMpLT5wYWdlU2VsZWN0b3JUZXh0KCk7CisgICAgZWxzZSB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9yIChDU1NTZWxlY3RvciogcyA9
IHNlbGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQocykp
IHsKKyAgICAgICAgICAgIGlmIChzICE9IHNlbGVjdG9yTGlzdCgpLmZpcnN0KCkpCisgICAgICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChzLT5zZWxlY3RvclRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgdGV4dCA9IGJ1aWxkZXIu
dG9TdHJpbmcoKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cjsKKworICAgIEFTU0VSVCghc2VsZWN0
b3JUZXh0Q2FjaGUoKS5jb250YWlucyh0aGlzKSk7CisgICAgc2VsZWN0b3JUZXh0Q2FjaGUoKS5z
ZXQodGhpcywgdGV4dCk7CisgICAgbV9oYXNDYWNoZWRTZWxlY3RvclRleHQgPSB0cnVlOworICAg
IHJldHVybiB0ZXh0OwogfQogCiB2b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNv
bnN0IFN0cmluZyYgc2VsZWN0b3JUZXh0KQpAQCAtODUsNiArMTE1LDEzIEBAIHZvaWQgQ1NTU3R5
bGVSdWxlOjpzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCiAKICAg
ICBTdHJpbmcgb2xkU2VsZWN0b3JUZXh0ID0gdGhpcy0+c2VsZWN0b3JUZXh0KCk7CiAgICAgbV9z
ZWxlY3Rvckxpc3QuYWRvcHQoc2VsZWN0b3JMaXN0KTsKKworICAgIGlmIChtX2hhc0NhY2hlZFNl
bGVjdG9yVGV4dCkgeworICAgICAgICBBU1NFUlQoc2VsZWN0b3JUZXh0Q2FjaGUoKS5jb250YWlu
cyh0aGlzKSk7CisgICAgICAgIHNlbGVjdG9yVGV4dENhY2hlKCkucmVtb3ZlKHRoaXMpOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdG9yVGV4dCA9IGZhbHNlOworICAgIH0KKwogICAgIGlmICh0
aGlzLT5zZWxlY3RvclRleHQoKSA9PSBvbGRTZWxlY3RvclRleHQpCiAgICAgICAgIHJldHVybjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCmluZGV4IDU1NTU2NGUyM2RlOGRhZDMwNzkwNDky
NWNmNGM4YTdkYTgwN2E4YmEuLmM4ZTMzM2UwYjg1NzQ5NzM1MDgyNmE4M2YwM2MzYjkzZDU3YmI2
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKQEAgLTYxLDYgKzYxLDggQEAgcHJvdGVj
dGVkOgogICAgIENTU1N0eWxlUnVsZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIGludCBzb3VyY2VM
aW5lLCBDU1NSdWxlOjpUeXBlID0gQ1NTUnVsZTo6U1RZTEVfUlVMRSk7CiAKIHByaXZhdGU6Cisg
ICAgdm9pZCBjbGVhbnVwKCk7CisKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24+IG1fc3R5bGU7CiAgICAgQ1NTU2VsZWN0b3JMaXN0IG1fc2VsZWN0b3JMaXN0OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118782</attachid>
            <date>2011-12-12 07:09:44 -0800</date>
            <delta_ts>2011-12-12 07:21:07 -0800</delta_ts>
            <desc>[PATCH] ChangeLog entry augmented</desc>
            <filename>bug-74269-20111212190942.patch</filename>
            <type>text/plain</type>
            <size>5492</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQwOTNkNDhiNGYzNzdl
MjQyNTYwZDIwMGQ0N2ZlMzcxMDgzNTIzMy4uZjY4ZTU0YmYxNmY5NzM1N2U1MTUxNGM3NDhiZDEz
ZDJiY2E2YmYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDExLTEyLTEyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgSW1wbGVtZW50
IGEgY2FjaGUgZm9yIENTU1N0eWxlUnVsZTo6c2VsZWN0b3JUZXh0KCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjY5CisKKyAgICAgICAgVGhpcyBj
aGFuZ2UgaXMgZ2VhcmVkIHRvd2FyZHMgc3BlZWRpbmcgdXAgdGhlIENTUyBzZWxlY3RvciBwcm9m
aWxlciwKKyAgICAgICAgaXRzIGltcGxlbWVudGF0aW9uIHRyYWNrZWQgYXQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDA0LgorICAgICAgICBVc2luZyBhIHByb29m
LW9mLWNvbmNlcHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIHByb2ZpbGVyLCB0aGlzIGNoYW5nZSBy
ZWR1Y2VzCisgICAgICAgIHRoZSBwcm9maWxlciB0ZW1wb3JhbCBvdmVyaGVhZCBvbiBQZXJmb3Jt
YW5jZVRlc3RzL1BhcnNlci9odG1sNS1mdWxsLXJlbmRlci5odG1sCisgICAgICAgIHJvdWdobHkg
YnkgODYlIChmcm9tIH43MiBzZWNvbmRzIGRvd24gdG8gfjEwIHNlY29uZHMpLiBUaGlzIGNoYW5n
ZSBhbHNvIGRvZXMgbm90CisgICAgICAgIGNvbnNpZGVyYWJseSBpbmNyZWFzZSBhdmVyYWdlIG1l
bW9yeSB1c2FnZSwgYXMgcmVhZGluZyBzZWxlY3RvclRleHQgaXMgYSByZWxhdGl2ZWx5CisgICAg
ICAgIHJhcmUgY2FzZSBkdXJpbmcgbm9ybWFsIHdlYiBicm93c2luZy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFzIHRoaXMg
ZnVuY3Rpb25hbGl0eSBpcyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
Y3NzL0NTU1J1bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1J1bGU6OkNTU1J1bGUpOgorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVS
dWxlOjp+Q1NTU3R5bGVSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdG9yVGV4dENhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6Y2xlYW51cCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVJ1bGU6OnNlbGVjdG9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTdHlsZVJ1bGU6OnNldFNlbGVjdG9yVGV4dCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVs
ZS5oOgorCisyMDExLTEyLTEyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CisKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4LgogCiAgICAgICAgIFJldmVydCBy
MTAyNTcwIHdoaWNoIGJyb2tlIFNub3dMZW9wYXJkIGJ1aWxkZXJzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgK
aW5kZXggZDA0M2Y1OWFlM2MyNDJlYWU2MDIxYjY2MGVhZDVkNTFlYmM2ODZhOC4uNDNiYjYwYzNj
ZGEzMjU4ZDQ5NTFkZGFlOTdhMTJlNzIyZjAwZWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1J1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5oCkBAIC0x
MTAsNiArMTEwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIENTU1J1bGUoQ1NTU3R5bGVT
aGVldCogcGFyZW50LCBUeXBlIHR5cGUpCiAgICAgICAgIDogbV9zb3VyY2VMaW5lKDApCisgICAg
ICAgICwgbV9oYXNDYWNoZWRTZWxlY3RvclRleHQoZmFsc2UpCiAgICAgICAgICwgbV9wYXJlbnRJ
c1J1bGUoZmFsc2UpCiAgICAgICAgICwgbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9wYXJlbnRT
dHlsZVNoZWV0KHBhcmVudCkKQEAgLTEyMiw3ICsxMjMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgfkNT
U1J1bGUoKSB7IH0KIAogICAgIC8vIE9ubHkgdXNlZCBieSBDU1NTdHlsZVJ1bGUgYnV0IGtlcHQg
aGVyZSB0byBtYXhpbWl6ZSBzdHJ1Y3QgcGFja2luZy4KLSAgICBzaWduZWQgbV9zb3VyY2VMaW5l
IDogMjc7CisgICAgc2lnbmVkIG1fc291cmNlTGluZSA6IDI2OworICAgIG11dGFibGUgYm9vbCBt
X2hhc0NhY2hlZFNlbGVjdG9yVGV4dCA6IDE7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX3BhcmVu
dElzUnVsZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCmluZGV4IGMzODgyM2I3
YjhiYWUyZmE0Njg3ZGQ0MzU4YzQ4NTllNzViY2JmZjQuLmJlN2FmYTQ4ZmM1YmY3NDBlYWYyMmQ1
YTA4MWE2MTFkMTY3MjY1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuY3BwCkBAIC0z
MSw2ICszMSw4IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIlN0eWxl
U2hlZXQuaCIKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBDU1NTdHlsZVJ1bGU6OkNTU1N0eWxlUnVsZShDU1NTdHlsZVNoZWV0
KiBwYXJlbnQsIGludCBzb3VyY2VMaW5lLCBDU1NSdWxlOjpUeXBlIHR5cGUpCkBAIC00NiwyMCAr
NDgsNDggQEAgQ1NTU3R5bGVSdWxlOjp+Q1NTU3R5bGVSdWxlKCkKIHsKICAgICBpZiAobV9zdHls
ZSkKICAgICAgICAgbV9zdHlsZS0+c2V0UGFyZW50UnVsZSgwKTsKKyAgICBjbGVhbnVwKCk7Cit9
CisKK3R5cGVkZWYgSGFzaE1hcDxjb25zdCBDU1NTdHlsZVJ1bGUqLCBTdHJpbmc+IFNlbGVjdG9y
VGV4dENhY2hlOworc3RhdGljIFNlbGVjdG9yVGV4dENhY2hlJiBzZWxlY3RvclRleHRDYWNoZSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTZWxlY3RvclRleHRDYWNoZSwgY2FjaGUsICgp
KTsKKyAgICByZXR1cm4gY2FjaGU7Cit9CisKK3ZvaWQgQ1NTU3R5bGVSdWxlOjpjbGVhbnVwKCkK
K3sKKyAgICBpZiAobV9oYXNDYWNoZWRTZWxlY3RvclRleHQpIHsKKyAgICAgICAgc2VsZWN0b3JU
ZXh0Q2FjaGUoKS5yZW1vdmUodGhpcyk7CisgICAgICAgIG1faGFzQ2FjaGVkU2VsZWN0b3JUZXh0
ID0gZmFsc2U7CisgICAgfQogfQogCiBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpzZWxlY3RvclRleHQo
KSBjb25zdAogewotICAgIGlmIChpc1BhZ2VSdWxlKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBDU1NQYWdlUnVsZSo+KHRoaXMpLT5wYWdlU2VsZWN0b3JUZXh0KCk7CisgICAg
aWYgKG1faGFzQ2FjaGVkU2VsZWN0b3JUZXh0KSB7CisgICAgICAgIEFTU0VSVChzZWxlY3RvclRl
eHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yVGV4dENh
Y2hlKCkuZ2V0KHRoaXMpOworICAgIH0KIAotICAgIFN0cmluZyBzdHI7Ci0gICAgZm9yIChDU1NT
ZWxlY3RvciogcyA9IHNlbGVjdG9yTGlzdCgpLmZpcnN0KCk7IHM7IHMgPSBDU1NTZWxlY3Rvckxp
c3Q6Om5leHQocykpIHsKLSAgICAgICAgaWYgKHMgIT0gc2VsZWN0b3JMaXN0KCkuZmlyc3QoKSkK
LSAgICAgICAgICAgIHN0ciArPSAiLCAiOwotICAgICAgICBzdHIgKz0gcy0+c2VsZWN0b3JUZXh0
KCk7CisgICAgU3RyaW5nIHRleHQ7CisgICAgaWYgKGlzUGFnZVJ1bGUoKSkKKyAgICAgICAgdGV4
dCA9IHN0YXRpY19jYXN0PGNvbnN0IENTU1BhZ2VSdWxlKj4odGhpcyktPnBhZ2VTZWxlY3RvclRl
eHQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAg
ICBmb3IgKENTU1NlbGVjdG9yKiBzID0gc2VsZWN0b3JMaXN0KCkuZmlyc3QoKTsgczsgcyA9IENT
U1NlbGVjdG9yTGlzdDo6bmV4dChzKSkgeworICAgICAgICAgICAgaWYgKHMgIT0gc2VsZWN0b3JM
aXN0KCkuZmlyc3QoKSkKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHMtPnNlbGVjdG9yVGV4dCgpKTsKKyAgICAgICAgfQor
ICAgICAgICB0ZXh0ID0gYnVpbGRlci50b1N0cmluZygpOwogICAgIH0KLSAgICByZXR1cm4gc3Ry
OworCisgICAgQVNTRVJUKCFzZWxlY3RvclRleHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKKyAg
ICBzZWxlY3RvclRleHRDYWNoZSgpLnNldCh0aGlzLCB0ZXh0KTsKKyAgICBtX2hhc0NhY2hlZFNl
bGVjdG9yVGV4dCA9IHRydWU7CisgICAgcmV0dXJuIHRleHQ7CiB9CiAKIHZvaWQgQ1NTU3R5bGVS
dWxlOjpzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCkBAIC04NSw2
ICsxMTUsMTMgQEAgdm9pZCBDU1NTdHlsZVJ1bGU6OnNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJp
bmcmIHNlbGVjdG9yVGV4dCkKIAogICAgIFN0cmluZyBvbGRTZWxlY3RvclRleHQgPSB0aGlzLT5z
ZWxlY3RvclRleHQoKTsKICAgICBtX3NlbGVjdG9yTGlzdC5hZG9wdChzZWxlY3Rvckxpc3QpOwor
CisgICAgaWYgKG1faGFzQ2FjaGVkU2VsZWN0b3JUZXh0KSB7CisgICAgICAgIEFTU0VSVChzZWxl
Y3RvclRleHRDYWNoZSgpLmNvbnRhaW5zKHRoaXMpKTsKKyAgICAgICAgc2VsZWN0b3JUZXh0Q2Fj
aGUoKS5yZW1vdmUodGhpcyk7CisgICAgICAgIG1faGFzQ2FjaGVkU2VsZWN0b3JUZXh0ID0gZmFs
c2U7CisgICAgfQorCiAgICAgaWYgKHRoaXMtPnNlbGVjdG9yVGV4dCgpID09IG9sZFNlbGVjdG9y
VGV4dCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKaW5kZXgg
NTU1NTY0ZTIzZGU4ZGFkMzA3OTA0OTI1Y2Y0YzhhN2RhODA3YThiYS4uYzhlMzMzZTBiODU3NDk3
MzUwODI2YTgzZjAzYzNiOTNkNTdiYjZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaApA
QCAtNjEsNiArNjEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgQ1NTU3R5bGVSdWxlKENTU1N0eWxlU2hl
ZXQqIHBhcmVudCwgaW50IHNvdXJjZUxpbmUsIENTU1J1bGU6OlR5cGUgPSBDU1NSdWxlOjpTVFlM
RV9SVUxFKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFudXAoKTsKKwogICAgIFJlZlB0cjxD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9zdHlsZTsKICAgICBDU1NTZWxlY3Rvckxpc3Qg
bV9zZWxlY3Rvckxpc3Q7CiB9Owo=
</data>
<flag name="review"
          id="118624"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="118627"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>