<?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>256186</bug_id>
          
          <creation_ts>2023-05-01 16:49:16 -0700</creation_ts>
          <short_desc>AX: Setting aria-hidden on a slot does not hide the slots assigned nodes</short_desc>
          <delta_ts>2024-04-10 22:38:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Other</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>GoodFirstBug, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1952250</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-05-01 16:49:16 -0700</bug_when>
    <thetext>Testcase:

&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&lt;html&gt;
&lt;body&gt;
&lt;x-button&gt;slot&lt;span&gt;with child&lt;/span&gt;&lt;/x-button&gt;
&lt;script&gt;
class XButton extends HTMLElement {
    constructor() {
        super();
        this.attachShadow({ mode: &quot;open&quot;, delegatesFocus: true });
        const fragment = document.createRange().createContextualFragment(&quot;&lt;input id=&apos;button&apos; aria-labelledby=&apos;slot&apos; type=button&gt;&lt;slot id=&apos;slot&apos; aria-hidden=&apos;true&apos;&gt;&lt;/slot&gt;&quot;);
        this.shadowRoot.append(fragment.cloneNode(true));
    }
}
customElements.define(&quot;x-button&quot;, XButton);
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

The only element exposed on this page should be the button, but WebKit exposes the text &quot;slot with child&quot; as well. Firefox and Chrome do not behave this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1952251</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-05-01 16:49:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/108762653&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026540</commentid>
    <comment_count>2</comment_count>
      <attachid>470792</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-06 13:24:41 -0700</bug_when>
    <thetext>Created attachment 470792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2026548</commentid>
    <comment_count>3</comment_count>
      <attachid>470793</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-06 15:34:38 -0700</bug_when>
    <thetext>Created attachment 470793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027304</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-04-09 18:39:31 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Created attachment 470793 [details]
&gt; Patch

diff --git a/Source/WebCore/accessibility/AXObjectCache.cpp b/Source/WebCore/accessibility/AXObjectCache.cpp
index fac5fc7237b3..27df78d61832 100644
--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ b/Source/WebCore/accessibility/AXObjectCache.cpp
@@ -310,15 +310,10 @@ AXObjectCache::~AXObjectCache()

 bool AXObjectCache::isModalElement(Element&amp; element) const
 {
-    bool hasDialogRole = nodeHasRole(&amp;element, &quot;dialog&quot;_s) || nodeHasRole(&amp;element, &quot;alertdialog&quot;_s);
-    AtomString modalValue = element.attributeWithoutSynchronization(aria_modalAttr);
-    if (modalValue.isNull()) {
-        if (auto* defaultARIA = element.customElementDefaultARIAIfExists())
-            modalValue = defaultARIA-&gt;valueForAttribute(element, aria_modalAttr);
+    if (nodeHasRole(&amp;element, &quot;dialog&quot;_s) || nodeHasRole(&amp;element, &quot;alertdialog&quot;_s)) {
+        if (equalLettersIgnoringASCIICase(element.attributeIncludingDefaultARIA(aria_modalAttr), &quot;true&quot;_s))
+            return true;
     }

AG: it may be more readable as
if ((blah || blah) &amp;&amp; blah)
    return true;
Saving one if statement and one indentation.

-    bool isAriaModal = equalLettersIgnoringASCIICase(modalValue, &quot;true&quot;_s);
-    if (hasDialogRole &amp;&amp; isAriaModal)
-        return true;

     RefPtr dialog = dynamicDowncast&lt;HTMLDialogElement&gt;(element);
     return dialog &amp;&amp; dialog-&gt;isModal();
@@ -585,11 +580,7 @@ bool nodeHasRole(Node* node, StringView role)
     if (!element)
         return false;

-    auto roleValue = element-&gt;attributeWithoutSynchronization(roleAttr);
-    if (roleValue.isNull()) {
-        if (auto* defaultARIA = element-&gt;customElementDefaultARIAIfExists())
-            roleValue = defaultARIA-&gt;valueForAttribute(*element, roleAttr);
-    }
+    auto roleValue = element-&gt;attributeIncludingDefaultARIA(roleAttr);
     if (role.isNull())
         return roleValue.isEmpty();
     if (roleValue.isEmpty())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027310</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-04-09 18:52:30 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Created attachment 470793 [details]
&gt; Patch

diff --git a/Source/WebCore/dom/Element.h b/Source/WebCore/dom/Element.h
index 04fcaebdcebf..25d590032e6e 100644
--- a/Source/WebCore/dom/Element.h
+++ b/Source/WebCore/dom/Element.h
@@ -166,6 +166,7 @@ public:
     // attribute or one of the SVG animatable attributes.
     inline bool hasAttributeWithoutSynchronization(const QualifiedName&amp;) const;
     inline const AtomString&amp; attributeWithoutSynchronization(const QualifiedName&amp;) const;
+    inline const AtomString&amp; attributeIncludingDefaultARIA(const QualifiedName&amp;) const;

AG: maybe attributeWithDefaultARIA or attributeUsingDefaultARIA }

 #if DUMP_NODE_STATISTICS
     bool hasNamedNodeMap() const;
@@ -381,7 +382,7 @@ public:

     CustomElementDefaultARIA&amp; customElementDefaultARIA();
     CheckedRef&lt;CustomElementDefaultARIA&gt; checkedCustomElementDefaultARIA();
-    CustomElementDefaultARIA* customElementDefaultARIAIfExists();
+    CustomElementDefaultARIA* customElementDefaultARIAIfExists() const;

     bool isInActiveChain() const { return isUserActionElement() &amp;&amp; isUserActionElementInActiveChain(); }
     bool active() const { return isUserActionElement() &amp;&amp; isUserActionElementActive(); }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027313</commentid>
    <comment_count>6</comment_count>
      <attachid>470843</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-09 19:00:48 -0700</bug_when>
    <thetext>Created attachment 470843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027314</commentid>
    <comment_count>7</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-04-09 19:02:28 -0700</bug_when>
    <thetext>&gt; +    inline const AtomString&amp; attributeIncludingDefaultARIA(const
&gt; QualifiedName&amp;) const;
&gt; 
&gt; AG: maybe attributeWithDefaultARIA or attributeUsingDefaultARIA }
TW: Went with attributeWithDefaultARIA in the latest revision.

&gt; AG: it may be more readable as
&gt; if ((blah || blah) &amp;&amp; blah)
&gt;     return true;
&gt; Saving one if statement and one indentation.
TW: Changed!

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027538</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-04-10 13:02:30 -0700</bug_when>
    <thetext>Found 1 new test failure: inspector/cpu-profiler/tracking.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2027682</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-04-10 22:38:21 -0700</bug_when>
    <thetext>Committed 277359@main (8ee95fe74bfa): &lt;https://commits.webkit.org/277359@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470792</attachid>
            <date>2024-04-06 13:24:41 -0700</date>
            <delta_ts>2024-04-06 15:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256186-20240406132441.patch</filename>
            <type>text/plain</type>
            <size>14319</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA1MTFlNGQ2ZTQxY2JlMmQ3ZWZkZDJiMDliOWQ0MTkzZWQ3MGNlOTBjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA2IEFwciAyMDI0IDEzOjE5OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IFNl
