<?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>270593</bug_id>
          
          <creation_ts>2024-03-06 12:48:15 -0800</creation_ts>
          <short_desc>AX: AXObjectCache::performDeferredCacheUpdate can run with dirty sub-frame layout, causing incorrect tree updates</short_desc>
          <delta_ts>2024-03-07 08:13:58 -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>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>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>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2019146</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 12:48:15 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019147</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-03-06 12:48:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/124158680&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019149</commentid>
    <comment_count>2</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 12:48:36 -0800</bug_when>
    <thetext>rdar://103616732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019169</commentid>
    <comment_count>3</comment_count>
      <attachid>470211</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 13:48:08 -0800</bug_when>
    <thetext>Created attachment 470211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019209</commentid>
    <comment_count>4</comment_count>
      <attachid>470213</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 15:41:46 -0800</bug_when>
    <thetext>Created attachment 470213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019212</commentid>
    <comment_count>5</comment_count>
      <attachid>470214</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 15:54:06 -0800</bug_when>
    <thetext>Created attachment 470214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019245</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2024-03-06 17:51:57 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #5)
&gt; Created attachment 470214 [details]
&gt; Patch

In https://bugs.webkit.org/show_bug.cgi?id=268239, we made AXObjectCache::performDeferredCacheUpdate
detect when layout is dirty, and either wait another layout cycle to trigger a cache update, or
force it if necessary. This is important because processing cache updates with dirty layout
can cause incorrect behavior, like objects being ignored incorrectly.

This change was effective, but did not handle the case where a sub-frame had dirty layout, meaning
we can still run into this bug. This patch addresses the issue by forcing all sub-frames to layout

AG: to layout -&gt; to lay out ?

if necessary.

* LayoutTests/platform/glib/TestExpectations: Skip new test.
* LayoutTests/platform/ios/TestExpectations: Enable new test.
* LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added.
* LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added.
* LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt: Added.
* LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html: Added.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::performDeferredCacheUpdate):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::forceAXObjectCacheUpdate const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
---
 .../WebCore/accessibility/AXObjectCache.cpp   | 11 ++++
 Source/WebCore/accessibility/AXObjectCache.h  |  2 +-
 Source/WebCore/testing/Internals.cpp          |  6 ++
 Source/WebCore/testing/Internals.h            |  1 +
 Source/WebCore/testing/Internals.idl          |  1 +
 ...tree-update-with-dirty-layout-expected.txt | 45 ++++++++++++++
 .../iframe-tree-update-with-dirty-layout.html | 58 +++++++++++++++++++
 LayoutTests/platform/glib/TestExpectations    |  1 +
 LayoutTests/platform/ios/TestExpectations     |  1 +
 ...tree-update-with-dirty-layout-expected.txt | 25 ++++++++
 ...tree-update-with-dirty-layout-expected.txt | 41 +++++++++++++
 11 files changed, 191 insertions(+), 1 deletion(-)
 create mode 100644 LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt
 create mode 100644 LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html
 create mode 100644 LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt
 create mode 100644 LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt

diff --git a/Source/WebCore/accessibility/AXObjectCache.cpp b/Source/WebCore/accessibility/AXObjectCache.cpp
index 2b9430fcd819..c29900887c5f 100644
--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ b/Source/WebCore/accessibility/AXObjectCache.cpp
@@ -4046,6 +4046,17 @@ void AXObjectCache::performDeferredCacheUpdate(ForceLayout forceLayout)
         }
     }

+    RefPtr&lt;Frame&gt; frame = document-&gt;frame();

AG: RefPtr frame

+    if (frame &amp;&amp; frame-&gt;isMainFrame()) {
+        // The layout of subframes must also be clean (assuming we&apos;re processing objects from those subframes), so force it here if necessary.
+        for (; frame; frame = frame-&gt;tree().traverseNext()) {
+            auto* localFrame = dynamicDowncast&lt;LocalFrame&gt;(frame.get());
+            RefPtr subDocument = localFrame ? localFrame-&gt;document() : nullptr;
+            if (subDocument &amp;&amp; subDocument-&gt;view() &amp;&amp; subDocument-&gt;view()-&gt;needsLayout())
+                subDocument-&gt;updateLayoutIgnorePendingStylesheets();

AG: should we do the same for RemoteFrames for site isolation?

+        }
+    }
+
     bool markedRelationsDirty = false;
     auto markRelationsDirty = [&amp;] () {
         if (!markedRelationsDirty) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019250</commentid>
    <comment_count>7</comment_count>
      <attachid>470219</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 19:01:52 -0800</bug_when>
    <thetext>Created attachment 470219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019251</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2024-03-06 19:10:14 -0800</bug_when>
    <thetext>&gt; we can still run into this bug. This patch addresses the issue by forcing
&gt; all sub-frames to layout
&gt; 
&gt; AG: to layout -&gt; to lay out ?
TW: Fixed.

&gt; +    RefPtr&lt;Frame&gt; frame = document-&gt;frame();
&gt;
&gt; AG: RefPtr frame
TW: We need the type specifier unfortunately. Document::frame() returns a LocalFrame, but we need the type to be the superclass Frame because that&apos;s what FrameTree::traverseNext() returns. We could eliminate the type specifier if a method like FrameTree::traverseNextLocal() existed.

&gt; subDocument-&gt;view()-&gt;needsLayout())
&gt; +                subDocument-&gt;updateLayoutIgnorePendingStylesheets();
&gt; 
&gt; AG: should we do the same for RemoteFrames for site isolation?
TW: I think we&apos;re OK there. Because those RemoteFrames will be their own web content processes, they&apos;ll have their own main frames, and prior to this patch we already ensured that the main frame didn&apos;t have dirty layout before running this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2019351</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-03-07 08:13:56 -0800</bug_when>
    <thetext>Committed 275791@main (c69e4c0caaf5): &lt;https://commits.webkit.org/275791@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 470219.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470211</attachid>
            <date>2024-03-06 13:48:08 -0800</date>
            <delta_ts>2024-03-06 15:41:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270593-20240306134807.patch</filename>
            <type>text/plain</type>
            <size>11754</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBhNmYzOWM2NjVjYjc1NWY5MGFkNzQ5YmVlOGUwNzg3YTU3MThmNTAxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCA2IE1hciAyMDI0IDEyOjQ4OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFY
