<?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>227800</bug_id>
          
          <creation_ts>2021-07-08 10:02:50 -0700</creation_ts>
          <short_desc>Add topLayerElements() and activeModalDialog() to Document</short_desc>
          <delta_ts>2021-07-09 06:57:57 -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>
          
          <blocked>84635</blocked>
    
    <blocked>84796</blocked>
    
    <blocked>110952</blocked>
    
    <blocked>227534</blocked>
    
    <blocked>227839</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Nguyen (:ntim)">ntim</reporter>
          <assigned_to name="Tim Nguyen (:ntim)">ntim</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>ntim</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775699</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-08 10:02:50 -0700</bug_when>
    <thetext>Just add the DOM bits, so they can be used for bug 227534 and bug 110952, before the rendering bits get implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775704</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-08 10:07:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/80330046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775950</commentid>
    <comment_count>2</comment_count>
      <attachid>433206</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-09 02:46:59 -0700</bug_when>
    <thetext>Created attachment 433206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775951</commentid>
    <comment_count>3</comment_count>
      <attachid>433206</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-07-09 03:44:54 -0700</bug_when>
    <thetext>Comment on attachment 433206
Patch

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

&gt; Source/WebCore/dom/Document.cpp:8419
&gt; +void Document::removeFromTopLayer(Element* element)
&gt; +{
&gt; +    size_t position = m_topLayerElements.find(element);
&gt; +    if (position != notFound)
&gt; +        m_topLayerElements.remove(position);
&gt; +
&gt; +    element-&gt;invalidateStyle();
&gt; +}

With ListHasSet you can just do m_topLayerElements.remove(element).

&gt; Source/WebCore/dom/Document.cpp:8426
&gt; +    for (auto it = m_topLayerElements.rbegin(); it != m_topLayerElements.rend(); ++it) {
&gt; +        if (is&lt;HTMLDialogElement&gt;(*it))
&gt; +            return downcast&lt;HTMLDialogElement&gt;((*it).get());
&gt; +    }

for (auto&amp; element : m_topLayerElement) {
    ...
}

&gt; Source/WebCore/dom/Document.h:1506
&gt; +    void addToTopLayer(Element*);
&gt; +    void removeFromTopLayer(Element*);

These shouldn&apos;t be null so please use Element&amp;.

&gt; Source/WebCore/dom/Document.h:2198
&gt; +    Vector&lt;RefPtr&lt;Element&gt;&gt; m_topLayerElements;

You might want ListHashSet for O(1) removals and membership testing (though a reasonable case shouldn&apos;t have many of these).

&gt; Source/WebCore/html/HTMLDialogElement.cpp:126
&gt; +            if (m_isModal)
&gt; +                document().removeFromTopLayer(this);
&gt; +
&gt;              m_isModal = false;

could put m_isModal = false inside the branch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775952</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-07-09 03:50:29 -0700</bug_when>
    <thetext>
&gt; for (auto&amp; element : m_topLayerElement) {
&gt;     ...
&gt; }

that would be

