<?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>221382</bug_id>
          
          <creation_ts>2021-02-03 22:49:57 -0800</creation_ts>
          <short_desc>Nullptr crash in RenderStyle::shapeOutside()</short_desc>
          <delta_ts>2021-03-18 10:49:45 -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>Layout and Rendering</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="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>koivisto</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725506</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-03 22:49:57 -0800</bug_when>
    <thetext>e.g.

0   com.apple.WebCore             	0x0000000117d6de8d WTF::RawPtrTraits&lt;WebCore::StyleRareNonInheritedData&gt;::unwrap(WebCore::StyleRareNonInheritedData* const&amp;) + 9 (RawPtrTraits.h:43) [inlined]
1   com.apple.WebCore             	0x0000000117d6de8d WTF::Ref&lt;WebCore::StyleRareNonInheritedData, WTF::RawPtrTraits&lt;WebCore::StyleRareNonInheritedData&gt; &gt;::ptr() const + 9 (Ref.h:116) [inlined]
2   com.apple.WebCore             	0x0000000117d6de8d WTF::DataRef&lt;WebCore::StyleRareNonInheritedData&gt;::operator-&gt;() const + 9 (DataRef.h:76) [inlined]
3   com.apple.WebCore             	0x0000000117d6de8d WebCore::RenderStyle::shapeOutside() const + 9 (RenderStyle.h:1415) [inlined]
4   com.apple.WebCore             	0x0000000117d6de8d WebCore::ShapeOutsideInfo::isEnabledFor(WebCore::RenderBox const&amp;) + 13 (ShapeOutsideInfo.cpp:311)
5   com.apple.WebCore             	0x0000000117baa16e WebCore::RenderBox::shapeOutsideInfo() const + 14 (RenderBox.h:632)
6   com.apple.WebCore             	0x0000000117bab51e WebCore::ComputeFloatOffsetForLineLayoutAdapter&lt;(WebCore::FloatingObject::Type)1&gt;::updateOffsetIfNeeded(WebCore::FloatingObject const&amp;) + 78 (FloatingObjects.cpp:486)
7   com.apple.WebCore             	0x0000000117bab61e WebCore::ComputeFloatOffsetAdapter&lt;(WebCore::FloatingObject::Type)1&gt;::collectIfNeeded(WebCore::PODInterval&lt;WebCore::LayoutUnit, WebCore::FloatingObject*&gt; const&amp;) + 66 (FloatingObjects.cpp:477) [inlined]
8   com.apple.WebCore             	0x0000000117bab61e void WebCore::PODIntervalTree&lt;WebCore::LayoutUnit, WebCore::FloatingObject*&gt;::searchForOverlapsFrom&lt;WebCore::ComputeFloatOffsetForLineLayoutAdapter&lt;(WebCore::FloatingObject::Type)1&gt; &gt;(WebCore::PODRedBlackTree&lt;WebCore::PODInterval&lt;WebCore::LayoutUnit, WebCore::FloatingObject*&gt;, WebCore::PODIntervalNodeUpdater&gt;::Node*, WebCore::ComputeFloatOffsetForLineLayoutAdapter&lt;(WebCore::FloatingObject::Type)1&gt;&amp;) const + 126 (PODIntervalTree.h:108)
9   com.apple.WebCore             	0x0000000117ba7f3c void WebCore::PODIntervalTree&lt;WebCore::LayoutUnit, WebCore::FloatingObject*&gt;::allOverlapsWithAdapter&lt;WebCore::ComputeFloatOffsetForLineLayoutAdapter&lt;(WebCore::FloatingObject::Type)1&gt; &gt;(WebCore::ComputeFloatOffsetForLineLayoutAdapter&lt;(WebCore::FloatingObject::Type)1&gt;&amp;) const + 12 (PODIntervalTree.h:60) [inlined]
10  com.apple.WebCore             	0x0000000117ba7f3c WebCore::FloatingObjects::logicalLeftOffset(WebCore::LayoutUnit, WebCore::LayoutUnit, WebCore::LayoutUnit) + 204 (FloatingObjects.cpp:424)
11  com.apple.WebCore             	0x0000000117d368a2 WebCore::RenderBlock::logicalLeftOffsetForLine(WebCore::LayoutUnit, WebCore::LayoutUnit, bool, WebCore::LayoutUnit) const + 21 (RenderBlock.h:348) [inlined]
12  com.apple.WebCore             	0x0000000117d368a2 WebCore::RenderBlock::logicalLeftOffsetForLine(WebCore::LayoutUnit, WebCore::IndentTextOrNot, WebCore::LayoutUnit) const + 43 (RenderBlock.h:158) [inlined]
13  com.apple.WebCore             	0x0000000117d368a2 WebCore::RootInlineBox::selectionBottom() const + 562 (RootInlineBox.cpp:693)
14  com.apple.WebCore             	0x0000000117ce1433 WebCore::RootInlineBox::selectionHeight() const + 8 (RootInlineBox.h:78) [inlined]
15  com.apple.WebCore             	0x0000000117ce1433 WebCore::RenderReplaced::localSelectionRect(bool) const + 371 (RenderReplaced.cpp:736)
16  com.apple.WebCore             	0x0000000117ce356d WebCore::RenderReplaced::clippedOverflowRectForRepaint(WebCore::RenderLayerModelObject const*) const + 61 (RenderReplaced.cpp:772)
17  com.apple.WebCore             	0x0000000117cd7d03 WebCore::RenderObject::rectWithOutlineForRepaint(WebCore::RenderLayerModelObject const*, WebCore::LayoutUnit) const + 19 (RenderObject.cpp:952)
18  com.apple.WebCore             	0x0000000117c732cd WebCore::RenderInline::rectWithOutlineForRepaint(WebCore::RenderLayerModelObject const*, WebCore::LayoutUnit) const + 109 (RenderInline.cpp:893)
19  com.apple.WebCore             	0x0000000117c73187 WebCore::RenderInline::clippedOverflowRectForRepaint(WebCore::RenderLayerModelObject const*) const + 679 (RenderInline.cpp:878)
20  com.apple.WebCore             	0x0000000117cceb33 WebCore::RenderObject::repaint() const + 99 (RenderObject.cpp:898)
21  com.apple.WebCore             	0x0000000117c369e1 WebCore::RenderElement::repaintBeforeStyleChange(WebCore::StyleDifference, WebCore::RenderStyle const&amp;, WebCore::RenderStyle const&amp;) + 433 (RenderElement.cpp:446)
22  com.apple.WebCore             	0x0000000117c36c0c WebCore::RenderElement::setStyle(WebCore::RenderStyle&amp;&amp;, WebCore::StyleDifference) + 140 (RenderElement.cpp:485)
23  com.apple.WebCore             	0x0000000117de08d4 WebCore::RenderTreeUpdater::updateRendererStyle(WebCore::RenderElement&amp;, WebCore::RenderStyle&amp;&amp;, WebCore::StyleDifference) + 32 (RenderTreeUpdater.cpp:296) [inlined]
24  com.apple.WebCore             	0x0000000117de08d4 WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;) + 980 (RenderTreeUpdater.cpp:363)
25  com.apple.WebCore             	0x0000000117ddfb30 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;) + 1040 (RenderTreeUpdater.cpp:194)
26  com.apple.WebCore             	0x0000000117ddf62b WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;) + 555 (RenderTreeUpdater.cpp:126)
27  com.apple.WebCore             	0x00000001172d3259 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;) + 105 (Document.cpp:1968)
28  com.apple.WebCore             	0x00000001172d35e6 WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) + 822 (Document.cpp:2058)
29  com.apple.WebCore             	0x00000001172d3a67 WebCore::Document::updateStyleIfNeeded() + 311 (Document.cpp:2145)
30  com.apple.WebCore             	0x00000001178a207b WebCore::FrameViewLayoutContext::updateStyleForLayout() + 82 (FrameViewLayoutContext.cpp:545) [inlined]
31  com.apple.WebCore             	0x00000001178a207b WebCore::FrameViewLayoutContext::layout() + 459 (FrameViewLayoutContext.cpp:211)
32  com.apple.WebCore             	0x00000001178b0135 WebCore::FrameView::updateContentsSize() + 165 (FrameView.cpp:2787)
33  com.apple.WebCore             	0x0000000117972a8a WebCore::ScrollView::updateScrollbars(WebCore::IntPoint const&amp;) + 1674 (ScrollView.cpp:710)
34  com.apple.WebCore             	0x0000000117973df2 WebCore::ScrollView::setContentsSize(WebCore::IntSize const&amp;) + 114 (ScrollView.cpp:402)
35  com.apple.WebCore             	0x00000001178a5d7a WebCore::FrameView::setContentsSize(WebCore::IntSize const&amp;) + 58 (FrameView.cpp:589)
36  com.apple.WebCore             	0x000000011789fa74 WebCore::FrameView::adjustViewSize() + 164 (FrameView.cpp:621)
37  com.apple.WebCore             	0x00000001178a254e WebCore::FrameViewLayoutContext::layout() + 1694 (FrameViewLayoutContext.cpp:247)
38  com.apple.WebCore             	0x00000001172d76e3 WebCore::Document::implicitClose() + 947 (Document.cpp:3149)
39  com.apple.WebCore             	0x00000001177c1e07 WebCore::FrameLoader::checkCompleted() + 391 (FrameLoader.cpp:881)

