<?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>91531</bug_id>
          
          <creation_ts>2012-07-17 12:01:46 -0700</creation_ts>
          <short_desc>Web Inspector: intern strings when processing timeline records</short_desc>
          <delta_ts>2012-07-18 06:46:43 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671470</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-17 12:01:46 -0700</bug_when>
    <thetext>This adds StringPool class and uses it to intern all strings occurring in Timeline records. This cuts heap size from 117M to 50M when processing a 97M timeline log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671487</commentid>
    <comment_count>1</comment_count>
      <attachid>152803</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-17 12:13:52 -0700</bug_when>
    <thetext>Created attachment 152803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671515</commentid>
    <comment_count>2</comment_count>
      <attachid>152803</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-17 13:05:28 -0700</bug_when>
    <thetext>Comment on attachment 152803
Patch

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

&gt; Source/WebCore/inspector/front-end/utilities.js:729
&gt; +    deepIntern: function(obj)

internObject?

&gt; Source/WebCore/inspector/front-end/utilities.js:737
&gt; +                this.deepIntern(obj[field]);

Do you want to introduce a re-entrance guard here to say support up to 100 levels? Stack overflow is sometimes hard to debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672074</commentid>
    <comment_count>3</comment_count>
      <attachid>152803</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-07-18 00:29:39 -0700</bug_when>
    <thetext>Comment on attachment 152803
Patch

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

&gt; Source/WebCore/inspector/front-end/utilities.js:711
&gt; +    intern: function(string)

what if string is equal to &quot;__proto__&quot; or &quot;constructor&quot; or &quot;toString&quot; or etc. ?
maybe add (this._strings.__proto__ = null) to the constructor and reset() methods?

&gt;&gt; Source/WebCore/inspector/front-end/utilities.js:729
&gt;&gt; +    deepIntern: function(obj)
&gt; 
&gt; internObject?

a test case: 

var obj = {};
obj.foo = obj;
pool.deepIntern(obj);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672306</commentid>
    <comment_count>4</comment_count>
      <attachid>153002</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-18 06:09:18 -0700</bug_when>
    <thetext>Created attachment 153002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672314</commentid>
    <comment_count>5</comment_count>
      <attachid>153002</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-18 06:23:58 -0700</bug_when>
    <thetext>Comment on attachment 153002
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePresentationModel.js:635
&gt; +        if (!this._details)

Is this a part of a different change?

&gt; Source/WebCore/inspector/front-end/utilities.js:729
&gt; +        if (string === &quot;__proto__&quot;)

What does this mean?

&gt; Source/WebCore/inspector/front-end/utilities.js:741
&gt; +        this._strings = { __proto__: null };

Object.create(null)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672333</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-07-18 06:46:43 -0700</bug_when>
    <thetext>Committed r122964: &lt;http://trac.webkit.org/changeset/122964&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152803</attachid>
            <date>2012-07-17 12:13:52 -0700</date>
            <delta_ts>2012-07-18 06:09:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91531-20120717231351.patch</filename>
            <type>text/plain</type>
            <size>3478</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI5MzhlODAxM2U3NjM2
