<?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>136957</bug_id>
          
          <creation_ts>2014-09-19 11:37:40 -0700</creation_ts>
          <short_desc>Minimize virtual function calls in MarkupAccumulator</short_desc>
          <delta_ts>2014-09-19 17:12:04 -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>DOM</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1036173</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-19 11:37:40 -0700</bug_when>
    <thetext>We can minimize the number of virtual function calls in MarkupAccumulator by:
- De-virtualizing MarkupAccumulator::appendString(), which is never overridden
- Having MarkupAccumulator::appendEndTag() take an Element in argument instead of a Node, as it only applies to Element. This will force callers to do the isElementNode() check *before* calling the virtual function, instead of calling appendEndTag() unconditionally and have it return early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036174</commentid>
    <comment_count>1</comment_count>
      <attachid>238380</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-19 11:40:33 -0700</bug_when>
    <thetext>Created attachment 238380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036197</commentid>
    <comment_count>2</comment_count>
      <attachid>238380</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-19 13:19:38 -0700</bug_when>
    <thetext>Comment on attachment 238380
Patch

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

&gt; Source/WebCore/page/PageSerializer.cpp:109
&gt; -    virtual void appendEndTag(const Node&amp;) override;
&gt; +    virtual void appendEndTag(const Element&amp;) override;