&lt;rdar://problem/73133028&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725507</commentid>
    <comment_count>1</comment_count>
      <attachid>419236</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-03 22:50:17 -0800</bug_when>
    <thetext>Created attachment 419236
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730253</commentid>
    <comment_count>2</comment_count>
      <attachid>420637</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-17 06:46:37 -0800</bug_when>
    <thetext>Created attachment 420637
Reduced testcase with similar behavior

So the issue is that in WebCore::ComputeFloatOffsetForLineLayoutAdapter, a RenderBlockFlow (with an associated FloatingObjects) tries to access the dangling WeakPtr of a float descendant (associated to a FloatingObject) that was released in a previous loop step of WebCore::RenderTreeUpdater::updateRenderTree.

For some reason, I&apos;m not able to reproduce the crash on Linux with attachment 419236. However, here is a simplified testcase exhibiting a similar issue. The destruction of the float renderer still happens in WebCore::FrameViewLayoutContext::updateStyleForLayout() as in attachment 419236, but the bad access is now only detected during the layout of the RenderBlockFlow container:

#0  WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295
#1  0x00007f065482a8cd in CRASH_WITH_INFO(...) ()
    at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713
...
#6  0x00007f0658b45bc3 in WebCore::FloatingObjects::moveAllToFloatInfoMap
    at ../../Source/WebCore/rendering/FloatingObjects.cpp:298
#7  0x00007f0658bc01e1 in WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats()
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:218
#8  0x00007f0658bc1a4b in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:483
...
#17 0x00007f0658bb06f7 in WebCore::RenderBlock::layout()
    at ../../Source/WebCore/rendering/RenderBlock.cpp:598
#18 0x00007f0658e0333b in WebCore::RenderView::layout()
    at ../../Source/WebCore/rendering/RenderView.cpp:185
#19 0x00007f065856b809 in WebCore::FrameViewLayoutContext::layout()
    at ../../Source/WebCore/page/FrameViewLayoutContext.cpp:232</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730254</commentid>
    <comment_count>3</comment_count>
      <attachid>420638</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-17 06:53:05 -0800</bug_when>
    <thetext>Created attachment 420638
Incorrect patch

This patch fixes the crash for attachment 419236 and attachment 420637, however it is a bit too extreme and needs to be refined (e.g. it causes needs-layout assertions on the minibrowser start page).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733748</commentid>
    <comment_count>4</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-26 07:14:55 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #2)
&gt; Created attachment 420637 [details]
&gt; Reduced testcase with similar behavior
&gt; 
&gt; So the issue is that in WebCore::ComputeFloatOffsetForLineLayoutAdapter, a
&gt; RenderBlockFlow (with an associated FloatingObjects) tries to access the
&gt; dangling WeakPtr of a float descendant (associated to a FloatingObject) that
&gt; was released in a previous loop step of
&gt; WebCore::RenderTreeUpdater::updateRenderTree.

Debugging session with more details of the renderer tree as well as the backtrace of when the renderer is removed.

Thread 1 received signal SIGSEGV, Segmentation fault.
(rr) reverse-f
(rr) 
(rr) 
(rr) 
(rr) 
(rr) 
https://webkit-search.igalia.com/webkit/rev/3b16c05731df770efe9fcaa447c5df9ff82c043d/Source/WebCore/rendering/FloatingObjects.cpp#298
(rr) p &amp;renderer
$1 = (WebCore::RenderBox *) 0x0
(rr) p showRenderTree(&amp;this-&gt;renderer())

(B)lock/(I)nline/I(N)line-block, (A)bsolute/Fi(X)ed/(R)elative/Stic(K)y, (F)loating, (O)verflow clip, Anon(Y)mous, (G)enerated, has(L)ayer, hasLayer(S)crollableArea, (C)omposited, (+)Dirty style, (+)Dirty layout
B---YGLS- -+  RenderView at (0,0) size 0x600 renderer-&gt;(0x7fdd44b4d250) (layout overflow 0,0 803x600) (visual overflow 0,0 785x600) layout-&gt;[normal child]
B-----LS- -+    HTML RenderBlock at (0,0) size 18x600 renderer-&gt;(0x7fdd44b4d6c0) node-&gt;(0x7fdd44b4fa80) (layout overflow -3,0 806x600) (visual overflow -3,0 806x600) layout-&gt;[self][normal child]
                   floating object 0x7fdcea4a8420 renderer 0x7fdd44b1c9d0 at (-3.50,0) size 37x14 paintsFloat 1 shouldPaint 1
B---YG--- --      RenderBlock at (0,0) size 18x600 renderer-&gt;(0x7fdd44b1c380)
                     floating object 0x7fdcea4a8360 renderer 0x7fdd44b1c9d0 at (-3.50,0) size 37x14 paintsFloat 0 shouldPaint 0
-------- --        Line: (top: 0 bottom: 17) with leading (top: 0 bottom: 18)
-------- --        RootInlineBox at (0,14) size 17x8 (0x7fdd44b1cd30) renderer-&gt;(0x7fdd44b1c380)
-------- --          InlineTextBox at (0,14) size 17x8 (0x7fdd44b1ccc0) renderer-&gt;(0x7fdd44b1c190) run(0, 1) &quot;b&quot;
-------- --          InlineBox at (3,22) size 0x0 (0x7fdd44b1cdf0) renderer-&gt;(0x7fdd44b1c230)
I----G--- --        &lt;pseudo&gt; RenderInline renderer-&gt;(0x7fdd44b1c0b0) node-&gt;(0x7fdd44b1c010)
B-F-YG--- --          RenderBlock at (-3.50,0) size 37x14 renderer-&gt;(0x7fdd44b1c9d0) (layout overflow 0,0 43x14) (visual overflow 0,0 43x14)
-------- --            Line: (top: 8 bottom: 43) with leading (top: 0 bottom: 37)
-------- --            RootInlineBox at (8,0) size 35x14 (0x7fdd44b1cc00) renderer-&gt;(0x7fdd44b1c9d0)
-------- --              InlineTextBox at (8,0) size 35x14 (0x7fdd44b1cb90) renderer-&gt;(0x7fdd44b1caf0) run(0, 1) &quot;a&quot;
I---YG--- --            RenderText renderer-&gt;(0x7fdd44b1caf0)
I---YG--- --          RenderText renderer-&gt;(0x7fdd44b1c190)
I---YG--- --          RenderImage at (3,22) size 0x0 renderer-&gt;(0x7fdd44b1c230)
B-------- -+*     BODY RenderBody at (26,8) size 769x584 renderer-&gt;(0x7fdd44b4d7e0) node-&gt;(0x7fdd44b4fef0) (layout overflow -3,0 772x584) (visual overflow -3,0 772x584) layout-&gt;[self][normal child]
                     floating object 0x7fdcea4a8120 renderer (nil) at (-3.50,0) size 19x14 paintsFloat 1 shouldPaint 0
