<?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>98448</bug_id>
          
          <creation_ts>2012-10-04 13:30:04 -0700</creation_ts>
          <short_desc>[v8] Fix npCreateV8ScriptObject crash</short_desc>
          <delta_ts>2012-11-28 12:35:40 -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>New Bugs</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="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734970</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-10-04 13:30:04 -0700</bug_when>
    <thetext>[v8] Fix npCreateV8ScriptObject crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734972</commentid>
    <comment_count>1</comment_count>
      <attachid>167165</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-10-04 13:32:59 -0700</bug_when>
    <thetext>Created attachment 167165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734976</commentid>
    <comment_count>2</comment_count>
      <attachid>167165</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-04 13:41:36 -0700</bug_when>
    <thetext>Comment on attachment 167165
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        npCreateV8ScriptObject was crashing because it was being called after the perContextData had
&gt; +        been torned down. This is fixed by checking for a non-0 perContextData.

Can we write a test for this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743479</commentid>
    <comment_count>3</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-10-16 13:29:38 -0700</bug_when>
    <thetext>I&apos;m unable to repro this bug locally, let alone write a test for it. We&apos;re seeing this happen in crash reports:

Meta information:
Product Name: Chrome
Product Version: 24.0.1283.0
Report ID: b5cb51aff83e2edd
Report Time: 2012/10/01 16:35:58, Mon
Uptime: 7 sec
Cumulative Uptime: 0 sec
OS Name: Windows NT
OS Version: 6.1.7601 Service Pack 1
CPU Architecture: x86
CPU Info: GenuineIntel family 6 model 23 stepping 10
ptype: renderer

Thread 0 *CRASHED* ( EXCEPTION_ACCESS_VIOLATION_READ @ 0x00000028 )