YzMyOGYzN2E3Mjk3MDdiZWE2NTk1ZGE4NS4uY2Y0MjQ5ZmUxMzE5MjJmNDdlNDg1M2ViM2VjODYx
YjY0Yjc2MDA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTE3ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW50ZXJuIHN0cmluZ3Mgd2hlbiBwcm9jZXNzaW5nIHRpbWVsaW5lIHJlY29yZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBhZGRlZCBTdHJpbmdQ
b29sIHRoYXQgaXMgY2FwYWJsZSBvZiBpbnRlcm5pbmcgc3RyaW5nczsKKyAgICAgICAgLSB1c2Vk
IGl0IGluIFRpbWVsaW5lTW9kZWwgdG8gcHJvY2VzcyBhbGwgaW5jb21pbmcgcmVjb3JkczsKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU1vZGVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC91dGlsaXRpZXMuanM6CisKIDIwMTItMDctMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MjI4MzQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lTW9kZWwuanMKaW5kZXggYjNiNmE2NjE3MjUwYmJlZDI1YjRhNmJiNzdlMmU2N2NiZDY4YTU1
Yy4uODc2ZGM0NjhmMTA3NzQ1MzJiOTFmNmZlNTA5OWFhZGZjZWVjZmFjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcwpAQCAt
MzUsNiArMzUsNyBAQAogV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwgPSBmdW5jdGlvbigpCiB7
CiAgICAgdGhpcy5fcmVjb3JkcyA9IFtdOworICAgIHRoaXMuX3N0cmluZ1Bvb2wgPSBuZXcgU3Ry
aW5nUG9vbCgpOwogICAgIHRoaXMuX21pbmltdW1SZWNvcmRUaW1lID0gLTE7CiAgICAgdGhpcy5f
bWF4aW11bVJlY29yZFRpbWUgPSAtMTsKICAgICB0aGlzLl9jb2xsZWN0aW9uRW5hYmxlZCA9IGZh
bHNlOwpAQCAtMTUyLDYgKzE1Myw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIF9hZGRSZWNvcmQ6IGZ1bmN0aW9uKHJlY29yZCkKICAgICB7CisgICAg
ICAgIHRoaXMuX3N0cmluZ1Bvb2wuZGVlcEludGVybihyZWNvcmQpOwogICAgICAgICB0aGlzLl9y
ZWNvcmRzLnB1c2gocmVjb3JkKTsKICAgICAgICAgdGhpcy5fdXBkYXRlQm91bmRhcmllcyhyZWNv
cmQpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
VGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3JkQWRkZWQsIHJlY29yZCk7CkBAIC0yMTQsNiArMjE2
LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwucHJvdG90eXBlID0gewogICAgIHJlc2V0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CisgICAgICAg
IHRoaXMuX3N0cmluZ1Bvb2wucmVzZXQoKTsKICAgICAgICAgdGhpcy5fbWluaW11bVJlY29yZFRp
bWUgPSAtMTsKICAgICAgICAgdGhpcy5fbWF4aW11bVJlY29yZFRpbWUgPSAtMTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
RXZlbnRzLlJlY29yZHNDbGVhcmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggNjMxNGU1YWM1MTA5YmQ1ZjNiZGM5MTRmYzExYThm
ODVlYzUyNjZmOS4uZjRlNTJiNmE4ZTdlMDBiNzM3MDI5MzQ4NTJjMjM4NTlkOTEyOTQ0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAg
LTY5MywzICs2OTMsNTAgQEAgTWFwLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbWFwID0g
e307CiAgICAgfQogfTsKKworCisvKioKKyAqIEBjb25zdHJ1Y3RvciAKKyAqLworZnVuY3Rpb24g
U3RyaW5nUG9vbCgpCit7CisgICAgdGhpcy5fc3RyaW5ncyA9IHt9OworfQorCitTdHJpbmdQb29s
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nCisg
ICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIGludGVybjogZnVuY3Rpb24oc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX3N0cmluZ3Nbc3RyaW5nXTsK
KyAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICB0aGlzLl9z
dHJpbmdzW3N0cmluZ10gPSBzdHJpbmc7CisgICAgICAgICAgICByZXN1bHQgPSBzdHJpbmc7Cisg
ICAgICAgIH0gCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSwKKworICAgIHJlc2V0OiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9zdHJpbmdzID0ge307CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmoKKyAgICAgKi8KKyAgICBkZWVwSW50
ZXJuOiBmdW5jdGlvbihvYmopCisgICAgeworICAgICAgICBmb3IgKHZhciBmaWVsZCBpbiBvYmop
IHsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIG9ialtmaWVsZF0pIHsKKyAgICAgICAgICAg
IGNhc2UgInN0cmluZyI6CisgICAgICAgICAgICAgICAgb2JqW2ZpZWxkXSA9IHRoaXMuaW50ZXJu
KG9ialtmaWVsZF0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAi
b2JqZWN0IjoKKyAgICAgICAgICAgICAgICB0aGlzLmRlZXBJbnRlcm4ob2JqW2ZpZWxkXSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153002</attachid>
            <date>2012-07-18 06:09:18 -0700</date>
            <delta_ts>2012-07-18 06:23:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91531-20120718170917.patch</filename>
            <type>text/plain</type>
            <size>4663</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTk5MjJiMTZlNTcxMzQ5
