<?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>224894</bug_id>
          
          <creation_ts>2021-04-21 14:07:37 -0700</creation_ts>
          <short_desc>Nullptr crash in CollectionTraversal::traverseForward for selectedOptions</short_desc>
          <delta_ts>2021-04-24 00:42:05 -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>DOM</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="Rob Buis">rbuis</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1752916</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-21 14:07:37 -0700</bug_when>
    <thetext>e.g.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore                   0x000000010f83a340 WebCore::ContainerNode::firstChild() const + 0 (ContainerNode.h:43) [inlined]
1   com.apple.WebCore                   0x000000010f83a340 WebCore::Node* WebCore::NodeTraversal::traverseNextTemplate&lt;WebCore::ContainerNode const&gt;(WebCore::ContainerNode const&amp;, WebCore::Node const*) + 0 (NodeTraversal.h:90) [inlined]
2   com.apple.WebCore                   0x000000010f83a340 WebCore::NodeTraversal::next(WebCore::ContainerNode const&amp;, WebCore::Node const*) + 0 (NodeTraversal.h:99) [inlined]
3   com.apple.WebCore                   0x000000010f83a340 WebCore::Element* WebCore::Traversal&lt;WebCore::Element&gt;::nextTemplate&lt;WebCore::ContainerNode const&gt;(WebCore::ContainerNode const&amp;, WebCore::Node const*) + 0 (ElementTraversal.h:106) [inlined]
4   com.apple.WebCore                   0x000000010f83a340 WebCore::Traversal&lt;WebCore::Element&gt;::next(WebCore::ContainerNode const&amp;, WebCore::Node const*) + 0 (ElementTraversal.h:252) [inlined]
5   com.apple.WebCore                   0x000000010f83a340 WebCore::ElementIterator&lt;WebCore::Element&gt;::traverseNext() + 8 (ElementIterator.h:87) [inlined]
6   com.apple.WebCore                   0x000000010f83a340 WebCore::ElementDescendantIterator&lt;WebCore::Element&gt;::operator++() + 8 (TypedElementDescendantIterator.h:127) [inlined]
7   com.apple.WebCore                   0x000000010f83a340 void WebCore::CollectionTraversal&lt;(WebCore::CollectionTraversalType)0&gt;::traverseForward&lt;WebCore::GenericCachedHTMLCollection&lt;(WebCore::CollectionTraversalType)0&gt; &gt;(WebCore::GenericCachedHTMLCollection&lt;(WebCore::CollectionTraversalType)0&gt; const&amp;, WebCore::ElementDescendantIterator&lt;WebCore::Element&gt;&amp;, unsigned int, unsigned int&amp;) + 44 (CollectionTraversal.h:81) [inlined]
8   com.apple.WebCore                   0x000000010f83a340 WebCore::CachedHTMLCollection&lt;WebCore::GenericCachedHTMLCollection&lt;(WebCore::CollectionTraversalType)0&gt;, (WebCore::CollectionTraversalType)0&gt;::collectionTraverseForward(WebCore::ElementDescendantIterator&lt;WebCore::Element&gt;&amp;, unsigned int, unsigned int&amp;) const + 48 (CachedHTMLCollection.h:58)
9   com.apple.WebCore                   0x000000010f83a5ea WebCore::CollectionIndexCache&lt;WebCore::GenericCachedHTMLCollection&lt;(WebCore::CollectionTraversalType)0&gt;, WebCore::ElementDescendantIterator&lt;WebCore::Element&gt; &gt;::nodeAt(WebCore::GenericCachedHTMLCollection&lt;(WebCore::CollectionTraversalType)0&gt; const&amp;, unsigned int) + 538 (CollectionIndexCache.h:202)
10  com.apple.WebCore                   0x000000010ead662e WebCore::jsHTMLCollectionPrototypeFunction_itemBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSHTMLCollection*) + 63 (JSHTMLCollection.cpp:294) [inlined]

&lt;rdar://76946123&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752917</commentid>
    <comment_count>1</comment_count>
      <attachid>426743</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-21 14:10:57 -0700</bug_when>
    <thetext>Created attachment 426743
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753185</commentid>
    <comment_count>2</comment_count>
      <attachid>426815</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-22 08:58:30 -0700</bug_when>
    <thetext>Created attachment 426815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753437</commentid>
    <comment_count>3</comment_count>
      <attachid>426815</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-22 19:08:13 -0700</bug_when>
    <thetext>Comment on attachment 426815
Patch

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

&gt; Source/WebCore/dom/CollectionIndexCache.h:202
&gt; +        collection.collectionTraverseForward(current, index, currentIndex);

