<?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>266268</bug_id>
          
          <creation_ts>2023-12-11 20:21:43 -0800</creation_ts>
          <short_desc>AX: Serve relatedObjectIdsFor off of the main thread</short_desc>
          <delta_ts>2023-12-14 10:30:56 -0800</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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Hoffman">jhoffman23</reporter>
          <assigned_to name="Joshua Hoffman">jhoffman23</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tyler_w</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1998870</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-11 20:21:43 -0800</bug_when>
    <thetext>AXIsolatedTRee::relatedObjectIdsFor can currently hit the main thread. We should cache this value appropriately to always serve it on the AX thread instead. 

rdar://116133758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998871</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-12-11 20:21:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/119532658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998872</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-11 20:22:16 -0800</bug_when>
    <thetext>rdar://116133758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998880</commentid>
    <comment_count>3</comment_count>
      <attachid>468993</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-11 21:18:53 -0800</bug_when>
    <thetext>Created attachment 468993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998887</commentid>
    <comment_count>4</comment_count>
      <attachid>468995</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-11 21:41:40 -0800</bug_when>
    <thetext>Created attachment 468995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998895</commentid>
    <comment_count>5</comment_count>
      <attachid>468995</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2023-12-11 22:33:08 -0800</bug_when>
    <thetext>Comment on attachment 468995
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:1317
&gt; +        setRelations(cache-&gt;relations());

Do we need to set this variable to false after processing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998900</commentid>
    <comment_count>6</comment_count>
      <attachid>468995</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-11 23:14:24 -0800</bug_when>
    <thetext>Comment on attachment 468995
Patch

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

&gt;&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:1317
&gt;&gt; +        setRelations(cache-&gt;relations());
&gt; 
&gt; Do we need to set this variable to false after processing?

Right now I set it to false above in AXIsolatedTree::applyPendingChanges, when we actually set m_relations. But, this does make me think we might need two flags: 
(1) m_relationsNeedUpdate, which determines whether we should copy from the cache into m_pendingRelations.
(2) m_relationsNeedProcessing to decide whether we should copy m_pendingRelations to m_relations.

Splitting these are important because we could have some timing issue where processQueuedNodeUpdates() is called after applyPendingChanges. In that case, we wouldn&apos;t set m_pendingRelations because m_relationsNeedUpdate is false. I will make that update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998959</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-12-12 06:55:52 -0800</bug_when>
    <thetext>(In reply to Joshua Hoffman from comment #4)
&gt; Created attachment 468995 [details]
&gt; Patch

diff --git a/Source/WebCore/accessibility/AXObjectCache.cpp b/Source/WebCore/accessibility/AXObjectCache.cpp
index c1b5872cff5b..ab962911373d 100644
--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ b/Source/WebCore/accessibility/AXObjectCache.cpp
@@ -4821,6 +4821,7 @@ void AXObjectCache::relationsNeedUpdate(bool needUpdate)
     if (m_relationsNeedUpdate) {
         if (auto tree = AXIsolatedTree::treeForPageID(m_pageID))
             tree-&gt;relationsNeedUpdate(true);
+        startUpdateTreeSnapshotTimer();
     }
 #endif
 }
diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
index 17ff6d748058..ba6fffc6b6aa 100644
--- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
+++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
@@ -160,6 +160,8 @@ Ref&lt;AXIsolatedTree&gt; AXIsolatedTree::create(AXObjectCache&amp; axObjectCache)

     tree-&gt;updateLoadingProgress(axObjectCache.loadingProgress());

+    tree-&gt;setRelations(axObjectCache.relations());
+
     // Now that the tree is ready to take client requests, add it to the tree maps so that it can be found.
     storeTree(axObjectCache, tree);
     return tree;
@@ -975,6 +977,15 @@ void AXIsolatedTree::setFocusedNodeID(AXID axID)
     m_pendingFocusedNodeID = axID;
 }

+void AXIsolatedTree::setRelations(const HashMap&lt;AXID, AXRelations&gt;&amp; relations)
+{
+    AXTRACE(&quot;AXIsolatedTree::setRelations&quot;_s);
+    ASSERT(isMainThread());
+
+    Locker locker { m_changeLogLock };
+    m_pendingRelations = relations;
+}
+
 AXTextMarkerRange AXIsolatedTree::selectedTextMarkerRange()
 {
     AXTRACE(&quot;AXIsolatedTree::selectedTextMarkerRange&quot;_s);
@@ -1087,15 +1098,6 @@ std::optional&lt;ListHashSet&lt;AXID&gt;&gt; AXIsolatedTree::relatedObjectIDsFor(const AXIso
 {
     ASSERT(!isMainThread());

-    if (m_relationsNeedUpdate) {
-        m_relations = Accessibility::retrieveValueFromMainThread&lt;HashMap&lt;AXID, AXRelations&gt;&gt;([this] () -&gt; HashMap&lt;AXID, AXRelations&gt; {
-            if (auto* cache = axObjectCache())
-                return cache-&gt;relations();
-            return { };
-        });
-        m_relationsNeedUpdate = false;
-    }
-
     auto relationsIterator = m_relations.find(object.objectID());
     if (relationsIterator == m_relations.end())
         return std::nullopt;
@@ -1214,6 +1216,11 @@ void AXIsolatedTree::applyPendingChanges()
         }
     }
     m_pendingPropertyChanges.clear();
+
+    if (m_relationsNeedUpdate) {
+        m_relations = m_pendingRelations;
+        m_relationsNeedUpdate = false;
+    }
 }

 AXTreePtr findAXTree(Function&lt;bool(AXTreePtr)&gt;&amp;&amp; match)
@@ -1306,6 +1313,9 @@ void AXIsolatedTree::processQueuedNodeUpdates()
     }
     m_needsPropertyUpdates.clear();

+    if (m_relationsNeedUpdate)
+        setRelations(cache-&gt;relations());
+
     queueRemovalsAndUnresolvedChanges({ });
 }

diff --git a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
index 8396a3d29fdb..6c8735df5206 100644
--- a/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
+++ b/Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
@@ -355,6 +355,7 @@ public:
     // Relationships between objects.
     std::optional&lt;ListHashSet&lt;AXID&gt;&gt; relatedObjectIDsFor(const AXIsolatedObject&amp;, AXRelationType);
     void relationsNeedUpdate(bool needUpdate) { m_relationsNeedUpdate = needUpdate; }
+    void setRelations(const HashMap&lt;AXID, AXRelations&gt;&amp;);

     // Called on AX thread from WebAccessibilityObjectWrapper methods.
     // During layout tests, it is called on the main thread.
@@ -469,6 +470,8 @@ private:
     // Set to false on the AX thread by relatedObjectIDsFor.
     std::atomic&lt;bool&gt; m_relationsNeedUpdate { true };

+    HashMap&lt;AXID, AXRelations&gt; m_pendingRelations WTF_GUARDED_BY_LOCK(m_changeLogLock);
+

AG: we are already caching relations in AXIsolatedTree::m_relations. What this patch is trying to do is to update the AXIsolatedTree relations not when they are requested but in AXIsolatedTree::processQueuedNodeUpdates(). At that point you can simply copy the AXObjectCache::m_relations to AXIsolatedTree::m_relations so the above m_pendingRelations and most of the other changes are unnecessary.

     Lock m_changeLogLock;
     AXTextMarkerRange m_selectedTextMarkerRange WTF_GUARDED_BY_LOCK(m_changeLogLock);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999014</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-12 09:55:43 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #7)
