<?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>220382</bug_id>
          
          <creation_ts>2021-01-06 13:49:50 -0800</creation_ts>
          <short_desc>Nullptr crash in LibWebRTCDTMFSenderBackend constructor via RTCRtpSender::dtmf</short_desc>
          <delta_ts>2021-02-04 21:07:13 -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>WebRTC</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717767</commentid>
    <comment_count>0</comment_count>
      <attachid>417125</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-06 13:49:50 -0800</bug_when>
    <thetext>Created attachment 417125
Test

ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000118596695 bp 0x7ffeecea1dd0 sp 0x7ffeecea1da0 T0)

    #0 0x118596695 in WebCore::LibWebRTCDTMFSenderBackend::LibWebRTCDTMFSenderBackend(rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt;&amp;&amp;)+0xb5 (WebCore.framework/Versions/A/WebCore:x86_64+0x514a695)
    #1 0x1185967c8 in WebCore::LibWebRTCDTMFSenderBackend::LibWebRTCDTMFSenderBackend(rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt;&amp;&amp;)+0x8 (WebCore.framework/Versions/A/WebCore:x86_64+0x514a7c8)
    #2 0x1136ccc2f in std::__1::__unique_if&lt;WebCore::LibWebRTCDTMFSenderBackend&gt;::__unique_single std::__1::make_unique&lt;WebCore::LibWebRTCDTMFSenderBackend, rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt; &gt;(rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt;&amp;&amp;)+0x2f (WebCore.framework/Versions/A/WebCore:x86_64+0x280c2f)
    #3 0x1136cbd86 in WebCore::LibWebRTCRtpSenderBackend::createDTMFBackend()+0x106 (WebCore.framework/Versions/A/WebCore:x86_64+0x27fd86)
    #4 0x115ccaf22 in WebCore::RTCRtpSender::dtmf()+0x192 (WebCore.framework/Versions/A/WebCore:x86_64+0x287ef22)
    #5 0x1149a043d in WebCore::jsRTCRtpSender_dtmfGetter(JSC::JSGlobalObject&amp;, WebCore::JSRTCRtpSender&amp;)+0x10d (WebCore.framework/Versions/A/WebCore:x86_64+0x155443d)
    #6 0x1148e92cc in long long WebCore::IDLAttribute&lt;WebCore::JSRTCRtpSender&gt;::get&lt;&amp;(WebCore::jsRTCRtpSender_dtmfGetter(JSC::JSGlobalObject&amp;, WebCore::JSRTCRtpSender&amp;)), (WebCore::CastedThisErrorBehavior)3&gt;(JSC::JSGlobalObject&amp;, long long, char const*)+0x2c (WebCore.framework/Versions/A/WebCore:x86_64+0x149d2cc)
    #7 0x1148e9298 in WebCore::jsRTCRtpSender_dtmf(JSC::JSGlobalObject*, long long, JSC::PropertyName)+0x8 (WebCore.framework/Versions/A/WebCore:x86_64+0x149d298)
    #8 0x135abcc56 in JSC::PropertySlot::customGetter(JSC::JSGlobalObject*, JSC::PropertyName) const+0x2a6 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2f60c56)
    #9 0x135243531 in JSC::LLInt::performLLIntGetByID(JSC::Instruction const*, JSC::CodeBlock*, JSC::JSGlobalObject*, JSC::JSValue, JSC::Identifier const&amp;, JSC::GetByIdModeMetadata&amp;)+0xe91 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x26e7531)
    #10 0x135242451 in llint_slow_path_get_by_id+0x211 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x26e6451)
    #11 0x1337797e8 in llint_entry+0x94c0 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0xc1d7e8)
    #12 0x133770128 in vmEntryToJavaScript+0xd7 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0xc14128)
    #13 0x134f52893 in JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::JSGlobalObject*, JSC::JSObject*)+0x7193 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x23f6893)
    #14 0x1356c7ebe in JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0x21e (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2b6bebe)
    #15 0x1356c8177 in JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0xe7 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2b6c177)
    #16 0x11656a7a9 in WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0xd9 (WebCore.framework/Versions/A/WebCore:x86_64+0x311e7a9)
    #17 0x116569fb9 in WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)+0x2e9 (WebCore.framework/Versions/A/WebCore:x86_64+0x311dfb9)
    #18 0x116569bad in WebCore::ScriptController::evaluateInWorldIgnoringException(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)+0xed (WebCore.framework/Versions/A/WebCore:x86_64+0x311dbad)
    #19 0x11656a9af in WebCore::ScriptController::evaluateIgnoringException(WebCore::ScriptSourceCode const&amp;)+0x1f (WebCore.framework/Versions/A/WebCore:x86_64+0x311e9af)
    #20 0x116e4720c in WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&amp;)+0x3bc (WebCore.framework/Versions/A/WebCore:x86_64+0x39fb20c)
    #21 0x116e43e5e in WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport)+0xb0e (WebCore.framework/Versions/A/WebCore:x86_64+0x39f7e5e)
    #22 0x1175a8ec6 in WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&amp;, WTF::TextPosition const&amp;)+0x206 (WebCore.framework/Versions/A/WebCore:x86_64+0x415cec6)
    #23 0x1175a8b94 in WebCore::HTMLScriptRunner::execute(WTF::Ref&lt;WebCore::ScriptElement, WTF::RawPtrTraits&lt;WebCore::ScriptElement&gt; &gt;&amp;&amp;, WTF::TextPosition const&amp;)+0x84 (WebCore.framework/Versions/A/WebCore:x86_64+0x415cb94)
    #24 0x11757f662 in WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()+0x3f2 (WebCore.framework/Versions/A/WebCore:x86_64+0x4133662)
    #25 0x11757fd27 in WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;)+0x367 (WebCore.framework/Versions/A/WebCore:x86_64+0x4133d27)
    #26 0x11757ec4e in WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)+0x18e (WebCore.framework/Versions/A/WebCore:x86_64+0x4132c4e)
    #27 0x11757e815 in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)+0x65 (WebCore.framework/Versions/A/WebCore:x86_64+0x4132815)
    #28 0x117580d72 in WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::RawPtrTraits&lt;WTF::StringImpl&gt;, WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;)+0x332 (WebCore.framework/Versions/A/WebCore:x86_64+0x4134d72)
    #29 0x116bfb1ff in WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;)+0x14f (WebCore.framework/Versions/A/WebCore:x86_64+0x37af1ff)
    #30 0x117aff77b in WebCore::DocumentWriter::end()+0x14b (WebCore.framework/Versions/A/WebCore:x86_64+0x46b377b)
    #31 0x117ab018c in WebCore::DocumentLoader::finishedLoading()+0x2dc (WebCore.framework/Versions/A/WebCore:x86_64+0x466418c)
    #32 0x117aafb09 in WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&amp;, WebCore::NetworkLoadMetrics const&amp;)+0x2c9 (WebCore.framework/Versions/A/WebCore:x86_64+0x4663b09)
    #33 0x117c84b6f in WebCore::CachedResource::checkNotify(WebCore::NetworkLoadMetrics const&amp;)+0x17f (WebCore.framework/Versions/A/WebCore:x86_64+0x4838b6f)
    #34 0x117c7f1be in WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)+0x4e (WebCore.framework/Versions/A/WebCore:x86_64+0x48331be)
    #35 0x117c80a78 in WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)+0x258 (WebCore.framework/Versions/A/WebCore:x86_64+0x4834a78)
    #36 0x117bf5162 in WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&amp;)+0x732 (WebCore.framework/Versions/A/WebCore:x86_64+0x47a9162)
    #37 0x107e5dc66 in WebKit::WebResourceLoader::didFinishResourceLoad(WebCore::NetworkLoadMetrics const&amp;)+0x286 (WebKit.framework/Versions/A/WebKit:x86_64+0x20d1c66)
    #38 0x108537121 in void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;, 0ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;)+0x61 (WebKit.framework/Versions/A/WebKit:x86_64+0x27ab121)
    #39 0x1085370a8 in void IPC::callMemberFunction&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;), std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WebCore::NetworkLoadMetrics&gt;&amp;&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;))+0x28 (WebKit.framework/Versions/A/WebKit:x86_64+0x27ab0a8)
    #40 0x108534b16 in void IPC::handleMessage&lt;Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::NetworkLoadMetrics const&amp;))+0x146 (WebKit.framework/Versions/A/WebKit:x86_64+0x27a8b16)
    #41 0x108534123 in WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::Decoder&amp;)+0x1a3 (WebKit.framework/Versions/A/WebKit:x86_64+0x27a8123)
    #42 0x107e49c0a in WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)+0xfa (WebKit.framework/Versions/A/WebKit:x86_64+0x20bdc0a)
    #43 0x105e2fb93 in IPC::Connection::dispatchMessage(IPC::Decoder&amp;)+0x293 (WebKit.framework/Versions/A/WebKit:x86_64+0xa3b93)
    #44 0x105e31507 in IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)+0x167 (WebKit.framework/Versions/A/WebKit:x86_64+0xa5507)
    #45 0x105e32026 in IPC::Connection::dispatchOneIncomingMessage()+0x196 (WebKit.framework/Versions/A/WebKit:x86_64+0xa6026)
    #46 0x105e505f5 in IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8::operator()()+0x35 (WebKit.framework/Versions/A/WebKit:x86_64+0xc45f5)
    #47 0x105e5055c in WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8, void&gt;::call()+0xc (WebKit.framework/Versions/A/WebKit:x86_64+0xc455c)
    #48 0x132b945ce in WTF::Function&lt;void ()&gt;::operator()() const+0x3e (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x385ce)
    #49 0x132c2da28 in WTF::RunLoop::performWork()+0x228 (JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0xd1a28)

