<?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>38687</bug_id>
          
          <creation_ts>2010-05-06 13:45:10 -0700</creation_ts>
          <short_desc>Improve code generator scripts to pass additional ScriptExecutionContext argument to the constructor</short_desc>
          <delta_ts>2010-05-06 16:42:11 -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>WebCore JavaScript</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="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221945</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 13:45:10 -0700</bug_when>
    <thetext>Improve code generator scripts to support the following:
1) Pass additional ScriptExecutionContext argument to the constructor
2) Convert ScriptString

This is needed in order to avoid custom bindings code for FileReader interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221952</commentid>
    <comment_count>1</comment_count>
      <attachid>55293</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 13:51:07 -0700</bug_when>
    <thetext>Created attachment 55293
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221969</commentid>
    <comment_count>2</comment_count>
      <attachid>55293</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 14:39:44 -0700</bug_when>
    <thetext>Comment on attachment 55293
Proposed Patch

This is really two patches.  Can you split it in two?  Also, please add test coverage in TestObj.idl.  Other than that, these patches look good.

WebCore/bindings/scripts/CodeGeneratorJS.pm:1120
 +          push(@implContent, constructorFor($className, $protoClassName, $interfaceName, $visibleClassName, $dataNode-&gt;extendedAttributes-&gt;{&quot;CanBeConstructed&quot;}, $dataNode-&gt;extendedAttributes-&gt;{&quot;CallWith&quot;}));
I wonder if would be better to pass $dataNode here.

WebCore/bindings/v8/V8Proxy.h:412
 +              return throwError(V8Proxy::TypeError, &quot;DOM object constructor cannot be called as a function.&quot;);
Please remove these non-localized strings.  The JSC bindings don&apos;t have them and we should aim to be identical.

WebCore/bindings/v8/V8Proxy.h:416
 +              return throwError(V8Proxy::ReferenceError, &quot;DOM object constructor&apos;s associated frame is not available&quot;);
Please remove these non-localized strings.  The JSC bindings don&apos;t have them and we should aim to be identical.

WebCore/bindings/v8/V8Proxy.h:422
 +          obj-&gt;ref();
Manual reference twiddling is sadness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222010</commentid>
    <comment_count>3</comment_count>
      <attachid>55309</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 15:36:55 -0700</bug_when>
    <thetext>Created attachment 55309
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222013</commentid>
    <comment_count>4</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 15:38:35 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 55293 [details])
&gt; This is really two patches.  Can you split it in two?  Also, please add test
&gt; coverage in TestObj.idl.  Other than that, these patches look good.

Split the patch into two. This bug is about the first change.

&gt; 
&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1120
&gt;  +          push(@implContent, constructorFor($className, $protoClassName,
&gt; $interfaceName, $visibleClassName,
&gt; $dataNode-&gt;extendedAttributes-&gt;{&quot;CanBeConstructed&quot;},
&gt; $dataNode-&gt;extendedAttributes-&gt;{&quot;CallWith&quot;}));
&gt; I wonder if would be better to pass $dataNode here.

Done.
&gt; 
&gt; WebCore/bindings/v8/V8Proxy.h:412
&gt;  +              return throwError(V8Proxy::TypeError, &quot;DOM object constructor
&gt; cannot be called as a function.&quot;);
&gt; Please remove these non-localized strings.  The JSC bindings don&apos;t have them
&gt; and we should aim to be identical.

Done.
&gt; 
&gt; WebCore/bindings/v8/V8Proxy.h:416
&gt;  +              return throwError(V8Proxy::ReferenceError, &quot;DOM object
&gt; constructor&apos;s associated frame is not available&quot;);
&gt; Please remove these non-localized strings.  The JSC bindings don&apos;t have them
&gt; and we should aim to be identical.

Done.

&gt; 
&gt; WebCore/bindings/v8/V8Proxy.h:422
&gt;  +          obj-&gt;ref();
&gt; Manual reference twiddling is sadness.