dHRpbmcgYXJpYS1oaWRkZW4gb24gYSBzbG90IGRvZXMgbm90IGhpZGUgdGhlIHNsb3RzCiBhc3Np
Z25lZCBub2RlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MTg2
CiByZGFyOi8vcHJvYmxlbS8xMDg3NjI2NTMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl
OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRml4IHRoaXMgYnkgY2hhbmdpbmcgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBSGlkZGVuIHRvIGNoZWNrIGlmIHRoZSBnaXZlbiBvYmpl
Y3QgaXMgd2l0aGluIGEgaGlkZGVuIHNsb3QuCgpUbyBoZWxwIGFjY29tcGxpc2ggdGhpcywgYSBu
ZXcgRWxlbWVudDo6YXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFSSUEgZnVuY3Rpb24gaXMgYWRk
ZWQsIGFzIGl0IGlzIG5lZWRlZCB0byBjaGVjayB0aGUKc2xvdCdzIGFyaWEtaGlkZGVuIGF0dHJp
YnV0ZSwgYW5kIHRoaXMgbG9naWMgd2FzIHJlcGVhdGVkIHNldmVyYWwgdGltZXMgdGhyb3VnaG91
dCBhY2Nlc3NpYmlsaXR5IGNvZGUuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVu
LXNsb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hp
ZGRlbi1zbG90Lmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCiogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZToKQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmggc2hvdWxkIGhhdmUgYmVlbiBwcmVzZW50IGlu
IHRoaXMgZmlsZSwgYnV0Cndhc24ndCDigJQgdGhpcyBwYXRjaCBhZGRzIGl0LgoqIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQ3VzdG9tRWxlbWVudERl
ZmF1bHRBUklBLmggc2hvdWxkIGhhdmUgYmVlbiB1bmRlciBQcml2YXRlIG1lbWJlcnNoaXAgdG8K
V2ViQ29yZSwgYnV0IHdhcyBQdWJsaWMuIFRoaXMgaXMgd3JvbmcgcGVyIGh0dHBzOi8vZ2l0aHVi
LmNvbS9XZWJLaXQvV2ViS2l0L2Jsb2IvbWFpbi9JbnRyb2R1Y3Rpb24ubWQjaG93LXRvLWFkZC1h
LW5ldy1oLW9yLWNwcC1maWxlLAphbmQgY2F1c2VkIGNvbXBpbGF0aW9uIGZhaWx1cmVzLiBJdCdz
IG5vdyBQcml2YXRlLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudCBjb25zdCk6CihX
ZWJDb3JlOjpub2RlSGFzUm9sZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldEF0
dHJpYnV0ZSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FSSUFIaWRk
ZW4gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVs
ZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzIGNvbnN0KToKKFdlYkNvcmU6
OkVsZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
SW5saW5lcy5oOgooV2ViQ29yZTo6RWxlbWVudDo6YXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFS
SUEgY29uc3QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgICAgICAgICAgICAg
ICAgICB8ICAxICsKIC4uLi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiB8ICAyICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAg
fCAxOSArKystLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAg
ICAgIHwgMjEgKysrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCAgICAgICAgICAg
ICAgICAgIHwgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50SW5saW5lcy5oICAgICAg
ICAgICB8IDExICsrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xvdC1leHBlY3RlZC50
eHQgICAgfCAxMCArKysrCiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0
bWwgICAgfCA0NiArKysrKysrKysrKysrKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyAgICAgfCAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRp
b25zKCspLCAyNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbAoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDExMjcxYjYyYWI0Ny4uMjdiYjA1ZDY1OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTkyNSw2ICs5MjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgKICAgICBkb20vQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXJJbmxpbmVzLmgKICAgICBkb20vQ3Jvc3NPcmlnaW5Nb2RlLmgKKyAg
ICBkb20vQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmgKICAgICBkb20vQ3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWUuaAogICAgIGRvbS9ET01FeGNlcHRpb24uaAogICAgIGRvbS9ET01IaWdoUmVz
VGltZVN0YW1wLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAyNjc3Mjk5OGRiZTIuLmNmYzcyYjBkZTcyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzg3OSw3
ICszODc5LDcgQEAKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2
QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlv
RGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8qIEF1ZGlvRGVzdGluYXRpb25Db2Nv
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlC
MTIyOUM3MjNGRTRENkEwMDhDQTc1MSAvKiBNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjEyMjlDNjIzRkU0RDVGMDA4Q0E3NTEg
LyogTWVkaWFTdHJhdGVneS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTlCMTVGMEQ1MjhDNDZEMzUwMDZCN0YzMiAvKiBDdXN0b21FbGVtZW50RGVm
YXVsdEFSSUEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMTVGMEQ0MjhDNDZEMTgwMDZCN0YzMiAvKiBDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCAq
LzsgfTsKKwkJOUIxNUYwRDUyOEM0NkQzNTAwNkI3RjMyIC8qIEN1c3RvbUVsZW1lbnREZWZhdWx0
QVJJQS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIx
NUYwRDQyOEM0NkQxODAwNkI3RjMyIC8qIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRERThFMTUx
OTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxC
RElFbGVtZW50LmggKi87IH07CiAJCTlCMjdGQzYwMjM0RDlBREIwMDM5NEE0NiAvKiBXaW5kb3dF
dmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMjdGQzVFMjM0RDlBREEwMDM5NEE0NiAvKiBXaW5kb3dFdmVudExvb3AuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NG
MDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBmYWM1ZmM3MjM3YjMu
LjVmYjMxNjdjMjFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCkBAIC0zMTEsMTQgKzMxMSwxMSBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmpl
Y3RDYWNoZSgpCiBib29sIEFYT2JqZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50KEVsZW1lbnQmIGVs
ZW1lbnQpIGNvbnN0CiB7CiAgICAgYm9vbCBoYXNEaWFsb2dSb2xlID0gbm9kZUhhc1JvbGUoJmVs
ZW1lbnQsICJkaWFsb2ciX3MpIHx8IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ci
X3MpOwotICAgIEF0b21TdHJpbmcgbW9kYWxWYWx1ZSA9IGVsZW1lbnQuYXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0cik7Ci0gICAgaWYgKG1vZGFsVmFsdWUuaXNO
dWxsKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGRlZmF1bHRBUklBID0gZWxlbWVudC5jdXN0b21F
bGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAgICAgICAgICAgbW9kYWxWYWx1ZSA9IGRl
ZmF1bHRBUklBLT52YWx1ZUZvckF0dHJpYnV0ZShlbGVtZW50LCBhcmlhX21vZGFsQXR0cik7Ci0g
ICAgfQotICAgIGJvb2wgaXNBcmlhTW9kYWwgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShtb2RhbFZhbHVlLCAidHJ1ZSJfcyk7Ci0gICAgaWYgKGhhc0RpYWxvZ1JvbGUgJiYgaXNBcmlh
TW9kYWwpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghaGFzRGlhbG9nUm9sZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShlbGVtZW50LmF0dHJpYnV0ZUluY2x1ZGluZ0RlZmF1bHRBUklBKGFyaWFfbW9kYWxBdHRy
KSwgInRydWUiX3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHIgZGlhbG9n
ID0gZHluYW1pY0Rvd25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KTsKICAgICByZXR1
cm4gZGlhbG9nICYmIGRpYWxvZy0+aXNNb2RhbCgpOwpAQCAtNTg1LDExICs1ODIsNyBAQCBib29s
IG5vZGVIYXNSb2xlKE5vZGUqIG5vZGUsIFN0cmluZ1ZpZXcgcm9sZSkKICAgICBpZiAoIWVsZW1l
bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gcm9sZVZhbHVlID0gZWxlbWVu
dC0+YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihyb2xlQXR0cik7Ci0gICAgaWYgKHJv
bGVWYWx1ZS5pc051bGwoKSkgewotICAgICAgICBpZiAoYXV0byogZGVmYXVsdEFSSUEgPSBlbGVt
ZW50LT5jdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAgICAgICAgICAgcm9s
ZVZhbHVlID0gZGVmYXVsdEFSSUEtPnZhbHVlRm9yQXR0cmlidXRlKCplbGVtZW50LCByb2xlQXR0
cik7Ci0gICAgfQorICAgIGF1dG8gcm9sZVZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRlSW5jbHVk
aW5nRGVmYXVsdEFSSUEocm9sZUF0dHIpOwogICAgIGlmIChyb2xlLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm4gcm9sZVZhbHVlLmlzRW1wdHkoKTsKICAgICBpZiAocm9sZVZhbHVlLmlzRW1wdHko
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCmluZGV4IDI2NWUzZTNmNjc4NC4uMGY1MGE5MDZiYzE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAg
LTI1MzYsMTQgKzI1MzYsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omhhc0F0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJp
bmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0gdGhpcy0+ZWxl
bWVudCgpKSB7Ci0gICAgICAgIGF1dG8mIHZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihhdHRyaWJ1dGUpOwotICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgp
KQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICBpZiAoYXV0byogZGVmYXVsdEFS
SUEgPSBlbGVtZW50LT5jdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAgICAg
ICAgICAgcmV0dXJuIGRlZmF1bHRBUklBLT52YWx1ZUZvckF0dHJpYnV0ZSgqZWxlbWVudCwgYXR0
cmlidXRlKTsKLSAgICB9Ci0gICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgUmVmUHRyIGVsZW1l
bnQgPSB0aGlzLT5lbGVtZW50KCk7CisgICAgcmV0dXJuIGVsZW1lbnQgPyBlbGVtZW50LT5hdHRy
aWJ1dGVJbmNsdWRpbmdEZWZhdWx0QVJJQShhdHRyaWJ1dGUpIDogbnVsbEF0b20oKTsKIH0KIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6Om5hbWVBdHRyaWJ1dGUoKSBjb25zdApAQCAtMzk4
OSw3ICszOTgzLDE2IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlz
SWdub3JlZEJ5RGVmYXVsdCgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNB
UklBSGlkZGVuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoZ2V0QXR0cmlidXRlKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIl9zKSAmJiAhaXNGb2N1
c2VkKCk7CisgICAgaWYgKGlzRm9jdXNlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmIChhdXRvKiBhc3NpZ25lZFNsb3Qg
PSBub2RlID8gbm9kZS0+YXNzaWduZWRTbG90KCkgOiBudWxscHRyKSB7CisgICAgICAgIGlmIChl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhc3NpZ25lZFNsb3QtPmF0dHJpYnV0ZUluY2x1
ZGluZ0RlZmF1bHRBUklBKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIl9zKSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShnZXRBdHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiX3MpOwogfQogCiAv
LyBBUklBIGNvbXBvbmVudCBvZiBoaWRkZW4gZGVmaW5pdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCBjNjcwYmE3M2VlNmEuLmIzMmFmMTNkMmRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtMzEzOCw3ICszMTM4LDcgQEAgQ2hlY2tlZFJlZjxDdXN0b21FbGVtZW50RGVmYXVsdEFS
SUE+IEVsZW1lbnQ6OmNoZWNrZWRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKQogICAgIHJldHVy
biBjdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKTsKIH0KIAotQ3VzdG9tRWxlbWVudERlZmF1bHRB
UklBKiBFbGVtZW50OjpjdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpCitDdXN0b21F
bGVtZW50RGVmYXVsdEFSSUEqIEVsZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhp
c3RzKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNQcmVjdXN0b21pemVkT3JEZWZpbmVkQ3VzdG9t
RWxlbWVudCgpICYmIGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+Y3VzdG9tRWxl
bWVudERlZmF1bHRBUklBKCkgOiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDRm
Y2FlYmRjZWJmLi4yNWQ1OTAwMzJlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTY2LDYgKzE2
Niw3IEBAIHB1YmxpYzoKICAgICAvLyBhdHRyaWJ1dGUgb3Igb25lIG9mIHRoZSBTVkcgYW5pbWF0
YWJsZSBhdHRyaWJ1dGVzLgogICAgIGlubGluZSBib29sIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGlubGluZSBjb25z
dCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKKyAgICBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgYXR0cmlidXRl
SW5jbHVkaW5nRGVmYXVsdEFSSUEoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogCiAjaWYg
RFVNUF9OT0RFX1NUQVRJU1RJQ1MKICAgICBib29sIGhhc05hbWVkTm9kZU1hcCgpIGNvbnN0OwpA
QCAtMzgxLDcgKzM4Miw3IEBAIHB1YmxpYzoKIAogICAgIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJ
QSYgY3VzdG9tRWxlbWVudERlZmF1bHRBUklBKCk7CiAgICAgQ2hlY2tlZFJlZjxDdXN0b21FbGVt
ZW50RGVmYXVsdEFSSUE+IGNoZWNrZWRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKTsKLSAgICBD
dXN0b21FbGVtZW50RGVmYXVsdEFSSUEqIGN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3Rz
KCk7CisgICAgQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBKiBjdXN0b21FbGVtZW50RGVmYXVsdEFS
SUFJZkV4aXN0cygpIGNvbnN0OwogCiAgICAgYm9vbCBpc0luQWN0aXZlQ2hhaW4oKSBjb25zdCB7
IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEluQWN0
aXZlQ2hhaW4oKTsgfQogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0
aW9uRWxlbWVudCgpICYmIGlzVXNlckFjdGlvbkVsZW1lbnRBY3RpdmUoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudElubGluZXMuaAppbmRleCAxMzFjNjQ5YmE4MDIuLjk2ZDg2Njk0MWU1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCIKICNpbmNsdWRl
ICJEb2N1bWVudElubGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRWxl
bWVudERhdGEuaCIKQEAgLTk4LDYgKzk5LDE2IEBAIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBF
bGVtZW50OjphdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnN0IFF1YWxpZmllCiAg
ICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKK2lubGluZSBjb25zdCBBdG9tU3RyaW5nJiBFbGVt
ZW50OjphdHRyaWJ1dGVJbmNsdWRpbmdEZWZhdWx0QVJJQShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lKSBjb25zdAoreworICAgIGF1dG8mIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9u
aXphdGlvbihuYW1lKTsKKyAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4g
dmFsdWU7CisKKyAgICBhdXRvKiBkZWZhdWx0QVJJQSA9IGN1c3RvbUVsZW1lbnREZWZhdWx0QVJJ
QUlmRXhpc3RzKCk7CisgICAgcmV0dXJuIGRlZmF1bHRBUklBID8gZGVmYXVsdEFSSUEtPnZhbHVl
Rm9yQXR0cmlidXRlKCp0aGlzLCBuYW1lKSA6IG51bGxBdG9tKCk7Cit9CisKIGlubGluZSBVUkwg
RWxlbWVudDo6Z2V0VVJMQXR0cmlidXRlRm9yQmluZGluZ3MoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkgY29uc3QKIHsKICAgICByZXR1cm4gcHJvdGVjdGVkRG9jdW1lbnQoKS0+bWFza2VkVVJM
Rm9yQmluZGluZ3NJZk5lZWRlZChnZXRVUkxBdHRyaWJ1dGUobmFtZSkpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xvdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFiNjFmMzNkYTdiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGRvbid0IGV4cG9zZSBlbGVt
ZW50cyB3aXRoaW4gYW4gYXJpYS1oaWRkZW4gc2xvdCBlbGVtZW50LgorCitQQVNTOiBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ291dHNpZGUnKS5yb2xlLnRv
TG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2J1dHRvbicpID09PSB0cnVlCitQQVNTOiAhaW5zaWRlQnV0
dG9uIHx8IGluc2lkZUJ1dHRvbi5pc0lnbm9yZWQgPT09IHRydWUKK1BBU1M6IGluc2lkZUJ1dHRv
bi5yb2xlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2J1dHRvbicpID09PSB0cnVlCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQoraW5zaWRlIHNsb3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU0MjQ2NGRjODI1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbApAQCAtMCwwICsx
LDQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzx4LWJ1dHRvbiBpZD0ieC1idXR0b24iPjxi
dXR0b24gaWQ9Imluc2lkZSI+aW5zaWRlIHNsb3Q8L2J1dHRvbj48L3gtYnV0dG9uPgorCis8c2Ny
aXB0PgorY2xhc3MgWEJ1dHRvbiBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25zdHJ1Y3Rv
cigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2Rl
OiAib3BlbiIsIGRlbGVnYXRlc0ZvY3VzOiB0cnVlIH0pOworICAgICAgICBjb25zdCBmcmFnbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KCI8YnV0
dG9uIGlkPSdvdXRzaWRlJz5vdXRzaWRlIHNsb3Q8L2J1dHRvbj48c2xvdCBpZD0nc2xvdCcgYXJp
YS1oaWRkZW49J3RydWUnPjwvc2xvdD4iKTsKKyAgICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVu
ZChmcmFnbWVudC5jbG9uZU5vZGUodHJ1ZSkpOworICAgIH0KK30KK2N1c3RvbUVsZW1lbnRzLmRl
ZmluZSgieC1idXR0b24iLCBYQnV0dG9uKTsKKwordmFyIG91dHB1dCA9ICJUaGlzIHRlc3QgZW5z
dXJlcyB3ZSBkb24ndCBleHBvc2UgZWxlbWVudHMgd2l0aGluIGFuIGFyaWEtaGlkZGVuIHNsb3Qg
ZWxlbWVudC5cblxuIjsKKworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewor
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIG91dHB1dCArPSBleHBlY3Qo
ImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnb3V0c2lkZScp
LnJvbGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYnV0dG9uJykiLCAidHJ1ZSIpOworICAgIHZh
ciBpbnNpZGVCdXR0b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoImluc2lkZSIpOworICAgIG91dHB1dCArPSBleHBlY3QoIiFpbnNpZGVCdXR0b24gfHwg
aW5zaWRlQnV0dG9uLmlzSWdub3JlZCIsICJ0cnVlIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgieC1idXR0b24iKS5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJzbG90IikucmVt
b3ZlQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpOworICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgaW5zaWRl
QnV0dG9uID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJp
bnNpZGUiKTsKKyAgICAgICAgICAgIHJldHVybiBpbnNpZGVCdXR0b24gJiYgIWluc2lkZUJ1dHRv
bi5pc0lnbm9yZWQ7CisgICAgICAgIH0pOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJpbnNp
ZGVCdXR0b24ucm9sZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdidXR0b24nKSIsICJ0cnVlIik7
CisKKyAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyYzkxYmFhMWIzZGEuLjY1NWRiZmU2MDkz
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMjIs
NiArMjMyMiw3IEBAIGFjY2Vzc2liaWxpdHkvZWxlbWVudC1oYXNwb3B1cC5odG1sIFsgUGFzcyBd
CiBhY2Nlc3NpYmlsaXR5L2VtcHR5LXRleHQtdW5kZXItZWxlbWVudC1jYWNoZWQuaHRtbCBbIFBh
c3MgXQogYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWxldmVsLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2li
aWxpdHkvaGlkZGVuLWxhYmVsLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNs
b3QuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9odG1sNS1yZXF1aXJlZC1hdHRyaWJ1dGUu
aHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1yb2xlLmh0
bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470793</attachid>
            <date>2024-04-06 15:34:38 -0700</date>
            <delta_ts>2024-04-09 19:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256186-20240406153438.patch</filename>
            <type>text/plain</type>
            <size>14364</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBkMzBjOTc0NzdkMmE2NDhjNWY4NTRkZDQwN2YzZDUzYjFjMTczYTdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA2IEFwciAyMDI0IDEzOjE5OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IFNl