0x54fb8b7a	 [chrome.dll]	 - npv8object.cpp:149 (cs|src|ann)]	WebCore::npCreateV8ScriptObject(_NPP *,v8::Handle&lt;v8::Object&gt;,WebCore::DOMWindow *)
0x54fb82bb	 [chrome.dll]	 - v8nputils.cpp:72 (cs|src|ann)]	WebCore::convertV8ObjectToNPVariant(v8::Local&lt;v8::Value&gt;,NPObject *,_NPVariant *)
0x5555f934	 [chrome.dll]	 - npv8object.cpp:234 (cs|src|ann)]	_NPN_Invoke
0x5662fb3a	 [chrome.dll]	 - npobject_stub.cc:183 (cs|src|ann)]	NPObjectStub::OnInvoke(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *)
0x5662f661	 [chrome.dll]	 - tuple.h:746 (cs|src|ann)]	DispatchToMethod&lt;NPObjectStub,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *),bool,NPIdentifier_Param,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt;,IPC::Message &amp;&gt;(NPObjectStub *,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *),Tuple3&lt;bool,NPIdentifier_Param,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; &gt; const &amp;,Tuple1&lt;IPC::Message &amp;&gt; *)
0x56630118	 [chrome.dll]	 - ipc_message_utils.h:875 (cs|src|ann)]	IPC::SyncMessageSchema&lt;Tuple3&lt;bool,NPIdentifier_Param,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; &gt;,Tuple2&lt;NPVariant_Param &amp;,bool &amp;&gt; &gt;::DispatchDelayReplyWithSendParams&lt;NPObjectStub,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *)&gt;(bool,Tuple3&lt;bool,NPIdentifier_Param,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; &gt; const &amp;,IPC::Message const *,NPObjectStub *,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *))
0x566302d7	 [chrome.dll]	 - plugin_messages.h:490 (cs|src|ann)]	NPObjectMsg_Invoke::DispatchDelayReply&lt;NPObjectStub,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *)&gt;(IPC::Message const *,NPObjectStub *,void ( NPObjectStub::*)(bool,NPIdentifier_Param const &amp;,std::vector&lt;NPVariant_Param,std::allocator&lt;NPVariant_Param&gt; &gt; const &amp;,IPC::Message *))
0x5663065b	 [chrome.dll]	 - npobject_stub.cc:93 (cs|src|ann)]	NPObjectStub::OnMessageReceived(IPC::Message const &amp;)
0x54dc55fc	 [chrome.dll]	 - message_router.cc:47 (cs|src|ann)]	MessageRouter::RouteMessage(IPC::Message const &amp;)
0x5662ef83	 [chrome.dll]	 - np_channel_base.cc:174 (cs|src|ann)]	NPChannelBase::OnMessageReceived(IPC::Message const &amp;)
0x54d3860a	 [chrome.dll]	 - ipc_channel_proxy.cc:261 (cs|src|ann)]	IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const &amp;)
0x54d0e8be	 [chrome.dll]	 - bind_internal.h:1256 (cs|src|ann)]	base::internal::Invoker&lt;2,base::internal::BindState&lt;base::internal::RunnableAdapter&lt;void ( notifier::NonBlockingPushClient::Core::*)(std::vector&lt;notifier::Subscription,std::allocator&lt;notifier::Subscription&gt; &gt; const &amp;)&gt;,void (notifier::NonBlockingPushClient::Core *,std::vector&lt;notifier::Subscription,std::allocator&lt;notifier::Subscription&gt; &gt; const &amp;),void (notifier::NonBlockingPushClient::Core *,std::vector&lt;notifier::Subscription,std::allocator&lt;notifier::Subscription&gt; &gt;)&gt;,void (notifier::NonBlockingPushClient::Core *,std::vector&lt;notifier::Subscription,std::allocator&lt;notifier::Subscription&gt; &gt; const &amp;)&gt;::Run(base::internal::BindStateBase *)
0x54d10b68	 [chrome.dll]	 - message_loop.cc:470 (cs|src|ann)]	MessageLoop::RunTask(base::PendingTask const &amp;)
0x54d108cf	 [chrome.dll]	 - message_loop.cc:661 (cs|src|ann)]	MessageLoop::DoWork()
0x54d10fab	 [chrome.dll]	 - message_pump_default.cc:28 (cs|src|ann)]	base::MessagePumpDefault::Run(base::MessagePump::Delegate *)
0x54d1059a	 [chrome.dll]	 - message_loop.cc:427 (cs|src|ann)]	MessageLoop::RunInternal()
0x54d104f2	 [chrome.dll]	 - run_loop.cc:45 (cs|src|ann)]	base::RunLoop::Run()
0x54d3f887	 [chrome.dll]	 - message_loop.cc:307 (cs|src|ann)]	MessageLoop::Run()
0x54d5c9a7	 [chrome.dll]	 - renderer_main.cc:239 (cs|src|ann)]	RendererMain(content::MainFunctionParams const &amp;)
0x54cf864c	 [chrome.dll]	 - content_main_runner.cc:441 (cs|src|ann)]	content::RunNamedProcessTypeMain(std::basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt; &gt; const &amp;,content::MainFunctionParams const &amp;,content::ContentMainDelegate *)
0x54cf85d3	 [chrome.dll]	 - content_main_runner.cc:734 (cs|src|ann)]	content::ContentMainRunnerImpl::Run()
0x54cea5fc	 [chrome.dll]	 - content_main.cc:35 (cs|src|ann)]	content::ContentMain(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *,content::ContentMainDelegate *)
0x54cea588	 [chrome.dll]	 - chrome_main.cc:28 (cs|src|ann)]	ChromeMain
0x00f1510d	 [chrome.exe]	 - client_util.cc:440 (cs|src|ann)]	MainDllLoader::Launch(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *)
0x00f17933	 [chrome.exe]	 - chrome_exe_main_win.cc:76 (cs|src|ann)]	RunChrome(HINSTANCE__ *)
0x00f1799e	 [chrome.exe]	 - chrome_exe_main_win.cc:92 (cs|src|ann)]	wWinMain
0x00f702ec	 [chrome.exe]	 - crt0.c:275]	__tmainCRTStartup
0x7609ed6b	 [kernel32.dll]	 + 0x0004ed6b]	BaseThreadInitThunk
0x7707377a	 [ntdll.dll]	 + 0x0006377a]	__RtlUserThreadStart
0x7707374d	 [ntdll.dll]	 + 0x0006374d]	_RtlUserThreadStart
Delete comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743483</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-16 13:33:47 -0700</bug_when>
    <thetext>It seems like you should be able to write a LayoutTest for this issue using the test plugin.  You just need to call NPN_Invoke on an object from a document that is no longer being displayed in a frame.  You should also be able to do it using an unit test, but its probably better use the test plugin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776141</commentid>
    <comment_count>5</comment_count>
      <attachid>176129</attachid>
    <who name="">lazyboy</who>
    <bug_when>2012-11-26 17:53:21 -0800</bug_when>
    <thetext>Created attachment 176129