What!? tcollectionTraverseForward is invalidating this collection?
That&apos;s certainly wrong! We need to fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753462</commentid>
    <comment_count>4</comment_count>
      <attachid>426815</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-22 22:47:42 -0700</bug_when>
    <thetext>Comment on attachment 426815
Patch

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

&gt;&gt; Source/WebCore/dom/CollectionIndexCache.h:202
&gt;&gt; +        collection.collectionTraverseForward(current, index, currentIndex);
&gt; 
&gt; What!? tcollectionTraverseForward is invalidating this collection?
&gt; That&apos;s certainly wrong! We need to fix that.

Indirectly it does. elementMatches will call HTMLOptionElement::selected.  This can call updateListItemSelectedStates on HTMLSelectElement, this can call HTMLOptionElement::setSelectedState which will call HTMLSelectElement::invalidateSelectedItems, which will call invalidateCache on the SelectedOptions cache. Obviously the test case triggers exactly this chain of events. But it seems reasonable to me for the option to ask the select to update itself so selected really reflects the state of selection (I guess this is just in time design)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753463</commentid>
    <comment_count>5</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-22 23:16:42 -0700</bug_when>
    <thetext>A thing about the test, it builds a DOM tree under &lt;select&gt; that would not be accepted as-is when parsed. However Firefox and chromium also build the desired DOM tree when created dynamically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753467</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-22 23:49:46 -0700</bug_when>
    <thetext>(In reply to Rob Buis from comment #4)
&gt; Comment on attachment 426815 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=426815&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/CollectionIndexCache.h:202
&gt; &gt;&gt; +        collection.collectionTraverseForward(current, index, currentIndex);
&gt; &gt; 
&gt; &gt; What!? tcollectionTraverseForward is invalidating this collection?
&gt; &gt; That&apos;s certainly wrong! We need to fix that.
&gt; 
&gt; Indirectly it does. elementMatches will call HTMLOptionElement::selected. 
&gt; This can call updateListItemSelectedStates on HTMLSelectElement, this can
&gt; call HTMLOptionElement::setSelectedState which will call
&gt; HTMLSelectElement::invalidateSelectedItems, which will call invalidateCache
&gt; on the SelectedOptions cache.

This is not okay. The HTML collection traversal cannot have a side effect like this. We need to change this so that we don&apos;t invalidate the HTMLCollection while we&apos;re traversing options to find the selected options.

It is a bit suspicious that HTMLOptionElement::setSelectedState calls HTMLSelectElement::invalidateSelectedItems.

Maybe the right fix is to get rid of that call and instead invalidate the HTML Collection in HTMLSelectElement::updateListBoxSelection, HTMLSelectElement::selectOption, HTMLSelectElement::deselectItemsWithoutValidation, HTMLSelectElement::restoreFormControlState, HTMLSelectElement::reset(), and HTMLSelectElement::updateSelectedState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753482</commentid>
    <comment_count>7</comment_count>
      <attachid>426894</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-23 00:27:14 -0700</bug_when>
    <thetext>Created attachment 426894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753499</commentid>
    <comment_count>8</comment_count>
      <attachid>426815</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-23 01:48:05 -0700</bug_when>
    <thetext>Comment on attachment 426815
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/dom/CollectionIndexCache.h:202
&gt;&gt;&gt;&gt; +        collection.collectionTraverseForward(current, index, currentIndex);
&gt;&gt;&gt; 
&gt;&gt;&gt; What!? tcollectionTraverseForward is invalidating this collection?
&gt;&gt;&gt; That&apos;s certainly wrong! We need to fix that.
&gt;&gt; 
&gt;&gt; Indirectly it does. elementMatches will call HTMLOptionElement::selected.  This can call updateListItemSelectedStates on HTMLSelectElement, this can call HTMLOptionElement::setSelectedState which will call HTMLSelectElement::invalidateSelectedItems, which will call invalidateCache on the SelectedOptions cache. Obviously the test case triggers exactly this chain of events. But it seems reasonable to me for the option to ask the select to update itself so selected really reflects the state of selection (I guess this is just in time design)...
&gt; 
&gt; This is not okay. The HTML collection traversal cannot have a side effect like this. We need to change this so that we don&apos;t invalidate the HTMLCollection while we&apos;re traversing options to find the selected options.
&gt; 
&gt; It is a bit suspicious that HTMLOptionElement::setSelectedState calls HTMLSelectElement::invalidateSelectedItems.
&gt; 
&gt; Maybe the right fix is to get rid of that call and instead invalidate the HTML Collection in HTMLSelectElement::updateListBoxSelection, HTMLSelectElement::selectOption, HTMLSelectElement::deselectItemsWithoutValidation, HTMLSelectElement::restoreFormControlState, HTMLSelectElement::reset(), and HTMLSelectElement::updateSelectedState

Thanks, that makes a lot of sense. I implemented that and added a somewhat revealing ChangeLog and test, since I think this is not a security issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753832</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-23 23:47:50 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753833</commentid>
    <comment_count>10</comment_count>
      <attachid>426975</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-04-23 23:56:42 -0700</bug_when>
    <thetext>Created attachment 426975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753834</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-24 00:42:02 -0700</bug_when>
    <thetext>Committed r276547 (236987@main): &lt;https://commits.webkit.org/236987@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426975.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>426743</attachid>
            <date>2021-04-21 14:10:57 -0700</date>
            <delta_ts>2021-04-21 14:10:57 -0700</delta_ts>
            <desc>Test</desc>
            <filename>repro_615.html</filename>
            <type>text/html</type>
            <size>450</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBvbmxvYWQgPSAoKSA9PiB7CiAgICBsZXQgc2VsZWN0MCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxl
Y3QwKTsKICAgIGxldCBkaXYwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBz
ZWxlY3QwLmFwcGVuZENoaWxkKGRpdjApOwogICAgc2VsZWN0MC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKSk7CiAgICBsZXQgc2VsZWN0MSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwogICAgc2VsZWN0MS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdvcHRpb24nKSk7CiAgICBkaXYwLmFwcGVuZENoaWxkKHNlbGVjdDEpOwog
ICAgc2VsZWN0MC5zZWxlY3RlZE9wdGlvbnMuaXRlbSgyKTsKICB9Owo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426815</attachid>
            <date>2021-04-22 08:58:30 -0700</date>
            <delta_ts>2021-04-23 00:27:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224894-20210422175829.patch</filename>
            <type>text/plain</type>
            <size>4497</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdhZTZmNmMxMzQ4OWIz
ZjA4NTAxNjU0NzAzZmRkMDdiNjhhNzI3OS4uMTg4ZTQxNTk2MzA1YTljMTVkOTE1NmJlNDIwMjUz
YWQzY2VhNzNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA0LTIyICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUHJvdGVjdCBDb2xsZWN0aW9uSW5k
ZXhDYWNoZTo6bm9kZUF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQ4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQcm90ZWN0IENvbGxlY3Rpb25JbmRleENhY2hlOjpub2RlQXQgYWdhaW5zdCBjYWNo
ZQorICAgICAgICBpbnZhbGlkYXRpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNl
bGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVtLWNyYXNoLmh0bWwKKworICAgICAgICAq
IGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6SXRlcmF0b3I+
Ojpub2RlQXQpOgorCiAyMDIxLTA0LTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJ1bXAgbGlic291cDMgdmVyc2lvbiB0
byAyLjk5LjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db2xsZWN0aW9uSW5kZXhD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENhY2hlLmgKaW5kZXgg
M2Y4MWIyM2E2ZGE0NTI5NTg0MjE3NjIzNWRmNDUyYTc1NjY5NGUxNC4uMjlmY2VkYmI1ZjZkZGE5
MWY2ZjMxNzUzNDRiZTljODE3MzM2YWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbGxlY3Rpb25JbmRleENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rp
b25JbmRleENhY2hlLmgKQEAgLTE5NSwxMyArMTk1LDE1IEBAIGlubGluZSB0eXBlbmFtZSBDb2xs
ZWN0aW9uSW5kZXhDYWNoZTxDb2xsZWN0aW9uLCBJdGVyYXRvcj46Ok5vZGVUeXBlKiBDb2xsZWN0
aW9uCiAgICAgaWYgKCFoYXNWYWxpZENhY2hlKCkpCiAgICAgICAgIGNvbGxlY3Rpb24ud2lsbFZh
bGlkYXRlSW5kZXhDYWNoZSgpOwogCi0gICAgbV9jdXJyZW50ID0gY29sbGVjdGlvbi5jb2xsZWN0
aW9uQmVnaW4oKTsKLSAgICBtX2N1cnJlbnRJbmRleCA9IDA7Ci0gICAgYm9vbCBzdGFydElzRW5k
ID0gIW1fY3VycmVudDsKLSAgICBpZiAoaW5kZXggJiYgbV9jdXJyZW50KSB7Ci0gICAgICAgIGNv
bGxlY3Rpb24uY29sbGVjdGlvblRyYXZlcnNlRm9yd2FyZChtX2N1cnJlbnQsIGluZGV4LCBtX2N1
cnJlbnRJbmRleCk7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJlbnQgfHwgbV9jdXJyZW50SW5kZXgg
PCBpbmRleCk7CisgICAgYXV0byBjdXJyZW50ID0gY29sbGVjdGlvbi5jb2xsZWN0aW9uQmVnaW4o
KTsKKyAgICB1bnNpZ25lZCBjdXJyZW50SW5kZXggPSAwOworICAgIGJvb2wgc3RhcnRJc0VuZCA9
ICFjdXJyZW50OworICAgIGlmIChpbmRleCAmJiBjdXJyZW50KSB7CisgICAgICAgIGNvbGxlY3Rp
b24uY29sbGVjdGlvblRyYXZlcnNlRm9yd2FyZChjdXJyZW50LCBpbmRleCwgY3VycmVudEluZGV4
KTsKKyAgICAgICAgQVNTRVJUKGN1cnJlbnQgfHwgY3VycmVudEluZGV4IDwgaW5kZXgpOwogICAg
IH0KKyAgICBtX2N1cnJlbnQgPSBjdXJyZW50OworICAgIG1fY3VycmVudEluZGV4ID0gY3VycmVu
dEluZGV4OwogICAgIGlmICghbV9jdXJyZW50KSB7CiAgICAgICAgIC8vIEZhaWxlZCB0byBmaW5k
IHRoZSBpbmRleCBidXQgYXQgbGVhc3Qgd2Ugbm93IGtub3cgdGhlIHNpemUuCiAgICAgICAgIG1f
bm9kZUNvdW50ID0gc3RhcnRJc0VuZCA/IDAgOiBtX2N1cnJlbnRJbmRleCArIDE7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTI3YWUwNjZiZDVhYzZjMWIwYzJhZDZiYTdmNzRiNzExNjdlMTg0Ny4uYjQxNjliMjUxMDVlNzYz
MWZmZWJlYWJjMjc5NmU2MzllYWNhY2MwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA0
LTIyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUHJvdGVjdCBDb2xs
ZWN0aW9uSW5kZXhDYWNoZTo6bm9kZUF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjQ4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgdGhpcy4KKworICAgICAgICAqIGZhc3QvZG9t
L0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMtaXRlbS1jcmFzaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVk
LW9wdGlvbnMtaXRlbS1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAyMS0wNC0yMiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBz
dXBwb3J0IGZvciBwcmVjb25uZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2VsZWN0RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9u
cy1pdGVtLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzMzZmEzYWRmNTY4M2E2OTUy
YTg1MjUwM2ZhYjJkM2Q1ZWEyMGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVtLWNyYXNoLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3RzIGFjY2Vzc2VzIGEgcGFydGljdWxh
ciBpbmRleCBpbiBzZWxlY3RlZE9wdGlvbnMgdmlhIEhUTUxTZWxlY3RFbGVtZW50J3MgaXRlbS4g
V2ViS2l0IHNob3VsZCBub3QgY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHNlbGVjdC5zZWxlY3RlZE9wdGlvbnMuaXRlbSgyKSBpcyBudWxsCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVt
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9zZWxl
Y3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjEwMTUxMDQzNTQxNThm
OWNhYzFlMjNjYjk1ZTY1MDg5MDVlZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVtLWNyYXNoLmh0
bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3RzIGFjY2Vzc2VzIGEgcGFydGljdWxhciBpbmRl
eCBpbiBzZWxlY3RlZE9wdGlvbnMgdmlhIEhUTUxTZWxlY3RFbGVtZW50XCdzIGl0ZW0uIFdlYktp
dCBzaG91bGQgbm90IGNyYXNoLicpOworCitsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2VsZWN0Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNlbGVjdCk7CitsZXQg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CitzZWxlY3QuYXBwZW5kQ2hpbGQo
ZGl2KTsKK3NlbGVjdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24n
KSk7CitsZXQgc2VsZWN0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOworc2Vs
ZWN0Mi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKSk7CitkaXYu
YXBwZW5kQ2hpbGQoc2VsZWN0Mik7CisKK3Nob3VsZEJlKCdzZWxlY3Quc2VsZWN0ZWRPcHRpb25z
Lml0ZW0oMiknLCAnbnVsbCcpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426894</attachid>
            <date>2021-04-23 00:27:14 -0700</date>
            <delta_ts>2021-04-23 23:56:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224894-20210423092713.patch</filename>
            <type>text/plain</type>
            <size>6508</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdhZTZmNmMxMzQ4OWIz
ZjA4NTAxNjU0NzAzZmRkMDdiNjhhNzI3OS4uNjQ1ZWEzZDZmZTY3OWU2MjNiMGY3NDljMWM5NGQ2
MDhmNTI5YzQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTIzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBzZWxlY3RlZE9wdGlvbnMg
Y2FjaGUgaW52YWxpZGF0aW9uIHRpbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW92ZSBzZWxlY3RlZE9wdGlvbnMgY2FjaGUgaW52YWxpZGF0aW9u
IHRpbWluZyBvdXQKKyAgICAgICAgb2Ygc2V0U2VsZWN0ZWRTdGF0ZSwgaGF2aW5nIGl0IGluIHNl
dFNlbGVjdGVkU3RhdGUKKyAgICAgICAgY2FuIGNhdXNlIHNlbGVjdGVkT3B0aW9ucyBjYWNoZSBp
bnZhbGlkYXRpb24gd2hpbGUKKyAgICAgICAgZGV0ZXJtaW5pbmcgdGhlIGNhY2hlLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMtaXRl
bS1jcmFzaC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpzZXRTZWxlY3RlZFN0YXRlKToKKyAg
ICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RPcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFsaWRhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZFN0YXRlKToKKwogMjAy
MS0wNC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS11bV1BFXSBCdW1wIGxpYnNvdXAzIHZlcnNpb24gdG8gMi45OS40CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDQyOWZkMzJiOWMzMmM3ODBm
NWIyNDYzYTU2OWJlNDk5YjA4NzQ1YWYuLmQwNWYyZTdiOWM2MzAwNjU3MzI2ZWE1ZjE5N2RiODc1
M2Q0MWE1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBA
IC0yMzQsOSArMjM0LDYgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0U2VsZWN0ZWRTdGF0
ZShib29sIHNlbGVjdGVkKQogCiAgICAgbV9pc1NlbGVjdGVkID0gc2VsZWN0ZWQ7CiAgICAgaW52
YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotCi0gICAgaWYgKFJlZlB0cjxIVE1MU2VsZWN0RWxl
bWVudD4gc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpCi0gICAgICAgIHNlbGVjdC0+aW52
YWxpZGF0ZVNlbGVjdGVkSXRlbXMoKTsKIH0KIAogdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6Y2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDMxMzNkMDMxMDE3MjQ0YTNjYmI2YWJlM2Fm
YzMzYjZlNDg4ZGQ1ZmIuLjU5MWZmNGYzODg2NzBkYjkzMjhjMzYzYmUxZGZiNzE3MDUyNzJmYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC02NTUsNiAr
NjU1LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihi
b29sIGRlc2VsZWN0T3RoZXJPcHRpb25zKQogICAgICAgICAgICAgZG93bmNhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQ+KGVsZW1lbnQpLnNldFNlbGVjdGVkU3RhdGUobV9jYWNoZWRTdGF0ZUZvckFjdGl2
ZVNlbGVjdGlvbltpXSk7CiAgICAgfQogCisgICAgaW52YWxpZGF0ZVNlbGVjdGVkSXRlbXMoKTsK
ICAgICBzY3JvbGxUb1NlbGVjdGlvbigpOwogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CkBAIC04
ODEsNiArODgyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0T3B0aW9uKGludCBv
cHRpb25JbmRleCwgU2VsZWN0T3B0aW9uRmxhZ3MgZmxhZ3MpCiAgICAgICAgIGRvd25jYXN0PEhU
TUxPcHRpb25FbGVtZW50PigqZWxlbWVudCkuc2V0U2VsZWN0ZWRTdGF0ZSh0cnVlKTsKICAgICB9
CiAKKyAgICBpbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygpOwogICAgIHVwZGF0ZVZhbGlkaXR5KCk7
CiAKICAgICAvLyBGb3IgdGhlIG1lbnUgbGlzdCBjYXNlLCB0aGlzIGlzIHdoYXQgbWFrZXMgdGhl
IHNlbGVjdGVkIGVsZW1lbnQgYXBwZWFyLgpAQCAtOTYyLDYgKzk2NCw3IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFsaWRhdGlvbihIVE1MRWxlbWVudCog
ZXhjbHVkZUVsZW1lCiAgICAgICAgIGlmIChlbGVtZW50ICE9IGV4Y2x1ZGVFbGVtZW50ICYmIGlz
PEhUTUxPcHRpb25FbGVtZW50PigqZWxlbWVudCkpCiAgICAgICAgICAgICBkb3duY2FzdDxIVE1M
T3B0aW9uRWxlbWVudD4oKmVsZW1lbnQpLnNldFNlbGVjdGVkU3RhdGUoZmFsc2UpOwogICAgIH0K
KyAgICBpbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygpOwogfQogCiBGb3JtQ29udHJvbFN0YXRlIEhU
TUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0CkBAIC0xMDI3LDYg
KzEwMzAsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKICAgICAgICAgfQogICAgIH0KIAorICAg
IGludmFsaWRhdGVTZWxlY3RlZEl0ZW1zKCk7CiAgICAgc2V0T3B0aW9uc0NoYW5nZWRPblJlbmRl
cmVyKCk7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KQEAgLTEwODUsNiArMTA4OSw3IEBAIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKICAgICBpZiAoIXNlbGVjdGVkT3B0aW9uICYm
IGZpcnN0T3B0aW9uICYmICFtX211bHRpcGxlICYmIG1fc2l6ZSA8PSAxKQogICAgICAgICBmaXJz
dE9wdGlvbi0+c2V0U2VsZWN0ZWRTdGF0ZSh0cnVlKTsKIAorICAgIGludmFsaWRhdGVTZWxlY3Rl
ZEl0ZW1zKCk7CiAgICAgc2V0T3B0aW9uc0NoYW5nZWRPblJlbmRlcmVyKCk7CiAgICAgaW52YWxp
ZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CkBAIC0xMzIxLDYg
KzEzMjYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZFN0YXRlKGlu
dCBsaXN0SW5kZXgsIGJvb2wgbXVsdGksIGJvb2wgc2hpZgogICAgIGlmIChtX2FjdGl2ZVNlbGVj
dGlvbkFuY2hvckluZGV4IDwgMCB8fCAhc2hpZnRTZWxlY3QpCiAgICAgICAgIHNldEFjdGl2ZVNl
bGVjdGlvbkFuY2hvckluZGV4KGxpc3RJbmRleCk7CiAKKyAgICBpbnZhbGlkYXRlU2VsZWN0ZWRJ
dGVtcygpOwogICAgIHNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KGxpc3RJbmRleCk7CiAgICAg
dXBkYXRlTGlzdEJveFNlbGVjdGlvbighbXVsdGlTZWxlY3QpOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEyN2FlMDY2
YmQ1YWM2YzFiMGMyYWQ2YmE3Zjc0YjcxMTY3ZTE4NDcuLmJjYmMwNjVlNTg1NDJjMzI0NTQ5ODkx
YzYxZGQ0ZjEzNDU4OTRlZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0yMyAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiAoT09QUyEpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI0ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0t
Y3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2VsZWN0
RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMjEt
MDQtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtTT1VQXSBBZGQgc3VwcG9ydCBmb3IgcHJlY29ubmVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFNlbGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVtLWNy
YXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50
L3NlbGVjdGVkLW9wdGlvbnMtaXRlbS1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMz
M2ZhM2FkZjU2ODNhNjk1MmE4NTI1MDNmYWIyZDNkNWVhMjBkMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMt
aXRlbS1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0cyBhY2Nl
c3NlcyBhIHBhcnRpY3VsYXIgaW5kZXggaW4gc2VsZWN0ZWRPcHRpb25zIHZpYSBIVE1MU2VsZWN0
RWxlbWVudCdzIGl0ZW0uIFdlYktpdCBzaG91bGQgbm90IGNyYXNoLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzZWxlY3Quc2VsZWN0ZWRPcHRpb25zLml0ZW0oMikgaXMg
bnVsbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVj
dGVkLW9wdGlvbnMtaXRlbS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNl
bGVjdEVsZW1lbnQvc2VsZWN0ZWQtb3B0aW9ucy1pdGVtLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDYxMDE1MTA0MzU0MTU4ZjljYWMxZTIzY2I5NWU2NTA4OTA1ZWU0NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlv
bnMtaXRlbS1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbignVGhpcyB0ZXN0cyBhY2Nlc3NlcyBh
IHBhcnRpY3VsYXIgaW5kZXggaW4gc2VsZWN0ZWRPcHRpb25zIHZpYSBIVE1MU2VsZWN0RWxlbWVu
dFwncyBpdGVtLiBXZWJLaXQgc2hvdWxkIG5vdCBjcmFzaC4nKTsKKworbGV0IHNlbGVjdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChzZWxlY3QpOworbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworc2Vs
ZWN0LmFwcGVuZENoaWxkKGRpdik7CitzZWxlY3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnb3B0aW9uJykpOworbGV0IHNlbGVjdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzZWxlY3QnKTsKK3NlbGVjdDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
b3B0aW9uJykpOworZGl2LmFwcGVuZENoaWxkKHNlbGVjdDIpOworCitzaG91bGRCZSgnc2VsZWN0
LnNlbGVjdGVkT3B0aW9ucy5pdGVtKDIpJywgJ251bGwnKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426975</attachid>
            <date>2021-04-23 23:56:42 -0700</date>
            <delta_ts>2021-04-24 00:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224894-20210424085640.patch</filename>
            <type>text/plain</type>
            <size>6581</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlOTRlZmZkOTczMDMz
MTZkNTNkNDM2MjJlMjI3NmJjNWI4YmUyNy4uY2ZmMmY4YjEyMTA5Zjc3YzZkYTFkNzhjYTc5ZDVl
ODg5NDg4NWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTIzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBzZWxlY3RlZE9wdGlvbnMg
Y2FjaGUgaW52YWxpZGF0aW9uIHRpbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgorCisgICAgICAgIE1vdmUgc2VsZWN0ZWRPcHRpb25zIGNhY2hlIGludmFsaWRhdGlvbiB0
aW1pbmcgb3V0CisgICAgICAgIG9mIHNldFNlbGVjdGVkU3RhdGUsIGhhdmluZyBpdCBpbiBzZXRT
ZWxlY3RlZFN0YXRlCisgICAgICAgIGNhbiBjYXVzZSBzZWxlY3RlZE9wdGlvbnMgY2FjaGUgaW52
YWxpZGF0aW9uIHdoaWxlCisgICAgICAgIGRldGVybWluaW5nIHRoZSBjYWNoZS4KKworICAgICAg
ICBUZXN0OiBmYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0t
Y3Jhc2guaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6c2V0U2VsZWN0ZWRTdGF0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0T3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlU2VsZWN0ZWRTdGF0ZSk6CisKIDIwMjEt
MDQtMjMgIElhbiBHaWxiZXJ0ICA8aWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4g
SW5kZW50T3V0ZGVudENvbW1hbmQ6Om91dGRlbnRQYXJhZ3JhcGggYXR0ZW1wdGluZyB0byBtb3Zl
IGEgcGFyYWdyYXBoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmlu
ZGV4IDQyOWZkMzJiOWMzMmM3ODBmNWIyNDYzYTU2OWJlNDk5YjA4NzQ1YWYuLmQwNWYyZTdiOWM2
MzAwNjU3MzI2ZWE1ZjE5N2RiODc1M2Q0MWE1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0yMzQsOSArMjM0LDYgQEAgdm9pZCBIVE1MT3B0aW9uRWxl
bWVudDo6c2V0U2VsZWN0ZWRTdGF0ZShib29sIHNlbGVjdGVkKQogCiAgICAgbV9pc1NlbGVjdGVk
ID0gc2VsZWN0ZWQ7CiAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwotCi0gICAgaWYg
KFJlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkp
Ci0gICAgICAgIHNlbGVjdC0+aW52YWxpZGF0ZVNlbGVjdGVkSXRlbXMoKTsKIH0KIAogdm9pZCBI
VE1MT3B0aW9uRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFu
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDMxMzNk
MDMxMDE3MjQ0YTNjYmI2YWJlM2FmYzMzYjZlNDg4ZGQ1ZmIuLjU5MWZmNGYzODg2NzBkYjkzMjhj
MzYzYmUxZGZiNzE3MDUyNzJmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCkBAIC02NTUsNiArNjU1LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBk
YXRlTGlzdEJveFNlbGVjdGlvbihib29sIGRlc2VsZWN0T3RoZXJPcHRpb25zKQogICAgICAgICAg
ICAgZG93bmNhc3Q8SFRNTE9wdGlvbkVsZW1lbnQ+KGVsZW1lbnQpLnNldFNlbGVjdGVkU3RhdGUo
bV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbltpXSk7CiAgICAgfQogCisgICAgaW52YWxp
ZGF0ZVNlbGVjdGVkSXRlbXMoKTsKICAgICBzY3JvbGxUb1NlbGVjdGlvbigpOwogICAgIHVwZGF0
ZVZhbGlkaXR5KCk7CiB9CkBAIC04ODEsNiArODgyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6c2VsZWN0T3B0aW9uKGludCBvcHRpb25JbmRleCwgU2VsZWN0T3B0aW9uRmxhZ3MgZmxhZ3Mp
CiAgICAgICAgIGRvd25jYXN0PEhUTUxPcHRpb25FbGVtZW50PigqZWxlbWVudCkuc2V0U2VsZWN0
ZWRTdGF0ZSh0cnVlKTsKICAgICB9CiAKKyAgICBpbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygpOwog
ICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiAKICAgICAvLyBGb3IgdGhlIG1lbnUgbGlzdCBjYXNlLCB0
aGlzIGlzIHdoYXQgbWFrZXMgdGhlIHNlbGVjdGVkIGVsZW1lbnQgYXBwZWFyLgpAQCAtOTYyLDYg
Kzk2NCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFs
aWRhdGlvbihIVE1MRWxlbWVudCogZXhjbHVkZUVsZW1lCiAgICAgICAgIGlmIChlbGVtZW50ICE9
IGV4Y2x1ZGVFbGVtZW50ICYmIGlzPEhUTUxPcHRpb25FbGVtZW50PigqZWxlbWVudCkpCiAgICAg
ICAgICAgICBkb3duY2FzdDxIVE1MT3B0aW9uRWxlbWVudD4oKmVsZW1lbnQpLnNldFNlbGVjdGVk
U3RhdGUoZmFsc2UpOwogICAgIH0KKyAgICBpbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygpOwogfQog
CiBGb3JtQ29udHJvbFN0YXRlIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0
ZSgpIGNvbnN0CkBAIC0xMDI3LDYgKzEwMzAsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgfQogICAgIH0KIAorICAgIGludmFsaWRhdGVTZWxlY3RlZEl0ZW1zKCk7CiAgICAgc2V0
T3B0aW9uc0NoYW5nZWRPblJlbmRlcmVyKCk7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KQEAg
LTEwODUsNiArMTA4OSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKICAgICBp
ZiAoIXNlbGVjdGVkT3B0aW9uICYmIGZpcnN0T3B0aW9uICYmICFtX211bHRpcGxlICYmIG1fc2l6
ZSA8PSAxKQogICAgICAgICBmaXJzdE9wdGlvbi0+c2V0U2VsZWN0ZWRTdGF0ZSh0cnVlKTsKIAor
ICAgIGludmFsaWRhdGVTZWxlY3RlZEl0ZW1zKCk7CiAgICAgc2V0T3B0aW9uc0NoYW5nZWRPblJl
bmRlcmVyKCk7CiAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwogICAgIHVwZGF0ZVZh
bGlkaXR5KCk7CkBAIC0xMzIxLDYgKzEzMjYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1
cGRhdGVTZWxlY3RlZFN0YXRlKGludCBsaXN0SW5kZXgsIGJvb2wgbXVsdGksIGJvb2wgc2hpZgog
ICAgIGlmIChtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4IDwgMCB8fCAhc2hpZnRTZWxlY3Qp
CiAgICAgICAgIHNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KGxpc3RJbmRleCk7CiAKKyAg
ICBpbnZhbGlkYXRlU2VsZWN0ZWRJdGVtcygpOwogICAgIHNldEFjdGl2ZVNlbGVjdGlvbkVuZElu
ZGV4KGxpc3RJbmRleCk7CiAgICAgdXBkYXRlTGlzdEJveFNlbGVjdGlvbighbXVsdGlTZWxlY3Qp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDE5MzZkYmUwMWJmYzcwMDk4MjIwMWQ4MDZjMWIxYzdlZjllOGM5YjcuLjA4
ZjliNWYwMjNkMWM0Mjk1NTQ2OGNiYzM1ODE2NTNmNjlhNTMzNTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wNC0yMyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IE1vdmUgc2VsZWN0ZWRPcHRpb25zIGNhY2hlIGludmFsaWRhdGlvbiB0aW1pbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDg5NAorCisgICAgICAg
IFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgdGhpcy4K
KworICAgICAgICAqIGZhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMt
aXRlbS1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxT
ZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMtaXRlbS1jcmFzaC5odG1sOiBBZGRlZC4KKwog
MjAyMS0wNC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWhlYWRlci5odG1sIGlzIHNsb3cKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVk
LW9wdGlvbnMtaXRlbS1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MU2VsZWN0RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2gtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRjMzNmYTNhZGY1NjgzYTY5NTJhODUyNTAzZmFiMmQzZDVlYTIwZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVudC9z
ZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1RoaXMgdGVzdHMgYWNjZXNzZXMgYSBwYXJ0aWN1bGFyIGluZGV4IGluIHNlbGVjdGVkT3B0aW9u
cyB2aWEgSFRNTFNlbGVjdEVsZW1lbnQncyBpdGVtLiBXZWJLaXQgc2hvdWxkIG5vdCBjcmFzaC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2VsZWN0LnNlbGVjdGVkT3B0
aW9ucy5pdGVtKDIpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Vs
ZWN0RWxlbWVudC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTZWxlY3RFbGVtZW50L3NlbGVjdGVkLW9wdGlvbnMtaXRlbS1jcmFzaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2MTAxNTEwNDM1NDE1OGY5Y2FjMWUyM2NiOTVlNjUwODkwNWVlNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2VsZWN0RWxlbWVu
dC9zZWxlY3RlZC1vcHRpb25zLWl0ZW0tY3Jhc2guaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1RoaXMg
dGVzdHMgYWNjZXNzZXMgYSBwYXJ0aWN1bGFyIGluZGV4IGluIHNlbGVjdGVkT3B0aW9ucyB2aWEg
SFRNTFNlbGVjdEVsZW1lbnRcJ3MgaXRlbS4gV2ViS2l0IHNob3VsZCBub3QgY3Jhc2guJyk7CisK
K2xldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKK2RvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKK2xldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKK3NlbGVjdC5hcHBlbmRDaGlsZChkaXYpOworc2VsZWN0LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpKTsKK2xldCBzZWxlY3QyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CitzZWxlY3QyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpKTsKK2Rpdi5hcHBlbmRDaGlsZChzZWxlY3QyKTsKKwor
c2hvdWxkQmUoJ3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMuaXRlbSgyKScsICdudWxsJyk7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>