&gt; (In reply to Joshua Hoffman from comment #4)
&gt; &gt; Created attachment 468995 [details]
&gt; &gt; Patch
&gt; AG: we are already caching relations in AXIsolatedTree::m_relations. What
&gt; this patch is trying to do is to update the AXIsolatedTree relations not
&gt; when they are requested but in AXIsolatedTree::processQueuedNodeUpdates().
&gt; At that point you can simply copy the AXObjectCache::m_relations to
&gt; AXIsolatedTree::m_relations so the above m_pendingRelations and most of the
&gt; other changes are unnecessary.

That makes sense—I can update m_relations to hold a lock so we can update it in AXIsolatedTree::processQueuedNodeUpdates and remove the intermediary m_pendingRelations. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999036</commentid>
    <comment_count>9</comment_count>
      <attachid>468998</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-12 10:58:35 -0800</bug_when>
    <thetext>Created attachment 468998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999054</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-12-12 11:56:37 -0800</bug_when>
    <thetext>(In reply to Joshua Hoffman from comment #9)
&gt; Created attachment 468998 [details]
&gt; Patch

Looks good. The commit message needs update to reflect what the changes is about, updating the Isolated tree relations on the processNodeUpdates instead of on the relatedObjectsFor...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999068</commentid>
    <comment_count>11</comment_count>
      <attachid>468999</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-12 12:53:24 -0800</bug_when>
    <thetext>Created attachment 468999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999069</commentid>
    <comment_count>12</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-12 12:53:34 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #10)
&gt; (In reply to Joshua Hoffman from comment #9)
&gt; &gt; Created attachment 468998 [details]
&gt; &gt; Patch
&gt; 
&gt; Looks good. The commit message needs update to reflect what the changes is
&gt; about, updating the Isolated tree relations on the processNodeUpdates
&gt; instead of on the relatedObjectsFor...

Updated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999198</commentid>
    <comment_count>13</comment_count>
      <attachid>468999</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-12-12 23:32:08 -0800</bug_when>
    <thetext>Comment on attachment 468999
Patch

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

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:469
&gt;      std::atomic&lt;bool&gt; m_relationsNeedUpdate { true };

Do we use this member variable anymore after this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999199</commentid>
    <comment_count>14</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-12-12 23:34:25 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #13)
&gt; Comment on attachment 468999 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=468999&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:469
&gt; &gt;      std::atomic&lt;bool&gt; m_relationsNeedUpdate { true };
&gt; 
&gt; Do we use this member variable anymore after this patch?
Oh, maybe we do...but is it only accessed from the main-thread now? If so can we make it a plain bool rather than an atomic bool?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999275</commentid>
    <comment_count>15</comment_count>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-13 08:31:57 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #14)
&gt; (In reply to Tyler Wilcock from comment #13)
&gt; &gt; Comment on attachment 468999 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=468999&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:469
&gt; &gt; &gt;      std::atomic&lt;bool&gt; m_relationsNeedUpdate { true };
&gt; &gt; 
&gt; &gt; Do we use this member variable anymore after this patch?
&gt; Oh, maybe we do...but is it only accessed from the main-thread now? If so
&gt; can we make it a plain bool rather than an atomic bool?

Yeah, it&apos;s main thread only now. I will go ahead and change its type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999283</commentid>
    <comment_count>16</comment_count>
      <attachid>469018</attachid>
    <who name="Joshua Hoffman">jhoffman23</who>
    <bug_when>2023-12-13 09:08:28 -0800</bug_when>
    <thetext>Created attachment 469018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999635</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-14 10:30:54 -0800</bug_when>
    <thetext>Committed 272054@main (260dbd54ddc9): &lt;https://commits.webkit.org/272054@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 469018.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468993</attachid>
            <date>2023-12-11 21:18:53 -0800</date>
            <delta_ts>2023-12-11 21:43:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-266268-20231211211852.patch</filename>
            <type>text/plain</type>
            <size>6924</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAxNjliN2ZmNTExNjQ4ZjVhMWZkZTdmMWEzMGY1MjZkMjYwZGUwYzYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgSG9mZm1hbiA8amhvZmZtYW4yM0BhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTEgRGVjIDIwMjMgMjE6MDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB
WDogU2VydmUgcmVsYXRlZE9iamVjdElkc0ZvciBvZmYgb2YgdGhlIG1haW4gdGhyZWFkCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MjY4IHJkYXI6Ly8xMTYxMzM3
NTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIHdv
dWxkIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFkIHRvIHJldHJpZXZlIHJlbGF0aW9ucyBm
cm9tIHRoZSBjYWNoZQp3aGVuZXZlciB0aGV5IHdlcmUgZGlydHkuIFRoaXMgcGF0Y2ggcmVtb3Zl
cyB0aGF0IG5lY2Vzc2l0eSBieSBjYWNoaW5nIHJlbGF0aW9ucywgd2hpY2ggaXMKcGVyZm9ybWVk
IG9ubHkgd2hlbiB0aGV5IGFyZSBkaXJ0eS4KClRha2luZyBhZHZhbnRhZ2Ugb2YgdGhlIG5ldyBk
ZWZlcnJlZCBub2RlIHVwZGF0ZXMgbG9naWMsIHdlIG5vdyBjYWNoZSByZWxhdGlvbnMgZnJvbSB0
aGUKQVhPYmplY3RDYWNoZSBvbmx5IGlmIHRoZSBtX3JlbGF0aW9uc05lZWRVcGRhdGUgZmxhZyBp
cyBzZXQgd2hlbiBwcm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMKaXMgZmlyZWQuIFRoaXMgY29waWVk
IEhhc2hNYXAgaXMgc3RvcmVkIGluIGEgbV9wZW5kaW5nUmVsYXRpb25zIHZhcmlhYmxlLCBhbmQg
cHJvY2Vzc2VkCmluIGFwcGx5UGVuZGluZ0NoYW5nZXMuIFRoaXMgYWxsb3dzIEFYSXNvbGF0ZWRU
cmVlIHRvIHVzZSB0aGUgY2FjaGVkIG1fcmVsYXRpb25zLgoKT25lIHRlc3Qgd2FzIG1hZGUgYXN5
bmMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRtbDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGVyZm9y
bURlZmVycmVkQ2FjaGVVcGRhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpj
cmVhdGUpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJlbGF0aW9ucyk6CihXZWJDb3Jl
OjpBWElzb2xhdGVkVHJlZTo6cmVsYXRlZE9iamVjdElEc0Zvcik6CihXZWJDb3JlOjpBWElzb2xh
dGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
cHJvY2Vzc1F1ZXVlZE5vZGVVcGRhdGVzKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgotLS0KIC4uLi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8ICAxICsKIC4uLi9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuY3BwICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKystLS0tLS0KIC4uLi9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8ICAzICsrCiAuLi4vbWFjL3Rh
YmxlLWhlYWRlcnMtYXR0cmlidXRlLmh0bWwgICAgICAgICAgfCAgNCArLS0KIDQgZmlsZXMgY2hh
bmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYzFiNTg3MmNmZjViLi5l
NTgxMTkzZTVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcApAQCAtMzkyMyw2ICszOTIzLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJm
b3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpCiAgICAgICAgIGlmICghbWFya2VkUmVsYXRpb25zRGly
dHkpIHsKICAgICAgICAgICAgIHJlbGF0aW9uc05lZWRVcGRhdGUodHJ1ZSk7CiAgICAgICAgICAg
ICBtYXJrZWRSZWxhdGlvbnNEaXJ0eSA9IHRydWU7CisgICAgICAgICAgICBzdGFydFVwZGF0ZVRy
ZWVTbmFwc2hvdFRpbWVyKCk7CiAgICAgICAgIH0KICAgICB9OwogICAgIEFYTE9HRGVmZXJyZWRD
b2xsZWN0aW9uKCJSZXBsYWNlZE9iamVjdHNMaXN0Il9zLCBtX2RlZmVycmVkUmVwbGFjZWRPYmpl
Y3RzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCAxN2ZmNmQ3NDgwNTguLmJhNmZmZmM2
YjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMTYwLDYgKzE2MCw4IEBAIFJlZjxB
WElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlJiBheE9i
amVjdENhY2hlKQogCiAgICAgdHJlZS0+dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGF4T2JqZWN0Q2Fj
aGUubG9hZGluZ1Byb2dyZXNzKCkpOwogCisgICAgdHJlZS0+c2V0UmVsYXRpb25zKGF4T2JqZWN0
Q2FjaGUucmVsYXRpb25zKCkpOworCiAgICAgLy8gTm93IHRoYXQgdGhlIHRyZWUgaXMgcmVhZHkg
dG8gdGFrZSBjbGllbnQgcmVxdWVzdHMsIGFkZCBpdCB0byB0aGUgdHJlZSBtYXBzIHNvIHRoYXQg
aXQgY2FuIGJlIGZvdW5kLgogICAgIHN0b3JlVHJlZShheE9iamVjdENhY2hlLCB0cmVlKTsKICAg
ICByZXR1cm4gdHJlZTsKQEAgLTk3NSw2ICs5NzcsMTUgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6
c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiAgICAgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCA9
IGF4SUQ7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJlbGF0aW9ucyhjb25zdCBIYXNo
TWFwPEFYSUQsIEFYUmVsYXRpb25zPiYgcmVsYXRpb25zKQoreworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpzZXRSZWxhdGlvbnMiX3MpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgbV9wZW5kaW5n
UmVsYXRpb25zID0gcmVsYXRpb25zOworfQorCiBBWFRleHRNYXJrZXJSYW5nZSBBWElzb2xhdGVk
VHJlZTo6c2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpzZWxlY3RlZFRleHRNYXJrZXJSYW5nZSJfcyk7CkBAIC0xMDg3LDE1ICsxMDk4LDYg
QEAgc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxBWElEPj4gQVhJc29sYXRlZFRyZWU6OnJlbGF0
ZWRPYmplY3RJRHNGb3IoY29uc3QgQVhJc28KIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKIAotICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUpIHsKLSAgICAgICAgbV9yZWxhdGlv
bnMgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8SGFzaE1hcDxB
WElELCBBWFJlbGF0aW9ucz4+KFt0aGlzXSAoKSAtPiBIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25z
PiB7Ci0gICAgICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5yZWxhdGlvbnMoKTsKLSAgICAgICAgICAgIHJldHVy
biB7IH07Ci0gICAgICAgIH0pOwotICAgICAgICBtX3JlbGF0aW9uc05lZWRVcGRhdGUgPSBmYWxz
ZTsKLSAgICB9Ci0KICAgICBhdXRvIHJlbGF0aW9uc0l0ZXJhdG9yID0gbV9yZWxhdGlvbnMuZmlu
ZChvYmplY3Qub2JqZWN0SUQoKSk7CiAgICAgaWYgKHJlbGF0aW9uc0l0ZXJhdG9yID09IG1fcmVs
YXRpb25zLmVuZCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMTIxNCw2ICsx
MjE2LDExIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAg
ICAgICB9CiAgICAgfQogICAgIG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVhcigpOworCisg
ICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSkgeworICAgICAgICBtX3JlbGF0aW9ucyA9IG1f
cGVuZGluZ1JlbGF0aW9uczsKKyAgICAgICAgbV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gZmFsc2U7
CisgICAgfQogfQogCiBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0
cik+JiYgbWF0Y2gpCkBAIC0xMzA2LDYgKzEzMTMsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpw
cm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMoKQogICAgIH0KICAgICBtX25lZWRzUHJvcGVydHlVcGRh
dGVzLmNsZWFyKCk7CiAKKyAgICBpZiAobV9yZWxhdGlvbnNOZWVkVXBkYXRlKQorICAgICAgICBz
ZXRSZWxhdGlvbnMoY2FjaGUtPnJlbGF0aW9ucygpKTsKKwogICAgIHF1ZXVlUmVtb3ZhbHNBbmRV
bnJlc29sdmVkQ2hhbmdlcyh7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA4Mzk2
YTNkMjlmZGIuLjZjODczNWRmNTIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zNTUsNiAr
MzU1LDcgQEAgcHVibGljOgogICAgIC8vIFJlbGF0aW9uc2hpcHMgYmV0d2VlbiBvYmplY3RzLgog
ICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+IHJlbGF0ZWRPYmplY3RJRHNGb3Io
Y29uc3QgQVhJc29sYXRlZE9iamVjdCYsIEFYUmVsYXRpb25UeXBlKTsKICAgICB2b2lkIHJlbGF0
aW9uc05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKSB7IG1fcmVsYXRpb25zTmVlZFVwZGF0ZSA9
IG5lZWRVcGRhdGU7IH0KKyAgICB2b2lkIHNldFJlbGF0aW9ucyhjb25zdCBIYXNoTWFwPEFYSUQs
IEFYUmVsYXRpb25zPiYpOwogCiAgICAgLy8gQ2FsbGVkIG9uIEFYIHRocmVhZCBmcm9tIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIG1ldGhvZHMuCiAgICAgLy8gRHVyaW5nIGxheW91dCB0
ZXN0cywgaXQgaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KQEAgLTQ2OSw2ICs0NzAsOCBA
QCBwcml2YXRlOgogICAgIC8vIFNldCB0byBmYWxzZSBvbiB0aGUgQVggdGhyZWFkIGJ5IHJlbGF0
ZWRPYmplY3RJRHNGb3IuCiAgICAgc3RkOjphdG9taWM8Ym9vbD4gbV9yZWxhdGlvbnNOZWVkVXBk
YXRlIHsgdHJ1ZSB9OwogCisgICAgSGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4gbV9wZW5kaW5n
UmVsYXRpb25zIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsKKwogICAgIExv
Y2sgbV9jaGFuZ2VMb2dMb2NrOwogICAgIEFYVGV4dE1hcmtlclJhbmdlIG1fc2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2UgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0dHJp
YnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1h
dHRyaWJ1dGUuaHRtbAppbmRleCAzZGM1MTAyN2E0N2IuLjhmOWZhOTNiNzQ2YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0
dHJpYnV0ZS5odG1sCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAogICAgICAgICB2YXIgdGFibGUsIGNlbGwxLCBjb2xIZWFkZXJzLCBjZWxs
MjsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0VGltZW91dChh
c3luYyBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRhYmxlID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIpOwogCiAgICAgICAgICAgICAvLyBU
aGUgZmlyc3QgY2VsbCByZWZlcmVuY2VzIGhlYWRlcjEgaGVhZGVyMyBoZWFkZXI1LgpAQCAtNTMs
NyArNTMsNyBAQAogCiAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcbkNoYW5naW5nIGBoZWFk
ZXJzYCBhdHRyaWJ1dGUgb2YgI2NlbGwyIHRvIGJlICdoZWFkZXIxJy5cbiI7CiAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDIiKS5zZXRBdHRyaWJ1dGUoImhlYWRlcnMi
LCAiaGVhZGVyMSIpOwotICAgICAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwyLmNv
bHVtbkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxGb3JDb2x1bW5BbmRSb3coMCwgMCkp
IiwgInRydWUiKTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYXdhaXQgZXhwZWN0QXN5bmMo
ImNlbGwyLmNvbHVtbkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxGb3JDb2x1bW5BbmRS
b3coMCwgMCkpIiwgInRydWUiKTsKIAogICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CiAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
</data>
<flag name="commit-queue"
          id="495632"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468995</attachid>
            <date>2023-12-11 21:41:40 -0800</date>
            <delta_ts>2023-12-12 10:58:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-266268-20231211214139.patch</filename>
            <type>text/plain</type>
            <size>6864</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAwN2JlZjQ2NjBjOWE4YWNhZjQ1MGYxZjIwNTQ5MDRkNjMxOGMwMzBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgSG9mZm1hbiA8amhvZmZtYW4yM0BhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTEgRGVjIDIwMjMgMjE6MDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB
WDogU2VydmUgcmVsYXRlZE9iamVjdElkc0ZvciBvZmYgb2YgdGhlIG1haW4gdGhyZWFkCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MjY4IHJkYXI6Ly8xMTYxMzM3
NTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIHdv
dWxkIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFkIHRvIHJldHJpZXZlIHJlbGF0aW9ucyBm
cm9tIHRoZSBjYWNoZQp3aGVuZXZlciB0aGV5IHdlcmUgZGlydHkuIFRoaXMgcGF0Y2ggcmVtb3Zl
cyB0aGF0IG5lY2Vzc2l0eSBieSBjYWNoaW5nIHJlbGF0aW9ucywgd2hpY2ggaXMKcGVyZm9ybWVk
IG9ubHkgd2hlbiB0aGV5IGFyZSBkaXJ0eS4KClRha2luZyBhZHZhbnRhZ2Ugb2YgdGhlIG5ldyBk
ZWZlcnJlZCBub2RlIHVwZGF0ZXMgbG9naWMsIHdlIG5vdyBjYWNoZSByZWxhdGlvbnMgZnJvbSB0
aGUKQVhPYmplY3RDYWNoZSBvbmx5IGlmIHRoZSBtX3JlbGF0aW9uc05lZWRVcGRhdGUgZmxhZyBp
cyBzZXQgd2hlbiBwcm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMKaXMgZmlyZWQuIFRoaXMgY29waWVk
IEhhc2hNYXAgaXMgc3RvcmVkIGluIGEgbV9wZW5kaW5nUmVsYXRpb25zIHZhcmlhYmxlLCBhbmQg
cHJvY2Vzc2VkCmluIGFwcGx5UGVuZGluZ0NoYW5nZXMuIFRoaXMgYWxsb3dzIEFYSXNvbGF0ZWRU
cmVlIHRvIHVzZSB0aGUgY2FjaGVkIG1fcmVsYXRpb25zLgoKT25lIHRlc3Qgd2FzIG1hZGUgYXN5
bmMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
YWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRtbDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVsYXRp
b25zTmVlZFVwZGF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZSk6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6c2V0UmVsYXRpb25zKToKKFdlYkNvcmU6OkFYSXNv
bGF0ZWRUcmVlOjpyZWxhdGVkT2JqZWN0SURzRm9yKToKKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpwcm9jZXNz
UXVldWVkTm9kZVVwZGF0ZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcCAgIHwgIDEgKwogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJl
ZS5jcHAgICAgICAgICAgIHwgMjggKysrKysrKysrKysrKy0tLS0tLQogLi4uL2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwgIDMgKysKIC4uLi9tYWMvdGFibGUtaGVh
ZGVycy1hdHRyaWJ1dGUuaHRtbCAgICAgICAgICB8ICA0ICstLQogNCBmaWxlcyBjaGFuZ2VkLCAy
NSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBjMWI1ODcyY2ZmNWIuLmFiOTYyOTEx
MzczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC00ODIxLDYgKzQ4MjEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbGF0aW9uc05l
ZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKQogICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUp
IHsKICAgICAgICAgaWYgKGF1dG8gdHJlZSA9IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlE
KG1fcGFnZUlEKSkKICAgICAgICAgICAgIHRyZWUtPnJlbGF0aW9uc05lZWRVcGRhdGUodHJ1ZSk7
CisgICAgICAgIHN0YXJ0VXBkYXRlVHJlZVNuYXBzaG90VGltZXIoKTsKICAgICB9CiAjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCAxN2ZmNmQ3NDgwNTguLmJhNmZmZmM2YjZh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtMTYwLDYgKzE2MCw4IEBAIFJlZjxBWElz
b2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlJiBheE9iamVj
dENhY2hlKQogCiAgICAgdHJlZS0+dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGF4T2JqZWN0Q2FjaGUu
bG9hZGluZ1Byb2dyZXNzKCkpOwogCisgICAgdHJlZS0+c2V0UmVsYXRpb25zKGF4T2JqZWN0Q2Fj
aGUucmVsYXRpb25zKCkpOworCiAgICAgLy8gTm93IHRoYXQgdGhlIHRyZWUgaXMgcmVhZHkgdG8g
dGFrZSBjbGllbnQgcmVxdWVzdHMsIGFkZCBpdCB0byB0aGUgdHJlZSBtYXBzIHNvIHRoYXQgaXQg
Y2FuIGJlIGZvdW5kLgogICAgIHN0b3JlVHJlZShheE9iamVjdENhY2hlLCB0cmVlKTsKICAgICBy
ZXR1cm4gdHJlZTsKQEAgLTk3NSw2ICs5NzcsMTUgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0
Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiAgICAgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCA9IGF4
SUQ7CiB9CiAKK3ZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJlbGF0aW9ucyhjb25zdCBIYXNoTWFw
PEFYSUQsIEFYUmVsYXRpb25zPiYgcmVsYXRpb25zKQoreworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpzZXRSZWxhdGlvbnMiX3MpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgbV9wZW5kaW5nUmVs
YXRpb25zID0gcmVsYXRpb25zOworfQorCiBBWFRleHRNYXJrZXJSYW5nZSBBWElzb2xhdGVkVHJl
ZTo6c2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKQogewogICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpzZWxlY3RlZFRleHRNYXJrZXJSYW5nZSJfcyk7CkBAIC0xMDg3LDE1ICsxMDk4LDYgQEAg
c3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxBWElEPj4gQVhJc29sYXRlZFRyZWU6OnJlbGF0ZWRP
YmplY3RJRHNGb3IoY29uc3QgQVhJc28KIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
IAotICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUpIHsKLSAgICAgICAgbV9yZWxhdGlvbnMg
PSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8SGFzaE1hcDxBWElE
LCBBWFJlbGF0aW9ucz4+KFt0aGlzXSAoKSAtPiBIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiB7
Ci0gICAgICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGNhY2hlLT5yZWxhdGlvbnMoKTsKLSAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIH0pOwotICAgICAgICBtX3JlbGF0aW9uc05lZWRVcGRhdGUgPSBmYWxzZTsK
LSAgICB9Ci0KICAgICBhdXRvIHJlbGF0aW9uc0l0ZXJhdG9yID0gbV9yZWxhdGlvbnMuZmluZChv
YmplY3Qub2JqZWN0SUQoKSk7CiAgICAgaWYgKHJlbGF0aW9uc0l0ZXJhdG9yID09IG1fcmVsYXRp
b25zLmVuZCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMTIxNCw2ICsxMjE2
LDExIEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogICAgICAg
ICB9CiAgICAgfQogICAgIG1fcGVuZGluZ1Byb3BlcnR5Q2hhbmdlcy5jbGVhcigpOworCisgICAg
aWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSkgeworICAgICAgICBtX3JlbGF0aW9ucyA9IG1fcGVu
ZGluZ1JlbGF0aW9uczsKKyAgICAgICAgbV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gZmFsc2U7Cisg
ICAgfQogfQogCiBBWFRyZWVQdHIgZmluZEFYVHJlZShGdW5jdGlvbjxib29sKEFYVHJlZVB0cik+
JiYgbWF0Y2gpCkBAIC0xMzA2LDYgKzEzMTMsOSBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpwcm9j
ZXNzUXVldWVkTm9kZVVwZGF0ZXMoKQogICAgIH0KICAgICBtX25lZWRzUHJvcGVydHlVcGRhdGVz
LmNsZWFyKCk7CiAKKyAgICBpZiAobV9yZWxhdGlvbnNOZWVkVXBkYXRlKQorICAgICAgICBzZXRS
ZWxhdGlvbnMoY2FjaGUtPnJlbGF0aW9ucygpKTsKKwogICAgIHF1ZXVlUmVtb3ZhbHNBbmRVbnJl
c29sdmVkQ2hhbmdlcyh7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA4Mzk2YTNk
MjlmZGIuLjZjODczNWRmNTIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zNTUsNiArMzU1
LDcgQEAgcHVibGljOgogICAgIC8vIFJlbGF0aW9uc2hpcHMgYmV0d2VlbiBvYmplY3RzLgogICAg
IHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+IHJlbGF0ZWRPYmplY3RJRHNGb3IoY29u
c3QgQVhJc29sYXRlZE9iamVjdCYsIEFYUmVsYXRpb25UeXBlKTsKICAgICB2b2lkIHJlbGF0aW9u
c05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKSB7IG1fcmVsYXRpb25zTmVlZFVwZGF0ZSA9IG5l
ZWRVcGRhdGU7IH0KKyAgICB2b2lkIHNldFJlbGF0aW9ucyhjb25zdCBIYXNoTWFwPEFYSUQsIEFY
UmVsYXRpb25zPiYpOwogCiAgICAgLy8gQ2FsbGVkIG9uIEFYIHRocmVhZCBmcm9tIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIG1ldGhvZHMuCiAgICAgLy8gRHVyaW5nIGxheW91dCB0ZXN0
cywgaXQgaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KQEAgLTQ2OSw2ICs0NzAsOCBAQCBw
cml2YXRlOgogICAgIC8vIFNldCB0byBmYWxzZSBvbiB0aGUgQVggdGhyZWFkIGJ5IHJlbGF0ZWRP
YmplY3RJRHNGb3IuCiAgICAgc3RkOjphdG9taWM8Ym9vbD4gbV9yZWxhdGlvbnNOZWVkVXBkYXRl
IHsgdHJ1ZSB9OwogCisgICAgSGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4gbV9wZW5kaW5nUmVs
YXRpb25zIFdURl9HVUFSREVEX0JZX0xPQ0sobV9jaGFuZ2VMb2dMb2NrKTsKKwogICAgIExvY2sg
bV9jaGFuZ2VMb2dMb2NrOwogICAgIEFYVGV4dE1hcmtlclJhbmdlIG1fc2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2UgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxvZ0xvY2spOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0dHJpYnV0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRy
aWJ1dGUuaHRtbAppbmRleCAzZGM1MTAyN2E0N2IuLjhmOWZhOTNiNzQ2YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0dHJp
YnV0ZS5odG1sCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAogICAgICAgICB2YXIgdGFibGUsIGNlbGwxLCBjb2xIZWFkZXJzLCBjZWxsMjsK
LSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0VGltZW91dChhc3lu
YyBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRhYmxlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIpOwogCiAgICAgICAgICAgICAvLyBUaGUg
Zmlyc3QgY2VsbCByZWZlcmVuY2VzIGhlYWRlcjEgaGVhZGVyMyBoZWFkZXI1LgpAQCAtNTMsNyAr
NTMsNyBAQAogCiAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcbkNoYW5naW5nIGBoZWFkZXJz
YCBhdHRyaWJ1dGUgb2YgI2NlbGwyIHRvIGJlICdoZWFkZXIxJy5cbiI7CiAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDIiKS5zZXRBdHRyaWJ1dGUoImhlYWRlcnMiLCAi
aGVhZGVyMSIpOwotICAgICAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwyLmNvbHVt
bkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxGb3JDb2x1bW5BbmRSb3coMCwgMCkpIiwg
InRydWUiKTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYXdhaXQgZXhwZWN0QXN5bmMoImNl
bGwyLmNvbHVtbkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxGb3JDb2x1bW5BbmRSb3co
MCwgMCkpIiwgInRydWUiKTsKIAogICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CiAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468998</attachid>
            <date>2023-12-12 10:58:35 -0800</date>
            <delta_ts>2023-12-12 12:53:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-266268-20231212105834.patch</filename>
            <type>text/plain</type>
            <size>6805</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAzNGIxZmJhODcyNzhlNWE4ZjRhMDhiMDEyNjgxNTIwYWI2MDdmMzVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgSG9mZm1hbiA8amhvZmZtYW4yM0BhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTEgRGVjIDIwMjMgMjE6MDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB
WDogU2VydmUgcmVsYXRlZE9iamVjdElkc0ZvciBvZmYgb2YgdGhlIG1haW4gdGhyZWFkCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MjY4IHJkYXI6Ly8xMTYxMzM3
NTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIHdv
dWxkIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFkIHRvIHJldHJpZXZlIHJlbGF0aW9ucyBm
cm9tIHRoZSBjYWNoZQp3aGVuZXZlciB0aGV5IHdlcmUgZGlydHkuIFRoaXMgcGF0Y2ggcmVtb3Zl
cyB0aGF0IG5lY2Vzc2l0eSBieSBjYWNoaW5nIHJlbGF0aW9ucywgd2hpY2ggaXMKcGVyZm9ybWVk
IG9ubHkgd2hlbiB0aGV5IGFyZSBkaXJ0eS4KClRha2luZyBhZHZhbnRhZ2Ugb2YgdGhlIG5ldyBk
ZWZlcnJlZCBub2RlIHVwZGF0ZXMgbG9naWMsIHdlIG5vdyBjYWNoZSByZWxhdGlvbnMgZnJvbSB0
aGUKQVhPYmplY3RDYWNoZSBvbmx5IGlmIHRoZSBtX3JlbGF0aW9uc05lZWRVcGRhdGUgZmxhZyBp
cyBzZXQgd2hlbiBwcm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMKaXMgZmlyZWQuIFRoaXMgYWxsb3dz
IEFYSXNvbGF0ZWRUcmVlIHRvIHVzZSB0aGUgY2FjaGVkIG1fcmVsYXRpb25zLgoKT25lIHRlc3Qg
d2FzIG1hZGUgYXN5bmMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KCiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRtbDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cmVsYXRpb25zTmVlZFVwZGF0ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgooV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OmNyZWF0ZSk6CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlUmVsYXRpb25zKToK
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZWxhdGVkT2JqZWN0SURzRm9yKToKKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjpwcm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMpOgoqIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6Ci0tLQogLi4u
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgIDEgKwogLi4uL2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysr
LS0tLS0tLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwg
IDcgKysrLS0tCiAuLi4vbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmlidXRlLmh0bWwgICAgICAgICAg
fCAgNCArLS0KIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYzFiNTg3MmNmZjViLi5hYjk2MjkxMTM3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNDgyMSw2ICs0ODIxLDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpyZWxhdGlvbnNOZWVkVXBkYXRlKGJvb2wgbmVlZFVwZGF0ZSkKICAg
ICBpZiAobV9yZWxhdGlvbnNOZWVkVXBkYXRlKSB7CiAgICAgICAgIGlmIChhdXRvIHRyZWUgPSBB
WElzb2xhdGVkVHJlZTo6dHJlZUZvclBhZ2VJRChtX3BhZ2VJRCkpCiAgICAgICAgICAgICB0cmVl
LT5yZWxhdGlvbnNOZWVkVXBkYXRlKHRydWUpOworICAgICAgICBzdGFydFVwZGF0ZVRyZWVTbmFw
c2hvdFRpbWVyKCk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5k
ZXggMTdmZjZkNzQ4MDU4Li5iNjdlMTBiMDM0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
QEAgLTE2MCw2ICsxNjAsOCBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpj
cmVhdGUoQVhPYmplY3RDYWNoZSYgYXhPYmplY3RDYWNoZSkKIAogICAgIHRyZWUtPnVwZGF0ZUxv
YWRpbmdQcm9ncmVzcyhheE9iamVjdENhY2hlLmxvYWRpbmdQcm9ncmVzcygpKTsKIAorICAgIHRy
ZWUtPnVwZGF0ZVJlbGF0aW9ucyhheE9iamVjdENhY2hlLnJlbGF0aW9ucygpKTsKKwogICAgIC8v
IE5vdyB0aGF0IHRoZSB0cmVlIGlzIHJlYWR5IHRvIHRha2UgY2xpZW50IHJlcXVlc3RzLCBhZGQg
aXQgdG8gdGhlIHRyZWUgbWFwcyBzbyB0aGF0IGl0IGNhbiBiZSBmb3VuZC4KICAgICBzdG9yZVRy
ZWUoYXhPYmplY3RDYWNoZSwgdHJlZSk7CiAgICAgcmV0dXJuIHRyZWU7CkBAIC05NzUsNiArOTc3
LDE2IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElEKQog
ICAgIG1fcGVuZGluZ0ZvY3VzZWROb2RlSUQgPSBheElEOwogfQogCit2b2lkIEFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVSZWxhdGlvbnMoY29uc3QgSGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4mIHJl
bGF0aW9ucykKK3sKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlUmVsYXRpb25z
Il9zKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgTG9ja2VyIGxvY2tlciB7
IG1fY2hhbmdlTG9nTG9jayB9OworICAgIG1fcmVsYXRpb25zID0gcmVsYXRpb25zOworICAgIG1f
cmVsYXRpb25zTmVlZFVwZGF0ZSA9IGZhbHNlOworfQorCiBBWFRleHRNYXJrZXJSYW5nZSBBWElz
b2xhdGVkVHJlZTo6c2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UoKQogewogICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpzZWxlY3RlZFRleHRNYXJrZXJSYW5nZSJfcyk7CkBAIC0xMDg2LDE1ICsx
MDk4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFY
SUQgb2JqZWN0SUQsIEFjY2Vzc2liaWxpdHlPYmplY3QKIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hT
ZXQ8QVhJRD4+IEFYSXNvbGF0ZWRUcmVlOjpyZWxhdGVkT2JqZWN0SURzRm9yKGNvbnN0IEFYSXNv
bGF0ZWRPYmplY3QmIG9iamVjdCwgQVhSZWxhdGlvblR5cGUgcmVsYXRpb25UeXBlKQogewogICAg
IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotCi0gICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0
ZSkgewotICAgICAgICBtX3JlbGF0aW9ucyA9IEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVG
cm9tTWFpblRocmVhZDxIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPj4oW3RoaXNdICgpIC0+IEhh
c2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+IHsKLSAgICAgICAgICAgIGlmIChhdXRvKiBjYWNoZSA9
IGF4T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUtPnJlbGF0aW9u
cygpOwotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfSk7Ci0gICAgICAgIG1fcmVs
YXRpb25zTmVlZFVwZGF0ZSA9IGZhbHNlOwotICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9j
aGFuZ2VMb2dMb2NrIH07CiAKICAgICBhdXRvIHJlbGF0aW9uc0l0ZXJhdG9yID0gbV9yZWxhdGlv
bnMuZmluZChvYmplY3Qub2JqZWN0SUQoKSk7CiAgICAgaWYgKHJlbGF0aW9uc0l0ZXJhdG9yID09
IG1fcmVsYXRpb25zLmVuZCgpKQpAQCAtMTMwNiw2ICsxMzEwLDkgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6cHJvY2Vzc1F1ZXVlZE5vZGVVcGRhdGVzKCkKICAgICB9CiAgICAgbV9uZWVkc1Byb3Bl
cnR5VXBkYXRlcy5jbGVhcigpOwogCisgICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSkKKyAg
ICAgICAgdXBkYXRlUmVsYXRpb25zKGNhY2hlLT5yZWxhdGlvbnMoKSk7CisKICAgICBxdWV1ZVJl
bW92YWxzQW5kVW5yZXNvbHZlZENoYW5nZXMoeyB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
aW5kZXggODM5NmEzZDI5ZmRiLi5iZDVlYTA5NDM4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApA
QCAtMzU1LDYgKzM1NSw3IEBAIHB1YmxpYzoKICAgICAvLyBSZWxhdGlvbnNoaXBzIGJldHdlZW4g
b2JqZWN0cy4KICAgICBzdGQ6Om9wdGlvbmFsPExpc3RIYXNoU2V0PEFYSUQ+PiByZWxhdGVkT2Jq
ZWN0SURzRm9yKGNvbnN0IEFYSXNvbGF0ZWRPYmplY3QmLCBBWFJlbGF0aW9uVHlwZSk7CiAgICAg
dm9pZCByZWxhdGlvbnNOZWVkVXBkYXRlKGJvb2wgbmVlZFVwZGF0ZSkgeyBtX3JlbGF0aW9uc05l
ZWRVcGRhdGUgPSBuZWVkVXBkYXRlOyB9CisgICAgdm9pZCB1cGRhdGVSZWxhdGlvbnMoY29uc3Qg
SGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4mKTsKIAogICAgIC8vIENhbGxlZCBvbiBBWCB0aHJl
YWQgZnJvbSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBtZXRob2RzLgogICAgIC8vIER1
cmluZyBsYXlvdXQgdGVzdHMsIGl0IGlzIGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCkBAIC00
NjMsMTAgKzQ2NCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjphdG9taWM8ZG91YmxlPiBtX2xvYWRp
bmdQcm9ncmVzcyB7IDAgfTsKIAogICAgIC8vIFJlbGF0aW9uc2hpcHMgYmV0d2VlbiBvYmplY3Rz
LgotICAgIC8vIEFjY2Vzc2VkIG9ubHkgb24gdGhlIEFYIHRocmVhZC4KLSAgICBIYXNoTWFwPEFY
SUQsIEFYUmVsYXRpb25zPiBtX3JlbGF0aW9uczsKLSAgICAvLyBTZXQgdG8gdHJ1ZSBieSB0aGUg
QVhPYmplY3RDYWNoZSBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgLy8gU2V0IHRvIGZhbHNlIG9u
IHRoZSBBWCB0aHJlYWQgYnkgcmVsYXRlZE9iamVjdElEc0Zvci4KKyAgICBIYXNoTWFwPEFYSUQs
IEFYUmVsYXRpb25zPiBtX3JlbGF0aW9ucyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9n
TG9jayk7CisgICAgLy8gU2V0IHRvIHRydWUgYnkgdGhlIEFYT2JqZWN0Q2FjaGUgYW5kIGZhbHNl
IGJ5IEFYSXNvbGF0ZWRUcmVlLgogICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fcmVsYXRpb25zTmVl
ZFVwZGF0ZSB7IHRydWUgfTsKIAogICAgIExvY2sgbV9jaGFuZ2VMb2dMb2NrOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUu
aHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmli
dXRlLmh0bWwKaW5kZXggM2RjNTEwMjdhNDdiLi44ZjlmYTkzYjc0NmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmlidXRlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1
dGUuaHRtbApAQCAtMzMsNyArMzMsNyBAQAogICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAKICAgICAgICAgdmFyIHRhYmxlLCBjZWxsMSwgY29sSGVhZGVycywgY2VsbDI7Ci0g
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0YWJsZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGFibGUiKTsKIAogICAgICAgICAgICAgLy8gVGhlIGZp
cnN0IGNlbGwgcmVmZXJlbmNlcyBoZWFkZXIxIGhlYWRlcjMgaGVhZGVyNS4KQEAgLTUzLDcgKzUz
LDcgQEAKIAogICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiXG5DaGFuZ2luZyBgaGVhZGVyc2Ag
YXR0cmlidXRlIG9mICNjZWxsMiB0byBiZSAnaGVhZGVyMScuXG4iOwogICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlbGwyIikuc2V0QXR0cmlidXRlKCJoZWFkZXJzIiwgImhl
YWRlcjEiKTsKLSAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5jb2x1bW5I
ZWFkZXJzKClbMF0uaXNFcXVhbCh0YWJsZS5jZWxsRm9yQ29sdW1uQW5kUm93KDAsIDApKSIsICJ0
cnVlIik7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGF3YWl0IGV4cGVjdEFzeW5jKCJjZWxs
Mi5jb2x1bW5IZWFkZXJzKClbMF0uaXNFcXVhbCh0YWJsZS5jZWxsRm9yQ29sdW1uQW5kUm93KDAs
IDApKSIsICJ0cnVlIik7CiAKICAgICAgICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOwogICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468999</attachid>
            <date>2023-12-12 12:53:24 -0800</date>
            <delta_ts>2023-12-13 09:08:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-266268-20231212125323.patch</filename>
            <type>text/plain</type>
            <size>6920</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAyODQ5ZjUyZTEyNTBmMGI1ZTg5ZDU5YzgyYTk3NWJiMmQ5MTVmNDJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgSG9mZm1hbiA8amhvZmZtYW4yM0BhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTEgRGVjIDIwMjMgMjE6MDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB
WDogU2VydmUgcmVsYXRlZE9iamVjdElkc0ZvciBvZmYgb2YgdGhlIG1haW4gdGhyZWFkCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MjY4IHJkYXI6Ly8xMTYxMzM3
NTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIHdv
dWxkIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFkIHRvIHJldHJpZXZlIHJlbGF0aW9ucyBm
cm9tIHRoZSBjYWNoZQp3aGVuZXZlciB0aGV5IHdlcmUgZGlydHkgaW5zaWRlIEFYSXNvbGF0ZWRU
cmVlOjpyZWxhdGVkT2JqZWN0SWRzRm9yLiBUaGlzIHBhdGNoIHJlbW92ZXMgdGhhdApuZWNlc3Np
dHkgYnkgY2FjaGluZyByZWxhdGlvbnMsIHdoaWNoIGlzIHBlcmZvcm1lZCBvbmx5IHdoZW4gdGhl
eSBhcmUgZGlydHkuCgpUYWtpbmcgYWR2YW50YWdlIG9mIHRoZSBuZXcgZGVmZXJyZWQgbm9kZSB1
cGRhdGVzIGxvZ2ljLCB3ZSBub3cgY2FjaGUgcmVsYXRpb25zIGZyb20gdGhlCkFYT2JqZWN0Q2Fj
aGUgb25seSBpZiB0aGUgbV9yZWxhdGlvbnNOZWVkVXBkYXRlIGZsYWcgaXMgc2V0IHdoZW4gcHJv
Y2Vzc1F1ZXVlZE5vZGVVcGRhdGVzCmlzIGZpcmVkLCByYXRoZXIgdGhhbiBjYWNoaW5nIGxhemls
eSBpbiByZWxhdGVkT2JqZWN0SWRzRm9yLiBUaGlzIGFsbG93cwpBWElzb2xhdGVkVHJlZTo6cmVs
YXRlZE9iamVjdElkc0ZvciB0byB1c2UgdGhlIGNhY2hlZCBtX3JlbGF0aW9ucy4KCk9uZSB0ZXN0
IHdhcyBtYWRlIGFzeW5jIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UuCgoqIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmlidXRlLmh0bWw6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnJlbGF0aW9uc05lZWRVcGRhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZVJlbGF0aW9ucyk6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVsYXRlZE9iamVjdElEc0Zvcik6CihXZWJDb3Jl
OjpBWElzb2xhdGVkVHJlZTo6cHJvY2Vzc1F1ZXVlZE5vZGVVcGRhdGVzKToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgotLS0KIC4u
Li9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8ICAxICsKIC4uLi9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwICAgICAgICAgICB8IDI1ICsrKysrKysrKysr
Ky0tLS0tLS0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8
ICA3ICsrKy0tLQogLi4uL21hYy90YWJsZS1oZWFkZXJzLWF0dHJpYnV0ZS5odG1sICAgICAgICAg
IHwgIDQgKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CmluZGV4IGMxYjU4NzJjZmY1Yi4uYWI5NjI5MTEzNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTQ4MjEsNiArNDgyMSw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVsYXRpb25zTmVlZFVwZGF0ZShib29sIG5lZWRVcGRhdGUpCiAg
ICAgaWYgKG1fcmVsYXRpb25zTmVlZFVwZGF0ZSkgewogICAgICAgICBpZiAoYXV0byB0cmVlID0g
QVhJc29sYXRlZFRyZWU6OnRyZWVGb3JQYWdlSUQobV9wYWdlSUQpKQogICAgICAgICAgICAgdHJl
ZS0+cmVsYXRpb25zTmVlZFVwZGF0ZSh0cnVlKTsKKyAgICAgICAgc3RhcnRVcGRhdGVUcmVlU25h
cHNob3RUaW1lcigpOwogICAgIH0KICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmlu
ZGV4IDE3ZmY2ZDc0ODA1OC4uYjY3ZTEwYjAzNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
CkBAIC0xNjAsNiArMTYwLDggQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKEFYT2JqZWN0Q2FjaGUmIGF4T2JqZWN0Q2FjaGUpCiAKICAgICB0cmVlLT51cGRhdGVM
b2FkaW5nUHJvZ3Jlc3MoYXhPYmplY3RDYWNoZS5sb2FkaW5nUHJvZ3Jlc3MoKSk7CiAKKyAgICB0
cmVlLT51cGRhdGVSZWxhdGlvbnMoYXhPYmplY3RDYWNoZS5yZWxhdGlvbnMoKSk7CisKICAgICAv
LyBOb3cgdGhhdCB0aGUgdHJlZSBpcyByZWFkeSB0byB0YWtlIGNsaWVudCByZXF1ZXN0cywgYWRk
IGl0IHRvIHRoZSB0cmVlIG1hcHMgc28gdGhhdCBpdCBjYW4gYmUgZm91bmQuCiAgICAgc3RvcmVU
cmVlKGF4T2JqZWN0Q2FjaGUsIHRyZWUpOwogICAgIHJldHVybiB0cmVlOwpAQCAtOTc1LDYgKzk3
NywxNiBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkK
ICAgICBtX3BlbmRpbmdGb2N1c2VkTm9kZUlEID0gYXhJRDsKIH0KIAordm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlUmVsYXRpb25zKGNvbnN0IEhhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+JiBy
ZWxhdGlvbnMpCit7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZVJlbGF0aW9u
cyJfcyk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIExvY2tlciBsb2NrZXIg
eyBtX2NoYW5nZUxvZ0xvY2sgfTsKKyAgICBtX3JlbGF0aW9ucyA9IHJlbGF0aW9uczsKKyAgICBt
X3JlbGF0aW9uc05lZWRVcGRhdGUgPSBmYWxzZTsKK30KKwogQVhUZXh0TWFya2VyUmFuZ2UgQVhJ
c29sYXRlZFRyZWU6OnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCkKIHsKICAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6c2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiX3MpOwpAQCAtMTA4NiwxNSAr
MTA5OCw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChB
WElEIG9iamVjdElELCBBY2Nlc3NpYmlsaXR5T2JqZWN0CiBzdGQ6Om9wdGlvbmFsPExpc3RIYXNo
U2V0PEFYSUQ+PiBBWElzb2xhdGVkVHJlZTo6cmVsYXRlZE9iamVjdElEc0Zvcihjb25zdCBBWElz
b2xhdGVkT2JqZWN0JiBvYmplY3QsIEFYUmVsYXRpb25UeXBlIHJlbGF0aW9uVHlwZSkKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQotICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRh
dGUpIHsKLSAgICAgICAgbV9yZWxhdGlvbnMgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVl
RnJvbU1haW5UaHJlYWQ8SGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4+KFt0aGlzXSAoKSAtPiBI
YXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiB7Ci0gICAgICAgICAgICBpZiAoYXV0byogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5yZWxhdGlv
bnMoKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIH0pOwotICAgICAgICBtX3Jl
bGF0aW9uc05lZWRVcGRhdGUgPSBmYWxzZTsKLSAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IG1f
Y2hhbmdlTG9nTG9jayB9OwogCiAgICAgYXV0byByZWxhdGlvbnNJdGVyYXRvciA9IG1fcmVsYXRp
b25zLmZpbmQob2JqZWN0Lm9iamVjdElEKCkpOwogICAgIGlmIChyZWxhdGlvbnNJdGVyYXRvciA9
PSBtX3JlbGF0aW9ucy5lbmQoKSkKQEAgLTEzMDYsNiArMTMxMCw5IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnByb2Nlc3NRdWV1ZWROb2RlVXBkYXRlcygpCiAgICAgfQogICAgIG1fbmVlZHNQcm9w
ZXJ0eVVwZGF0ZXMuY2xlYXIoKTsKIAorICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUpCisg
ICAgICAgIHVwZGF0ZVJlbGF0aW9ucyhjYWNoZS0+cmVsYXRpb25zKCkpOworCiAgICAgcXVldWVS
ZW1vdmFsc0FuZFVucmVzb2x2ZWRDaGFuZ2VzKHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CmluZGV4IDgzOTZhM2QyOWZkYi4uYmQ1ZWEwOTQzODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
QEAgLTM1NSw2ICszNTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmVsYXRpb25zaGlwcyBiZXR3ZWVu
IG9iamVjdHMuCiAgICAgc3RkOjpvcHRpb25hbDxMaXN0SGFzaFNldDxBWElEPj4gcmVsYXRlZE9i
amVjdElEc0Zvcihjb25zdCBBWElzb2xhdGVkT2JqZWN0JiwgQVhSZWxhdGlvblR5cGUpOwogICAg
IHZvaWQgcmVsYXRpb25zTmVlZFVwZGF0ZShib29sIG5lZWRVcGRhdGUpIHsgbV9yZWxhdGlvbnNO
ZWVkVXBkYXRlID0gbmVlZFVwZGF0ZTsgfQorICAgIHZvaWQgdXBkYXRlUmVsYXRpb25zKGNvbnN0
IEhhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+Jik7CiAKICAgICAvLyBDYWxsZWQgb24gQVggdGhy
ZWFkIGZyb20gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgbWV0aG9kcy4KICAgICAvLyBE
dXJpbmcgbGF5b3V0IHRlc3RzLCBpdCBpcyBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgpAQCAt
NDYzLDEwICs0NjQsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6YXRvbWljPGRvdWJsZT4gbV9sb2Fk
aW5nUHJvZ3Jlc3MgeyAwIH07CiAKICAgICAvLyBSZWxhdGlvbnNoaXBzIGJldHdlZW4gb2JqZWN0
cy4KLSAgICAvLyBBY2Nlc3NlZCBvbmx5IG9uIHRoZSBBWCB0aHJlYWQuCi0gICAgSGFzaE1hcDxB
WElELCBBWFJlbGF0aW9ucz4gbV9yZWxhdGlvbnM7Ci0gICAgLy8gU2V0IHRvIHRydWUgYnkgdGhl
IEFYT2JqZWN0Q2FjaGUgb24gdGhlIG1haW4gdGhyZWFkLgotICAgIC8vIFNldCB0byBmYWxzZSBv
biB0aGUgQVggdGhyZWFkIGJ5IHJlbGF0ZWRPYmplY3RJRHNGb3IuCisgICAgSGFzaE1hcDxBWElE
LCBBWFJlbGF0aW9ucz4gbV9yZWxhdGlvbnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2NoYW5nZUxv
Z0xvY2spOworICAgIC8vIFNldCB0byB0cnVlIGJ5IHRoZSBBWE9iamVjdENhY2hlIGFuZCBmYWxz
ZSBieSBBWElzb2xhdGVkVHJlZS4KICAgICBzdGQ6OmF0b21pYzxib29sPiBtX3JlbGF0aW9uc05l
ZWRVcGRhdGUgeyB0cnVlIH07CiAKICAgICBMb2NrIG1fY2hhbmdlTG9nTG9jazsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmlidXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0dHJp
YnV0ZS5odG1sCmluZGV4IDNkYzUxMDI3YTQ3Yi4uOGY5ZmE5M2I3NDZiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1oZWFkZXJzLWF0dHJpYnV0ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmli
dXRlLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogCiAgICAgICAgIHZhciB0YWJsZSwgY2VsbDEsIGNvbEhlYWRlcnMsIGNlbGwyOwot
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBzZXRUaW1lb3V0KGFzeW5j
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdGFibGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRhYmxlIik7CiAKICAgICAgICAgICAgIC8vIFRoZSBm
aXJzdCBjZWxsIHJlZmVyZW5jZXMgaGVhZGVyMSBoZWFkZXIzIGhlYWRlcjUuCkBAIC01Myw3ICs1
Myw3IEBACiAKICAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuQ2hhbmdpbmcgYGhlYWRlcnNg
IGF0dHJpYnV0ZSBvZiAjY2VsbDIgdG8gYmUgJ2hlYWRlcjEnLlxuIjsKICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZWxsMiIpLnNldEF0dHJpYnV0ZSgiaGVhZGVycyIsICJo
ZWFkZXIxIik7Ci0gICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIuY29sdW1u
SGVhZGVycygpWzBdLmlzRXF1YWwodGFibGUuY2VsbEZvckNvbHVtbkFuZFJvdygwLCAwKSkiLCAi
dHJ1ZSIpOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBhd2FpdCBleHBlY3RBc3luYygiY2Vs
bDIuY29sdW1uSGVhZGVycygpWzBdLmlzRXF1YWwodGFibGUuY2VsbEZvckNvbHVtbkFuZFJvdygw
LCAwKSkiLCAidHJ1ZSIpOwogCiAgICAgICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>469018</attachid>
            <date>2023-12-13 09:08:28 -0800</date>
            <delta_ts>2023-12-14 10:30:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-266268-20231213090828.patch</filename>
            <type>text/plain</type>
            <size>7050</size>
            <attacher name="Joshua Hoffman">jhoffman23</attacher>
            
              <data encoding="base64">RnJvbSAxOGFiYTMxZTFjZmNjNTcwMTFiODkyZmJmYmU2OTM1ZTI4ZGZmY2MxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgSG9mZm1hbiA8amhvZmZtYW4yM0BhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMTEgRGVjIDIwMjMgMjE6MDY6NDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB
WDogU2VydmUgcmVsYXRlZE9iamVjdElkc0ZvciBvZmYgb2YgdGhlIG1haW4gdGhyZWFkCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MjY4IHJkYXI6Ly8xMTYxMzM3
NTgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIHdv
dWxkIGhhdmUgdG8gZ28gdG8gdGhlIG1haW4gdGhyZWFkIHRvIHJldHJpZXZlIHJlbGF0aW9ucyBm
cm9tIHRoZSBjYWNoZQp3aGVuZXZlciB0aGV5IHdlcmUgZGlydHkgaW5zaWRlIEFYSXNvbGF0ZWRU
cmVlOjpyZWxhdGVkT2JqZWN0SWRzRm9yLiBUaGlzIHBhdGNoIHJlbW92ZXMgdGhhdApuZWNlc3Np
dHkgYnkgY2FjaGluZyByZWxhdGlvbnMsIHdoaWNoIGlzIHBlcmZvcm1lZCBvbmx5IHdoZW4gdGhl
eSBhcmUgZGlydHkuCgpUYWtpbmcgYWR2YW50YWdlIG9mIHRoZSBuZXcgZGVmZXJyZWQgbm9kZSB1
cGRhdGVzIGxvZ2ljLCB3ZSBub3cgY2FjaGUgcmVsYXRpb25zIGZyb20gdGhlCkFYT2JqZWN0Q2Fj
aGUgb25seSBpZiB0aGUgbV9yZWxhdGlvbnNOZWVkVXBkYXRlIGZsYWcgaXMgc2V0IHdoZW4gcHJv
Y2Vzc1F1ZXVlZE5vZGVVcGRhdGVzCmlzIGZpcmVkLCByYXRoZXIgdGhhbiBjYWNoaW5nIGxhemls
eSBpbiByZWxhdGVkT2JqZWN0SWRzRm9yLiBUaGlzIGFsbG93cwpBWElzb2xhdGVkVHJlZTo6cmVs
YXRlZE9iamVjdElkc0ZvciB0byB1c2UgdGhlIGNhY2hlZCBtX3JlbGF0aW9ucy4KCk9uZSB0ZXN0
IHdhcyBtYWRlIGFzeW5jIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UuCgoqIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvbWFjL3RhYmxlLWhlYWRlcnMtYXR0cmlidXRlLmh0bWw6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnJlbGF0aW9uc05lZWRVcGRhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcDoKKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUpOgooV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZVJlbGF0aW9ucyk6
CihXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVsYXRlZE9iamVjdElEc0Zvcik6CihXZWJDb3Jl
OjpBWElzb2xhdGVkVHJlZTo6cHJvY2Vzc1F1ZXVlZE5vZGVVcGRhdGVzKToKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgotLS0KIC4u
Li9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8ICAxICsKIC4uLi9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwICAgICAgICAgICB8IDI1ICsrKysrKysrKysr
Ky0tLS0tLS0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAgICAgICAgICB8
ICA5ICsrKy0tLS0KIC4uLi9tYWMvdGFibGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRtbCAgICAgICAg
ICB8ICA0ICstLQogNCBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCBjMWI1ODcyY2ZmNWIuLmFiOTYyOTExMzczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC00ODIxLDYgKzQ4MjEsNyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbGF0aW9uc05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKQog
ICAgIGlmIChtX3JlbGF0aW9uc05lZWRVcGRhdGUpIHsKICAgICAgICAgaWYgKGF1dG8gdHJlZSA9
IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9yUGFnZUlEKG1fcGFnZUlEKSkKICAgICAgICAgICAgIHRy
ZWUtPnJlbGF0aW9uc05lZWRVcGRhdGUodHJ1ZSk7CisgICAgICAgIHN0YXJ0VXBkYXRlVHJlZVNu
YXBzaG90VGltZXIoKTsKICAgICB9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApp
bmRleCAxN2ZmNmQ3NDgwNTguLmI2N2UxMGIwMzQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cApAQCAtMTYwLDYgKzE2MCw4IEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6
OmNyZWF0ZShBWE9iamVjdENhY2hlJiBheE9iamVjdENhY2hlKQogCiAgICAgdHJlZS0+dXBkYXRl
TG9hZGluZ1Byb2dyZXNzKGF4T2JqZWN0Q2FjaGUubG9hZGluZ1Byb2dyZXNzKCkpOwogCisgICAg
dHJlZS0+dXBkYXRlUmVsYXRpb25zKGF4T2JqZWN0Q2FjaGUucmVsYXRpb25zKCkpOworCiAgICAg
Ly8gTm93IHRoYXQgdGhlIHRyZWUgaXMgcmVhZHkgdG8gdGFrZSBjbGllbnQgcmVxdWVzdHMsIGFk
ZCBpdCB0byB0aGUgdHJlZSBtYXBzIHNvIHRoYXQgaXQgY2FuIGJlIGZvdW5kLgogICAgIHN0b3Jl
VHJlZShheE9iamVjdENhY2hlLCB0cmVlKTsKICAgICByZXR1cm4gdHJlZTsKQEAgLTk3NSw2ICs5
NzcsMTYgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQp
CiAgICAgbV9wZW5kaW5nRm9jdXNlZE5vZGVJRCA9IGF4SUQ7CiB9CiAKK3ZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZVJlbGF0aW9ucyhjb25zdCBIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiYg
cmVsYXRpb25zKQoreworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVSZWxhdGlv
bnMiX3MpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jaGFuZ2VMb2dMb2NrIH07CisgICAgbV9yZWxhdGlvbnMgPSByZWxhdGlvbnM7CisgICAg
bV9yZWxhdGlvbnNOZWVkVXBkYXRlID0gZmFsc2U7Cit9CisKIEFYVGV4dE1hcmtlclJhbmdlIEFY
SXNvbGF0ZWRUcmVlOjpzZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgpCiB7CiAgICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIl9zKTsKQEAgLTEwODYsMTUg
KzEwOTgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAo
QVhJRCBvYmplY3RJRCwgQWNjZXNzaWJpbGl0eU9iamVjdAogc3RkOjpvcHRpb25hbDxMaXN0SGFz
aFNldDxBWElEPj4gQVhJc29sYXRlZFRyZWU6OnJlbGF0ZWRPYmplY3RJRHNGb3IoY29uc3QgQVhJ
c29sYXRlZE9iamVjdCYgb2JqZWN0LCBBWFJlbGF0aW9uVHlwZSByZWxhdGlvblR5cGUpCiB7CiAg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0KLSAgICBpZiAobV9yZWxhdGlvbnNOZWVkVXBk
YXRlKSB7Ci0gICAgICAgIG1fcmVsYXRpb25zID0gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1
ZUZyb21NYWluVGhyZWFkPEhhc2hNYXA8QVhJRCwgQVhSZWxhdGlvbnM+PihbdGhpc10gKCkgLT4g
SGFzaE1hcDxBWElELCBBWFJlbGF0aW9ucz4gewotICAgICAgICAgICAgaWYgKGF1dG8qIGNhY2hl
ID0gYXhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+cmVsYXRp
b25zKCk7Ci0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB9KTsKLSAgICAgICAgbV9y
ZWxhdGlvbnNOZWVkVXBkYXRlID0gZmFsc2U7Ci0gICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBt
X2NoYW5nZUxvZ0xvY2sgfTsKIAogICAgIGF1dG8gcmVsYXRpb25zSXRlcmF0b3IgPSBtX3JlbGF0
aW9ucy5maW5kKG9iamVjdC5vYmplY3RJRCgpKTsKICAgICBpZiAocmVsYXRpb25zSXRlcmF0b3Ig
PT0gbV9yZWxhdGlvbnMuZW5kKCkpCkBAIC0xMzA2LDYgKzEzMTAsOSBAQCB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjpwcm9jZXNzUXVldWVkTm9kZVVwZGF0ZXMoKQogICAgIH0KICAgICBtX25lZWRzUHJv
cGVydHlVcGRhdGVzLmNsZWFyKCk7CiAKKyAgICBpZiAobV9yZWxhdGlvbnNOZWVkVXBkYXRlKQor
ICAgICAgICB1cGRhdGVSZWxhdGlvbnMoY2FjaGUtPnJlbGF0aW9ucygpKTsKKwogICAgIHF1ZXVl
UmVtb3ZhbHNBbmRVbnJlc29sdmVkQ2hhbmdlcyh7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aAppbmRleCA4Mzk2YTNkMjlmZGIuLmYxMWVmODU1NWExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CkBAIC0zNTUsNiArMzU1LDcgQEAgcHVibGljOgogICAgIC8vIFJlbGF0aW9uc2hpcHMgYmV0d2Vl
biBvYmplY3RzLgogICAgIHN0ZDo6b3B0aW9uYWw8TGlzdEhhc2hTZXQ8QVhJRD4+IHJlbGF0ZWRP
YmplY3RJRHNGb3IoY29uc3QgQVhJc29sYXRlZE9iamVjdCYsIEFYUmVsYXRpb25UeXBlKTsKICAg
ICB2b2lkIHJlbGF0aW9uc05lZWRVcGRhdGUoYm9vbCBuZWVkVXBkYXRlKSB7IG1fcmVsYXRpb25z
TmVlZFVwZGF0ZSA9IG5lZWRVcGRhdGU7IH0KKyAgICB2b2lkIHVwZGF0ZVJlbGF0aW9ucyhjb25z
dCBIYXNoTWFwPEFYSUQsIEFYUmVsYXRpb25zPiYpOwogCiAgICAgLy8gQ2FsbGVkIG9uIEFYIHRo
cmVhZCBmcm9tIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIG1ldGhvZHMuCiAgICAgLy8g
RHVyaW5nIGxheW91dCB0ZXN0cywgaXQgaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KQEAg
LTQ2MywxMSArNDY0LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmF0b21pYzxkb3VibGU+IG1fbG9h
ZGluZ1Byb2dyZXNzIHsgMCB9OwogCiAgICAgLy8gUmVsYXRpb25zaGlwcyBiZXR3ZWVuIG9iamVj
dHMuCi0gICAgLy8gQWNjZXNzZWQgb25seSBvbiB0aGUgQVggdGhyZWFkLgotICAgIEhhc2hNYXA8
QVhJRCwgQVhSZWxhdGlvbnM+IG1fcmVsYXRpb25zOwotICAgIC8vIFNldCB0byB0cnVlIGJ5IHRo
ZSBBWE9iamVjdENhY2hlIG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICAvLyBTZXQgdG8gZmFsc2Ug
b24gdGhlIEFYIHRocmVhZCBieSByZWxhdGVkT2JqZWN0SURzRm9yLgotICAgIHN0ZDo6YXRvbWlj
PGJvb2w+IG1fcmVsYXRpb25zTmVlZFVwZGF0ZSB7IHRydWUgfTsKKyAgICBIYXNoTWFwPEFYSUQs
IEFYUmVsYXRpb25zPiBtX3JlbGF0aW9ucyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9n
TG9jayk7CisgICAgLy8gU2V0IHRvIHRydWUgYnkgdGhlIEFYT2JqZWN0Q2FjaGUgYW5kIGZhbHNl
IGJ5IEFYSXNvbGF0ZWRUcmVlLgorICAgIGJvb2wgbV9yZWxhdGlvbnNOZWVkVXBkYXRlIHsgdHJ1
ZSB9OwogCiAgICAgTG9jayBtX2NoYW5nZUxvZ0xvY2s7CiAgICAgQVhUZXh0TWFya2VyUmFuZ2Ug
bV9zZWxlY3RlZFRleHRNYXJrZXJSYW5nZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2hhbmdlTG9n
TG9jayk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJsZS1o
ZWFkZXJzLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFi
bGUtaGVhZGVycy1hdHRyaWJ1dGUuaHRtbAppbmRleCAzZGM1MTAyN2E0N2IuLjhmOWZhOTNiNzQ2
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvdGFibGUtaGVhZGVy
cy1hdHRyaWJ1dGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy90YWJs
ZS1oZWFkZXJzLWF0dHJpYnV0ZS5odG1sCkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICB2YXIgdGFibGUsIGNlbGwxLCBjb2xI
ZWFkZXJzLCBjZWxsMjsKLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
c2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRhYmxlID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIpOwogCiAgICAg
ICAgICAgICAvLyBUaGUgZmlyc3QgY2VsbCByZWZlcmVuY2VzIGhlYWRlcjEgaGVhZGVyMyBoZWFk
ZXI1LgpAQCAtNTMsNyArNTMsNyBAQAogCiAgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcbkNo
YW5naW5nIGBoZWFkZXJzYCBhdHRyaWJ1dGUgb2YgI2NlbGwyIHRvIGJlICdoZWFkZXIxJy5cbiI7
CiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VsbDIiKS5zZXRBdHRyaWJ1
dGUoImhlYWRlcnMiLCAiaGVhZGVyMSIpOwotICAgICAgICAgICAgdGVzdE91dHB1dCArPSBleHBl
Y3QoImNlbGwyLmNvbHVtbkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxGb3JDb2x1bW5B
bmRSb3coMCwgMCkpIiwgInRydWUiKTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYXdhaXQg
ZXhwZWN0QXN5bmMoImNlbGwyLmNvbHVtbkhlYWRlcnMoKVswXS5pc0VxdWFsKHRhYmxlLmNlbGxG
b3JDb2x1bW5BbmRSb3coMCwgMCkpIiwgInRydWUiKTsKIAogICAgICAgICAgICAgZGVidWcodGVz
dE91dHB1dCk7CiAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>