T2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIGNhbiBydW4gd2l0aAogZGly
dHkgc3ViLWZyYW1lIGxheW91dCwgY2F1c2luZyBpbmNvcnJlY3QgdHJlZSB1cGRhdGVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwNTkzIHJkYXI6Ly8xMDM2MTY3
MzIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2ODIzOSwgd2UgbWFkZSBBWE9iamVjdENhY2hlOjpwZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZQpkZXRlY3Qgd2hlbiBsYXlvdXQgaXMgZGlydHksIGFuZCBlaXRo
ZXIgd2FpdCBhbm90aGVyIGxheW91dCBjeWNsZSB0byB0cmlnZ2VyIGEgY2FjaGUgdXBkYXRlLCBv
cgpmb3JjZSBpdCBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgcHJvY2Vz
c2luZyBjYWNoZSB1cGRhdGVzIHdpdGggZGlydHkgbGF5b3V0CmNhbiBjYXVzZSBpbmNvcnJlY3Qg
YmVoYXZpb3IsIGxpa2Ugb2JqZWN0cyBiZWluZyBpZ25vcmVkIGluY29ycmVjdGx5LgoKVGhpcyBj
aGFuZ2Ugd2FzIGVmZmVjdGl2ZSwgYnV0IGRpZCBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEg
c3ViLWZyYW1lIGhhZCBkaXJ0eSBsYXlvdXQsIG1lYW5pbmcKd2UgY2FuIHN0aWxsIHJ1biBpbnRv
IHRoaXMgYnVnLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgZm9yY2luZyBhbGwg
c3ViLWZyYW1lcyB0byBsYXlvdXQKaWYgbmVjZXNzYXJ5LgoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgbmV3IHRlc3QuCiogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGly
dHktbGF5b3V0Lmh0bWw6IEFkZGVkLgoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVk
Q2FjaGVVcGRhdGUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKFdlYkNvcmU6Oklu
dGVybmFsczo6Zm9yY2VBWE9iamVjdENhY2hlVXBkYXRlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oOgoqIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbDoKLS0tCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAg
fCAxMiArKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAg
fCAgMiArLQogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwICAgICAgICAgIHwg
IDggKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oICAgICAgICAgICAgfCAg
MSArCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgICAgICAgICAgfCAgMSAr
CiAuLi50cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQgfCA0NSArKysr
KysrKysrKysrKwogLi4uL2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1s
IHwgNTggKysrKysrKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zICAgIHwgIDEgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgIHwgIDEgKwogLi4udHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhw
ZWN0ZWQudHh0IHwgMjUgKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDE1MyBpbnNlcnRpb25z
KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRo
LWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyYjk0MzBmY2Q4MTkuLjk1MmNjNDJjOWEzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBA
IC00MDQ2LDYgKzQwNDYsMTggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRD
YWNoZVVwZGF0ZShGb3JjZUxheW91dCBmb3JjZUxheW91dCkKICAgICAgICAgfQogICAgIH0KIAor
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+aXNNYWluRnJhbWUoKSkgeworICAgICAgICAvLyBUaGUgbGF5b3V0IG9mIHN1YmZyYW1l
cyBtdXN0IGFsc28gYmUgY2xlYW4gKGFzc3VtaW5nIHdlJ3JlIHByb2Nlc3Npbmcgb2JqZWN0cyBm
cm9tIHRob3NlIHN1YmZyYW1lcyksIHNvIGZvcmNlIGl0IGhlcmUgaWYgbmVjZXNzYXJ5LgorICAg
ICAgICBmb3IgKDsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkg
eworICAgICAgICAgICAgYXV0byogbG9jYWxGcmFtZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZy
YW1lPihmcmFtZSk7CisgICAgICAgICAgICBhdXRvKiBzdWJEb2N1bWVudCA9IGxvY2FsRnJhbWUg
PyBsb2NhbEZyYW1lLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKKyAgICAgICAgICAgIGF1dG8qIHN1
YlJlbmRlclZpZXcgPSBzdWJEb2N1bWVudCA/IHN1YkRvY3VtZW50LT52aWV3KCkgOiBudWxscHRy
OworICAgICAgICAgICAgaWYgKHN1YlJlbmRlclZpZXcgJiYgc3ViUmVuZGVyVmlldy0+bmVlZHNM
YXlvdXQoKSkKKyAgICAgICAgICAgICAgICBzdWJEb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBib29sIG1hcmtl
ZFJlbGF0aW9uc0RpcnR5ID0gZmFsc2U7CiAgICAgYXV0byBtYXJrUmVsYXRpb25zRGlydHkgPSBb
Jl0gKCkgewogICAgICAgICBpZiAoIW1hcmtlZFJlbGF0aW9uc0RpcnR5KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDMwZDc2NDc0ZWVlOC4u
ODQ4YmU4M2VhNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaApAQCAtNDkzLDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlZmVyUmVjb21w
dXRlVGFibGVDZWxsU2xvdHMoQWNjZXNzaWJpbGl0eVRhYmxlJik7CiAgICAgdm9pZCBkZWZlclRl
eHRDaGFuZ2VkSWZOZWVkZWQoTm9kZSopOwogICAgIHZvaWQgZGVmZXJTZWxlY3RlZENoaWxkcmVu
Q2hhbmdlZElmTmVlZGVkKEVsZW1lbnQmKTsKLSAgICB2b2lkIHBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKEZvcmNlTGF5b3V0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBlcmZvcm1EZWZl
cnJlZENhY2hlVXBkYXRlKEZvcmNlTGF5b3V0KTsKICAgICB2b2lkIGRlZmVyVGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQm
LCBjb25zdCBTdHJpbmcmIHByZXZpb3VzVmFsdWUpOwogCiAgICAgc3RkOjpvcHRpb25hbDxTaW1w
bGVSYW5nZT4gcmFuZ2VNYXRjaGVzVGV4dE5lYXJSYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIGNv
bnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA0NzQy
YTZhMTI3MC4uNGQyZGMzMDE5ODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC00MjA5LDYgKzQyMDksMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFVzZXNPdmVybGF5U2Ny
b2xsYmFycyhib29sIGVuYWJsZWQpCiB9CiAjZW5kaWYKIAordm9pZCBJbnRlcm5hbHM6OmZvcmNl
QVhPYmplY3RDYWNoZVVwZGF0ZSgpIGNvbnN0Cit7CisgICAgYXV0byogZG9jdW1lbnQgPSBjb250
ZXh0RG9jdW1lbnQoKTsKKyAgICBhdXRvKiBjYWNoZSA9IGRvY3VtZW50LT5heE9iamVjdENhY2hl
KCk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGUpOworICAgIGNhY2hlLT5wZXJmb3JtRGVmZXJy
ZWRDYWNoZVVwZGF0ZShGb3JjZUxheW91dDo6WWVzKTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OmZv
cmNlUmVsb2FkKGJvb2wgZW5kVG9FbmQpCiB7CiAgICAgT3B0aW9uU2V0PFJlbG9hZE9wdGlvbj4g
cmVsb2FkT3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDVlZTI4MTgw
NDVmOS4uNGU4ZjdlYTc0OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY4
Myw2ICs2ODMsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdG9vbFRpcEZyb21FbGVtZW50KEVs
ZW1lbnQmKSBjb25zdDsKIAorICAgIHZvaWQgZm9yY2VBWE9iamVjdENhY2hlVXBkYXRlKCkgY29u
c3Q7CiAgICAgdm9pZCBmb3JjZVJlbG9hZChib29sIGVuZFRvRW5kKTsKICAgICB2b2lkIHJlbG9h
ZEV4cGlyZWRPbmx5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBk
NTc5ZGM1NDZiMTguLjBiYTk0MjMyYjMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbApAQCAtODY1LDYgKzg2NSw3IEBAIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBGZXRjaFJl
c3BvbnNlKSBGZXRjaE9iamVjdDsKIAogICAgIHVuZGVmaW5lZCBzZXRVc2VzT3ZlcmxheVNjcm9s
bGJhcnMoYm9vbGVhbiBlbmFibGVkKTsKIAorICAgIHVuZGVmaW5lZCBmb3JjZUFYT2JqZWN0Q2Fj
aGVVcGRhdGUoKTsKICAgICB1bmRlZmluZWQgZm9yY2VSZWxvYWQoYm9vbGVhbiBlbmRUb0VuZCk7
CiAgICAgdW5kZWZpbmVkIHJlbG9hZEV4cGlyZWRPbmx5KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBk
YXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmJhM2JjMjIzMTJjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ1IEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24n
dCBtYWtlIGluY29ycmVjdCB1cGRhdGVzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBh
biBpZnJhbWUgaGFzIGRpcnR5IGxheW91dC4KKworRHVtcGluZyBpbml0aWFsIEFYIHRyZWUgc2Vh
cmNoIHRyYXZlcnNhbC4KKwore0FYUm9sZTogQVhTY3JvbGxBcmVhfQorCit7QVhSb2xlOiBBWFdl
YkFyZWF9CisKK3sjbWFpbiBBWFJvbGU6IEFYR3JvdXB9CisKKworRHVtcGluZyBuZXcgQVggdHJl
ZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xlOiBBWFNjcm9sbEFyZWF9CisKK3tBWFJvbGU6
IEFYV2ViQXJlYX0KKworeyNtYWluIEFYUm9sZTogQVhHcm91cH0KKwore0FYUm9sZTogQVhUYWJs
ZX0KKwore0FYUm9sZTogQVhSb3d9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhT
dGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgMX0KKwore0FYUm9sZTogQVhDZWxsfQorCit7QVhSb2xl
OiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAyfQorCit7QVhSb2xlOiBBWFJvd30KKwore0FY
Um9sZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAzfQor
Cit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxs
IDR9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0
ZS13aXRoLWRpcnR5LWxheW91dC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJh
bWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjY3Yzk2NmQwYTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5
b3V0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aWZyYW1l
IGlkPSJpZnJhbWUiIG9ubG9hZD0icnVuVGVzdCgpIiBzcmNkb2M9IjxtYWluIGlkPSdtYWluJz48
L21haW4+Ij48L2lmcmFtZT4KKworPHNjcmlwdD4KK3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0IGVu
c3VyZXMgd2UgZG9uJ3QgbWFrZSBpbmNvcnJlY3QgdXBkYXRlcyB0byB0aGUgYWNjZXNzaWJpbGl0
eSB0cmVlIHdoZW4gYW4gaWZyYW1lIGhhcyBkaXJ0eSBsYXlvdXQuXG5cbiI7Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKCF3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRv
dWNoIHRoZSB0cmVlIHRvIGVuc3VyZSB0aGUgQVhPYmplY3RDYWNoZSBpcyBjcmVhdGVkLgorICAg
IHRvdWNoQWNjZXNzaWJpbGl0eVRyZWUoYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1l
bnQpOworICAgIG91dHB1dCArPSAiRHVtcGluZyBpbml0aWFsIEFYIHRyZWUgc2VhcmNoIHRyYXZl
cnNhbC5cbiI7CisgICAgdmFyIHdlYmFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290
RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgb3V0cHV0ICs9IGR1bXBBWFNlYXJjaFRyYXZl
cnNhbCh3ZWJhcmVhLCB7IGV4Y2x1ZGVSb2xlczogWyJzY3JvbGxiYXIiXSB9KTsKKyAgICBvdXRw
dXQgKz0gIlxuXG4iOworCisgICAgdmFyIHRyYXZlcnNhbE91dHB1dDsKKyAgICBzZXRUaW1lb3V0
KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBpZnJhbWVEb2N1bWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5jb250ZW50V2luZG93LmRvY3VtZW50OworICAg
ICAgICBsZXQgbmV3VGFibGUgPSBpZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIp
OworICAgICAgICBuZXdUYWJsZS5pbm5lckhUTUwgPSAiPHRyPjx0aD5DZWxsIDE8L3RoPjx0aD5D
ZWxsIDI8L3RoPjwvdHI+PHRyPjx0ZD5DZWxsIDM8L3RkPjx0ZD5DZWxsIDQ8L3RkPjwvdHI+IjsK
KyAgICAgICAgaWZyYW1lRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKS5hcHBlbmRDaGls
ZChuZXdUYWJsZSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAg
ICAvLyBUaGUgcGxhY2VtZW50IG9mIHRoaXMgZm9yY2VkIHVwZGF0ZSBpcyBpbnRlbnRpb25hbGx5
IHdpdGhpbiB0aGlzIHdhaXRGb3IgYmxvY2sgYXMgcGxhY2luZyBpdCBlbHNld2hlcmUKKyAgICAg
ICAgICAgIC8vIGNhdXNlcyB0aGUgdGltaW5nIHRvIGJlIGRpZmZlcmVudCwgYW5kIHRoZSBidWcg
bm90IHRvIGJlIHRyaWdnZXJlZC4KKyAgICAgICAgICAgIGludGVybmFscy5mb3JjZUFYT2JqZWN0
Q2FjaGVVcGRhdGUoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9KTsKKwor
ICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgIHRyYXZlcnNhbE91dHB1
dCA9IGR1bXBBWFNlYXJjaFRyYXZlcnNhbCh3ZWJhcmVhLCB7IGV4Y2x1ZGVSb2xlczogWyJzY3Jv
bGxiYXIiXSB9KTsKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzYWxPdXRwdXQuaW5jbHVkZXMo
IkNlbGwgMSIpCisgICAgICAgICAgICAgICAgJiYgdHJhdmVyc2FsT3V0cHV0LmluY2x1ZGVzKCJD
ZWxsIDIiKQorICAgICAgICAgICAgICAgICYmIHRyYXZlcnNhbE91dHB1dC5pbmNsdWRlcygiQ2Vs
bCAzIikKKyAgICAgICAgICAgICAgICAmJiB0cmF2ZXJzYWxPdXRwdXQuaW5jbHVkZXMoIkNlbGwg
NCIpOworICAgICAgICB9KTsKKworICAgICAgICBvdXRwdXQgKz0gIkR1bXBpbmcgbmV3IEFYIHRy
ZWUgc2VhcmNoIHRyYXZlcnNhbC5cbiI7CisgICAgICAgIG91dHB1dCArPSB0cmF2ZXJzYWxPdXRw
dXQ7CisKKyAgICAgICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQzZWI5NzkzZDgxNy4uMTNhZDll
ODQ1NjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBA
IC01MzUsNiArNTM1LDcgQEAgYWNjZXNzaWJpbGl0eS90YWJsZS1zZWFyY2gtdHJhdmVyc2FsLmh0
bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxpdHkvdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQu
aHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9keW5hbWljYWxseS1jaGFuZ2luZy1pZnJhbWUt
cmVtYWlucy1hY2Nlc3NpYmxlLmh0bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxpdHkvaWdub3JlLW1v
ZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwgWyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaWZy
YW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwgWyBTa2lwIF0KIGFjY2Vzc2li
aWxpdHkvaWZyYW1lLXdpdGgtcm9sZS5odG1sIFsgU2tpcCBdCiAKIGFjY2Vzc2liaWxpdHkvZWRp
dGFibGUtd2VicGFnZS1mb2N1c2VkLXVpLWVsZW1lbnQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkM2EzMjM1MDZhMDMuLjMxZTA3
Njk3YzQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIyMTcsNiArMjIxNyw3IEBAIGFjY2Vzc2liaWxpdHkvZWxlbWVudC1oYXNwb3B1cC5odG1sIFsg
UGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2VtcHR5LXRleHQtdW5kZXItZWxlbWVudC1jYWNoZWQuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWxldmVsLmh0bWwgWyBQYXNzIF0KIGFj
Y2Vzc2liaWxpdHkvaHRtbDUtcmVxdWlyZWQtYXR0cmlidXRlLmh0bWwgWyBQYXNzIF0KK2FjY2Vz
c2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwgWyBQYXNz
IF0KIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGgtcm9sZS5odG1sIFsgUGFzcyBdCiBhY2Nlc3Np
YmlsaXR5L2lucHV0LXR5cGUtaGlkZGVuLWluLWFyaWEtaGlkZGVuLWZhbHNlLmh0bWwgWyBQYXNz
IF0KIGFjY2Vzc2liaWxpdHkvZGF0ZXRpbWUvaW5wdXQtdGltZS1sYWJlbC12YWx1ZS5odG1sIFsg
UGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0
eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdp
dGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjI2MWEwNTRiMDI1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5
LWxheW91dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMg
d2UgZG9uJ3QgbWFrZSBpbmNvcnJlY3QgdXBkYXRlcyB0byB0aGUgYWNjZXNzaWJpbGl0eSB0cmVl
IHdoZW4gYW4gaWZyYW1lIGhhcyBkaXJ0eSBsYXlvdXQuCisKK0R1bXBpbmcgaW5pdGlhbCBBWCB0
cmVlIHNlYXJjaCB0cmF2ZXJzYWwuCisKK3tXZWJBcmVhfQorCit7I21haW4gTGFuZG1hcmtNYWlu
fQorCisKK0R1bXBpbmcgbmV3IEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC4KKwore1dlYkFyZWF9
CisKK3tTdGF0aWNUZXh0IEFYTGFiZWw6IENlbGwgMX0KKwore1N0YXRpY1RleHQgQVhMYWJlbDog
Q2VsbCAyfQorCit7U3RhdGljVGV4dCBBWExhYmVsOiBDZWxsIDN9CisKK3tTdGF0aWNUZXh0IEFY
TGFiZWw6IENlbGwgNH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470213</attachid>
            <date>2024-03-06 15:41:46 -0800</date>
            <delta_ts>2024-03-06 15:54:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270593-20240306154145.patch</filename>
            <type>text/plain</type>
            <size>13034</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAzMzIwMDA5NWM1NmYwNzVjMTgxNGU2MjVhODMzZGIxZWQwNDMzYjJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCA2IE1hciAyMDI0IDEyOjQ4OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFY
T2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIGNhbiBydW4gd2l0aAogZGly
dHkgc3ViLWZyYW1lIGxheW91dCwgY2F1c2luZyBpbmNvcnJlY3QgdHJlZSB1cGRhdGVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwNTkzIHJkYXI6Ly8xMDM2MTY3
MzIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2ODIzOSwgd2UgbWFkZSBBWE9iamVjdENhY2hlOjpwZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZQpkZXRlY3Qgd2hlbiBsYXlvdXQgaXMgZGlydHksIGFuZCBlaXRo
ZXIgd2FpdCBhbm90aGVyIGxheW91dCBjeWNsZSB0byB0cmlnZ2VyIGEgY2FjaGUgdXBkYXRlLCBv
cgpmb3JjZSBpdCBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgcHJvY2Vz
c2luZyBjYWNoZSB1cGRhdGVzIHdpdGggZGlydHkgbGF5b3V0CmNhbiBjYXVzZSBpbmNvcnJlY3Qg
YmVoYXZpb3IsIGxpa2Ugb2JqZWN0cyBiZWluZyBpZ25vcmVkIGluY29ycmVjdGx5LgoKVGhpcyBj
aGFuZ2Ugd2FzIGVmZmVjdGl2ZSwgYnV0IGRpZCBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEg
c3ViLWZyYW1lIGhhZCBkaXJ0eSBsYXlvdXQsIG1lYW5pbmcKd2UgY2FuIHN0aWxsIHJ1biBpbnRv
IHRoaXMgYnVnLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgZm9yY2luZyBhbGwg
c3ViLWZyYW1lcyB0byBsYXlvdXQKaWYgbmVjZXNzYXJ5LgoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgbmV3IHRlc3QuCiogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5o
dG1sOiBBZGRlZC4KCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRl
KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHA6CihXZWJDb3JlOjpJbnRlcm5hbHM6OmZv
cmNlQVhPYmplY3RDYWNoZVVwZGF0ZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaDoKKiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGw6Ci0tLQog
Li4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMTIgKysrKwog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICB8ICA2ICsrCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oICAgICAgICAgICAgfCAgMSArCiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgICAgICAgICAgfCAgMSArCiAuLi50cmVlLXVw
ZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQgfCA0NSArKysrKysrKysrKysrKwog
Li4uL2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1sIHwgNTggKysrKysr
KysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
ICAgIHwgIDEgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgICAg
IHwgIDEgKwogLi4udHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IHwg
MjUgKysrKysrKysKIC4uLnRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4
dCB8IDQxICsrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDE5MiBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11
cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRp
cnR5LWxheW91dC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGly
dHktbGF5b3V0LWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDJiOTQzMGZjZDgxOS4uOTUyY2M0MmM5YTNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTQw
NDYsNiArNDA0NiwxOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogICAgICAgICB9CiAgICAgfQogCisgICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgaWYgKGZyYW1lICYmIGZyYW1l
LT5pc01haW5GcmFtZSgpKSB7CisgICAgICAgIC8vIFRoZSBsYXlvdXQgb2Ygc3ViZnJhbWVzIG11
c3QgYWxzbyBiZSBjbGVhbiAoYXNzdW1pbmcgd2UncmUgcHJvY2Vzc2luZyBvYmplY3RzIGZyb20g
dGhvc2Ugc3ViZnJhbWVzKSwgc28gZm9yY2UgaXQgaGVyZSBpZiBuZWNlc3NhcnkuCisgICAgICAg
IGZvciAoOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Cisg
ICAgICAgICAgICBhdXRvKiBsb2NhbEZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+
KGZyYW1lKTsKKyAgICAgICAgICAgIGF1dG8qIHN1YkRvY3VtZW50ID0gbG9jYWxGcmFtZSA/IGxv
Y2FsRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOworICAgICAgICAgICAgYXV0byogc3ViUmVu
ZGVyVmlldyA9IHN1YkRvY3VtZW50ID8gc3ViRG9jdW1lbnQtPnZpZXcoKSA6IG51bGxwdHI7Cisg
ICAgICAgICAgICBpZiAoc3ViUmVuZGVyVmlldyAmJiBzdWJSZW5kZXJWaWV3LT5uZWVkc0xheW91
dCgpKQorICAgICAgICAgICAgICAgIHN1YkRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGJvb2wgbWFya2VkUmVs
YXRpb25zRGlydHkgPSBmYWxzZTsKICAgICBhdXRvIG1hcmtSZWxhdGlvbnNEaXJ0eSA9IFsmXSAo
KSB7CiAgICAgICAgIGlmICghbWFya2VkUmVsYXRpb25zRGlydHkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggMzBkNzY0NzRlZWU4Li44NDhi
ZTgzZWE1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCkBAIC00OTMsNyArNDkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVmZXJSZWNvbXB1dGVU
YWJsZUNlbGxTbG90cyhBY2Nlc3NpYmlsaXR5VGFibGUmKTsKICAgICB2b2lkIGRlZmVyVGV4dENo
YW5nZWRJZk5lZWRlZChOb2RlKik7CiAgICAgdm9pZCBkZWZlclNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkSWZOZWVkZWQoRWxlbWVudCYpOwotICAgIHZvaWQgcGVyZm9ybURlZmVycmVkQ2FjaGVVcGRh
dGUoRm9yY2VMYXlvdXQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGVyZm9ybURlZmVycmVk
Q2FjaGVVcGRhdGUoRm9yY2VMYXlvdXQpOwogICAgIHZvaWQgZGVmZXJUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYsIGNv
bnN0IFN0cmluZyYgcHJldmlvdXNWYWx1ZSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJh
bmdlPiByYW5nZU1hdGNoZXNUZXh0TmVhclJhbmdlKGNvbnN0IFNpbXBsZVJhbmdlJiwgY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMDQ3NDJhNmEx
MjcwLi42NjBiODI1ODVhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTQyMDksNiArNDIwOSwxMiBAQCB2b2lkIEludGVybmFsczo6c2V0VXNlc092ZXJsYXlTY3JvbGxi
YXJzKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRpZgogCit2b2lkIEludGVybmFsczo6Zm9yY2VBWE9i
amVjdENhY2hlVXBkYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoUmVmUHRyIGRvY3VtZW50ID0gY29u
dGV4dERvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5heE9iamVjdENhY2hlKCktPnBlcmZv
cm1EZWZlcnJlZENhY2hlVXBkYXRlKEZvcmNlTGF5b3V0OjpZZXMpOworfQorCiB2b2lkIEludGVy
bmFsczo6Zm9yY2VSZWxvYWQoYm9vbCBlbmRUb0VuZCkKIHsKICAgICBPcHRpb25TZXQ8UmVsb2Fk
T3B0aW9uPiByZWxvYWRPcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXgg
NWVlMjgxODA0NWY5Li40ZThmN2VhNzQ5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtNjgzLDYgKzY4Myw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyB0b29sVGlwRnJvbUVs
ZW1lbnQoRWxlbWVudCYpIGNvbnN0OwogCisgICAgdm9pZCBmb3JjZUFYT2JqZWN0Q2FjaGVVcGRh
dGUoKSBjb25zdDsKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wgZW5kVG9FbmQpOwogICAgIHZv
aWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IGQ1NzlkYzU0NmIxOC4uMGJhOTQyMzJiMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC04NjUsNiArODY1LDcgQEAgdHlwZWRlZiAoRmV0Y2hSZXF1ZXN0IG9y
IEZldGNoUmVzcG9uc2UpIEZldGNoT2JqZWN0OwogCiAgICAgdW5kZWZpbmVkIHNldFVzZXNPdmVy
bGF5U2Nyb2xsYmFycyhib29sZWFuIGVuYWJsZWQpOwogCisgICAgdW5kZWZpbmVkIGZvcmNlQVhP
YmplY3RDYWNoZVVwZGF0ZSgpOwogICAgIHVuZGVmaW5lZCBmb3JjZVJlbG9hZChib29sZWFuIGVu
ZFRvRW5kKTsKICAgICB1bmRlZmluZWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUt
dHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmEzYmMyMjMxMmMxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHdlIGRvbid0IG1ha2UgaW5jb3JyZWN0IHVwZGF0ZXMgdG8gdGhlIGFjY2Vzc2liaWxpdHkgdHJl
ZSB3aGVuIGFuIGlmcmFtZSBoYXMgZGlydHkgbGF5b3V0LgorCitEdW1waW5nIGluaXRpYWwgQVgg
dHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xlOiBBWFNjcm9sbEFyZWF9CisKK3tBWFJv
bGU6IEFYV2ViQXJlYX0KKworeyNtYWluIEFYUm9sZTogQVhHcm91cH0KKworCitEdW1waW5nIG5l
dyBBWCB0cmVlIHNlYXJjaCB0cmF2ZXJzYWwuCisKK3tBWFJvbGU6IEFYU2Nyb2xsQXJlYX0KKwor
e0FYUm9sZTogQVhXZWJBcmVhfQorCit7I21haW4gQVhSb2xlOiBBWEdyb3VwfQorCit7QVhSb2xl
OiBBWFRhYmxlfQorCit7QVhSb2xlOiBBWFJvd30KKwore0FYUm9sZTogQVhDZWxsfQorCit7QVhS
b2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAxfQorCit7QVhSb2xlOiBBWENlbGx9CisK
K3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxsIDJ9CisKK3tBWFJvbGU6IEFYUm93
fQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBD
ZWxsIDN9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFs
dWU6IENlbGwgNH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRy
ZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjdjOTY2ZDBhMzRkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1k
aXJ0eS1sYXlvdXQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisK
KzxpZnJhbWUgaWQ9ImlmcmFtZSIgb25sb2FkPSJydW5UZXN0KCkiIHNyY2RvYz0iPG1haW4gaWQ9
J21haW4nPjwvbWFpbj4iPjwvaWZyYW1lPgorCis8c2NyaXB0PgordmFyIG91dHB1dCA9ICJUaGlz
IHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBtYWtlIGluY29ycmVjdCB1cGRhdGVzIHRvIHRoZSBhY2Nl
c3NpYmlsaXR5IHRyZWUgd2hlbiBhbiBpZnJhbWUgaGFzIGRpcnR5IGxheW91dC5cblxuIjsKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBp
ZiAoIXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gVG91Y2ggdGhlIHRyZWUgdG8gZW5zdXJlIHRoZSBBWE9iamVjdENhY2hlIGlzIGNyZWF0
ZWQuCisgICAgdG91Y2hBY2Nlc3NpYmlsaXR5VHJlZShhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5y
b290RWxlbWVudCk7CisgICAgb3V0cHV0ICs9ICJEdW1waW5nIGluaXRpYWwgQVggdHJlZSBzZWFy
Y2ggdHJhdmVyc2FsLlxuIjsKKyAgICB2YXIgd2ViYXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICBvdXRwdXQgKz0gZHVtcEFYU2Vh
cmNoVHJhdmVyc2FsKHdlYmFyZWEsIHsgZXhjbHVkZVJvbGVzOiBbInNjcm9sbGJhciJdIH0pOwor
ICAgIG91dHB1dCArPSAiXG5cbiI7CisKKyAgICB2YXIgdHJhdmVyc2FsT3V0cHV0OworICAgIHNl
dFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IGlmcmFtZURvY3VtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQ7CisgICAgICAgIGxldCBuZXdUYWJsZSA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InRhYmxlIik7CisgICAgICAgIG5ld1RhYmxlLmlubmVySFRNTCA9ICI8dHI+PHRoPkNlbGwgMTwv
dGg+PHRoPkNlbGwgMjwvdGg+PC90cj48dHI+PHRkPkNlbGwgMzwvdGQ+PHRkPkNlbGwgNDwvdGQ+
PC90cj4iOworICAgICAgICBpZnJhbWVEb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpLmFw
cGVuZENoaWxkKG5ld1RhYmxlKTsKKworICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAg
ICAgICAgICAgIC8vIFRoZSBwbGFjZW1lbnQgb2YgdGhpcyBmb3JjZWQgdXBkYXRlIGlzIGludGVu
dGlvbmFsbHkgd2l0aGluIHRoaXMgd2FpdEZvciBibG9jayBhcyBwbGFjaW5nIGl0IGVsc2V3aGVy
ZQorICAgICAgICAgICAgLy8gY2F1c2VzIHRoZSB0aW1pbmcgdG8gYmUgZGlmZmVyZW50LCBhbmQg
dGhlIGJ1ZyBub3QgdG8gYmUgdHJpZ2dlcmVkLgorICAgICAgICAgICAgaW50ZXJuYWxzLmZvcmNl
QVhPYmplY3RDYWNoZVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0pOworCisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgdHJhdmVy
c2FsT3V0cHV0ID0gZHVtcEFYU2VhcmNoVHJhdmVyc2FsKHdlYmFyZWEsIHsgZXhjbHVkZVJvbGVz
OiBbInNjcm9sbGJhciJdIH0pOworICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNhbE91dHB1dC5p
bmNsdWRlcygiQ2VsbCAxIikKKyAgICAgICAgICAgICAgICAmJiB0cmF2ZXJzYWxPdXRwdXQuaW5j
bHVkZXMoIkNlbGwgMiIpCisgICAgICAgICAgICAgICAgJiYgdHJhdmVyc2FsT3V0cHV0LmluY2x1
ZGVzKCJDZWxsIDMiKQorICAgICAgICAgICAgICAgICYmIHRyYXZlcnNhbE91dHB1dC5pbmNsdWRl
cygiQ2VsbCA0Iik7CisgICAgICAgIH0pOworCisgICAgICAgIG91dHB1dCArPSAiRHVtcGluZyBu
ZXcgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLlxuIjsKKyAgICAgICAgb3V0cHV0ICs9IHRyYXZl
cnNhbE91dHB1dDsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDNlYjk3OTNkODE3
Li4xM2FkOWU4NDU2N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTUzNSw2ICs1MzUsNyBAQCBhY2Nlc3NpYmlsaXR5L3RhYmxlLXNlYXJjaC10cmF2
ZXJzYWwuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS90cmVlLXVwZGF0ZS13aXRoLWRpcnR5
LWxheW91dC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2R5bmFtaWNhbGx5LWNoYW5naW5n
LWlmcmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9p
Z25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBbIFNraXAgXQorYWNjZXNzaWJp
bGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbCBbIFNraXAgXQog
YWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1yb2xlLmh0bWwgWyBTa2lwIF0KIAogYWNjZXNzaWJp
bGl0eS9lZGl0YWJsZS13ZWJwYWdlLWZvY3VzZWQtdWktZWxlbWVudC5odG1sIFsgU2tpcCBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQzYTMyMzUwNmEw
My4uMzFlMDc2OTdjNDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjIxNyw2ICsyMjE3LDcgQEAgYWNjZXNzaWJpbGl0eS9lbGVtZW50LWhhc3BvcHVw
Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZW1wdHktdGV4dC11bmRlci1lbGVtZW50LWNh
Y2hlZC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2hlYWRpbmctbGV2ZWwuaHRtbCBbIFBh
c3MgXQogYWNjZXNzaWJpbGl0eS9odG1sNS1yZXF1aXJlZC1hdHRyaWJ1dGUuaHRtbCBbIFBhc3Mg
XQorYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1yb2xlLmh0bWwgWyBQYXNzIF0K
IGFjY2Vzc2liaWxpdHkvaW5wdXQtdHlwZS1oaWRkZW4taW4tYXJpYS1oaWRkZW4tZmFsc2UuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9kYXRldGltZS9pbnB1dC10aW1lLWxhYmVsLXZhbHVl
Lmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nl
c3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11
cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMjYxYTA1NGIwMjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdp
dGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUaGlzIHRlc3Qg
ZW5zdXJlcyB3ZSBkb24ndCBtYWtlIGluY29ycmVjdCB1cGRhdGVzIHRvIHRoZSBhY2Nlc3NpYmls
aXR5IHRyZWUgd2hlbiBhbiBpZnJhbWUgaGFzIGRpcnR5IGxheW91dC4KKworRHVtcGluZyBpbml0
aWFsIEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC4KKwore1dlYkFyZWF9CisKK3sjbWFpbiBMYW5k
bWFya01haW59CisKKworRHVtcGluZyBuZXcgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7
V2ViQXJlYX0KKwore1N0YXRpY1RleHQgQVhMYWJlbDogQ2VsbCAxfQorCit7U3RhdGljVGV4dCBB
WExhYmVsOiBDZWxsIDJ9CisKK3tTdGF0aWNUZXh0IEFYTGFiZWw6IENlbGwgM30KKwore1N0YXRp
Y1RleHQgQVhMYWJlbDogQ2VsbCA0fQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkv
aWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY5Nzg3YWEzMDhhMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9pZnJh
bWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NDEgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGRvbid0IG1ha2UgaW5jb3JyZWN0IHVwZGF0ZXMg
dG8gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSB3aGVuIGFuIGlmcmFtZSBoYXMgZGlydHkgbGF5b3V0
LgorCitEdW1waW5nIGluaXRpYWwgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xl
OiBBWFdlYkFyZWF9CisKK3sjbWFpbiBBWFJvbGU6IEFYR3JvdXB9CisKKworRHVtcGluZyBuZXcg
QVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xlOiBBWFdlYkFyZWF9CisKK3sjbWFp
biBBWFJvbGU6IEFYR3JvdXB9CisKK3tBWFJvbGU6IEFYVGFibGV9CisKK3tBWFJvbGU6IEFYUm93
fQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBD
ZWxsIDF9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFs
dWU6IENlbGwgMn0KKwore0FYUm9sZTogQVhSb3d9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FY
Um9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgM30KKwore0FYUm9sZTogQVhDZWxsfQor
Cit7QVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCA0fQorCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470214</attachid>
            <date>2024-03-06 15:54:06 -0800</date>
            <delta_ts>2024-03-06 19:01:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270593-20240306155405.patch</filename>
            <type>text/plain</type>
            <size>12995</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAxOTVlYzNhYzM3M2MxZDQ2ZmQyZDBkMDEzZDNjYzA5NjkwNjc4OWE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCA2IE1hciAyMDI0IDEyOjQ4OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFY
T2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIGNhbiBydW4gd2l0aAogZGly
dHkgc3ViLWZyYW1lIGxheW91dCwgY2F1c2luZyBpbmNvcnJlY3QgdHJlZSB1cGRhdGVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwNTkzIHJkYXI6Ly8xMDM2MTY3
MzIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2ODIzOSwgd2UgbWFkZSBBWE9iamVjdENhY2hlOjpwZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZQpkZXRlY3Qgd2hlbiBsYXlvdXQgaXMgZGlydHksIGFuZCBlaXRo
ZXIgd2FpdCBhbm90aGVyIGxheW91dCBjeWNsZSB0byB0cmlnZ2VyIGEgY2FjaGUgdXBkYXRlLCBv
cgpmb3JjZSBpdCBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgcHJvY2Vz
c2luZyBjYWNoZSB1cGRhdGVzIHdpdGggZGlydHkgbGF5b3V0CmNhbiBjYXVzZSBpbmNvcnJlY3Qg
YmVoYXZpb3IsIGxpa2Ugb2JqZWN0cyBiZWluZyBpZ25vcmVkIGluY29ycmVjdGx5LgoKVGhpcyBj
aGFuZ2Ugd2FzIGVmZmVjdGl2ZSwgYnV0IGRpZCBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEg
c3ViLWZyYW1lIGhhZCBkaXJ0eSBsYXlvdXQsIG1lYW5pbmcKd2UgY2FuIHN0aWxsIHJ1biBpbnRv
IHRoaXMgYnVnLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgZm9yY2luZyBhbGwg
c3ViLWZyYW1lcyB0byBsYXlvdXQKaWYgbmVjZXNzYXJ5LgoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgbmV3IHRlc3QuCiogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5o
dG1sOiBBZGRlZC4KCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRl
KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHA6CihXZWJDb3JlOjpJbnRlcm5hbHM6OmZv
cmNlQVhPYmplY3RDYWNoZVVwZGF0ZSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaDoKKiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGw6Ci0tLQog
Li4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgMTEgKysrKwog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICB8ICA2ICsrCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oICAgICAgICAgICAgfCAgMSArCiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgICAgICAgICAgfCAgMSArCiAuLi50cmVlLXVw
ZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQgfCA0NSArKysrKysrKysrKysrKwog
Li4uL2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1sIHwgNTggKysrKysr
KysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
ICAgIHwgIDEgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgICAg
IHwgIDEgKwogLi4udHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IHwg
MjUgKysrKysrKysKIC4uLnRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4
dCB8IDQxICsrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDE5MSBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11
cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRp
cnR5LWxheW91dC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGly
dHktbGF5b3V0LWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDJiOTQzMGZjZDgxOS4uYzI5OTAwODg3YzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTQw
NDYsNiArNDA0NiwxNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogICAgICAgICB9CiAgICAgfQogCisgICAg
UmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+aXNNYWluRnJhbWUoKSkgeworICAgICAgICAvLyBUaGUgbGF5b3V0IG9mIHN1YmZy
YW1lcyBtdXN0IGFsc28gYmUgY2xlYW4gKGFzc3VtaW5nIHdlJ3JlIHByb2Nlc3Npbmcgb2JqZWN0
cyBmcm9tIHRob3NlIHN1YmZyYW1lcyksIHNvIGZvcmNlIGl0IGhlcmUgaWYgbmVjZXNzYXJ5Lgor
ICAgICAgICBmb3IgKDsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
KSkgeworICAgICAgICAgICAgYXV0byogbG9jYWxGcmFtZSA9IGR5bmFtaWNEb3duY2FzdDxMb2Nh
bEZyYW1lPihmcmFtZS5nZXQoKSk7CisgICAgICAgICAgICBSZWZQdHIgc3ViRG9jdW1lbnQgPSBs
b2NhbEZyYW1lID8gbG9jYWxGcmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CisgICAgICAgICAg
ICBpZiAoc3ViRG9jdW1lbnQgJiYgc3ViRG9jdW1lbnQtPnZpZXcoKSAmJiBzdWJEb2N1bWVudC0+
dmlldygpLT5uZWVkc0xheW91dCgpKQorICAgICAgICAgICAgICAgIHN1YkRvY3VtZW50LT51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGJvb2wgbWFya2VkUmVsYXRpb25zRGlydHkgPSBmYWxzZTsKICAgICBhdXRvIG1hcmtSZWxh
dGlvbnNEaXJ0eSA9IFsmXSAoKSB7CiAgICAgICAgIGlmICghbWFya2VkUmVsYXRpb25zRGlydHkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXgg
MzBkNzY0NzRlZWU4Li44NDhiZTgzZWE1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC00OTMsNyArNDkzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGVmZXJSZWNvbXB1dGVUYWJsZUNlbGxTbG90cyhBY2Nlc3NpYmlsaXR5VGFibGUmKTsKICAg
ICB2b2lkIGRlZmVyVGV4dENoYW5nZWRJZk5lZWRlZChOb2RlKik7CiAgICAgdm9pZCBkZWZlclNl
bGVjdGVkQ2hpbGRyZW5DaGFuZ2VkSWZOZWVkZWQoRWxlbWVudCYpOwotICAgIHZvaWQgcGVyZm9y
bURlZmVycmVkQ2FjaGVVcGRhdGUoRm9yY2VMYXlvdXQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoRm9yY2VMYXlvdXQpOwogICAgIHZvaWQgZGVm
ZXJUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcHJldmlvdXNWYWx1ZSk7CiAKICAgICBzdGQ6
Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiByYW5nZU1hdGNoZXNUZXh0TmVhclJhbmdlKGNvbnN0IFNp
bXBsZVJhbmdlJiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggMDQ3NDJhNmExMjcwLi42NjBiODI1ODVhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTQyMDksNiArNDIwOSwxMiBAQCB2b2lkIEludGVybmFsczo6c2V0
VXNlc092ZXJsYXlTY3JvbGxiYXJzKGJvb2wgZW5hYmxlZCkKIH0KICNlbmRpZgogCit2b2lkIElu
dGVybmFsczo6Zm9yY2VBWE9iamVjdENhY2hlVXBkYXRlKCkgY29uc3QKK3sKKyAgICBpZiAoUmVm
UHRyIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5heE9i
amVjdENhY2hlKCktPnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKEZvcmNlTGF5b3V0OjpZZXMp
OworfQorCiB2b2lkIEludGVybmFsczo6Zm9yY2VSZWxvYWQoYm9vbCBlbmRUb0VuZCkKIHsKICAg
ICBPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKaW5kZXggNWVlMjgxODA0NWY5Li40ZThmN2VhNzQ5YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjgzLDYgKzY4Myw3IEBAIHB1YmxpYzoKIAogICAgIFN0
cmluZyB0b29sVGlwRnJvbUVsZW1lbnQoRWxlbWVudCYpIGNvbnN0OwogCisgICAgdm9pZCBmb3Jj
ZUFYT2JqZWN0Q2FjaGVVcGRhdGUoKSBjb25zdDsKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wg
ZW5kVG9FbmQpOwogICAgIHZvaWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGQ1NzlkYzU0NmIxOC4uMGJhOTQyMzJiMzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC04NjUsNiArODY1LDcgQEAgdHlwZWRl
ZiAoRmV0Y2hSZXF1ZXN0IG9yIEZldGNoUmVzcG9uc2UpIEZldGNoT2JqZWN0OwogCiAgICAgdW5k
ZWZpbmVkIHNldFVzZXNPdmVybGF5U2Nyb2xsYmFycyhib29sZWFuIGVuYWJsZWQpOwogCisgICAg
dW5kZWZpbmVkIGZvcmNlQVhPYmplY3RDYWNoZVVwZGF0ZSgpOwogICAgIHVuZGVmaW5lZCBmb3Jj
ZVJlbG9hZChib29sZWFuIGVuZFRvRW5kKTsKICAgICB1bmRlZmluZWQgcmVsb2FkRXhwaXJlZE9u
bHkoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmEzYmMyMjMxMmMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDUgQEAK
K1RoaXMgdGVzdCBlbnN1cmVzIHdlIGRvbid0IG1ha2UgaW5jb3JyZWN0IHVwZGF0ZXMgdG8gdGhl
IGFjY2Vzc2liaWxpdHkgdHJlZSB3aGVuIGFuIGlmcmFtZSBoYXMgZGlydHkgbGF5b3V0LgorCitE
dW1waW5nIGluaXRpYWwgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xlOiBBWFNj
cm9sbEFyZWF9CisKK3tBWFJvbGU6IEFYV2ViQXJlYX0KKworeyNtYWluIEFYUm9sZTogQVhHcm91
cH0KKworCitEdW1waW5nIG5ldyBBWCB0cmVlIHNlYXJjaCB0cmF2ZXJzYWwuCisKK3tBWFJvbGU6
IEFYU2Nyb2xsQXJlYX0KKwore0FYUm9sZTogQVhXZWJBcmVhfQorCit7I21haW4gQVhSb2xlOiBB
WEdyb3VwfQorCit7QVhSb2xlOiBBWFRhYmxlfQorCit7QVhSb2xlOiBBWFJvd30KKwore0FYUm9s
ZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAxfQorCit7
QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxsIDJ9
CisKK3tBWFJvbGU6IEFYUm93fQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3Rh
dGljVGV4dCBBWFZhbHVlOiBDZWxsIDN9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTog
QVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgNH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjdjOTY2ZDBh
MzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUt
dHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisKKzxpZnJhbWUgaWQ9ImlmcmFtZSIgb25sb2FkPSJydW5UZXN0KCki
IHNyY2RvYz0iPG1haW4gaWQ9J21haW4nPjwvbWFpbj4iPjwvaWZyYW1lPgorCis8c2NyaXB0Pgor
dmFyIG91dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBtYWtlIGluY29ycmVjdCB1
cGRhdGVzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBhbiBpZnJhbWUgaGFzIGRpcnR5
IGxheW91dC5cblxuIjsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gVG91Y2ggdGhlIHRyZWUgdG8gZW5zdXJlIHRoZSBBWE9i
amVjdENhY2hlIGlzIGNyZWF0ZWQuCisgICAgdG91Y2hBY2Nlc3NpYmlsaXR5VHJlZShhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudCk7CisgICAgb3V0cHV0ICs9ICJEdW1waW5nIGlu
aXRpYWwgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLlxuIjsKKyAgICB2YXIgd2ViYXJlYSA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICBv
dXRwdXQgKz0gZHVtcEFYU2VhcmNoVHJhdmVyc2FsKHdlYmFyZWEsIHsgZXhjbHVkZVJvbGVzOiBb
InNjcm9sbGJhciJdIH0pOworICAgIG91dHB1dCArPSAiXG5cbiI7CisKKyAgICB2YXIgdHJhdmVy
c2FsT3V0cHV0OworICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNv
bnN0IGlmcmFtZURvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlmcmFtZSIpLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQ7CisgICAgICAgIGxldCBuZXdUYWJsZSA9IGlmcmFtZURvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CisgICAgICAgIG5ld1RhYmxlLmlubmVySFRNTCA9
ICI8dHI+PHRoPkNlbGwgMTwvdGg+PHRoPkNlbGwgMjwvdGg+PC90cj48dHI+PHRkPkNlbGwgMzwv
dGQ+PHRkPkNlbGwgNDwvdGQ+PC90cj4iOworICAgICAgICBpZnJhbWVEb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibWFpbiIpLmFwcGVuZENoaWxkKG5ld1RhYmxlKTsKKworICAgICAgICBhd2FpdCB3
YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgIC8vIFRoZSBwbGFjZW1lbnQgb2YgdGhpcyBmb3Jj
ZWQgdXBkYXRlIGlzIGludGVudGlvbmFsbHkgd2l0aGluIHRoaXMgd2FpdEZvciBibG9jayBhcyBw
bGFjaW5nIGl0IGVsc2V3aGVyZQorICAgICAgICAgICAgLy8gY2F1c2VzIHRoZSB0aW1pbmcgdG8g
YmUgZGlmZmVyZW50LCBhbmQgdGhlIGJ1ZyBub3QgdG8gYmUgdHJpZ2dlcmVkLgorICAgICAgICAg
ICAgaW50ZXJuYWxzLmZvcmNlQVhPYmplY3RDYWNoZVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0pOworCisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4gewor
ICAgICAgICAgICAgdHJhdmVyc2FsT3V0cHV0ID0gZHVtcEFYU2VhcmNoVHJhdmVyc2FsKHdlYmFy
ZWEsIHsgZXhjbHVkZVJvbGVzOiBbInNjcm9sbGJhciJdIH0pOworICAgICAgICAgICAgcmV0dXJu
IHRyYXZlcnNhbE91dHB1dC5pbmNsdWRlcygiQ2VsbCAxIikKKyAgICAgICAgICAgICAgICAmJiB0
cmF2ZXJzYWxPdXRwdXQuaW5jbHVkZXMoIkNlbGwgMiIpCisgICAgICAgICAgICAgICAgJiYgdHJh
dmVyc2FsT3V0cHV0LmluY2x1ZGVzKCJDZWxsIDMiKQorICAgICAgICAgICAgICAgICYmIHRyYXZl
cnNhbE91dHB1dC5pbmNsdWRlcygiQ2VsbCA0Iik7CisgICAgICAgIH0pOworCisgICAgICAgIG91
dHB1dCArPSAiRHVtcGluZyBuZXcgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLlxuIjsKKyAgICAg
ICAgb3V0cHV0ICs9IHRyYXZlcnNhbE91dHB1dDsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggZDNlYjk3OTNkODE3Li4xM2FkOWU4NDU2N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUzNSw2ICs1MzUsNyBAQCBhY2Nlc3NpYmlsaXR5
L3RhYmxlLXNlYXJjaC10cmF2ZXJzYWwuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS90cmVl
LXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2R5
bmFtaWNhbGx5LWNoYW5naW5nLWlmcmFtZS1yZW1haW5zLWFjY2Vzc2libGUuaHRtbCBbIFNraXAg
XQogYWNjZXNzaWJpbGl0eS9pZ25vcmUtbW9kYWxzLXdpdGhvdXQtYW55LWNvbnRlbnQuaHRtbCBb
IFNraXAgXQorYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlv
dXQuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1yb2xlLmh0bWwgWyBT
a2lwIF0KIAogYWNjZXNzaWJpbGl0eS9lZGl0YWJsZS13ZWJwYWdlLWZvY3VzZWQtdWktZWxlbWVu
dC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGQzYTMyMzUwNmEwMy4uMzFlMDc2OTdjNDQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjIxNyw2ICsyMjE3LDcgQEAgYWNjZXNzaWJpbGl0
eS9lbGVtZW50LWhhc3BvcHVwLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZW1wdHktdGV4
dC11bmRlci1lbGVtZW50LWNhY2hlZC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2hlYWRp
bmctbGV2ZWwuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9odG1sNS1yZXF1aXJlZC1hdHRy
aWJ1dGUuaHRtbCBbIFBhc3MgXQorYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0
aC1kaXJ0eS1sYXlvdXQuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aC1y
b2xlLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvaW5wdXQtdHlwZS1oaWRkZW4taW4tYXJp
YS1oaWRkZW4tZmFsc2UuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9kYXRldGltZS9pbnB1
dC10aW1lLWxhYmVsLXZhbHVlLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5
LWxheW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJp
bGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjYxYTA1NGIwMjU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWZy
YW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI1IEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBtYWtlIGluY29ycmVjdCB1cGRhdGVz
IHRvIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBhbiBpZnJhbWUgaGFzIGRpcnR5IGxheW91
dC4KKworRHVtcGluZyBpbml0aWFsIEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC4KKwore1dlYkFy
ZWF9CisKK3sjbWFpbiBMYW5kbWFya01haW59CisKKworRHVtcGluZyBuZXcgQVggdHJlZSBzZWFy
Y2ggdHJhdmVyc2FsLgorCit7V2ViQXJlYX0KKwore1N0YXRpY1RleHQgQVhMYWJlbDogQ2VsbCAx
fQorCit7U3RhdGljVGV4dCBBWExhYmVsOiBDZWxsIDJ9CisKK3tTdGF0aWNUZXh0IEFYTGFiZWw6
IENlbGwgM30KKwore1N0YXRpY1RleHQgQVhMYWJlbDogQ2VsbCA0fQorCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13
aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY5Nzg3
YWEzMDhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
YWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGRvbid0IG1ha2Ug
aW5jb3JyZWN0IHVwZGF0ZXMgdG8gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSB3aGVuIGFuIGlmcmFt
ZSBoYXMgZGlydHkgbGF5b3V0LgorCitEdW1waW5nIGluaXRpYWwgQVggdHJlZSBzZWFyY2ggdHJh
dmVyc2FsLgorCit7QVhSb2xlOiBBWFdlYkFyZWF9CisKK3sjbWFpbiBBWFJvbGU6IEFYR3JvdXB9
CisKKworRHVtcGluZyBuZXcgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xlOiBB
WFdlYkFyZWF9CisKK3sjbWFpbiBBWFJvbGU6IEFYR3JvdXB9CisKK3tBWFJvbGU6IEFYVGFibGV9
CisKK3tBWFJvbGU6IEFYUm93fQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3Rh
dGljVGV4dCBBWFZhbHVlOiBDZWxsIDF9CisKK3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTog
QVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgMn0KKwore0FYUm9sZTogQVhSb3d9CisKK3tBWFJv
bGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgM30KKwor
e0FYUm9sZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCA0
fQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>470219</attachid>
            <date>2024-03-06 19:01:52 -0800</date>
            <delta_ts>2024-03-07 08:13:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-270593-20240306190152.patch</filename>
            <type>text/plain</type>
            <size>12996</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBmOTZkY2ZjOThjN2E0NjAxNTJiZmU0ZTU4ODFmZmZmZGZlYWM3NGUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCA2IE1hciAyMDI0IDEyOjQ4OjEyIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQVg6IEFY