dHRpbmcgYXJpYS1oaWRkZW4gb24gYSBzbG90IGRvZXMgbm90IGhpZGUgdGhlIHNsb3RzCiBhc3Np
Z25lZCBub2RlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MTg2
CiByZGFyOi8vcHJvYmxlbS8xMDg3NjI2NTMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl
OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRml4IHRoaXMgYnkgY2hhbmdpbmcgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBSGlkZGVuIHRvIGNoZWNrIGlmIHRoZSBnaXZlbiBvYmpl
Y3QgaXMgd2l0aGluIGEgaGlkZGVuIHNsb3QuCgpUbyBoZWxwIGFjY29tcGxpc2ggdGhpcywgYSBu
ZXcgRWxlbWVudDo6YXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFSSUEgZnVuY3Rpb24gaXMgYWRk
ZWQsIGFzIGl0IGlzIG5lZWRlZCB0byBjaGVjayB0aGUKc2xvdCdzIGFyaWEtaGlkZGVuIGF0dHJp
YnV0ZSwgYW5kIHRoaXMgbG9naWMgd2FzIHJlcGVhdGVkIHNldmVyYWwgdGltZXMgdGhyb3VnaG91
dCBhY2Nlc3NpYmlsaXR5IGNvZGUuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVu
LXNsb3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hp
ZGRlbi1zbG90Lmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCiogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZToKQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmggc2hvdWxkIGhhdmUgYmVlbiBwcmVzZW50IGlu
IHRoaXMgZmlsZSwgYnV0Cndhc24ndCDigJQgdGhpcyBwYXRjaCBhZGRzIGl0LgoqIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKQ3VzdG9tRWxlbWVudERl
ZmF1bHRBUklBLmggc2hvdWxkIGhhdmUgYmVlbiB1bmRlciBQcml2YXRlIG1lbWJlcnNoaXAgdG8K
V2ViQ29yZSwgYnV0IHdhcyBQdWJsaWMuIFRoaXMgaXMgd3JvbmcgcGVyIGh0dHBzOi8vZ2l0aHVi
LmNvbS9XZWJLaXQvV2ViS2l0L2Jsb2IvbWFpbi9JbnRyb2R1Y3Rpb24ubWQjaG93LXRvLWFkZC1h
LW5ldy1oLW9yLWNwcC1maWxlLAphbmQgY2F1c2VkIGNvbXBpbGF0aW9uIGZhaWx1cmVzLiBJdCdz
IG5vdyBQcml2YXRlLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudCBjb25zdCk6CihX
ZWJDb3JlOjpub2RlSGFzUm9sZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldEF0
dHJpYnV0ZSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FSSUFIaWRk
ZW4gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVs
ZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzIGNvbnN0KToKKFdlYkNvcmU6
OkVsZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKTogRGVsZXRlZC4KKiBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
SW5saW5lcy5oOgooV2ViQ29yZTo6RWxlbWVudDo6YXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFS
SUEgY29uc3QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgICAgICAgICAgICAg
ICAgICB8ICAxICsKIC4uLi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiB8ICAyICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAg
fCAxNyArKy0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAg
ICAgfCAyMSArKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAg
ICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oICAgICAgICAgICAg
ICAgICAgfCAgMyArLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmggICAgICAg
ICAgIHwgMTEgKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90LWV4cGVjdGVkLnR4
dCAgICB8IDEwICsrKysKIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRt
bCAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zICAgICB8ICAxICsKIDEwIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlv
bnMoKyksIDI1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xvdC5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggMTEyNzFiNjJhYjQ3Li4yN2JiMDVkNjU5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtOTI1LDYgKzkyNSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaAogICAgIGRvbS9Db250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcklubGluZXMuaAogICAgIGRvbS9Dcm9zc09yaWdpbk1vZGUuaAorICAg
IGRvbS9DdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaAogICAgIGRvbS9DdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZS5oCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNU
aW1lU3RhbXAuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDI2NzcyOTk4ZGJlMi4uY2ZjNzJiMGRlNzJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODc5LDcg
KzM4NzksNyBAQAogCQk5QjBBQkNBRTIzNkJCNDMxMDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZC
QjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAxMTVFNkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIx
MjI5QzcyM0ZFNEQ2QTAwOENBNzUxIC8qIE1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTIyOUM2MjNGRTRENUYwMDhDQTc1MSAv
KiBNZWRpYVN0cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJOUIxNUYwRDUyOEM0NkQzNTAwNkI3RjMyIC8qIEN1c3RvbUVsZW1lbnREZWZh
dWx0QVJJQS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIxNUYwRDQyOEM0NkQxODAwNkI3RjMyIC8qIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQS5oICov
OyB9OworCQk5QjE1RjBENTI4QzQ2RDM1MDA2QjdGMzIgLyogQ3VzdG9tRWxlbWVudERlZmF1bHRB
UklBLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjE1
RjBENDI4QzQ2RDE4MDA2QjdGMzIgLyogQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyNERFOEUxNTE5
NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlDMjcgLyogSFRNTEJE
SUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyN0ZDNjAyMzREOUFEQjAwMzk0QTQ2IC8qIFdpbmRvd0V2
ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIyN0ZDNUUyMzREOUFEQTAwMzk0QTQ2IC8qIFdpbmRvd0V2ZW50TG9vcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMkQ4QTc5MTQ5OTdDQ0Yw
MEVDRUYzRSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGZhYzVmYzcyMzdiMy4u
MjdkZjc4ZDYxODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTMxMCwxNSArMzEwLDEwIEBAIEFYT2JqZWN0Q2FjaGU6On5BWE9iamVj
dENhY2hlKCkKIAogYm9vbCBBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KSBjb25zdAogewotICAgIGJvb2wgaGFzRGlhbG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZl
bGVtZW50LCAiZGlhbG9nIl9zKSB8fCBub2RlSGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9n
Il9zKTsKLSAgICBBdG9tU3RyaW5nIG1vZGFsVmFsdWUgPSBlbGVtZW50LmF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oYXJpYV9tb2RhbEF0dHIpOwotICAgIGlmIChtb2RhbFZhbHVlLmlz
TnVsbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkZWZhdWx0QVJJQSA9IGVsZW1lbnQuY3VzdG9t
RWxlbWVudERlZmF1bHRBUklBSWZFeGlzdHMoKSkKLSAgICAgICAgICAgIG1vZGFsVmFsdWUgPSBk
ZWZhdWx0QVJJQS0+dmFsdWVGb3JBdHRyaWJ1dGUoZWxlbWVudCwgYXJpYV9tb2RhbEF0dHIpOwor
ICAgIGlmIChub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgfHwgbm9kZUhhc1JvbGUo
JmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcykpIHsKKyAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFSSUEoYXJp
YV9tb2RhbEF0dHIpLCAidHJ1ZSJfcykpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgYm9vbCBpc0FyaWFNb2RhbCA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1v
ZGFsVmFsdWUsICJ0cnVlIl9zKTsKLSAgICBpZiAoaGFzRGlhbG9nUm9sZSAmJiBpc0FyaWFNb2Rh
bCkKLSAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBSZWZQdHIgZGlhbG9nID0gZHluYW1pY0Rv
d25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KTsKICAgICByZXR1cm4gZGlhbG9nICYm
IGRpYWxvZy0+aXNNb2RhbCgpOwpAQCAtNTg1LDExICs1ODAsNyBAQCBib29sIG5vZGVIYXNSb2xl
KE5vZGUqIG5vZGUsIFN0cmluZ1ZpZXcgcm9sZSkKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gcm9sZVZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihyb2xlQXR0cik7Ci0gICAgaWYgKHJvbGVWYWx1ZS5pc051
bGwoKSkgewotICAgICAgICBpZiAoYXV0byogZGVmYXVsdEFSSUEgPSBlbGVtZW50LT5jdXN0b21F
bGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAgICAgICAgICAgcm9sZVZhbHVlID0gZGVm
YXVsdEFSSUEtPnZhbHVlRm9yQXR0cmlidXRlKCplbGVtZW50LCByb2xlQXR0cik7Ci0gICAgfQor
ICAgIGF1dG8gcm9sZVZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRlSW5jbHVkaW5nRGVmYXVsdEFS
SUEocm9sZUF0dHIpOwogICAgIGlmIChyb2xlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gcm9s
ZVZhbHVlLmlzRW1wdHkoKTsKICAgICBpZiAocm9sZVZhbHVlLmlzRW1wdHkoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmlu
ZGV4IDI2NWUzZTNmNjc4NC4uMGY1MGE5MDZiYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI1MzYsMTQgKzI1
MzYsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omhhc0F0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGUpIGNvbnN0CiAKIGNvbnN0IEF0b21TdHJpbmcmIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmdldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUp
IGNvbnN0CiB7Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpKSB7Ci0g
ICAgICAgIGF1dG8mIHZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihhdHRyaWJ1dGUpOwotICAgICAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQotICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlOwotICAgICAgICBpZiAoYXV0byogZGVmYXVsdEFSSUEgPSBlbGVtZW50
LT5jdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAgICAgICAgICAgcmV0dXJu
IGRlZmF1bHRBUklBLT52YWx1ZUZvckF0dHJpYnV0ZSgqZWxlbWVudCwgYXR0cmlidXRlKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgUmVmUHRyIGVsZW1lbnQgPSB0aGlzLT5l
bGVtZW50KCk7CisgICAgcmV0dXJuIGVsZW1lbnQgPyBlbGVtZW50LT5hdHRyaWJ1dGVJbmNsdWRp
bmdEZWZhdWx0QVJJQShhdHRyaWJ1dGUpIDogbnVsbEF0b20oKTsKIH0KIAogU3RyaW5nIEFjY2Vz
c2liaWxpdHlPYmplY3Q6Om5hbWVBdHRyaWJ1dGUoKSBjb25zdApAQCAtMzk4OSw3ICszOTgzLDE2
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZEJ5RGVm
YXVsdCgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNBUklBSGlkZGVuKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ2V0QXR0
cmlidXRlKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIl9zKSAmJiAhaXNGb2N1c2VkKCk7CisgICAg
aWYgKGlzRm9jdXNlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBub2Rl
ID0gdGhpcy0+bm9kZSgpOworICAgIGlmIChhdXRvKiBhc3NpZ25lZFNsb3QgPSBub2RlID8gbm9k
ZS0+YXNzaWduZWRTbG90KCkgOiBudWxscHRyKSB7CisgICAgICAgIGlmIChlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShhc3NpZ25lZFNsb3QtPmF0dHJpYnV0ZUluY2x1ZGluZ0RlZmF1bHRB
UklBKGFyaWFfaGlkZGVuQXR0ciksICJ0cnVlIl9zKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShnZXRB
dHRyaWJ1dGUoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiX3MpOwogfQogCiAvLyBBUklBIGNvbXBv
bmVudCBvZiBoaWRkZW4gZGVmaW5pdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjNjcw
YmE3M2VlNmEuLmIzMmFmMTNkMmRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzEzOCw3
ICszMTM4LDcgQEAgQ2hlY2tlZFJlZjxDdXN0b21FbGVtZW50RGVmYXVsdEFSSUE+IEVsZW1lbnQ6
OmNoZWNrZWRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKQogICAgIHJldHVybiBjdXN0b21FbGVt
ZW50RGVmYXVsdEFSSUEoKTsKIH0KIAotQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBKiBFbGVtZW50
OjpjdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpCitDdXN0b21FbGVtZW50RGVmYXVs
dEFSSUEqIEVsZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCkgY29uc3QK
IHsKICAgICByZXR1cm4gaXNQcmVjdXN0b21pemVkT3JEZWZpbmVkQ3VzdG9tRWxlbWVudCgpICYm
IGhhc1JhcmVEYXRhKCkgPyBlbGVtZW50UmFyZURhdGEoKS0+Y3VzdG9tRWxlbWVudERlZmF1bHRB
UklBKCkgOiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDRmY2FlYmRjZWJmLi4y
NWQ1OTAwMzJlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTY2LDYgKzE2Niw3IEBAIHB1Ymxp
YzoKICAgICAvLyBhdHRyaWJ1dGUgb3Igb25lIG9mIHRoZSBTVkcgYW5pbWF0YWJsZSBhdHRyaWJ1
dGVzLgogICAgIGlubGluZSBib29sIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGlubGluZSBjb25zdCBBdG9tU3RyaW5n
JiBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdDsKKyAgICBpbmxpbmUgY29uc3QgQXRvbVN0cmluZyYgYXR0cmlidXRlSW5jbHVkaW5nRGVm
YXVsdEFSSUEoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogCiAjaWYgRFVNUF9OT0RFX1NU
QVRJU1RJQ1MKICAgICBib29sIGhhc05hbWVkTm9kZU1hcCgpIGNvbnN0OwpAQCAtMzgxLDcgKzM4
Miw3IEBAIHB1YmxpYzoKIAogICAgIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQSYgY3VzdG9tRWxl
bWVudERlZmF1bHRBUklBKCk7CiAgICAgQ2hlY2tlZFJlZjxDdXN0b21FbGVtZW50RGVmYXVsdEFS
SUE+IGNoZWNrZWRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKTsKLSAgICBDdXN0b21FbGVtZW50
RGVmYXVsdEFSSUEqIGN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCk7CisgICAgQ3Vz
dG9tRWxlbWVudERlZmF1bHRBUklBKiBjdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygp
IGNvbnN0OwogCiAgICAgYm9vbCBpc0luQWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBpc1Vz
ZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEluQWN0aXZlQ2hhaW4oKTsg
fQogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgp
ICYmIGlzVXNlckFjdGlvbkVsZW1lbnRBY3RpdmUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudElu
bGluZXMuaAppbmRleCAxMzFjNjQ5YmE4MDIuLjk2ZDg2Njk0MWU1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRJbmxpbmVzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCIKICNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudERhdGEuaCIK
QEAgLTk4LDYgKzk5LDE2IEBAIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBFbGVtZW50OjphdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnN0IFF1YWxpZmllCiAgICAgcmV0dXJuIG51
bGxBdG9tKCk7CiB9CiAKK2lubGluZSBjb25zdCBBdG9tU3RyaW5nJiBFbGVtZW50OjphdHRyaWJ1
dGVJbmNsdWRpbmdEZWZhdWx0QVJJQShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAor
eworICAgIGF1dG8mIHZhbHVlID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihuYW1l
KTsKKyAgICBpZiAoIXZhbHVlLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gdmFsdWU7CisKKyAg
ICBhdXRvKiBkZWZhdWx0QVJJQSA9IGN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCk7
CisgICAgcmV0dXJuIGRlZmF1bHRBUklBID8gZGVmYXVsdEFSSUEtPnZhbHVlRm9yQXR0cmlidXRl
KCp0aGlzLCBuYW1lKSA6IG51bGxBdG9tKCk7Cit9CisKIGlubGluZSBVUkwgRWxlbWVudDo6Z2V0
VVJMQXR0cmlidXRlRm9yQmluZGluZ3MoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QK
IHsKICAgICByZXR1cm4gcHJvdGVjdGVkRG9jdW1lbnQoKS0+bWFza2VkVVJMRm9yQmluZGluZ3NJ
Zk5lZWRlZChnZXRVUkxBdHRyaWJ1dGUobmFtZSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xvdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2hpZGRlbi1zbG90LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjFiNjFmMzNkYTdiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGRvbid0IGV4cG9zZSBlbGVtZW50cyB3aXRoaW4g
YW4gYXJpYS1oaWRkZW4gc2xvdCBlbGVtZW50LgorCitQQVNTOiBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ291dHNpZGUnKS5yb2xlLnRvTG93ZXJDYXNlKCku
aW5jbHVkZXMoJ2J1dHRvbicpID09PSB0cnVlCitQQVNTOiAhaW5zaWRlQnV0dG9uIHx8IGluc2lk
ZUJ1dHRvbi5pc0lnbm9yZWQgPT09IHRydWUKK1BBU1M6IGluc2lkZUJ1dHRvbi5yb2xlLnRvTG93
ZXJDYXNlKCkuaW5jbHVkZXMoJ2J1dHRvbicpID09PSB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQoraW5zaWRlIHNsb3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmU0MjQ2NGRjODI1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisKKzx4LWJ1dHRvbiBpZD0ieC1idXR0b24iPjxidXR0b24gaWQ9Imlu
c2lkZSI+aW5zaWRlIHNsb3Q8L2J1dHRvbj48L3gtYnV0dG9uPgorCis8c2NyaXB0PgorY2xhc3Mg
WEJ1dHRvbiBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAg
ICAgc3VwZXIoKTsKKyAgICAgICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIsIGRl
bGVnYXRlc0ZvY3VzOiB0cnVlIH0pOworICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50
LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KCI8YnV0dG9uIGlkPSdvdXRz
aWRlJz5vdXRzaWRlIHNsb3Q8L2J1dHRvbj48c2xvdCBpZD0nc2xvdCcgYXJpYS1oaWRkZW49J3Ry
dWUnPjwvc2xvdD4iKTsKKyAgICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZChmcmFnbWVudC5j
bG9uZU5vZGUodHJ1ZSkpOworICAgIH0KK30KK2N1c3RvbUVsZW1lbnRzLmRlZmluZSgieC1idXR0
b24iLCBYQnV0dG9uKTsKKwordmFyIG91dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24n
dCBleHBvc2UgZWxlbWVudHMgd2l0aGluIGFuIGFyaWEtaGlkZGVuIHNsb3QgZWxlbWVudC5cblxu
IjsKKworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIG91dHB1dCArPSBleHBlY3QoImFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnb3V0c2lkZScpLnJvbGUudG9Mb3dl
ckNhc2UoKS5pbmNsdWRlcygnYnV0dG9uJykiLCAidHJ1ZSIpOworICAgIHZhciBpbnNpZGVCdXR0
b24gPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImluc2lk
ZSIpOworICAgIG91dHB1dCArPSBleHBlY3QoIiFpbnNpZGVCdXR0b24gfHwgaW5zaWRlQnV0dG9u
LmlzSWdub3JlZCIsICJ0cnVlIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1i
dXR0b24iKS5zaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCJzbG90IikucmVtb3ZlQXR0cmlidXRl
KCJhcmlhLWhpZGRlbiIpOworICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgaW5zaWRlQnV0dG9uID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbnNpZGUiKTsKKyAg
ICAgICAgICAgIHJldHVybiBpbnNpZGVCdXR0b24gJiYgIWluc2lkZUJ1dHRvbi5pc0lnbm9yZWQ7
CisgICAgICAgIH0pOworICAgICAgICBvdXRwdXQgKz0gZXhwZWN0KCJpbnNpZGVCdXR0b24ucm9s
ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdidXR0b24nKSIsICJ0cnVlIik7CisKKyAgICAgICAg
ZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMCk7Cit9Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAyYzkxYmFhMWIzZGEuLjY1NWRiZmU2MDkzZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMjIsNiArMjMyMiw3IEBA
IGFjY2Vzc2liaWxpdHkvZWxlbWVudC1oYXNwb3B1cC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmls
aXR5L2VtcHR5LXRleHQtdW5kZXItZWxlbWVudC1jYWNoZWQuaHRtbCBbIFBhc3MgXQogYWNjZXNz
aWJpbGl0eS9oZWFkaW5nLWxldmVsLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvaGlkZGVu
LWxhYmVsLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QuaHRtbCBbIFBh
c3MgXQogYWNjZXNzaWJpbGl0eS9odG1sNS1yZXF1aXJlZC1hdHRyaWJ1dGUuaHRtbCBbIFBhc3Mg
XQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1yb2xlLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470843</attachid>
            <date>2024-04-09 19:00:48 -0700</date>
            <delta_ts>2024-04-10 22:38:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-256186-20240409190047.patch</filename>
            <type>text/plain</type>
            <size>14245</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBkYzRhODFjNWY0OTc5NGY1MTNjOWQ2YTgzMDg5NGUzNzdjZmM2ZTdlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA2IEFwciAyMDI0IDEzOjE5OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IFNl