I----G--- -+        &lt;pseudo&gt; RenderInline renderer-&gt;(0x7fdd44b1c540) node-&gt;(0x7fdd44b1c4a0) layout-&gt;[self][normal child]
B-F-YG--- -+          RenderBlock at (0,0) size 0x0 renderer-&gt;(0x7fdd44b1c810) layout-&gt;[self][normal child]
I---YG--- -+            RenderText renderer-&gt;(0x7fdd44b1c930) layout-&gt;[self]
I---YG--- -+          RenderText renderer-&gt;(0x7fdd44b1c620) layout-&gt;[self]
I---YG--- -+          RenderImage at (0,0) size 0x0 renderer-&gt;(0x7fdd44b1c6c0) layout-&gt;[self]

$2 = void
(rr) p it-&gt;get()
$3 = (WebCore::FloatingObject *) 0x7fdcea4a8120
(rr) watch -l ((WebCore::FloatingObject *) 0x7fdcea4a8120)-&gt;m_renderer
(rr) rc
(rr) reverse-f
(rr) 
(rr) 
(rr) 
https://webkit-search.igalia.com/webkit/rev/3b16c05731df770efe9fcaa447c5df9ff82c043d/Source/WebCore/rendering/FloatingObjects.cpp#52
(rr) p &amp;renderer
$4 = (WebCore::RenderBox *) 0x7fdd44b1c810
(rr) watch -l ((WebCore::RenderBox *) 0x7fdd44b1c810)-&gt;m_parent
(rr) c
(rr) 
https://webkit-search.igalia.com/webkit/rev/3b16c05731df770efe9fcaa447c5df9ff82c043d/Source/WebCore/rendering/RenderObject.cpp#271
(rr) bt
#0  WebCore::RenderObject::setParent(WebCore::RenderElement*) (this=0x7fdd44b1c810, parent=0x0) at ../../Source/WebCore/rendering/RenderObject.cpp:272
#1  0x00007fdd61d4984e in WebCore::RenderElement::detachRendererInternal(WebCore::RenderObject&amp;) (this=0x7fdd44b1c540, renderer=...)
    at ../../Source/WebCore/rendering/RenderElement.cpp:588
#2  0x00007fdd6205ef99 in WebCore::RenderTreeBuilder::detachFromRenderElement(WebCore::RenderElement&amp;, WebCore::RenderObject&amp;, WebCore::RenderTreeBuilder::WillBeDestroyed) (this=0x7ffd9209ded8, parent=..., child=..., willBeDestroyed=WebCore::RenderTreeBuilder::WillBeDestroyed::Yes)
    at ../../Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:896
#3  0x00007fdd6205cc34 in WebCore::RenderTreeBuilder::detach(WebCore::RenderElement&amp;, WebCore::RenderObject&amp;, WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) (this=0x7ffd9209ded8, parent=..., child=..., canCollapseAnonymousBlock=WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock::Yes)
    at ../../Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:397
#4  0x00007fdd6205b713 in WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&amp;) (this=0x7ffd9209ded8, renderer=...)
    at ../../Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:169
#5  0x00007fdd6205b853 in WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&amp;) (this=0x7ffd9209ded8, renderer=...)
    at ../../Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:193
#6  0x00007fdd6205ea40 in WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers(WebCore::RenderObject&amp;) (this=0x7ffd9209ded8, rendererToDestroy=...)
    at ../../Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:818
#7  0x00007fdd6207443a in operator()(unsigned int) const (__closure=0x7ffd920989c0, depth=0)
    at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:589
#8  0x00007fdd620746b4 in WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&amp;, WebCore::RenderTreeUpdater::TeardownType, WebCore::RenderTreeBuilder&amp;) (root=..., teardownType=WebCore::RenderTreeUpdater::TeardownType::RendererUpdate, builder=...)
    at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:612
#9  0x00007fdd62072f38 in WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;)
    (this=0x7ffd9209deb0, element=..., updates=...) at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:325
#10 0x00007fdd62080ef4 in WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement(WebCore::Element&amp;, WebCore::Style::ElementUpdates const&amp;, WebCore::PseudoId) (this=0x7fdcea4d2e50, current=..., updates=..., pseudoId=WebCore::PseudoId::Before)
    at https://webkit-search.igalia.com/webkit/rev/3b16c05731df770efe9fcaa447c5df9ff82c043d/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp#155
#11 0x00007fdd62072961 in WebCore::RenderTreeUpdater::updateBeforeDescendants(WebCore::Element&amp;, WebCore::Style::ElementUpdates const*)
    (this=0x7ffd9209deb0, element=..., updates=0x7fdd44e43e50) at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:254
#12 0x00007fdd62072825 in WebCore::RenderTreeUpdater::pushParent(WebCore::Element&amp;, WebCore::Style::ElementUpdates const*)
    (this=0x7ffd9209deb0, element=..., updates=0x7fdd44e43e50) at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:231
#13 0x00007fdd62072691 in WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;) (this=0x7ffd9209deb0, root=...)
    at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:204
#14 0x00007fdd62071fec in WebCore::RenderTreeUpdater::commit(std::unique_ptr&lt;WebCore::Style::Update const, std::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
    (this=0x7ffd9209deb0, styleUpdate=std::unique_ptr&lt;const WebCore::Style::Update&gt; = {...})
    at ../../Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:126
#15 0x00007fdd60b1fd59 in WebCore::Document::updateRenderTree(std::unique_ptr&lt;WebCore::Style::Update const, std::default_delete&lt;WebCore::Style::Update const&gt; &gt;) (this=0x7fdd44b4ec70, styleUpdate=std::unique_ptr&lt;const WebCore::Style::Update&gt; = {...}) at ../../Source/WebCore/dom/Document.cpp:1979
#16 0x00007fdd60b20308 in WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
    (this=0x7fdd44b4ec70, type=WebCore::Document::ResolveStyleType::Normal) at ../../Source/WebCore/dom/Document.cpp:2069
#17 0x00007fdd60b208b8 in WebCore::Document::updateStyleIfNeeded() (this=0x7fdd44b4ec70) at ../../Source/WebCore/dom/Document.cpp:2156
#18 0x00007fdd61650d36 in WebCore::FrameViewLayoutContext::updateStyleForLayout() (this=0x7fdd44b4c158)
    at https://webkit-search.igalia.com/webkit/rev/3b16c05731df770efe9fcaa447c5df9ff82c043d/Source/WebCore/page/FrameViewLayoutContext.cpp#545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733749</commentid>
    <comment_count>5</comment_count>
      <attachid>421641</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-26 07:17:37 -0800</bug_when>
    <thetext>Created attachment 421641
Patch

This is a better patch than attachment 420638, clearing the float objects at RenderTreeUpdater::GeneratedContent::updatePseudoElement(). It probably can still be refined but I&apos;m already uploading to get feedback and try EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734149</commentid>
    <comment_count>6</comment_count>
      <attachid>421641</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-26 22:54:10 -0800</bug_when>
    <thetext>Comment on attachment 421641
Patch

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

&gt; Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:117
&gt; +        // Clear floating objects to avoid dangling WeakPtr when their renderers are destroyed.
&gt; +        if (is&lt;RenderBlockFlow&gt;(renderer-&gt;parent()))

Doesn&apos;t this mean that we&apos;re also not null-checking where WeakPtr is used?
It seems that we should be adding a nullptr there as well with perhaps a debug-only assertion that it shouldn&apos;t be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734157</commentid>
    <comment_count>7</comment_count>
      <attachid>421641</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-26 23:50:13 -0800</bug_when>
    <thetext>Comment on attachment 421641
Patch

removing review flag as I plan to refine the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734158</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-26 23:56:31 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #6)
&gt; Comment on attachment 421641 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421641&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:117
&gt; &gt; +        // Clear floating objects to avoid dangling WeakPtr when their renderers are destroyed.
&gt; &gt; +        if (is&lt;RenderBlockFlow&gt;(renderer-&gt;parent()))
&gt; 
&gt; Doesn&apos;t this mean that we&apos;re also not null-checking where WeakPtr is used?
&gt; It seems that we should be adding a nullptr there as well with perhaps a
&gt; debug-only assertion that it shouldn&apos;t be.