for (auto&amp; element : WTF::makeReversedRange(m_topLayerElement)) {
    ...
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775961</commentid>
    <comment_count>5</comment_count>
      <attachid>433208</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-09 04:46:48 -0700</bug_when>
    <thetext>Created attachment 433208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775963</commentid>
    <comment_count>6</comment_count>
      <attachid>433208</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-07-09 04:52:04 -0700</bug_when>
    <thetext>Comment on attachment 433208
Patch

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

&gt; Source/WebCore/dom/Document.cpp:8416
&gt; +void Document::removeFromTopLayer(Element&amp; element)
&gt; +{
&gt; +    m_topLayerElements.remove(&amp;element);
&gt; +
&gt; +    element.invalidateStyle();
&gt; +}

You shouldn&apos;t invalidate style here unless the element was actually found from m_topLayerElements (this is being called unconditionally from removedFromAncestor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775964</commentid>
    <comment_count>7</comment_count>
      <attachid>433209</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-09 04:57:48 -0700</bug_when>
    <thetext>Created attachment 433209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775967</commentid>
    <comment_count>8</comment_count>
      <attachid>433210</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-09 05:01:34 -0700</bug_when>
    <thetext>Created attachment 433210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775972</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2021-07-09 05:05:34 -0700</bug_when>
    <thetext>Committed r279780 (239547@main): &lt;https://commits.webkit.org/239547@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433206</attachid>
            <date>2021-07-09 02:46:59 -0700</date>
            <delta_ts>2021-07-09 04:46:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227800-20210709114658.patch</filename>
            <type>text/plain</type>
            <size>5840</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkNDMxZTA5NzJjY2Y3
YmUxM2U5Mzk0MmQ0MzVkMDNlODZhM2NiZi4uZWNjZTc5ZTI2ZWNiMThjNmEzY2Y2OTYzZjlhOTM5
NmEyM2M1MGI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTA5ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRvcExheWVyRWxlbWVudHMo
KSBhbmQgYWN0aXZlTW9kYWxEaWFsb2coKSB0byBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgRE9NIG1ldGhvZHMgYXJlIGEgcHJl
LXJlcXVlc2l0ZSBmb3IgYSBsb3Qgb2YgZGlhbG9nIGVsZW1lbnQgYWNjZXNzaWJpbGl0eSB3b3Jr
LCBhc2lkZSBmcm9tCisgICAgICAgIHRoZSB0b3AgbGF5ZXIgcmVuZGVyaW5nIHdvcmsuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZFRvVG9wTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFsb2cgY29u
c3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRvcExheWVyRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IpOgorICAgICAg
ICAqIGh0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERp
YWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGlhbG9nRWxl
bWVudDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpYWxvZ0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKToKKwogMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXggYWZ0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNjZTg2MjBkNDI5NGU4OTY3MjcxMjc2NTM0YTY3ODQz
NTIxYWY5YzYuLmU1ZWQ0OGMwM2M1MWYyYmZkZDA5MjQ3ZjZjNGM4YmE0ZTdkMWJlZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkhUTUxCYXNl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxD
YW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCkBAIC04Mzk5LDYgKzg0MDAsMzQgQEAgVmVj
dG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBEb2N1bWVudDo6bWF0Y2hpbmdBbmltYXRpb25zKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym8KICAgICByZXR1cm4gYW5pbWF0aW9uczsKIH0KIAordm9pZCBE
b2N1bWVudDo6YWRkVG9Ub3BMYXllcihFbGVtZW50KiBlbGVtZW50KQoreworICAgIC8vIFRvIGFk
ZCBhbiBlbGVtZW50IHRvIGEgdG9wIGxheWVyLCByZW1vdmUgaXQgZnJvbSB0b3AgbGF5ZXIgYW5k
IHRoZW4gYXBwZW5kIGl0IHRvIHRvcCBsYXllci4KKyAgICByZW1vdmVGcm9tVG9wTGF5ZXIoZWxl
bWVudCk7CisgICAgbV90b3BMYXllckVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKKworICAgIGVs
ZW1lbnQtPmludmFsaWRhdGVTdHlsZSgpOworfQorCit2b2lkIERvY3VtZW50OjpyZW1vdmVGcm9t
VG9wTGF5ZXIoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBzaXplX3QgcG9zaXRpb24gPSBtX3Rv
cExheWVyRWxlbWVudHMuZmluZChlbGVtZW50KTsKKyAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91
bmQpCisgICAgICAgIG1fdG9wTGF5ZXJFbGVtZW50cy5yZW1vdmUocG9zaXRpb24pOworCisgICAg
ZWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlKCk7Cit9CisKK0hUTUxEaWFsb2dFbGVtZW50KiBEb2N1
bWVudDo6YWN0aXZlTW9kYWxEaWFsb2coKSBjb25zdAoreworICAgIGZvciAoYXV0byBpdCA9IG1f
dG9wTGF5ZXJFbGVtZW50cy5yYmVnaW4oKTsgaXQgIT0gbV90b3BMYXllckVsZW1lbnRzLnJlbmQo
KTsgKytpdCkgeworICAgICAgICBpZiAoaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KCppdCkpCisgICAg
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTERpYWxvZ0VsZW1lbnQ+KCgqaXQpLmdldCgpKTsK
KyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAKIHZvaWQgRG9jdW1lbnQ6OnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmMDk5YWNk
NWJmNDkyNTRkM2EyOTA1MDQwNmMyNGZkOWZlZjA4MjI1Li4zZDg5NmUxOTRmNWQ1Mjk2NTM3YjVm
NDQ2OWIzYjgzMzcyMzlmNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQ5LDYgKzE0OSw3
IEBAIGNsYXNzIEhUTUxBdHRhY2htZW50RWxlbWVudDsKIGNsYXNzIEhUTUxCb2R5RWxlbWVudDsK
IGNsYXNzIEhUTUxDYW52YXNFbGVtZW50OwogY2xhc3MgSFRNTENvbGxlY3Rpb247CitjbGFzcyBI
VE1MRGlhbG9nRWxlbWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxFbGVtZW50
OwogY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50OwpAQCAtMTUwMSw2ICsxNTAyLDEyIEBAIHB1
YmxpYzoKICAgICBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXIqIHRpbWVsaW5lc0NvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5lc0NvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCBEb2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXImIGVuc3VyZVRpbWVsaW5l
c0NvbnRyb2xsZXIoKTsKIAorICAgIHZvaWQgYWRkVG9Ub3BMYXllcihFbGVtZW50Kik7CisgICAg
dm9pZCByZW1vdmVGcm9tVG9wTGF5ZXIoRWxlbWVudCopOworICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8RWxlbWVudD4+JiB0b3BMYXllckVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3BMYXll
ckVsZW1lbnRzOyB9CisKKyAgICBIVE1MRGlhbG9nRWxlbWVudCogYWN0aXZlTW9kYWxEaWFsb2co
KSBjb25zdDsKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdm9pZCByZWdp
c3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkSW5z
ZXJ0QXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFjaG1lbnRFbGVtZW50Jik7CkBAIC0yMTg3LDYg
KzIxOTQsOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9lZGl0b3I7CiAg
ICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKworICAgIFZlY3RvcjxS
ZWZQdHI8RWxlbWVudD4+IG1fdG9wTGF5ZXJFbGVtZW50czsKIH07CiAKIEVsZW1lbnQqIGV2ZW50
VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggNjJlNGZjNjE3ZjRkNjZmNzZhZjEwYTgyZmNlNzE5ZWI2MTdjOGViMC4uMTNjYjFmNzRh
YzlmZTNhMjZmZWQ2ODRhZGZkMTE0MmZjMDNiMzBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtMjI1Myw2ICsyMjUzLDggQEAgTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBpbnMKIAogdm9pZCBFbGVt
ZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWlu
ZXJOb2RlJiBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKQogeworICAgIGRvY3VtZW50KCkucmVtb3Zl
RnJvbVRvcExheWVyKHRoaXMpOworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlm
IChjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCiAgICAgICAgIHNldENvbnRhaW5zRnVsbFNj
cmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKaW5kZXggNWVmMTJhYzEyMDhl
ODc4MDA0MzdlMGQ1NmJiMmUyYzM3NzNmZDdkYy4uNjJlZGM4MmVkYmUxZmFmMWRjNDU1MTkzNDMy
MjVmMTVmZDRkNjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9n
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5j
cHAKQEAgLTg4LDYgKzg4LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTERpYWxvZ0VsZW1lbnQ6
OnNob3dNb2RhbCgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OwogCiAgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShvcGVuQXR0ciwgdHJ1ZSk7CisKKyAgICBk
b2N1bWVudCgpLmFkZFRvVG9wTGF5ZXIodGhpcyk7CiAgICAgbV9pc01vZGFsID0gdHJ1ZTsKIAog
ICAgIHJldHVybiB7IH07CkBAIC05OSw2ICsxMDEsNyBAQCB2b2lkIEhUTUxEaWFsb2dFbGVtZW50
OjpjbG9zZShjb25zdCBTdHJpbmcmIHJldHVyblZhbHVlKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShvcGVuQXR0ciwgZmFsc2UpOworCiAgICAgaWYgKCFy
ZXR1cm5WYWx1ZS5pc051bGwoKSkKICAgICAgICAgbV9yZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVl
OwogfQpAQCAtMTE3LDYgKzEyMCw5IEBAIHZvaWQgSFRNTERpYWxvZ0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAKICAgICAg
ICAgLy8gRW1pdCBjbG9zZSBldmVudAogICAgICAgICBpZiAob2xkVmFsdWUgIT0gbV9pc09wZW4g
JiYgIW1faXNPcGVuKSB7CisgICAgICAgICAgICBpZiAobV9pc01vZGFsKQorICAgICAgICAgICAg
ICAgIGRvY3VtZW50KCkucmVtb3ZlRnJvbVRvcExheWVyKHRoaXMpOworCiAgICAgICAgICAgICBt
X2lzTW9kYWwgPSBmYWxzZTsKICAgICAgICAgICAgIGRpYWxvZ0Nsb3NlRXZlbnRTZW5kZXIoKS5j
YW5jZWxFdmVudCgqdGhpcyk7CiAgICAgICAgICAgICBkaWFsb2dDbG9zZUV2ZW50U2VuZGVyKCku
ZGlzcGF0Y2hFdmVudFNvb24oKnRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433208</attachid>
            <date>2021-07-09 04:46:48 -0700</date>
            <delta_ts>2021-07-09 04:57:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227800-20210709134647.patch</filename>
            <type>text/plain</type>
            <size>5786</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkNDMxZTA5NzJjY2Y3
YmUxM2U5Mzk0MmQ0MzVkMDNlODZhM2NiZi4uN2ExZDBkY2Q2YjM5MDUyNGVkYWY1YTU4ZGM5ODQ2
Yjk4ZWRlNThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTA5ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRvcExheWVyRWxlbWVudHMo
KSBhbmQgYWN0aXZlTW9kYWxEaWFsb2coKSB0byBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhlc2UgRE9NIG1ldGhvZHMgYXJlIGEgcHJl
LXJlcXVpc2l0ZSBmb3IgYSBsb3Qgb2YgZGlhbG9nIGVsZW1lbnQgYWNjZXNzaWJpbGl0eSB3b3Jr
LCBhc2lkZSBmcm9tCisgICAgICAgIHRoZSB0b3AgbGF5ZXIgcmVuZGVyaW5nIHdvcmsuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZFRvVG9wTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFsb2cgY29u
c3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRvcExheWVyRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IpOgorICAgICAg
ICAqIGh0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERp
YWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGlhbG9nRWxl
bWVudDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpYWxvZ0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKToKKwogMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXggYWZ0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNjZTg2MjBkNDI5NGU4OTY3MjcxMjc2NTM0YTY3ODQz
NTIxYWY5YzYuLjlkNDZiYTUwYTFmNjI0MzcyOTVjYmRlZTVlY2Q3MjhmYTJiMGRkM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkhUTUxCYXNl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxD
YW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCkBAIC04Mzk5LDYgKzg0MDAsMzEgQEAgVmVj
dG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBEb2N1bWVudDo6bWF0Y2hpbmdBbmltYXRpb25zKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym8KICAgICByZXR1cm4gYW5pbWF0aW9uczsKIH0KIAordm9pZCBE
b2N1bWVudDo6YWRkVG9Ub3BMYXllcihFbGVtZW50JiBlbGVtZW50KQoreworICAgIC8vIFRvIGFk
ZCBhbiBlbGVtZW50IHRvIGEgdG9wIGxheWVyLCByZW1vdmUgaXQgZnJvbSB0b3AgbGF5ZXIgYW5k
IHRoZW4gYXBwZW5kIGl0IHRvIHRvcCBsYXllci4KKyAgICBtX3RvcExheWVyRWxlbWVudHMuYXBw
ZW5kT3JNb3ZlVG9MYXN0KCZlbGVtZW50KTsKKworICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxl
KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BMYXllcihFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIG1fdG9wTGF5ZXJFbGVtZW50cy5yZW1vdmUoJmVsZW1lbnQpOworCisgICAg
ZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKK30KKworSFRNTERpYWxvZ0VsZW1lbnQqIERvY3Vt
ZW50OjphY3RpdmVNb2RhbERpYWxvZygpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogbWFrZVJldmVyc2VkUmFuZ2UobV90b3BMYXllckVsZW1lbnRzKSkgeworICAgICAgICBpZiAo
aXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50LmdldCgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKIHZvaWQg
RG9jdW1lbnQ6OnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmMDk5YWNkNWJmNDkyNTRkM2EyOTA1MDQw
NmMyNGZkOWZlZjA4MjI1Li5lNjRhOGNlZjU1NGY2YjU3NzBhZjg2YmZmNWYyZmYwM2EyNjJhNDQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIGNsYXNzIEhUTUxBdHRh
Y2htZW50RWxlbWVudDsKIGNsYXNzIEhUTUxCb2R5RWxlbWVudDsKIGNsYXNzIEhUTUxDYW52YXNF
bGVtZW50OwogY2xhc3MgSFRNTENvbGxlY3Rpb247CitjbGFzcyBIVE1MRGlhbG9nRWxlbWVudDsK
IGNsYXNzIEhUTUxEb2N1bWVudDsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgSFRNTEZyYW1l
T3duZXJFbGVtZW50OwpAQCAtMTUwMSw2ICsxNTAyLDEyIEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dFRpbWVsaW5lc0NvbnRyb2xsZXIqIHRpbWVsaW5lc0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVsaW5lc0NvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1
bWVudFRpbWVsaW5lc0NvbnRyb2xsZXImIGVuc3VyZVRpbWVsaW5lc0NvbnRyb2xsZXIoKTsKIAor
ICAgIHZvaWQgYWRkVG9Ub3BMYXllcihFbGVtZW50Jik7CisgICAgdm9pZCByZW1vdmVGcm9tVG9w
TGF5ZXIoRWxlbWVudCYpOworICAgIGNvbnN0IExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4m
IHRvcExheWVyRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RvcExheWVyRWxlbWVudHM7IH0K
KworICAgIEhUTUxEaWFsb2dFbGVtZW50KiBhY3RpdmVNb2RhbERpYWxvZygpIGNvbnN0OworCiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIHJlZ2lzdGVyQXR0YWNobWVu
dElkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBkaWRJbnNlcnRBdHRhY2htZW50
RWxlbWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQmKTsKQEAgLTIxODcsNiArMjE5NCw4IEBAIHBy
aXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RWRpdG9yPiBtX2VkaXRvcjsKICAgICBVbmlxdWVSZWY8
RnJhbWVTZWxlY3Rpb24+IG1fc2VsZWN0aW9uOworCisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEVs
ZW1lbnQ+PiBtX3RvcExheWVyRWxlbWVudHM7CiB9OwogCiBFbGVtZW50KiBldmVudFRhcmdldEVs
ZW1lbnRGb3JEb2N1bWVudChEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDYy
ZTRmYzYxN2Y0ZDY2Zjc2YWYxMGE4MmZjZTcxOWViNjE3YzhlYjAuLjRiZmRiYmNhN2Q0ZWZlOTEz
ZDEwNDk4YmY0ZGM4OTZlMjI2Nzc0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIyNTMs
NiArMjI1Myw4IEBAIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEVsZW1lbnQ6Omlu
c2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zCiAKIHZvaWQgRWxlbWVudDo6cmVt
b3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYg
b2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKIHsKKyAgICBkb2N1bWVudCgpLnJlbW92ZUZyb21Ub3BM
YXllcigqdGhpcyk7CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKGNvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoKSkKICAgICAgICAgc2V0Q29udGFpbnNGdWxsU2NyZWVuRWxl
bWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZmFsc2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcAppbmRleCA1ZWYxMmFjMTIwOGU4NzgwMDQz
N2UwZDU2YmIyZTJjMzc3M2ZkN2RjLi42NjE1YThhODdiOTk3MmVmOWM2ZGRiYjg5MzNlOGY5OTEx
MjlmM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcApAQCAt
ODgsNiArODgsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MRGlhbG9nRWxlbWVudDo6c2hvd01v
ZGFsKCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAK
ICAgICBzZXRCb29sZWFuQXR0cmlidXRlKG9wZW5BdHRyLCB0cnVlKTsKKworICAgIGRvY3VtZW50
KCkuYWRkVG9Ub3BMYXllcigqdGhpcyk7CiAgICAgbV9pc01vZGFsID0gdHJ1ZTsKIAogICAgIHJl
dHVybiB7IH07CkBAIC05OSw2ICsxMDEsNyBAQCB2b2lkIEhUTUxEaWFsb2dFbGVtZW50OjpjbG9z
ZShjb25zdCBTdHJpbmcmIHJldHVyblZhbHVlKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAg
c2V0Qm9vbGVhbkF0dHJpYnV0ZShvcGVuQXR0ciwgZmFsc2UpOworCiAgICAgaWYgKCFyZXR1cm5W
YWx1ZS5pc051bGwoKSkKICAgICAgICAgbV9yZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOwogfQpA
QCAtMTE3LDcgKzEyMCwxMSBAQCB2b2lkIEhUTUxEaWFsb2dFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogCiAgICAgICAgIC8v
IEVtaXQgY2xvc2UgZXZlbnQKICAgICAgICAgaWYgKG9sZFZhbHVlICE9IG1faXNPcGVuICYmICFt
X2lzT3BlbikgewotICAgICAgICAgICAgbV9pc01vZGFsID0gZmFsc2U7CisgICAgICAgICAgICBp
ZiAobV9pc01vZGFsKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5yZW1vdmVGcm9tVG9w
TGF5ZXIoKnRoaXMpOworICAgICAgICAgICAgICAgIG1faXNNb2RhbCA9IGZhbHNlOworICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICBkaWFsb2dDbG9zZUV2ZW50U2VuZGVyKCkuY2FuY2VsRXZl
bnQoKnRoaXMpOwogICAgICAgICAgICAgZGlhbG9nQ2xvc2VFdmVudFNlbmRlcigpLmRpc3BhdGNo
RXZlbnRTb29uKCp0aGlzKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433209</attachid>
            <date>2021-07-09 04:57:48 -0700</date>
            <delta_ts>2021-07-09 05:01:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227800-20210709135746.patch</filename>
            <type>text/plain</type>
            <size>5823</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkNDMxZTA5NzJjY2Y3
YmUxM2U5Mzk0MmQ0MzVkMDNlODZhM2NiZi4uN2ExZDBkY2Q2YjM5MDUyNGVkYWY1YTU4ZGM5ODQ2
Yjk4ZWRlNThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTA5ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRvcExheWVyRWxlbWVudHMo
KSBhbmQgYWN0aXZlTW9kYWxEaWFsb2coKSB0byBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhlc2UgRE9NIG1ldGhvZHMgYXJlIGEgcHJl
LXJlcXVpc2l0ZSBmb3IgYSBsb3Qgb2YgZGlhbG9nIGVsZW1lbnQgYWNjZXNzaWJpbGl0eSB3b3Jr
LCBhc2lkZSBmcm9tCisgICAgICAgIHRoZSB0b3AgbGF5ZXIgcmVuZGVyaW5nIHdvcmsuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZFRvVG9wTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFsb2cgY29u
c3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRvcExheWVyRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IpOgorICAgICAg
ICAqIGh0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERp
YWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGlhbG9nRWxl
bWVudDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpYWxvZ0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKToKKwogMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXggYWZ0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNjZTg2MjBkNDI5NGU4OTY3MjcxMjc2NTM0YTY3ODQz
NTIxYWY5YzYuLjI0NWQyYmY4OTkwNDBjN2U1Y2FhMmQwMThkZmQxNDNmNGRlMjJjMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkhUTUxCYXNl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxD
YW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCkBAIC04Mzk5LDYgKzg0MDAsMzIgQEAgVmVj
dG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBEb2N1bWVudDo6bWF0Y2hpbmdBbmltYXRpb25zKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym8KICAgICByZXR1cm4gYW5pbWF0aW9uczsKIH0KIAordm9pZCBE
b2N1bWVudDo6YWRkVG9Ub3BMYXllcihFbGVtZW50JiBlbGVtZW50KQoreworICAgIC8vIFRvIGFk
ZCBhbiBlbGVtZW50IHRvIGEgdG9wIGxheWVyLCByZW1vdmUgaXQgZnJvbSB0b3AgbGF5ZXIgYW5k
IHRoZW4gYXBwZW5kIGl0IHRvIHRvcCBsYXllci4KKyAgICBtX3RvcExheWVyRWxlbWVudHMuYXBw
ZW5kT3JNb3ZlVG9MYXN0KCZlbGVtZW50KTsKKworICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxl
KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BMYXllcihFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIGJvb2wgcmVtb3ZlZCA9IG1fdG9wTGF5ZXJFbGVtZW50cy5yZW1vdmUoJmVs
ZW1lbnQpOworCisgICAgaWYgKHJlbW92ZWQpCisgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0
eWxlKCk7Cit9CisKK0hUTUxEaWFsb2dFbGVtZW50KiBEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFs
b2coKSBjb25zdAoreworICAgIGZvciAoYXV0byYgZWxlbWVudCA6IG1ha2VSZXZlcnNlZFJhbmdl
KG1fdG9wTGF5ZXJFbGVtZW50cykpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxEaWFsb2dFbGVtZW50
PihlbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVu
dD4oZWxlbWVudC5nZXQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCiB2b2lkIERvY3VtZW50OjpyZWdpc3RlckF0
dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggZjA5OWFjZDViZjQ5MjU0ZDNhMjkwNTA0MDZjMjRmZDlmZWYwODIyNS4uZTY0
YThjZWY1NTRmNmI1NzcwYWY4NmJmZjVmMmZmMDNhMjYyYTQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTE0OSw2ICsxNDksNyBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiBjbGFz
cyBIVE1MQm9keUVsZW1lbnQ7CiBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIGNsYXNzIEhUTUxD
b2xsZWN0aW9uOworY2xhc3MgSFRNTERpYWxvZ0VsZW1lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7
CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKQEAgLTE1
MDEsNiArMTUwMiwxMiBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
KiB0aW1lbGluZXNDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV90aW1lbGluZXNDb250cm9s
bGVyLmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9s
bGVyJiBlbnN1cmVUaW1lbGluZXNDb250cm9sbGVyKCk7CiAKKyAgICB2b2lkIGFkZFRvVG9wTGF5
ZXIoRWxlbWVudCYpOworICAgIHZvaWQgcmVtb3ZlRnJvbVRvcExheWVyKEVsZW1lbnQmKTsKKyAg
ICBjb25zdCBMaXN0SGFzaFNldDxSZWZQdHI8RWxlbWVudD4+JiB0b3BMYXllckVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV90b3BMYXllckVsZW1lbnRzOyB9CisKKyAgICBIVE1MRGlhbG9nRWxl
bWVudCogYWN0aXZlTW9kYWxEaWFsb2coKSBjb25zdDsKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAgICAgdm9pZCByZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFjaG1l
bnRFbGVtZW50Jik7CkBAIC0yMTg3LDYgKzIxOTQsOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVl
UmVmPEVkaXRvcj4gbV9lZGl0b3I7CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3Nl
bGVjdGlvbjsKKworICAgIExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV90b3BMYXllckVs
ZW1lbnRzOwogfTsKIAogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9jdW1lbnQoRG9j
dW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2MmU0ZmM2MTdmNGQ2NmY3NmFmMTBh
ODJmY2U3MTllYjYxN2M4ZWIwLi40YmZkYmJjYTdkNGVmZTkxM2QxMDQ5OGJmNGRjODk2ZTIyNjc3
NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMjUzLDYgKzIyNTMsOCBAQCBOb2RlOjpJ
bnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJ
bnNlcnRpb25UeXBlIGlucwogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVt
b3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRy
ZWUpCiB7CisgICAgZG9jdW1lbnQoKS5yZW1vdmVGcm9tVG9wTGF5ZXIoKnRoaXMpOworCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50
KCkpCiAgICAgICAgIHNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9n
RWxlbWVudC5jcHAKaW5kZXggNWVmMTJhYzEyMDhlODc4MDA0MzdlMGQ1NmJiMmUyYzM3NzNmZDdk
Yy4uNjYxNWE4YTg3Yjk5NzJlZjljNmRkYmI4OTMzZThmOTkxMTI5ZjNhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKQEAgLTg4LDYgKzg4LDggQEAgRXhjZXB0
aW9uT3I8dm9pZD4gSFRNTERpYWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCgpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCiAgICAgc2V0Qm9vbGVhbkF0dHJp
YnV0ZShvcGVuQXR0ciwgdHJ1ZSk7CisKKyAgICBkb2N1bWVudCgpLmFkZFRvVG9wTGF5ZXIoKnRo
aXMpOwogICAgIG1faXNNb2RhbCA9IHRydWU7CiAKICAgICByZXR1cm4geyB9OwpAQCAtOTksNiAr
MTAxLDcgQEAgdm9pZCBIVE1MRGlhbG9nRWxlbWVudDo6Y2xvc2UoY29uc3QgU3RyaW5nJiByZXR1
cm5WYWx1ZSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUo
b3BlbkF0dHIsIGZhbHNlKTsKKwogICAgIGlmICghcmV0dXJuVmFsdWUuaXNOdWxsKCkpCiAgICAg
ICAgIG1fcmV0dXJuVmFsdWUgPSByZXR1cm5WYWx1ZTsKIH0KQEAgLTExNyw3ICsxMjAsMTEgQEAg
dm9pZCBIVE1MRGlhbG9nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogICAgICAgICAvLyBFbWl0IGNsb3NlIGV2ZW50CiAg
ICAgICAgIGlmIChvbGRWYWx1ZSAhPSBtX2lzT3BlbiAmJiAhbV9pc09wZW4pIHsKLSAgICAgICAg
ICAgIG1faXNNb2RhbCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKG1faXNNb2RhbCkgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50KCkucmVtb3ZlRnJvbVRvcExheWVyKCp0aGlzKTsKKyAgICAg
ICAgICAgICAgICBtX2lzTW9kYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAg
ICAgZGlhbG9nQ2xvc2VFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKICAgICAgICAg
ICAgIGRpYWxvZ0Nsb3NlRXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbigqdGhpcyk7CiAg
ICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433210</attachid>
            <date>2021-07-09 05:01:34 -0700</date>
            <delta_ts>2021-07-09 05:01:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227800-20210709140133.patch</filename>
            <type>text/plain</type>
            <size>5808</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Nzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkNDMxZTA5NzJjY2Y3
YmUxM2U5Mzk0MmQ0MzVkMDNlODZhM2NiZi4uN2ExZDBkY2Q2YjM5MDUyNGVkYWY1YTU4ZGM5ODQ2
Yjk4ZWRlNThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA3LTA5ICBUaW0g
Tmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRvcExheWVyRWxlbWVudHMo
KSBhbmQgYWN0aXZlTW9kYWxEaWFsb2coKSB0byBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhlc2UgRE9NIG1ldGhvZHMgYXJlIGEgcHJl
LXJlcXVpc2l0ZSBmb3IgYSBsb3Qgb2YgZGlhbG9nIGVsZW1lbnQgYWNjZXNzaWJpbGl0eSB3b3Jr
LCBhc2lkZSBmcm9tCisgICAgICAgIHRoZSB0b3AgbGF5ZXIgcmVuZGVyaW5nIHdvcmsuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZFRvVG9wTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFsb2cgY29u
c3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnRvcExheWVyRWxlbWVudHMgY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IpOgorICAgICAg
ICAqIGh0bWwvSFRNTERpYWxvZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERp
YWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGlhbG9nRWxl
bWVudDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpYWxvZ0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKToKKwogMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXggYWZ0ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNjZTg2MjBkNDI5NGU4OTY3MjcxMjc2NTM0YTY3ODQz
NTIxYWY5YzYuLjYyOWFlZmE2NTVhZTU0NjgyYmJmOTBiMzg5MGI5NTlmOTM5ZTIwYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkhUTUxCYXNl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxD
YW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCkBAIC04Mzk5LDYgKzg0MDAsMzIgQEAgVmVj
dG9yPFJlZlB0cjxXZWJBbmltYXRpb24+PiBEb2N1bWVudDo6bWF0Y2hpbmdBbmltYXRpb25zKGNv
bnN0IFdURjo6RnVuY3Rpb248Ym8KICAgICByZXR1cm4gYW5pbWF0aW9uczsKIH0KIAordm9pZCBE
b2N1bWVudDo6YWRkVG9Ub3BMYXllcihFbGVtZW50JiBlbGVtZW50KQoreworICAgIC8vIFRvIGFk
ZCBhbiBlbGVtZW50IHRvIGEgdG9wIGxheWVyLCByZW1vdmUgaXQgZnJvbSB0b3AgbGF5ZXIgYW5k
IHRoZW4gYXBwZW5kIGl0IHRvIHRvcCBsYXllci4KKyAgICBtX3RvcExheWVyRWxlbWVudHMuYXBw
ZW5kT3JNb3ZlVG9MYXN0KCZlbGVtZW50KTsKKworICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxl
KCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnJlbW92ZUZyb21Ub3BMYXllcihFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIGlmICghbV90b3BMYXllckVsZW1lbnRzLnJlbW92ZSgmZWxlbWVudCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlKCk7Cit9CisKK0hU
TUxEaWFsb2dFbGVtZW50KiBEb2N1bWVudDo6YWN0aXZlTW9kYWxEaWFsb2coKSBjb25zdAorewor
ICAgIGZvciAoYXV0byYgZWxlbWVudCA6IG1ha2VSZXZlcnNlZFJhbmdlKG1fdG9wTGF5ZXJFbGVt
ZW50cykpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KSkKKyAg
ICAgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudC5nZXQo
KSk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKICNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQogCiB2b2lkIERvY3VtZW50OjpyZWdpc3RlckF0dGFjaG1lbnRJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZjA5
OWFjZDViZjQ5MjU0ZDNhMjkwNTA0MDZjMjRmZDlmZWYwODIyNS4uZTY0YThjZWY1NTRmNmI1Nzcw
YWY4NmJmZjVmMmZmMDNhMjYyYTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0OSw2ICsx
NDksNyBAQCBjbGFzcyBIVE1MQXR0YWNobWVudEVsZW1lbnQ7CiBjbGFzcyBIVE1MQm9keUVsZW1l
bnQ7CiBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKIGNsYXNzIEhUTUxDb2xsZWN0aW9uOworY2xh
c3MgSFRNTERpYWxvZ0VsZW1lbnQ7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBIVE1MRWxl
bWVudDsKIGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVudDsKQEAgLTE1MDEsNiArMTUwMiwxMiBA
QCBwdWJsaWM6CiAgICAgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyKiB0aW1lbGluZXNDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV90aW1lbGluZXNDb250cm9sbGVyLmdldCgpOyB9CiAg
ICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyJiBlbnN1cmVUaW1l
bGluZXNDb250cm9sbGVyKCk7CiAKKyAgICB2b2lkIGFkZFRvVG9wTGF5ZXIoRWxlbWVudCYpOwor
ICAgIHZvaWQgcmVtb3ZlRnJvbVRvcExheWVyKEVsZW1lbnQmKTsKKyAgICBjb25zdCBMaXN0SGFz
aFNldDxSZWZQdHI8RWxlbWVudD4+JiB0b3BMYXllckVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
bV90b3BMYXllckVsZW1lbnRzOyB9CisKKyAgICBIVE1MRGlhbG9nRWxlbWVudCogYWN0aXZlTW9k
YWxEaWFsb2coKSBjb25zdDsKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAg
dm9pZCByZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFjaG1lbnRFbGVtZW50Jik7CkBA
IC0yMTg3LDYgKzIxOTQsOCBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEVkaXRvcj4gbV9l
ZGl0b3I7CiAgICAgVW5pcXVlUmVmPEZyYW1lU2VsZWN0aW9uPiBtX3NlbGVjdGlvbjsKKworICAg
IExpc3RIYXNoU2V0PFJlZlB0cjxFbGVtZW50Pj4gbV90b3BMYXllckVsZW1lbnRzOwogfTsKIAog
RWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCA2MmU0ZmM2MTdmNGQ2NmY3NmFmMTBhODJmY2U3MTllYjYxN2M4
ZWIwLi40YmZkYmJjYTdkNGVmZTkxM2QxMDQ5OGJmNGRjODk2ZTIyNjc3NGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0yMjUzLDYgKzIyNTMsOCBAQCBOb2RlOjpJbnNlcnRlZEludG9BbmNl
c3RvclJlc3VsdCBFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGlu
cwogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3Zh
bFR5cGUsIENvbnRhaW5lck5vZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpCiB7CisgICAgZG9j
dW1lbnQoKS5yZW1vdmVGcm9tVG9wTGF5ZXIoKnRoaXMpOworCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIGlmIChjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkpCiAgICAgICAgIHNl
dENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFy
aWVzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpYWxvZ0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKaW5k
ZXggNWVmMTJhYzEyMDhlODc4MDA0MzdlMGQ1NmJiMmUyYzM3NzNmZDdkYy4uNjYxNWE4YTg3Yjk5
NzJlZjljNmRkYmI4OTMzZThmOTkxMTI5ZjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGlhbG9nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGlhbG9nRWxlbWVudC5jcHAKQEAgLTg4LDYgKzg4LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRN
TERpYWxvZ0VsZW1lbnQ6OnNob3dNb2RhbCgpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9OwogCiAgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShvcGVuQXR0ciwg
dHJ1ZSk7CisKKyAgICBkb2N1bWVudCgpLmFkZFRvVG9wTGF5ZXIoKnRoaXMpOwogICAgIG1faXNN
b2RhbCA9IHRydWU7CiAKICAgICByZXR1cm4geyB9OwpAQCAtOTksNiArMTAxLDcgQEAgdm9pZCBI
VE1MRGlhbG9nRWxlbWVudDo6Y2xvc2UoY29uc3QgU3RyaW5nJiByZXR1cm5WYWx1ZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUob3BlbkF0dHIsIGZhbHNl
KTsKKwogICAgIGlmICghcmV0dXJuVmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIG1fcmV0dXJuVmFs
dWUgPSByZXR1cm5WYWx1ZTsKIH0KQEAgLTExNyw3ICsxMjAsMTEgQEAgdm9pZCBIVE1MRGlhbG9n
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmkKIAogICAgICAgICAvLyBFbWl0IGNsb3NlIGV2ZW50CiAgICAgICAgIGlmIChvbGRW
YWx1ZSAhPSBtX2lzT3BlbiAmJiAhbV9pc09wZW4pIHsKLSAgICAgICAgICAgIG1faXNNb2RhbCA9
IGZhbHNlOworICAgICAgICAgICAgaWYgKG1faXNNb2RhbCkgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50KCkucmVtb3ZlRnJvbVRvcExheWVyKCp0aGlzKTsKKyAgICAgICAgICAgICAgICBtX2lz
TW9kYWwgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZGlhbG9nQ2xvc2VF
dmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KCp0aGlzKTsKICAgICAgICAgICAgIGRpYWxvZ0Nsb3Nl
RXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbigqdGhpcyk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>