T2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIGNhbiBydW4gd2l0aAogZGly
dHkgc3ViLWZyYW1lIGxheW91dCwgY2F1c2luZyBpbmNvcnJlY3QgdHJlZSB1cGRhdGVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcwNTkzIHJkYXI6Ly8xMDM2MTY3
MzIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKSW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2ODIzOSwgd2UgbWFkZSBBWE9iamVjdENhY2hlOjpwZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZQpkZXRlY3Qgd2hlbiBsYXlvdXQgaXMgZGlydHksIGFuZCBlaXRo
ZXIgd2FpdCBhbm90aGVyIGxheW91dCBjeWNsZSB0byB0cmlnZ2VyIGEgY2FjaGUgdXBkYXRlLCBv
cgpmb3JjZSBpdCBpZiBuZWNlc3NhcnkuIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgcHJvY2Vz
c2luZyBjYWNoZSB1cGRhdGVzIHdpdGggZGlydHkgbGF5b3V0CmNhbiBjYXVzZSBpbmNvcnJlY3Qg
YmVoYXZpb3IsIGxpa2Ugb2JqZWN0cyBiZWluZyBpZ25vcmVkIGluY29ycmVjdGx5LgoKVGhpcyBj
aGFuZ2Ugd2FzIGVmZmVjdGl2ZSwgYnV0IGRpZCBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEg
c3ViLWZyYW1lIGhhZCBkaXJ0eSBsYXlvdXQsIG1lYW5pbmcKd2UgY2FuIHN0aWxsIHJ1biBpbnRv
IHRoaXMgYnVnLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgZm9yY2luZyBhbGwg
c3ViLWZyYW1lcyB0byBsYXkgb3V0CmlmIG5lY2Vzc2FyeS4KCiogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgoqIExheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCiogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGly
dHktbGF5b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRy
ZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQu
aHRtbDogQWRkZWQuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0
ZSk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CiogU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwOgooV2ViQ29yZTo6SW50ZXJuYWxzOjpm
b3JjZUFYT2JqZWN0Q2FjaGVVcGRhdGUgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmg6CiogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsOgotLS0K
IC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDExICsrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8ICAyICstCiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAgfCAgNiArKwogU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCAgICAgICAgICAgIHwgIDEgKwogU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsICAgICAgICAgIHwgIDEgKwogLi4udHJlZS11
cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IHwgNDUgKysrKysrKysrKysrKysK
IC4uLi9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbCB8IDU4ICsrKysr
KysrKysrKysrKysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
cyAgICB8ICAxICsKIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zICAg
ICB8ICAxICsKIC4uLnRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dCB8
IDI1ICsrKysrKysrCiAuLi50cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50
eHQgfCA0MSArKysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygr
KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUt
dXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1k
aXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRp
cnR5LWxheW91dC1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyYjk0MzBmY2Q4MTkuLmMyOTkwMDg4N2M1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC00
MDQ2LDYgKzQwNDYsMTcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNo
ZVVwZGF0ZShGb3JjZUxheW91dCBmb3JjZUxheW91dCkKICAgICAgICAgfQogICAgIH0KIAorICAg
IFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBpZiAoZnJhbWUg
JiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgLy8gVGhlIGxheW91dCBvZiBzdWJm
cmFtZXMgbXVzdCBhbHNvIGJlIGNsZWFuIChhc3N1bWluZyB3ZSdyZSBwcm9jZXNzaW5nIG9iamVj
dHMgZnJvbSB0aG9zZSBzdWJmcmFtZXMpLCBzbyBmb3JjZSBpdCBoZXJlIGlmIG5lY2Vzc2FyeS4K
KyAgICAgICAgZm9yICg7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0
KCkpIHsKKyAgICAgICAgICAgIGF1dG8qIGxvY2FsRnJhbWUgPSBkeW5hbWljRG93bmNhc3Q8TG9j
YWxGcmFtZT4oZnJhbWUuZ2V0KCkpOworICAgICAgICAgICAgUmVmUHRyIHN1YkRvY3VtZW50ID0g
bG9jYWxGcmFtZSA/IGxvY2FsRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOworICAgICAgICAg
ICAgaWYgKHN1YkRvY3VtZW50ICYmIHN1YkRvY3VtZW50LT52aWV3KCkgJiYgc3ViRG9jdW1lbnQt
PnZpZXcoKS0+bmVlZHNMYXlvdXQoKSkKKyAgICAgICAgICAgICAgICBzdWJEb2N1bWVudC0+dXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBib29sIG1hcmtlZFJlbGF0aW9uc0RpcnR5ID0gZmFsc2U7CiAgICAgYXV0byBtYXJrUmVs
YXRpb25zRGlydHkgPSBbJl0gKCkgewogICAgICAgICBpZiAoIW1hcmtlZFJlbGF0aW9uc0RpcnR5
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4
IDMwZDc2NDc0ZWVlOC4uODQ4YmU4M2VhNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDkzLDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRlZmVyUmVjb21wdXRlVGFibGVDZWxsU2xvdHMoQWNjZXNzaWJpbGl0eVRhYmxlJik7CiAg
ICAgdm9pZCBkZWZlclRleHRDaGFuZ2VkSWZOZWVkZWQoTm9kZSopOwogICAgIHZvaWQgZGVmZXJT
ZWxlY3RlZENoaWxkcmVuQ2hhbmdlZElmTmVlZGVkKEVsZW1lbnQmKTsKLSAgICB2b2lkIHBlcmZv
cm1EZWZlcnJlZENhY2hlVXBkYXRlKEZvcmNlTGF5b3V0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKEZvcmNlTGF5b3V0KTsKICAgICB2b2lkIGRl
ZmVyVGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHByZXZpb3VzVmFsdWUpOwogCiAgICAgc3Rk
OjpvcHRpb25hbDxTaW1wbGVSYW5nZT4gcmFuZ2VNYXRjaGVzVGV4dE5lYXJSYW5nZShjb25zdCBT
aW1wbGVSYW5nZSYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDA0NzQyYTZhMTI3MC4uNjYwYjgyNTg1YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC00MjA5LDYgKzQyMDksMTIgQEAgdm9pZCBJbnRlcm5hbHM6OnNl
dFVzZXNPdmVybGF5U2Nyb2xsYmFycyhib29sIGVuYWJsZWQpCiB9CiAjZW5kaWYKIAordm9pZCBJ
bnRlcm5hbHM6OmZvcmNlQVhPYmplY3RDYWNoZVVwZGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKFJl
ZlB0ciBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YXhP
YmplY3RDYWNoZSgpLT5wZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZShGb3JjZUxheW91dDo6WWVz
KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OmZvcmNlUmVsb2FkKGJvb2wgZW5kVG9FbmQpCiB7CiAg
ICAgT3B0aW9uU2V0PFJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCmluZGV4IDVlZTI4MTgwNDVmOS4uNGU4ZjdlYTc0OWIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTY4Myw2ICs2ODMsNyBAQCBwdWJsaWM6CiAKICAgICBT
dHJpbmcgdG9vbFRpcEZyb21FbGVtZW50KEVsZW1lbnQmKSBjb25zdDsKIAorICAgIHZvaWQgZm9y
Y2VBWE9iamVjdENhY2hlVXBkYXRlKCkgY29uc3Q7CiAgICAgdm9pZCBmb3JjZVJlbG9hZChib29s
IGVuZFRvRW5kKTsKICAgICB2b2lkIHJlbG9hZEV4cGlyZWRPbmx5KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBkNTc5ZGM1NDZiMTguLjBiYTk0MjMyYjMxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtODY1LDYgKzg2NSw3IEBAIHR5cGVk
ZWYgKEZldGNoUmVxdWVzdCBvciBGZXRjaFJlc3BvbnNlKSBGZXRjaE9iamVjdDsKIAogICAgIHVu
ZGVmaW5lZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoYm9vbGVhbiBlbmFibGVkKTsKIAorICAg
IHVuZGVmaW5lZCBmb3JjZUFYT2JqZWN0Q2FjaGVVcGRhdGUoKTsKICAgICB1bmRlZmluZWQgZm9y
Y2VSZWxvYWQoYm9vbGVhbiBlbmRUb0VuZCk7CiAgICAgdW5kZWZpbmVkIHJlbG9hZEV4cGlyZWRP
bmx5KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRy
ZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJhM2JjMjIzMTJj
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRy
ZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ1IEBA
CitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBtYWtlIGluY29ycmVjdCB1cGRhdGVzIHRvIHRo
ZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBhbiBpZnJhbWUgaGFzIGRpcnR5IGxheW91dC4KKwor
RHVtcGluZyBpbml0aWFsIEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC4KKwore0FYUm9sZTogQVhT
Y3JvbGxBcmVhfQorCit7QVhSb2xlOiBBWFdlYkFyZWF9CisKK3sjbWFpbiBBWFJvbGU6IEFYR3Jv
dXB9CisKKworRHVtcGluZyBuZXcgQVggdHJlZSBzZWFyY2ggdHJhdmVyc2FsLgorCit7QVhSb2xl
OiBBWFNjcm9sbEFyZWF9CisKK3tBWFJvbGU6IEFYV2ViQXJlYX0KKworeyNtYWluIEFYUm9sZTog
QVhHcm91cH0KKwore0FYUm9sZTogQVhUYWJsZX0KKwore0FYUm9sZTogQVhSb3d9CisKK3tBWFJv
bGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwgMX0KKwor
e0FYUm9sZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAy
fQorCit7QVhSb2xlOiBBWFJvd30KKwore0FYUm9sZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0
YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAzfQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6
IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxsIDR9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlv
dXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY3Yzk2NmQw
YTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1l
LXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorCis8aWZyYW1lIGlkPSJpZnJhbWUiIG9ubG9hZD0icnVuVGVzdCgp
IiBzcmNkb2M9IjxtYWluIGlkPSdtYWluJz48L21haW4+Ij48L2lmcmFtZT4KKworPHNjcmlwdD4K
K3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0IGVuc3VyZXMgd2UgZG9uJ3QgbWFrZSBpbmNvcnJlY3Qg
dXBkYXRlcyB0byB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdoZW4gYW4gaWZyYW1lIGhhcyBkaXJ0
eSBsYXlvdXQuXG5cbiI7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFRvdWNoIHRoZSB0cmVlIHRvIGVuc3VyZSB0aGUgQVhP
YmplY3RDYWNoZSBpcyBjcmVhdGVkLgorICAgIHRvdWNoQWNjZXNzaWJpbGl0eVRyZWUoYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQpOworICAgIG91dHB1dCArPSAiRHVtcGluZyBp
bml0aWFsIEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC5cbiI7CisgICAgdmFyIHdlYmFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
b3V0cHV0ICs9IGR1bXBBWFNlYXJjaFRyYXZlcnNhbCh3ZWJhcmVhLCB7IGV4Y2x1ZGVSb2xlczog
WyJzY3JvbGxiYXIiXSB9KTsKKyAgICBvdXRwdXQgKz0gIlxuXG4iOworCisgICAgdmFyIHRyYXZl
cnNhbE91dHB1dDsKKyAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBj
b25zdCBpZnJhbWVEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKS5j
b250ZW50V2luZG93LmRvY3VtZW50OworICAgICAgICBsZXQgbmV3VGFibGUgPSBpZnJhbWVEb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOworICAgICAgICBuZXdUYWJsZS5pbm5lckhUTUwg
PSAiPHRyPjx0aD5DZWxsIDE8L3RoPjx0aD5DZWxsIDI8L3RoPjwvdHI+PHRyPjx0ZD5DZWxsIDM8
L3RkPjx0ZD5DZWxsIDQ8L3RkPjwvdHI+IjsKKyAgICAgICAgaWZyYW1lRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1haW4iKS5hcHBlbmRDaGlsZChuZXdUYWJsZSk7CisKKyAgICAgICAgYXdhaXQg
d2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAvLyBUaGUgcGxhY2VtZW50IG9mIHRoaXMgZm9y
Y2VkIHVwZGF0ZSBpcyBpbnRlbnRpb25hbGx5IHdpdGhpbiB0aGlzIHdhaXRGb3IgYmxvY2sgYXMg
cGxhY2luZyBpdCBlbHNld2hlcmUKKyAgICAgICAgICAgIC8vIGNhdXNlcyB0aGUgdGltaW5nIHRv
IGJlIGRpZmZlcmVudCwgYW5kIHRoZSBidWcgbm90IHRvIGJlIHRyaWdnZXJlZC4KKyAgICAgICAg
ICAgIGludGVybmFscy5mb3JjZUFYT2JqZWN0Q2FjaGVVcGRhdGUoKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9KTsKKworICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsK
KyAgICAgICAgICAgIHRyYXZlcnNhbE91dHB1dCA9IGR1bXBBWFNlYXJjaFRyYXZlcnNhbCh3ZWJh
cmVhLCB7IGV4Y2x1ZGVSb2xlczogWyJzY3JvbGxiYXIiXSB9KTsKKyAgICAgICAgICAgIHJldHVy
biB0cmF2ZXJzYWxPdXRwdXQuaW5jbHVkZXMoIkNlbGwgMSIpCisgICAgICAgICAgICAgICAgJiYg
dHJhdmVyc2FsT3V0cHV0LmluY2x1ZGVzKCJDZWxsIDIiKQorICAgICAgICAgICAgICAgICYmIHRy
YXZlcnNhbE91dHB1dC5pbmNsdWRlcygiQ2VsbCAzIikKKyAgICAgICAgICAgICAgICAmJiB0cmF2
ZXJzYWxPdXRwdXQuaW5jbHVkZXMoIkNlbGwgNCIpOworICAgICAgICB9KTsKKworICAgICAgICBv
dXRwdXQgKz0gIkR1bXBpbmcgbmV3IEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC5cbiI7CisgICAg
ICAgIG91dHB1dCArPSB0cmF2ZXJzYWxPdXRwdXQ7CisKKyAgICAgICAgZGVidWcob3V0cHV0KTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGQzZWI5NzkzZDgxNy4uMTNhZDllODQ1NjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBAIC01MzUsNiArNTM1LDcgQEAgYWNjZXNzaWJpbGl0
eS90YWJsZS1zZWFyY2gtdHJhdmVyc2FsLmh0bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxpdHkvdHJl
ZS11cGRhdGUtd2l0aC1kaXJ0eS1sYXlvdXQuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9k
eW5hbWljYWxseS1jaGFuZ2luZy1pZnJhbWUtcmVtYWlucy1hY2Nlc3NpYmxlLmh0bWwgWyBTa2lw
IF0KIGFjY2Vzc2liaWxpdHkvaWdub3JlLW1vZGFscy13aXRob3V0LWFueS1jb250ZW50Lmh0bWwg
WyBTa2lwIF0KK2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5
b3V0Lmh0bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGgtcm9sZS5odG1sIFsg
U2tpcCBdCiAKIGFjY2Vzc2liaWxpdHkvZWRpdGFibGUtd2VicGFnZS1mb2N1c2VkLXVpLWVsZW1l
bnQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBkM2EzMjM1MDZhMDMuLjMxZTA3Njk3YzQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyMTcsNiArMjIxNyw3IEBAIGFjY2Vzc2liaWxp
dHkvZWxlbWVudC1oYXNwb3B1cC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2VtcHR5LXRl
eHQtdW5kZXItZWxlbWVudC1jYWNoZWQuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9oZWFk
aW5nLWxldmVsLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvaHRtbDUtcmVxdWlyZWQtYXR0
cmlidXRlLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdp
dGgtZGlydHktbGF5b3V0Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGgt
cm9sZS5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2lucHV0LXR5cGUtaGlkZGVuLWluLWFy
aWEtaGlkZGVuLWZhbHNlLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZGF0ZXRpbWUvaW5w
dXQtdGltZS1sYWJlbC12YWx1ZS5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUtd2l0aC1kaXJ0
eS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2li
aWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI2MWEwNTRiMDI1NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L2lm
cmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgZG9uJ3QgbWFrZSBpbmNvcnJlY3QgdXBkYXRl
cyB0byB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlIHdoZW4gYW4gaWZyYW1lIGhhcyBkaXJ0eSBsYXlv
dXQuCisKK0R1bXBpbmcgaW5pdGlhbCBBWCB0cmVlIHNlYXJjaCB0cmF2ZXJzYWwuCisKK3tXZWJB
cmVhfQorCit7I21haW4gTGFuZG1hcmtNYWlufQorCisKK0R1bXBpbmcgbmV3IEFYIHRyZWUgc2Vh
cmNoIHRyYXZlcnNhbC4KKwore1dlYkFyZWF9CisKK3tTdGF0aWNUZXh0IEFYTGFiZWw6IENlbGwg
MX0KKwore1N0YXRpY1RleHQgQVhMYWJlbDogQ2VsbCAyfQorCit7U3RhdGljVGV4dCBBWExhYmVs
OiBDZWxsIDN9CisKK3tTdGF0aWNUZXh0IEFYTGFiZWw6IENlbGwgNH0KKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvYWNjZXNzaWJpbGl0eS9pZnJhbWUtdHJlZS11cGRhdGUt
d2l0aC1kaXJ0eS1sYXlvdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9hY2Nlc3NpYmlsaXR5L2lmcmFtZS10cmVlLXVwZGF0ZS13aXRoLWRpcnR5LWxheW91dC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mOTc4
N2FhMzA4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2FjY2Vzc2liaWxpdHkvaWZyYW1lLXRyZWUtdXBkYXRlLXdpdGgtZGlydHktbGF5b3V0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBkb24ndCBtYWtl
IGluY29ycmVjdCB1cGRhdGVzIHRvIHRoZSBhY2Nlc3NpYmlsaXR5IHRyZWUgd2hlbiBhbiBpZnJh
bWUgaGFzIGRpcnR5IGxheW91dC4KKworRHVtcGluZyBpbml0aWFsIEFYIHRyZWUgc2VhcmNoIHRy
YXZlcnNhbC4KKwore0FYUm9sZTogQVhXZWJBcmVhfQorCit7I21haW4gQVhSb2xlOiBBWEdyb3Vw
fQorCisKK0R1bXBpbmcgbmV3IEFYIHRyZWUgc2VhcmNoIHRyYXZlcnNhbC4KKwore0FYUm9sZTog
QVhXZWJBcmVhfQorCit7I21haW4gQVhSb2xlOiBBWEdyb3VwfQorCit7QVhSb2xlOiBBWFRhYmxl
fQorCit7QVhSb2xlOiBBWFJvd30KKwore0FYUm9sZTogQVhDZWxsfQorCit7QVhSb2xlOiBBWFN0
YXRpY1RleHQgQVhWYWx1ZTogQ2VsbCAxfQorCit7QVhSb2xlOiBBWENlbGx9CisKK3tBWFJvbGU6
IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxsIDJ9CisKK3tBWFJvbGU6IEFYUm93fQorCit7QVhS
b2xlOiBBWENlbGx9CisKK3tBWFJvbGU6IEFYU3RhdGljVGV4dCBBWFZhbHVlOiBDZWxsIDN9CisK
K3tBWFJvbGU6IEFYQ2VsbH0KKwore0FYUm9sZTogQVhTdGF0aWNUZXh0IEFYVmFsdWU6IENlbGwg
NH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>