Right, FloatingObject::renderer() is just dereferences that way without null-checking:

RenderBox&amp; renderer() const { return *m_renderer; }

Not sure exactly what you are proposing. Add an ASSERT(m_renderer) here, or just null-check / ASSERT in the specific call site involved in this bug, which is FloatingObjects::moveAllToFloatInfoMap?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734161</commentid>
    <comment_count>9</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-27 00:07:09 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #8)
&gt; Right, FloatingObject::renderer() is just dereferences that way without
&gt; null-checking:
&gt; 
&gt; RenderBox&amp; renderer() const { return *m_renderer; }
&gt; 
&gt; Not sure exactly what you are proposing. Add an ASSERT(m_renderer) here, or
&gt; just null-check / ASSERT in the specific call site involved in this bug,
&gt; which is FloatingObjects::moveAllToFloatInfoMap?

mmh, actually since m_renderer is private, we can only perform null checks within FloatingObject anyway...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738447</commentid>
    <comment_count>10</comment_count>
      <attachid>421641</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-03-11 08:08:40 -0800</bug_when>
    <thetext>Comment on attachment 421641
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:117
&gt;&gt;&gt; +        if (is&lt;RenderBlockFlow&gt;(renderer-&gt;parent()))
&gt;&gt; 
&gt;&gt; Doesn&apos;t this mean that we&apos;re also not null-checking where WeakPtr is used?
&gt;&gt; It seems that we should be adding a nullptr there as well with perhaps a debug-only assertion that it shouldn&apos;t be.
&gt; 
&gt; Right, FloatingObject::renderer() is just dereferences that way without null-checking:
&gt; 
&gt; RenderBox&amp; renderer() const { return *m_renderer; }
&gt; 
&gt; Not sure exactly what you are proposing. Add an ASSERT(m_renderer) here, or just null-check / ASSERT in the specific call site involved in this bug, which is FloatingObjects::moveAllToFloatInfoMap?

I only added a debug ASSERT in the latest patch. I hope that&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738448</commentid>
    <comment_count>11</comment_count>
      <attachid>422931</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-03-11 08:09:57 -0800</bug_when>
    <thetext>Created attachment 422931
Patch

