<?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>34805</bug_id>
          
          <creation_ts>2010-02-10 10:41:47 -0800</creation_ts>
          <short_desc>[V8] Perf regression in V8DOMWrapper::instantiateV8Object()</short_desc>
          <delta_ts>2010-02-12 10:30:02 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>antonm</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189412</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-10 10:41:47 -0800</bug_when>
    <thetext>I introduced a performance regression in http://trac.webkit.org/changeset/54499.

It can be fixed by providing a split similar to what had existed previously: one path for objects that might be constructed in a WorkerContext, and a fast path for objects that are never in a WorkerContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189422</commentid>
    <comment_count>1</comment_count>
      <attachid>48512</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-10 11:24:23 -0800</bug_when>
    <thetext>Created attachment 48512
patch

Performance on the DOM benchmark suite with this patch is comparable to a build with 54499 reverted, and dromaeo performance appears to be slightly better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189428</commentid>
    <comment_count>2</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-02-10 11:33:37 -0800</bug_when>
    <thetext>Thanks a lot, Nate.

Only one thing---instantiate in worker context tells me that it must be a worker context, however it looks like it&apos;s possibly a worker context.

If it&apos;s correct, could you give some other name.  The ugly idea I have is in possible worker context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189429</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-10 11:37:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Thanks a lot, Nate.
&gt; 
&gt; Only one thing---instantiate in worker context tells me that it must be a
&gt; worker context, however it looks like it&apos;s possibly a worker context.
&gt; 
&gt; If it&apos;s correct, could you give some other name.  The ugly idea I have is in
&gt; possible worker context.

Yeah, I debated the name.  Perhaps instantiateV8ObjectMaybeInWorkerContext?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189431</commentid>
    <comment_count>4</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-02-10 11:38:59 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Thanks a lot, Nate.
&gt; &gt; 
&gt; &gt; Only one thing---instantiate in worker context tells me that it must be a
&gt; &gt; worker context, however it looks like it&apos;s possibly a worker context.
&gt; &gt; 
&gt; &gt; If it&apos;s correct, could you give some other name.  The ugly idea I have is in
&gt; &gt; possible worker context.
&gt; 
&gt; Yeah, I debated the name.  Perhaps instantiateV8ObjectMaybeInWorkerContext?

Yep, something like that.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189715</commentid>
    <comment_count>5</comment_count>
      <attachid>48512</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-02-11 09:34:33 -0800</bug_when>
    <thetext>Comment on attachment 48512
patch

ok. I was so happy for this code to be gone. Oh well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190096</commentid>
    <comment_count>6</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-02-12 10:30:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/54680</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48512</attachid>
            <date>2010-02-10 11:24:23 -0800</date>
            <delta_ts>2010-02-11 09:34:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>7876</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDYxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMTAgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