This is just mimicking constructDOMObject which unfortunately uses the manual refernce twiddling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222016</commentid>
    <comment_count>5</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 15:40:50 -0700</bug_when>
    <thetext>I do not change TestObj.idl to add coverage because the change is for the interface. Unless we want to add additional test interface to TestObj.idl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222022</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 15:50:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I do not change TestObj.idl to add coverage because the change is for the
&gt; interface. Unless we want to add additional test interface to TestObj.idl.

Yeah, you can just add another IDL file next to TestObj to test interface-level features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222023</commentid>
    <comment_count>7</comment_count>
      <attachid>55309</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 15:52:20 -0700</bug_when>
    <thetext>Comment on attachment 55309
Proposed Patch

Thanks.  Please add a test to run-bindings-tests before landing through.

WebCore/bindings/v8/V8Proxy.h:412
 +              return throwError(V8Proxy::TypeError, &quot;&quot;);
We should add version of throwError that doesn&apos;t need a string.  We basically never want to provide a string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222049</commentid>
    <comment_count>8</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-06 16:36:50 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/58919.

(In reply to comment #7)
&gt; (From update of attachment 55309 [details])
&gt; Thanks.  Please add a test to run-bindings-tests before landing through.
Added.

&gt; 
&gt; WebCore/bindings/v8/V8Proxy.h:412
&gt;  +              return throwError(V8Proxy::TypeError, &quot;&quot;);
&gt; We should add version of throwError that doesn&apos;t need a string.  We basically
&gt; never want to provide a string.
I agree. Probably we need another patch to remove all local strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222052</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 16:42:11 -0700</bug_when>
    <thetext>&gt; &gt; WebCore/bindings/v8/V8Proxy.h:412
&gt; &gt;  +              return throwError(V8Proxy::TypeError, &quot;&quot;);
&gt; &gt; We should add version of throwError that doesn&apos;t need a string.  We basically
&gt; &gt; never want to provide a string.
&gt; I agree. Probably we need another patch to remove all local strings.

Turns out I think this function exists.  Just omit the string.  :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55293</attachid>
            <date>2010-05-06 13:51:07 -0700</date>
            <delta_ts>2010-05-06 15:36:55 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38687</filename>
            <type>text/plain</type>
            <size>7075</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGFmOWFjYi4uNTc5ZTdjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNS0wNiAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wcm92ZSBjb2RlIGdlbmVyYXRvciBzY3JpcHRzIHRvIHBhc3MgYWRkaXRp
b25hbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0CisgICAgICAgIGFyZ3VtZW50IHRvIHRoZSBjb25z
dHJ1Y3RvciBhbmQgY29udmVydCBTY3JpcHRTdHJpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODY4NworCisgICAgICAgIENoYW5nZSBib3RoIEpT
QyBhbmQgVjggZ2VuZXJhdG9ycyB0byBzdXBwb3J0IHRoZSBmb2xsb3dpbmc6CisgICAgICAgIDEp
IEludHJvZHVjZSAiQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCIgYXR0cmlidXRlIHRv
IGFsbG93IHBhc3NpbmcKKyAgICAgICAgICAgdGhlIGFkZGl0aW9uYWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIDIpIEludHJvZHVj
ZSAiQ292ZXJ0U2NyaXB0U3RyaW5nIiBhdHRyaWJ1dGUgdG8gYWxsb3cgY29udmVydGluZyBmcm9t
CisgICAgICAgICAgIFNjcmlwdFN0cmluZy4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSBu
ZWNlc3NhcnkgaW4gb3JkZXIgdG8gYXZvaWQgYWRkaW5nIGN1c3RvbSBiaW5kaW5nIGNvZGVzCisg
ICAgICAgIHdoZW4gd2UgYWRkIHRoZSBGaWxlUmVhZGVyIGludGVyZmFjZS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJv
eHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmNvbnN0cnVjdERPTU9iamVjdFdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KToKKwogMjAxMC0wNS0wNiAgTGFzemxvIEdvbWJvcyAgPGxh
c3psby4xLmdvbWJvc0Bub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4
IFdpbkNFIGZvciBRdFdlYktpdC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGZjYjcxNzEuLmJjMTc4MDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTExNyw3ICsxMTE3LDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgbXkgJHByb3RvQ2xhc3NOYW1lOwogICAgICAgICAk
cHJvdG9DbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJvdG90eXBlIjsKIAotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgY29uc3RydWN0b3JGb3IoJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1l
LCAkaW50ZXJmYWNlTmFtZSwgJHZpc2libGVDbGFzc05hbWUsICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNhbkJlQ29uc3RydWN0ZWQifSkpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgY29uc3RydWN0b3JGb3IoJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJm
YWNlTmFtZSwgJHZpc2libGVDbGFzc05hbWUsICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhbkJlQ29uc3RydWN0ZWQifSwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2FsbFdpdGgifSkpOwogICAgIH0KIAogICAgICMgLSBBZGQgZnVuY3Rpb25zIGFuZCBjb25zdGFu
dHMgdG8gYSBoYXNodGFibGUgZGVmaW5pdGlvbgpAQCAtMjIzMyw2ICsyMjMzLDggQEAgc3ViIE5h
dGl2ZVRvSlNWYWx1ZQogCiAgICAgICAgICAgICBkaWUgIlVua25vd24gdmFsdWUgZm9yIENvbnZl
cnROdWxsU3RyaW5nVG8gZXh0ZW5kZWQgYXR0cmlidXRlIjsKICAgICAgICAgfQorICAgICAgICAk
Y29udiA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0U2NyaXB0U3Ry
aW5nIn07CisgICAgICAgIHJldHVybiAianNPd25lZFN0cmluZ09yTnVsbChleGVjLCAkdmFsdWUp
IiBpZiAkY29udjsKICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvSlNTdHJpbmcuaD4i
fSA9IDE7CiAgICAgICAgIHJldHVybiAianNTdHJpbmcoZXhlYywgJHZhbHVlKSI7CiAgICAgfQpA
QCAtMjU5OCw2ICsyNjAwLDcgQEAgc3ViIGNvbnN0cnVjdG9yRm9yCiAgICAgbXkgJGludGVyZmFj
ZU5hbWUgPSBzaGlmdDsKICAgICBteSAkdmlzaWJsZUNsYXNzTmFtZSA9IHNoaWZ0OwogICAgIG15
ICRjYW5Db25zdHJ1Y3QgPSBzaGlmdDsKKyAgICBteSAkY2FsbFdpdGggPSBzaGlmdDsKICAgICBt
eSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9Q29uc3RydWN0b3IiOwogCiBt
eSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKQEAgLTI2MjYsNyArMjYyOSwyMCBAQCBFT0YKICRp
bXBsQ29udGVudCAuPSA8PCAiRU9GIjsKICAgICBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdCR7
aW50ZXJmYWNlTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNv
bnN0IEFyZ0xpc3QmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywg
c3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihjb25zdHJ1Y3RvciktPmdsb2Jh
bE9iamVjdCgpLCAke2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoKSkpOworRU9GCisKKyAgICBteSAk
Y29uc3RydWN0b3JBcmcgPSAiIjsKKyAgICBpZiAoJGNhbGxXaXRoIGFuZCAkY2FsbFdpdGggZXEg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSB7CisgICAgICAgICRjb25zdHJ1Y3RvckFyZyA9ICJj
b250ZXh0IjsKKyRpbXBsQ29udGVudCAuPSA8PCAiRU9GIjsKKyAgICAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9
Kj4oY29uc3RydWN0b3IpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgICAgIGlmICgh
Y29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFJlZmVyZW5jZUVy
cm9yKTsKK0VPRgorICAgIH0KKworJGltcGxDb250ZW50IC49IDw8ICJFT0YiOworICAgICAgICBy
ZXR1cm4gYXNPYmplY3QodG9KUyhleGVjLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfSo+KGNvbnN0cnVjdG9yKS0+Z2xvYmFsT2JqZWN0KCksICR7aW50ZXJmYWNlTmFtZX06OmNy
ZWF0ZSgke2NvbnN0cnVjdG9yQXJnfSkpKTsKICAgICB9CiAgICAgdmlydHVhbCBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKICAgICB7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBhMzc0
NmIxLi45NTUzYjhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KQEAgLTE3ODEsMTEgKzE3ODEsMTggQEAgRU5ECiAKICAgICAjIEluIG5hbWVzcGFjZSBX
ZWJDb3JlLCBhZGQgZ2VuZXJhdGVkIGltcGxlbWVudGF0aW9uIGZvciAnQ2FuQmVDb25zdHJ1Y3Rl
ZCcuCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3Ry
dWN0ZWQifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3Ry
dWN0b3IifSkgeworICAgICAgICBteSAkdjhDb25zdHJ1Y3RGdW5jdGlvbjsKKyAgICAgICAgbXkg
JGNhbGxXaXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsK
KyAgICAgICAgaWYgKCRjYWxsV2l0aCBhbmQgJGNhbGxXaXRoIGVxICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0IikgeworICAgICAgICAgICAgJHY4Q29uc3RydWN0RnVuY3Rpb24gPSAiY29uc3RydWN0
RE9NT2JqZWN0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJHY4Q29uc3RydWN0RnVuY3Rpb24gPSAiY29uc3RydWN0RE9NT2JqZWN0IjsK
KyAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+ICR7Y2xhc3NOYW1lfTo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLiR7aW50ZXJmYWNlTmFtZX0u
Q29udHJ1Y3RvciIpOwotICAgIHJldHVybiBWOFByb3h5Ojpjb25zdHJ1Y3RET01PYmplY3Q8JGlu
dGVyZmFjZU5hbWU+KGFyZ3MsICZpbmZvKTsKKyAgICByZXR1cm4gVjhQcm94eTo6JHt2OENvbnN0
cnVjdEZ1bmN0aW9ufTwkaW50ZXJmYWNlTmFtZT4oYXJncywgJmluZm8pOwogfQogRU5ECiAgICB9
CkBAIC0zMDU5LDYgKzMwNjYsOCBAQCBzdWIgUmV0dXJuTmF0aXZlVG9KU1ZhbHVlCiAKICAgICAg
ICAgICAgIGRpZSAiVW5rbm93biB2YWx1ZSBmb3IgQ29udmVydE51bGxTdHJpbmdUbyBleHRlbmRl
ZCBhdHRyaWJ1dGUiOwogICAgICAgICB9CisgICAgICAgICRjb252ID0gJHNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRTY3JpcHRTdHJpbmcifTsKKyAgICAgICAgcmV0dXJu
ICJ2OFN0cmluZ09yTnVsbChleGVjLCAkdmFsdWUpIiBpZiAkY29udjsKICAgICAgICAgcmV0dXJu
ICJyZXR1cm4gdjhTdHJpbmcoJHZhbHVlKSI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmlu
ZGV4IDUxOTA2NDguLmVkNmE2ZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiVjhET01XaW5kb3dTaGVsbC5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBl
ci5oIgogI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVjhVdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIKICNpbmNsdWRlIDx2OC5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+IC8vIHNvIGdlbmVyYXRlZCBiaW5kaW5ncyBkb24ndCBoYXZl
IHRvCkBAIC0yOTYsNiArMjk3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b25zdHJ1Y3RET01PYmplY3QoY29uc3Qgdjg6OkFyZ3VtZW50cyYsIFdyYXBwZXJUeXBlSW5mbyop
OwogCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdERPTU9iamVjdFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KGNvbnN0IHY4OjpBcmd1bWVudHMmLCBXcmFwcGVyVHlwZUluZm8qKTsKKwogICAgICAgICAv
LyBQcm9jZXNzIGFueSBwZW5kaW5nIEphdmFTY3JpcHQgY29uc29sZSBtZXNzYWdlcy4KICAgICAg
ICAgc3RhdGljIHZvaWQgcHJvY2Vzc0NvbnNvbGVNZXNzYWdlcygpOwogCkBAIC00MDEsNiArNDA1
LDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7
CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4UHJveHk6OmNvbnN0cnVjdERPTU9iamVjdFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKKyAg
ICB7CisgICAgICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKFY4UHJveHk6OlR5cGVFcnJvciwgIkRPTSBvYmplY3QgY29uc3RydWN0
b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOworCisgICAgICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cisg
ICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFY4UHJv
eHk6OlJlZmVyZW5jZUVycm9yLCAiRE9NIG9iamVjdCBjb25zdHJ1Y3RvcidzIGFzc29jaWF0ZWQg
ZnJhbWUgaXMgbm90IGF2YWlsYWJsZSIpOworCisgICAgICAgIC8vIE5vdGU6IGl0J3MgT0sgdG8g
bGV0IHRoaXMgUmVmUHRyIGdvIG91dCBvZiBzY29wZSBiZWNhdXNlIHdlIGFsc28gY2FsbAorICAg
ICAgICAvLyBTZXRET01XcmFwcGVyKCksIHdoaWNoIGVmZmVjdGl2ZWx5IGhvbGRzIGEgcmVmZXJl
bmNlIHRvIG9iai4KKyAgICAgICAgUmVmUHRyPFQ+IG9iaiA9IFQ6OmNyZWF0ZShjb250ZXh0KTsK
KyAgICAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUs
IG9iai5nZXQoKSk7CisgICAgICAgIG9iai0+cmVmKCk7CisgICAgICAgIFY4RE9NV3JhcHBlcjo6
c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9iai5nZXQoKSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKSk7CisgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigp
OworICAgIH0KKwogCiAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiB0b1Y4Q29udGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRl
eHQpOwogCg==
</data>
<flag name="review"
          id="39447"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="39448"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55309</attachid>
            <date>2010-05-06 15:36:55 -0700</date>
            <delta_ts>2010-05-06 15:52:20 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>38687_2</filename>
            <type>text/plain</type>
            <size>6250</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGMyOTc4Ni4uOTI1Y2M1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNS0wNiAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wcm92ZSBjb2RlIGdlbmVyYXRvciBzY3JpcHRzIHRvIHBhc3MgYWRkaXRp
b25hbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0CisgICAgICAgIGFyZ3VtZW50IHRvIHRoZSBjb25z
dHJ1Y3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4Njg3CisKKyAgICAgICAgQ2hhbmdlIGJvdGggSlNDIGFuZCBWOCBnZW5lcmF0b3JzIHRvIGlu
dHJvZHVjZSAiQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCIKKyAgICAgICAgYXR0cmli
dXRlIHRvIGFsbG93IHBhc3NpbmcgdGhlIGFkZGl0aW9uYWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCBhcmd1bWVudCB0bworICAgICAgICB0aGUgY29uc3RydWN0b3IuCisKKyAgICAgICAgVGhlc2Ug
Y2hhbmdlcyBhcmUgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIGF2b2lkIGFkZGluZyBjdXN0b20gYmlu
ZGluZyBjb2RlcworICAgICAgICB3aGVuIHdlIGFkZCB0aGUgRmlsZVJlYWRlciBpbnRlcmZhY2Uu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5Ojpjb25zdHJ1Y3RE
T01PYmplY3RXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisKIDIwMTAtMDUtMDYgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9zZXBoIFBlY29yYXJvLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggZmNiNzE3MS4uNDAyMDhhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xMTE3LDcgKzExMTcsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkcHJvdG9DbGFzc05hbWU7CiAgICAgICAgICRwcm90
b0NsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCi0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCBjb25zdHJ1Y3RvckZvcigkY2xhc3NOYW1lLCAkcHJvdG9DbGFzc05hbWUsICRp
bnRlcmZhY2VOYW1lLCAkdmlzaWJsZUNsYXNzTmFtZSwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FuQmVDb25zdHJ1Y3RlZCJ9KSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCBjb25zdHJ1Y3RvckZvcigkY2xhc3NOYW1lLCAkcHJvdG9DbGFzc05hbWUsICRpbnRlcmZhY2VO
YW1lLCAkdmlzaWJsZUNsYXNzTmFtZSwgJGRhdGFOb2RlKSk7CiAgICAgfQogCiAgICAgIyAtIEFk
ZCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCkBAIC0y
NTk3LDggKzI1OTcsMTAgQEAgc3ViIGNvbnN0cnVjdG9yRm9yCiAgICAgbXkgJHByb3RvQ2xhc3NO
YW1lID0gc2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKICAgICBteSAkdmlz
aWJsZUNsYXNzTmFtZSA9IHNoaWZ0OwotICAgIG15ICRjYW5Db25zdHJ1Y3QgPSBzaGlmdDsKKyAg
ICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKICAgICBteSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAi
JHtjbGFzc05hbWV9Q29uc3RydWN0b3IiOworICAgIG15ICRjYW5Db25zdHJ1Y3QgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5CZUNvbnN0cnVjdGVkIn07CisgICAgbXkgJGNh
bGxXaXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKIAog
bXkgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CiBjbGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fSA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CkBAIC0yNjI2LDcgKzI2MjgsMjAgQEAg
RU9GCiAkaW1wbENvbnRlbnQgLj0gPDwgIkVPRiI7CiAgICAgc3RhdGljIEpTT2JqZWN0KiBjb25z
dHJ1Y3Qke2ludGVyZmFjZU5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNvbnN0cnVj
dG9yLCBjb25zdCBBcmdMaXN0JikKICAgICB7Ci0gICAgICAgIHJldHVybiBhc09iamVjdCh0b0pT
KGV4ZWMsIHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oY29uc3RydWN0b3Ip
LT5nbG9iYWxPYmplY3QoKSwgJHtpbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKCkpKTsKK0VPRgorCisg
ICAgbXkgJGNvbnN0cnVjdG9yQXJnID0gIiI7CisgICAgaWYgKCRjYWxsV2l0aCBhbmQgJGNhbGxX
aXRoIGVxICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IikgeworICAgICAgICAkY29uc3RydWN0b3JB
cmcgPSAiY29udGV4dCI7CiskaW1wbENvbnRlbnQgLj0gPDwgIkVPRiI7CisgICAgICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xh
c3NOYW1lfSo+KGNvbnN0cnVjdG9yKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBSZWZl
cmVuY2VFcnJvcik7CitFT0YKKyAgICB9CisKKyRpbXBsQ29udGVudCAuPSA8PCAiRU9GIjsKKyAg
ICAgICAgcmV0dXJuIGFzT2JqZWN0KHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX0qPihjb25zdHJ1Y3RvciktPmdsb2JhbE9iamVjdCgpLCAke2ludGVyZmFjZU5h
bWV9OjpjcmVhdGUoJHtjb25zdHJ1Y3RvckFyZ30pKSk7CiAgICAgfQogICAgIHZpcnR1YWwgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
CiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5k
ZXggYTM3NDZiMS4uNmQ5NTBiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC0xNzgxLDExICsxNzgxLDE4IEBAIEVORAogCiAgICAgIyBJbiBuYW1l
c3BhY2UgV2ViQ29yZSwgYWRkIGdlbmVyYXRlZCBpbXBsZW1lbnRhdGlvbiBmb3IgJ0NhbkJlQ29u
c3RydWN0ZWQnLgogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5C
ZUNvbnN0cnVjdGVkIn0gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJHY4Q29uc3RydWN0RnVuY3Rpb247CisgICAg
ICAgIG15ICRjYWxsV2l0aCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxX
aXRoIn07CisgICAgICAgIGlmICgkY2FsbFdpdGggYW5kICRjYWxsV2l0aCBlcSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCIpIHsKKyAgICAgICAgICAgICR2OENvbnN0cnVjdEZ1bmN0aW9uID0gImNv
bnN0cnVjdERPTU9iamVjdFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0IjsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICR2OENvbnN0cnVjdEZ1bmN0aW9uID0gImNvbnN0cnVjdERPTU9i
amVjdCI7CisgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiAke2NsYXNzTmFtZX06OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS4ke2ludGVyZmFj
ZU5hbWV9LkNvbnRydWN0b3IiKTsKLSAgICByZXR1cm4gVjhQcm94eTo6Y29uc3RydWN0RE9NT2Jq
ZWN0PCRpbnRlcmZhY2VOYW1lPihhcmdzLCAmaW5mbyk7CisgICAgcmV0dXJuIFY4UHJveHk6OiR7
djhDb25zdHJ1Y3RGdW5jdGlvbn08JGludGVyZmFjZU5hbWU+KGFyZ3MsICZpbmZvKTsKIH0KIEVO
RAogICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAppbmRleCA1MTkwNjQ4Li4wOThkOTU2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlY4RE9NV2luZG93U2hl
bGwuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOEdDQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiV3JhcHBlclR5cGVJbmZv
LmgiCiAjaW5jbHVkZSA8djguaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPiAvLyBzbyBn
ZW5lcmF0ZWQgYmluZGluZ3MgZG9uJ3QgaGF2ZSB0bwpAQCAtMjk2LDYgKzI5Nyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0RE9NT2JqZWN0KGNvbnN0IHY4OjpB
cmd1bWVudHMmLCBXcmFwcGVyVHlwZUluZm8qKTsKIAorICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RET01P
YmplY3RXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb25zdCB2ODo6QXJndW1lbnRzJiwgV3Jh
cHBlclR5cGVJbmZvKik7CisKICAgICAgICAgLy8gUHJvY2VzcyBhbnkgcGVuZGluZyBKYXZhU2Ny
aXB0IGNvbnNvbGUgbWVzc2FnZXMuCiAgICAgICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NDb25zb2xl
TWVzc2FnZXMoKTsKIApAQCAtNDAxLDYgKzQwNSwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogICAgIH0KIAorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgorICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFByb3h5Ojpjb25zdHJ1Y3RET01P
YmplY3RXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUpCisgICAgeworICAgICAgICBpZiAoIWFyZ3MuSXNDb25z
dHJ1Y3RDYWxsKCkpCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihWOFByb3h5OjpUeXBl
RXJyb3IsICIiKTsKKworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
Z2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihWOFByb3h5OjpSZWZlcmVuY2VFcnJvciwgIiIpOwor
CisgICAgICAgIC8vIE5vdGU6IGl0J3MgT0sgdG8gbGV0IHRoaXMgUmVmUHRyIGdvIG91dCBvZiBz
Y29wZSBiZWNhdXNlIHdlIGFsc28gY2FsbAorICAgICAgICAvLyBTZXRET01XcmFwcGVyKCksIHdo
aWNoIGVmZmVjdGl2ZWx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIG9iai4KKyAgICAgICAgUmVmUHRy
PFQ+IG9iaiA9IFQ6OmNyZWF0ZShjb250ZXh0KTsKKyAgICAgICAgVjhET01XcmFwcGVyOjpzZXRE
T01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIG9iai5nZXQoKSk7CisgICAgICAgIG9iai0+
cmVmKCk7CisgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KG9i
ai5nZXQoKSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhhcmdzLkhvbGRlcigpKSk7
CisgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOworICAgIH0KKwogCiAgICAgdjg6OkxvY2Fs
PHY4OjpDb250ZXh0PiB0b1Y4Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
V29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpOwogCg==
</data>
<flag name="review"
          id="39465"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="39466"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>