NGM2M2FjYmU3ODkxZmEwY2U2NDRmM2IyNi4uNzliZDVmMDU5Zjk1Y2E2ZWIxZDM0Y2YwZGRiZTJl
MTZlYzNlNzk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTE3ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW50ZXJuIHN0cmluZ3Mgd2hlbiBwcm9jZXNzaW5nIHRpbWVsaW5lIHJlY29yZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNTMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBhZGRlZCBTdHJpbmdQ
b29sIHRoYXQgaXMgY2FwYWJsZSBvZiBpbnRlcm5pbmcgc3RyaW5nczsKKyAgICAgICAgLSB1c2Vk
IGl0IGluIFRpbWVsaW5lTW9kZWwgdG8gcHJvY2VzcyBhbGwgaW5jb21pbmcgcmVjb3JkczsKKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLnByb3RvdHlwZS5fYWRkUmVjb3JkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZU1vZGVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC91dGlsaXRpZXMuanM6CisKIDIwMTItMDctMTggIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtBTkdMRV0gT24gUVQsIHVzZSBCaXNvbiBh
bmQgRmxleCBkdXJpbmcgQU5HTEUgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcwppbmRleCBiM2I2YTY2MTcyNTBiYmVkMjVi
NGE2YmI3N2UyZTY3Y2JkNjhhNTVjLi44NzZkYzQ2OGYxMDc3NDUzMmI5MWY2ZmU1MDk5YWFkZmNl
ZWNmYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZU1vZGVsLmpzCkBAIC0zNSw2ICszNSw3IEBACiBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbCA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9yZWNvcmRzID0gW107CisgICAgdGhpcy5f
c3RyaW5nUG9vbCA9IG5ldyBTdHJpbmdQb29sKCk7CiAgICAgdGhpcy5fbWluaW11bVJlY29yZFRp
bWUgPSAtMTsKICAgICB0aGlzLl9tYXhpbXVtUmVjb3JkVGltZSA9IC0xOwogICAgIHRoaXMuX2Nv
bGxlY3Rpb25FbmFibGVkID0gZmFsc2U7CkBAIC0xNTIsNiArMTUzLDcgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgX2FkZFJlY29yZDogZnVuY3Rpb24o
cmVjb3JkKQogICAgIHsKKyAgICAgICAgdGhpcy5fc3RyaW5nUG9vbC5kZWVwSW50ZXJuKHJlY29y
ZCk7CiAgICAgICAgIHRoaXMuX3JlY29yZHMucHVzaChyZWNvcmQpOwogICAgICAgICB0aGlzLl91
cGRhdGVCb3VuZGFyaWVzKHJlY29yZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLkV2ZW50cy5SZWNvcmRBZGRlZCwgcmVj
b3JkKTsKQEAgLTIxNCw2ICsyMTYsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Jl
Y29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fc3RyaW5nUG9vbC5yZXNldCgpOwogICAgICAgICB0
aGlzLl9taW5pbXVtUmVjb3JkVGltZSA9IC0xOwogICAgICAgICB0aGlzLl9tYXhpbXVtUmVjb3Jk
VGltZSA9IC0xOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3Jkc0NsZWFyZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzCmluZGV4IDAyYWQ5OTA1MTI0NTQwY2FmODkxMzMwNDQwZTA1N2NmMTI1
Y2E3MjMuLjRiYjQyNWY0NmMxZjJmOTAxYjZjOTkxMzNjOGZkZmYwYjIxMDJiMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTYyNyw3ICs2MjcsMTQgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsKIAogICAgIF9y
ZWZyZXNoRGV0YWlsczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5kZXRhaWxzID0g
dGhpcy5fZ2V0UmVjb3JkRGV0YWlscygpOworICAgICAgICBkZWxldGUgdGhpcy5fZGV0YWlsczsK
KyAgICB9LAorCisgICAgZ2V0IGRldGFpbHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9k
ZXRhaWxzKQorICAgICAgICAgICAgdGhpcy5fZGV0YWlscyA9IHRoaXMuX2dldFJlY29yZERldGFp
bHMoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2RldGFpbHM7CiAgICAgfSwKIAogICAgIF9nZXRS
ZWNvcmREZXRhaWxzOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvdXRpbGl0aWVzLmpzCmluZGV4IDAxZWQ3ZTg2YzgxYjA1Mzc2ODI3YjAzMzYxZDUz
YTBlOGFiNGY4ODUuLjQwOGYxNzUyMmM0NDIxYmJmNzIwMWY0ZmRiODM0YzFlODUyYWNhNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzCkBA
IC03MDksMyArNzA5LDU4IEBAIE1hcC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX21hcCA9
IHt9OwogICAgIH0KIH07CisKKworLyoqCisgKiBAY29uc3RydWN0b3IgCisgKi8KK2Z1bmN0aW9u
IFN0cmluZ1Bvb2woKQoreworICAgIHRoaXMucmVzZXQoKTsKK30KKworU3RyaW5nUG9vbC5wcm90
b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZworICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBpbnRlcm46IGZ1bmN0aW9uKHN0cmluZykK
KyAgICB7CisgICAgICAgIGlmIChzdHJpbmcgPT09ICJfX3Byb3RvX18iKQorICAgICAgICAgICAg
cmV0dXJuICJfX3Byb3RvX18iOworICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fc3RyaW5nc1tz
dHJpbmddOworICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAg
IHRoaXMuX3N0cmluZ3Nbc3RyaW5nXSA9IHN0cmluZzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHN0
cmluZzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICBy
ZXNldDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3RyaW5ncyA9IHsgX19wcm90
b19fOiBudWxsIH07CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBv
YmoKKyAgICAgKiBAcGFyYW0ge251bWJlcj19IGRlcHRoTGltaXQKKyAgICAgKi8KKyAgICBkZWVw
SW50ZXJuOiBmdW5jdGlvbihvYmosIGRlcHRoTGltaXQpCisgICAgeworICAgICAgICBpZiAodHlw
ZW9mIGRlcHRoTGltaXQgIT09ICJudW1iZXIiKQorICAgICAgICAgICAgZGVwdGhMaW1pdCA9IDEw
MDsKKyAgICAgICAgZWxzZSBpZiAoLS1kZXB0aExpbWl0IDwgMCkKKyAgICAgICAgICAgIHRocm93
ICJyZWN1cnNpb24gZGVwdGggbGltaXQgcmVhY2hlZCBpbiBTdHJpbmdQb29sLmRlZXBJbnRlcm4o
KSwgcGVyaGFwcyBhdHRlbXB0aW5nIHRvIHRyYXZlcnNlIGN5Y2xpY2FsIHJlZmVyZW5jZXM/IjsK
KworICAgICAgICBmb3IgKHZhciBmaWVsZCBpbiBvYmopIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
dHlwZW9mIG9ialtmaWVsZF0pIHsKKyAgICAgICAgICAgIGNhc2UgInN0cmluZyI6CisgICAgICAg
ICAgICAgICAgb2JqW2ZpZWxkXSA9IHRoaXMuaW50ZXJuKG9ialtmaWVsZF0pOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAib2JqZWN0IjoKKyAgICAgICAgICAgICAg
ICB0aGlzLmRlZXBJbnRlcm4ob2JqW2ZpZWxkXSwgZGVwdGhMaW1pdCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9Cg==
</data>
<flag name="review"
          id="161835"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>