<?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>209863</bug_id>
          
          <creation_ts>2020-04-01 10:48:56 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: m_wrapper on webgl/max-active-contexts-webglcontextlost-prevent-default.html</short_desc>
          <delta_ts>2020-04-01 14:51:25 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209660</see_also>
          <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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636563</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-04-01 10:48:56 -0700</bug_when>
    <thetext>I get a reproducible assertion failure on webgl/max-active-contexts-webglcontextlost-prevent-default.html

run-webkit-tests -v --repeat-each 10 -1 --additional-env-var=JSC_slowPathAllocsBetweenGCs=25 LayoutTests/webgl/max-active-contexts-*.html --child-processes=1

ASSERTION FAILED: m_wrapper
./bindings/js/JSEventListener.h(125) : JSC::JSObject *WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext &amp;) const
1   0x10eb71779 WTFCrash
2   0x1289cd03b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x12abd376f WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&amp;) const
4   0x12abd2add WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;)
5   0x12b21f107 WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::RegisteredEventListener, WTF::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;, WebCore::EventTarget::EventInvokePhase)
6   0x12b21b364 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
7   0x12b2915a2 WebCore::Node::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
8   0x12b209bf1 WebCore::EventContext::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) const
9   0x12b20a6bf WebCore::dispatchEventInDOM(WebCore::Event&amp;, WebCore::EventPath const&amp;)
10  0x12b20a1f7 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&amp;, WebCore::Event&amp;)
11  0x12b2915fd WebCore::Node::dispatchEvent(WebCore::Event&amp;)
12  0x12b7cf9a7 WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent()::$_13::operator()() const
13  0x12b7cf90e WTF::Detail::CallableWrapper&lt;WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent()::$_13, void&gt;::call()
14  0x1289df8a2 WTF::Function&lt;void ()&gt;::operator()() const
15  0x12b7cef7e void WebCore::ActiveDOMObject::queueTaskKeepingObjectAlive&lt;WebCore::HTMLCanvasElement&gt;(WebCore::HTMLCanvasElement&amp;, WebCore::TaskSource, WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;()::operator()() const
16  0x12b7cecae WTF::Detail::CallableWrapper&lt;void WebCore::ActiveDOMObject::queueTaskKeepingObjectAlive&lt;WebCore::HTMLCanvasElement&gt;(WebCore::HTMLCanvasElement&amp;, WebCore::TaskSource, WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;(), void&gt;::call()
17  0x1289df8a2 WTF::Function&lt;void ()&gt;::operator()() const
18  0x12b20f89e WebCore::EventLoopFunctionDispatchTask::execute()
19  0x12b20ce05 WebCore::EventLoop::run()
20  0x12b36229c WebCore::WindowEventLoop::didReachTimeToRun()
21  0x12b365307 decltype(*(std::__1::forward&lt;WebCore::WindowEventLoop*&amp;&gt;(fp0)).*fp()) std::__1::__invoke&lt;void (WebCore::WindowEventLoop::*&amp;)(), WebCore::WindowEventLoop*&amp;, void&gt;(void (WebCore::WindowEventLoop::*&amp;)(), WebCore::WindowEventLoop*&amp;)
22  0x12b365280 std::__1::__bind_return&lt;void (WebCore::WindowEventLoop::*)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::WindowEventLoop::*)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__apply_functor&lt;void (WebCore::WindowEventLoop::*)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;, 0ul, std::__1::tuple&lt;&gt; &gt;(void (WebCore::WindowEventLoop::*&amp;)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;&amp;, std::__1::__tuple_indices&lt;0ul&gt;, std::__1::tuple&lt;&gt;&amp;&amp;)
23  0x12b365239 std::__1::__bind_return&lt;void (WebCore::WindowEventLoop::*)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::WindowEventLoop::*)(), std::__1::tuple&lt;WebCore::WindowEventLoop*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__bind&lt;void (WebCore::WindowEventLoop::*&amp;)(), WebCore::WindowEventLoop*&gt;::operator()&lt;&gt;()
24  0x12b3651de WTF::Detail::CallableWrapper&lt;std::__1::__bind&lt;void (WebCore::WindowEventLoop::*&amp;)(), WebCore::WindowEventLoop*&gt;, void&gt;::call()
25  0x1289df8a2 WTF::Function&lt;void ()&gt;::operator()() const
26  0x128a9986e WebCore::Timer::fired()
27  0x12c006c54 WebCore::ThreadTimers::sharedTimerFiredInternal()
28  0x12c00e361 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
29  0x12c00e30e WTF::Detail::CallableWrapper&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void&gt;::call()
30  0x1289df8a2 WTF::Function&lt;void ()&gt;::operator()() const
31  0x12bfd362b WebCore::MainThreadSharedTimer::fired()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636564</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-01 10:49:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/61164936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636567</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 10:55:37 -0700</bug_when>
    <thetext>Which revision?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636568</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-04-01 11:01:12 -0700</bug_when>
    <thetext>r259292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636586</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 11:29:13 -0700</bug_when>
    <thetext>Since r259130, WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent() keeps the wrapper alive while the event is pending. Give that we&apos;re crashing still, I believe this indicates the JS wrapper can get destroyed before scheduleTaskToDispatchContextLostEvent() even gets called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636587</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 11:33:22 -0700</bug_when>
    <thetext>The provided command reproduced the issue for me, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636605</commentid>
    <comment_count>6</comment_count>
      <attachid>395192</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 12:26:40 -0700</bug_when>
    <thetext>Created attachment 395192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636628</commentid>
    <comment_count>7</comment_count>
      <attachid>395192</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-01 13:29:42 -0700</bug_when>
    <thetext>Comment on attachment 395192
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:963
&gt; +    if (is&lt;WebGLRenderingContextBase&gt;(m_context.get())) {
&gt; +        // WebGL rendering context may fire contextlost / contextchange / contextrestored events at any point.
&gt; +        return m_hasRelevantWebGLEventListener &amp;&amp; !downcast&lt;WebGLRenderingContextBase&gt;(*m_context).isContextUnrecoverablyLost();
&gt; +    }