&lt;rdar://problem/71712462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717874</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-06 23:24:05 -0800</bug_when>
    <thetext>This crash should not happen with normal peer connection.


We could update MockRtpSender to return a mock dtmf.
Or we could add a test in LibWebRTCRtpSenderBackend::createDTMFBackend().
But I do not see real value in doing so: AudioRtpSender::GetDtmfSender() is expected to return a valid dtmf sender.

Ryosuke, how did you hit this crash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717876</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-06 23:29:30 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #1)
&gt; This crash should not happen with normal peer connection.
&gt; 
&gt; 
&gt; We could update MockRtpSender to return a mock dtmf.
&gt; Or we could add a test in LibWebRTCRtpSenderBackend::createDTMFBackend().
&gt; But I do not see real value in doing so: AudioRtpSender::GetDtmfSender() is
&gt; expected to return a valid dtmf sender.
&gt; 
&gt; Ryosuke, how did you hit this crash?

There is a test attached!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717884</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-06 23:57:52 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #2)
&gt; (In reply to youenn fablet from comment #1)
&gt; &gt; This crash should not happen with normal peer connection.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; We could update MockRtpSender to return a mock dtmf.
&gt; &gt; Or we could add a test in LibWebRTCRtpSenderBackend::createDTMFBackend().
&gt; &gt; But I do not see real value in doing so: AudioRtpSender::GetDtmfSender() is
&gt; &gt; expected to return a valid dtmf sender.
&gt; &gt; 
&gt; &gt; Ryosuke, how did you hit this crash?
&gt; 
&gt; There is a test attached!

Right, but the test is enabling the mock connection backend.
It would not be fine to have this crash with a real connection.

The mock connection backend is not supporting DTMF and I think it is fine to consider this is configuration unsupported.
I can fix it if this is causing issues with fuzzers for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724171</commentid>
    <comment_count>4</comment_count>
      <attachid>418851</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-02-01 02:59:52 -0800</bug_when>
    <thetext>Created attachment 418851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724177</commentid>
    <comment_count>5</comment_count>
      <attachid>418851</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-01 03:10:59 -0800</bug_when>
    <thetext>Comment on attachment 418851
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Provide mock dtmf sender.

Patch seems fine but I wonder what the end goal is.
We do not get any additional code coverage/functionality coverage for this patch.
If the issue is for fuzzers to stop crashing, that seems fine.

&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:170
&gt; +class MockDtmfSender : public webrtc::DtmfSenderInterface {

final.

&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:179
&gt; +    int inter_tone_gap() const override { return 50; }

final an probably private as well.

&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:209
&gt; +    rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt; m_dtmfSender;

mutable to remove the const_cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724182</commentid>
    <comment_count>6</comment_count>
      <attachid>418852</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-02-01 03:26:12 -0800</bug_when>
    <thetext>Created attachment 418852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724184</commentid>
    <comment_count>7</comment_count>
      <attachid>418851</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-02-01 03:28:03 -0800</bug_when>
    <thetext>Comment on attachment 418851
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Provide mock dtmf sender.
&gt; 
&gt; Patch seems fine but I wonder what the end goal is.
&gt; We do not get any additional code coverage/functionality coverage for this patch.
&gt; If the issue is for fuzzers to stop crashing, that seems fine.

AFAIK it is indeed for buzzers to stop crashing. Ryosuke will know more.

&gt;&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:170
&gt;&gt; +class MockDtmfSender : public webrtc::DtmfSenderInterface {
&gt; 
&gt; final.

Is it really needed?

&gt;&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:179
&gt;&gt; +    int inter_tone_gap() const override { return 50; }
&gt; 
&gt; final an probably private as well.

Done.

&gt;&gt; Source/WebCore/testing/MockLibWebRTCPeerConnection.h:209
&gt;&gt; +    rtc::scoped_refptr&lt;webrtc::DtmfSenderInterface&gt; m_dtmfSender;
&gt; 
&gt; mutable to remove the const_cast.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724188</commentid>
    <comment_count>8</comment_count>
      <attachid>418852</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-01 04:15:40 -0800</bug_when>
    <thetext>Comment on attachment 418852
Patch

Let&apos;s go then.
If the issue is fuzzers crashing, I think they should not try to enable mock PC backends.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724551</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 00:34:57 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 418852 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724557</commentid>
    <comment_count>10</comment_count>
      <attachid>418970</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-02-02 00:46:48 -0800</bug_when>
    <thetext>Created attachment 418970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724567</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 01:22:16 -0800</bug_when>
    <thetext>Committed r272198: &lt;https://trac.webkit.org/changeset/272198&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418970.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>417125</attachid>
            <date>2021-01-06 13:49:50 -0800</date>
            <delta_ts>2021-01-06 13:49:50 -0800</delta_ts>
            <desc>Test</desc>
            <filename>repro_443.html</filename>
            <type>text/html</type>
            <size>208</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSgnJyk7
CiAgbGV0IHRyYWNrID0gbmV3IEF1ZGlvQ29udGV4dCgpLmNyZWF0ZU1lZGlhU3RyZWFtRGVzdGlu
YXRpb24oKS5zdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKICBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKS5hZGRUcmFjayh0cmFjaykuZHRtZjsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418851</attachid>
            <date>2021-02-01 02:59:52 -0800</date>
            <delta_ts>2021-02-01 03:26:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220382-20210201115950.patch</filename>
            <type>text/plain</type>
            <size>4143</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYWVkN2MxYjk1MGNm
MjJmNjc4MGQyMTk5MDkxZDdlZTIyMDc3MS4uYWQ5NmY2YzZhMzgyZDdiZWQ3OTU3Mjc4M2RjM2Nj
NTgwYWJmODlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTAxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBtb2NrIGR0bWYgc2Vu
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92
aWRlIG1vY2sgZHRtZiBzZW5kZXIuCisKKyAgICAgICAgVGVzdDogd2VicnRjL2RtdGYtZ2V0dGVy
LWNyYXNoLmh0bWwKKworICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmg6CisKIDIwMjEtMDEtMzAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgbGluZSBib3ggc3RyZXRjaGluZyAocXVpcmt5
KSA8YnI+IGJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGli
V2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCAxMjM4ZGFlNmYwMGJkZGE0Yzk4YTBhZTkxMmFk
ZjRmZjljZjIzOWVlLi42NTAxYmY2YzM0ZDczMjg3YzgyMTM0Yzg5Y2M2ZjdiNGJkZTM4ZTI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmgKQEAgLTE2Nyw2ICsxNjcsMTggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZCB7IC0x
IH07CiB9OwogCitjbGFzcyBNb2NrRHRtZlNlbmRlciA6IHB1YmxpYyB3ZWJydGM6OkR0bWZTZW5k
ZXJJbnRlcmZhY2UgeworcHVibGljOgorICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6
OkR0bWZTZW5kZXJPYnNlcnZlckludGVyZmFjZSopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgVW5y
ZWdpc3Rlck9ic2VydmVyKCkgb3ZlcnJpZGUgeyB9CisKKyAgICBib29sIENhbkluc2VydER0bWYo
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgc3RkOjpzdHJpbmcgdG9uZXMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiIjsgfQorICAgIGludCBkdXJhdGlvbigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICBpbnQgaW50ZXJfdG9uZV9nYXAoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiA1MDsgfQorfTsKKwogY2xhc3MgTW9ja1J0cFNlbmRlciA6IHB1YmxpYyB3
ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTW9ja1J0
cFNlbmRlcihydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJm
YWNlPiYmIHRyYWNrKSA6IG1fdHJhY2soV1RGTW92ZSh0cmFjaykpIHsgfQpAQCAtMTg1LDEwICsx
OTcsMTYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gc3RyZWFtX2lk
cygpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIHdlYnJ0Yzo6UnRwUGFyYW1ldGVycyBHZXRQ
YXJhbWV0ZXJzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CiAgICAgd2VicnRjOjpSVENF
cnJvciBTZXRQYXJhbWV0ZXJzKGNvbnN0IHdlYnJ0Yzo6UnRwUGFyYW1ldGVycyYpIGZpbmFsIHsg
cmV0dXJuIHsgfTsgfQotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkR0bWZTZW5kZXJJ
bnRlcmZhY2U+IEdldER0bWZTZW5kZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9
CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6RHRtZlNlbmRlckludGVyZmFjZT4gR2V0
RHRtZlNlbmRlcigpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBpZiAoIW1fZHRtZlNlbmRl
cikKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8TW9ja1J0cFNlbmRlcio+KHRoaXMpLT5tX2R0bWZT
ZW5kZXIgPSBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tEdG1mU2VuZGVyPigpOworICAg
ICAgICByZXR1cm4gbV9kdG1mU2VuZGVyOworICAgIH0KIAogcHJpdmF0ZToKICAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiBtX3RyYWNrOwor
ICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkR0bWZTZW5kZXJJbnRlcmZhY2U+IG1fZHRt
ZlNlbmRlcjsKIH07CiAKIGNsYXNzIE1vY2tSdHBSZWNlaXZlciA6IHB1YmxpYyB3ZWJydGM6OlJ0
cFJlY2VpdmVySW50ZXJmYWNlIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjQxZGI3YTE3MzIyYWE3NGQ0ZDlmNDgxMTE5
ODk0ZWM1OGUzYjEyLi44NzU5OWFmOTBiYzRmZGExMmJlNjYzODMxNDRiNGI1OGE1NGE5NzQ1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDItMDEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KKworICAgICAgICBQcm92aWRlIG1vY2sgZHRtZiBzZW5kZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDM4MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGZvciB0aGlzLgorCisg
ICAgICAgICogd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAx
LTMwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFN0YXRpY1Jh
bmdlIHNob3VsZCBrZWVwIGl0cyBzdGFydCBhbmQgZW5kIGNvbnRhaW5lcnMgYWxpdmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjczMGViZjY2YTBkYTQ5ODAwMTdlOWJjMDM3YzZlM2Y4NGFiN2U3OWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC5odG1sIGIv
TGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU3
Nzk4Njc5ZTcyNWNjOGU1MTBlMWJlNWE2MmI3MGM0ZTc2NDJlZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC5odG1sCkBAIC0wLDAgKzEsOCBA
QAorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSAKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnko
JycpOworICBsZXQgdHJhY2sgPSBuZXcgQXVkaW9Db250ZXh0KCkuY3JlYXRlTWVkaWFTdHJlYW1E
ZXN0aW5hdGlvbigpLnN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKS5hZGRUcmFjayh0cmFjaykuZHRtZjsKKzwvc2NyaXB0PgorPGJvZHk+VGhpcyB0
ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418852</attachid>
            <date>2021-02-01 03:26:12 -0800</date>
            <delta_ts>2021-02-02 00:46:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220382-20210201122610.patch</filename>
            <type>text/plain</type>
            <size>4100</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlmYWVkN2MxYjk1MGNm
MjJmNjc4MGQyMTk5MDkxZDdlZTIyMDc3MS4uYWQ5NmY2YzZhMzgyZDdiZWQ3OTU3Mjc4M2RjM2Nj
NTgwYWJmODlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTAxICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBtb2NrIGR0bWYgc2Vu
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92
aWRlIG1vY2sgZHRtZiBzZW5kZXIuCisKKyAgICAgICAgVGVzdDogd2VicnRjL2RtdGYtZ2V0dGVy
LWNyYXNoLmh0bWwKKworICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmg6CisKIDIwMjEtMDEtMzAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgbGluZSBib3ggc3RyZXRjaGluZyAocXVpcmt5
KSA8YnI+IGJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGli
V2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCAxMjM4ZGFlNmYwMGJkZGE0Yzk4YTBhZTkxMmFk
ZjRmZjljZjIzOWVlLi43YWYwODlkNTM2ZjMyN2QwNmUxOGZlNzRiNjc3MzE5ODdiNTM5ZjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmgKQEAgLTE2Nyw2ICsxNjcsMTggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZCB7IC0x
IH07CiB9OwogCitjbGFzcyBNb2NrRHRtZlNlbmRlciA6IHB1YmxpYyB3ZWJydGM6OkR0bWZTZW5k
ZXJJbnRlcmZhY2UgeworcHJpdmF0ZToKKyAgICB2b2lkIFJlZ2lzdGVyT2JzZXJ2ZXIod2VicnRj
OjpEdG1mU2VuZGVyT2JzZXJ2ZXJJbnRlcmZhY2UqKSBmaW5hbCB7IH0KKyAgICB2b2lkIFVucmVn
aXN0ZXJPYnNlcnZlcigpIGZpbmFsIHsgfQorCisgICAgYm9vbCBDYW5JbnNlcnREdG1mKCkgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHN0ZDo6c3RyaW5nIHRvbmVzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIiI7IH0KKyAgICBpbnQgZHVyYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biAwOyB9CisgICAgaW50IGludGVyX3RvbmVfZ2FwKCkgY29uc3QgZmluYWwgeyByZXR1cm4gNTA7
IH0KK307CisKIGNsYXNzIE1vY2tSdHBTZW5kZXIgOiBwdWJsaWMgd2VicnRjOjpSdHBTZW5kZXJJ
bnRlcmZhY2UgewogcHVibGljOgogICAgIGV4cGxpY2l0IE1vY2tSdHBTZW5kZXIocnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZT4mJiB0cmFjaykgOiBt
X3RyYWNrKFdURk1vdmUodHJhY2spKSB7IH0KQEAgLTE4NSwxMCArMTk3LDE2IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHN0cmVhbV9pZHMoKSBjb25zdCB7IHJldHVy
biB7IH07IH0KICAgICB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMgR2V0UGFyYW1ldGVycygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQogICAgIHdlYnJ0Yzo6UlRDRXJyb3IgU2V0UGFyYW1ldGVy
cyhjb25zdCB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMmKSBmaW5hbCB7IHJldHVybiB7IH07IH0KLSAg
ICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEdG1mU2VuZGVySW50ZXJmYWNlPiBHZXREdG1m
U2VuZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OkR0bWZTZW5kZXJJbnRlcmZhY2U+IEdldER0bWZTZW5kZXIoKSBjb25z
dCBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2R0bWZTZW5kZXIpCisgICAgICAgICAgICBt
X2R0bWZTZW5kZXIgPSBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tEdG1mU2VuZGVyPigp
OworICAgICAgICByZXR1cm4gbV9kdG1mU2VuZGVyOworICAgIH0KIAogcHJpdmF0ZToKICAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiBtX3Ry
YWNrOworICAgIG11dGFibGUgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6RHRtZlNlbmRlcklu
dGVyZmFjZT4gbV9kdG1mU2VuZGVyOwogfTsKIAogY2xhc3MgTW9ja1J0cFJlY2VpdmVyIDogcHVi
bGljIHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRlcmZhY2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNiNDFkYjdhMTczMjJh
YTc0ZDRkOWY0ODExMTk4OTRlYzU4ZTNiMTIuLjg3NTk5YWY5MGJjNGZkYTEyYmU2NjM4MzE0NGI0
YjU4YTU0YTk3NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0wMSAgUm9iIEJ1aXMg
IDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3ZpZGUgbW9jayBkdG1mIHNlbmRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3Qg
Zm9yIHRoaXMuCisKKyAgICAgICAgKiB3ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2guaHRtbDogQWRk
ZWQuCisKIDIwMjEtMDEtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgU3RhdGljUmFuZ2Ugc2hvdWxkIGtlZXAgaXRzIHN0YXJ0IGFuZCBlbmQgY29udGFpbmVy
cyBhbGl2ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMwZWJmNjZhMGRhNDk4MDAxN2U5YmMwMzdjNmUzZjg0YWI3
ZTc5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1j
cmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBk
b2Vzbid0IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVy
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZTc3OTg2NzllNzI1Y2M4ZTUxMGUxYmU1YTYyYjcwYzRlNzY0MmVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSw4IEBACis8c2NyaXB0PgorICBpZiAod2luZG93LnRlc3RSdW5uZXIpIAorICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJDb25u
ZWN0aW9uRmFjdG9yeSgnJyk7CisgIGxldCB0cmFjayA9IG5ldyBBdWRpb0NvbnRleHQoKS5jcmVh
dGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCkuc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07Cisg
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpLmFkZFRyYWNrKHRyYWNrKS5kdG1mOworPC9zY3JpcHQ+
Cis8Ym9keT5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418970</attachid>
            <date>2021-02-02 00:46:48 -0800</date>
            <delta_ts>2021-02-02 01:22:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220382-20210202094646.patch</filename>
            <type>text/plain</type>
            <size>4088</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJmODlhMTEzYzJkNmQw
M2MzYjViZjJjMjBkMDdjNzdkNjkwOGU4Ny4uNGRiMWNmMDg2YjkxZTVjZmZlMGMxMjA2MGRjNzQw
ODJkMWU4ZWViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTAyICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBtb2NrIGR0bWYgc2Vu
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFByb3Zp
ZGUgbW9jayBkdG1mIHNlbmRlci4KKworICAgICAgICBUZXN0OiB3ZWJydGMvZG10Zi1nZXR0ZXIt
Y3Jhc2guaHRtbAorCisgICAgICAgICogdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rp
b24uaDoKKwogMjAyMS0wMi0wMiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBsYXRlIEphbnVhcnkg
MjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCAxMjM4ZGFlNmYwMGJkZGE0Yzk4YTBhZTkxMmFkZjRm
ZjljZjIzOWVlLi43YWYwODlkNTM2ZjMyN2QwNmUxOGZlNzRiNjc3MzE5ODdiNTM5ZjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmgKQEAgLTE2Nyw2ICsxNjcsMTggQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZCB7IC0xIH07
CiB9OwogCitjbGFzcyBNb2NrRHRtZlNlbmRlciA6IHB1YmxpYyB3ZWJydGM6OkR0bWZTZW5kZXJJ
bnRlcmZhY2UgeworcHJpdmF0ZToKKyAgICB2b2lkIFJlZ2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpE
dG1mU2VuZGVyT2JzZXJ2ZXJJbnRlcmZhY2UqKSBmaW5hbCB7IH0KKyAgICB2b2lkIFVucmVnaXN0
ZXJPYnNlcnZlcigpIGZpbmFsIHsgfQorCisgICAgYm9vbCBDYW5JbnNlcnREdG1mKCkgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHN0ZDo6c3RyaW5nIHRvbmVzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIiI7IH0KKyAgICBpbnQgZHVyYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiAw
OyB9CisgICAgaW50IGludGVyX3RvbmVfZ2FwKCkgY29uc3QgZmluYWwgeyByZXR1cm4gNTA7IH0K
K307CisKIGNsYXNzIE1vY2tSdHBTZW5kZXIgOiBwdWJsaWMgd2VicnRjOjpSdHBTZW5kZXJJbnRl
cmZhY2UgewogcHVibGljOgogICAgIGV4cGxpY2l0IE1vY2tSdHBTZW5kZXIocnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZT4mJiB0cmFjaykgOiBtX3Ry
YWNrKFdURk1vdmUodHJhY2spKSB7IH0KQEAgLTE4NSwxMCArMTk3LDE2IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHN0cmVhbV9pZHMoKSBjb25zdCB7IHJldHVybiB7
IH07IH0KICAgICB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMgR2V0UGFyYW1ldGVycygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHsgfTsgfQogICAgIHdlYnJ0Yzo6UlRDRXJyb3IgU2V0UGFyYW1ldGVycyhj
b25zdCB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMmKSBmaW5hbCB7IHJldHVybiB7IH07IH0KLSAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpEdG1mU2VuZGVySW50ZXJmYWNlPiBHZXREdG1mU2Vu
ZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OkR0bWZTZW5kZXJJbnRlcmZhY2U+IEdldER0bWZTZW5kZXIoKSBjb25zdCBm
aW5hbAorICAgIHsKKyAgICAgICAgaWYgKCFtX2R0bWZTZW5kZXIpCisgICAgICAgICAgICBtX2R0
bWZTZW5kZXIgPSBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tEdG1mU2VuZGVyPigpOwor
ICAgICAgICByZXR1cm4gbV9kdG1mU2VuZGVyOworICAgIH0KIAogcHJpdmF0ZToKICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiBtX3RyYWNr
OworICAgIG11dGFibGUgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6RHRtZlNlbmRlckludGVy
ZmFjZT4gbV9kdG1mU2VuZGVyOwogfTsKIAogY2xhc3MgTW9ja1J0cFJlY2VpdmVyIDogcHVibGlj
IHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRlcmZhY2UgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkNmMyM2I4NTI5OWQyYzY4
MTQ0NmZkZjZiYTQ5M2Q0ZjU3Y2M2NmQuLjkzZWRmNzkyZjg1MDMzNDM3ZTQzZDE0YjMwMDhhNjFh
Mzk5YTJhOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0wMiAgUm9iIEJ1aXMgIDxy
YnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFByb3ZpZGUgbW9jayBkdG1mIHNlbmRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzgyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBBZGQgdGVzdCBmb3Ig
dGhpcy4KKworICAgICAgICAqIHdlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC5odG1sOiBBZGRlZC4K
KwogMjAyMS0wMi0wMSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR0xJQl0gR2FyZGVuaW5nIGNyYXNoZXMgY29tbW9uIHRvIGJvdGggZ2xpYiBwb3J0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzMwZWJmNjZhMGRhNDk4MDAxN2U5YmMwMzdjNmUzZjg0YWI3ZTc5ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kbXRmLWdldHRlci1jcmFzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSBAQAorVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNo
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvZG10Zi1nZXR0ZXItY3Jhc2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZTc3OTg2NzllNzI1Y2M4ZTUxMGUxYmU1YTYyYjcwYzRlNzY0MmVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL2RtdGYtZ2V0dGVyLWNyYXNoLmh0bWwKQEAgLTAsMCArMSw4
IEBACis8c2NyaXB0PgorICBpZiAod2luZG93LnRlc3RSdW5uZXIpIAorICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9y
eSgnJyk7CisgIGxldCB0cmFjayA9IG5ldyBBdWRpb0NvbnRleHQoKS5jcmVhdGVNZWRpYVN0cmVh
bURlc3RpbmF0aW9uKCkuc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgIG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpLmFkZFRyYWNrKHRyYWNrKS5kdG1mOworPC9zY3JpcHQ+Cis8Ym9keT5UaGlz
IHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>