dHRpbmcgYXJpYS1oaWRkZW4gb24gYSBzbG90IGRvZXMgbm90IGhpZGUgdGhlIHNsb3RzCiBhc3Np
Z25lZCBub2RlcyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MTg2
CiByZGFyOi8vcHJvYmxlbS8xMDg3NjI2NTMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl
OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKClJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlei4KCkZpeCB0aGlzIGJ5IGNoYW5naW5nIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzQVJJQUhpZGRlbiB0byBjaGVjayBpZiB0aGUgZ2l2ZW4gb2Jq
ZWN0IGlzIHdpdGhpbiBhIGhpZGRlbiBzbG90LgoKVG8gaGVscCBhY2NvbXBsaXNoIHRoaXMsIGEg
bmV3IEVsZW1lbnQ6OmF0dHJpYnV0ZVdpdGhEZWZhdWx0QVJJQSBmdW5jdGlvbiBpcyBhZGRlZCwg
YXMgaXQgaXMgbmVlZGVkIHRvIGNoZWNrIHRoZQpzbG90J3MgYXJpYS1oaWRkZW4gYXR0cmlidXRl
LCBhbmQgdGhpcyBsb2dpYyB3YXMgcmVwZWF0ZWQgc2V2ZXJhbCB0aW1lcyB0aHJvdWdob3V0IGFj
Y2Vzc2liaWxpdHkgY29kZS4KCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xv
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGlkZGVu
LXNsb3QuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlOgpD
dXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCBzaG91bGQgaGF2ZSBiZWVuIHByZXNlbnQgaW4gdGhp
cyBmaWxlLCBidXQKd2Fzbid0IOKAlCB0aGlzIHBhdGNoIGFkZHMgaXQuCiogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgpDdXN0b21FbGVtZW50RGVmYXVs
dEFSSUEuaCBzaG91bGQgaGF2ZSBiZWVuIHVuZGVyIFByaXZhdGUgbWVtYmVyc2hpcCB0bwpXZWJD
b3JlLCBidXQgd2FzIFB1YmxpYy4gVGhpcyBpcyB3cm9uZyBwZXIgaHR0cHM6Ly9naXRodWIuY29t
L1dlYktpdC9XZWJLaXQvYmxvYi9tYWluL0ludHJvZHVjdGlvbi5tZCNob3ctdG8tYWRkLWEtbmV3
LWgtb3ItY3BwLWZpbGUsCmFuZCBjYXVzZWQgY29tcGlsYXRpb24gZmFpbHVyZXMuIEl0J3Mgbm93
IFByaXZhdGUuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKFdlYkNv
cmU6Om5vZGVIYXNSb2xlKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Z2V0QXR0cmli
dXRlIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVJJQUhpZGRlbiBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVu
dDo6Y3VzdG9tRWxlbWVudERlZmF1bHRBUklBSWZFeGlzdHMgY29uc3QpOgooV2ViQ29yZTo6RWxl
bWVudDo6Y3VzdG9tRWxlbWVudERlZmF1bHRBUklBSWZFeGlzdHMpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxp
bmVzLmg6CihXZWJDb3JlOjpFbGVtZW50OjphdHRyaWJ1dGVXaXRoRGVmYXVsdEFSSUEgY29uc3Qp
OgotLS0KIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgICAgICAgICAgICAgICAgICB8ICAx
ICsKIC4uLi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiB8ICAyICst
CiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCAxNSArLS0t
LS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwICAgICB8IDIxICsr
KysrLS0tLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAgICAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggICAgICAgICAgICAgICAgICB8ICAz
ICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudElubGluZXMuaCAgICAgICAgICAgfCAxMSAr
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvaGlkZGVuLXNsb3QtZXhwZWN0ZWQudHh0ICAgIHwgMTAg
KysrKwogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oaWRkZW4tc2xvdC5odG1sICAgIHwgNDYg
KysrKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMgICAgIHwgIDEgKwogMTAgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMjUg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9oaWRkZW4tc2xvdC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAx
MTI3MWI2MmFiNDcuLjI3YmIwNWQ2NTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC05MjUsNiAr
OTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGRvbS9D
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVySW5saW5lcy5oCiAgICAgZG9tL0Nyb3NzT3JpZ2luTW9kZS5oCisgICAgZG9tL0N1c3Rv
bUVsZW1lbnREZWZhdWx0QVJJQS5oCiAgICAgZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgKICAgICBkb20vRE9NRXhjZXB0aW9uLmgKICAgICBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZGVjZWExNzczMmFkLi40MTJlNWRiZmU5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4NzksNyArMzg3OSw3IEBA
CiAJCTlCMEFCQ0FFMjM2QkI0MzEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjBBQkNBQzIzNkJCNDBBMDBCNDUw
ODUgLyogVGFza1NvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMTIyOUM0MjNGRTRCRDIwMDhDQTc1MSAvKiBBdWRpb0Rlc3RpbmF0aW9u
Q29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MzE1MTg2MjM1Nzc0NUUwMDExNUU2RSAvKiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjEyMjlDNzIzRkU0
RDZBMDA4Q0E3NTEgLyogTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMjI5QzYyM0ZFNEQ1RjAwOENBNzUxIC8qIE1lZGlhU3Ry
YXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5QjE1RjBENTI4QzQ2RDM1MDA2QjdGMzIgLyogQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjE1RjBENDI4
QzQ2RDE4MDA2QjdGMzIgLyogQ3VzdG9tRWxlbWVudERlZmF1bHRBUklBLmggKi87IH07CisJCTlC
MTVGMEQ1MjhDNDZEMzUwMDZCN0YzMiAvKiBDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTVGMEQ0MjhDNDZE
MTgwMDZCN0YzMiAvKiBDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjI0REU4RTE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5o
ICovOyB9OwogCQk5QjI3RkM2MDIzNEQ5QURCMDAzOTRBNDYgLyogV2luZG93RXZlbnRMb29wLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI3RkM1RTIz
NEQ5QURBMDAzOTRBNDYgLyogV2luZG93RXZlbnRMb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNFIC8q
IFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggZmFjNWZjNzIzN2IzLi44ZGNhOTZmMDhi
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMzEwLDE0ICszMTAsNyBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAK
IGJvb2wgQVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKIHsKLSAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRp
YWxvZyJfcykgfHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcyk7Ci0gICAg
QXRvbVN0cmluZyBtb2RhbFZhbHVlID0gZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKGFyaWFfbW9kYWxBdHRyKTsKLSAgICBpZiAobW9kYWxWYWx1ZS5pc051bGwoKSkgewot
ICAgICAgICBpZiAoYXV0byogZGVmYXVsdEFSSUEgPSBlbGVtZW50LmN1c3RvbUVsZW1lbnREZWZh
dWx0QVJJQUlmRXhpc3RzKCkpCi0gICAgICAgICAgICBtb2RhbFZhbHVlID0gZGVmYXVsdEFSSUEt
PnZhbHVlRm9yQXR0cmlidXRlKGVsZW1lbnQsIGFyaWFfbW9kYWxBdHRyKTsKLSAgICB9Ci0gICAg
Ym9vbCBpc0FyaWFNb2RhbCA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGFsVmFs
dWUsICJ0cnVlIl9zKTsKLSAgICBpZiAoaGFzRGlhbG9nUm9sZSAmJiBpc0FyaWFNb2RhbCkKKyAg
ICBpZiAoKG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIl9zKSB8fCBub2RlSGFzUm9sZSgm
ZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKSkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoZWxlbWVudC5hdHRyaWJ1dGVXaXRoRGVmYXVsdEFSSUEoYXJpYV9tb2RhbEF0dHIpLCAidHJ1
ZSJfcykpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgUmVmUHRyIGRpYWxvZyA9IGR5bmFt
aWNEb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCk7CkBAIC01ODUsMTEgKzU3OCw3
IEBAIGJvb2wgbm9kZUhhc1JvbGUoTm9kZSogbm9kZSwgU3RyaW5nVmlldyByb2xlKQogICAgIGlm
ICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byByb2xlVmFsdWUg
PSBlbGVtZW50LT5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHJvbGVBdHRyKTsKLSAg
ICBpZiAocm9sZVZhbHVlLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkZWZhdWx0QVJJ
QSA9IGVsZW1lbnQtPmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCkpCi0gICAgICAg
ICAgICByb2xlVmFsdWUgPSBkZWZhdWx0QVJJQS0+dmFsdWVGb3JBdHRyaWJ1dGUoKmVsZW1lbnQs
IHJvbGVBdHRyKTsKLSAgICB9CisgICAgYXV0byByb2xlVmFsdWUgPSBlbGVtZW50LT5hdHRyaWJ1
dGVXaXRoRGVmYXVsdEFSSUEocm9sZUF0dHIpOwogICAgIGlmIChyb2xlLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gcm9sZVZhbHVlLmlzRW1wdHkoKTsKICAgICBpZiAocm9sZVZhbHVlLmlzRW1w
dHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IGM3NWY0YWRlYWM1NC4uYzZjMzU5OWVhNmNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTI1MzYsMTQgKzI1MzYsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omhhc0F0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpIGNvbnN0CiAKIGNvbnN0IEF0b21T
dHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgaWYgKFJlZlB0ciBlbGVtZW50ID0gdGhpcy0+
ZWxlbWVudCgpKSB7Ci0gICAgICAgIGF1dG8mIHZhbHVlID0gZWxlbWVudC0+YXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihhdHRyaWJ1dGUpOwotICAgICAgICBpZiAoIXZhbHVlLmlzTnVs
bCgpKQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICBpZiAoYXV0byogZGVmYXVs
dEFSSUEgPSBlbGVtZW50LT5jdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpKQotICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRBUklBLT52YWx1ZUZvckF0dHJpYnV0ZSgqZWxlbWVudCwg
YXR0cmlidXRlKTsKLSAgICB9Ci0gICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgUmVmUHRyIGVs
ZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisgICAgcmV0dXJuIGVsZW1lbnQgPyBlbGVtZW50LT5h
dHRyaWJ1dGVXaXRoRGVmYXVsdEFSSUEoYXR0cmlidXRlKSA6IG51bGxBdG9tKCk7CiB9CiAKIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpuYW1lQXR0cmlidXRlKCkgY29uc3QKQEAgLTM5ODks
NyArMzk4MywxNiBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlJc0ln
bm9yZWRCeURlZmF1bHQoKSBjb25zdAogCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQVJJ
QUhpZGRlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIpLCAidHJ1ZSJfcykgJiYgIWlzRm9jdXNl
ZCgpOworICAgIGlmIChpc0ZvY3VzZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
YXV0byogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoYXV0byogYXNzaWduZWRTbG90ID0g
bm9kZSA/IG5vZGUtPmFzc2lnbmVkU2xvdCgpIDogbnVsbHB0cikgeworICAgICAgICBpZiAoZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoYXNzaWduZWRTbG90LT5hdHRyaWJ1dGVXaXRoRGVm
YXVsdEFSSUEoYXJpYV9oaWRkZW5BdHRyKSwgInRydWUiX3MpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGdldEF0dHJpYnV0ZShhcmlhX2hpZGRlbkF0dHIpLCAidHJ1ZSJfcyk7CiB9CiAKIC8vIEFSSUEg
Y29tcG9uZW50IG9mIGhpZGRlbiBkZWZpbml0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGM2NzBiYTczZWU2YS4uYjMyYWYxM2QyZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0z
MTM4LDcgKzMxMzgsNyBAQCBDaGVja2VkUmVmPEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQT4gRWxl
bWVudDo6Y2hlY2tlZEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQSgpCiAgICAgcmV0dXJuIGN1c3Rv
bUVsZW1lbnREZWZhdWx0QVJJQSgpOwogfQogCi1DdXN0b21FbGVtZW50RGVmYXVsdEFSSUEqIEVs
ZW1lbnQ6OmN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCkKK0N1c3RvbUVsZW1lbnRE
ZWZhdWx0QVJJQSogRWxlbWVudDo6Y3VzdG9tRWxlbWVudERlZmF1bHRBUklBSWZFeGlzdHMoKSBj
b25zdAogewogICAgIHJldHVybiBpc1ByZWN1c3RvbWl6ZWRPckRlZmluZWRDdXN0b21FbGVtZW50
KCkgJiYgaGFzUmFyZURhdGEoKSA/IGVsZW1lbnRSYXJlRGF0YSgpLT5jdXN0b21FbGVtZW50RGVm
YXVsdEFSSUEoKSA6IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAwNGZjYWViZGNl
YmYuLmYzYzk5MDRiMzlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0xNjYsNiArMTY2LDcgQEAg
cHVibGljOgogICAgIC8vIGF0dHJpYnV0ZSBvciBvbmUgb2YgdGhlIFNWRyBhbmltYXRhYmxlIGF0
dHJpYnV0ZXMuCiAgICAgaW5saW5lIGJvb2wgaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CiAgICAgaW5saW5lIGNvbnN0IEF0b21T
dHJpbmcmIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0OworICAgIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVXaXRoRGVm
YXVsdEFSSUEoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogCiAjaWYgRFVNUF9OT0RFX1NU
QVRJU1RJQ1MKICAgICBib29sIGhhc05hbWVkTm9kZU1hcCgpIGNvbnN0OwpAQCAtMzgxLDcgKzM4
Miw3IEBAIHB1YmxpYzoKIAogICAgIEN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQSYgY3VzdG9tRWxl
bWVudERlZmF1bHRBUklBKCk7CiAgICAgQ2hlY2tlZFJlZjxDdXN0b21FbGVtZW50RGVmYXVsdEFS
SUE+IGNoZWNrZWRDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEoKTsKLSAgICBDdXN0b21FbGVtZW50
RGVmYXVsdEFSSUEqIGN1c3RvbUVsZW1lbnREZWZhdWx0QVJJQUlmRXhpc3RzKCk7CisgICAgQ3Vz
dG9tRWxlbWVudERlZmF1bHRBUklBKiBjdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygp
IGNvbnN0OwogCiAgICAgYm9vbCBpc0luQWN0aXZlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBpc1Vz
ZXJBY3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEluQWN0aXZlQ2hhaW4oKTsg
fQogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgp
ICYmIGlzVXNlckFjdGlvbkVsZW1lbnRBY3RpdmUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudElu
bGluZXMuaAppbmRleCAxMzFjNjQ5YmE4MDIuLjU3NTQ5YWU4Zjk3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRJbmxpbmVzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJDdXN0b21FbGVtZW50RGVmYXVsdEFSSUEuaCIKICNpbmNsdWRlICJEb2N1bWVudElu
bGluZXMuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudERhdGEuaCIK
QEAgLTk4LDYgKzk5LDE2IEBAIGlubGluZSBjb25zdCBBdG9tU3RyaW5nJiBFbGVtZW50OjphdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNvbnN0IFF1YWxpZmllCiAgICAgcmV0dXJuIG51
bGxBdG9tKCk7CiB9CiAKK2lubGluZSBjb25zdCBBdG9tU3RyaW5nJiBFbGVtZW50OjphdHRyaWJ1
dGVXaXRoRGVmYXVsdEFSSUEoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK3sKKyAg
ICBhdXRvJiB2YWx1ZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24obmFtZSk7Cisg
ICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHZhbHVlOworCisgICAgYXV0
byogZGVmYXVsdEFSSUEgPSBjdXN0b21FbGVtZW50RGVmYXVsdEFSSUFJZkV4aXN0cygpOworICAg
IHJldHVybiBkZWZhdWx0QVJJQSA/IGRlZmF1bHRBUklBLT52YWx1ZUZvckF0dHJpYnV0ZSgqdGhp
cywgbmFtZSkgOiBudWxsQXRvbSgpOworfQorCiBpbmxpbmUgVVJMIEVsZW1lbnQ6OmdldFVSTEF0
dHJpYnV0ZUZvckJpbmRpbmdzKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHByb3RlY3RlZERvY3VtZW50KCktPm1hc2tlZFVSTEZvckJpbmRpbmdzSWZOZWVk
ZWQoZ2V0VVJMQXR0cmlidXRlKG5hbWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvaGlkZGVuLXNsb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9oaWRkZW4tc2xvdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi4xYjYxZjMzZGE3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBleHBvc2UgZWxlbWVudHMgd2l0aGluIGFuIGFy
aWEtaGlkZGVuIHNsb3QgZWxlbWVudC4KKworUEFTUzogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdvdXRzaWRlJykucm9sZS50b0xvd2VyQ2FzZSgpLmluY2x1
ZGVzKCdidXR0b24nKSA9PT0gdHJ1ZQorUEFTUzogIWluc2lkZUJ1dHRvbiB8fCBpbnNpZGVCdXR0
b24uaXNJZ25vcmVkID09PSB0cnVlCitQQVNTOiBpbnNpZGVCdXR0b24ucm9sZS50b0xvd2VyQ2Fz
ZSgpLmluY2x1ZGVzKCdidXR0b24nKSA9PT0gdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK2luc2lkZSBzbG90CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi5lNDI0NjRkYzgyNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8eC1idXR0b24gaWQ9IngtYnV0dG9uIj48YnV0dG9uIGlkPSJpbnNpZGUi
Pmluc2lkZSBzbG90PC9idXR0b24+PC94LWJ1dHRvbj4KKworPHNjcmlwdD4KK2NsYXNzIFhCdXR0
b24gZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1
cGVyKCk7CisgICAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iLCBkZWxlZ2F0
ZXNGb2N1czogdHJ1ZSB9KTsKKyAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVh
dGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCgiPGJ1dHRvbiBpZD0nb3V0c2lkZSc+
b3V0c2lkZSBzbG90PC9idXR0b24+PHNsb3QgaWQ9J3Nsb3QnIGFyaWEtaGlkZGVuPSd0cnVlJz48
L3Nsb3Q+Iik7CisgICAgICAgIHRoaXMuc2hhZG93Um9vdC5hcHBlbmQoZnJhZ21lbnQuY2xvbmVO
b2RlKHRydWUpKTsKKyAgICB9Cit9CitjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtYnV0dG9uIiwg
WEJ1dHRvbik7CisKK3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMgd2UgZG9uJ3QgZXhw
b3NlIGVsZW1lbnRzIHdpdGhpbiBhbiBhcmlhLWhpZGRlbiBzbG90IGVsZW1lbnQuXG5cbiI7CisK
K2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBvdXRwdXQgKz0gZXhwZWN0KCJhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ291dHNpZGUnKS5yb2xlLnRvTG93ZXJDYXNl
KCkuaW5jbHVkZXMoJ2J1dHRvbicpIiwgInRydWUiKTsKKyAgICB2YXIgaW5zaWRlQnV0dG9uID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbnNpZGUiKTsK
KyAgICBvdXRwdXQgKz0gZXhwZWN0KCIhaW5zaWRlQnV0dG9uIHx8IGluc2lkZUJ1dHRvbi5pc0ln
bm9yZWQiLCAidHJ1ZSIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtYnV0dG9u
Iikuc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgic2xvdCIpLnJlbW92ZUF0dHJpYnV0ZSgiYXJp
YS1oaWRkZW4iKTsKKyAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBh
d2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgIGluc2lkZUJ1dHRvbiA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiaW5zaWRlIik7CisgICAgICAg
ICAgICByZXR1cm4gaW5zaWRlQnV0dG9uICYmICFpbnNpZGVCdXR0b24uaXNJZ25vcmVkOworICAg
ICAgICB9KTsKKyAgICAgICAgb3V0cHV0ICs9IGV4cGVjdCgiaW5zaWRlQnV0dG9uLnJvbGUudG9M
b3dlckNhc2UoKS5pbmNsdWRlcygnYnV0dG9uJykiLCAidHJ1ZSIpOworCisgICAgICAgIGRlYnVn
KG91dHB1dCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDApOworfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNGM4MjYwOGZjMTk4Li5lYzU5NmI3NGM4YzIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzI0LDYgKzIzMjQsNyBAQCBhY2Nl
c3NpYmlsaXR5L2VsZW1lbnQtaGFzcG9wdXAuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9l
bXB0eS10ZXh0LXVuZGVyLWVsZW1lbnQtY2FjaGVkLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxp
dHkvaGVhZGluZy1sZXZlbC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2hpZGRlbi1sYWJl
bC5odG1sIFsgUGFzcyBdCithY2Nlc3NpYmlsaXR5L2hpZGRlbi1zbG90Lmh0bWwgWyBQYXNzIF0K
IGFjY2Vzc2liaWxpdHkvaHRtbDUtcmVxdWlyZWQtYXR0cmlidXRlLmh0bWwgWyBQYXNzIF0KIGFj
Y2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwgWyBQ
YXNzIF0KIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGgtcm9sZS5odG1sIFsgUGFzcyBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>