Why not include is&lt;WebGLRenderingContextBase&gt;(m_context.get()) in the cached m_hasRelevantWebGLEventListener boolean to have one less check to do here?

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:980
&gt; +#if ENABLE(WEBGL)
&gt; +    m_hasRelevantWebGLEventListener = hasEventListeners(eventNames().webglcontextchangedEvent)
&gt; +        || hasEventListeners(eventNames().webglcontextlostEvent)
&gt; +        || hasEventListeners(eventNames().webglcontextrestoredEvent);
&gt; +#endif

We’re caching this because this is too expensive to do inside virtualHasPendingActivity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636641</commentid>
    <comment_count>8</comment_count>
      <attachid>395192</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 13:43:50 -0700</bug_when>
    <thetext>Comment on attachment 395192
Patch

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

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:963
&gt;&gt; +    }
&gt; 
&gt; Why not include is&lt;WebGLRenderingContextBase&gt;(m_context.get()) in the cached m_hasRelevantWebGLEventListener boolean to have one less check to do here?

I like having the is&lt;WebGLRenderingContextBase&gt;() check in this function since I am doing a downcast&lt;WebGLRenderingContextBase&gt;() right after. I think doing it as you suggest would probably look less safe.

&gt;&gt; Source/WebCore/html/HTMLCanvasElement.cpp:980
&gt;&gt; +#endif
&gt; 
&gt; We’re caching this because this is too expensive to do inside virtualHasPendingActivity?

2 reasons:
- Performance
- virtualHasPendingActivity() gets called on a GC thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636642</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 13:50:22 -0700</bug_when>
    <thetext>Seems to be causing some crashes on the bots for some reason. I am investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636653</commentid>
    <comment_count>10</comment_count>
      <attachid>395202</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-01 14:10:39 -0700</bug_when>
    <thetext>Created attachment 395202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636670</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-01 14:51:23 -0700</bug_when>
    <thetext>Committed r259364: &lt;https://trac.webkit.org/changeset/259364&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395202.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395192</attachid>
            <date>2020-04-01 12:26:40 -0700</date>
            <delta_ts>2020-04-01 14:10:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209863-20200401122640.patch</filename>
            <type>text/plain</type>
            <size>6490</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyNjYxYjEwMGE1NmI2