VjhdIEFkZCBiYWNrIGluIGEgZmFzdCBwYXRoIGZvciB2OCBvYmplY3Qgd3JhcHBpbmcKKyAgICAg
ICAgd2hlbiBpdCdzIG5vdCBwb3NzaWJsZSB3ZSdyZSBpbiBhIFdvcmtlckNvbnRleHQgKHRoZSBm
YXN0CisgICAgICAgIHBhdGggaXMgaW1wb3J0YW50IGZvciBwZXJmb3JtYW5jZSkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0ODA1CisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVy
OjppbnN0YW50aWF0ZVY4T2JqZWN0SW5Xb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmg6CisKIDIwMTAtMDItMTAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2ZXJ0IDU0NTk5IGJlY2F1c2UgaXQgYnJlYWtzIGEg
bG90IG9mIHRlc3RzIG9uIFdpbmRvd3MgQ2hyb21lCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDU0NjExKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtNTEz
LDE3ICs1MTMsMzAgQEAKICAgICByZXR1cm4gJHJlc3VsdDsKIH0KIAotc3ViIElzTm9kZVN1YlR5
cGUKK3N1YiBJc1N1YlR5cGUKIHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICByZXR1
cm4gMSBpZiAoJGRhdGFOb2RlLT5uYW1lIGVxICJOb2RlIik7CisgICAgbXkgJHBhcmVudFR5cGUg
PSBzaGlmdDsKKyAgICByZXR1cm4gMSBpZiAoJGRhdGFOb2RlLT5uYW1lIGVxICRwYXJlbnRUeXBl
KTsKICAgICBmb3JlYWNoIChAYWxsUGFyZW50cykgewogICAgICAgICBteSAkcGFyZW50ID0gJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRfKTsKLSAgICAgICAgcmV0dXJuIDEgaWYgJHBhcmVu
dCBlcSAiTm9kZSI7CisgICAgICAgIHJldHVybiAxIGlmICRwYXJlbnQgZXEgJHBhcmVudFR5cGU7
CiAgICAgfQogICAgIHJldHVybiAwOwogfQogCitzdWIgSXNOb2RlU3ViVHlwZQoreworICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIHJldHVybiBJc1N1YlR5cGUoJGRhdGFOb2RlLCAiTm9k
ZSIpOworfQorCitzdWIgSXNFdmVudFN1YlR5cGUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKyAgICByZXR1cm4gSXNTdWJUeXBlKCRkYXRhTm9kZSwgIkV2ZW50Iik7Cit9CisKIHN1YiBH
ZW5lcmF0ZURvbWFpblNhZmVGdW5jdGlvbkdldHRlcgogewogICAgIG15ICRmdW5jdGlvbiA9IHNo
aWZ0OwpAQCAtMTkzNCw4ICsxOTQ3LDEyIEBACiAKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gJHtj
bGFzc05hbWV9Ojp3cmFwKCR7bmF0aXZlVHlwZX0qIGltcGwke2ZvcmNlTmV3T2JqZWN0SW5wdXR9
KSB7CiAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKK0VORAorICAgIGlmICghTWF5
QmVJbldvcmtlckNvbnRleHQoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAgVjhQcm94eSogcHJveHkgPSAwOwogRU5ECisg
ICAgfQogCiAgICAgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSkgewogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMTk3MywxMCArMTk5MCwxNiBAQAogICAgIGNvbnRl
eHQtPkVudGVyKCk7CiBFTkQKICAgICB9Ci0gICAgCi0gICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKKworICAgIGlmIChNYXlCZUluV29ya2VyQ29udGV4dCgkZGF0YU5vZGUsICRpbnRlcmZh
Y2VOYW1lKSkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICB3cmFwcGVy
ID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0SW5Xb3JrZXJDb250ZXh0KCR7d3Jh
cHBlclR5cGV9LCBpbXBsKTsKK0VORAorICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCA8PEVORCk7CiAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhP
YmplY3QocHJveHksICR7d3JhcHBlclR5cGV9LCBpbXBsKTsKIEVORAorICAgIH0KIAogICAgIGlm
IChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
IDw8RU5EKTsKQEAgLTIwMjQsNiArMjA0NywzNSBAQAogICAgIH0KIH0KIAorc3ViIE1heUJlSW5X
b3JrZXJDb250ZXh0IHsKKyAgICAjIFRoZXNlIG9iamVjdHMgY2FuIGJlIGNvbnN0cnVjdGVkIHVu
ZGVyIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS4gVGhleSBuZWVkIHNwZWNpYWwKKyAgICAj
IGhhbmRsaW5nLCBzaW5jZSBpZiB3ZSBjYWxsIFY4UHJveHk6OnJldHJpZXZlKCksIHdlIHdpbGwg
Y3Jhc2guCisgICAgIyBGSVhNRTogd2Vic29ja2V0PworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0
OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgIyBGSVhNRTogRG9pbmcgdGhl
IGV4dHJhIHdvcmsgdG8gaGFuZGxlIHRoZSBXb3JrZXJDb250ZXh0IGNhc2UgZm9yIGFsbCBFdmVu
dAorICAgICMgdHlwZXMgaXMgc2FkLiBXZSBjYW4gcHJvYmFibHkgYmUgY2xldmVyZXIgYW5kIG9u
bHkgZG8gdGhlIGV4dHJhIHdvcmsgZm9yIGNlcnRhaW4gdHlwZXMuCisgICAgcmV0dXJuIDEgaWYg
SXNFdmVudFN1YlR5cGUoJGRhdGFOb2RlKTsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NQ29yZUV4Y2VwdGlvbiI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUg
ZXEgIkV2ZW50RXhjZXB0aW9uIjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAi
UmFuZ2VFeGNlcHRpb24iOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJYTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbiI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEg
Ik1lc3NhZ2VQb3J0IjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRGVkaWNh
dGVkV29ya2VyQ29udGV4dCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIldv
cmtlckNvbnRleHQiOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJTaGFyZWRX
b3JrZXJDb250ZXh0IjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2Vy
TG9jYXRpb24iOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJOYXZp
Z2F0b3IiOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJOb3RpZmljYXRpb24i
OworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJOb3RpZmljYXRpb25DZW50ZXIi
OworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJYTUxIdHRwUmVxdWVzdCI7Cisg
ICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIldlYlNvY2tldCI7CisgICAgcmV0dXJu
IDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIldvcmtlciI7CisgICAgcmV0dXJuIDEgaWYgJGludGVy
ZmFjZU5hbWUgZXEgIlNoYXJlZFdvcmtlciI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5h
bWUgZXEgIkV2ZW50U291cmNlIjsKKyAgICByZXR1cm4gMDsKK30KKwogc3ViIEhhc0N1c3RvbVRv
VjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgIyBGSVhNRTogVGhpcyBzdWJyb3V0aW5lIGlzIGxhbWUu
IFByb2JhYmx5IHNob3VsZCBiZSBhbiAuaWRsIGF0dHJpYnV0ZSAoQ3VzdG9tVG9WOCk/CiAgICAg
JGRhdGFOb2RlID0gc2hpZnQ7CkBAIC0yMzA4LDE3ICsyMzYwLDYgQEAKICAgICByZXR1cm4gMTsK
IH0KIAotc3ViIElzV29ya2VyQ2xhc3NOYW1lCi17Ci0gICAgbXkgJGNsYXNzID0gc2hpZnQ7Ci0g
ICAgcmV0dXJuIDEgaWYgJGNsYXNzIGVxICJWOFdvcmtlciI7Ci0gICAgcmV0dXJuIDEgaWYgJGNs
YXNzIGVxICJWOFdvcmtlckNvbnRleHQiOwotICAgIHJldHVybiAxIGlmICRjbGFzcyBlcSAiVjhX
b3JrZXJMb2NhdGlvbiI7Ci0gICAgcmV0dXJuIDEgaWYgJGNsYXNzIGVxICJWOFdvcmtlck5hdmln
YXRvciI7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogc3ViIEdldE5hdGl2ZVR5cGUKIHsKICAgICBt
eSAkdHlwZSA9IHNoaWZ0OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAko
cmV2aXNpb24gNTQ2MTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2NywzMiArMjY3LDM2IEBACiAgICAgcmV0dXJuIE5vZGVGaWx0
ZXI6OmNyZWF0ZShjb25kaXRpb24pOwogfQogCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01X
cmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0SW5Xb3JrZXJDb250ZXh0KFY4Q2xhc3NJbmRleDo6
VjhXcmFwcGVyVHlwZSB0eXBlLCB2b2lkKiBpbXBsKQoreworICAgIFdvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eSogd29ya2VyQ29udGV4dFByb3h5ID0gV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5OjpyZXRyaWV2ZSgpOworICAgIGlmICghd29ya2VyQ29udGV4dFByb3h5KQorICAgICAgICBy
ZXR1cm4gaW5zdGFudGlhdGVWOE9iamVjdCgwLCB0eXBlLCBpbXBsKTsKKyAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaW5zdGFuY2UgPSBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2UoZ2V0Q29u
c3RydWN0b3IodHlwZSwgd29ya2VyQ29udGV4dFByb3h5LT53b3JrZXJDb250ZXh0KCkpKTsKKyAg
ICBpZiAoIWluc3RhbmNlLklzRW1wdHkoKSkgeworICAgICAgICAvLyBBdm9pZCBzZXR0aW5nIHRo
ZSBET00gd3JhcHBlciBmb3IgZmFpbGVkIGFsbG9jYXRpb25zLgorICAgICAgICBzZXRET01XcmFw
cGVyKGluc3RhbmNlLCBWOENsYXNzSW5kZXg6OlRvSW50KHR5cGUpLCBpbXBsKTsKKyAgICB9Cisg
ICAgcmV0dXJuIGluc3RhbmNlOworfQorCiB2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFw
cGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkqIHByb3h5LCBWOENsYXNzSW5kZXg6OlY4
V3JhcHBlclR5cGUgdHlwZSwgdm9pZCogaW1wbCkKIHsKLSAgICAvLyBHZXQgdGhlIFdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eSBmaXJzdC4gSWYgd2UgYXJlIGluIGEgV29ya2VyQ29udGV4dCBh
bmQgd2UgdHJ5IHRvIGNhbGwgVjhQcm94eTo6cmV0cmlldmUoKSwKLSAgICAvLyB3ZSBjcmFzaCB0
cnlpbmcgdG8gcmV0cmlldmUgYSBET01XaW5kb3cuCi0gICAgV29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5KiB3b3JrZXJDb250ZXh0UHJveHkgPSBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6
OnJldHJpZXZlKCk7CiAgICAgaWYgKFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCkpIHsK
ICAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgd3JhcHBlciBjYWNoZSBm
b3IgaXNvbGF0ZWQgd29ybGRzLgogICAgICAgICBwcm94eSA9IDA7CiAgICAgICAgIC8vIEZJWE1F
OiBEbyB3ZSBuZWVkIGEgd3JhcHBlciBjYWNoZSBmb3IgdGhlIGlzb2xhdGVkIHdvcmxkPyAgV2Ug
c2hvdWxkCiAgICAgICAgIC8vICAgICAgICBzZWUgaWYgdGhlIHBlcmZvcm1hbmNlIGdhaW5zIGFy
ZSB3b3J0aCB3aGlsZS4KICAgICAgICAgLy8gV2UnbGwgZ2V0IG9uZSBvbmNlIHdlIGdpdmUgdGhl
IGlzb2xhdGVkIGNvbnRleHQgYSBwcm9wZXIgd2luZG93IHNoZWxsLgotICAgIH0gZWxzZSBpZiAo
IXByb3h5ICYmICF3b3JrZXJDb250ZXh0UHJveHkpCisgICAgfSBlbHNlIGlmICghcHJveHkpCiAg
ICAgICAgIHByb3h5ID0gVjhQcm94eTo6cmV0cmlldmUoKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBpbnN0YW5jZTsKICAgICBpZiAocHJveHkpCiAgICAgICAgIC8vIEZJWE1FOiBGaXgg
dGhpcyB0byB3b3JrIHByb3Blcmx5IHdpdGggaXNvbGF0ZWQgd29ybGRzIChzZWUgYWJvdmUpLgog
ICAgICAgICBpbnN0YW5jZSA9IHByb3h5LT53aW5kb3dTaGVsbCgpLT5jcmVhdGVXcmFwcGVyRnJv
bUNhY2hlKHR5cGUpOwotICAgIGVsc2UgewotICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9u
PiBmdW5jdGlvbjsKLSAgICAgICAgaWYgKHdvcmtlckNvbnRleHRQcm94eSkKLSAgICAgICAgICAg
IGZ1bmN0aW9uID0gZ2V0Q29uc3RydWN0b3IodHlwZSwgd29ya2VyQ29udGV4dFByb3h5LT53b3Jr
ZXJDb250ZXh0KCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFY4Q2xh
c3NJbmRleDo6Z2V0VGVtcGxhdGUodHlwZSktPkdldEZ1bmN0aW9uKCk7Ci0gICAgICAgIGluc3Rh
bmNlID0gU2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKGZ1bmN0aW9uKTsKLSAgICB9CisgICAg
ZWxzZQorICAgICAgICBpbnN0YW5jZSA9IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZShWOENs
YXNzSW5kZXg6OmdldFRlbXBsYXRlKHR5cGUpLT5HZXRGdW5jdGlvbigpKTsKICAgICBpZiAoIWlu
c3RhbmNlLklzRW1wdHkoKSkgewogICAgICAgICAvLyBBdm9pZCBzZXR0aW5nIHRoZSBET00gd3Jh
cHBlciBmb3IgZmFpbGVkIGFsbG9jYXRpb25zLgogICAgICAgICBzZXRET01XcmFwcGVyKGluc3Rh
bmNlLCBWOENsYXNzSW5kZXg6OlRvSW50KHR5cGUpLCBpbXBsKTsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuaAkocmV2aXNpb24gNTQ2MTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDcgQEAKICAgICAg
ICAgc3RhdGljIHZvaWQgc2V0SGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiwgY29uc3QgaW50
IGludGVybmFsSW5kZXgsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwogCiAgICAgICAgIHN0YXRp
YyB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdChWOFByb3h5KiBwcm94
eSwgVjhDbGFzc0luZGV4OjpWOFdyYXBwZXJUeXBlIHR5cGUsIHZvaWQqIGltcGwpOworICAgICAg
ICBzdGF0aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbnRpYXRlVjhPYmplY3RJbldvcmtl
ckNvbnRleHQoVjhDbGFzc0luZGV4OjpWOFdyYXBwZXJUeXBlIHR5cGUsIHZvaWQqIGltcGwpOwog
CiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdldFdyYXBwZXIoTm9kZSop
OwogICAgIH07Cg==
</data>
<flag name="review"
          id="31207"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>