Added LayoutTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776213</commentid>
    <comment_count>6</comment_count>
      <attachid>176129</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-26 19:02:10 -0800</bug_when>
    <thetext>Comment on attachment 176129
Added LayoutTest

Thanks for the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776228</commentid>
    <comment_count>7</comment_count>
      <attachid>176129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 19:41:46 -0800</bug_when>
    <thetext>Comment on attachment 176129
Added LayoutTest

Clearing flags on attachment: 176129

Committed r135804: &lt;http://trac.webkit.org/changeset/135804&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167165</attachid>
            <date>2012-10-04 13:32:59 -0700</date>
            <delta_ts>2012-10-04 13:41:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98448-20121004163209.patch</filename>
            <type>text/plain</type>
            <size>3461</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFjODFiZjIyMzhiYTRj
OGU0ZjYwNzUzM2JkMWU4ZDRkYjZkYzZlYi4uMjEzOWZjYzJjMTYyNmE1OTk0N2Q3N2EzNDkzZDc2
MmZjNWFlNDY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA0ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFt2OF0gRml4IG5wQ3Jl
YXRlVjhTY3JpcHRPYmplY3QgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4NDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgbnBDcmVhdGVWOFNjcmlwdE9iamVjdCB3YXMgY3Jhc2hpbmcgYmVjYXVz
ZSBpdCB3YXMgYmVpbmcgY2FsbGVkIGFmdGVyIHRoZSBwZXJDb250ZXh0RGF0YSBoYWQKKyAgICAg
ICAgYmVlbiB0b3JuZWQgZG93bi4gVGhpcyBpcyBmaXhlZCBieSBjaGVja2luZyBmb3IgYSBub24t
MCBwZXJDb250ZXh0RGF0YS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bnBDcmVhdGVWOFNjcmlwdE9iamVjdCk6CisKIDIwMTItMTAt
MDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcmFzaCB3aGVu
IGNhbGxpbmcgZG9jdW1lbnQub3BlbiBkdXJpbmcgdW5sb2FkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L05QVjhPYmplY3QuY3BwCmluZGV4IDIyNDAzMDBlOTAwODZmNmNhMjdjNzAxZjk5ZjFm
ZDRmZTA1ZjFkYjYuLmFjNGI4MTRiM2FkNmYyMmJjMTlmM2IxNzRmYjQ5ZGNlNmM0MTE4YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCkBAIC0xNDMsMjkgKzE0
MywzMyBAQCBOUE9iamVjdCogbnBDcmVhdGVWOFNjcmlwdE9iamVjdChOUFAgbnBwLCB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgRE9NV2luZAogICAgICAgICB9CiAgICAgfQogCi0gICAg
aW50IHY4T2JqZWN0SGFzaCA9IG9iamVjdC0+R2V0SWRlbnRpdHlIYXNoKCk7Ci0gICAgQVNTRVJU
KHY4T2JqZWN0SGFzaCk7Ci0gICAgVjhOUE9iamVjdE1hcCogdjhOUE9iamVjdE1hcCA9IFY4UGVy
Q29udGV4dERhdGE6OmZyb20ob2JqZWN0LT5DcmVhdGlvbkNvbnRleHQoKSktPnY4TlBPYmplY3RN
YXAoKTsKLSAgICBWOE5QT2JqZWN0TWFwOjppdGVyYXRvciBpdGVyID0gdjhOUE9iamVjdE1hcC0+
ZmluZCh2OE9iamVjdEhhc2gpOwotICAgIGlmIChpdGVyICE9IHY4TlBPYmplY3RNYXAtPmVuZCgp
KSB7Ci0gICAgICAgIFY4TlBPYmplY3RWZWN0b3ImIG9iamVjdHMgPSBpdGVyLT5zZWNvbmQ7Ci0g
ICAgICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBvYmplY3RzLnNpemUoKTsgKytp
bmRleCkgewotICAgICAgICAgICAgVjhOUE9iamVjdCogdjhucE9iamVjdCA9IG9iamVjdHMuYXQo
aW5kZXgpOwotICAgICAgICAgICAgaWYgKHY4bnBPYmplY3QtPnJvb3RPYmplY3QgPT0gcm9vdCkg
ewotICAgICAgICAgICAgICAgIEFTU0VSVCh2OG5wT2JqZWN0LT52OE9iamVjdCA9PSBvYmplY3Qp
OwotICAgICAgICAgICAgICAgIF9OUE5fUmV0YWluT2JqZWN0KCZ2OG5wT2JqZWN0LT5vYmplY3Qp
OwotICAgICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PE5QT2JqZWN0Kj4odjhu
cE9iamVjdCk7CisgICAgVjhOUE9iamVjdFZlY3Rvciogb2JqZWN0VmVjdG9yID0gMDsKKyAgICBp
ZiAoVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERhdGEgPSBWOFBlckNvbnRleHREYXRhOjpm
cm9tKG9iamVjdC0+Q3JlYXRpb25Db250ZXh0KCkpKSB7CisgICAgICAgIGludCB2OE9iamVjdEhh
c2ggPSBvYmplY3QtPkdldElkZW50aXR5SGFzaCgpOworICAgICAgICBBU1NFUlQodjhPYmplY3RI
YXNoKTsKKyAgICAgICAgVjhOUE9iamVjdE1hcCogdjhOUE9iamVjdE1hcCA9IHBlckNvbnRleHRE
YXRhLT52OE5QT2JqZWN0TWFwKCk7CisgICAgICAgIFY4TlBPYmplY3RNYXA6Oml0ZXJhdG9yIGl0
ZXIgPSB2OE5QT2JqZWN0TWFwLT5maW5kKHY4T2JqZWN0SGFzaCk7CisgICAgICAgIGlmIChpdGVy
ICE9IHY4TlBPYmplY3RNYXAtPmVuZCgpKSB7CisgICAgICAgICAgICBWOE5QT2JqZWN0VmVjdG9y
JiBvYmplY3RzID0gaXRlci0+c2Vjb25kOworICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXgg
PSAwOyBpbmRleCA8IG9iamVjdHMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAg
VjhOUE9iamVjdCogdjhucE9iamVjdCA9IG9iamVjdHMuYXQoaW5kZXgpOworICAgICAgICAgICAg
ICAgIGlmICh2OG5wT2JqZWN0LT5yb290T2JqZWN0ID09IHJvb3QpIHsKKyAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKHY4bnBPYmplY3QtPnY4T2JqZWN0ID09IG9iamVjdCk7CisgICAgICAgICAg
ICAgICAgICAgIF9OUE5fUmV0YWluT2JqZWN0KCZ2OG5wT2JqZWN0LT5vYmplY3QpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOUE9iamVjdCo+KHY4bnBPYmpl
Y3QpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGl0ZXIgPSB2OE5QT2JqZWN0TWFwLT5zZXQodjhPYmplY3RIYXNoLCBWOE5Q
T2JqZWN0VmVjdG9yKCkpLml0ZXJhdG9yOworICAgICAgICAgICAgb2JqZWN0VmVjdG9yID0gJml0
ZXItPnNlY29uZDsKICAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGl0ZXIgPSB2OE5Q
T2JqZWN0TWFwLT5zZXQodjhPYmplY3RIYXNoLCBWOE5QT2JqZWN0VmVjdG9yKCkpLml0ZXJhdG9y
OwogICAgIH0KLQogICAgIFY4TlBPYmplY3QqIHY4bnBPYmplY3QgPSByZWludGVycHJldF9jYXN0
PFY4TlBPYmplY3QqPihfTlBOX0NyZWF0ZU9iamVjdChucHAsICZWOE5QT2JqZWN0Q2xhc3MpKTsK
ICAgICB2OG5wT2JqZWN0LT52OE9iamVjdCA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpO
ZXcob2JqZWN0KTsKICAgICB2OG5wT2JqZWN0LT5yb290T2JqZWN0ID0gcm9vdDsKIAotICAgIGl0
ZXItPnNlY29uZC5hcHBlbmQodjhucE9iamVjdCk7CisgICAgaWYgKG9iamVjdFZlY3RvcikKKyAg
ICAgICAgb2JqZWN0VmVjdG9yLT5hcHBlbmQodjhucE9iamVjdCk7CiAKICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxOUE9iamVjdCo+KHY4bnBPYmplY3QpOwogfQo=
</data>
<flag name="review"
          id="179747"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="179749"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176129</attachid>
            <date>2012-11-26 17:53:21 -0800</date>
            <delta_ts>2012-11-26 19:41:46 -0800</delta_ts>
            <desc>Added LayoutTest</desc>
            <filename>bug-98448-20121126205059.patch</filename>
            <type>text/plain</type>
            <size>7894</size>
            <attacher>lazyboy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MmVmNDJkYTJhNDA2