M2I0MzhmYmJiYTdlOThmY2RiNTE5YWQxZi4uMmQyMjAzOWFmMGViNTIzZWYxN2I5YjcyZjUzOGQ5
NTAxZGY4YWNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
bV93cmFwcGVyIG9uIHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1w
cmV2ZW50LWRlZmF1bHQuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE2NDkzNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgSFRNTENh
bnZhc0VsZW1lbnQgSlMgd3JhcHBlciBuZWVkcyB0byBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgSlMg
ZXZlbnRzIG1heSBuZWVkIHRvIGJlIGZpcmVkLgorICAgICAgICBXaGVuIHRoZSBjYW52YXMgaGFz
IGEgV2ViR0wgY29udGV4dCwgdGhlIFdlYkdMIGNvbnRleHQgbWF5IGNhdXNlIGNvbnRleHRsb3N0
IC8gY29udGV4dHJlc3RvcmVkCisgICAgICAgIC8gY29udGV4dGNoYW5nZWQgZXZlbnRzIGF0IGFu
eSBwb2ludCwgdW5sZXNzIHRoZSBjb250ZXh0IGlzIHVucmVjb3ZlcmFibHkgbG9zdC4gVG8gZml4
IHRoZQorICAgICAgICBpc3N1ZSwgd2Ugbm93IG92ZXJyaWRlIHZpcnR1YWxIYXNQZW5kaW5nQWN0
aXZpdHkoKSBpbiBIVE1MQ2FudmFzRWxlbWVudCBhbmQgcmV0dXJuIHRydWUgaWYKKyAgICAgICAg
aXQgaGFzIGEgV2ViR0wgY29udGV4dCB0aGF0IGlzIG5vdCB1bnJlY292ZXJhYmx5IGxvc3QgYW5k
IGlmIHJlbGV2YW50IFdlYkdMIGV2ZW50IGxpc3RlbmVycworICAgICAgICBhcmUgcmVnaXN0ZWQu
IEkgYWxzbyBtYWtlIHN1cmUgdG8gY2xlYXIgdGhlIGNvbnRleHQgaW4gc3RvcCgpIHRvIGF2b2lk
IGxlYWtzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0
LgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6fkhUTUxDYW52YXNFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNDb250ZXh0VW5yZWNvdmVyYWJseUxvc3QgY29uc3QpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKwogMjAy
MC0wNC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VS
VElPTiBGQUlMRUQ6IG1fd3JhcHBlciBvbiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3Rh
dGVzL2F1dG9wbGF5Lmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggZTZhMjI2ODY3YjNiZmJkYjQ3M2M4YjlmMDI3ZWFhNzgyOWMxNTliNi4uNjFlMDlk
MTY2NTE1NDJjMjE2NTNiZWI3YmU5NDIxYTFlNzYyOTZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTEzOSw4ICsxMzksNyBAQCBIVE1MQ2FudmFzRWxl
bWVudDo6fkhUTUxDYW52YXNFbGVtZW50KCkKICAgICAvLyBhdm9pZGVkIGluIGRlc3RydWN0b3Jz
LCBidXQgd29ya3MgYXMgbG9uZyBhcyBpdCdzIGRvbmUgYmVmb3JlIEhUTUxDYW52YXNFbGVtZW50
IGRlc3RydWN0cyBjb21wbGV0ZWx5LgogICAgIG5vdGlmeU9ic2VydmVyc0NhbnZhc0Rlc3Ryb3ll
ZCgpOwogCi0gICAgbV9jb250ZXh0ID0gbnVsbHB0cjsgLy8gRW5zdXJlIHRoaXMgZ29lcyBhd2F5
IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCi0gICAgc2V0SW1hZ2VCdWZmZXIobnVsbHB0cik7Cisg
ICAgc3RvcCgpOwogfQogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTk1
NSw0ICs5NTQsMzAgQEAgY29uc3QgY2hhciogSFRNTENhbnZhc0VsZW1lbnQ6OmFjdGl2ZURPTU9i
amVjdE5hbWUoKSBjb25zdAogICAgIHJldHVybiAiSFRNTENhbnZhc0VsZW1lbnQiOwogfQogCiti
b29sIEhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QK
K3sKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U+KG1fY29udGV4dC5nZXQoKSkpIHsKKyAgICAgICAgLy8gV2ViR0wgcmVuZGVyaW5nIGNvbnRl
eHQgbWF5IGZpcmUgY29udGV4dGxvc3QgLyBjb250ZXh0Y2hhbmdlIC8gY29udGV4dHJlc3RvcmVk
IGV2ZW50cyBhdCBhbnkgcG9pbnQuCisgICAgICAgIHJldHVybiBtX2hhc1JlbGV2YW50V2ViR0xF
dmVudExpc3RlbmVyICYmICFkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPigqbV9j
b250ZXh0KS5pc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCgpOworICAgIH0KKyNlbmRpZgorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c3RvcCgpCit7Cisg
ICAgbV9jb250ZXh0ID0gbnVsbHB0cjsgLy8gRW5zdXJlIHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0
aGUgSW1hZ2VCdWZmZXIuCisgICAgc2V0SW1hZ2VCdWZmZXIobnVsbHB0cik7Cit9CisKK3ZvaWQg
SFRNTENhbnZhc0VsZW1lbnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKK3sKKyNpZiBFTkFC
TEUoV0VCR0wpCisgICAgbV9oYXNSZWxldmFudFdlYkdMRXZlbnRMaXN0ZW5lciA9IGhhc0V2ZW50
TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjaGFuZ2VkRXZlbnQpCisgICAgICAg
IHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRsb3N0RXZlbnQp
CisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRy
ZXN0b3JlZEV2ZW50KTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmgKaW5kZXggMmU2Mjg5MTFjMTk4ZDg0ZWE3ZmExMDIwNTMyY2ZjZWNjMjJkNjYy
NS4uMTcxMzA2OTRhNTAzNWJhMDNhYmFkZjkxNjRlOTU2NTY1Mzk5MGFjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTMzLDcgKzEzMywxNCBAQCBwcml2YXRl
OgogICAgIEhUTUxDYW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgYm9vbCBpc0hUTUxDYW52YXNFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKworICAgIC8v
IEV2ZW50VGFyZ2V0LgorICAgIHZvaWQgZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKSBmaW5hbDsK
IAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZp
bmFsOwpAQCAtMTcxLDYgKzE3OCw5IEBAIHByaXZhdGU6CiAgICAgLy8gbV9oYXNDcmVhdGVkSW1h
Z2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRoZSBidWZmZXIuIFdlIGRpZG4ndCBu
ZWNlc3NhcmlseSBnZXQgaXQuCiAgICAgbXV0YWJsZSBib29sIG1faGFzQ3JlYXRlZEltYWdlQnVm
ZmVyIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9kaWRDbGVhckltYWdlQnVmZmVyIHsg
ZmFsc2UgfTsKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgYm9vbCBtX2hhc1JlbGV2YW50V2ViR0xF
dmVudExpc3RlbmVyIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAgICAgbXV0YWJsZSBSZWZQdHI8SW1h
Z2U+IG1fcHJlc2VudGVkSW1hZ2U7CiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fY29waWVk
SW1hZ2U7IC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2
ZSB0byBjb3B5IHRoZSBpbWFnZSBidWZmZXIgdG8gcmVuZGVyIChhbmQgZm9yIENTU0NhbnZhc1Zh
bHVlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggOTQyOTJlMzdjNmJjOTgzZTdkOTY0N2VkMDg3MTMy
YTZiNWU4Njk3ZC4uNGJlOTAxNmY5NDZiNGZlMjA0MjAyYzMwN2JjMzFjNjY1YmZlNDM0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKQEAgLTU1MDIsNiArNTUwMiwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmZvcmNlUmVzdG9yZUNvbnRleHQoKQogICAgICAgICBtX3Jlc3RvcmVUaW1l
ci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojppc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
dGV4dExvc3QgJiYgIW1fcmVzdG9yZUFsbG93ZWQ7Cit9CisKIFBsYXRmb3JtTGF5ZXIqIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVy
biAoIWlzQ29udGV4dExvc3QoKSAmJiAhbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1f
Y29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBkNzBjYjI1ODkx
OGI5ZjFiMDZkNmQxMzY5OGVhM2I0ZTY2MWViNzEyLi43N2IyZmQ5NmVhZmU2N2RhZDAwMzU4NTFi
ZGExYjcwNzE0OGZkM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0zNTksNiArMzU5LDggQEAgcHVibGlj
OgogICAgIAogICAgIHVuc2lnbmVkIGdldE1heFZlcnRleEF0dHJpYnMoKSBjb25zdCB7IHJldHVy
biBtX21heFZlcnRleEF0dHJpYnM7IH0KIAorICAgIGJvb2wgaXNDb250ZXh0VW5yZWNvdmVyYWJs
eUxvc3QoKSBjb25zdDsKKwogICAgIC8vIEluc3RhbmNlZCBBcnJheSBoZWxwZXIgZnVuY3Rpb25z
LgogICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQ0dMZW51bSBtb2RlLCBHQ0dMaW50IGZp
cnN0LCBHQ0dMc2l6ZWkgY291bnQsIEdDR0xzaXplaSBwcmltY291bnQpOwogICAgIHZvaWQgZHJh
d0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xzaXplaSBjb3VudCwgR0NHTGVu
dW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgR0NHTHNpemVpIHByaW1jb3VudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395202</attachid>
            <date>2020-04-01 14:10:39 -0700</date>
            <delta_ts>2020-04-01 14:51:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209863-20200401141038.patch</filename>
            <type>text/plain</type>
            <size>5884</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyNjYxYjEwMGE1NmI2