(In reply to Frédéric Wang (:fredw) from comment #4)
&gt; B-------- -+*     BODY RenderBody at (26,8) size 769x584
&gt; renderer-&gt;(0x7fdd44b4d7e0) node-&gt;(0x7fdd44b4fef0) (layout overflow -3,0
&gt; 772x584) (visual overflow -3,0 772x584) layout-&gt;[self][normal child]
&gt;                      floating object 0x7fdcea4a8120 renderer (nil) at
&gt; (-3.50,0) size 19x14 paintsFloat 1 shouldPaint 0
&gt; I----G--- -+        &lt;pseudo&gt; RenderInline renderer-&gt;(0x7fdd44b1c540)
&gt; node-&gt;(0x7fdd44b1c4a0) layout-&gt;[self][normal child]
&gt; B-F-YG--- -+          RenderBlock at (0,0) size 0x0
&gt; renderer-&gt;(0x7fdd44b1c810) layout-&gt;[self][normal child]
&gt; I---YG--- -+            RenderText renderer-&gt;(0x7fdd44b1c930) layout-&gt;[self]
&gt; I---YG--- -+          RenderText renderer-&gt;(0x7fdd44b1c620) layout-&gt;[self]
&gt; I---YG--- -+          RenderImage at (0,0) size 0x0
&gt; renderer-&gt;(0x7fdd44b1c6c0) layout-&gt;[self]

So just to make it clear : the &lt;pseudo&gt; element (0x7fdd44b1c540) has a first child (0x7fdd44b1c810) which is a float. That one is wrapped as a WeakPtr in the FloatingObjects of the parent (0x7fdd44b4d7e0). When the pseudo element is updated, the float object is removed, leading to a dangling WeakPtr. The patch addresses that particular case by calling removeFloatingObjects() on the parent of the pseudo element. But I wonder if it could be refined to target more precisely the relevant cases. Not sure what are these situations though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740929</commentid>
    <comment_count>12</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-03-17 15:44:34 -0700</bug_when>
    <thetext>This looks to be progressed at https://trac.webkit.org/changeset/274278/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740933</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-03-17 15:53:39 -0700</bug_when>
    <thetext>Maybe we can still add tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741138</commentid>
    <comment_count>14</comment_count>
      <attachid>423580</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-03-18 03:40:18 -0700</bug_when>
    <thetext>Created attachment 423580
Patch

Thanks Zalan, yes the tests are no longer crashing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741201</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-18 07:44:07 -0700</bug_when>
    <thetext>Committed r274645: &lt;https://commits.webkit.org/r274645&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423580.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>419236</attachid>
            <date>2021-02-03 22:50:17 -0800</date>
            <delta_ts>2021-02-03 22:50:17 -0800</delta_ts>
            <desc>Test</desc>
            <filename>repro_472.html</filename>
            <type>text/html</type>
            <size>2296</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHN0eWxlPgogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwogIC8qKiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiAqLwogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAq
LwogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwog
IC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwogIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLwogIC8q
KiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiAqLwoKICAqOjpmaXJzdC1sZXR0ZXIgewogICAgLXdlYmtpdC1p
bml0aWFsLWxldHRlcjogMjsKICB9CiAgKiB7CiAgICBib3R0b206IDB2aDsKICAgIHNoYXBlLW91
dHNpZGU6IHVybCgpOwogICAgdmVydGljYWwtYWxpZ246IC0xcHg7CiAgICB3cml0aW5nLW1vZGU6
IHZlcnRpY2FsLWxyOwogIH0KPC9zdHlsZT4KPHNjcmlwdD4KICBvbmxvYWQgPSAoKSA9PiB7CiAg
ICBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGAqIHsgb3V0bGluZS1vZmZzZXQ6
IDFweDsgfWApOwogICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKiB7IC13
ZWJraXQtdGV4dC1lbXBoYXNpczogImEiOyB9YCk7CiAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1sw
XS5pbnNlcnRSdWxlKGAqOjpiZWZvcmUgeyBjb250ZW50OiAnYWInIHVybCgpOyB9YCk7CiAgICBk
b2N1bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGAqIHsgYWxsOiBpbml0aWFsOyB9YCk7
CiAgfTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>420637</attachid>
            <date>2021-02-17 06:46:37 -0800</date>
            <delta_ts>2021-02-17 06:46:37 -0800</delta_ts>
            <desc>Reduced testcase with similar behavior</desc>
            <filename>repro_472-reduced.html</filename>
            <type>text/html</type>
            <size>225</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PHN0eWxlPgogICo6OmZpcnN0LWxldHRlciB7CiAgICAtd2Via2l0LWluaXRpYWwtbGV0dGVyOiAy
OwogIH0KICAqIHsKICAgIGJvdHRvbTogMHZoOwogICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1s
cjsKICB9Cjwvc3R5bGU+CjxzY3JpcHQ+CiAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0
UnVsZShgKjo6YmVmb3JlIHsgY29udGVudDogJ2FiJyB1cmwoKTsgfWApOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420638</attachid>
            <date>2021-02-17 06:53:05 -0800</date>
            <delta_ts>2021-03-18 03:24:55 -0700</delta_ts>
            <desc>Incorrect patch</desc>
            <filename>floats-3.patch</filename>
            <type>text/plain</type>
            <size>927</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4
IDU3NjYxZjRiZmEuLjM4NjA0OGMyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtNTQwLDYgKzU0MCwxMSBAQCB2b2lkIEZyYW1lVmll
d0xheW91dENvbnRleHQ6OnVwZGF0ZVN0eWxlRm9yTGF5b3V0KCkKICAgICAvLyBJZiB0aGVyZSBp
cyBhbnkgcGFnaW5hdGlvbiB0byBhcHBseSwgaXQgd2lsbCBhZmZlY3QgdGhlIFJlbmRlclZpZXcn
cyBzdHlsZSwgc28gd2Ugc2hvdWxkCiAgICAgLy8gdGFrZSBjYXJlIG9mIHRoYXQgbm93LgogICAg
IHZpZXcoKS5hcHBseVBhZ2luYXRpb25Ub1ZpZXdwb3J0KCk7CisKKyAgICAvLyBDbGVhciBmbG9h
dGluZyBvYmplY3RzIHRvIGF2b2lkIGRhbmdsaW5nIFdlYWtQdHIgd2hlbiB0aGVpciByZW5kZXJl
cnMgYXJlIGRlc3Ryb3llZC4KKyAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50
c09mVHlwZTxSZW5kZXJCbG9ja0Zsb3c+KCpkb2N1bWVudC5yZW5kZXJWaWV3KCkpKQorICAgICAg
ICBkZXNjZW5kYW50LnJlbW92ZUZsb2F0aW5nT2JqZWN0cygpOworCiAgICAgLy8gQWx3YXlzIGVu
c3VyZSBvdXIgc3R5bGUgaW5mbyBpcyB1cC10by1kYXRlLiBUaGlzIGNhbiBoYXBwZW4gaW4gc2l0
dWF0aW9ucyB3aGVyZQogICAgIC8vIHRoZSBsYXlvdXQgYmVhdHMgYW55IHNvcnQgb2Ygc3R5bGUg
cmVjYWxjIHVwZGF0ZSB0aGF0IG5lZWRzIHRvIG9jY3VyLgogICAgIGRvY3VtZW50LnVwZGF0ZVN0
eWxlSWZOZWVkZWQoKTsK
</data>
<flag name="review"
          id="439227"
          type_id="1"
          status="-"
          setter="fred.wang"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421641</attachid>
            <date>2021-02-26 07:17:37 -0800</date>
            <delta_ts>2021-03-11 08:09:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221382-Nullptr-crash-in-RenderStyle-shapeOutside.patch</filename>
            <type>text/plain</type>
            <size>10885</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBjOGVjN2Y4ZWVmM2E5Yzc3ODY0YjZkNTBlYmFlMGQ2YTUzY2ZhYWFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDI2IEZlYiAyMDIxIDE1OjMxOjE3ICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTM4MiAtIE51bGxwdHIgY3Jhc2ggaW4gUmVuZGVyU3R5
bGU6OnNoYXBlT3V0c2lkZSgpCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDEyICsrKysrKysKIC4uLnVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNy
YXNoLWV4cGVjdGVkLnR4dCB8ICAyICsrCiAuLi5sb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1v
dmVkLWNyYXNoLmh0bWwgfCAzMiArKysrKysrKysrKysrKysrKysrCiAuLi5kby1lbGVtZW50LW5v
dC1yZW1vdmVkLWNyYXNoMi1leHBlY3RlZC50eHQgfCAgMiArKwogLi4ub2F0LXBzZXVkby1lbGVt
ZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sIHwgMTUgKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrKysrCiAuLi4vUmVu
ZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcCAgICAgfCAgNiArKystCiA3IGZpbGVz
IGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5v
dC1yZW1vdmVkLWNyYXNoLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jh
c2guaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQv
ZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2gyLWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRv
LWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2gyLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2JjZjIyYWNhOS4uY2Fl
YjE2NGE3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTAyLTI2ICBGcsOpZMOpcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gUmVuZGVy
U3R5bGU6OnNoYXBlT3V0c2lkZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjEzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90
LXJlbW92ZWQtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2Nr
L2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJl
bW92ZWQtY3Jhc2gyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9m
bG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaDIuaHRtbDogQWRkZWQu
CisKIDIwMjEtMDItMjQgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIE51bGxwdHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJlZVRvTm9k
ZSB2aWEgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3Qt
cmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0
L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iMjVjZTg3Y2Y1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVu
dC1ub3QtcmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitDT05TT0xF
IE1FU1NBR0U6IFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCisgLyoqIGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXogKi8gLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8gLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovIC8q
KiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8gKjo6Zmlyc3Qt
bGV0dGVyIHsgLXdlYmtpdC1pbml0aWFsLWxldHRlcjogMjsgfSAqIHsgYm90dG9tOiAwdmg7IHNo
YXBlLW91dHNpZGU6IHVybCgpOyB2ZXJ0aWNhbC1hbGlnbjogLTFweDsgd3JpdGluZy1tb2RlOiB2
ZXJ0aWNhbC1scjsgfSAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsgY29uc29sZS5sb2coIlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2gu
Iik7IG9ubG9hZCA9ICgpID0+IHsgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShg
KiB7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1gKTsgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5z
ZXJ0UnVsZShgKiB7IC13ZWJraXQtdGV4dC1lbXBoYXNpczogImEiOyB9YCk7IGRvY3VtZW50LnN0
eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCo6OmJlZm9yZSB7IGNvbnRlbnQ6ICdhYicgdXJsKCk7
IH1gKTsgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKiB7IGFsbDogaW5pdGlh
bDsgfWApOyB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjRkYjY1N2NjMGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1l
bGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPHN0eWxlPgor
ICAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovCisg
IC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworICAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAg
LyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworICAv
KiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovCisgIC8q
KiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiAqLworCisgICo6OmZpcnN0LWxldHRlciB7CisgICAgLXdlYmtp
dC1pbml0aWFsLWxldHRlcjogMjsKKyAgfQorICAqIHsKKyAgICBib3R0b206IDB2aDsKKyAgICBz
aGFwZS1vdXRzaWRlOiB1cmwoKTsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogLTFweDsKKyAgICB3cml0
aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIGNvbnNv
bGUubG9nKCJUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLiIpOworICBvbmxv
YWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKiB7
IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1gKTsKKyAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5p
bnNlcnRSdWxlKGAqIHsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAiYSI7IH1gKTsKKyAgICBkb2N1
bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGAqOjpiZWZvcmUgeyBjb250ZW50OiAnYWIn
IHVybCgpOyB9YCk7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKiB7
IGFsbDogaW5pdGlhbDsgfWApOworICB9OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNy
YXNoMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBz
ZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU3YzFkODZmNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJl
bW92ZWQtY3Jhc2gyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FH
RTogVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVt
b3ZlZC1jcmFzaDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNl
dWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2gyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uZWU1ZDQ3MzUwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jh
c2gyLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPHN0eWxlPgorICAqOjpmaXJzdC1sZXR0ZXIgewor
ICAgIC13ZWJraXQtaW5pdGlhbC1sZXR0ZXI6IDI7CisgIH0KKyAgKiB7CisgICAgYm90dG9tOiAw
dmg7CisgICAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsKKyAgfQorPC9zdHlsZT4KKzxzY3Jp
cHQ+CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICBjb25zb2xlLmxvZygiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFz
aC4iKTsKKyAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKjo6YmVmb3JlIHsg
Y29udGVudDogJ2FiJyB1cmwoKTsgfWApOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhOTA2
YzBhYS4uODY2YTNmOTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAyLTI2
ICBGcsOpZMOpcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIE51bGxwdHIg
Y3Jhc2ggaW4gUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgcHNldWRvIGVsZW1lbnQncyByZW5k
ZXJlciBpcyBhIGZsb2F0LCBpdHMgcmVtb3ZhbCBtYXkgbGVhZCB0byBhIGRhbmdsaW5nIFdlYWtQ
dHIKKyAgICAgICAgbV9yZW5kZXJlciBvbiB0aGUgY29ycmVzcG9uZGluZyBGbG9hdGluZ09iamVj
dC4gVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhhdCBpc3N1ZSBieSBjbGVhcmluZworICAgICAgICB0
aGUgZmxvYXRpbmcgb2JqZWN0cyBvZiB0aGUgcGFyZW50IHdoZW4gdXBkYXRpbmcgdGhlIGdlbmVy
YXRlZCBjb250ZW50IG9mIHRoZSBwc2V1ZG8gZWxlbWVudC4KKworICAgICAgICBUZXN0czogZmFz
dC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5v
dC1yZW1vdmVkLWNyYXNoMi5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0ZWRDb250ZW50Ojp1cGRhdGVQc2V1ZG9FbGVtZW50KToK
KwogMjAyMS0wMi0yNCAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgTnVsbHB0ciBjcmFzaCBpbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6c3BsaXRUcmVlVG9Ob2Rl
IHZpYSBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5l
cmF0ZWRDb250ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuY3BwCmluZGV4IDYyZTdlMmM3N2IuLjNhODM4
YTA0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuY3BwCkBA
IC0xMTEsOCArMTExLDEyIEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OkdlbmVyYXRlZENvbnRl
bnQ6OnVwZGF0ZVBzZXVkb0VsZW1lbnQoRWxlbWVudCYgY3VycmVudCwKIHsKICAgICBQc2V1ZG9F
bGVtZW50KiBwc2V1ZG9FbGVtZW50ID0gcHNldWRvSWQgPT0gUHNldWRvSWQ6OkJlZm9yZSA/IGN1
cnJlbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpIDogY3VycmVudC5hZnRlclBzZXVkb0VsZW1lbnQo
KTsKIAotICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHBzZXVkb0VsZW1lbnQgPyBwc2V1ZG9FbGVt
ZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cikKKyAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBwc2V1
ZG9FbGVtZW50ID8gcHNldWRvRWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHIpIHsKICAgICAg
ICAgbV91cGRhdGVyLnJlbmRlclRyZWVQb3NpdGlvbigpLmludmFsaWRhdGVOZXh0U2libGluZygq
cmVuZGVyZXIpOworICAgICAgICAvLyBDbGVhciBmbG9hdGluZyBvYmplY3RzIHRvIGF2b2lkIGRh
bmdsaW5nIFdlYWtQdHIgd2hlbiB0aGVpciByZW5kZXJlcnMgYXJlIGRlc3Ryb3llZC4KKyAgICAg
ICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXItPnBhcmVudCgpKSkKKyAgICAgICAg
ICAgIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXItPnBhcmVudCgpKS0+cmVtb3Zl
RmxvYXRpbmdPYmplY3RzKCk7CisgICAgfQogCiAgICAgYXV0byogdXBkYXRlID0gWyZdKCkgLT4g
Y29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqIHsKICAgICAgICAgYXV0byBpdGVyYXRvciA9IHVw
ZGF0ZXMucHNldWRvRWxlbWVudFVwZGF0ZXMuZmluZChwc2V1ZG9JZCk7Ci0tIAoyLjI1LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422931</attachid>
            <date>2021-03-11 08:09:57 -0800</date>
            <delta_ts>2021-03-18 03:40:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221382-Nullptr-crash-in-RenderStyle-shapeOutside.patch</filename>
            <type>text/plain</type>
            <size>12162</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA1OGFkZmRiZWEwZTJiZGJmZWFjMjViMzlmZjJlMTdkMWE2NzgxNGZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDI2IEZlYiAyMDIxIDE1OjMxOjE3ICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTM4MiAtIE51bGxwdHIgY3Jhc2ggaW4gUmVuZGVyU3R5
bGU6OnNoYXBlT3V0c2lkZSgpCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDEyICsrKysrKysKIC4uLnVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNy
YXNoLWV4cGVjdGVkLnR4dCB8ICAyICsrCiAuLi5sb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1v
dmVkLWNyYXNoLmh0bWwgfCAzMiArKysrKysrKysrKysrKysrKysrCiAuLi5kby1lbGVtZW50LW5v
dC1yZW1vdmVkLWNyYXNoMi1leHBlY3RlZC50eHQgfCAgMiArKwogLi4ub2F0LXBzZXVkby1lbGVt
ZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sIHwgMTUgKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oICAgIHwgIDQgKy0tCiAuLi4vUmVu
ZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcCAgICAgfCAgNyArKystCiA4IGZpbGVz
IGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1u
b3QtcmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNy
YXNoLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0
L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi1leHBlY3RlZC50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVk
by1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlNGQzNmM1OWEuLjhl
YmUzZjljZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMi0yNiAgRnLDqWTDqXJpYyBX
YW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGluIFJlbmRl
clN0eWxlOjpzaGFwZU91dHNpZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIxMzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5v
dC1yZW1vdmVkLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9j
ay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1y
ZW1vdmVkLWNyYXNoMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2sv
ZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2gyLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgTUVESUFfU09VUkNFIGluIElPUyBTaW11bGF0b3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92
ZWQtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjI1Y2U4N2NmNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90
LXJlbW92ZWQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQ09OU09MRSBNRVNT
QUdFOiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgorIC8qKiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8gLyoqIGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8g
LyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogKi8gLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovICo6OmZpcnN0LWxldHRl
ciB7IC13ZWJraXQtaW5pdGlhbC1sZXR0ZXI6IDI7IH0gKiB7IGJvdHRvbTogMHZoOyBzaGFwZS1v
dXRzaWRlOiB1cmwoKTsgdmVydGljYWwtYWxpZ246IC0xcHg7IHdyaXRpbmctbW9kZTogdmVydGlj
YWwtbHI7IH0gIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
IGNvbnNvbGUubG9nKCJUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLiIpOyBv
bmxvYWQgPSAoKSA9PiB7IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCogeyBv
dXRsaW5lLW9mZnNldDogMXB4OyB9YCk7IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1
bGUoYCogeyAtd2Via2l0LXRleHQtZW1waGFzaXM6ICJhIjsgfWApOyBkb2N1bWVudC5zdHlsZVNo
ZWV0c1swXS5pbnNlcnRSdWxlKGAqOjpiZWZvcmUgeyBjb250ZW50OiAnYWInIHVybCgpOyB9YCk7
IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCogeyBhbGw6IGluaXRpYWw7IH1g
KTsgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNl
dWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2guaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40ZGI2NTdjYzBiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVu
dC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxzdHlsZT4KKyAgLyoq
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworICAvKiog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovCisgIC8qKiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiAqLworICAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworICAvKiogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogKi8KKworICAqOjpmaXJzdC1sZXR0ZXIgeworICAgIC13ZWJraXQtaW5p
dGlhbC1sZXR0ZXI6IDI7CisgIH0KKyAgKiB7CisgICAgYm90dG9tOiAwdmg7CisgICAgc2hhcGUt
b3V0c2lkZTogdXJsKCk7CisgICAgdmVydGljYWwtYWxpZ246IC0xcHg7CisgICAgd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1scjsKKyAgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICBjb25zb2xlLmxv
ZygiVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4iKTsKKyAgb25sb2FkID0g
KCkgPT4geworICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCogeyBvdXRs
aW5lLW9mZnNldDogMXB4OyB9YCk7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0
UnVsZShgKiB7IC13ZWJraXQtdGV4dC1lbXBoYXNpczogImEiOyB9YCk7CisgICAgZG9jdW1lbnQu
c3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKjo6YmVmb3JlIHsgY29udGVudDogJ2FiJyB1cmwo
KTsgfWApOworICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCogeyBhbGw6
IGluaXRpYWw7IH1gKTsKKyAgfTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaDIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8t
ZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ1N2MxZDg2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVk
LWNyYXNoMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFRo
aXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQt
Y3Jhc2gyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1l
bGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmVlNWQ0NzM1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdHlsZT4KKyAgKjo6Zmlyc3QtbGV0dGVyIHsKKyAgICAt
d2Via2l0LWluaXRpYWwtbGV0dGVyOiAyOworICB9CisgICogeworICAgIGJvdHRvbTogMHZoOwor
ICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisgIH0KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgY29uc29sZS5sb2coIlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guIik7
CisgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCo6OmJlZm9yZSB7IGNvbnRl
bnQ6ICdhYicgdXJsKCk7IH1gKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMxMTY0NWQwMTku
LmM3ZmUzZjIwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wMi0yNiAgRnLD
qWTDqXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNo
IGluIFJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIHBzZXVkbyBlbGVtZW50J3MgcmVuZGVyZXIg
Y29udGFpbnMgZmxvYXRzLCBpdHMgcmVtb3ZhbCBtYXkgbGVhZCB0byBhIGRhbmdsaW5nIFdlYWtQ
dHIKKyAgICAgICAgbV9yZW5kZXJlciBvbiB0aGUgY29ycmVzcG9uZGluZyBGbG9hdGluZ09iamVj
dCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lci4gVGhpcyBwYXRjaCBhZGRyZXNzZXMKKyAgICAgICAg
dGhhdCBpc3N1ZSBieSBjbGVhcmluZyB0aGUgZmxvYXRpbmcgb2JqZWN0cyBvZiB0aGUgcGFyZW50
IHdoZW4gdXBkYXRpbmcgdGhlIGdlbmVyYXRlZAorICAgICAgICBjb250ZW50IG9mIHRoZSBwc2V1
ZG8gZWxlbWVudC4KKworICAgICAgICBUZXN0czogZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1
ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRD
b250ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0
ZWRDb250ZW50Ojp1cGRhdGVQc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxv
YXRpbmdPYmplY3RzLmg6IGFkZCBudWxsY2hlY2sgQVNTRVJUIGZvciBkZWJ1ZyBidWlsZHMuCisK
IDIwMjEtMDMtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEVsaW1pbmF0ZSBTY3JvbGxBbmltYXRvckdlbmVyaWM6Om1fc21vb3RoQW5pbWF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKaW5kZXggYWVhODMw
NWI3OC4uZjgzY2Y5NDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b2F0aW5nT2JqZWN0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09i
amVjdHMuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRpbmdPYmplY3QoUmVu
ZGVyQm94JiwgVHlwZSwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFNpemUmLCBib29s
IHNob3VsZFBhaW50LCBib29sIGlzRGVzY2VuZGFudCk7CiAKICAgICBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9Ci0gICAgUmVuZGVyQm94JiBy
ZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuICptX3JlbmRlcmVyOyB9CisgICAgUmVuZGVyQm94JiBy
ZW5kZXJlcigpIGNvbnN0IHsgQVNTRVJUKG1fcmVuZGVyZXIpOyByZXR1cm4gKm1fcmVuZGVyZXI7
IH0KIAogICAgIGJvb2wgaXNQbGFjZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGxhY2VkOyB9CiAg
ICAgdm9pZCBzZXRJc1BsYWNlZChib29sIHBsYWNlZCA9IHRydWUpIHsgbV9pc1BsYWNlZCA9IHBs
YWNlZDsgfQpAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGZpbmRO
ZXh0RmxvYXRMb2dpY2FsQm90dG9tQmVsb3dGb3JCbG9jayhMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIoKSBj
b25zdCB7IHJldHVybiAqbV9yZW5kZXJlcjsgfQorICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYg
cmVuZGVyZXIoKSBjb25zdCB7IEFTU0VSVChtX3JlbmRlcmVyKTsgcmV0dXJuICptX3JlbmRlcmVy
OyB9CiAgICAgdm9pZCBjb21wdXRlUGxhY2VkRmxvYXRzVHJlZSgpOwogICAgIGNvbnN0IEZsb2F0
aW5nT2JqZWN0VHJlZSogcGxhY2VkRmxvYXRzVHJlZSgpOwogICAgIHZvaWQgaW5jcmVhc2VPYmpl
Y3RzQ291bnQoRmxvYXRpbmdPYmplY3Q6OlR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJH
ZW5lcmF0ZWRDb250ZW50LmNwcAppbmRleCA2MmU3ZTJjNzdiLi5kMzA3YTRhZGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXJH
ZW5lcmF0ZWRDb250ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmNwcApAQCAtMTExLDggKzExMSwx
MyBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpHZW5lcmF0ZWRDb250ZW50Ojp1cGRhdGVQc2V1
ZG9FbGVtZW50KEVsZW1lbnQmIGN1cnJlbnQsCiB7CiAgICAgUHNldWRvRWxlbWVudCogcHNldWRv
RWxlbWVudCA9IHBzZXVkb0lkID09IFBzZXVkb0lkOjpCZWZvcmUgPyBjdXJyZW50LmJlZm9yZVBz
ZXVkb0VsZW1lbnQoKSA6IGN1cnJlbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCk7CiAKLSAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSBwc2V1ZG9FbGVtZW50ID8gcHNldWRvRWxlbWVudC0+cmVuZGVyZXIo
KSA6IG51bGxwdHIpCisgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcHNldWRvRWxlbWVudCA/IHBz
ZXVkb0VsZW1lbnQtPnJlbmRlcmVyKCkgOiBudWxscHRyKSB7CiAgICAgICAgIG1fdXBkYXRlci5y
ZW5kZXJUcmVlUG9zaXRpb24oKS5pbnZhbGlkYXRlTmV4dFNpYmxpbmcoKnJlbmRlcmVyKTsKKyAg
ICAgICAgLy8gVGhlIHBzZXVkbyBlbGVtZW50IG1heSBjb250YWluIGZsb2F0cyBhc3NvY2lhdGVk
IHRvIGEgUmVuZGVyQmxvY2tGbG93IHBhcmVudC4KKyAgICAgICAgLy8gQ2xlYXIgaXRzIGZsb2F0
aW5nIG9iamVjdHMgdG8gYXZvaWQgZGFuZ2xpbmcgV2Vha1B0ciB3aGVuIHRoZWlyIHJlbmRlcmVy
cyBhcmUgZGVzdHJveWVkLgorICAgICAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJl
ci0+cGFyZW50KCkpKQorICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5k
ZXJlci0+cGFyZW50KCkpLT5yZW1vdmVGbG9hdGluZ09iamVjdHMoKTsKKyAgICB9CiAKICAgICBh
dXRvKiB1cGRhdGUgPSBbJl0oKSAtPiBjb25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZSogewogICAg
ICAgICBhdXRvIGl0ZXJhdG9yID0gdXBkYXRlcy5wc2V1ZG9FbGVtZW50VXBkYXRlcy5maW5kKHBz
ZXVkb0lkKTsKLS0gCjIuMjUuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423580</attachid>
            <date>2021-03-18 03:40:18 -0700</date>
            <delta_ts>2021-03-18 08:55:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221382-Nullptr-crash-in-RenderStyle-shapeOutside.patch</filename>
            <type>text/plain</type>
            <size>10608</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBjODcxNmE1Njg4ZjAyOGNjZTU2MThkMGY5OGYwZjVmNTNhMmM3ZTM0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDI2IEZlYiAyMDIxIDE1OjMxOjE3ICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTM4MiAtIE51bGxwdHIgY3Jhc2ggaW4gUmVuZGVyU3R5
bGU6OnNoYXBlT3V0c2lkZSgpCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICB8IDE0ICsrKysrKysrCiAuLi5vLWVsZW1lbnQtbm90LXJlbW92ZWQtMi1j
cmFzaC1leHBlY3RlZC50eHQgfCAgMiArKwogLi4uYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92
ZWQtMi1jcmFzaC5odG1sIHwgMTUgKysrKysrKysrCiAuLi51ZG8tZWxlbWVudC1ub3QtcmVtb3Zl
ZC1jcmFzaC1leHBlY3RlZC50eHQgfCAgMiArKwogLi4ubG9hdC1wc2V1ZG8tZWxlbWVudC1ub3Qt
cmVtb3ZlZC1jcmFzaC5odG1sIHwgMzIgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmggICAgfCAgNCArLS0KIDcgZmlsZXMg
Y2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5v
dC1yZW1vdmVkLTItY3Jhc2gtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC0y
LWNyYXNoLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zs
b2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNl
dWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2guaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NDkzM2IwMjkxLi4z
MTRiMDdiM2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDItMjYgIEZyw6lkw6lyaWMg
V2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbHB0ciBjcmFzaCBpbiBSZW5k
ZXJTdHlsZTo6c2hhcGVPdXRzaWRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCByZWdyZXNzaW9uIHRlc3RzLgorCisgICAgICAgICogZmFzdC9i
bG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVs
ZW1lbnQtbm90LXJlbW92ZWQtY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9j
ay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaDItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVt
ZW50LW5vdC1yZW1vdmVkLWNyYXNoMi5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0xOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgR2VvbG9jYXRpb24gQVBJIGRv
ZXMgbm90IHdvcmsgaW4gV0tXZWJWaWV3IHdpdGggY3VzdG9tIFVSTCBzY2hlbWUgaGFuZGxlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxl
bWVudC1ub3QtcmVtb3ZlZC0yLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
YmxvY2svZmxvYXQvZmxvYXQtcHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtMi1jcmFzaC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU3YzFkODZm
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQt
cHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtMi1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3Qg
Y3Jhc2guCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQt
cHNldWRvLWVsZW1lbnQtbm90LXJlbW92ZWQtMi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC0yLWNyYXNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWU1ZDQ3MzUwZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtcHNldWRv
LWVsZW1lbnQtbm90LXJlbW92ZWQtMi1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzdHls
ZT4KKyAgKjo6Zmlyc3QtbGV0dGVyIHsKKyAgICAtd2Via2l0LWluaXRpYWwtbGV0dGVyOiAyOwor
ICB9CisgICogeworICAgIGJvdHRvbTogMHZoOworICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwt
bHI7CisgIH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgY29uc29sZS5sb2coIlRoaXMgdGVzdCBw
YXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guIik7CisgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBd
Lmluc2VydFJ1bGUoYCo6OmJlZm9yZSB7IGNvbnRlbnQ6ICdhYicgdXJsKCk7IH1gKTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1
ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iMjVjZTg3
Y2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3Qg
Y3Jhc2guCisgLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5
eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAq
LyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXog
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJj
ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8gLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFi
Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovIC8qKiBh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8gLyoqIGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6ICovIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLyAvKiogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXogKi8gKjo6Zmlyc3QtbGV0dGVyIHsgLXdlYmtpdC1pbml0aWFsLWxldHRlcjogMjsgfSAqIHsg
Ym90dG9tOiAwdmg7IHNoYXBlLW91dHNpZGU6IHVybCgpOyB2ZXJ0aWNhbC1hbGlnbjogLTFweDsg
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfSAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsgY29uc29sZS5sb2coIlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQg
ZG9lcyBub3QgY3Jhc2guIik7IG9ubG9hZCA9ICgpID0+IHsgZG9jdW1lbnQuc3R5bGVTaGVldHNb
MF0uaW5zZXJ0UnVsZShgKiB7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1gKTsgZG9jdW1lbnQuc3R5
bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgKiB7IC13ZWJraXQtdGV4dC1lbXBoYXNpczogImEiOyB9
YCk7IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYCo6OmJlZm9yZSB7IGNvbnRl
bnQ6ICdhYicgdXJsKCk7IH1gKTsgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShg
KiB7IGFsbDogaW5pdGlhbDsgfWApOyB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVt
b3ZlZC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjRk
YjY1N2NjMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0
L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVkLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwz
MiBAQAorPHN0eWxlPgorICAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworICAvKiogYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiAqLworICAvKiogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXogYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXogKi8KKyAgLyoqIGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1u
b3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IGFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6ICovCisgIC8qKiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAqLworCisgICo6OmZpcnN0LWxldHRl
ciB7CisgICAgLXdlYmtpdC1pbml0aWFsLWxldHRlcjogMjsKKyAgfQorICAqIHsKKyAgICBib3R0
b206IDB2aDsKKyAgICBzaGFwZS1vdXRzaWRlOiB1cmwoKTsKKyAgICB2ZXJ0aWNhbC1hbGlnbjog
LTFweDsKKyAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworICB9Cis8L3N0eWxlPgorPHNj
cmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgIGNvbnNvbGUubG9nKCJUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNy
YXNoLiIpOworICBvbmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0u
aW5zZXJ0UnVsZShgKiB7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IH1gKTsKKyAgICBkb2N1bWVudC5z
dHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGAqIHsgLXdlYmtpdC10ZXh0LWVtcGhhc2lzOiAiYSI7
IH1gKTsKKyAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKGAqOjpiZWZvcmUg
eyBjb250ZW50OiAnYWInIHVybCgpOyB9YCk7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0u
aW5zZXJ0UnVsZShgKiB7IGFsbDogaW5pdGlhbDsgfWApOworICB9OworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDA1NTE1YTE4Yy4uZTQ5YTA1MjhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIxLTAyLTI2ICBGcsOpZMOpcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZSgpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzODIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgYnVnIDIy
MzA0MSwgaXQgd2FzIHBvc3NpYmxlIHRvIGdldCBkYW5nbGluZyBXZWFrUHRyIG1fcmVuZGVyZXIg
b24gRmxvYXRpbmdPYmplY3QuIFRoaXMKKyAgICAgICAgcGF0Y2ggYWRkcyBkZWJ1ZyBBU1NFUlQg
YW5kIG1vcmUgcmVncmVzc2lvbiB0ZXN0cy4KKworICAgICAgICBUZXN0czogZmFzdC9ibG9jay9m
bG9hdC9mbG9hdC1wc2V1ZG8tZWxlbWVudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LXBzZXVkby1lbGVtZW50LW5vdC1yZW1vdmVk
LTItY3Jhc2guaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5oOiBh
ZGQgbnVsbGNoZWNrIEFTU0VSVCBmb3IgZGVidWcgYnVpbGRzLgorCiAyMDIxLTAzLTE4ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBQYWdpbmF0
aW9uIG1vZGU6IEluY3JlYXNlIHRoZSBhbW91bnQgb2YgcmVjdXJzaW9ucyBhbGxvd2VkIGJ5IFJl
bmRlclRhYmxlOjpsYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0Zsb2F0aW5nT2JqZWN0cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2Jq
ZWN0cy5oCmluZGV4IGFlYTgzMDViNzguLmY4M2NmOTQwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAg
IEZsb2F0aW5nT2JqZWN0KFJlbmRlckJveCYsIFR5cGUsIGNvbnN0IExheW91dFJlY3QmLCBjb25z
dCBMYXlvdXRTaXplJiwgYm9vbCBzaG91bGRQYWludCwgYm9vbCBpc0Rlc2NlbmRhbnQpOwogCiAg
ICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsg
fQotICAgIFJlbmRlckJveCYgcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiAqbV9yZW5kZXJlcjsg
fQorICAgIFJlbmRlckJveCYgcmVuZGVyZXIoKSBjb25zdCB7IEFTU0VSVChtX3JlbmRlcmVyKTsg
cmV0dXJuICptX3JlbmRlcmVyOyB9CiAKICAgICBib29sIGlzUGxhY2VkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1BsYWNlZDsgfQogICAgIHZvaWQgc2V0SXNQbGFjZWQoYm9vbCBwbGFjZWQgPSB0cnVl
KSB7IG1faXNQbGFjZWQgPSBwbGFjZWQ7IH0KQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAg
ICAgTGF5b3V0VW5pdCBmaW5kTmV4dEZsb2F0TG9naWNhbEJvdHRvbUJlbG93Rm9yQmxvY2soTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCBSZW5kZXJCbG9j
a0Zsb3cmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gKm1fcmVuZGVyZXI7IH0KKyAgICBjb25z
dCBSZW5kZXJCbG9ja0Zsb3cmIHJlbmRlcmVyKCkgY29uc3QgeyBBU1NFUlQobV9yZW5kZXJlcik7
IHJldHVybiAqbV9yZW5kZXJlcjsgfQogICAgIHZvaWQgY29tcHV0ZVBsYWNlZEZsb2F0c1RyZWUo
KTsKICAgICBjb25zdCBGbG9hdGluZ09iamVjdFRyZWUqIHBsYWNlZEZsb2F0c1RyZWUoKTsKICAg
ICB2b2lkIGluY3JlYXNlT2JqZWN0c0NvdW50KEZsb2F0aW5nT2JqZWN0OjpUeXBlKTsKLS0gCjIu
MjUuMQoK
</data>
<flag name="commit-queue"
          id="443029"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>