ZDg3MmE5YTBjMzdiYjgxYWVlNDNmOWQ1NS4uOTQwNDYyNjJmODgxZmY3YWEyMTZhMDI0YzIxNmNm
ZDVmOGQwMjM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTI2ICBJc3Rp
YXF1ZSBBaG1lZCAgPGxhenlib3lAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENoZWNrIGZvciBl
bXB0eSBwZXJDb250ZXh0RGF0YSB3aGlsZSBjcmVhdGluZyBOUCBWOCBPYmplY3QuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQ0OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVzIGNyYXNoIGluIG5w
Q3JlYXRlVjhTY3JpcHRPYmplY3QoKSwgaWYgTlAgSW52b2tlIGlzIGNhbGxlZCBmcm9tIGEgZG9j
dW1lbnQKKyAgICAgICAgdGhhdCBpcyBubyBsb25nZXIgZGlzcGxheWVkIGluIGZyYW1lIChpc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSA9PQorICAgICAgICBmYWxzZSksIHdlIGhhdmUgZW1w
dHkgcGVyQ29udGV4dERhdGEgYW5kIHRoaXMgcmVzdWx0cyBpbiBpbnZhbGlkIG1lbW9yeSBhY2Nl
c3MuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9lbXB0eS1wZXIt
Y29udGV4dC1kYXRhLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bnBDcmVhdGVWOFNjcmlwdE9iamVjdCk6CisKIDIwMTItMTEt
MjYgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gRml4IFF0IG1pbmltYWwgY29tcGlsYXRpb24gYWZ0ZXIgcjEzNTcxMy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAKaW5kZXggZTk0MWU2MzFmOWEwMTQw
NjAxNjY0OTFkYWZkOWQ2MDMxYTE2MTg2OS4uOGYwOWVjYzdjMjkyZjQ4YTJmYWFlZTk2MGRhNDc4
ZDc5OGIzMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAK
QEAgLTE0NCwyOSArMTQ0LDMzIEBAIE5QT2JqZWN0KiBucENyZWF0ZVY4U2NyaXB0T2JqZWN0KE5Q
UCBucHAsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0LCBET01XaW5kCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBpbnQgdjhPYmplY3RIYXNoID0gb2JqZWN0LT5HZXRJZGVudGl0eUhhc2go
KTsKLSAgICBBU1NFUlQodjhPYmplY3RIYXNoKTsKLSAgICBWOE5QT2JqZWN0TWFwKiB2OE5QT2Jq
ZWN0TWFwID0gVjhQZXJDb250ZXh0RGF0YTo6ZnJvbShvYmplY3QtPkNyZWF0aW9uQ29udGV4dCgp
KS0+djhOUE9iamVjdE1hcCgpOwotICAgIFY4TlBPYmplY3RNYXA6Oml0ZXJhdG9yIGl0ZXIgPSB2
OE5QT2JqZWN0TWFwLT5maW5kKHY4T2JqZWN0SGFzaCk7Ci0gICAgaWYgKGl0ZXIgIT0gdjhOUE9i
amVjdE1hcC0+ZW5kKCkpIHsKLSAgICAgICAgVjhOUE9iamVjdFZlY3RvciYgb2JqZWN0cyA9IGl0
ZXItPnZhbHVlOwotICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgb2JqZWN0
cy5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIFY4TlBPYmplY3QqIHY4bnBPYmplY3Qg
PSBvYmplY3RzLmF0KGluZGV4KTsKLSAgICAgICAgICAgIGlmICh2OG5wT2JqZWN0LT5yb290T2Jq
ZWN0ID09IHJvb3QpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQodjhucE9iamVjdC0+djhPYmpl
Y3QgPT0gb2JqZWN0KTsKLSAgICAgICAgICAgICAgICBfTlBOX1JldGFpbk9iamVjdCgmdjhucE9i
amVjdC0+b2JqZWN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxO
UE9iamVjdCo+KHY4bnBPYmplY3QpOworICAgIFY4TlBPYmplY3RWZWN0b3IqIG9iamVjdFZlY3Rv
ciA9IDA7CisgICAgaWYgKFY4UGVyQ29udGV4dERhdGEqIHBlckNvbnRleHREYXRhID0gVjhQZXJD
b250ZXh0RGF0YTo6ZnJvbShvYmplY3QtPkNyZWF0aW9uQ29udGV4dCgpKSkgeworICAgICAgICBp
bnQgdjhPYmplY3RIYXNoID0gb2JqZWN0LT5HZXRJZGVudGl0eUhhc2goKTsKKyAgICAgICAgQVNT
RVJUKHY4T2JqZWN0SGFzaCk7CisgICAgICAgIFY4TlBPYmplY3RNYXAqIHY4TlBPYmplY3RNYXAg
PSBwZXJDb250ZXh0RGF0YS0+djhOUE9iamVjdE1hcCgpOworICAgICAgICBWOE5QT2JqZWN0TWFw
OjppdGVyYXRvciBpdGVyID0gdjhOUE9iamVjdE1hcC0+ZmluZCh2OE9iamVjdEhhc2gpOworICAg
ICAgICBpZiAoaXRlciAhPSB2OE5QT2JqZWN0TWFwLT5lbmQoKSkgeworICAgICAgICAgICAgVjhO
UE9iamVjdFZlY3RvciYgb2JqZWN0cyA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgZm9yIChz
aXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG9iamVjdHMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAg
ICAgICAgICAgICAgVjhOUE9iamVjdCogdjhucE9iamVjdCA9IG9iamVjdHMuYXQoaW5kZXgpOwor
ICAgICAgICAgICAgICAgIGlmICh2OG5wT2JqZWN0LT5yb290T2JqZWN0ID09IHJvb3QpIHsKKyAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHY4bnBPYmplY3QtPnY4T2JqZWN0ID09IG9iamVjdCk7
CisgICAgICAgICAgICAgICAgICAgIF9OUE5fUmV0YWluT2JqZWN0KCZ2OG5wT2JqZWN0LT5vYmpl
Y3QpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOUE9iamVj
dCo+KHY4bnBPYmplY3QpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGl0ZXIgPSB2OE5QT2JqZWN0TWFwLT5zZXQodjhPYmpl
Y3RIYXNoLCBWOE5QT2JqZWN0VmVjdG9yKCkpLml0ZXJhdG9yOworICAgICAgICAgICAgb2JqZWN0
VmVjdG9yID0gJml0ZXItPnZhbHVlOwogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
aXRlciA9IHY4TlBPYmplY3RNYXAtPnNldCh2OE9iamVjdEhhc2gsIFY4TlBPYmplY3RWZWN0b3Io
KSkuaXRlcmF0b3I7CiAgICAgfQotCiAgICAgVjhOUE9iamVjdCogdjhucE9iamVjdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8VjhOUE9iamVjdCo+KF9OUE5fQ3JlYXRlT2JqZWN0KG5wcCwgJlY4TlBPYmpl
Y3RDbGFzcykpOwogICAgIHY4bnBPYmplY3QtPnY4T2JqZWN0ID0gdjg6OlBlcnNpc3RlbnQ8djg6
Ok9iamVjdD46Ok5ldyhvYmplY3QpOwogICAgIHY4bnBPYmplY3QtPnJvb3RPYmplY3QgPSByb290
OwogCi0gICAgaXRlci0+dmFsdWUuYXBwZW5kKHY4bnBPYmplY3QpOworICAgIGlmIChvYmplY3RW
ZWN0b3IpCisgICAgICAgIG9iamVjdFZlY3Rvci0+YXBwZW5kKHY4bnBPYmplY3QpOwogCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TlBPYmplY3QqPih2OG5wT2JqZWN0KTsKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzOGY5NDhkOGU4ZjA4YmFmYWU1NzkxNzk1OGY0MjkwNTQzODY5NTUzLi5kMDEyNDlkZmYzMWYy
MTU2YjRjMDk2NjhkN2QyMTcyNDQ0ZGRmMTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MTEtMjYgIElzdGlhcXVlIEFobWVkICA8bGF6eWJveUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
Q2hlY2sgZm9yIGVtcHR5IHBlckNvbnRleHREYXRhIHdoaWxlIGNyZWF0aW5nIE5QIFY4IE9iamVj
dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDQ4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMg
Y3Jhc2ggaW4gbnBDcmVhdGVWOFNjcmlwdE9iamVjdCgpLCBpZiBOUCBJbnZva2UgaXMgY2FsbGVk
IGZyb20gYSBkb2N1bWVudAorICAgICAgICB0aGF0IGlzIG5vIGxvbmdlciBkaXNwbGF5ZWQgaW4g
ZnJhbWUgKGlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpID09CisgICAgICAgIGZhbHNlKSwg
d2UgaGF2ZSBlbXB0eSBwZXJDb250ZXh0RGF0YSBhbmQgdGhpcyByZXN1bHRzIGluIGludmFsaWQg
bWVtb3J5IGFjY2Vzcy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvZW1w
dHktcGVyLWNvbnRleHQtZGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3BsdWdpbnMvZW1wdHktcGVyLWNvbnRleHQtZGF0YS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3Jlc291cmNlcy9zY3JpcHQtY29u
dGFpbmVyLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG9iamVjdCBwcmV2aWV3
IGRvZXMgbm90IHJlbmRlciBub2RlIGlkLCBjbGFzc05hbWU7IGxvZ3MgdG9vIG1hbnkgZnVuY3Rp
b25zIGZvciBqUXVlcnkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9wbHVnaW5zL2VtcHR5LXBlci1jb250ZXh0LWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9lbXB0eS1wZXItY29udGV4dC1kYXRhLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNzM0ZDViNjdiMDYxZjI2N2I5MTNhNzhhZDYzZTUwMTkyYWMx
Y2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1
Z2lucy9lbXB0eS1wZXItY29udGV4dC1kYXRhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworCitUaGlzIHRlc3RzIHRoYXQgaW52b2tpbmcgYSBwbHVnaW4gb2JqZWN0IGZyb20gYSAoaWZy
YW1lKSBkb2N1bWVudCB0aGF0IGlzIG5vIGxvbmdlciB2aXNpYmxlIGluIGEgZnJhbWUgZG9lc24n
dCBjcmFzaCB0aGUgcmVuZGVyZXIuIElmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLCB0aGUgd29y
ZCBTVUNDRVNTIHNob3VsZCBiZSBzZWVuIGJlbG93LgorU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy9lbXB0eS1wZXItY29udGV4dC1kYXRh
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL2VtcHR5LXBlci1j
b250ZXh0LWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmYyNWI0YTEzOTUxZjRkYjRiNTQ5OTJkODhk
OWZlODM1Yzg5NDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vcGx1Z2lucy9lbXB0eS1wZXItY29udGV4dC1kYXRhLmh0bWwKQEAgLTAsMCArMSwyOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIC8vIFNvIHRoYXQgd2UgY2FuIGNhdGNoIGNyYXNoIGZhaWx1cmUuCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgdmFy
IHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxnJyk7CisgICAgdmFyIGlmcmFtZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JpcHQtY29udGFpbmVyLWZyYW1lLWlkJyk7CisgICAg
ZnJhbWVTY3JpcHRGdW5jdGlvbiA9IGlmcmFtZS5jb250ZW50V2luZG93WyduZXctc2NyaXB0LW9i
amVjdC1pbi1mcmFtZSddOworICAgIGlmcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGlmcmFt
ZSk7CisgICAgcC50ZXN0U2NyaXB0T2JqZWN0SW52b2tlKCdmcmFtZVNjcmlwdEZ1bmN0aW9uJywg
J2NyZWF0ZU9iamVjdCcpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5p
bm5lckhUTUwgPSAnU1VDQ0VTUyc7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keT4KKzxlbWJl
ZCBpZD0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIj48L2Vt
YmVkPjxQPgorPGlmcmFtZSBpZD0ic2NyaXB0LWNvbnRhaW5lci1mcmFtZS1pZCIgc3JjPSJyZXNv
dXJjZXMvc2NyaXB0LWNvbnRhaW5lci5odG1sIiBvbmxvYWQ9J3J1blRlc3QoKSc+PC9pZnJhbWU+
Cis8ZGl2PlRoaXMgdGVzdHMgdGhhdCBpbnZva2luZyBhIHBsdWdpbiBvYmplY3QgZnJvbSBhIChp
ZnJhbWUpIGRvY3VtZW50IHRoYXQgaXMgbm8gbG9uZ2VyIHZpc2libGUgaW4gYSBmcmFtZSBkb2Vz
bid0IGNyYXNoIHRoZSByZW5kZXJlci4gSWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwsIHRoZSB3
b3JkIFNVQ0NFU1Mgc2hvdWxkIGJlIHNlZW4gYmVsb3cuPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PkZBSUxFRDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3Jlc291cmNlcy9zY3JpcHQtY29udGFpbmVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3Jlc291cmNlcy9zY3Jp
cHQtY29udGFpbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTIxYzUzMzZmNWIxOTMxNjZlOTZiODVjZDdi
MzI1MmUwZDQxMzg1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3BsdWdpbnMvcmVzb3VyY2VzL3NjcmlwdC1jb250YWluZXIuaHRtbApAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICB3aW5kb3dbJ25ldy1zY3JpcHQtb2JqZWN0LWlu
LWZyYW1lJ10gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBGYWN0b3J5RnVuY3Rp
b24oKTsKKyAgICAgICAgfTsKKyAgICAgICAgLy8gQSBzaW1wbGUgc2NyaXB0IG9iamVjdCB3aXRo
IGEgbWVtYmVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMKKyAgICAgICAgLy8gYW4gTlBPYmplY3QgYXMg
YW4gYXJndW1lbnQKKyAgICAgICAgRmFjdG9yeUZ1bmN0aW9uID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB2YXIgVGVzdE9iamVjdCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIFRlc3RPYmplY3QucHJvdG90eXBlLmNyZWF0ZU9iamVjdCA9IGZ1bmN0aW9uKHBs
dWdpbikgeworICAgICAgICAgICAgICAgIHZhciBuZXdPYmplY3QgPSBwbHVnaW4udGVzdENsb25l
T2JqZWN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ld09iamVjdDsKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBuZXcgVGVzdE9iamVjdCgpOworICAgICAg
ICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICB9OworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>