M2I0MzhmYmJiYTdlOThmY2RiNTE5YWQxZi4uZDYzMjQ1ZWMyYjdmN2YyYWNmYzA1OTc4YWFlMTVj
M2NhNTIxY2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
bV93cmFwcGVyIG9uIHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtd2ViZ2xjb250ZXh0bG9zdC1w
cmV2ZW50LWRlZmF1bHQuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE2NDkzNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGUgSFRNTENhbnZh
c0VsZW1lbnQgSlMgd3JhcHBlciBuZWVkcyB0byBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgSlMgZXZl
bnRzIG1heSBuZWVkIHRvIGJlIGZpcmVkLgorICAgICAgICBXaGVuIHRoZSBjYW52YXMgaGFzIGEg
V2ViR0wgY29udGV4dCwgdGhlIFdlYkdMIGNvbnRleHQgbWF5IGNhdXNlIGNvbnRleHRsb3N0IC8g
Y29udGV4dHJlc3RvcmVkCisgICAgICAgIC8gY29udGV4dGNoYW5nZWQgZXZlbnRzIGF0IGFueSBw
b2ludCwgdW5sZXNzIHRoZSBjb250ZXh0IGlzIHVucmVjb3ZlcmFibHkgbG9zdC4gVG8gZml4IHRo
ZQorICAgICAgICBpc3N1ZSwgd2Ugbm93IG92ZXJyaWRlIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZp
dHkoKSBpbiBIVE1MQ2FudmFzRWxlbWVudCBhbmQgcmV0dXJuIHRydWUgaWYKKyAgICAgICAgaXQg
aGFzIGEgV2ViR0wgY29udGV4dCB0aGF0IGlzIG5vdCB1bnJlY292ZXJhYmx5IGxvc3QgYW5kIGlm
IHJlbGV2YW50IFdlYkdMIGV2ZW50IGxpc3RlbmVycworICAgICAgICBhcmUgcmVnaXN0ZWQuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
YW52YXNFbGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTENhbnZhc0VsZW1lbnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjppc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCBjb25zdCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorCiAyMDIwLTA0LTAxICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxF
RDogbV93cmFwcGVyIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3Bs
YXkuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCBl
NmEyMjY4NjdiM2JmYmRiNDczYzhiOWYwMjdlYWE3ODI5YzE1OWI2Li5lZjJiNTY0NTQzZGE2NWM2
ZDdiYjY0MDZjYjBmYTg4NzgwMzQyMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcApAQCAtOTU1LDQgKzk1NSwyOCBAQCBjb25zdCBjaGFyKiBIVE1MQ2FudmFz
RWxlbWVudDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJIVE1MQ2Fu
dmFzRWxlbWVudCI7CiB9CiAKK2Jvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworI2lmIEVOQUJMRShXRUJHTCkKKyAgICBpZiAoaXM8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jb250ZXh0LmdldCgpKSkgeworICAgICAgICAvLyBXZWJH
TCByZW5kZXJpbmcgY29udGV4dCBtYXkgZmlyZSBjb250ZXh0bG9zdCAvIGNvbnRleHRjaGFuZ2Ug
LyBjb250ZXh0cmVzdG9yZWQgZXZlbnRzIGF0IGFueSBwb2ludC4KKyAgICAgICAgcmV0dXJuIG1f
aGFzUmVsZXZhbnRXZWJHTEV2ZW50TGlzdGVuZXIgJiYgIWRvd25jYXN0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+KCptX2NvbnRleHQpLmlzQ29udGV4dFVucmVjb3ZlcmFibHlMb3N0KCk7Cisg
ICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKK3sKKyNpZiBFTkFCTEUoV0VCR0wpCisg
ICAgbV9oYXNSZWxldmFudFdlYkdMRXZlbnRMaXN0ZW5lciA9IGhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjaGFuZ2VkRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50
TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRsb3N0RXZlbnQpCisgICAgICAgIHx8
IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2ZW50
KTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgK
aW5kZXggMmU2Mjg5MTFjMTk4ZDg0ZWE3ZmExMDIwNTMyY2ZjZWNjMjJkNjYyNS4uNTBlN2MyY2Rl
ZTEwNTgyYjZhOTdjY2QyYTc3NTY3NDkwOGRmZjM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaApAQCAtMTMzLDcgKzEzMywxMyBAQCBwcml2YXRlOgogICAgIEhUTUxD
YW52YXNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9v
bCBpc0hUTUxDYW52YXNFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5h
bWUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdCBmaW5hbDsKKworICAgIC8vIEV2ZW50VGFyZ2V0LgorICAgIHZvaWQgZXZlbnRMaXN0ZW5l
cnNEaWRDaGFuZ2UoKSBmaW5hbDsKIAogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpAQCAtMTcxLDYgKzE3Nyw5IEBAIHByaXZhdGU6CiAg
ICAgLy8gbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgbWVhbnMgd2UgdHJpZWQgdG8gbWFsbG9jIHRo
ZSBidWZmZXIuIFdlIGRpZG4ndCBuZWNlc3NhcmlseSBnZXQgaXQuCiAgICAgbXV0YWJsZSBib29s
IG1faGFzQ3JlYXRlZEltYWdlQnVmZmVyIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9k
aWRDbGVhckltYWdlQnVmZmVyIHsgZmFsc2UgfTsKKyNpZiBFTkFCTEUoV0VCR0wpCisgICAgYm9v
bCBtX2hhc1JlbGV2YW50V2ViR0xFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAg
ICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fcHJlc2VudGVkSW1hZ2U7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8SW1hZ2U+IG1fY29waWVkSW1hZ2U7IC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSBm
b3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSB0byBjb3B5IHRoZSBpbWFnZSBidWZmZXIgdG8gcmVuZGVy
IChhbmQgZm9yIENTU0NhbnZhc1ZhbHVlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggOTQyOTJlMzdj
NmJjOTgzZTdkOTY0N2VkMDg3MTMyYTZiNWU4Njk3ZC4uNGJlOTAxNmY5NDZiNGZlMjA0MjAyYzMw
N2JjMzFjNjY1YmZlNDM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTU1MDIsNiArNTUwMiwxMSBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmZvcmNlUmVzdG9yZUNvbnRleHQoKQog
ICAgICAgICBtX3Jlc3RvcmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAorYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0NvbnRleHRVbnJlY292ZXJhYmx5TG9zdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29udGV4dExvc3QgJiYgIW1fcmVzdG9yZUFsbG93ZWQ7Cit9CisK
IFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3JtTGF5ZXIo
KSBjb25zdAogewogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAmJiAhbV9pc1BlbmRpbmdQ
b2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaAppbmRleCBkNzBjYjI1ODkxOGI5ZjFiMDZkNmQxMzY5OGVhM2I0ZTY2MWViNzEyLi43N2Iy
ZmQ5NmVhZmU2N2RhZDAwMzU4NTFiZGExYjcwNzE0OGZkM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0z
NTksNiArMzU5LDggQEAgcHVibGljOgogICAgIAogICAgIHVuc2lnbmVkIGdldE1heFZlcnRleEF0
dHJpYnMoKSBjb25zdCB7IHJldHVybiBtX21heFZlcnRleEF0dHJpYnM7IH0KIAorICAgIGJvb2wg
aXNDb250ZXh0VW5yZWNvdmVyYWJseUxvc3QoKSBjb25zdDsKKwogICAgIC8vIEluc3RhbmNlZCBB
cnJheSBoZWxwZXIgZnVuY3Rpb25zLgogICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQ0dM
ZW51bSBtb2RlLCBHQ0dMaW50IGZpcnN0LCBHQ0dMc2l6ZWkgY291bnQsIEdDR0xzaXplaSBwcmlt
Y291bnQpOwogICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdD
R0xzaXplaSBjb3VudCwgR0NHTGVudW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgR0NHTHNpemVp
IHByaW1jb3VudCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>