Instead of adding isElementNode() everywhere, you could have:
inline void appendEndTag(Node&amp; node) {
    if (node.isElementNode())
        appendEndTag(toElement(node));   
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036236</commentid>
    <comment_count>3</comment_count>
      <attachid>238396</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-19 16:25:30 -0700</bug_when>
    <thetext>Created attachment 238396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036248</commentid>
    <comment_count>4</comment_count>
      <attachid>238396</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-19 17:11:57 -0700</bug_when>
    <thetext>Comment on attachment 238396
Patch

Clearing flags on attachment: 238396

Committed r173783: &lt;http://trac.webkit.org/changeset/173783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036249</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-19 17:12:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238380</attachid>
            <date>2014-09-19 11:40:33 -0700</date>
            <delta_ts>2014-09-19 16:25:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136957-20140919114031.patch</filename>
            <type>text/plain</type>
            <size>9391</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ3NzYxYWIzMzY3YWRi
YjlhM2I3OWYyYjc4MGVjZjYwZTk2MzVmMy4uOWRlOGM4Y2Y5MzFiOWFkNjE1OGI2NmRiNjM0Yjk3
ZjAwODM5NGIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE0LTA5LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWluaW1pemUgdmlydHVhbCBm
dW5jdGlvbiBjYWxscyBpbiBNYXJrdXBBY2N1bXVsYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaW5pbWl6ZXMgdGhlIG51bWJl
ciBvZiB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxzIGluCisgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9y
IGJ5OgorICAgICAgICAtIERlLXZpcnR1YWxpemluZyBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5k
U3RyaW5nKCksIHdoaWNoIGlzIG5ldmVyCisgICAgICAgICAgb3ZlcnJpZGRlbgorICAgICAgICAt
IEhhdmluZyBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKCkgdGFrZSBhbiBFbGVtZW50
IGluIGFyZ3VtZW50CisgICAgICAgICAgaW5zdGVhZCBvZiBhIE5vZGUsIGFzIGl0IG9ubHkgYXBw
bGllcyB0byBFbGVtZW50LiBUaGlzIHdpbGwgZm9yY2UKKyAgICAgICAgICBjYWxsZXJzIHRvIGRv
IHRoZSBpc0VsZW1lbnROb2RlKCkgY2hlY2sgKmJlZm9yZSogY2FsbGluZyB0aGUgdmlydHVhbAor
ICAgICAgICAgIGZ1bmN0aW9uLCBpbnN0ZWFkIG9mIGNhbGxpbmcgYXBwZW5kRW5kVGFnKCkgdW5j
b25kaXRpb25hbGx5IGFuZCBoYXZlCisgICAgICAgICAgaXQgcmV0dXJuIGVhcmx5LgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogZWRpdGlu
Zy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVs
YXRvcjo6c2VyaWFsaXplTm9kZXNXaXRoTmFtZXNwYWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1
cEFjY3VtdWxhdG9yOjpzaG91bGRTZWxmQ2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TWFya3Vw
QWNjdW11bGF0b3I6OmFwcGVuZEVuZE1hcmt1cCk6CisgICAgICAgICogZWRpdGluZy9NYXJrdXBB
Y2N1bXVsYXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnRyYXZlcnNlTm9kZXNGb3JTZXJpYWxp
emF0aW9uKToKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKToKKworMjAx
NC0wOS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIE9wdGlt
aXplIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KCkKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjkzNQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IDk5YmI5OTA3ODdkOWQ1NzBhODA4N2Y2
ODkyOGJmZTkyYmJkMjIxNTQuLmI1ODNhNjU4ZTk4ZTAxNDY2NDA2ZTY0YzQzZWIwMWE5YjU5YWJk
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCkBA
IC0xNjgsOCArMTY4LDggQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFsaXplTm9kZXNX
aXRoTmFtZXNwYWNlcyhOb2RlJiB0YXJnZXROb2RlLCBOb2RlKiBub2QKICAgICAgICAgICAgIHNl
cmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoKmN1cnJlbnQsIG5vZGVUb1NraXAsIEluY2x1ZGVO
b2RlLCAmbmFtZXNwYWNlSGFzaCwgdGFnTmFtZXNUb1NraXApOwogICAgIH0KIAotICAgIGlmICgh
Y2hpbGRyZW5Pbmx5KQotICAgICAgICBhcHBlbmRFbmRUYWcodGFyZ2V0Tm9kZSk7CisgICAgaWYg
KCFjaGlsZHJlbk9ubHkgJiYgdGFyZ2V0Tm9kZS5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIGFw
cGVuZEVuZFRhZyh0b0VsZW1lbnQodGFyZ2V0Tm9kZSkpOwogfQogCiBTdHJpbmcgTWFya3VwQWNj
dW11bGF0b3I6OnJlc29sdmVVUkxJZk5lZWRlZChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZykgY29uc3QKQEAgLTIwMSw5ICsyMDEsOSBAQCB2b2lkIE1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRTdGFydFRhZyhjb25zdCBOb2RlJiBub2RlLCBOYW1lc3BhY2Vz
KiBuYW1lc3BhY2VzKQogICAgICAgICBtX25vZGVzLT5hcHBlbmQoY29uc3RfY2FzdDxOb2RlKj4o
Jm5vZGUpKTsKIH0KIAotdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0
IE5vZGUmIG5vZGUpCit2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBhcHBlbmRFbmRNYXJrdXAobV9tYXJrdXAsIG5vZGUp
OworICAgIGFwcGVuZEVuZE1hcmt1cChtX21hcmt1cCwgZWxlbWVudCk7CiB9CiAKIHNpemVfdCBN
YXJrdXBBY2N1bXVsYXRvcjo6dG90YWxMZW5ndGgoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmlu
Z3MpCkBAIC01OTAsMTMgKzU5MCwxMyBAQCB2b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRT
dGFydE1hcmt1cChTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IE5vZGUmIG5vZAogLy8gMi4g
RWxlbWVudHMgdy8gY2hpbGRyZW4gbmV2ZXIgc2VsZi1jbG9zZSBiZWNhdXNlIHRoZXkgdXNlIGEg
c2VwYXJhdGUgZW5kIHRhZy4KIC8vIDMuIEhUTUwgZWxlbWVudHMgd2hpY2ggZG8gbm90IGhhdmUg
YSAiZm9yYmlkZGVuIiBlbmQgdGFnIHdpbGwgY2xvc2Ugd2l0aCBhIHNlcGFyYXRlIGVuZCB0YWcu
CiAvLyA0LiBPdGhlciBlbGVtZW50cyBzZWxmLWNsb3NlLgotYm9vbCBNYXJrdXBBY2N1bXVsYXRv
cjo6c2hvdWxkU2VsZkNsb3NlKGNvbnN0IE5vZGUmIG5vZGUpCitib29sIE1hcmt1cEFjY3VtdWxh
dG9yOjpzaG91bGRTZWxmQ2xvc2UoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAo
IWluWE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKCkgJiYgbm9kZS5kb2N1bWVudCgpLmlzSFRNTERv
Y3VtZW50KCkpCisgICAgaWYgKCFpblhNTEZyYWdtZW50U2VyaWFsaXphdGlvbigpICYmIGVsZW1l
bnQuZG9jdW1lbnQoKS5pc0hUTUxEb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKG5vZGUuaGFzQ2hpbGROb2RlcygpKQorICAgIGlmIChlbGVtZW50Lmhhc0NoaWxkTm9k
ZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChub2RlLmlzSFRNTEVsZW1lbnQo
KSAmJiAhZWxlbWVudENhbm5vdEhhdmVFbmRUYWcobm9kZSkpCisgICAgaWYgKGVsZW1lbnQuaXNI
VE1MRWxlbWVudCgpICYmICFlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjEzLDE0ICs2MTMsMTQg
QEAgYm9vbCBNYXJrdXBBY2N1bXVsYXRvcjo6ZWxlbWVudENhbm5vdEhhdmVFbmRUYWcoY29uc3Qg
Tm9kZSYgbm9kZSkKICAgICByZXR1cm4gdG9IVE1MRWxlbWVudChub2RlKS5pZUZvcmJpZHNJbnNl
cnRIVE1MKCk7CiB9CiAKLXZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZE1hcmt1cChT
dHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IE5vZGUmIG5vZGUpCit2b2lkIE1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRFbmRNYXJrdXAoU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBjb25zdCBFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIGlmICghbm9kZS5pc0VsZW1lbnROb2RlKCkgfHwgc2hvdWxk
U2VsZkNsb3NlKG5vZGUpIHx8ICghbm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgZWxlbWVudENhbm5v
dEhhdmVFbmRUYWcobm9kZSkpKQorICAgIGlmIChzaG91bGRTZWxmQ2xvc2UoZWxlbWVudCkgfHwg
KCFlbGVtZW50Lmhhc0NoaWxkTm9kZXMoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhlbGVt
ZW50KSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlc3VsdC5hcHBlbmQoJzwnKTsKICAgICBy
ZXN1bHQuYXBwZW5kKCcvJyk7Ci0gICAgcmVzdWx0LmFwcGVuZCh0b0VsZW1lbnQobm9kZSkubm9k
ZU5hbWVQcmVzZXJ2aW5nQ2FzZSgpKTsKKyAgICByZXN1bHQuYXBwZW5kKGVsZW1lbnQubm9kZU5h
bWVQcmVzZXJ2aW5nQ2FzZSgpKTsKICAgICByZXN1bHQuYXBwZW5kKCc+Jyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaAppbmRleCAyYzNlZTAxMzkxMGQ5
ZGNhYTg2NmM3YmUxOTBhNjRhMzk5OTkxZTAyLi43NDQ1OWMyYmU5N2Q2Yzg1NDY1ZTMwY2I1MTZm
NWY2MjE3OWYzYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRv
ci5oCkBAIC03Miw4ICs3Miw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY29uY2F0ZW5hdGVN
YXJrdXAoU3RyaW5nQnVpbGRlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIGFwcGVuZFN0cmluZyhj
b25zdCBTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IE5vZGUm
KTsKKyAgICB2b2lkIGFwcGVuZFN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
Q3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiwgY29uc3QgRWxlbWVudCYsIE5hbWVzcGFj
ZXMqKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiwgY29uc3Qg
VGV4dCYpOwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImLCBj
b25zdCBFbGVtZW50JiwgTmFtZXNwYWNlcyopOwpAQCAtODQsNyArODQsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBhcHBlbmRDbG9zZVRhZyhTdHJpbmdCdWlsZGVyJiwgY29uc3QgRWxlbWVudCYp
OwogCiAgICAgdm9pZCBhcHBlbmRTdGFydE1hcmt1cChTdHJpbmdCdWlsZGVyJiwgY29uc3QgTm9k
ZSYsIE5hbWVzcGFjZXMqKTsKLSAgICB2b2lkIGFwcGVuZEVuZE1hcmt1cChTdHJpbmdCdWlsZGVy
JiwgY29uc3QgTm9kZSYpOworICAgIHZvaWQgYXBwZW5kRW5kTWFya3VwKFN0cmluZ0J1aWxkZXIm
LCBjb25zdCBFbGVtZW50Jik7CiAKICAgICB2b2lkIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKFN0cmlu
Z0J1aWxkZXImLCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2b2lkIGFwcGVuZE5hbWVzcGFj
ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZXNwYWNlVVJJLCBOYW1lc3BhY2VzJiwgYm9vbCBhbGxvd0VtcHR5RGVmYXVs
dE5TID0gZmFsc2UpOwpAQCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIHNo
b3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQoY29uc3QgRWxlbWVudCYpOwogICAgIGJvb2wgc2hvdWxk
QWRkTmFtZXNwYWNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYsIE5hbWVzcGFjZXMmKTsKLSAg
ICBib29sIHNob3VsZFNlbGZDbG9zZShjb25zdCBOb2RlJik7CisgICAgYm9vbCBzaG91bGRTZWxm
Q2xvc2UoY29uc3QgRWxlbWVudCYpOwogICAgIGJvb2wgZWxlbWVudENhbm5vdEhhdmVFbmRUYWco
Y29uc3QgTm9kZSYpOwogICAgIEVudGl0eU1hc2sgZW50aXR5TWFza0ZvclRleHQoY29uc3QgVGV4
dCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNmMyMmJmZTI4YTEw
NGViYWYxNTQ2MDFkZmU4Yzk4ODliMmYyMWVkZC4uOWVmMGIwOTZiNTk0YWI0OTdjOTY2MmQ1NmEz
NGMwN2JlMTI1MTJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMTg2LDcgKzE4
Niw4IEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OndyYXBXaXRoTm9kZShOb2RlJiBu
b2RlLCBib29sIGNvbnZlcnRCbG9ja3NUb0lubGluCiAgICAgZWxzZQogICAgICAgICBhcHBlbmRT
dGFydE1hcmt1cChtYXJrdXAsIG5vZGUsIDApOwogICAgIG1fcmV2ZXJzZWRQcmVjZWRpbmdNYXJr
dXAuYXBwZW5kKG1hcmt1cC50b1N0cmluZygpKTsKLSAgICBhcHBlbmRFbmRUYWcobm9kZSk7Cisg
ICAgaWYgKG5vZGUuaXNFbGVtZW50Tm9kZSgpKQorICAgICAgICBhcHBlbmRFbmRUYWcodG9FbGVt
ZW50KG5vZGUpKTsKICAgICBpZiAobV9ub2RlcykKICAgICAgICAgbV9ub2Rlcy0+YXBwZW5kKCZu
b2RlKTsKIH0KQEAgLTQwMCw4ICs0MDEsOCBAQCBOb2RlKiBTdHlsZWRNYXJrdXBBY2N1bXVsYXRv
cjo6dHJhdmVyc2VOb2Rlc0ZvclNlcmlhbGl6YXRpb24oTm9kZSogc3RhcnROb2RlLCBObwogCiAg
ICAgICAgICAgICAvLyBJZiBub2RlIGhhcyBubyBjaGlsZHJlbiwgY2xvc2UgdGhlIHRhZyBub3cu
CiAgICAgICAgICAgICBpZiAoIW4tPmhhc0NoaWxkTm9kZXMoKSkgewotICAgICAgICAgICAgICAg
IGlmIChzaG91bGRFbWl0KQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRFbmRUYWcoKm4pOwor
ICAgICAgICAgICAgICAgIGlmIChzaG91bGRFbWl0ICYmIG4tPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgICAgICAgICAgICAgYXBwZW5kRW5kVGFnKHRvRWxlbWVudCgqbikpOwogICAgICAgICAg
ICAgICAgIGxhc3RDbG9zZWQgPSBuOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBvcGVuZWRUYWcgPSB0cnVlOwpAQCAtNDE4LDggKzQxOSw4IEBAIE5vZGUqIFN0eWxlZE1h
cmt1cEFjY3VtdWxhdG9yOjp0cmF2ZXJzZU5vZGVzRm9yU2VyaWFsaXphdGlvbihOb2RlKiBzdGFy
dE5vZGUsIE5vCiAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT0gcGFzdEVuZCAmJiBuZXh0LT5p
c0Rlc2NlbmRhbnRPZihhbmNlc3RvcikpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIC8vIE5vdCBhdCB0aGUgZW5kIG9mIHRoZSByYW5nZSwgY2xvc2UgYW5jZXN0
b3JzIHVwIHRvIHNpYmxpbmcgb2YgbmV4dCBub2RlLgotICAgICAgICAgICAgICAgIGlmIChzaG91
bGRFbWl0KQotICAgICAgICAgICAgICAgICAgICBhcHBlbmRFbmRUYWcoKmFuY2VzdG9yKTsKKyAg
ICAgICAgICAgICAgICBpZiAoc2hvdWxkRW1pdCAmJiBhbmNlc3Rvci0+aXNFbGVtZW50Tm9kZSgp
KQorICAgICAgICAgICAgICAgICAgICBhcHBlbmRFbmRUYWcodG9FbGVtZW50KCphbmNlc3Rvcikp
OwogICAgICAgICAgICAgICAgIGxhc3RDbG9zZWQgPSBhbmNlc3RvcjsKICAgICAgICAgICAgICAg
ICBhbmNlc3RvcnNUb0Nsb3NlLnJlbW92ZUxhc3QoKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggNDNjNGU3ZWY4N2NkN2Q3NzZmMzE0NDM2
ZjA4NDdjYTllYThhMTA5MS4uNmVhMGNkYWEwOWNlZTZlNjUwMmIyYzk4YzMxMGMxNjg2ZGRjZWNh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXIm
LCBjb25zdCBUZXh0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZEVsZW1lbnQo
U3RyaW5nQnVpbGRlciYsIGNvbnN0IEVsZW1lbnQmLCBOYW1lc3BhY2VzKikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYsIGNv
bnN0IEVsZW1lbnQmLCBOYW1lc3BhY2VzKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFw
cGVuZEVuZFRhZyhjb25zdCBOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVu
ZEVuZFRhZyhjb25zdCBFbGVtZW50Jikgb3ZlcnJpZGU7CiB9OwogCiBTZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYg
c2VyaWFsaXplciwgRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8Tm9kZSo+KiBub2RlcykKQEAg
LTE2MywxMCArMTYzLDEwIEBAIHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uCiAgICAgYXBwZW5kQXR0
cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRlKGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVOYW1l
KGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBuYW1lc3BhY2VzKTsKIH0KIAotdm9pZCBTZXJp
YWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBOb2RlJiBub2RlKQor
dm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIGlmIChub2RlLmlzRWxlbWVudE5vZGUoKSAmJiAhc2hvdWxk
SWdub3JlRWxlbWVudCh0b0VsZW1lbnQobm9kZSkpKQotICAgICAgICBNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kRW5kVGFnKG5vZGUpOworICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVudChlbGVt
ZW50KSkKKyAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhlbGVtZW50KTsK
IH0KIAogUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238396</attachid>
            <date>2014-09-19 16:25:30 -0700</date>
            <delta_ts>2014-09-19 17:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136957-20140919162528.patch</filename>
            <type>text/plain</type>
            <size>7331</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBjYTkwYjA4MjM2Yzgw
YWIxZjc0MzI2ODgyYTQ1MjFiNjk3ZjZjOC4uODhiODQ2YzFjM2FiOTU0OWQ4YTQwNTliMTJkNTFl
NDU5ODRlOTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTA5LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWluaW1pemUgdmlydHVhbCBm
dW5jdGlvbiBjYWxscyBpbiBNYXJrdXBBY2N1bXVsYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICBUaGlzIHBhdGNoIG1pbmltaXplcyB0aGUgbnVt
YmVyIG9mIHZpcnR1YWwgZnVuY3Rpb24gY2FsbHMgaW4KKyAgICAgICAgTWFya3VwQWNjdW11bGF0
b3IgYnk6CisgICAgICAgIC0gRGUtdmlydHVhbGl6aW5nIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRTdHJpbmcoKSwgd2hpY2ggaXMgbmV2ZXIKKyAgICAgICAgICBvdmVycmlkZGVuCisgICAgICAg
IC0gSGF2aW5nIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoKSB2aXJ0dWFsIGZ1bmN0
aW9uIHRha2UgYW4KKyAgICAgICAgICBFbGVtZW50IGluIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBO
b2RlLCBhcyBpdCBvbmx5IGFwcGxpZXMgdG8gRWxlbWVudC4KKyAgICAgICAgICBBbHNvIGFkZCBh
IG5vbi12aXJ0dWFsIG92ZXJsb2FkIHRoYXQgdGFrZXMgYSBOb2RlIGluIGFyZ3VtZW50IGFuZAor
ICAgICAgICAgIHRoYXQgZG9lcyB0aGUgaXNFbGVtZW50Tm9kZSgpIGNoZWNrIHNvIHRoYXQgd2Ug
ZG9uJ3QgbmVlZCB0byBleHBsaWNpdGx5CisgICAgICAgICAgZG8gdGhlIGNoZWNrIGF0IGVhY2gg
Y2FsbCBzaXRlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1hcmt1cEFjY3VtdWxhdG9yOjpzaG91bGRTZWxmQ2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6
TWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZE1hcmt1cCk6CisgICAgICAgICogZWRpdGluZy9N
YXJrdXBBY2N1bXVsYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEVuZFRhZyk6CisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyk6
CisKIDIwMTQtMDktMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBidWlsZCBmaXg7IHBhc3MgZHVyYXRpb24gaW50byB0aGUgbGFtYmRhLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCA5OWJi
OTkwNzg3ZDlkNTcwYTgwODdmNjg5MjhiZmU5MmJiZDIyMTU0Li4yMTVhYTdhZWUyMDVlMmU1OGY3
YTdjZTMxYzJmMjNjNTE5NjZmMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1
cEFjY3VtdWxhdG9yLmNwcApAQCAtMjAxLDkgKzIwMSw5IEBAIHZvaWQgTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZFN0YXJ0VGFnKGNvbnN0IE5vZGUmIG5vZGUsIE5hbWVzcGFjZXMqIG5hbWVzcGFj
ZXMpCiAgICAgICAgIG1fbm9kZXMtPmFwcGVuZChjb25zdF9jYXN0PE5vZGUqPigmbm9kZSkpOwog
fQogCi12b2lkIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgTm9kZSYgbm9k
ZSkKK3ZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50JiBl
bGVtZW50KQogewotICAgIGFwcGVuZEVuZE1hcmt1cChtX21hcmt1cCwgbm9kZSk7CisgICAgYXBw
ZW5kRW5kTWFya3VwKG1fbWFya3VwLCBlbGVtZW50KTsKIH0KIAogc2l6ZV90IE1hcmt1cEFjY3Vt
dWxhdG9yOjp0b3RhbExlbmd0aChjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKQEAgLTU5
MCwxMyArNTkwLDEzIEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0YXJ0TWFya3Vw
KFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgTm9kZSYgbm9kCiAvLyAyLiBFbGVtZW50cyB3
LyBjaGlsZHJlbiBuZXZlciBzZWxmLWNsb3NlIGJlY2F1c2UgdGhleSB1c2UgYSBzZXBhcmF0ZSBl
bmQgdGFnLgogLy8gMy4gSFRNTCBlbGVtZW50cyB3aGljaCBkbyBub3QgaGF2ZSBhICJmb3JiaWRk
ZW4iIGVuZCB0YWcgd2lsbCBjbG9zZSB3aXRoIGEgc2VwYXJhdGUgZW5kIHRhZy4KIC8vIDQuIE90
aGVyIGVsZW1lbnRzIHNlbGYtY2xvc2UuCi1ib29sIE1hcmt1cEFjY3VtdWxhdG9yOjpzaG91bGRT
ZWxmQ2xvc2UoY29uc3QgTm9kZSYgbm9kZSkKK2Jvb2wgTWFya3VwQWNjdW11bGF0b3I6OnNob3Vs
ZFNlbGZDbG9zZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmICghaW5YTUxGcmFn
bWVudFNlcmlhbGl6YXRpb24oKSAmJiBub2RlLmRvY3VtZW50KCkuaXNIVE1MRG9jdW1lbnQoKSkK
KyAgICBpZiAoIWluWE1MRnJhZ21lbnRTZXJpYWxpemF0aW9uKCkgJiYgZWxlbWVudC5kb2N1bWVu
dCgpLmlzSFRNTERvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobm9k
ZS5oYXNDaGlsZE5vZGVzKCkpCisgICAgaWYgKGVsZW1lbnQuaGFzQ2hpbGROb2RlcygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG5vZGUuaXNIVE1MRWxlbWVudCgpICYmICFlbGVt
ZW50Q2Fubm90SGF2ZUVuZFRhZyhub2RlKSkKKyAgICBpZiAoZWxlbWVudC5pc0hUTUxFbGVtZW50
KCkgJiYgIWVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02MTMsMTQgKzYxMywxNCBAQCBib29sIE1h
cmt1cEFjY3VtdWxhdG9yOjplbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhjb25zdCBOb2RlJiBub2Rl
KQogICAgIHJldHVybiB0b0hUTUxFbGVtZW50KG5vZGUpLmllRm9yYmlkc0luc2VydEhUTUwoKTsK
IH0KIAotdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kTWFya3VwKFN0cmluZ0J1aWxk
ZXImIHJlc3VsdCwgY29uc3QgTm9kZSYgbm9kZSkKK3ZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFw
cGVuZEVuZE1hcmt1cChTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpCiB7Ci0gICAgaWYgKCFub2RlLmlzRWxlbWVudE5vZGUoKSB8fCBzaG91bGRTZWxmQ2xvc2Uo
bm9kZSkgfHwgKCFub2RlLmhhc0NoaWxkTm9kZXMoKSAmJiBlbGVtZW50Q2Fubm90SGF2ZUVuZFRh
Zyhub2RlKSkpCisgICAgaWYgKHNob3VsZFNlbGZDbG9zZShlbGVtZW50KSB8fCAoIWVsZW1lbnQu
aGFzQ2hpbGROb2RlcygpICYmIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGVsZW1lbnQpKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgcmVzdWx0LmFwcGVuZCgnPCcpOwogICAgIHJlc3VsdC5hcHBl
bmQoJy8nKTsKLSAgICByZXN1bHQuYXBwZW5kKHRvRWxlbWVudChub2RlKS5ub2RlTmFtZVByZXNl
cnZpbmdDYXNlKCkpOworICAgIHJlc3VsdC5hcHBlbmQoZWxlbWVudC5ub2RlTmFtZVByZXNlcnZp
bmdDYXNlKCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJz4nKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5oCmluZGV4IDJjM2VlMDEzOTEwZDlkY2FhODY2Yzdi
ZTE5MGE2NGEzOTk5OTFlMDIuLmZjZjA1ZWJhYjg4MjAwY2RlMDViNTQ5MzhlNzk0MzcxMWQ2NmQ5
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgTWFya3VwQWNjdW11bGF0b3JfaAogI2RlZmluZSBNYXJrdXBB
Y2N1bXVsYXRvcl9oCiAKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CkBAIC03Miw4ICs3MywxNCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNvbmNhdGVu
YXRlTWFya3VwKFN0cmluZ0J1aWxkZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRTdHJp
bmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZEVuZFRhZyhjb25zdCBO
b2RlJik7CisgICAgdm9pZCBhcHBlbmRTdHJpbmcoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBh
cHBlbmRFbmRUYWcoY29uc3QgTm9kZSYgbm9kZSkKKyAgICB7CisgICAgICAgIGlmIChub2RlLmlz
RWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgIGFwcGVuZEVuZFRhZyh0b0VsZW1lbnQobm9kZSkp
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYp
OwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXIm
LCBjb25zdCBFbGVtZW50JiwgTmFtZXNwYWNlcyopOwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRU
ZXh0KFN0cmluZ0J1aWxkZXImLCBjb25zdCBUZXh0Jik7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVu
ZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYsIGNvbnN0IEVsZW1lbnQmLCBOYW1lc3BhY2VzKik7CkBA
IC04NCw3ICs5MSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGVuZENsb3NlVGFnKFN0cmlu
Z0J1aWxkZXImLCBjb25zdCBFbGVtZW50Jik7CiAKICAgICB2b2lkIGFwcGVuZFN0YXJ0TWFya3Vw
KFN0cmluZ0J1aWxkZXImLCBjb25zdCBOb2RlJiwgTmFtZXNwYWNlcyopOwotICAgIHZvaWQgYXBw
ZW5kRW5kTWFya3VwKFN0cmluZ0J1aWxkZXImLCBjb25zdCBOb2RlJik7CisgICAgdm9pZCBhcHBl
bmRFbmRNYXJrdXAoU3RyaW5nQnVpbGRlciYsIGNvbnN0IEVsZW1lbnQmKTsKIAogICAgIHZvaWQg
YXBwZW5kQXR0cmlidXRlVmFsdWUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFN0cmluZyYsIGJvb2wp
OwogICAgIHZvaWQgYXBwZW5kTmFtZXNwYWNlKFN0cmluZ0J1aWxkZXImLCBjb25zdCBBdG9taWNT
dHJpbmcmIHByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIE5hbWVzcGFj
ZXMmLCBib29sIGFsbG93RW1wdHlEZWZhdWx0TlMgPSBmYWxzZSk7CkBAIC05Niw3ICsxMDMsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIHNob3VsZEFkZE5hbWVzcGFjZUVsZW1lbnQoY29uc3Qg
RWxlbWVudCYpOwogICAgIGJvb2wgc2hvdWxkQWRkTmFtZXNwYWNlQXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYsIE5hbWVzcGFjZXMmKTsKLSAgICBib29sIHNob3VsZFNlbGZDbG9zZShjb25zdCBO
b2RlJik7CisgICAgYm9vbCBzaG91bGRTZWxmQ2xvc2UoY29uc3QgRWxlbWVudCYpOwogICAgIGJv
b2wgZWxlbWVudENhbm5vdEhhdmVFbmRUYWcoY29uc3QgTm9kZSYpOwogICAgIEVudGl0eU1hc2sg
ZW50aXR5TWFza0ZvclRleHQoY29uc3QgVGV4dCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDQzYzRlN2VmODdjZDdkNzc2ZjMxNDQzNmYwODQ3Y2E5
ZWE4YTEwOTEuLjZlYTBjZGFhMDljZWU2ZTY1MDJiMmM5OGMzMTBjMTY4NmRkY2VjYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiwgY29uc3Qg
VGV4dCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbGVtZW50KFN0cmluZ0J1
aWxkZXImLCBjb25zdCBFbGVtZW50JiwgTmFtZXNwYWNlcyopIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImLCBjb25zdCBFbGVt
ZW50JiwgTmFtZXNwYWNlcyopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbmRU
YWcoY29uc3QgTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbmRUYWco
Y29uc3QgRWxlbWVudCYpIG92ZXJyaWRlOwogfTsKIAogU2VyaWFsaXplck1hcmt1cEFjY3VtdWxh
dG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6
ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCkBAIC0xNjMsMTAg
KzE2MywxMCBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9t
QXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbgogICAgIGFwcGVuZEF0dHJpYnV0ZShv
dXQsIGVsZW1lbnQsIEF0dHJpYnV0ZShmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShmcmFtZU93
bmVyKSwgdXJsLnN0cmluZygpKSwgbmFtZXNwYWNlcyk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgTm9kZSYgbm9kZSkKK3ZvaWQgU2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBpZiAobm9kZS5pc0VsZW1lbnROb2RlKCkgJiYgIXNob3VsZElnbm9yZUVs
ZW1lbnQodG9FbGVtZW50KG5vZGUpKSkKLSAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZEVuZFRhZyhub2RlKTsKKyAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCisg
ICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKIFBh
Z2VTZXJpYWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>