<?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>240750</bug_id>
          
          <creation_ts>2022-05-20 18:50:48 -0700</creation_ts>
          <short_desc>AccessibilityTable::m_isExposable is never recomputed after AccessibilityTable::init</short_desc>
          <delta_ts>2022-05-26 04:40:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1870891</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-20 18:50:48 -0700</bug_when>
    <thetext>This can cause it to become out of date after dynamic page changes (e.g. ARIA attribute changes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870892</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-20 18:50:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/93690148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870894</commentid>
    <comment_count>2</comment_count>
      <attachid>459632</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-20 18:58:48 -0700</bug_when>
    <thetext>Created attachment 459632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870896</commentid>
    <comment_count>3</comment_count>
      <attachid>459633</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-20 19:14:27 -0700</bug_when>
    <thetext>Created attachment 459633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871072</commentid>
    <comment_count>4</comment_count>
      <attachid>459633</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-05-22 23:03:15 -0700</bug_when>
    <thetext>Comment on attachment 459633
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1302
&gt; +    if (auto* axObject = get(node); is&lt;AccessibilityTable&gt;(axObject))

is this a style in WebKit now to have two conditions in one if block?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871138</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-23 05:37:58 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #4)
&gt; Comment on attachment 459633 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459633&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1302
&gt; &gt; +    if (auto* axObject = get(node); is&lt;AccessibilityTable&gt;(axObject))
&gt; 
&gt; is this a style in WebKit now to have two conditions in one if block?

It is not two conditions, the first statement 

auto* axObject = get(node);

it is just an initialization. The is only one condition is&lt;AccessibilityTable&gt;(axObject). 

I personally don&apos;t like this because if you wrote

if (auto* axObject = get(node))

Then that would be  an initialization and a condition at the same time. But if you add a second expression like in the case above, the first one becomes just an initialization and the second one is the real condition. I&apos;ve seen it used more in WebKit, but I&apos;m not sure that is the recommended way in most cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871151</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-23 06:22:00 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #3)
&gt; Created attachment 459633 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ a/Source/WebCore/accessibility/AXObjectCache.cpp

+void AXObjectCache::handleRowCountChanged(Node* node)

+    postNotification(node, AXObjectCache::AXRowCountChanged);

Don&apos;t need to qualify AXNotifications with AXObjectCache:: inside the AXObjectCache implementation.

+void AXObjectCache::handleRowCountChanged(AXCoreObject* axObject, Document* document)

Why do we need two overloads for this? At least one should call the other one, but I don&apos;t see why we need two.

+    postNotification(axObject, document, AXObjectCache::AXRowCountChanged);

Don&apos;t need to qualify AXNotifications with AXObjectCache:: inside the AXObjectCache implementation.

@@ -3414,6 +3438,14 @@ void AXObjectCache::updateIsolatedTree(const Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec

+    auto updateNode = [&amp;] (RefPtr&lt;AXCoreObject&gt; axObject) {
+        auto updatedFields = updatedObjects.get(axObject-&gt;objectID());
+        if (!updatedFields.node) {
+            updatedObjects.set(axObject-&gt;objectID(), UpdatedFields { updatedFields.children, true });
+            tree-&gt;updateNode(*axObject);
+        }
+    };
+
This whole thing should be done in AXIsolatedTree::updateNode, not here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871275</commentid>
    <comment_count>7</comment_count>
      <attachid>459687</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-23 13:35:19 -0700</bug_when>
    <thetext>Created attachment 459687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871277</commentid>
    <comment_count>8</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-23 13:41:04 -0700</bug_when>
    <thetext>&gt; +void AXObjectCache::handleRowCountChanged(AXCoreObject* axObject, Document*
&gt; document)
&gt; 
&gt; Why do we need two overloads for this? At least one should call the other
&gt; one, but I don&apos;t see why we need two.
This mirrors the overloads for postNotification:

  * postNotification(Node*, AXNotification, PostTarget)
  * postNotification(AXCoreObject*, Document*, AXNotification, PostTarget)

The behavior for each is different enough that I think we need to match these overloads, unless you have a different idea.

&gt; @@ -3414,6 +3438,14 @@ void AXObjectCache::updateIsolatedTree(const
&gt; Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec
&gt; 
&gt; +    auto updateNode = [&amp;] (RefPtr&lt;AXCoreObject&gt; axObject) {
&gt; +        auto updatedFields = updatedObjects.get(axObject-&gt;objectID());
&gt; +        if (!updatedFields.node) {
&gt; +            updatedObjects.set(axObject-&gt;objectID(), UpdatedFields {
&gt; updatedFields.children, true });
&gt; +            tree-&gt;updateNode(*axObject);
&gt; +        }
&gt; +    };
&gt; +
&gt; This whole thing should be done in AXIsolatedTree::updateNode, not here.
The code here in AXObjectCache::updateIsolatedTree(const Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObject&gt;, AXNotification&gt;&gt;&amp; notifications) filters notifications such that we don&apos;t perform the same work over and over (e.g. multiple calls to AXIsolatedTree::updateNode for the same object). This feels different than what AXIsolatedTree::updateNode does and should do, doesn&apos;t it? But maybe I don&apos;t totally understand your suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871380</commentid>
    <comment_count>9</comment_count>
      <attachid>459695</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-23 18:42:47 -0700</bug_when>
    <thetext>Created attachment 459695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871413</commentid>
    <comment_count>10</comment_count>
      <attachid>459696</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-23 22:11:56 -0700</bug_when>
    <thetext>Created attachment 459696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871511</commentid>
    <comment_count>11</comment_count>
      <attachid>459726</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-24 09:16:23 -0700</bug_when>
    <thetext>Created attachment 459726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871531</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-24 10:52:52 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #10)
&gt; Created attachment 459696 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ a/Source/WebCore/accessibility/AXObjectCache.cpp

+    if (auto* tableSectionElement = dynamicDowncast&lt;HTMLTableSectionElement&gt;(object.element())) {
+        auto* parentTable = tableSectionElement-&gt;findParentTable().get();
+        if (auto* axTable = dynamicDowncast&lt;AccessibilityTable&gt;(getOrCreate(const_cast&lt;HTMLTableElement*&gt;(parentTable))))
+            axTable-&gt;recomputeIsExposable();

We shouldn&apos;t need to go back to the Element at this point in the cache. Can we instead schedule some event for the table when we actually get the notification from the DOM in 
childrenChanged(Node* node, Node* changedChild)
or the equivalent RenderObject overload.

void AXObjectCache::updateIsolatedTree(const Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec

+        case AXRowCountChanged:
+            if (notification.first-&gt;isTable())
+                updateNode(notification.first);
+            FALLTHROUGH;

Do we need to check if (notification.first-&gt;isTable()) here? I&apos;d think we can just update if we receive that notification like with the others, e.g., CheckedStateChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871532</commentid>
    <comment_count>13</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-24 11:02:52 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #8)
&gt; &gt; +void AXObjectCache::handleRowCountChanged(AXCoreObject* axObject, Document*
&gt; &gt; document)
&gt; &gt; 
&gt; &gt; Why do we need two overloads for this? At least one should call the other
&gt; &gt; one, but I don&apos;t see why we need two.
&gt; This mirrors the overloads for postNotification:
&gt; 
&gt;   * postNotification(Node*, AXNotification, PostTarget)
&gt;   * postNotification(AXCoreObject*, Document*, AXNotification, PostTarget)
&gt; 
&gt; The behavior for each is different enough that I think we need to match
&gt; these overloads, unless you have a different idea.

Can we do

+    else if (attrName == aria_rowcountAttr)
+        handleRowCountChanged(get(element), ...);

If so, we just need one. The Document parameter doesn&apos;t even need to be passed I believe, but you can get it from the cache when needed.

&gt; 
&gt; &gt; @@ -3414,6 +3438,14 @@ void AXObjectCache::updateIsolatedTree(const
&gt; &gt; Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec
&gt; &gt; 
&gt; &gt; +    auto updateNode = [&amp;] (RefPtr&lt;AXCoreObject&gt; axObject) {
&gt; &gt; +        auto updatedFields = updatedObjects.get(axObject-&gt;objectID());
&gt; &gt; +        if (!updatedFields.node) {
&gt; &gt; +            updatedObjects.set(axObject-&gt;objectID(), UpdatedFields {
&gt; &gt; updatedFields.children, true });
&gt; &gt; +            tree-&gt;updateNode(*axObject);
&gt; &gt; +        }
&gt; &gt; +    };
&gt; &gt; +
&gt; &gt; This whole thing should be done in AXIsolatedTree::updateNode, not here.
&gt; The code here in AXObjectCache::updateIsolatedTree(const
&gt; Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObject&gt;, AXNotification&gt;&gt;&amp; notifications)
&gt; filters notifications such that we don&apos;t perform the same work over and over
&gt; (e.g. multiple calls to AXIsolatedTree::updateNode for the same object).
&gt; This feels different than what AXIsolatedTree::updateNode does and should
&gt; do, doesn&apos;t it? But maybe I don&apos;t totally understand your suggestion.

oh right, I misread this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871659</commentid>
    <comment_count>14</comment_count>
      <attachid>459744</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-24 22:25:41 -0700</bug_when>
    <thetext>Created attachment 459744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871660</commentid>
    <comment_count>15</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-24 22:28:17 -0700</bug_when>
    <thetext>&gt; --- a/Source/WebCore/accessibility/AXObjectCache.cpp
&gt; +++ a/Source/WebCore/accessibility/AXObjectCache.cpp
&gt; 
&gt; +    if (auto* tableSectionElement =
&gt; dynamicDowncast&lt;HTMLTableSectionElement&gt;(object.element())) {
&gt; +        auto* parentTable = tableSectionElement-&gt;findParentTable().get();
&gt; +        if (auto* axTable =
&gt; dynamicDowncast&lt;AccessibilityTable&gt;(getOrCreate(const_cast&lt;HTMLTableElement*&gt;
&gt; (parentTable))))
&gt; +            axTable-&gt;recomputeIsExposable();
&gt; 
&gt; We shouldn&apos;t need to go back to the Element at this point in the cache. Can
&gt; we instead schedule some event for the table when we actually get the notification from the DOM in 
&gt; childrenChanged(Node* node, Node* changedChild)
&gt; or the equivalent RenderObject overload.
OK, fixed this by adding m_deferredRecomputeTableIsExposedList.

&gt; void AXObjectCache::updateIsolatedTree(const
&gt; Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec
&gt; 
&gt; +        case AXRowCountChanged:
&gt; +            if (notification.first-&gt;isTable())
&gt; +                updateNode(notification.first);
&gt; +            FALLTHROUGH;
&gt; 
&gt; Do we need to check if (notification.first-&gt;isTable()) here? I&apos;d think we
&gt; can just update if we receive that notification like with the others, e.g.,
&gt; CheckedStateChanged.
I did this because the only time AXRowCountChanged actually needs to update properties is for tables. This guards against authoring errors where they change aria-rowcount on non-tables, having no practical effect but causing us to `updateNode`, which is expensive. But I might be overthinking it, so I&apos;d be fine removing the check if you&apos;d prefer.

&gt; &gt; The behavior for each is different enough that I think we need to match
&gt; &gt; these overloads, unless you have a different idea.
&gt; 
&gt; Can we do
&gt; 
&gt; +    else if (attrName == aria_rowcountAttr)
&gt; +        handleRowCountChanged(get(element), ...);
&gt; 
&gt; If so, we just need one. The Document parameter doesn&apos;t even need to be
&gt; passed I believe, but you can get it from the cache when needed.
I considered this too. But the behavior of postNotification(Node*, AXNotification) is more complicated than that, doing traversal if necessary:

RefPtr&lt;AccessibilityObject&gt; object = get(node);
while (!object &amp;&amp; node) {
    node = node-&gt;parentNode();
    object = get(node);
}

But maybe we can get away with not doing that in this case? Not sure...what do you think, better to match the behavior that other consumers of postNotification(Node*) uses, or do the simpler, one-less-overload approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871729</commentid>
    <comment_count>16</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-25 08:43:50 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #14)
&gt; Created attachment 459744 [details]
&gt; Patch

--- a/Source/WebCore/accessibility/AXObjectCache.cpp
+++ a/Source/WebCore/accessibility/AXObjectCache.cpp

@@ -1140,6 +1143,12 @@ void AXObjectCache::childrenChanged(AccessibilityObject* object)

+    if (auto* tableSectionElement = dynamicDowncast&lt;HTMLTableSectionElement&gt;(object-&gt;element())) {
+        if (auto* parentTable = tableSectionElement-&gt;findParentTable().get())
+            m_deferredRecomputeTableIsExposedList.add(*parentTable);
+    }

Can we do this in childrenChanged(Node* node, Node* changedChild) or childrenChanged(RenderObject* renderer, RenderObject* changedChild), whichever is called in this case. That way we don&apos;t have to go from AXObject back to Element. This would make the path more straightforward, i.e., we receive a notification with a Node or a RenderObject, then for some special case like being a TableSection, we storage the containing table Element and process the update of the corresponding AX table update later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871734</commentid>
    <comment_count>17</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-05-25 08:58:49 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #15)
&gt; &gt; --- a/Source/WebCore/accessibility/AXObjectCache.cpp
&gt; &gt; +++ a/Source/WebCore/accessibility/AXObjectCache.cpp
&gt; &gt; 
&gt; &gt; +    if (auto* tableSectionElement =
&gt; &gt; dynamicDowncast&lt;HTMLTableSectionElement&gt;(object.element())) {
&gt; &gt; +        auto* parentTable = tableSectionElement-&gt;findParentTable().get();
&gt; &gt; +        if (auto* axTable =
&gt; &gt; dynamicDowncast&lt;AccessibilityTable&gt;(getOrCreate(const_cast&lt;HTMLTableElement*&gt;
&gt; &gt; (parentTable))))
&gt; &gt; +            axTable-&gt;recomputeIsExposable();
&gt; &gt; 
&gt; &gt; We shouldn&apos;t need to go back to the Element at this point in the cache. Can
&gt; &gt; we instead schedule some event for the table when we actually get the notification from the DOM in 
&gt; &gt; childrenChanged(Node* node, Node* changedChild)
&gt; &gt; or the equivalent RenderObject overload.
&gt; OK, fixed this by adding m_deferredRecomputeTableIsExposedList.

See my comment above concerning this.

&gt; 
&gt; &gt; void AXObjectCache::updateIsolatedTree(const
&gt; &gt; Vector&lt;std::pair&lt;RefPtr&lt;AXCoreObjec
&gt; &gt; 
&gt; &gt; +        case AXRowCountChanged:
&gt; &gt; +            if (notification.first-&gt;isTable())
&gt; &gt; +                updateNode(notification.first);
&gt; &gt; +            FALLTHROUGH;
&gt; &gt; 
&gt; &gt; Do we need to check if (notification.first-&gt;isTable()) here? I&apos;d think we
&gt; &gt; can just update if we receive that notification like with the others, e.g.,
&gt; &gt; CheckedStateChanged.
&gt; I did this because the only time AXRowCountChanged actually needs to update
&gt; properties is for tables. This guards against authoring errors where they
&gt; change aria-rowcount on non-tables, having no practical effect but causing
&gt; us to `updateNode`, which is expensive. But I might be overthinking it, so
&gt; I&apos;d be fine removing the check if you&apos;d prefer.

Maybe doing the check in the IsolatedTree::updateNode would be more appropriate, i.e., the cache doesn&apos;t need to know all of this, but IsolatedTree::updateNode should know whether it needs to update something or not.
&gt; 
&gt; &gt; &gt; The behavior for each is different enough that I think we need to match
&gt; &gt; &gt; these overloads, unless you have a different idea.
&gt; &gt; 
&gt; &gt; Can we do
&gt; &gt; 
&gt; &gt; +    else if (attrName == aria_rowcountAttr)
&gt; &gt; +        handleRowCountChanged(get(element), ...);
&gt; &gt; 
&gt; &gt; If so, we just need one. The Document parameter doesn&apos;t even need to be
&gt; &gt; passed I believe, but you can get it from the cache when needed.
&gt; I considered this too. But the behavior of postNotification(Node*,
&gt; AXNotification) is more complicated than that, doing traversal if necessary:
&gt; 
&gt; RefPtr&lt;AccessibilityObject&gt; object = get(node);
&gt; while (!object &amp;&amp; node) {
&gt;     node = node-&gt;parentNode();
&gt;     object = get(node);
&gt; }
&gt; 
&gt; But maybe we can get away with not doing that in this case? Not sure...what
&gt; do you think, better to match the behavior that other consumers of
&gt; postNotification(Node*) uses, or do the simpler, one-less-overload approach?

I think the walk up is done for the case that we don&apos;t have an AX object for which to post a platform notification. I don&apos;t think that applies in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871770</commentid>
    <comment_count>18</comment_count>
      <attachid>459762</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-05-25 10:46:31 -0700</bug_when>
    <thetext>Created attachment 459762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871986</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-26 04:40:19 -0700</bug_when>
    <thetext>Committed r294875 (251005@main): &lt;https://commits.webkit.org/251005@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459762.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459632</attachid>
            <date>2022-05-20 18:58:48 -0700</date>
            <delta_ts>2022-05-20 19:14:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220520185847.patch</filename>
            <type>text/plain</type>
            <size>22529</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAyMTMwYmU3M2QxMDc3NjBjZGI0MzNhYTNkNzUwZjUyNzZiMmI1YmVlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAyMCBNYXkgMjAyMiAxODo1MjowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKTmV3IHRlc3QgY2FzZXMgYWRkZWQgdG8KICAqIGFjY2Vz
c2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10YWJsZS5odG1sCiAgKiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sCnRvIGNvdmVyIHRoZXNlIGNo
YW5nZXMuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6
CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQpOgooV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlLmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNF
eHBvc2FibGUpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRhdGVDaGlsZENlbGxS
b2xlcyk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKToKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oOgoqIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sOgoqIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10
YWJsZS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRh
YmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLmh0bWw6CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z2xpYi9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUt
ZXhwZWN0ZWQudHh0OgotLS0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgICB8IDUwICsrKysrKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCAgfCAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGUuY3BwICAgICAgfCAyNyArKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZS5oICAgICAgICB8ICAyICsKIC4uLi9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0ICAgICAgICB8IDMxICsrKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0
cmlidXRlcy5odG1sICB8IDgyICsrKysrKysrKystLS0tLS0tLS0KIC4uLnRhYmxlLXdpdGgtYXJp
YS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dCB8IDE5ICsrKy0tCiAuLi5taW5pbWFsLXRhYmxl
LXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLmh0bWwgfCA1MSArKysrKysrKy0tLS0KIC4uLnRhYmxl
LXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dCB8IDE5ICsrKy0tCiA5IGZpbGVz
IGNoYW5nZWQsIDE4MCBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggZGI4ZWM5OWNl
MDA5Li43ODFjOWQyM2NkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcApAQCAtMTI5Myw3ICsxMjkzLDI5IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIAogICAgIHBvc3ROb3Rp
ZmljYXRpb24oZ2V0T3JDcmVhdGUobm9kZSksICZkb2N1bWVudCgpLCBBWE1lbnVMaXN0SXRlbVNl
bGVjdGVkKTsKIH0KLSAgICAKKwordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENo
YW5nZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChhdXRvKiBheE9iamVjdCA9IGdldChub2RlKTsgaXM8QWNjZXNzaWJpbGl0eVRhYmxl
PihheE9iamVjdCkpCisgICAgICAgIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oYXhPYmpl
Y3QpLT5yZWNvbXB1dGVJc0V4cG9zYWJsZSgpOworCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFJvd0NvdW50Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlUm93Q291bnRDaGFuZ2VkKEFYQ29yZU9iamVjdCogYXhPYmplY3QsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIWF4T2JqZWN0KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFi
bGU+KGF4T2JqZWN0KSkKKyAgICAgICAgYXhUYWJsZS0+cmVjb21wdXRlSXNFeHBvc2FibGUoKTsK
KworICAgIHBvc3ROb3RpZmljYXRpb24oYXhPYmplY3QsIGRvY3VtZW50LCBBWE9iamVjdENhY2hl
OjpBWFJvd0NvdW50Q2hhbmdlZCk7Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJGb2N1
c2VkVUlFbGVtZW50Q2hhbmdlSWZOZWVkZWQoTm9kZSogb2xkTm9kZSwgTm9kZSogbmV3Tm9kZSkK
IHsKICAgICBpZiAobm9kZUFuZFJlbmRlcmVyQXJlVmFsaWQobmV3Tm9kZSkgJiYgcmVuZGVyZXJO
ZWVkc0RlZmVycmVkVXBkYXRlKCpuZXdOb2RlLT5yZW5kZXJlcigpKSkgewpAQCAtMTc5MCw3ICsx
ODEyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UoTm9k
ZSogbm9kZSkKIAogICAgICAgICAvLyBQb3N0IHRoYXQgdGhlIGFuY2VzdG9yJ3Mgcm93IGNvdW50
IGNoYW5nZWQuCiAgICAgICAgIGlmIChhbmNlc3RvcikKLSAgICAgICAgICAgIHBvc3ROb3RpZmlj
YXRpb24oYW5jZXN0b3IsICZkb2N1bWVudCgpLCBBWFJvd0NvdW50Q2hhbmdlZCk7CisgICAgICAg
ICAgICBoYW5kbGVSb3dDb3VudENoYW5nZWQoYW5jZXN0b3IsICZkb2N1bWVudCgpKTsKIAogICAg
ICAgICAvLyBQb3N0IHRoYXQgdGhlIHNwZWNpZmljIHJvdyBlaXRoZXIgY29sbGFwc2VkIG9yIGV4
cGFuZGVkLgogICAgICAgICBhdXRvIHJvbGUgPSBvYmplY3QtPnJvbGVWYWx1ZSgpOwpAQCAtMTkz
OCw2ICsxOTYwLDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQKICAgICAgICAgcG9zdE5vdGlm
aWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWFJlYWRPbmx5U3RhdHVzQ2hhbmdlZCk7
CiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9yZXF1aXJlZEF0dHIpCiAgICAgICAgIHBv
c3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhSZXF1aXJlZFN0YXR1c0No
YW5nZWQpOworICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfcm93Y291bnRBdHRyKQorICAg
ICAgICBoYW5kbGVSb3dDb3VudENoYW5nZWQoZWxlbWVudCk7CiAgICAgZWxzZSBpZiAoYXR0ck5h
bWUgPT0gYXJpYV9zb3J0QXR0cikKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBB
WE9iamVjdENhY2hlOjpBWFNvcnREaXJlY3Rpb25DaGFuZ2VkKTsKIH0KQEAgLTM0MTQsNiArMzQz
OCwxNCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgICAgICBib29sIG5vZGUgeyBmYWxz
ZSB9OwogICAgIH07CiAgICAgSGFzaE1hcDxBWElELCBVcGRhdGVkRmllbGRzPiB1cGRhdGVkT2Jq
ZWN0czsKKyAgICBhdXRvIHVwZGF0ZU5vZGUgPSBbJl0gKFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4
T2JqZWN0KSB7CisgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVwZGF0ZWRPYmplY3RzLmdl
dChheE9iamVjdC0+b2JqZWN0SUQoKSk7CisgICAgICAgIGlmICghdXBkYXRlZEZpZWxkcy5ub2Rl
KSB7CisgICAgICAgICAgICB1cGRhdGVkT2JqZWN0cy5zZXQoYXhPYmplY3QtPm9iamVjdElEKCks
IFVwZGF0ZWRGaWVsZHMgeyB1cGRhdGVkRmllbGRzLmNoaWxkcmVuLCB0cnVlIH0pOworICAgICAg
ICAgICAgdHJlZS0+dXBkYXRlTm9kZSgqYXhPYmplY3QpOworICAgICAgICB9CisgICAgfTsKKwog
ICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykgewogICAg
ICAgICBBWExPRyhub3RpZmljYXRpb24pOwogICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5maXJz
dCB8fCAhbm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLmlzVmFsaWQoKSkKQEAgLTM0NTQs
MTcgKzM0ODYsMTUgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWMKICAgICAgICAgY2FzZSBBWFBy
ZXNzZWRTdGF0ZUNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZDoKICAgICAgICAgY2FzZSBBWFRleHRDaGFuZ2VkOgotICAgICAgICBjYXNlIEFYVmFsdWVDaGFu
Z2VkOiB7Ci0gICAgICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2JqZWN0cy5n
ZXQobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpKTsKLSAgICAgICAgICAgIGlmICghdXBk
YXRlZEZpZWxkcy5ub2RlKSB7Ci0gICAgICAgICAgICAgICAgdXBkYXRlZE9iamVjdHMuc2V0KG5v
dGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSwgVXBkYXRlZEZpZWxkcyB7IHVwZGF0ZWRGaWVs
ZHMuY2hpbGRyZW4sIHRydWUgfSk7Ci0gICAgICAgICAgICAgICAgdHJlZS0+dXBkYXRlTm9kZSgq
bm90aWZpY2F0aW9uLmZpcnN0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBBWFZhbHVl
Q2hhbmdlZDoKKyAgICAgICAgICAgIHVwZGF0ZU5vZGUobm90aWZpY2F0aW9uLmZpcnN0KTsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CisgICAgICAgIGNhc2UgQVhSb3dDb3VudENoYW5n
ZWQ6CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uLmZpcnN0LT5pc1RhYmxlKCkpCisgICAg
ICAgICAgICAgICAgdXBkYXRlTm9kZShub3RpZmljYXRpb24uZmlyc3QpOworICAgICAgICAgICAg
RkFMTFRIUk9VR0g7CiAgICAgICAgIGNhc2UgQVhDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNh
c2UgQVhMYW5ndWFnZUNoYW5nZWQ6Ci0gICAgICAgIGNhc2UgQVhSb3dDb3VudENoYW5nZWQ6CiAg
ICAgICAgIGNhc2UgQVhSb3dDb2xsYXBzZWQ6CiAgICAgICAgIGNhc2UgQVhSb3dFeHBhbmRlZDog
ewogICAgICAgICAgICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5v
dGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDJjNGY4MTFhZTk3Mi4uYmU4MGRhNmM3ZTY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDYy
LDYgKzQ2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsK
ICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRs
ZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlUm93Q291bnRDaGFuZ2Vk
KE5vZGUqKTsKKyAgICB2b2lkIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChBWENvcmVPYmplY3QqLCBE
b2N1bWVudCopOwogICAgIHZvaWQgaGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBFbGVtZW50Kik7CiAgICAgYm9vbCBzaG91bGRQcm9jZXNzQXR0cmlidXRlQ2hhbmdl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50Kik7CiAgICAgdm9pZCBzZWxlY3RlZENoaWxk
cmVuQ2hhbmdlZChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKaW5kZXggNGMyNWZlYTU0NTFmLi42NWFmNTk2MWMzMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZS5jcHAKQEAgLTM2Miw2ICszNjIsMjggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNv
bXB1dGVJc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKSBjb25zdAogICAgIHJl
dHVybiBpc0RhdGFUYWJsZSgpOwogfQogCisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjpyZWNv
bXB1dGVJc0V4cG9zYWJsZSgpCit7CisgICAgYm9vbCBwcmV2aW91c2x5RXhwb3NhYmxlID0gbV9p
c0V4cG9zYWJsZTsKKyAgICBtX2lzRXhwb3NhYmxlID0gY29tcHV0ZUlzVGFibGVFeHBvc2FibGVU
aHJvdWdoQWNjZXNzaWJpbGl0eSgpOworICAgIGlmIChwcmV2aW91c2x5RXhwb3NhYmxlICE9IG1f
aXNFeHBvc2FibGUpIHsKKyAgICAgICAgLy8gQmVmb3JlIHJlc2V0dGluZyBvdXIgZXhpc3Rpbmcg
Y2hpbGQgY2VsbHMsIHBvc3NpYmx5IGxvc2luZyByZWZlcmVuY2VzIHRvIHRoZW0sIGVuc3VyZSB3
ZSB1cGRhdGUgdGhlaXIgcm9sZSAoc2luY2UgYSBjZWxsJ3Mgcm9sZSBpcyBkZXBlbmRlbnQgb24g
d2hldGhlciBpdHMgcGFyZW50IHRhYmxlIGlzIGV4cG9zYWJsZSkuCisgICAgICAgIHVwZGF0ZUNo
aWxkQ2VsbFJvbGVzKCk7CisKKyAgICAgICAgY2xlYXJDaGlsZHJlbigpOworICAgICAgICBhZGRD
aGlsZHJlbigpOworICAgIH0KK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OnVwZGF0ZUNo
aWxkQ2VsbFJvbGVzKCkKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCisgICAgICAg
ICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwor
ICAgIH0KK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNsZWFyQ2hpbGRyZW4oKQogewog
ICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKTsKQEAgLTQyNywx
MCArNDQ5LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKCkKICAgICAv
LyBkZXRlcm1pbmVzIHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRlcmF0
ZSBhbGwgdGhlIGNlbGxzIGFuZCBhbGxvdyB0aGVtIHRvCiAgICAgLy8gdXBkYXRlIHRoZWlyIHJv
bGVzIG5vdyB0aGF0IHRoZSB0YWJsZSBrbm93cyBpdHMgc3RhdHVzLgogICAgIC8vIHNlZSBidWc6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNl
bGwgOiByb3ctPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5
T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZENlbGxS
b2xlcygpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkVGFibGVDZWxsQ2hpbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogcm93T2JqZWN0LCBIYXNoU2V0PEFjY2Vzc2liaWxpdHlPYmpl
Y3QqPiYgYXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29sdW1uQ291bnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCBlNDA3N2I2
ZTY2YjMuLjNiYTQwZGFkMDEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGUoKTsKIAogICAgIHZvaWQgaW5pdCgpIGZpbmFsOwor
ICAgIHZvaWQgcmVjb21wdXRlSXNFeHBvc2FibGUoKTsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkQ2Vs
bFJvbGVzKCk7CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBmaW5h
bDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBcmlhVGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxl
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQxZjExYjM3ZGI4Zi4uMzNmMjZiYTU5NmQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRh
YmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDIyICsxLDIxIEBACiBUaGlzIHRlc3Rz
IHRoYXQgYXR0cmlidXRlcyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBj
b3JyZWN0bHkuCiAKLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KK1BBU1M6IGdyaWQubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykgPT09IDE2CitQQVNTOiBncmlkLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpID09PSAzMAorUEFTUzogZ3JpZC5y
b3dDb3VudCA9PT0gNAorUEFTUzogZ3JpZC5jb2x1bW5Db3VudCA9PT0gNAorUEFTUzogY2VsbDEu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09IDIKK1BBU1M6IGNl
bGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpID09PSA3CitQQVNTOiBj
ZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gNAorUEFT
UzogY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDgKK1BB
U1M6IGNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSAz
CitQQVNTOiBjZWxsMi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNS5j
b2x1bW5JbmRleFJhbmdlKCkgPT09ICd7MiwgM30nCitQQVNTOiBjZWxsMy5yb3dJbmRleFJhbmdl
KCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0n
CitQQVNTOiBjZWxsNy5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0nCitQQVNTOiAjZ3JpZCBB
WEFSSUFSb3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLgogCi0KLVBBU1MgZ3JpZC5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSBpcyAxNgotUEFTUyBncmlk
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIGlzIDMwCi1QQVNTIGdyaWQu
cm93Q291bnQgaXMgNAotUEFTUyBncmlkLmNvbHVtbkNvdW50IGlzIDQKLVBBU1MgY2VsbDEubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgMgotUEFTUyBjZWxsMS5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA3Ci1QQVNTIGNlbGwyLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDQKLVBBU1MgY2VsbDIu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgaXMgOAotUEFTUyBjZWxsNC5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAzCi1QQVNTIGNlbGwy
LnJvd0luZGV4UmFuZ2UoKSBpcyAnezEsIDJ9JwotUEFTUyBjZWxsNS5jb2x1bW5JbmRleFJhbmdl
KCkgaXMgJ3syLCAzfScKLVBBU1MgY2VsbDMucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0nCi1Q
QVNTIGNlbGw2LnJvd0luZGV4UmFuZ2UoKSBpcyAnezAsIDJ9JwotUEFTUyBjZWxsNy5yb3dJbmRl
eFJhbmdlKCkgaXMgJ3swLCAyfScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10
YWJsZS1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggNWI1ZDM3OTA0OGYwLi5hNDMwZGU0YWJhN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0
ZXMuaHRtbApAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fj
Y2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Cis8Ym9k
eT4KIAogPGRpdiBpZD0iZ3JpZCIgcm9sZT0iZ3JpZCIgYXJpYS1jb2xjb3VudD0iMTYiIGFyaWEt
cm93Y291bnQ9IjMwIj4KICAgPGRpdiByb2xlPSJyb3dncm91cCI+CkBAIC02NCw0NiArNjUsNTMg
QEAKIDwvdGFibGU+CiAKIDxzY3JpcHQ+Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29y
cmVjdGx5LiIpOworICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCBhdHRyaWJ1
dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJlY3RseS5cblxu
IjsKIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAKLSAg
ICAgICAgICB2YXIgZ3JpZCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgiZ3JpZCIpOwotICAgICAgICAgIHZhciBjZWxsMSA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDEiKTsKLSAgICAgICAgICB2YXIgY2Vs
bDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwy
Iik7Ci0gICAgICAgICAgdmFyIGNlbGwzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsMyIpOwotICAgICAgICAgIHZhciBjZWxsNCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDQiKTsKLSAgICAgICAg
ICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImNlbGw1Iik7Ci0gICAgICAgICAgdmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNiIpOwotICAgICAgICAgIHZhciBjZWxsNyA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDciKTsK
LSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBhcmlhLXJvd2NvdW50
Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNv
bHVtbkNvdW50JykiLCAiMTYiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSIsICIzMCIpOwotICAgICAgICAgIHNob3VsZEJl
KCJncmlkLnJvd0NvdW50IiwgIjQiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5jb2x1bW5D
b3VudCIsICI0Iik7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAg
ICAgICAgIC8vIGFyaWEtY29saW5kZXggYW5kIGFyaWEtcm93aW5kZXgKLSAgICAgICAgICBzaG91
bGRCZSgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAi
MiIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBUm93SW5kZXgnKSIsICI3Iik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwyLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjQiKTsKLSAgICAgICAgICBzaG91
bGRCZSgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAiOCIp
OwotICAgICAgICAgIC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93Ci0gICAgICAgICAg
c2hvdWxkQmUoImNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcp
IiwgIjMiKTsKLSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbHNwYW4gYW5kIGFyaWEt
cm93c3BhbiwgaW5jbHVkaW5nIGFyaWEtcm93c3Bhbj0iMCIKLSAgICAgICAgICBzaG91bGRCZSgi
Y2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7Ci0gICAgICAgICAgc2hvdWxkQmUo
ImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIsICInezIsIDN9JyIpOwotICAgICAgICAgIHNob3Vs
ZEJlKCJjZWxsMy5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKKyAgICAgICAgdmFyIGdy
aWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQi
KTsKKyAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCJjZWxsMSIpOworICAgICAgICB2YXIgY2VsbDIgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwyIik7CisgICAgICAgIHZhciBj
ZWxsMyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2Vs
bDMiKTsKKyAgICAgICAgdmFyIGNlbGw0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOworICAgICAgICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw1Iik7CisgICAgICAgIHZh
ciBjZWxsNiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
Y2VsbDYiKTsKKyAgICAgICAgdmFyIGNlbGw3ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNyIpOwogCi0gICAgICAgICAgc2hvdWxkQmUoImNlbGw2
LnJvd0luZGV4UmFuZ2UoKSIsICInezAsIDJ9JyIpOwotICAgICAgICAgIC8vIHVzZSByb3dzcGFu
IGZvciBuYXRpdmUgdGFibGUKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDcucm93SW5kZXhSYW5n
ZSgpIiwgIid7MCwgMn0nIik7Ci0gICAgfQorICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBh
cmlhLXJvd2NvdW50CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIiwgIjE2Iik7CisgICAgICAgIHRlc3RP
dXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3Vu
dCcpIiwgIjMwIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLnJvd0NvdW50
IiwgIjQiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQuY29sdW1uQ291bnQi
LCAiNCIpOwogCi08L3NjcmlwdD4KKyAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJpYS1y
b3dpbmRleAorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMiIpOworICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4Jyki
LCAiNyIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOworICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4Jyki
LCAiOCIpOworICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGZyb20gcGFyZW50IHJvdworICAgICAg
ICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QUNvbHVtbkluZGV4JykiLCAiMyIpOworCisgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQgYXJp
YS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJpYS1yb3dzcGFuPSIwIgorICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisgICAgICAg
IHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkiLCAiJ3syLCAz
fSciKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwzLnJvd0luZGV4UmFuZ2Uo
KSIsICInezEsIDJ9JyIpOworCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNi5y
b3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKKyAgICAgICAgLy8gdXNlIHJvd3NwYW4gZm9y
IG5hdGl2ZSB0YWJsZQorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDcucm93SW5k
ZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7CiAKLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImdyaWQiKS5zZXRBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiLCAiNjAiKTsKKyAgICAgICAgc2V0
VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkg
PT4geyByZXR1cm4gZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSA9
PT0gNjAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJQQVNTOiAjZ3JpZCBBWEFSSUFS
b3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLlxuIjsKKworICAgICAgICAgICAgZGVi
dWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
MCk7CisgICAgfQorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10
YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFi
bGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUtZXhwZWN0ZWQudHh0CmluZGV4IDIzYzI1NmE0ODFm
OC4uYTAwNWY1YzEwMDE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21p
bmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10
YWJsZS1leHBlY3RlZC50eHQKQEAgLTEsMTYgKzEsMTcgQEAKIFRoaXMgdGVzdHMgdGhhdCBtaW5p
bWFsIHRhYmxlcyBhcmUgdHJlYXRlZCBhcyBkYXRhIHRhYmxlcyBpZiB0aGV5IGhhdmUgQVJJQSB0
YWJsZS1yZWxhdGVkIHByb3BlcnRpZXMuCiAKLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KK2Nl
bGwgMTogQVhSb2xlOiBBWENlbGwKK2NlbGwgMjogQVhSb2xlOiBBWENlbGwKK2NlbGwgMzogQVhS
b2xlOiBBWENlbGwKK2NlbGwgNDogQVhSb2xlOiBBWENlbGwKK2NlbGwgNTogQVhSb2xlOiBBWENl
bGwKK2NlbGwgNjogQVhSb2xlOiBBWENlbGwKK2NlbGwgNzogQVhSb2xlOiBBWENlbGwKK2NlbGwg
ODogQVhSb2xlOiBBWEdyb3VwCiAKK1JlbW92aW5nIGFyaWEtcm93Y291bnQgZnJvbSAjYXJpYS1y
b3djb3VudC10YWJsZSwgd2hpY2ggc2hvdWxkIGNhdXNlIGl0IHRvIGJlY29tZSBhIGxheW91dCB0
YWJsZSByYXRoZXIgdGhhbiBhIGRhdGEgdGFibGUuCitQQVNTOiAjY2VsbDYgbm8gbG9uZ2VyIGhh
cyBhbiBBWENlbGwgcm9sZSAoYmVjYXVzZSBpdHMgcGFyZW50IHRhYmxlIGlzIG5vdyBhIGxheW91
dCB0YWJsZSkuCiAKLWNlbGwxOiBBWFJvbGU6IEFYQ2VsbAotY2VsbDI6IEFYUm9sZTogQVhDZWxs
Ci1jZWxsMzogQVhSb2xlOiBBWENlbGwKLWNlbGw0OiBBWFJvbGU6IEFYQ2VsbAotY2VsbDU6IEFY
Um9sZTogQVhDZWxsCi1jZWxsNjogQVhSb2xlOiBBWENlbGwKLWNlbGw3OiBBWFJvbGU6IEFYQ2Vs
bAotY2VsbDg6IEFYUm9sZTogQVhHcm91cAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUuaHRtbCBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10YWJsZS5odG1s
CmluZGV4IDkwYTY4YTkwMDdmNC4uM2ExNzZmMzYxM2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlh
LWlzLWRhdGEtdGFibGUuaHRtbApAQCAtMSwzMyArMSw0OCBAQAogPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgaWQ9
ImJvZHkiPgorPGJvZHk+CisKIDxkaXYgaWQ9ImNvbnRlbnQiPgotPHRhYmxlPjx0cj48dGQgaWQ9
ImNlbGwxIiBhcmlhLWNvbHNwYW49IjEiPng8L3RkPjwvdHI+PC90YWJsZT4KLTx0YWJsZT48dHI+
PHRkIGlkPSJjZWxsMiIgYXJpYS1yb3dzcGFuPSIxIj54PC90ZD48L3RyPjwvdGFibGU+Ci08dGFi
bGU+PHRyPjx0ZCBpZD0iY2VsbDMiIGFyaWEtY29saW5kZXg9IjEiPng8L3RkPjwvdHI+PC90YWJs
ZT4KLTx0YWJsZT48dHI+PHRkIGlkPSJjZWxsNCIgYXJpYS1yb3dpbmRleD0iMSI+eDwvdGQ+PC90
cj48L3RhYmxlPgotPHRhYmxlPjx0ciBhcmlhLXJvd2luZGV4PSIxIj48dGQgaWQ9ImNlbGw1Ij54
PC90ZD48L3RyPjwvdGFibGU+Ci08dGFibGUgYXJpYS1yb3djb3VudD0iMSI+PHRyPjx0ZCBpZD0i
Y2VsbDYiPng8L3RkPjwvdHI+PC90YWJsZT4KLTx0YWJsZSBhcmlhLWNvbGNvdW50PSIxIj48dHI+
PHRkIGlkPSJjZWxsNyI+eDwvdGQ+PC90cj48L3RhYmxlPgotPHRhYmxlPjx0cj48dGQgaWQ9ImNl
bGw4Ij54PC90ZD48L3RyPjwvdGFibGU+CisgIDx0YWJsZT48dHI+PHRkIGlkPSJjZWxsMSIgYXJp
YS1jb2xzcGFuPSIxIj54PC90ZD48L3RyPjwvdGFibGU+CisgIDx0YWJsZT48dHI+PHRkIGlkPSJj
ZWxsMiIgYXJpYS1yb3dzcGFuPSIxIj54PC90ZD48L3RyPjwvdGFibGU+CisgIDx0YWJsZT48dHI+
PHRkIGlkPSJjZWxsMyIgYXJpYS1jb2xpbmRleD0iMSI+eDwvdGQ+PC90cj48L3RhYmxlPgorICA8
dGFibGU+PHRyPjx0ZCBpZD0iY2VsbDQiIGFyaWEtcm93aW5kZXg9IjEiPng8L3RkPjwvdHI+PC90
YWJsZT4KKyAgPHRhYmxlPjx0ciBhcmlhLXJvd2luZGV4PSIxIj48dGQgaWQ9ImNlbGw1Ij54PC90
ZD48L3RyPjwvdGFibGU+CisgIDx0YWJsZSBpZD0iYXJpYS1yb3djb3VudC10YWJsZSIgYXJpYS1y
b3djb3VudD0iMSI+PHRyPjx0ZCBpZD0iY2VsbDYiPng8L3RkPjwvdHI+PC90YWJsZT4KKyAgPHRh
YmxlIGFyaWEtY29sY291bnQ9IjEiPjx0cj48dGQgaWQ9ImNlbGw3Ij54PC90ZD48L3RyPjwvdGFi
bGU+CisgIDx0YWJsZT48dHI+PHRkIGlkPSJjZWxsOCI+eDwvdGQ+PC90cj48L3RhYmxlPgogPC9k
aXY+CisKIDxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0IG1p
bmltYWwgdGFibGVzIGFyZSB0cmVhdGVkIGFzIGRhdGEgdGFibGVzIGlmIHRoZXkgaGF2ZSBBUklB
IHRhYmxlLXJlbGF0ZWQgcHJvcGVydGllcy5cblxuIjsKIAotICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgbWluaW1hbCB0YWJsZXMgYXJlIHRyZWF0ZWQgYXMgZGF0YSB0YWJsZXMgaWYg
dGhleSBoYXZlIEFSSUEgdGFibGUtcmVsYXRlZCBwcm9wZXJ0aWVzLiIpOwogICAgIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCiAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDg7IGkrKykgewotICAg
ICAgICAgICAgdmFyIGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiY2VsbCIgKyBpKTsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSAhYXhF
bGVtZW50ID8gIihub3QgZXhwb3NlZCkiIDogYXhFbGVtZW50LnJvbGU7Ci0gICAgICAgICAgICBk
ZWJ1ZygiY2VsbCIgKyBpICsgIjogIiArIHJlc3VsdCk7CisgICAgICAgICAgICBjb25zdCBheEVs
ZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNl
bGwiICsgaSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGBjZWxsICR7aX06ICR7YXhFbGVt
ZW50LnJvbGV9XG5gOwogICAgICAgICB9Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgIH0KIAotPC9zY3Jp
cHQ+CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuUmVtb3ZpbmcgYXJpYS1yb3djb3VudCBmcm9t
ICNhcmlhLXJvd2NvdW50LXRhYmxlLCB3aGljaCBzaG91bGQgY2F1c2UgaXQgdG8gYmVjb21lIGEg
bGF5b3V0IHRhYmxlIHJhdGhlciB0aGFuIGEgZGF0YSB0YWJsZS5cbiI7CisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcmlhLXJvd2NvdW50LXRhYmxlIikucmVtb3ZlQXR0cmlidXRl
KCJhcmlhLXJvd2NvdW50Iik7CisgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25z
dCBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImNlbGw2Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuICFheEVsZW1lbnQucm9sZS5pbmNs
dWRlcygiQVhDZWxsIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQg
Kz0gIlBBU1M6ICNjZWxsNiBubyBsb25nZXIgaGFzIGFuIEFYQ2VsbCByb2xlIChiZWNhdXNlIGl0
cyBwYXJlbnQgdGFibGUgaXMgbm93IGEgbGF5b3V0IHRhYmxlKS5cbiI7CiAKLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRk
ZW4iOworICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9taW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxlLXdpdGgt
YXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dAppbmRleCBmMmQ2NGQwY2JjZDEuLjU0MDZj
NzgyN2Q2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmls
aXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxl
LXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dApAQCAtMSwxNiArMSwxNyBAQAog
VGhpcyB0ZXN0cyB0aGF0IG1pbmltYWwgdGFibGVzIGFyZSB0cmVhdGVkIGFzIGRhdGEgdGFibGVz
IGlmIHRoZXkgaGF2ZSBBUklBIHRhYmxlLXJlbGF0ZWQgcHJvcGVydGllcy4KIAotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorY2VsbCAxOiBBWFJvbGU6IEFYQ2VsbAorY2VsbCAyOiBBWFJvbGU6
IEFYQ2VsbAorY2VsbCAzOiBBWFJvbGU6IEFYQ2VsbAorY2VsbCA0OiBBWFJvbGU6IEFYQ2VsbAor
Y2VsbCA1OiBBWFJvbGU6IEFYQ2VsbAorY2VsbCA2OiBBWFJvbGU6IEFYQ2VsbAorY2VsbCA3OiBB
WFJvbGU6IEFYQ2VsbAorY2VsbCA4OiBBWFJvbGU6IEFYU2VjdGlvbgogCitSZW1vdmluZyBhcmlh
LXJvd2NvdW50IGZyb20gI2FyaWEtcm93Y291bnQtdGFibGUsIHdoaWNoIHNob3VsZCBjYXVzZSBp
dCB0byBiZWNvbWUgYSBsYXlvdXQgdGFibGUgcmF0aGVyIHRoYW4gYSBkYXRhIHRhYmxlLgorUEFT
UzogI2NlbGw2IG5vIGxvbmdlciBoYXMgYW4gQVhDZWxsIHJvbGUgKGJlY2F1c2UgaXRzIHBhcmVu
dCB0YWJsZSBpcyBub3cgYSBsYXlvdXQgdGFibGUpLgogCi1jZWxsMTogQVhSb2xlOiBBWENlbGwK
LWNlbGwyOiBBWFJvbGU6IEFYQ2VsbAotY2VsbDM6IEFYUm9sZTogQVhDZWxsCi1jZWxsNDogQVhS
b2xlOiBBWENlbGwKLWNlbGw1OiBBWFJvbGU6IEFYQ2VsbAotY2VsbDY6IEFYUm9sZTogQVhDZWxs
Ci1jZWxsNzogQVhSb2xlOiBBWENlbGwKLWNlbGw4OiBBWFJvbGU6IEFYU2VjdGlvbgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi0tIAoyLjMyLjAgKEFw
cGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459633</attachid>
            <date>2022-05-20 19:14:27 -0700</date>
            <delta_ts>2022-05-23 13:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220520191427.patch</filename>
            <type>text/plain</type>
            <size>22812</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAzNjEyMDc5MDk2MmJkZDg4OGI4YzQwOGE2ZGY0NWEzMTVjNjZkZTUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogRnJpLCAyMCBNYXkgMjAyMiAxODo1MjowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKTmV3IHRlc3QgY2FzZXMgYWRkZWQgdG8KICAqIGFjY2Vz
c2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10YWJsZS5odG1sCiAgKiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sCnRvIGNvdmVyIHRoZXNlIGNo
YW5nZXMuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6
CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQpOgooV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlLmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNF
eHBvc2FibGUpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRhdGVDaGlsZHJlblJv
bGVzKToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW4pOgoqIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CiogTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgoqIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLmh0bWw6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRh
YmxlLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFi
bGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUuaHRtbDoKKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10YWJsZS1l
eHBlY3RlZC50eHQ6Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcCAgIHwgNTAgKysrKysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICB8ICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5jcHAgICAgICB8IDI3ICsrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlLmggICAgICAgIHwgIDIgKwogLi4uL2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgICAgICAgIHwgMzEgKysrKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRy
aWJ1dGVzLmh0bWwgIHwgODIgKysrKysrKysrKy0tLS0tLS0tLQogLi4udGFibGUtd2l0aC1hcmlh
LWlzLWRhdGEtdGFibGUtZXhwZWN0ZWQudHh0IHwgMTkgKysrLS0KIC4uLm1pbmltYWwtdGFibGUt
d2l0aC1hcmlhLWlzLWRhdGEtdGFibGUuaHRtbCB8IDUxICsrKysrKysrLS0tLQogLi4udGFibGUt
d2l0aC1hcmlhLWlzLWRhdGEtdGFibGUtZXhwZWN0ZWQudHh0IHwgMTkgKysrLS0KIDkgZmlsZXMg
Y2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBkYjhlYzk5Y2Uw
MDkuLjc4MWM5ZDIzY2Q2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCkBAIC0xMjkzLDcgKzEyOTMsMjkgQEAgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAgICAgCiAgICAgcG9zdE5vdGlm
aWNhdGlvbihnZXRPckNyZWF0ZShub2RlKSwgJmRvY3VtZW50KCksIEFYTWVudUxpc3RJdGVtU2Vs
ZWN0ZWQpOwogfQotICAgIAorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hh
bmdlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGF1dG8qIGF4T2JqZWN0ID0gZ2V0KG5vZGUpOyBpczxBY2Nlc3NpYmlsaXR5VGFibGU+
KGF4T2JqZWN0KSkKKyAgICAgICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlPihheE9iamVj
dCktPnJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYUm93Q291bnRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIGlmICghYXhPYmplY3QpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1pY0Rvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJs
ZT4oYXhPYmplY3QpKQorICAgICAgICBheFRhYmxlLT5yZWNvbXB1dGVJc0V4cG9zYWJsZSgpOwor
CisgICAgcG9zdE5vdGlmaWNhdGlvbihheE9iamVjdCwgZG9jdW1lbnQsIEFYT2JqZWN0Q2FjaGU6
OkFYUm93Q291bnRDaGFuZ2VkKTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpkZWZlckZvY3Vz
ZWRVSUVsZW1lbnRDaGFuZ2VJZk5lZWRlZChOb2RlKiBvbGROb2RlLCBOb2RlKiBuZXdOb2RlKQog
ewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2RlKSAmJiByZW5kZXJlck5l
ZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7CkBAIC0xNzkwLDcgKzE4
MTIsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZShOb2Rl
KiBub2RlKQogCiAgICAgICAgIC8vIFBvc3QgdGhhdCB0aGUgYW5jZXN0b3IncyByb3cgY291bnQg
Y2hhbmdlZC4KICAgICAgICAgaWYgKGFuY2VzdG9yKQotICAgICAgICAgICAgcG9zdE5vdGlmaWNh
dGlvbihhbmNlc3RvciwgJmRvY3VtZW50KCksIEFYUm93Q291bnRDaGFuZ2VkKTsKKyAgICAgICAg
ICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChhbmNlc3RvciwgJmRvY3VtZW50KCkpOwogCiAgICAg
ICAgIC8vIFBvc3QgdGhhdCB0aGUgc3BlY2lmaWMgcm93IGVpdGhlciBjb2xsYXBzZWQgb3IgZXhw
YW5kZWQuCiAgICAgICAgIGF1dG8gcm9sZSA9IG9iamVjdC0+cm9sZVZhbHVlKCk7CkBAIC0xOTM4
LDYgKzE5NjAsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgRWxlbWVudAogICAgICAgICBwb3N0Tm90aWZp
Y2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYUmVhZE9ubHlTdGF0dXNDaGFuZ2VkKTsK
ICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3JlcXVpcmVkQXR0cikKICAgICAgICAgcG9z
dE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWFJlcXVpcmVkU3RhdHVzQ2hh
bmdlZCk7CisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9yb3djb3VudEF0dHIpCisgICAg
ICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChlbGVtZW50KTsKICAgICBlbHNlIGlmIChhdHRyTmFt
ZSA9PSBhcmlhX3NvcnRBdHRyKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFY
T2JqZWN0Q2FjaGU6OkFYU29ydERpcmVjdGlvbkNoYW5nZWQpOwogfQpAQCAtMzQxNCw2ICszNDM4
LDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3Rv
cjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgICAgIGJvb2wgbm9kZSB7IGZhbHNl
IH07CiAgICAgfTsKICAgICBIYXNoTWFwPEFYSUQsIFVwZGF0ZWRGaWVsZHM+IHVwZGF0ZWRPYmpl
Y3RzOworICAgIGF1dG8gdXBkYXRlTm9kZSA9IFsmXSAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhP
YmplY3QpIHsKKyAgICAgICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0
KGF4T2JqZWN0LT5vYmplY3RJRCgpKTsKKyAgICAgICAgaWYgKCF1cGRhdGVkRmllbGRzLm5vZGUp
IHsKKyAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+b2JqZWN0SUQoKSwg
VXBkYXRlZEZpZWxkcyB7IHVwZGF0ZWRGaWVsZHMuY2hpbGRyZW4sIHRydWUgfSk7CisgICAgICAg
ICAgICB0cmVlLT51cGRhdGVOb2RlKCpheE9iamVjdCk7CisgICAgICAgIH0KKyAgICB9OworCiAg
ICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKSB7CiAgICAg
ICAgIEFYTE9HKG5vdGlmaWNhdGlvbik7CiAgICAgICAgIGlmICghbm90aWZpY2F0aW9uLmZpcnN0
IHx8ICFub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkuaXNWYWxpZCgpKQpAQCAtMzQ1NCwx
NyArMzQ4NiwxNSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShjb25z
dCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgICAgICBjYXNlIEFYUHJl
c3NlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2Vk
OgogICAgICAgICBjYXNlIEFYVGV4dENoYW5nZWQ6Ci0gICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5n
ZWQ6IHsKLSAgICAgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVwZGF0ZWRPYmplY3RzLmdl
dChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkpOwotICAgICAgICAgICAgaWYgKCF1cGRh
dGVkRmllbGRzLm5vZGUpIHsKLSAgICAgICAgICAgICAgICB1cGRhdGVkT2JqZWN0cy5zZXQobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRzIHsgdXBkYXRlZEZpZWxk
cy5jaGlsZHJlbiwgdHJ1ZSB9KTsKLSAgICAgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlKCpu
b3RpZmljYXRpb24uZmlyc3QpOwotICAgICAgICAgICAgfQorICAgICAgICBjYXNlIEFYVmFsdWVD
aGFuZ2VkOgorICAgICAgICAgICAgdXBkYXRlTm9kZShub3RpZmljYXRpb24uZmlyc3QpOwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgY2FzZSBBWFJvd0NvdW50Q2hhbmdl
ZDoKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24uZmlyc3QtPmlzVGFibGUoKSkKKyAgICAg
ICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7CisgICAgICAgICAgICBG
QUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoKICAgICAgICAgY2Fz
ZSBBWExhbmd1YWdlQ2hhbmdlZDoKLSAgICAgICAgY2FzZSBBWFJvd0NvdW50Q2hhbmdlZDoKICAg
ICAgICAgY2FzZSBBWFJvd0NvbGxhcHNlZDoKICAgICAgICAgY2FzZSBBWFJvd0V4cGFuZGVkOiB7
CiAgICAgICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2JqZWN0cy5nZXQobm90
aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggMmM0ZjgxMWFlOTcyLi5iZTgwZGE2YzdlNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC00NjIs
NiArNDYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwog
ICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxl
TWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CisgICAgdm9pZCBoYW5kbGVSb3dDb3VudENoYW5nZWQo
Tm9kZSopOworICAgIHZvaWQgaGFuZGxlUm93Q291bnRDaGFuZ2VkKEFYQ29yZU9iamVjdCosIERv
Y3VtZW50Kik7CiAgICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIEVsZW1lbnQqKTsKICAgICBib29sIHNob3VsZFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICB2b2lkIHNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA0YzI1ZmVhNTQ1MWYuLmI3MmNmZGI5MWJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlLmNwcApAQCAtMzYyLDYgKzM2MiwyOCBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZTo6Y29t
cHV0ZUlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpIGNvbnN0CiAgICAgcmV0
dXJuIGlzRGF0YVRhYmxlKCk7CiB9CiAKKwordm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OnJlY29t
cHV0ZUlzRXhwb3NhYmxlKCkKK3sKKyAgICBib29sIHByZXZpb3VzbHlFeHBvc2FibGUgPSBtX2lz
RXhwb3NhYmxlOworICAgIG1faXNFeHBvc2FibGUgPSBjb21wdXRlSXNUYWJsZUV4cG9zYWJsZVRo
cm91Z2hBY2Nlc3NpYmlsaXR5KCk7CisgICAgaWYgKHByZXZpb3VzbHlFeHBvc2FibGUgIT0gbV9p
c0V4cG9zYWJsZSkgeworICAgICAgICAvLyBCZWZvcmUgcmVzZXR0aW5nIG91ciBleGlzdGluZyBj
aGlsZHJlbiwgcG9zc2libHkgbG9zaW5nIHJlZmVyZW5jZXMgdG8gdGhlbSwgZW5zdXJlIHdlIHVw
ZGF0ZSB0aGVpciByb2xlIChzaW5jZSBhIHRhYmxlIGNlbGwncyByb2xlIGlzIGRlcGVuZGVudCBv
biB3aGV0aGVyIGl0cyBwYXJlbnQgdGFibGUgaXMgZXhwb3NhYmxlKS4KKyAgICAgICAgdXBkYXRl
Q2hpbGRyZW5Sb2xlcygpOworCisgICAgICAgIGNsZWFyQ2hpbGRyZW4oKTsKKyAgICAgICAgYWRk
Q2hpbGRyZW4oKTsKKyAgICB9Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRhdGVD
aGlsZHJlblJvbGVzKCkKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCisgICAgICAg
ICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwor
ICAgIH0KK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNsZWFyQ2hpbGRyZW4oKQogewog
ICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKTsKQEAgLTQyNywx
MCArNDQ5LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKCkKICAgICAv
LyBkZXRlcm1pbmVzIHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRlcmF0
ZSBhbGwgdGhlIGNlbGxzIGFuZCBhbGxvdyB0aGVtIHRvCiAgICAgLy8gdXBkYXRlIHRoZWlyIHJv
bGVzIG5vdyB0aGF0IHRoZSB0YWJsZSBrbm93cyBpdHMgc3RhdHVzLgogICAgIC8vIHNlZSBidWc6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNl
bGwgOiByb3ctPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5
T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZHJlblJv
bGVzKCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRUYWJsZUNlbGxDaGlsZChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiByb3dPYmplY3QsIEhhc2hTZXQ8QWNjZXNzaWJpbGl0eU9iamVj
dCo+JiBhcHBlbmRlZFJvd3MsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4IGU0MDc3YjZl
NjZiMy4uNmE2MjMwMGNhYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigpIGZp
bmFsOworICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOwogCiAgICAgQWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yIGNvbHVtbnMoKSBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3Igcm93cygpIG92ZXJyaWRlOwpAQCAtNzMsNiArNzQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1RhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8v
IFJldHVybnMgd2hldGhlciBpdCBpcyBleHBvc2VkIGFzIGFuIEFjY2Vzc2liaWxpdHlUYWJsZSB0
byB0aGUgcGxhdGZvcm0uCiAgICAgYm9vbCBpc0V4cG9zYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVjb21wdXRlSXNFeHBvc2FibGUoKTsKIAogICAgIGludCBheENvbHVtbkNvdW50
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBkMWYxMWIzN2RiOGYuLjMzZjI2YmE1OTZkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJs
ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMSwyMiArMSwyMSBAQAogVGhpcyB0ZXN0cyB0
aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29y
cmVjdGx5LgogCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCitQQVNTOiBncmlkLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpID09PSAxNgorUEFTUzogZ3JpZC5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSA9PT0gMzAKK1BBU1M6IGdyaWQucm93
Q291bnQgPT09IDQKK1BBU1M6IGdyaWQuY29sdW1uQ291bnQgPT09IDQKK1BBU1M6IGNlbGwxLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSAyCitQQVNTOiBjZWxs
MS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSA9PT0gNworUEFTUzogY2Vs
bDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09IDQKK1BBU1M6
IGNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpID09PSA4CitQQVNT
OiBjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gMwor
UEFTUzogY2VsbDIucm93SW5kZXhSYW5nZSgpID09PSAnezEsIDJ9JworUEFTUzogY2VsbDUuY29s
dW1uSW5kZXhSYW5nZSgpID09PSAnezIsIDN9JworUEFTUzogY2VsbDMucm93SW5kZXhSYW5nZSgp
ID09PSAnezEsIDJ9JworUEFTUzogY2VsbDYucm93SW5kZXhSYW5nZSgpID09PSAnezAsIDJ9Jwor
UEFTUzogY2VsbDcucm93SW5kZXhSYW5nZSgpID09PSAnezAsIDJ9JworUEFTUzogI2dyaWQgQVhB
UklBUm93Q291bnQgZHluYW1pY2FsbHkgY2hhbmdlZCB0byA2MC4KIAotCi1QQVNTIGdyaWQubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykgaXMgMTYKLVBBU1MgZ3JpZC5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSBpcyAzMAotUEFTUyBncmlkLnJv
d0NvdW50IGlzIDQKLVBBU1MgZ3JpZC5jb2x1bW5Db3VudCBpcyA0Ci1QQVNTIGNlbGwxLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDIKLVBBU1MgY2VsbDEubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgaXMgNwotUEFTUyBjZWxsMi5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyA0Ci1QQVNTIGNlbGwyLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIGlzIDgKLVBBU1MgY2VsbDQubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgMwotUEFTUyBjZWxsMi5y
b3dJbmRleFJhbmdlKCkgaXMgJ3sxLCAyfScKLVBBU1MgY2VsbDUuY29sdW1uSW5kZXhSYW5nZSgp
IGlzICd7MiwgM30nCi1QQVNTIGNlbGwzLnJvd0luZGV4UmFuZ2UoKSBpcyAnezEsIDJ9JwotUEFT
UyBjZWxsNi5yb3dJbmRleFJhbmdlKCkgaXMgJ3swLCAyfScKLVBBU1MgY2VsbDcucm93SW5kZXhS
YW5nZSgpIGlzICd7MCwgMn0nCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10
YWJsZS1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFi
bGUtYXR0cmlidXRlcy5odG1sCmluZGV4IDViNWQzNzkwNDhmMC4uYTQzMGRlNGFiYTdjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVz
Lmh0bWwKQEAgLTEsOSArMSwxMCBAQAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nl
c3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgaWQ9ImJvZHkiPgorPGJvZHk+
CiAKIDxkaXYgaWQ9ImdyaWQiIHJvbGU9ImdyaWQiIGFyaWEtY29sY291bnQ9IjE2IiBhcmlhLXJv
d2NvdW50PSIzMCI+CiAgIDxkaXYgcm9sZT0icm93Z3JvdXAiPgpAQCAtNjQsNDYgKzY1LDUzIEBA
CiA8L3RhYmxlPgogCiA8c2NyaXB0PgotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJl
Y3RseS4iKTsKKyAgICB2YXIgdGVzdE91dHB1dCA9ICJUaGlzIHRlc3RzIHRoYXQgYXR0cmlidXRl
cyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBjb3JyZWN0bHkuXG5cbiI7
CiAKICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgCi0gICAg
ICAgICAgdmFyIGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoImdyaWQiKTsKLSAgICAgICAgICB2YXIgY2VsbDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwxIik7Ci0gICAgICAgICAgdmFyIGNlbGwy
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMiIp
OwotICAgICAgICAgIHZhciBjZWxsMyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiY2VsbDMiKTsKLSAgICAgICAgICB2YXIgY2VsbDQgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw0Iik7Ci0gICAgICAgICAg
dmFyIGNlbGw1ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJjZWxsNSIpOwotICAgICAgICAgIHZhciBjZWxsNiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDYiKTsKLSAgICAgICAgICB2YXIgY2VsbDcgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw3Iik7Ci0g
ICAgICAgICAgCi0gICAgICAgICAgLy8gYXJpYS1jb2xjb3VudCBhbmQgYXJpYS1yb3djb3VudAot
ICAgICAgICAgIHNob3VsZEJlKCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1
bW5Db3VudCcpIiwgIjE2Iik7Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykiLCAiMzAiKTsKLSAgICAgICAgICBzaG91bGRCZSgi
Z3JpZC5yb3dDb3VudCIsICI0Iik7Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQuY29sdW1uQ291
bnQiLCAiNCIpOworICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICAg
ICAgICAvLyBhcmlhLWNvbGluZGV4IGFuZCBhcmlhLXJvd2luZGV4Ci0gICAgICAgICAgc2hvdWxk
QmUoImNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjIi
KTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QVJvd0luZGV4JykiLCAiNyIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMi5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICI0Iik7Ci0gICAgICAgICAgc2hvdWxk
QmUoImNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIiwgIjgiKTsK
LSAgICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGZyb20gcGFyZW50IHJvdwotICAgICAgICAgIHNo
b3VsZEJlKCJjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIs
ICIzIik7Ci0gICAgICAgICAgCi0gICAgICAgICAgLy8gYXJpYS1jb2xzcGFuIGFuZCBhcmlhLXJv
d3NwYW4sIGluY2x1ZGluZyBhcmlhLXJvd3NwYW49IjAiCi0gICAgICAgICAgc2hvdWxkQmUoImNl
bGwyLnJvd0luZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOwotICAgICAgICAgIHNob3VsZEJlKCJj
ZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkiLCAiJ3syLCAzfSciKTsKLSAgICAgICAgICBzaG91bGRC
ZSgiY2VsbDMucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisgICAgICAgIHZhciBncmlk
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJncmlkIik7
CisgICAgICAgIHZhciBjZWxsMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgiY2VsbDEiKTsKKyAgICAgICAgdmFyIGNlbGwyID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMiIpOworICAgICAgICB2YXIgY2Vs
bDMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwz
Iik7CisgICAgICAgIHZhciBjZWxsNCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiY2VsbDQiKTsKKyAgICAgICAgdmFyIGNlbGw1ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNSIpOworICAgICAgICB2YXIg
Y2VsbDYgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNl
bGw2Iik7CisgICAgICAgIHZhciBjZWxsNyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgiY2VsbDciKTsKIAotICAgICAgICAgIHNob3VsZEJlKCJjZWxsNi5y
b3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKLSAgICAgICAgICAvLyB1c2Ugcm93c3BhbiBm
b3IgbmF0aXZlIHRhYmxlCi0gICAgICAgICAgc2hvdWxkQmUoImNlbGw3LnJvd0luZGV4UmFuZ2Uo
KSIsICInezAsIDJ9JyIpOwotICAgIH0KKyAgICAgICAgLy8gYXJpYS1jb2xjb3VudCBhbmQgYXJp
YS1yb3djb3VudAorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSIsICIxNiIpOworICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQn
KSIsICIzMCIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5yb3dDb3VudCIs
ICI0Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLmNvbHVtbkNvdW50Iiwg
IjQiKTsKIAotPC9zY3JpcHQ+CisgICAgICAgIC8vIGFyaWEtY29saW5kZXggYW5kIGFyaWEtcm93
aW5kZXgKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwxLm51bWJlckF0dHJpYnV0
ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjIiKTsKKyAgICAgICAgdGVzdE91dHB1dCAr
PSBleHBlY3QoImNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIiwg
IjciKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwyLm51bWJlckF0dHJpYnV0
ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjQiKTsKKyAgICAgICAgdGVzdE91dHB1dCAr
PSBleHBlY3QoImNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIiwg
IjgiKTsKKyAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBmcm9tIHBhcmVudCByb3cKKyAgICAgICAg
dGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFD
b2x1bW5JbmRleCcpIiwgIjMiKTsKKworICAgICAgICAvLyBhcmlhLWNvbHNwYW4gYW5kIGFyaWEt
cm93c3BhbiwgaW5jbHVkaW5nIGFyaWEtcm93c3Bhbj0iMCIKKyAgICAgICAgdGVzdE91dHB1dCAr
PSBleHBlY3QoImNlbGwyLnJvd0luZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOworICAgICAgICB0
ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDUuY29sdW1uSW5kZXhSYW5nZSgpIiwgIid7MiwgM30n
Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMy5yb3dJbmRleFJhbmdlKCki
LCAiJ3sxLCAyfSciKTsKKworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDYucm93
SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7CisgICAgICAgIC8vIHVzZSByb3dzcGFuIGZvciBu
YXRpdmUgdGFibGUKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw3LnJvd0luZGV4
UmFuZ2UoKSIsICInezAsIDJ9JyIpOwogCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJn
cmlkIikuc2V0QXR0cmlidXRlKCJhcmlhLXJvd2NvdW50IiwgIjYwIik7CisgICAgICAgIHNldFRp
bWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+
IHsgcmV0dXJuIGdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgPT09
IDYwIH0pOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSAiUEFTUzogI2dyaWQgQVhBUklBUm93
Q291bnQgZHluYW1pY2FsbHkgY2hhbmdlZCB0byA2MC5cbiI7CisKKyAgICAgICAgICAgIGRlYnVn
KHRlc3RPdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIDAp
OworICAgIH0KKzwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFi
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxl
LXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dAppbmRleCAyM2MyNTZhNDgxZjgu
LmEwMDVmNWMxMDAxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9taW5p
bWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFi
bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDE2ICsxLDE3IEBACiBUaGlzIHRlc3RzIHRoYXQgbWluaW1h
bCB0YWJsZXMgYXJlIHRyZWF0ZWQgYXMgZGF0YSB0YWJsZXMgaWYgdGhleSBoYXZlIEFSSUEgdGFi
bGUtcmVsYXRlZCBwcm9wZXJ0aWVzLgogCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCitjZWxs
IDE6IEFYUm9sZTogQVhDZWxsCitjZWxsIDI6IEFYUm9sZTogQVhDZWxsCitjZWxsIDM6IEFYUm9s
ZTogQVhDZWxsCitjZWxsIDQ6IEFYUm9sZTogQVhDZWxsCitjZWxsIDU6IEFYUm9sZTogQVhDZWxs
CitjZWxsIDY6IEFYUm9sZTogQVhDZWxsCitjZWxsIDc6IEFYUm9sZTogQVhDZWxsCitjZWxsIDg6
IEFYUm9sZTogQVhHcm91cAogCitSZW1vdmluZyBhcmlhLXJvd2NvdW50IGZyb20gI2FyaWEtcm93
Y291bnQtdGFibGUsIHdoaWNoIHNob3VsZCBjYXVzZSBpdCB0byBiZWNvbWUgYSBsYXlvdXQgdGFi
bGUgcmF0aGVyIHRoYW4gYSBkYXRhIHRhYmxlLgorUEFTUzogI2NlbGw2IG5vIGxvbmdlciBoYXMg
YW4gQVhDZWxsIHJvbGUgKGJlY2F1c2UgaXRzIHBhcmVudCB0YWJsZSBpcyBub3cgYSBsYXlvdXQg
dGFibGUpLgogCi1jZWxsMTogQVhSb2xlOiBBWENlbGwKLWNlbGwyOiBBWFJvbGU6IEFYQ2VsbAot
Y2VsbDM6IEFYUm9sZTogQVhDZWxsCi1jZWxsNDogQVhSb2xlOiBBWENlbGwKLWNlbGw1OiBBWFJv
bGU6IEFYQ2VsbAotY2VsbDY6IEFYUm9sZTogQVhDZWxsCi1jZWxsNzogQVhSb2xlOiBBWENlbGwK
LWNlbGw4OiBBWFJvbGU6IEFYR3JvdXAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9t
aW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L21pbmltYWwtdGFibGUtd2l0aC1hcmlhLWlzLWRhdGEtdGFibGUuaHRtbApp
bmRleCA5MGE2OGE5MDA3ZjQuLjNhMTc2ZjM2MTNlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9taW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1p
cy1kYXRhLXRhYmxlLmh0bWwKQEAgLTEsMzMgKzEsNDggQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IGlkPSJi
b2R5Ij4KKzxib2R5PgorCiA8ZGl2IGlkPSJjb250ZW50Ij4KLTx0YWJsZT48dHI+PHRkIGlkPSJj
ZWxsMSIgYXJpYS1jb2xzcGFuPSIxIj54PC90ZD48L3RyPjwvdGFibGU+Ci08dGFibGU+PHRyPjx0
ZCBpZD0iY2VsbDIiIGFyaWEtcm93c3Bhbj0iMSI+eDwvdGQ+PC90cj48L3RhYmxlPgotPHRhYmxl
Pjx0cj48dGQgaWQ9ImNlbGwzIiBhcmlhLWNvbGluZGV4PSIxIj54PC90ZD48L3RyPjwvdGFibGU+
Ci08dGFibGU+PHRyPjx0ZCBpZD0iY2VsbDQiIGFyaWEtcm93aW5kZXg9IjEiPng8L3RkPjwvdHI+
PC90YWJsZT4KLTx0YWJsZT48dHIgYXJpYS1yb3dpbmRleD0iMSI+PHRkIGlkPSJjZWxsNSI+eDwv
dGQ+PC90cj48L3RhYmxlPgotPHRhYmxlIGFyaWEtcm93Y291bnQ9IjEiPjx0cj48dGQgaWQ9ImNl
bGw2Ij54PC90ZD48L3RyPjwvdGFibGU+Ci08dGFibGUgYXJpYS1jb2xjb3VudD0iMSI+PHRyPjx0
ZCBpZD0iY2VsbDciPng8L3RkPjwvdHI+PC90YWJsZT4KLTx0YWJsZT48dHI+PHRkIGlkPSJjZWxs
OCI+eDwvdGQ+PC90cj48L3RhYmxlPgorICA8dGFibGU+PHRyPjx0ZCBpZD0iY2VsbDEiIGFyaWEt
Y29sc3Bhbj0iMSI+eDwvdGQ+PC90cj48L3RhYmxlPgorICA8dGFibGU+PHRyPjx0ZCBpZD0iY2Vs
bDIiIGFyaWEtcm93c3Bhbj0iMSI+eDwvdGQ+PC90cj48L3RhYmxlPgorICA8dGFibGU+PHRyPjx0
ZCBpZD0iY2VsbDMiIGFyaWEtY29saW5kZXg9IjEiPng8L3RkPjwvdHI+PC90YWJsZT4KKyAgPHRh
YmxlPjx0cj48dGQgaWQ9ImNlbGw0IiBhcmlhLXJvd2luZGV4PSIxIj54PC90ZD48L3RyPjwvdGFi
bGU+CisgIDx0YWJsZT48dHIgYXJpYS1yb3dpbmRleD0iMSI+PHRkIGlkPSJjZWxsNSI+eDwvdGQ+
PC90cj48L3RhYmxlPgorICA8dGFibGUgaWQ9ImFyaWEtcm93Y291bnQtdGFibGUiIGFyaWEtcm93
Y291bnQ9IjEiPjx0cj48dGQgaWQ9ImNlbGw2Ij54PC90ZD48L3RyPjwvdGFibGU+CisgIDx0YWJs
ZSBhcmlhLWNvbGNvdW50PSIxIj48dHI+PHRkIGlkPSJjZWxsNyI+eDwvdGQ+PC90cj48L3RhYmxl
PgorICA8dGFibGU+PHRyPjx0ZCBpZD0iY2VsbDgiPng8L3RkPjwvdHI+PC90YWJsZT4KIDwvZGl2
PgorCiA8c2NyaXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCBtaW5p
bWFsIHRhYmxlcyBhcmUgdHJlYXRlZCBhcyBkYXRhIHRhYmxlcyBpZiB0aGV5IGhhdmUgQVJJQSB0
YWJsZS1yZWxhdGVkIHByb3BlcnRpZXMuXG5cbiI7CiAKLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IG1pbmltYWwgdGFibGVzIGFyZSB0cmVhdGVkIGFzIGRhdGEgdGFibGVzIGlmIHRo
ZXkgaGF2ZSBBUklBIHRhYmxlLXJlbGF0ZWQgcHJvcGVydGllcy4iKTsKICAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwogICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSA4OyBpKyspIHsKLSAgICAg
ICAgICAgIHZhciBheEVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoImNlbGwiICsgaSk7Ci0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gIWF4RWxl
bWVudCA/ICIobm90IGV4cG9zZWQpIiA6IGF4RWxlbWVudC5yb2xlOwotICAgICAgICAgICAgZGVi
dWcoImNlbGwiICsgaSArICI6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgY29uc3QgYXhFbGVt
ZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxs
IiArIGkpOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgY2VsbCAke2l9OiAke2F4RWxlbWVu
dC5yb2xlfVxuYDsKICAgICAgICAgfQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICB9CiAKLTwvc2NyaXB0
PgorICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblJlbW92aW5nIGFyaWEtcm93Y291bnQgZnJvbSAj
YXJpYS1yb3djb3VudC10YWJsZSwgd2hpY2ggc2hvdWxkIGNhdXNlIGl0IHRvIGJlY29tZSBhIGxh
eW91dCB0YWJsZSByYXRoZXIgdGhhbiBhIGRhdGEgdGFibGUuXG4iOworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJpYS1yb3djb3VudC10YWJsZSIpLnJlbW92ZUF0dHJpYnV0ZSgi
YXJpYS1yb3djb3VudCIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3Qg
YXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJjZWxsNiIpOworICAgICAgICAgICAgICAgIHJldHVybiAhYXhFbGVtZW50LnJvbGUuaW5jbHVk
ZXMoIkFYQ2VsbCIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9
ICJQQVNTOiAjY2VsbDYgbm8gbG9uZ2VyIGhhcyBhbiBBWENlbGwgcm9sZSAoYmVjYXVzZSBpdHMg
cGFyZW50IHRhYmxlIGlzIG5vdyBhIGxheW91dCB0YWJsZSkuXG4iOwogCi08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVu
IjsKKyAgICAgICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkv
bWluaW1hbC10YWJsZS13aXRoLWFyaWEtaXMtZGF0YS10YWJsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13aXRoLWFy
aWEtaXMtZGF0YS10YWJsZS1leHBlY3RlZC50eHQKaW5kZXggZjJkNjRkMGNiY2QxLi41NDA2Yzc4
MjdkNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0
eS9taW5pbWFsLXRhYmxlLXdpdGgtYXJpYS1pcy1kYXRhLXRhYmxlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvbWluaW1hbC10YWJsZS13
aXRoLWFyaWEtaXMtZGF0YS10YWJsZS1leHBlY3RlZC50eHQKQEAgLTEsMTYgKzEsMTcgQEAKIFRo
aXMgdGVzdHMgdGhhdCBtaW5pbWFsIHRhYmxlcyBhcmUgdHJlYXRlZCBhcyBkYXRhIHRhYmxlcyBp
ZiB0aGV5IGhhdmUgQVJJQSB0YWJsZS1yZWxhdGVkIHByb3BlcnRpZXMuCiAKLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KK2NlbGwgMTogQVhSb2xlOiBBWENlbGwKK2NlbGwgMjogQVhSb2xlOiBB
WENlbGwKK2NlbGwgMzogQVhSb2xlOiBBWENlbGwKK2NlbGwgNDogQVhSb2xlOiBBWENlbGwKK2Nl
bGwgNTogQVhSb2xlOiBBWENlbGwKK2NlbGwgNjogQVhSb2xlOiBBWENlbGwKK2NlbGwgNzogQVhS
b2xlOiBBWENlbGwKK2NlbGwgODogQVhSb2xlOiBBWFNlY3Rpb24KIAorUmVtb3ZpbmcgYXJpYS1y
b3djb3VudCBmcm9tICNhcmlhLXJvd2NvdW50LXRhYmxlLCB3aGljaCBzaG91bGQgY2F1c2UgaXQg
dG8gYmVjb21lIGEgbGF5b3V0IHRhYmxlIHJhdGhlciB0aGFuIGEgZGF0YSB0YWJsZS4KK1BBU1M6
ICNjZWxsNiBubyBsb25nZXIgaGFzIGFuIEFYQ2VsbCByb2xlIChiZWNhdXNlIGl0cyBwYXJlbnQg
dGFibGUgaXMgbm93IGEgbGF5b3V0IHRhYmxlKS4KIAotY2VsbDE6IEFYUm9sZTogQVhDZWxsCi1j
ZWxsMjogQVhSb2xlOiBBWENlbGwKLWNlbGwzOiBBWFJvbGU6IEFYQ2VsbAotY2VsbDQ6IEFYUm9s
ZTogQVhDZWxsCi1jZWxsNTogQVhSb2xlOiBBWENlbGwKLWNlbGw2OiBBWFJvbGU6IEFYQ2VsbAot
Y2VsbDc6IEFYUm9sZTogQVhDZWxsCi1jZWxsODogQVhSb2xlOiBBWFNlY3Rpb24KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotLSAKMi4zMi4wIChBcHBs
ZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459687</attachid>
            <date>2022-05-23 13:35:19 -0700</date>
            <delta_ts>2022-05-23 18:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220523133518.patch</filename>
            <type>text/plain</type>
            <size>24045</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA5YjRmMjg4NTM5MzUzZmQzNzdjNmQwZWRlOWFjYjFiMjY4ODkxZTc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogTW9uLCAyMyBNYXkgMjAyMiAxMzoyOTozNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUpOiBBZGRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRyZW5Sb2xlcyk6IEFkZGVkLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50Lmg6Ck1vdmVkIGZpbmRQYXJlbnRUYWJsZSBmcm9tIHBy
b3RlY3RlZCB0byBwdWJsaWMgc28gaXQgY2FuIGJlIGNhbGxlZCBmcm9tCmFjY2Vzc2liaWxpdHkg
Y29kZS4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVw
ZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiAuLi4vV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCA1OSArKysrKysrKysrLS0tCiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMiArCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwICAgICAgfCAyNiArKysrKy0KIC4u
Li9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oICAgICAgICB8ICAyICsKIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCAgICB8ICA1ICstCiAuLi4vYXJp
YS10YWJsZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAzMSArKysrLS0tCiAuLi4v
YWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCAgfCA4MiArKysrKysrKysr
LS0tLS0tLS0tCiAuLi4tZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQg
fCAxOCArKysrCiAuLi4vdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sICAg
fCA2NiArKysrKysrKysrKysrKysKIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4
cGVjdGVkLnR4dCB8IDE4ICsrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCsp
LCA2OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5h
bWljYWxseS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCBkYjhlYzk5Y2UwMDkuLjUyY2VhYTZjMDM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC04NSw2
ICs4NSw4IEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIklu
bGluZVJ1bkFuZE9mZnNldC5oIgogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKQEAgLTEwNzks
NiArMTA4MSwxMyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUNoaWxkcmVuQ2hhbmdlZChB
Y2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCiAgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlMaXN0
PihvYmplY3QpKQogICAgICAgICBvYmplY3QudXBkYXRlUm9sZSgpOwogCisgICAgLy8gQWRkaW5n
IG9yIHJlbW92aW5nIHJvd3MgZnJvbSBhIHRhYmxlIGNhbiBjYXVzZSBpdCB0byBjaGFuZ2UgZnJv
bSBsYXlvdXQgdGFibGUgdG8gQVggZGF0YSB0YWJsZSBhbmQgdmljZSB2ZXJzYSwgc28gcmUtY29t
cHV0ZSB0aGF0IGhlcmUuCisgICAgaWYgKGF1dG8qIHRhYmxlU2VjdGlvbkVsZW1lbnQgPSBkeW5h
bWljRG93bmNhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KG9iamVjdC5lbGVtZW50KCkpKSB7
CisgICAgICAgIGF1dG8qIHBhcmVudFRhYmxlID0gdGFibGVTZWN0aW9uRWxlbWVudC0+ZmluZFBh
cmVudFRhYmxlKCkuZ2V0KCk7CisgICAgICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1pY0Rv
d25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oZ2V0T3JDcmVhdGUoY29uc3RfY2FzdDxIVE1MVGFi
bGVFbGVtZW50Kj4ocGFyZW50VGFibGUpKSkpCisgICAgICAgICAgICBheFRhYmxlLT5yZWNvbXB1
dGVJc0V4cG9zYWJsZSgpOworICAgIH0KKwogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbigm
b2JqZWN0LCBBWENoaWxkcmVuQ2hhbmdlZCk7CiB9CiAKQEAgLTEyOTMsNyArMTMwMiwyOSBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSogbm9kZSkKICAg
ICAKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9yQ3JlYXRlKG5vZGUpLCAmZG9jdW1lbnQoKSwg
QVhNZW51TGlzdEl0ZW1TZWxlY3RlZCk7CiB9Ci0gICAgCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlUm93Q291bnRDaGFuZ2VkKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3duY2FzdDxB
Y2Nlc3NpYmlsaXR5VGFibGU+KGdldChub2RlKSkpCisgICAgICAgIGF4VGFibGUtPnJlY29tcHV0
ZUlzRXhwb3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYUm93Q291bnRD
aGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQo
QVhDb3JlT2JqZWN0KiBheE9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmICgh
YXhPYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHlu
YW1pY0Rvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oYXhPYmplY3QpKQorICAgICAgICBheFRh
YmxlLT5yZWNvbXB1dGVJc0V4cG9zYWJsZSgpOworCisgICAgcG9zdE5vdGlmaWNhdGlvbihheE9i
amVjdCwgZG9jdW1lbnQsIEFYUm93Q291bnRDaGFuZ2VkKTsKK30KKwogdm9pZCBBWE9iamVjdENh
Y2hlOjpkZWZlckZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VJZk5lZWRlZChOb2RlKiBvbGROb2RlLCBO
b2RlKiBuZXdOb2RlKQogewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2Rl
KSAmJiByZW5kZXJlck5lZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7
CkBAIC0xNzkwLDcgKzE4MjEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFyaWFFeHBh
bmRlZENoYW5nZShOb2RlKiBub2RlKQogCiAgICAgICAgIC8vIFBvc3QgdGhhdCB0aGUgYW5jZXN0
b3IncyByb3cgY291bnQgY2hhbmdlZC4KICAgICAgICAgaWYgKGFuY2VzdG9yKQotICAgICAgICAg
ICAgcG9zdE5vdGlmaWNhdGlvbihhbmNlc3RvciwgJmRvY3VtZW50KCksIEFYUm93Q291bnRDaGFu
Z2VkKTsKKyAgICAgICAgICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChhbmNlc3RvciwgJmRvY3Vt
ZW50KCkpOwogCiAgICAgICAgIC8vIFBvc3QgdGhhdCB0aGUgc3BlY2lmaWMgcm93IGVpdGhlciBj
b2xsYXBzZWQgb3IgZXhwYW5kZWQuCiAgICAgICAgIGF1dG8gcm9sZSA9IG9iamVjdC0+cm9sZVZh
bHVlKCk7CkBAIC0xOTM4LDYgKzE5NjksOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgRWxlbWVudAogICAg
ICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYUmVhZE9ubHlT
dGF0dXNDaGFuZ2VkKTsKICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3JlcXVpcmVkQXR0
cikKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWFJl
cXVpcmVkU3RhdHVzQ2hhbmdlZCk7CisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9yb3dj
b3VudEF0dHIpCisgICAgICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChlbGVtZW50KTsKICAgICBl
bHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3NvcnRBdHRyKQogICAgICAgICBwb3N0Tm90aWZpY2F0
aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYU29ydERpcmVjdGlvbkNoYW5nZWQpOwogfQpA
QCAtMzQxNCw2ICszNDQ3LDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgICAgIGJv
b2wgbm9kZSB7IGZhbHNlIH07CiAgICAgfTsKICAgICBIYXNoTWFwPEFYSUQsIFVwZGF0ZWRGaWVs
ZHM+IHVwZGF0ZWRPYmplY3RzOworICAgIGF1dG8gdXBkYXRlTm9kZSA9IFsmXSAoUmVmUHRyPEFY
Q29yZU9iamVjdD4gYXhPYmplY3QpIHsKKyAgICAgICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBk
YXRlZE9iamVjdHMuZ2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpKTsKKyAgICAgICAgaWYgKCF1cGRh
dGVkRmllbGRzLm5vZGUpIHsKKyAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVj
dC0+b2JqZWN0SUQoKSwgVXBkYXRlZEZpZWxkcyB7IHVwZGF0ZWRGaWVsZHMuY2hpbGRyZW4sIHRy
dWUgfSk7CisgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlKCpheE9iamVjdCk7CisgICAgICAg
IH0KKyAgICB9OworCiAgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmlj
YXRpb25zKSB7CiAgICAgICAgIEFYTE9HKG5vdGlmaWNhdGlvbik7CiAgICAgICAgIGlmICghbm90
aWZpY2F0aW9uLmZpcnN0IHx8ICFub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkuaXNWYWxp
ZCgpKQpAQCAtMzQ1NCwxNyArMzQ5NSwxNSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlz
b2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAg
ICAgICBjYXNlIEFYUHJlc3NlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFYVGV4dENoYW5nZWQ6Ci0gICAgICAgIGNh
c2UgQVhWYWx1ZUNoYW5nZWQ6IHsKLSAgICAgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVw
ZGF0ZWRPYmplY3RzLmdldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkpOwotICAgICAg
ICAgICAgaWYgKCF1cGRhdGVkRmllbGRzLm5vZGUpIHsKLSAgICAgICAgICAgICAgICB1cGRhdGVk
T2JqZWN0cy5zZXQobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRz
IHsgdXBkYXRlZEZpZWxkcy5jaGlsZHJlbiwgdHJ1ZSB9KTsKLSAgICAgICAgICAgICAgICB0cmVl
LT51cGRhdGVOb2RlKCpub3RpZmljYXRpb24uZmlyc3QpOwotICAgICAgICAgICAgfQorICAgICAg
ICBjYXNlIEFYVmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgdXBkYXRlTm9kZShub3RpZmljYXRp
b24uZmlyc3QpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgY2FzZSBB
WFJvd0NvdW50Q2hhbmdlZDoKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24uZmlyc3QtPmlz
VGFibGUoKSkKKyAgICAgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7
CisgICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdl
ZDoKICAgICAgICAgY2FzZSBBWExhbmd1YWdlQ2hhbmdlZDoKLSAgICAgICAgY2FzZSBBWFJvd0Nv
dW50Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFJvd0NvbGxhcHNlZDoKICAgICAgICAgY2FzZSBB
WFJvd0V4cGFuZGVkOiB7CiAgICAgICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVk
T2JqZWN0cy5nZXQobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggMmM0ZjgxMWFlOTcyLi5i
ZTgwZGE2YzdlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCkBAIC00NjIsNiArNDYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZU1lbnVP
cGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwog
ICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CisgICAgdm9pZCBoYW5kbGVS
b3dDb3VudENoYW5nZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlUm93Q291bnRDaGFuZ2VkKEFY
Q29yZU9iamVjdCosIERvY3VtZW50Kik7CiAgICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGVDaGFuZ2Uo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICBib29sIHNob3VsZFByb2Nlc3NB
dHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICB2b2lk
IHNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA0YzI1ZmVhNTQ1MWYu
Ljc1N2VmODU3MTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtMzYyLDYgKzM2MiwyNyBAQCBib29sIEFjY2Vzc2li
aWxpdHlUYWJsZTo6Y29tcHV0ZUlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgp
IGNvbnN0CiAgICAgcmV0dXJuIGlzRGF0YVRhYmxlKCk7CiB9CiAKKwordm9pZCBBY2Nlc3NpYmls
aXR5VGFibGU6OnJlY29tcHV0ZUlzRXhwb3NhYmxlKCkKK3sKKyAgICBib29sIHByZXZpb3VzbHlF
eHBvc2FibGUgPSBtX2lzRXhwb3NhYmxlOworICAgIG1faXNFeHBvc2FibGUgPSBjb21wdXRlSXNU
YWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCk7CisgICAgaWYgKHByZXZpb3VzbHlF
eHBvc2FibGUgIT0gbV9pc0V4cG9zYWJsZSkgeworICAgICAgICAvLyBCZWZvcmUgcmVzZXR0aW5n
IG91ciBleGlzdGluZyBjaGlsZHJlbiwgcG9zc2libHkgbG9zaW5nIHJlZmVyZW5jZXMgdG8gdGhl
bSwgZW5zdXJlIHdlIHVwZGF0ZSB0aGVpciByb2xlIChzaW5jZSBhIHRhYmxlIGNlbGwncyByb2xl
IGlzIGRlcGVuZGVudCBvbiB3aGV0aGVyIGl0cyBwYXJlbnQgdGFibGUgaXMgZXhwb3NhYmxlKS4K
KyAgICAgICAgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOworCisgICAgICAgIG1fY2hpbGRyZW5EaXJ0
eSA9IHRydWU7CisgICAgfQorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hp
bGRyZW5Sb2xlcygpCit7CisgICAgZm9yIChjb25zdCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsKKyAg
ICAgICAgZm9yIChjb25zdCBhdXRvJiBjZWxsIDogcm93LT5jaGlsZHJlbigpKQorICAgICAgICAg
ICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsKKyAg
ICB9Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjpjbGVhckNoaWxkcmVuKCkKIHsKICAg
ICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjbGVhckNoaWxkcmVuKCk7CkBAIC00MjcsMTAg
KzQ0OCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbigpCiAgICAgLy8g
ZGV0ZXJtaW5lcyB3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgdGFibGUuIEl0ZXJhdGUg
YWxsIHRoZSBjZWxscyBhbmQgYWxsb3cgdGhlbSB0bwogICAgIC8vIHVwZGF0ZSB0aGVpciByb2xl
cyBub3cgdGhhdCB0aGUgdGFibGUga25vd3MgaXRzIHN0YXR1cy4KICAgICAvLyBzZWUgYnVnOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDAxCi0gICAgZm9yIChj
b25zdCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjZWxs
IDogcm93LT5jaGlsZHJlbigpKQotICAgICAgICAgICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9i
amVjdD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsKLSAgICB9CisgICAgdXBkYXRlQ2hpbGRyZW5Sb2xl
cygpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkVGFibGVDZWxsQ2hpbGQoQWNj
ZXNzaWJpbGl0eU9iamVjdCogcm93T2JqZWN0LCBIYXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3Qq
PiYgYXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29sdW1uQ291bnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCBlNDA3N2I2ZTY2
YjMuLjZhNjIzMDBjYWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBmaW5h
bDsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuUm9sZXMoKTsKIAogICAgIEFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciBjb2x1bW5zKCkgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yIHJvd3MoKSBvdmVycmlkZTsKQEAgLTczLDYgKzc0LDcgQEAgcHVibGljOgogICAg
IGJvb2wgaXNUYWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBS
ZXR1cm5zIHdoZXRoZXIgaXQgaXMgZXhwb3NlZCBhcyBhbiBBY2Nlc3NpYmlsaXR5VGFibGUgdG8g
dGhlIHBsYXRmb3JtLgogICAgIGJvb2wgaXNFeHBvc2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2b2lkIHJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CiAKICAgICBpbnQgYXhDb2x1bW5Db3VudCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBheFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKaW5kZXggNzg0Yjk4YWRm
MzM3Li5hODhiOGU4MmQ0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUGFydEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRF
bGVtZW50LmgKQEAgLTMzLDYgKzMzLDkgQEAgY2xhc3MgSFRNTFRhYmxlRWxlbWVudDsKIAogY2xh
c3MgSFRNTFRhYmxlUGFydEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoSFRNTFRhYmxlUGFydEVsZW1lbnQpOworcHVibGljOgorICAgIFJl
ZlB0cjxjb25zdCBIVE1MVGFibGVFbGVtZW50PiBmaW5kUGFyZW50VGFibGUoKSBjb25zdDsKKwog
cHJvdGVjdGVkOgogICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKQEAgLTQxLDggKzQ0LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBo
YXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwotCi0gICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVs
ZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRh
YmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQxZjExYjM3ZGI4Zi4uMzNmMjZiYTU5
NmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDIyICsxLDIxIEBACiBUaGlzIHRl
c3RzIHRoYXQgYXR0cmlidXRlcyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2lu
ZyBjb3JyZWN0bHkuCiAKLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KK1BBU1M6IGdyaWQubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykgPT09IDE2CitQQVNTOiBncmlk
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpID09PSAzMAorUEFTUzogZ3Jp
ZC5yb3dDb3VudCA9PT0gNAorUEFTUzogZ3JpZC5jb2x1bW5Db3VudCA9PT0gNAorUEFTUzogY2Vs
bDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09IDIKK1BBU1M6
IGNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpID09PSA3CitQQVNT
OiBjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gNAor
UEFTUzogY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDgK
K1BBU1M6IGNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09
PSAzCitQQVNTOiBjZWxsMi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxs
NS5jb2x1bW5JbmRleFJhbmdlKCkgPT09ICd7MiwgM30nCitQQVNTOiBjZWxsMy5yb3dJbmRleFJh
bmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwg
Mn0nCitQQVNTOiBjZWxsNy5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0nCitQQVNTOiAjZ3Jp
ZCBBWEFSSUFSb3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLgogCi0KLVBBU1MgZ3Jp
ZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSBpcyAxNgotUEFTUyBn
cmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIGlzIDMwCi1QQVNTIGdy
aWQucm93Q291bnQgaXMgNAotUEFTUyBncmlkLmNvbHVtbkNvdW50IGlzIDQKLVBBU1MgY2VsbDEu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgMgotUEFTUyBjZWxs
MS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA3Ci1QQVNTIGNlbGwy
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDQKLVBBU1MgY2Vs
bDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgaXMgOAotUEFTUyBjZWxs
NC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAzCi1QQVNTIGNl
bGwyLnJvd0luZGV4UmFuZ2UoKSBpcyAnezEsIDJ9JwotUEFTUyBjZWxsNS5jb2x1bW5JbmRleFJh
bmdlKCkgaXMgJ3syLCAzfScKLVBBU1MgY2VsbDMucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0n
Ci1QQVNTIGNlbGw2LnJvd0luZGV4UmFuZ2UoKSBpcyAnezAsIDJ9JwotUEFTUyBjZWxsNy5yb3dJ
bmRleFJhbmdlKCkgaXMgJ3swLCAyfScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9h
cmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJp
YS10YWJsZS1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggNWI1ZDM3OTA0OGYwLi5hNDMwZGU0YWJhN2Mg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1
dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMuaHRtbApAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Cis8
Ym9keT4KIAogPGRpdiBpZD0iZ3JpZCIgcm9sZT0iZ3JpZCIgYXJpYS1jb2xjb3VudD0iMTYiIGFy
aWEtcm93Y291bnQ9IjMwIj4KICAgPGRpdiByb2xlPSJyb3dncm91cCI+CkBAIC02NCw0NiArNjUs
NTMgQEAKIDwvdGFibGU+CiAKIDxzY3JpcHQ+Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcg
Y29ycmVjdGx5LiIpOworICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCBhdHRy
aWJ1dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJlY3RseS5c
blxuIjsKIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAK
LSAgICAgICAgICB2YXIgZ3JpZCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgiZ3JpZCIpOwotICAgICAgICAgIHZhciBjZWxsMSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDEiKTsKLSAgICAgICAgICB2YXIg
Y2VsbDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNl
bGwyIik7Ci0gICAgICAgICAgdmFyIGNlbGwzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMyIpOwotICAgICAgICAgIHZhciBjZWxsNCA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDQiKTsKLSAgICAg
ICAgICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVu
dEJ5SWQoImNlbGw1Iik7Ci0gICAgICAgICAgdmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNiIpOwotICAgICAgICAgIHZhciBjZWxs
NyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDci
KTsKLSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBhcmlhLXJvd2Nv
dW50Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QUNvbHVtbkNvdW50JykiLCAiMTYiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJB
dHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSIsICIzMCIpOwotICAgICAgICAgIHNob3Vs
ZEJlKCJncmlkLnJvd0NvdW50IiwgIjQiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5jb2x1
bW5Db3VudCIsICI0Iik7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAot
ICAgICAgICAgIC8vIGFyaWEtY29saW5kZXggYW5kIGFyaWEtcm93aW5kZXgKLSAgICAgICAgICBz
aG91bGRCZSgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4Jyki
LCAiMiIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgn
QVhBUklBUm93SW5kZXgnKSIsICI3Iik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwyLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjQiKTsKLSAgICAgICAgICBz
aG91bGRCZSgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAi
OCIpOwotICAgICAgICAgIC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93Ci0gICAgICAg
ICAgc2hvdWxkQmUoImNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRl
eCcpIiwgIjMiKTsKLSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbHNwYW4gYW5kIGFy
aWEtcm93c3BhbiwgaW5jbHVkaW5nIGFyaWEtcm93c3Bhbj0iMCIKLSAgICAgICAgICBzaG91bGRC
ZSgiY2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7Ci0gICAgICAgICAgc2hvdWxk
QmUoImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIsICInezIsIDN9JyIpOwotICAgICAgICAgIHNo
b3VsZEJlKCJjZWxsMy5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKKyAgICAgICAgdmFy
IGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdy
aWQiKTsKKyAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsMSIpOworICAgICAgICB2YXIgY2VsbDIgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwyIik7CisgICAgICAgIHZh
ciBjZWxsMyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
Y2VsbDMiKTsKKyAgICAgICAgdmFyIGNlbGw0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOworICAgICAgICB2YXIgY2VsbDUgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw1Iik7CisgICAgICAg
IHZhciBjZWxsNiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiY2VsbDYiKTsKKyAgICAgICAgdmFyIGNlbGw3ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNyIpOwogCi0gICAgICAgICAgc2hvdWxkQmUoImNl
bGw2LnJvd0luZGV4UmFuZ2UoKSIsICInezAsIDJ9JyIpOwotICAgICAgICAgIC8vIHVzZSByb3dz
cGFuIGZvciBuYXRpdmUgdGFibGUKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDcucm93SW5kZXhS
YW5nZSgpIiwgIid7MCwgMn0nIik7Ci0gICAgfQorICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFu
ZCBhcmlhLXJvd2NvdW50CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJl
ckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIiwgIjE2Iik7CisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dD
b3VudCcpIiwgIjMwIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLnJvd0Nv
dW50IiwgIjQiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQuY29sdW1uQ291
bnQiLCAiNCIpOwogCi08L3NjcmlwdD4KKyAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJp
YS1yb3dpbmRleAorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0
cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMiIpOworICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4
JykiLCAiNyIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0
cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOworICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4
JykiLCAiOCIpOworICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGZyb20gcGFyZW50IHJvdworICAg
ICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FY
QVJJQUNvbHVtbkluZGV4JykiLCAiMyIpOworCisgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQg
YXJpYS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJpYS1yb3dzcGFuPSIwIgorICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiY2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkiLCAiJ3sy
LCAzfSciKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwzLnJvd0luZGV4UmFu
Z2UoKSIsICInezEsIDJ9JyIpOworCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxs
Ni5yb3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKKyAgICAgICAgLy8gdXNlIHJvd3NwYW4g
Zm9yIG5hdGl2ZSB0YWJsZQorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDcucm93
SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7CiAKLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImdyaWQiKS5zZXRBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiLCAiNjAiKTsKKyAgICAgICAg
c2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Io
KCkgPT4geyByZXR1cm4gZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQn
KSA9PT0gNjAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJQQVNTOiAjZ3JpZCBBWEFS
SUFSb3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLlxuIjsKKworICAgICAgICAgICAg
ZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSwgMCk7CisgICAgfQorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9z
dXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uNGVkMTE4ZmM1MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxl
J3MgImV4cG9zZWQiIHN0YXRlICh3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0
YWJsZSwgdnMuIGp1c3QgYSBsYXlvdXQgdGFibGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHlu
YW1pYyBwYWdlIGNoYW5nZXMuCisKK0luaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291
bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxl
CisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNl
ZCBvbiB0aGlzIHRhYmxlJ3MgY29udGVudHMsIGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0
IHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhVbmtub3duCisjY2VsbE9uZSBBWFJvbGU6IEFYR3Jv
dXAKKworQWRkaW5nIGEgbG90IG9mIHJvd3Mgd2hpY2ggc2hvdWxkIGNhdXNlIHRoZSB0YWJsZSB0
byBiZWNvbWUgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhU
YWJsZQorI2NlbGxPbmUgQVhSb2xlOiBBWENlbGwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NTY2ODcxYzZmODkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9z
dXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisKKzx0YWJsZSBpZD0idGFibGUiIGFyaWEtcm93Y291bnQ9IjEiPgorICAgIDx0
cj4KKyAgICAgICAgPHRkIGlkPSJjZWxsT25lIj54PC90ZD4KKyAgICAgICAgPHRkPng8L3RkPgor
ICAgIDwvdHI+Cis8L3RhYmxlPgorCis8c2NyaXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gYFRo
aXMgdGVzdCBlbnN1cmVzIGEgdGFibGUncyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMg
YW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBk
YXRlcyBpbiByZXNwb25zZSB0byBkeW5hbWljIHBhZ2UgY2hhbmdlcy5cblxuYDsKKworICAgIGZ1
bmN0aW9uIGNyZWF0ZUNlbGwoKSB7CisgICAgICAgIGNvbnN0IGNlbGwgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0ZCIpOworICAgICAgICBjZWxsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJUZXh0IGluc2lkZSBjZWxsIikpOworICAgICAgICByZXR1cm4gY2VsbDsKKyAg
ICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCB0YWJsZSA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGFibGUiKTsKKyAg
ICAgICAgY29uc3QgY2VsbE9uZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgiY2VsbE9uZSIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9ICJJbml0aWFsIHRh
YmxlIHN0YXRlIGhhcyBhcmlhLXJvd2NvdW50LCBzbyBpdCBzaG91bGQgYmUgYSBkYXRhIHRhYmxl
LlxuIjsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgI3RhYmxlICR7dGFibGUucm9sZX1cbmA7Cisg
ICAgICAgIHRlc3RPdXRwdXQgKz0gYCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAg
ICAgICB0ZXN0T3V0cHV0ICs9ICJcblJlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9uIHRo
aXMgdGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFibGUu
XG4iOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGUiKS5yZW1vdmVBdHRy
aWJ1dGUoImFyaWEtcm93Y291bnQiKTsKKyAgICAgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAg
IHJldHVybiAhY2VsbE9uZS5yb2xlLmluY2x1ZGVzKCJBWENlbGwiKSAmJiAhdGFibGUucm9sZS5p
bmNsdWRlcygiQVhUYWJsZSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0
cHV0ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQg
Kz0gYCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAgICAgICAgdGVzdE91dHB1
dCArPSAiXG5BZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxl
IHRvIGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuXG4iOworICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3Qgcm93
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlIikuaW5zZXJ0Um93KC0xKTsKKyAgICAg
ICAgICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbCgpKTsKKyAgICAgICAgICAgICAg
ICByb3cuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxl
LmNoaWxkcmVuQ291bnQgPj0gMjA7CisgICAgICAgICAgICAgICAgICAgIGNlbGxPbmUucm9sZS5p
bmNsdWRlcygiQVhDZWxsIikgJiYKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucm9sZS5pbmNs
dWRlcygiQVhUYWJsZSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0
ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0g
YCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhYmxlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAg
ICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBv
c3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNk
MmVjMTk0OGQ1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
YWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxlJ3MgImV4cG9z
ZWQiIHN0YXRlICh3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZSwgdnMu
IGp1c3QgYSBsYXlvdXQgdGFibGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHluYW1pYyBwYWdl
IGNoYW5nZXMuCisKK0luaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0
IHNob3VsZCBiZSBhIGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2VsbE9u
ZSBBWFJvbGU6IEFYQ2VsbAorCitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNlZCBvbiB0aGlz
IHRhYmxlJ3MgY29udGVudHMsIGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0IHRhYmxlLgor
I3RhYmxlIEFYUm9sZTogQVhVbmtub3duCisjY2VsbE9uZSBBWFJvbGU6IEFYU2VjdGlvbgorCitB
ZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxlIHRvIGJlY29t
ZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisj
Y2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459695</attachid>
            <date>2022-05-23 18:42:47 -0700</date>
            <delta_ts>2022-05-23 22:11:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220523184246.patch</filename>
            <type>text/plain</type>
            <size>24914</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBmNDhlN2VmYWM4OGMwY2JhY2U0NTZlNTgzN2NlNDYzZTlkZjViZTU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogTW9uLCAyMyBNYXkgMjAyMiAxMzoyOTozNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUpOiBBZGRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRyZW5Sb2xlcyk6IEFkZGVkLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50Lmg6Ck1vdmVkIGZpbmRQYXJlbnRUYWJsZSBmcm9tIHBy
b3RlY3RlZCB0byBwdWJsaWMgc28gaXQgY2FuIGJlIGNhbGxlZCBmcm9tCmFjY2Vzc2liaWxpdHkg
Y29kZS4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVw
ZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KLS0tCiAuLi4vV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCA1OSArKysrKysrKysrLS0tCiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMiArCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwICAgICAgfCAyNiArKysrKy0KIC4u
Li9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oICAgICAgICB8ICAyICsKIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCAgICB8ICA1ICstCiAuLi4vYXJp
YS10YWJsZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAzMSArKysrLS0tCiAuLi4v
YWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCAgfCA4MiArKysrKysrKysr
LS0tLS0tLS0tCiAuLi4tZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQg
fCAxOCArKysrCiAuLi4vdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sICAg
fCA2NiArKysrKysrKysrKysrKysKIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4
cGVjdGVkLnR4dCB8IDE4ICsrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zICAgICB8ICAzICsKIDExIGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNlcnRpb25zKCspLCA2
OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11
cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAppbmRleCBkYjhlYzk5Y2UwMDkuLjUyY2VhYTZjMDM1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC04NSw2ICs4
NSw4IEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgIklubGlu
ZVJ1bkFuZE9mZnNldC5oIgogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKQEAgLTEwNzksNiAr
MTA4MSwxMyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUNoaWxkcmVuQ2hhbmdlZChBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCiAgICAgaWYgKGlzPEFjY2Vzc2liaWxpdHlMaXN0Pihv
YmplY3QpKQogICAgICAgICBvYmplY3QudXBkYXRlUm9sZSgpOwogCisgICAgLy8gQWRkaW5nIG9y
IHJlbW92aW5nIHJvd3MgZnJvbSBhIHRhYmxlIGNhbiBjYXVzZSBpdCB0byBjaGFuZ2UgZnJvbSBs
YXlvdXQgdGFibGUgdG8gQVggZGF0YSB0YWJsZSBhbmQgdmljZSB2ZXJzYSwgc28gcmUtY29tcHV0
ZSB0aGF0IGhlcmUuCisgICAgaWYgKGF1dG8qIHRhYmxlU2VjdGlvbkVsZW1lbnQgPSBkeW5hbWlj
RG93bmNhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KG9iamVjdC5lbGVtZW50KCkpKSB7Cisg
ICAgICAgIGF1dG8qIHBhcmVudFRhYmxlID0gdGFibGVTZWN0aW9uRWxlbWVudC0+ZmluZFBhcmVu
dFRhYmxlKCkuZ2V0KCk7CisgICAgICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1pY0Rvd25j
YXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oZ2V0T3JDcmVhdGUoY29uc3RfY2FzdDxIVE1MVGFibGVF
bGVtZW50Kj4ocGFyZW50VGFibGUpKSkpCisgICAgICAgICAgICBheFRhYmxlLT5yZWNvbXB1dGVJ
c0V4cG9zYWJsZSgpOworICAgIH0KKwogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbigmb2Jq
ZWN0LCBBWENoaWxkcmVuQ2hhbmdlZCk7CiB9CiAKQEAgLTEyOTMsNyArMTMwMiwyOSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSogbm9kZSkKICAgICAK
ICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9yQ3JlYXRlKG5vZGUpLCAmZG9jdW1lbnQoKSwgQVhN
ZW51TGlzdEl0ZW1TZWxlY3RlZCk7CiB9Ci0gICAgCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlUm93Q291bnRDaGFuZ2VkKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3duY2FzdDxBY2Nl
c3NpYmlsaXR5VGFibGU+KGdldChub2RlKSkpCisgICAgICAgIGF4VGFibGUtPnJlY29tcHV0ZUlz
RXhwb3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYUm93Q291bnRDaGFu
Z2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoQVhD
b3JlT2JqZWN0KiBheE9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmICghYXhP
YmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1p
Y0Rvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oYXhPYmplY3QpKQorICAgICAgICBheFRhYmxl
LT5yZWNvbXB1dGVJc0V4cG9zYWJsZSgpOworCisgICAgcG9zdE5vdGlmaWNhdGlvbihheE9iamVj
dCwgZG9jdW1lbnQsIEFYUm93Q291bnRDaGFuZ2VkKTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hl
OjpkZWZlckZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VJZk5lZWRlZChOb2RlKiBvbGROb2RlLCBOb2Rl
KiBuZXdOb2RlKQogewogICAgIGlmIChub2RlQW5kUmVuZGVyZXJBcmVWYWxpZChuZXdOb2RlKSAm
JiByZW5kZXJlck5lZWRzRGVmZXJyZWRVcGRhdGUoKm5ld05vZGUtPnJlbmRlcmVyKCkpKSB7CkBA
IC0xNzkwLDcgKzE4MjEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUFyaWFFeHBhbmRl
ZENoYW5nZShOb2RlKiBub2RlKQogCiAgICAgICAgIC8vIFBvc3QgdGhhdCB0aGUgYW5jZXN0b3In
cyByb3cgY291bnQgY2hhbmdlZC4KICAgICAgICAgaWYgKGFuY2VzdG9yKQotICAgICAgICAgICAg
cG9zdE5vdGlmaWNhdGlvbihhbmNlc3RvciwgJmRvY3VtZW50KCksIEFYUm93Q291bnRDaGFuZ2Vk
KTsKKyAgICAgICAgICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChhbmNlc3RvciwgJmRvY3VtZW50
KCkpOwogCiAgICAgICAgIC8vIFBvc3QgdGhhdCB0aGUgc3BlY2lmaWMgcm93IGVpdGhlciBjb2xs
YXBzZWQgb3IgZXhwYW5kZWQuCiAgICAgICAgIGF1dG8gcm9sZSA9IG9iamVjdC0+cm9sZVZhbHVl
KCk7CkBAIC0xOTM4LDYgKzE5NjksOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJp
YnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgRWxlbWVudAogICAgICAg
ICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYUmVhZE9ubHlTdGF0
dXNDaGFuZ2VkKTsKICAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3JlcXVpcmVkQXR0cikK
ICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWFJlcXVp
cmVkU3RhdHVzQ2hhbmdlZCk7CisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9yb3djb3Vu
dEF0dHIpCisgICAgICAgIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChlbGVtZW50KTsKICAgICBlbHNl
IGlmIChhdHRyTmFtZSA9PSBhcmlhX3NvcnRBdHRyKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9u
KGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYU29ydERpcmVjdGlvbkNoYW5nZWQpOwogfQpAQCAt
MzQxNCw2ICszNDQ3LDE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVl
KGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgICAgIGJvb2wg
bm9kZSB7IGZhbHNlIH07CiAgICAgfTsKICAgICBIYXNoTWFwPEFYSUQsIFVwZGF0ZWRGaWVsZHM+
IHVwZGF0ZWRPYmplY3RzOworICAgIGF1dG8gdXBkYXRlTm9kZSA9IFsmXSAoUmVmUHRyPEFYQ29y
ZU9iamVjdD4gYXhPYmplY3QpIHsKKyAgICAgICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRl
ZE9iamVjdHMuZ2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpKTsKKyAgICAgICAgaWYgKCF1cGRhdGVk
RmllbGRzLm5vZGUpIHsKKyAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChheE9iamVjdC0+
b2JqZWN0SUQoKSwgVXBkYXRlZEZpZWxkcyB7IHVwZGF0ZWRGaWVsZHMuY2hpbGRyZW4sIHRydWUg
fSk7CisgICAgICAgICAgICB0cmVlLT51cGRhdGVOb2RlKCpheE9iamVjdCk7CisgICAgICAgIH0K
KyAgICB9OworCiAgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRp
b25zKSB7CiAgICAgICAgIEFYTE9HKG5vdGlmaWNhdGlvbik7CiAgICAgICAgIGlmICghbm90aWZp
Y2F0aW9uLmZpcnN0IHx8ICFub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkuaXNWYWxpZCgp
KQpAQCAtMzQ1NCwxNyArMzQ5NSwxNSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xh
dGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplYwogICAgICAg
ICBjYXNlIEFYUHJlc3NlZFN0YXRlQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFYVGV4dENoYW5nZWQ6Ci0gICAgICAgIGNhc2Ug
QVhWYWx1ZUNoYW5nZWQ6IHsKLSAgICAgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVwZGF0
ZWRPYmplY3RzLmdldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkpOwotICAgICAgICAg
ICAgaWYgKCF1cGRhdGVkRmllbGRzLm5vZGUpIHsKLSAgICAgICAgICAgICAgICB1cGRhdGVkT2Jq
ZWN0cy5zZXQobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRzIHsg
dXBkYXRlZEZpZWxkcy5jaGlsZHJlbiwgdHJ1ZSB9KTsKLSAgICAgICAgICAgICAgICB0cmVlLT51
cGRhdGVOb2RlKCpub3RpZmljYXRpb24uZmlyc3QpOwotICAgICAgICAgICAgfQorICAgICAgICBj
YXNlIEFYVmFsdWVDaGFuZ2VkOgorICAgICAgICAgICAgdXBkYXRlTm9kZShub3RpZmljYXRpb24u
Zmlyc3QpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgY2FzZSBBWFJv
d0NvdW50Q2hhbmdlZDoKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24uZmlyc3QtPmlzVGFi
bGUoKSkKKyAgICAgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7Cisg
ICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgY2FzZSBBWENoaWxkcmVuQ2hhbmdlZDoK
ICAgICAgICAgY2FzZSBBWExhbmd1YWdlQ2hhbmdlZDoKLSAgICAgICAgY2FzZSBBWFJvd0NvdW50
Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFJvd0NvbGxhcHNlZDoKICAgICAgICAgY2FzZSBBWFJv
d0V4cGFuZGVkOiB7CiAgICAgICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2Jq
ZWN0cy5nZXQobm90aWZpY2F0aW9uLmZpcnN0LT5vYmplY3RJRCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggMmM0ZjgxMWFlOTcyLi5iZTgw
ZGE2YzdlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCkBAIC00NjIsNiArNDYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVu
ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAg
IHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CisgICAgdm9pZCBoYW5kbGVSb3dD
b3VudENoYW5nZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlUm93Q291bnRDaGFuZ2VkKEFYQ29y
ZU9iamVjdCosIERvY3VtZW50Kik7CiAgICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICBib29sIHNob3VsZFByb2Nlc3NBdHRy
aWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICB2b2lkIHNl
bGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAppbmRleCA0YzI1ZmVhNTQ1MWYuLjc1
N2VmODU3MTFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtMzYyLDYgKzM2MiwyNyBAQCBib29sIEFjY2Vzc2liaWxp
dHlUYWJsZTo6Y29tcHV0ZUlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpIGNv
bnN0CiAgICAgcmV0dXJuIGlzRGF0YVRhYmxlKCk7CiB9CiAKKwordm9pZCBBY2Nlc3NpYmlsaXR5
VGFibGU6OnJlY29tcHV0ZUlzRXhwb3NhYmxlKCkKK3sKKyAgICBib29sIHByZXZpb3VzbHlFeHBv
c2FibGUgPSBtX2lzRXhwb3NhYmxlOworICAgIG1faXNFeHBvc2FibGUgPSBjb21wdXRlSXNUYWJs
ZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCk7CisgICAgaWYgKHByZXZpb3VzbHlFeHBv
c2FibGUgIT0gbV9pc0V4cG9zYWJsZSkgeworICAgICAgICAvLyBCZWZvcmUgcmVzZXR0aW5nIG91
ciBleGlzdGluZyBjaGlsZHJlbiwgcG9zc2libHkgbG9zaW5nIHJlZmVyZW5jZXMgdG8gdGhlbSwg
ZW5zdXJlIHdlIHVwZGF0ZSB0aGVpciByb2xlIChzaW5jZSBhIHRhYmxlIGNlbGwncyByb2xlIGlz
IGRlcGVuZGVudCBvbiB3aGV0aGVyIGl0cyBwYXJlbnQgdGFibGUgaXMgZXhwb3NhYmxlKS4KKyAg
ICAgICAgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOworCisgICAgICAgIG1fY2hpbGRyZW5EaXJ0eSA9
IHRydWU7CisgICAgfQorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRy
ZW5Sb2xlcygpCit7CisgICAgZm9yIChjb25zdCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsKKyAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBjZWxsIDogcm93LT5jaGlsZHJlbigpKQorICAgICAgICAgICAg
ZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsKKyAgICB9
Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjpjbGVhckNoaWxkcmVuKCkKIHsKICAgICBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpjbGVhckNoaWxkcmVuKCk7CkBAIC00MjcsMTAgKzQ0
OCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbigpCiAgICAgLy8gZGV0
ZXJtaW5lcyB3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgdGFibGUuIEl0ZXJhdGUgYWxs
IHRoZSBjZWxscyBhbmQgYWxsb3cgdGhlbSB0bwogICAgIC8vIHVwZGF0ZSB0aGVpciByb2xlcyBu
b3cgdGhhdCB0aGUgdGFibGUga25vd3MgaXRzIHN0YXR1cy4KICAgICAvLyBzZWUgYnVnOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDAxCi0gICAgZm9yIChjb25z
dCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjZWxsIDog
cm93LT5jaGlsZHJlbigpKQotICAgICAgICAgICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVj
dD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsKLSAgICB9CisgICAgdXBkYXRlQ2hpbGRyZW5Sb2xlcygp
OwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkVGFibGVDZWxsQ2hpbGQoQWNjZXNz
aWJpbGl0eU9iamVjdCogcm93T2JqZWN0LCBIYXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3QqPiYg
YXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29sdW1uQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAppbmRleCBlNDA3N2I2ZTY2YjMu
LjZhNjIzMDBjYWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
YWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBmaW5hbDsK
KyAgICB2b2lkIHVwZGF0ZUNoaWxkcmVuUm9sZXMoKTsKIAogICAgIEFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3RvciBjb2x1bW5zKCkgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIHJvd3MoKSBvdmVycmlkZTsKQEAgLTczLDYgKzc0LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNUYWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBSZXR1
cm5zIHdoZXRoZXIgaXQgaXMgZXhwb3NlZCBhcyBhbiBBY2Nlc3NpYmlsaXR5VGFibGUgdG8gdGhl
IHBsYXRmb3JtLgogICAgIGJvb2wgaXNFeHBvc2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIHJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CiAKICAgICBpbnQgYXhDb2x1bW5Db3VudCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGludCBheFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKaW5kZXggNzg0Yjk4YWRmMzM3
Li5hODhiOGU4MmQ0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
UGFydEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVt
ZW50LmgKQEAgLTMzLDYgKzMzLDkgQEAgY2xhc3MgSFRNTFRhYmxlRWxlbWVudDsKIAogY2xhc3Mg
SFRNTFRhYmxlUGFydEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSFRNTFRhYmxlUGFydEVsZW1lbnQpOworcHVibGljOgorICAgIFJlZlB0
cjxjb25zdCBIVE1MVGFibGVFbGVtZW50PiBmaW5kUGFyZW50VGFibGUoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKQEAgLTQxLDggKzQ0LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwotCi0gICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVsZW1l
bnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxl
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQxZjExYjM3ZGI4Zi4uMzNmMjZiYTU5NmQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRh
YmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDIyICsxLDIxIEBACiBUaGlzIHRlc3Rz
IHRoYXQgYXR0cmlidXRlcyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBj
b3JyZWN0bHkuCiAKLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KK1BBU1M6IGdyaWQubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykgPT09IDE2CitQQVNTOiBncmlkLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpID09PSAzMAorUEFTUzogZ3JpZC5y
b3dDb3VudCA9PT0gNAorUEFTUzogZ3JpZC5jb2x1bW5Db3VudCA9PT0gNAorUEFTUzogY2VsbDEu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09IDIKK1BBU1M6IGNl
bGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpID09PSA3CitQQVNTOiBj
ZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gNAorUEFT
UzogY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDgKK1BB
U1M6IGNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSAz
CitQQVNTOiBjZWxsMi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNS5j
b2x1bW5JbmRleFJhbmdlKCkgPT09ICd7MiwgM30nCitQQVNTOiBjZWxsMy5yb3dJbmRleFJhbmdl
KCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0n
CitQQVNTOiBjZWxsNy5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0nCitQQVNTOiAjZ3JpZCBB
WEFSSUFSb3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLgogCi0KLVBBU1MgZ3JpZC5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSBpcyAxNgotUEFTUyBncmlk
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIGlzIDMwCi1QQVNTIGdyaWQu
cm93Q291bnQgaXMgNAotUEFTUyBncmlkLmNvbHVtbkNvdW50IGlzIDQKLVBBU1MgY2VsbDEubnVt
YmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgMgotUEFTUyBjZWxsMS5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA3Ci1QQVNTIGNlbGwyLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDQKLVBBU1MgY2VsbDIu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgaXMgOAotUEFTUyBjZWxsNC5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAzCi1QQVNTIGNlbGwy
LnJvd0luZGV4UmFuZ2UoKSBpcyAnezEsIDJ9JwotUEFTUyBjZWxsNS5jb2x1bW5JbmRleFJhbmdl
KCkgaXMgJ3syLCAzfScKLVBBU1MgY2VsbDMucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0nCi1Q
QVNTIGNlbGw2LnJvd0luZGV4UmFuZ2UoKSBpcyAnezAsIDJ9JwotUEFTUyBjZWxsNy5yb3dJbmRl
eFJhbmdlKCkgaXMgJ3swLCAyfScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10
YWJsZS1hdHRyaWJ1dGVzLmh0bWwKaW5kZXggNWI1ZDM3OTA0OGYwLi5hNDMwZGU0YWJhN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0
ZXMuaHRtbApAQCAtMSw5ICsxLDEwIEBACiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fj
Y2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Cis8Ym9k
eT4KIAogPGRpdiBpZD0iZ3JpZCIgcm9sZT0iZ3JpZCIgYXJpYS1jb2xjb3VudD0iMTYiIGFyaWEt
cm93Y291bnQ9IjMwIj4KICAgPGRpdiByb2xlPSJyb3dncm91cCI+CkBAIC02NCw0NiArNjUsNTMg
QEAKIDwvdGFibGU+CiAKIDxzY3JpcHQ+Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29y
cmVjdGx5LiIpOworICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCBhdHRyaWJ1
dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJlY3RseS5cblxu
IjsKIAogICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAKLSAg
ICAgICAgICB2YXIgZ3JpZCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgiZ3JpZCIpOwotICAgICAgICAgIHZhciBjZWxsMSA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDEiKTsKLSAgICAgICAgICB2YXIgY2Vs
bDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwy
Iik7Ci0gICAgICAgICAgdmFyIGNlbGwzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsMyIpOwotICAgICAgICAgIHZhciBjZWxsNCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDQiKTsKLSAgICAgICAg
ICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImNlbGw1Iik7Ci0gICAgICAgICAgdmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNiIpOwotICAgICAgICAgIHZhciBjZWxsNyA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDciKTsK
LSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBhcmlhLXJvd2NvdW50
Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNv
bHVtbkNvdW50JykiLCAiMTYiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSIsICIzMCIpOwotICAgICAgICAgIHNob3VsZEJl
KCJncmlkLnJvd0NvdW50IiwgIjQiKTsKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5jb2x1bW5D
b3VudCIsICI0Iik7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAg
ICAgICAgIC8vIGFyaWEtY29saW5kZXggYW5kIGFyaWEtcm93aW5kZXgKLSAgICAgICAgICBzaG91
bGRCZSgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAi
MiIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBUm93SW5kZXgnKSIsICI3Iik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwyLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjQiKTsKLSAgICAgICAgICBzaG91
bGRCZSgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAiOCIp
OwotICAgICAgICAgIC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93Ci0gICAgICAgICAg
c2hvdWxkQmUoImNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcp
IiwgIjMiKTsKLSAgICAgICAgICAKLSAgICAgICAgICAvLyBhcmlhLWNvbHNwYW4gYW5kIGFyaWEt
cm93c3BhbiwgaW5jbHVkaW5nIGFyaWEtcm93c3Bhbj0iMCIKLSAgICAgICAgICBzaG91bGRCZSgi
Y2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7Ci0gICAgICAgICAgc2hvdWxkQmUo
ImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIsICInezIsIDN9JyIpOwotICAgICAgICAgIHNob3Vs
ZEJlKCJjZWxsMy5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKKyAgICAgICAgdmFyIGdy
aWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQi
KTsKKyAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCJjZWxsMSIpOworICAgICAgICB2YXIgY2VsbDIgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwyIik7CisgICAgICAgIHZhciBj
ZWxsMyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2Vs
bDMiKTsKKyAgICAgICAgdmFyIGNlbGw0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOworICAgICAgICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw1Iik7CisgICAgICAgIHZh
ciBjZWxsNiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
Y2VsbDYiKTsKKyAgICAgICAgdmFyIGNlbGw3ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNj
ZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNyIpOwogCi0gICAgICAgICAgc2hvdWxkQmUoImNlbGw2
LnJvd0luZGV4UmFuZ2UoKSIsICInezAsIDJ9JyIpOwotICAgICAgICAgIC8vIHVzZSByb3dzcGFu
IGZvciBuYXRpdmUgdGFibGUKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDcucm93SW5kZXhSYW5n
ZSgpIiwgIid7MCwgMn0nIik7Ci0gICAgfQorICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBh
cmlhLXJvd2NvdW50CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIiwgIjE2Iik7CisgICAgICAgIHRlc3RP
dXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3Vu
dCcpIiwgIjMwIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLnJvd0NvdW50
IiwgIjQiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQuY29sdW1uQ291bnQi
LCAiNCIpOwogCi08L3NjcmlwdD4KKyAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJpYS1y
b3dpbmRleAorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMiIpOworICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4Jyki
LCAiNyIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOworICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4Jyki
LCAiOCIpOworICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGZyb20gcGFyZW50IHJvdworICAgICAg
ICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QUNvbHVtbkluZGV4JykiLCAiMyIpOworCisgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQgYXJp
YS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJpYS1yb3dzcGFuPSIwIgorICAgICAgICB0ZXN0T3V0cHV0
ICs9IGV4cGVjdCgiY2VsbDIucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisgICAgICAg
IHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkiLCAiJ3syLCAz
fSciKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGwzLnJvd0luZGV4UmFuZ2Uo
KSIsICInezEsIDJ9JyIpOworCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNi5y
b3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKKyAgICAgICAgLy8gdXNlIHJvd3NwYW4gZm9y
IG5hdGl2ZSB0YWJsZQorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDcucm93SW5k
ZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7CiAKLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImdyaWQiKS5zZXRBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiLCAiNjAiKTsKKyAgICAgICAgc2V0
VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkg
PT4geyByZXR1cm4gZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSA9
PT0gNjAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJQQVNTOiAjZ3JpZCBBWEFSSUFS
b3dDb3VudCBkeW5hbWljYWxseSBjaGFuZ2VkIHRvIDYwLlxuIjsKKworICAgICAgICAgICAgZGVi
dWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
MCk7CisgICAgfQorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxs
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uNGVkMTE4ZmM1MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxlJ3Mg
ImV4cG9zZWQiIHN0YXRlICh3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJs
ZSwgdnMuIGp1c3QgYSBsYXlvdXQgdGFibGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHluYW1p
YyBwYWdlIGNoYW5nZXMuCisKK0luaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQs
IHNvIGl0IHNob3VsZCBiZSBhIGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisj
Y2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNlZCBv
biB0aGlzIHRhYmxlJ3MgY29udGVudHMsIGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0IHRh
YmxlLgorI3RhYmxlIEFYUm9sZTogQVhVbmtub3duCisjY2VsbE9uZSBBWFJvbGU6IEFYR3JvdXAK
KworQWRkaW5nIGEgbG90IG9mIHJvd3Mgd2hpY2ggc2hvdWxkIGNhdXNlIHRoZSB0YWJsZSB0byBi
ZWNvbWUgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhUYWJs
ZQorI2NlbGxPbmUgQVhSb2xlOiBBWENlbGwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NTY2ODcxYzZmODkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzx0YWJsZSBpZD0idGFibGUiIGFyaWEtcm93Y291bnQ9IjEiPgorICAgIDx0cj4K
KyAgICAgICAgPHRkIGlkPSJjZWxsT25lIj54PC90ZD4KKyAgICAgICAgPHRkPng8L3RkPgorICAg
IDwvdHI+Cis8L3RhYmxlPgorCis8c2NyaXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gYFRoaXMg
dGVzdCBlbnN1cmVzIGEgdGFibGUncyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4g
YWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRl
cyBpbiByZXNwb25zZSB0byBkeW5hbWljIHBhZ2UgY2hhbmdlcy5cblxuYDsKKworICAgIGZ1bmN0
aW9uIGNyZWF0ZUNlbGwoKSB7CisgICAgICAgIGNvbnN0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ0ZCIpOworICAgICAgICBjZWxsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJUZXh0IGluc2lkZSBjZWxsIikpOworICAgICAgICByZXR1cm4gY2VsbDsKKyAgICB9
CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCB0YWJsZSA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGFibGUiKTsKKyAgICAg
ICAgY29uc3QgY2VsbE9uZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgiY2VsbE9uZSIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9ICJJbml0aWFsIHRhYmxl
IHN0YXRlIGhhcyBhcmlhLXJvd2NvdW50LCBzbyBpdCBzaG91bGQgYmUgYSBkYXRhIHRhYmxlLlxu
IjsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgI3RhYmxlICR7dGFibGUucm9sZX1cbmA7CisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gYCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAg
ICB0ZXN0T3V0cHV0ICs9ICJcblJlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9uIHRoaXMg
dGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFibGUuXG4i
OworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGUiKS5yZW1vdmVBdHRyaWJ1
dGUoImFyaWEtcm93Y291bnQiKTsKKyAgICAgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAgIHJl
dHVybiAhY2VsbE9uZS5yb2xlLmluY2x1ZGVzKCJBWENlbGwiKSAmJiAhdGFibGUucm9sZS5pbmNs
dWRlcygiQVhUYWJsZSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0
ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0g
YCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAgICAgICAgdGVzdE91dHB1dCAr
PSAiXG5BZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxlIHRv
IGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuXG4iOworICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3Qgcm93ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlIikuaW5zZXJ0Um93KC0xKTsKKyAgICAgICAg
ICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbCgpKTsKKyAgICAgICAgICAgICAgICBy
b3cuYXBwZW5kQ2hpbGQoY3JlYXRlQ2VsbCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlLmNo
aWxkcmVuQ291bnQgPj0gMjA7CisgICAgICAgICAgICAgICAgICAgIGNlbGxPbmUucm9sZS5pbmNs
dWRlcygiQVhDZWxsIikgJiYKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucm9sZS5pbmNsdWRl
cygiQVhUYWJsZSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9
IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCNj
ZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhYmxlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOworICAgICAgICAg
ICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNkMmVj
MTk0OGQ1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNj
ZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxlJ3MgImV4cG9zZWQi
IHN0YXRlICh3aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZSwgdnMuIGp1
c3QgYSBsYXlvdXQgdGFibGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHluYW1pYyBwYWdlIGNo
YW5nZXMuCisKK0luaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNo
b3VsZCBiZSBhIGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2VsbE9uZSBB
WFJvbGU6IEFYQ2VsbAorCitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNlZCBvbiB0aGlzIHRh
YmxlJ3MgY29udGVudHMsIGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0IHRhYmxlLgorI3Rh
YmxlIEFYUm9sZTogQVhVbmtub3duCisjY2VsbE9uZSBBWFJvbGU6IEFYU2VjdGlvbgorCitBZGRp
bmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxlIHRvIGJlY29tZSBh
biBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2Vs
bE9uZSBBWFJvbGU6IEFYQ2VsbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAzOWE3YjJhYTgyMzAuLmViMzExZWQ2MWVlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1OSw2ICs0NTksOSBAQCBmYXN0L2V2ZW50cy9t
b3VzZW92ZXItYnV0dG9uLmh0bWwgWyBTa2lwIF0KICMgVE9ETyBBY2NlcHQgaGVhZGVyIGlzIGhh
bmRsZWQgYnkgdGhlIGJyb3dzZXIKIGh0dHAvdGVzdHMvbWlzYy9pbWFnZS1jaGVja3MtZm9yLWFj
Y2VwdC5odG1sIFsgU2tpcCBdCiAKKyMgVGltaW5nIG91dCBzaW5jZSBhZGRlZCBpbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNzUwIChsaWtlbHkgc29tZSBtaXNz
aW5nIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgaW1wbGVtZW50YXRpb24pLgorYWNjZXNzaWJpbGl0
eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwgWyBTa2lwIF0KKwogIyBQ
cm9iYWJseSB3cm9uZyByb2xlIGFmdGVyIGFkZGluZyBjaGlsZHJlbiB0byBsaXN0IChBWEdyb3Vw
IGluc3RlYWQgb2YgQVhMaXN0KS4KIGFjY2Vzc2liaWxpdHkvbGlzdC13aXRoLWR5bmFtaWNhbGx5
LWNoYW5naW5nLWNvbnRlbnQuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9pZ25vcmVkLWFy
aWEtcm9sZS1kZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCi0tIAoyLjMyLjAgKEFwcGxlIEdpdC0x
MzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459696</attachid>
            <date>2022-05-23 22:11:56 -0700</date>
            <delta_ts>2022-05-24 09:16:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220523221155.patch</filename>
            <type>text/plain</type>
            <size>25798</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA2MDViZDE5YjRmMTA0ZGY5YjZhMWNkYmIxMzI4ZjU5NzNjOGJmYmM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogTW9uLCAyMyBNYXkgMjAyMiAxMzoyOTozNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUpOiBBZGRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRyZW5Sb2xlcyk6IEFkZGVkLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50Lmg6Ck1vdmVkIGZpbmRQYXJlbnRUYWJsZSBmcm9tIHBy
b3RlY3RlZCB0byBwdWJsaWMgc28gaXQgY2FuIGJlIGNhbGxlZCBmcm9tCmFjY2Vzc2liaWxpdHkg
Y29kZS4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVw
ZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIG5ldyB0ZXN0LgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBEaXNhYmxlIG5ldyB0ZXN0LgotLS0K
IC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDU5ICsrKysr
KysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICB8
ICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAgICAgICB8IDI2
ICsrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggICAgICAgIHwg
IDIgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oICAgIHwgIDUg
Ky0KIC4uLi9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0ICAgICAgICB8IDMxICsr
KystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sICB8IDgy
ICsrKysrKysrKystLS0tLS0tLS0KIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4
cGVjdGVkLnR4dCB8IDE4ICsrKysKIC4uLi90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNh
bGx5Lmh0bWwgICB8IDY2ICsrKysrKysrKysrKysrKwogLi4uLWV4cG9zdXJlLXVwZGF0ZXMtZHlu
YW1pY2FsbHktZXhwZWN0ZWQudHh0IHwgMTggKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMgICAgIHwgIDEgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgICAgIHwgIDMgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjQ0IGluc2VydGlv
bnMoKyksIDY5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4
cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVz
LWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGRiOGVjOTljZTAwOS4uNTJjZWFhNmMwMzU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTg1LDYgKzg1LDggQEAKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgpAQCAt
MTA3OSw2ICsxMDgxLDEzIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFu
Z2VkKEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKICAgICBpZiAoaXM8QWNjZXNzaWJpbGl0
eUxpc3Q+KG9iamVjdCkpCiAgICAgICAgIG9iamVjdC51cGRhdGVSb2xlKCk7CiAKKyAgICAvLyBB
ZGRpbmcgb3IgcmVtb3Zpbmcgcm93cyBmcm9tIGEgdGFibGUgY2FuIGNhdXNlIGl0IHRvIGNoYW5n
ZSBmcm9tIGxheW91dCB0YWJsZSB0byBBWCBkYXRhIHRhYmxlIGFuZCB2aWNlIHZlcnNhLCBzbyBy
ZS1jb21wdXRlIHRoYXQgaGVyZS4KKyAgICBpZiAoYXV0byogdGFibGVTZWN0aW9uRWxlbWVudCA9
IGR5bmFtaWNEb3duY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4ob2JqZWN0LmVsZW1lbnQo
KSkpIHsKKyAgICAgICAgYXV0byogcGFyZW50VGFibGUgPSB0YWJsZVNlY3Rpb25FbGVtZW50LT5m
aW5kUGFyZW50VGFibGUoKS5nZXQoKTsKKyAgICAgICAgaWYgKGF1dG8qIGF4VGFibGUgPSBkeW5h
bWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlPihnZXRPckNyZWF0ZShjb25zdF9jYXN0PEhU
TUxUYWJsZUVsZW1lbnQqPihwYXJlbnRUYWJsZSkpKSkKKyAgICAgICAgICAgIGF4VGFibGUtPnJl
Y29tcHV0ZUlzRXhwb3NhYmxlKCk7CisgICAgfQorCiAgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKCZvYmplY3QsIEFYQ2hpbGRyZW5DaGFuZ2VkKTsKIH0KIApAQCAtMTI5Myw3ICsxMzAyLDI5
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2Rl
KQogICAgIAogICAgIHBvc3ROb3RpZmljYXRpb24oZ2V0T3JDcmVhdGUobm9kZSksICZkb2N1bWVu
dCgpLCBBWE1lbnVMaXN0SXRlbVNlbGVjdGVkKTsKIH0KLSAgICAKKwordm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVSb3dDb3VudENoYW5nZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1pY0Rvd25j
YXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oZ2V0KG5vZGUpKSkKKyAgICAgICAgYXhUYWJsZS0+cmVj
b21wdXRlSXNFeHBvc2FibGUoKTsKKworICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhSb3dD
b3VudENoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hh
bmdlZChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
aWYgKCFheE9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGF4VGFibGUg
PSBkeW5hbWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlPihheE9iamVjdCkpCisgICAgICAg
IGF4VGFibGUtPnJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9u
KGF4T2JqZWN0LCBkb2N1bWVudCwgQVhSb3dDb3VudENoYW5nZWQpOworfQorCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJRWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUqIG9sZE5v
ZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5l
d05vZGUpICYmIHJlbmRlcmVyTmVlZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIo
KSkpIHsKQEAgLTE3OTAsNyArMTgyMSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJp
YUV4cGFuZGVkQ2hhbmdlKE5vZGUqIG5vZGUpCiAKICAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBh
bmNlc3RvcidzIHJvdyBjb3VudCBjaGFuZ2VkLgogICAgICAgICBpZiAoYW5jZXN0b3IpCi0gICAg
ICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGFuY2VzdG9yLCAmZG9jdW1lbnQoKSwgQVhSb3dDb3Vu
dENoYW5nZWQpOworICAgICAgICAgICAgaGFuZGxlUm93Q291bnRDaGFuZ2VkKGFuY2VzdG9yLCAm
ZG9jdW1lbnQoKSk7CiAKICAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBzcGVjaWZpYyByb3cgZWl0
aGVyIGNvbGxhcHNlZCBvciBleHBhbmRlZC4KICAgICAgICAgYXV0byByb2xlID0gb2JqZWN0LT5y
b2xlVmFsdWUoKTsKQEAgLTE5MzgsNiArMTk2OSw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50
CiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhSZWFk
T25seVN0YXR1c0NoYW5nZWQpOwogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfcmVxdWly
ZWRBdHRyKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6
OkFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkKTsKKyAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlh
X3Jvd2NvdW50QXR0cikKKyAgICAgICAgaGFuZGxlUm93Q291bnRDaGFuZ2VkKGVsZW1lbnQpOwog
ICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfc29ydEF0dHIpCiAgICAgICAgIHBvc3ROb3Rp
ZmljYXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhTb3J0RGlyZWN0aW9uQ2hhbmdlZCk7
CiB9CkBAIC0zNDE0LDYgKzM0NDcsMTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29s
YXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWMKICAgICAg
ICAgYm9vbCBub2RlIHsgZmFsc2UgfTsKICAgICB9OwogICAgIEhhc2hNYXA8QVhJRCwgVXBkYXRl
ZEZpZWxkcz4gdXBkYXRlZE9iamVjdHM7CisgICAgYXV0byB1cGRhdGVOb2RlID0gWyZdIChSZWZQ
dHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCkgeworICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMg
PSB1cGRhdGVkT2JqZWN0cy5nZXQoYXhPYmplY3QtPm9iamVjdElEKCkpOworICAgICAgICBpZiAo
IXVwZGF0ZWRGaWVsZHMubm9kZSkgeworICAgICAgICAgICAgdXBkYXRlZE9iamVjdHMuc2V0KGF4
T2JqZWN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRzIHsgdXBkYXRlZEZpZWxkcy5jaGlsZHJl
biwgdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUoKmF4T2JqZWN0KTsKKyAg
ICAgICAgfQorICAgIH07CisKICAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5v
dGlmaWNhdGlvbnMpIHsKICAgICAgICAgQVhMT0cobm90aWZpY2F0aW9uKTsKICAgICAgICAgaWYg
KCFub3RpZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKS5p
c1ZhbGlkKCkpCkBAIC0zNDU0LDE3ICszNDk1LDE1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBk
YXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVj
CiAgICAgICAgIGNhc2UgQVhQcmVzc2VkU3RhdGVDaGFuZ2VkOgogICAgICAgICBjYXNlIEFYU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhUZXh0Q2hhbmdlZDoKLSAgICAg
ICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDogewotICAgICAgICAgICAgYXV0byB1cGRhdGVkRmllbGRz
ID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSk7Ci0g
ICAgICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkgewotICAgICAgICAgICAgICAgIHVw
ZGF0ZWRPYmplY3RzLnNldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCksIFVwZGF0ZWRG
aWVsZHMgeyB1cGRhdGVkRmllbGRzLmNoaWxkcmVuLCB0cnVlIH0pOwotICAgICAgICAgICAgICAg
IHRyZWUtPnVwZGF0ZU5vZGUoKm5vdGlmaWNhdGlvbi5maXJzdCk7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6CisgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlm
aWNhdGlvbi5maXJzdCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgICAgICBj
YXNlIEFYUm93Q291bnRDaGFuZ2VkOgorICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5maXJz
dC0+aXNUYWJsZSgpKQorICAgICAgICAgICAgICAgIHVwZGF0ZU5vZGUobm90aWZpY2F0aW9uLmZp
cnN0KTsKKyAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICBjYXNlIEFYQ2hpbGRyZW5D
aGFuZ2VkOgogICAgICAgICBjYXNlIEFYTGFuZ3VhZ2VDaGFuZ2VkOgotICAgICAgICBjYXNlIEFY
Um93Q291bnRDaGFuZ2VkOgogICAgICAgICBjYXNlIEFYUm93Q29sbGFwc2VkOgogICAgICAgICBj
YXNlIEFYUm93RXhwYW5kZWQ6IHsKICAgICAgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVw
ZGF0ZWRPYmplY3RzLmdldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElEKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCAyYzRmODExYWU5
NzIuLmJlODBkYTZjN2U2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKQEAgLTQ2Miw2ICs0NjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxl
TWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2Rl
Kik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKKyAgICB2b2lkIGhh
bmRsZVJvd0NvdW50Q2hhbmdlZChOb2RlKik7CisgICAgdm9pZCBoYW5kbGVSb3dDb3VudENoYW5n
ZWQoQVhDb3JlT2JqZWN0KiwgRG9jdW1lbnQqKTsKICAgICB2b2lkIGhhbmRsZUF0dHJpYnV0ZUNo
YW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOwogICAgIGJvb2wgc2hvdWxkUHJv
Y2Vzc0F0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOwogICAg
IHZvaWQgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDRjMjVmZWE1
NDUxZi4uNzU3ZWY4NTcxMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCkBAIC0zNjIsNiArMzYyLDI3IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eVRhYmxlOjpjb21wdXRlSXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmls
aXR5KCkgY29uc3QKICAgICByZXR1cm4gaXNEYXRhVGFibGUoKTsKIH0KIAorCit2b2lkIEFjY2Vz
c2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUoKQoreworICAgIGJvb2wgcHJldmlv
dXNseUV4cG9zYWJsZSA9IG1faXNFeHBvc2FibGU7CisgICAgbV9pc0V4cG9zYWJsZSA9IGNvbXB1
dGVJc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKTsKKyAgICBpZiAocHJldmlv
dXNseUV4cG9zYWJsZSAhPSBtX2lzRXhwb3NhYmxlKSB7CisgICAgICAgIC8vIEJlZm9yZSByZXNl
dHRpbmcgb3VyIGV4aXN0aW5nIGNoaWxkcmVuLCBwb3NzaWJseSBsb3NpbmcgcmVmZXJlbmNlcyB0
byB0aGVtLCBlbnN1cmUgd2UgdXBkYXRlIHRoZWlyIHJvbGUgKHNpbmNlIGEgdGFibGUgY2VsbCdz
IHJvbGUgaXMgZGVwZW5kZW50IG9uIHdoZXRoZXIgaXRzIHBhcmVudCB0YWJsZSBpcyBleHBvc2Fi
bGUpLgorICAgICAgICB1cGRhdGVDaGlsZHJlblJvbGVzKCk7CisKKyAgICAgICAgbV9jaGlsZHJl
bkRpcnR5ID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRh
dGVDaGlsZHJlblJvbGVzKCkKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykg
eworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCisgICAg
ICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgp
OworICAgIH0KK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNsZWFyQ2hpbGRyZW4oKQog
ewogICAgIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKTsKQEAgLTQy
NywxMCArNDQ4LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKCkKICAg
ICAvLyBkZXRlcm1pbmVzIHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRl
cmF0ZSBhbGwgdGhlIGNlbGxzIGFuZCBhbGxvdyB0aGVtIHRvCiAgICAgLy8gdXBkYXRlIHRoZWly
IHJvbGVzIG5vdyB0aGF0IHRoZSB0YWJsZSBrbm93cyBpdHMgc3RhdHVzLgogICAgIC8vIHNlZSBi
dWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKLSAgICBm
b3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmls
aXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZHJl
blJvbGVzKCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRUYWJsZUNlbGxDaGls
ZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb3dPYmplY3QsIEhhc2hTZXQ8QWNjZXNzaWJpbGl0eU9i
amVjdCo+JiBhcHBlbmRlZFJvd3MsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4IGU0MDc3
YjZlNjZiMy4uNmE2MjMwMGNhYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigp
IGZpbmFsOworICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOwogCiAgICAgQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVtbnMoKSBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3Igcm93cygpIG92ZXJyaWRlOwpAQCAtNzMsNiArNzQsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc1RhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IC8vIFJldHVybnMgd2hldGhlciBpdCBpcyBleHBvc2VkIGFzIGFuIEFjY2Vzc2liaWxpdHlUYWJs
ZSB0byB0aGUgcGxhdGZvcm0uCiAgICAgYm9vbCBpc0V4cG9zYWJsZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZvaWQgcmVjb21wdXRlSXNFeHBvc2FibGUoKTsKIAogICAgIGludCBheENvbHVtbkNv
dW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAppbmRleCA3ODRi
OThhZGYzMzcuLmE4OGI4ZTgyZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVQYXJ0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
UGFydEVsZW1lbnQuaApAQCAtMzMsNiArMzMsOSBAQCBjbGFzcyBIVE1MVGFibGVFbGVtZW50Owog
CiBjbGFzcyBIVE1MVGFibGVQYXJ0RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MVGFibGVQYXJ0RWxlbWVudCk7CitwdWJsaWM6Cisg
ICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVsZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0
OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KQpAQCAtNDEsOCArNDQsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Ci0KLSAgICBSZWZQdHI8Y29uc3QgSFRNTFRh
YmxlRWxlbWVudD4gZmluZFBhcmVudFRhYmxlKCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFi
bGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggZDFmMTFiMzdkYjhmLi4zM2Yy
NmJhNTk2ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJs
ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEsMjIgKzEsMjEgQEAKIFRo
aXMgdGVzdHMgdGhhdCBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3
b3JraW5nIGNvcnJlY3RseS4KIAotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorUEFTUzogZ3Jp
ZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSA9PT0gMTYKK1BBU1M6
IGdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgPT09IDMwCitQQVNT
OiBncmlkLnJvd0NvdW50ID09PSA0CitQQVNTOiBncmlkLmNvbHVtbkNvdW50ID09PSA0CitQQVNT
OiBjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gMgor
UEFTUzogY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDcK
K1BBU1M6IGNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09
PSA0CitQQVNTOiBjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSA9
PT0gOAorUEFTUzogY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4
JykgPT09IDMKK1BBU1M6IGNlbGwyLnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3sxLCAyfScKK1BBU1M6
IGNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSA9PT0gJ3syLCAzfScKK1BBU1M6IGNlbGwzLnJvd0lu
ZGV4UmFuZ2UoKSA9PT0gJ3sxLCAyfScKK1BBU1M6IGNlbGw2LnJvd0luZGV4UmFuZ2UoKSA9PT0g
J3swLCAyfScKK1BBU1M6IGNlbGw3LnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3swLCAyfScKK1BBU1M6
ICNncmlkIEFYQVJJQVJvd0NvdW50IGR5bmFtaWNhbGx5IGNoYW5nZWQgdG8gNjAuCiAKLQotUEFT
UyBncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIGlzIDE2Ci1Q
QVNTIGdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgaXMgMzAKLVBB
U1MgZ3JpZC5yb3dDb3VudCBpcyA0Ci1QQVNTIGdyaWQuY29sdW1uQ291bnQgaXMgNAotUEFTUyBj
ZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAyCi1QQVNT
IGNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIGlzIDcKLVBBU1Mg
Y2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgNAotUEFT
UyBjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA4Ci1QQVNT
IGNlbGw0Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDMKLVBB
U1MgY2VsbDIucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0nCi1QQVNTIGNlbGw1LmNvbHVtbklu
ZGV4UmFuZ2UoKSBpcyAnezIsIDN9JwotUEFTUyBjZWxsMy5yb3dJbmRleFJhbmdlKCkgaXMgJ3sx
LCAyfScKLVBBU1MgY2VsbDYucm93SW5kZXhSYW5nZSgpIGlzICd7MCwgMn0nCi1QQVNTIGNlbGw3
LnJvd0luZGV4UmFuZ2UoKSBpcyAnezAsIDJ9JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbAppbmRleCA1YjVkMzc5MDQ4ZjAuLmE0MzBkZTRh
YmE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0
dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUt
YXR0cmlidXRlcy5odG1sCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IGlkPSJib2R5
Ij4KKzxib2R5PgogCiA8ZGl2IGlkPSJncmlkIiByb2xlPSJncmlkIiBhcmlhLWNvbGNvdW50PSIx
NiIgYXJpYS1yb3djb3VudD0iMzAiPgogICA8ZGl2IHJvbGU9InJvd2dyb3VwIj4KQEAgLTY0LDQ2
ICs2NSw1MyBAQAogPC90YWJsZT4KIAogPHNjcmlwdD4KLQotICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgYXR0cmlidXRlcyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29y
a2luZyBjb3JyZWN0bHkuIik7CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0
IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29ycmVj
dGx5LlxuXG4iOwogCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewot
ICAgIAotICAgICAgICAgIHZhciBncmlkID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJncmlkIik7Ci0gICAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMSIpOwotICAgICAgICAg
IHZhciBjZWxsMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiY2VsbDIiKTsKLSAgICAgICAgICB2YXIgY2VsbDMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwzIik7Ci0gICAgICAgICAgdmFyIGNlbGw0ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOwot
ICAgICAgICAgIHZhciBjZWxsNSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgiY2VsbDUiKTsKLSAgICAgICAgICB2YXIgY2VsbDYgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw2Iik7Ci0gICAgICAgICAgdmFy
IGNlbGw3ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJj
ZWxsNyIpOwotICAgICAgICAgIAotICAgICAgICAgIC8vIGFyaWEtY29sY291bnQgYW5kIGFyaWEt
cm93Y291bnQKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgn
QVhBUklBQ29sdW1uQ291bnQnKSIsICIxNiIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIiwgIjMwIik7Ci0gICAgICAgICAg
c2hvdWxkQmUoImdyaWQucm93Q291bnQiLCAiNCIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlk
LmNvbHVtbkNvdW50IiwgIjQiKTsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCi0gICAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJpYS1yb3dpbmRleAotICAgICAg
ICAgIHNob3VsZEJlKCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5k
ZXgnKSIsICIyIik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwxLm51bWJlckF0dHJpYnV0ZVZh
bHVlKCdBWEFSSUFSb3dJbmRleCcpIiwgIjciKTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDIu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOwotICAgICAg
ICAgIHNob3VsZEJlKCJjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgn
KSIsICI4Iik7Ci0gICAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBmcm9tIHBhcmVudCByb3cKLSAg
ICAgICAgICBzaG91bGRCZSgiY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVt
bkluZGV4JykiLCAiMyIpOwotICAgICAgICAgIAotICAgICAgICAgIC8vIGFyaWEtY29sc3BhbiBh
bmQgYXJpYS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJpYS1yb3dzcGFuPSIwIgotICAgICAgICAgIHNo
b3VsZEJlKCJjZWxsMi5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKLSAgICAgICAgICBz
aG91bGRCZSgiY2VsbDUuY29sdW1uSW5kZXhSYW5nZSgpIiwgIid7MiwgM30nIik7Ci0gICAgICAg
ICAgc2hvdWxkQmUoImNlbGwzLnJvd0luZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOworICAgICAg
ICB2YXIgZ3JpZCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJ
ZCgiZ3JpZCIpOworICAgICAgICB2YXIgY2VsbDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwxIik7CisgICAgICAgIHZhciBjZWxsMiA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDIiKTsKKyAgICAg
ICAgdmFyIGNlbGwzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJjZWxsMyIpOworICAgICAgICB2YXIgY2VsbDQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw0Iik7CisgICAgICAgIHZhciBjZWxsNSA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDUiKTsKKyAg
ICAgICAgdmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1l
bnRCeUlkKCJjZWxsNiIpOworICAgICAgICB2YXIgY2VsbDcgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw3Iik7CiAKLSAgICAgICAgICBzaG91bGRC
ZSgiY2VsbDYucm93SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7Ci0gICAgICAgICAgLy8gdXNl
IHJvd3NwYW4gZm9yIG5hdGl2ZSB0YWJsZQotICAgICAgICAgIHNob3VsZEJlKCJjZWxsNy5yb3dJ
bmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKLSAgICB9CisgICAgICAgIC8vIGFyaWEtY29sY291
bnQgYW5kIGFyaWEtcm93Y291bnQKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykiLCAiMTYiKTsKKyAgICAg
ICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QVJvd0NvdW50JykiLCAiMzAiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQu
cm93Q291bnQiLCAiNCIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5jb2x1
bW5Db3VudCIsICI0Iik7CiAKLTwvc2NyaXB0PgorICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGFu
ZCBhcmlhLXJvd2luZGV4CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMS5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICIyIik7CisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93
SW5kZXgnKSIsICI3Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICI0Iik7CisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93
SW5kZXgnKSIsICI4Iik7CisgICAgICAgIC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93
CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1
ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICIzIik7CisKKyAgICAgICAgLy8gYXJpYS1jb2xzcGFu
IGFuZCBhcmlhLXJvd3NwYW4sIGluY2x1ZGluZyBhcmlhLXJvd3NwYW49IjAiCisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsK
KyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIs
ICInezIsIDN9JyIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDMucm93SW5k
ZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3Qo
ImNlbGw2LnJvd0luZGV4UmFuZ2UoKSIsICInezAsIDJ9JyIpOworICAgICAgICAvLyB1c2Ugcm93
c3BhbiBmb3IgbmF0aXZlIHRhYmxlCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxs
Ny5yb3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKIAotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZ3JpZCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIsICI2MCIpOworICAg
ICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgd2Fp
dEZvcigoKSA9PiB7IHJldHVybiBncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dD
b3VudCcpID09PSA2MCB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlBBU1M6ICNncmlk
IEFYQVJJQVJvd0NvdW50IGR5bmFtaWNhbGx5IGNoYW5nZWQgdG8gNjAuXG4iOworCisgICAgICAg
ICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5
bmFtaWNhbGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUt
ZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40ZWQxMThmYzUyMTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1p
Y2FsbHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEg
dGFibGUncyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBk
YXRhIHRhYmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0
byBkeW5hbWljIHBhZ2UgY2hhbmdlcy4KKworSW5pdGlhbCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1y
b3djb3VudCwgc28gaXQgc2hvdWxkIGJlIGEgZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFY
VGFibGUKKyNjZWxsT25lIEFYUm9sZTogQVhDZWxsCisKK1JlbW92aW5nIGFyaWEtcm93Y291bnQu
IEJhc2VkIG9uIHRoaXMgdGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBs
YXlvdXQgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFVua25vd24KKyNjZWxsT25lIEFYUm9sZTog
QVhHcm91cAorCitBZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRh
YmxlIHRvIGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xl
OiBBWFRhYmxlCisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2Fs
bHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU1NjY4NzFj
NmY4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUt
ZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKworPHRhYmxlIGlkPSJ0YWJsZSIgYXJpYS1yb3djb3VudD0iMSI+Cisg
ICAgPHRyPgorICAgICAgICA8dGQgaWQ9ImNlbGxPbmUiPng8L3RkPgorICAgICAgICA8dGQ+eDwv
dGQ+CisgICAgPC90cj4KKzwvdGFibGU+CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQg
PSBgVGhpcyB0ZXN0IGVuc3VyZXMgYSB0YWJsZSdzICJleHBvc2VkIiBzdGF0ZSAod2hldGhlciBp
dCBpcyBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUsIHZzLiBqdXN0IGEgbGF5b3V0IHRhYmxl
KSB1cGRhdGVzIGluIHJlc3BvbnNlIHRvIGR5bmFtaWMgcGFnZSBjaGFuZ2VzLlxuXG5gOworCisg
ICAgZnVuY3Rpb24gY3JlYXRlQ2VsbCgpIHsKKyAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInRkIik7CisgICAgICAgIGNlbGwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIlRleHQgaW5zaWRlIGNlbGwiKSk7CisgICAgICAgIHJldHVybiBjZWxs
OworICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAg
ICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IHRhYmxl
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIp
OworICAgICAgICBjb25zdCBjZWxsT25lID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJjZWxsT25lIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIkluaXRp
YWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEg
dGFibGUuXG4iOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxu
YDsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOwor
CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIlxuUmVtb3ZpbmcgYXJpYS1yb3djb3VudC4gQmFzZWQg
b24gdGhpcyB0YWJsZSdzIGNvbnRlbnRzLCBpdCBzaG91bGQgbm93IGJlY29tZSBhIGxheW91dCB0
YWJsZS5cbiI7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZSIpLnJlbW92
ZUF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuICFjZWxsT25lLnJvbGUuaW5jbHVkZXMoIkFYQ2VsbCIpICYmICF0YWJsZS5y
b2xlLmluY2x1ZGVzKCJBWFRhYmxlIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRl
c3RPdXRwdXQgKz0gYCN0YWJsZSAke3RhYmxlLnJvbGV9XG5gOworICAgICAgICAgICAgdGVzdE91
dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOworCisgICAgICAgICAgICB0ZXN0
T3V0cHV0ICs9ICJcbkFkZGluZyBhIGxvdCBvZiByb3dzIHdoaWNoIHNob3VsZCBjYXVzZSB0aGUg
dGFibGUgdG8gYmVjb21lIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZS5cbiI7CisgICAgICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjb25z
dCByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGUiKS5pbnNlcnRSb3coLTEpOwor
ICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVhdGVDZWxsKCkpOworICAgICAgICAg
ICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVhdGVDZWxsKCkpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
dGFibGUuY2hpbGRyZW5Db3VudCA+PSAyMDsKKyAgICAgICAgICAgICAgICAgICAgY2VsbE9uZS5y
b2xlLmluY2x1ZGVzKCJBWENlbGwiKSAmJgorICAgICAgICAgICAgICAgICAgICB0YWJsZS5yb2xl
LmluY2x1ZGVzKCJBWFRhYmxlIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RP
dXRwdXQgKz0gYCN0YWJsZSAke3RhYmxlLnJvbGV9XG5gOworICAgICAgICAgICAgdGVzdE91dHB1
dCArPSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOworCisgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFibGUiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Cisg
ICAgICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxl
LWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1p
Y2FsbHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uM2QyZWMxOTQ4ZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEgdGFibGUncyAi
ZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxl
LCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBkeW5hbWlj
IHBhZ2UgY2hhbmdlcy4KKworSW5pdGlhbCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1yb3djb3VudCwg
c28gaXQgc2hvdWxkIGJlIGEgZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFibGUKKyNj
ZWxsT25lIEFYUm9sZTogQVhDZWxsCisKK1JlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9u
IHRoaXMgdGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFi
bGUuCisjdGFibGUgQVhSb2xlOiBBWFVua25vd24KKyNjZWxsT25lIEFYUm9sZTogQVhTZWN0aW9u
CisKK0FkZGluZyBhIGxvdCBvZiByb3dzIHdoaWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUgdG8g
YmVjb21lIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFi
bGUKKyNjZWxsT25lIEFYUm9sZTogQVhDZWxsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGVkMjBiZWZhMjYzMS4uZGEwMDI2MjlkYWI4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjExMCw2ICsyMTEwLDcgQEAgd2Vi
a2l0Lm9yZy9iLzE0ODgwNiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
bXVsdGljb2wvbXVsdGljb2wtc3AKICMgRW5hYmxlICJwaG9uZSBudW1iZXIgbGlua2lmeWluZyIg
dGVzdCBmb3IgaU9TCiBmYXN0L2RvbS9saW5raWZ5LXBob25lLW51bWJlcnMuaHRtbCBbIFBhc3Mg
XQogCithY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9hcmlhLWJ1c3ktdXBkYXRlcy1hZnRlci1keW5hbWlj
LWNoYW5nZS5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXkt
Y29udGVudHMtZWxlbWVudC5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9u
bHktdXBkYXRlcy1hZnRlci1keW5hbWljLWNoYW5nZS5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM5YTdiMmFhODIzMC4uZWIzMTFl
ZDYxZWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDU5LDYgKzQ1OSw5IEBAIGZhc3QvZXZlbnRzL21vdXNlb3Zlci1idXR0b24uaHRtbCBbIFNraXAg
XQogIyBUT0RPIEFjY2VwdCBoZWFkZXIgaXMgaGFuZGxlZCBieSB0aGUgYnJvd3NlcgogaHR0cC90
ZXN0cy9taXNjL2ltYWdlLWNoZWNrcy1mb3ItYWNjZXB0Lmh0bWwgWyBTa2lwIF0KIAorIyBUaW1p
bmcgb3V0IHNpbmNlIGFkZGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDA3NTAgKGxpa2VseSBzb21lIG1pc3NpbmcgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBp
bXBsZW1lbnRhdGlvbikuCithY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHlu
YW1pY2FsbHkuaHRtbCBbIFNraXAgXQorCiAjIFByb2JhYmx5IHdyb25nIHJvbGUgYWZ0ZXIgYWRk
aW5nIGNoaWxkcmVuIHRvIGxpc3QgKEFYR3JvdXAgaW5zdGVhZCBvZiBBWExpc3QpLgogYWNjZXNz
aWJpbGl0eS9saXN0LXdpdGgtZHluYW1pY2FsbHktY2hhbmdpbmctY29udGVudC5odG1sIFsgU2tp
cCBdCiBhY2Nlc3NpYmlsaXR5L2lnbm9yZWQtYXJpYS1yb2xlLWRlc2NyaXB0aW9uLmh0bWwgWyBT
a2lwIF0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459726</attachid>
            <date>2022-05-24 09:16:23 -0700</date>
            <delta_ts>2022-05-24 22:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220524091622.patch</filename>
            <type>text/plain</type>
            <size>26991</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA4YzYyMTUwNDgwYTUxMzExZjBkMWRkMDc3MzE3ZDZmYzVhNGNlZTAwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogTW9uLCAyMyBNYXkgMjAyMiAxMzoyOTozNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUpOiBBZGRlZC4KKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRyZW5Sb2xlcyk6IEFkZGVkLgoo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50Lmg6Ck1vdmVkIGZpbmRQYXJlbnRUYWJsZSBmcm9tIHBy
b3RlY3RlZCB0byBwdWJsaWMgc28gaXQgY2FuIGJlIGNhbGxlZCBmcm9tCmFjY2Vzc2liaWxpdHkg
Y29kZS4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJp
YnV0ZXMuaHRtbDoKKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVw
ZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJl
LXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIG5ldyB0ZXN0LgoqIExheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHlu
YW1pY2FsbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9uczogRGlzYWJsZSBuZXcgdGVzdC4KLS0tCiAuLi4vV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgfCA1OSArKysrKysrKysrLS0tCiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgfCAgMiArCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwICAgICAgfCAyNiArKysrKy0KIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCAgICB8ICA1ICstCiAuLi4vYXJpYS10YWJs
ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAzMSArKysrLS0tCiAuLi4vYWNjZXNz
aWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCAgfCA4MiArKysrKysrKysrLS0tLS0t
LS0tCiAuLi4tZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQgfCAxOCAr
KysrCiAuLi4vdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sICAgfCA2NiAr
KysrKysrKysrKysrKysKIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVk
LnR4dCB8IDE4ICsrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
ICAgICB8ICAxICsKIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4
dCB8IDE3ICsrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zICAg
ICB8ICAzICsKIDEzIGZpbGVzIGNoYW5nZWQsIDI2MSBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxl
LWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5
bmFtaWNhbGx5Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNj
ZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4
dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IGRiOGVjOTljZTAwOS4uNTJjZWFhNmMwMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTg1LDYgKzg1LDggQEAKICNpbmNsdWRl
ICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNp
bmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0Lmgi
CiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgpAQCAtMTA3OSw2ICsxMDgxLDEzIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qm
IG9iamVjdCkKICAgICBpZiAoaXM8QWNjZXNzaWJpbGl0eUxpc3Q+KG9iamVjdCkpCiAgICAgICAg
IG9iamVjdC51cGRhdGVSb2xlKCk7CiAKKyAgICAvLyBBZGRpbmcgb3IgcmVtb3Zpbmcgcm93cyBm
cm9tIGEgdGFibGUgY2FuIGNhdXNlIGl0IHRvIGNoYW5nZSBmcm9tIGxheW91dCB0YWJsZSB0byBB
WCBkYXRhIHRhYmxlIGFuZCB2aWNlIHZlcnNhLCBzbyByZS1jb21wdXRlIHRoYXQgaGVyZS4KKyAg
ICBpZiAoYXV0byogdGFibGVTZWN0aW9uRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudD4ob2JqZWN0LmVsZW1lbnQoKSkpIHsKKyAgICAgICAgYXV0byogcGFy
ZW50VGFibGUgPSB0YWJsZVNlY3Rpb25FbGVtZW50LT5maW5kUGFyZW50VGFibGUoKS5nZXQoKTsK
KyAgICAgICAgaWYgKGF1dG8qIGF4VGFibGUgPSBkeW5hbWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0
eVRhYmxlPihnZXRPckNyZWF0ZShjb25zdF9jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihwYXJlbnRU
YWJsZSkpKSkKKyAgICAgICAgICAgIGF4VGFibGUtPnJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7Cisg
ICAgfQorCiAgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKCZvYmplY3QsIEFYQ2hpbGRyZW5D
aGFuZ2VkKTsKIH0KIApAQCAtMTI5Myw3ICsxMzAyLDI5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIAogICAgIHBvc3ROb3RpZmlj
YXRpb24oZ2V0T3JDcmVhdGUobm9kZSksICZkb2N1bWVudCgpLCBBWE1lbnVMaXN0SXRlbVNlbGVj
dGVkKTsKIH0KLSAgICAKKwordm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVSb3dDb3VudENoYW5n
ZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChhdXRvKiBheFRhYmxlID0gZHluYW1pY0Rvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4o
Z2V0KG5vZGUpKSkKKyAgICAgICAgYXhUYWJsZS0+cmVjb21wdXRlSXNFeHBvc2FibGUoKTsKKwor
ICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhSb3dDb3VudENoYW5nZWQpOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hhbmdlZChBWENvcmVPYmplY3QqIGF4T2Jq
ZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFheE9iamVjdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKGF1dG8qIGF4VGFibGUgPSBkeW5hbWljRG93bmNhc3Q8QWNjZXNz
aWJpbGl0eVRhYmxlPihheE9iamVjdCkpCisgICAgICAgIGF4VGFibGUtPnJlY29tcHV0ZUlzRXhw
b3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9uKGF4T2JqZWN0LCBkb2N1bWVudCwgQVhS
b3dDb3VudENoYW5nZWQpOworfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyRm9jdXNlZFVJ
RWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUpCiB7CiAg
ICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYmIHJlbmRlcmVyTmVlZHNE
ZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAgLTE3OTAsNyArMTgyMSw3
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKE5vZGUqIG5v
ZGUpCiAKICAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBhbmNlc3RvcidzIHJvdyBjb3VudCBjaGFu
Z2VkLgogICAgICAgICBpZiAoYW5jZXN0b3IpCi0gICAgICAgICAgICBwb3N0Tm90aWZpY2F0aW9u
KGFuY2VzdG9yLCAmZG9jdW1lbnQoKSwgQVhSb3dDb3VudENoYW5nZWQpOworICAgICAgICAgICAg
aGFuZGxlUm93Q291bnRDaGFuZ2VkKGFuY2VzdG9yLCAmZG9jdW1lbnQoKSk7CiAKICAgICAgICAg
Ly8gUG9zdCB0aGF0IHRoZSBzcGVjaWZpYyByb3cgZWl0aGVyIGNvbGxhcHNlZCBvciBleHBhbmRl
ZC4KICAgICAgICAgYXV0byByb2xlID0gb2JqZWN0LT5yb2xlVmFsdWUoKTsKQEAgLTE5MzgsNiAr
MTk2OSw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50CiAgICAgICAgIHBvc3ROb3RpZmljYXRp
b24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhSZWFkT25seVN0YXR1c0NoYW5nZWQpOwogICAg
IGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfcmVxdWlyZWRBdHRyKQogICAgICAgICBwb3N0Tm90
aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYUmVxdWlyZWRTdGF0dXNDaGFuZ2Vk
KTsKKyAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3Jvd2NvdW50QXR0cikKKyAgICAgICAg
aGFuZGxlUm93Q291bnRDaGFuZ2VkKGVsZW1lbnQpOwogICAgIGVsc2UgaWYgKGF0dHJOYW1lID09
IGFyaWFfc29ydEF0dHIpCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVudCwgQVhPYmpl
Y3RDYWNoZTo6QVhTb3J0RGlyZWN0aW9uQ2hhbmdlZCk7CiB9CkBAIC0zNDE0LDYgKzM0NDcsMTQg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWMKICAgICAgICAgYm9vbCBub2RlIHsgZmFsc2UgfTsK
ICAgICB9OwogICAgIEhhc2hNYXA8QVhJRCwgVXBkYXRlZEZpZWxkcz4gdXBkYXRlZE9iamVjdHM7
CisgICAgYXV0byB1cGRhdGVOb2RlID0gWyZdIChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVj
dCkgeworICAgICAgICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2JqZWN0cy5nZXQoYXhP
YmplY3QtPm9iamVjdElEKCkpOworICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkgewor
ICAgICAgICAgICAgdXBkYXRlZE9iamVjdHMuc2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpLCBVcGRh
dGVkRmllbGRzIHsgdXBkYXRlZEZpZWxkcy5jaGlsZHJlbiwgdHJ1ZSB9KTsKKyAgICAgICAgICAg
IHRyZWUtPnVwZGF0ZU5vZGUoKmF4T2JqZWN0KTsKKyAgICAgICAgfQorICAgIH07CisKICAgICBm
b3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpIHsKICAgICAgICAg
QVhMT0cobm90aWZpY2F0aW9uKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24uZmlyc3QgfHwg
IW5vdGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0zNDU0LDE3ICsz
NDk1LDE1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgICAgIGNhc2UgQVhQcmVzc2Vk
U3RhdGVDaGFuZ2VkOgogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAg
ICAgICAgIGNhc2UgQVhUZXh0Q2hhbmdlZDoKLSAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDog
ewotICAgICAgICAgICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5v
dGlmaWNhdGlvbi5maXJzdC0+b2JqZWN0SUQoKSk7Ci0gICAgICAgICAgICBpZiAoIXVwZGF0ZWRG
aWVsZHMubm9kZSkgewotICAgICAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChub3RpZmlj
YXRpb24uZmlyc3QtPm9iamVjdElEKCksIFVwZGF0ZWRGaWVsZHMgeyB1cGRhdGVkRmllbGRzLmNo
aWxkcmVuLCB0cnVlIH0pOwotICAgICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUoKm5vdGlm
aWNhdGlvbi5maXJzdCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5n
ZWQ6CisgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgfQorICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgor
ICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbi5maXJzdC0+aXNUYWJsZSgpKQorICAgICAgICAg
ICAgICAgIHVwZGF0ZU5vZGUobm90aWZpY2F0aW9uLmZpcnN0KTsKKyAgICAgICAgICAgIEZBTExU
SFJPVUdIOwogICAgICAgICBjYXNlIEFYQ2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFY
TGFuZ3VhZ2VDaGFuZ2VkOgotICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgogICAgICAg
ICBjYXNlIEFYUm93Q29sbGFwc2VkOgogICAgICAgICBjYXNlIEFYUm93RXhwYW5kZWQ6IHsKICAg
ICAgICAgICAgIGF1dG8gdXBkYXRlZEZpZWxkcyA9IHVwZGF0ZWRPYmplY3RzLmdldChub3RpZmlj
YXRpb24uZmlyc3QtPm9iamVjdElEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAppbmRleCAyYzRmODExYWU5NzIuLmJlODBkYTZjN2U2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTQ2Miw2ICs0
NjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAg
dm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51
SXRlbVNlbGVjdGVkKE5vZGUqKTsKKyAgICB2b2lkIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChOb2Rl
Kik7CisgICAgdm9pZCBoYW5kbGVSb3dDb3VudENoYW5nZWQoQVhDb3JlT2JqZWN0KiwgRG9jdW1l
bnQqKTsKICAgICB2b2lkIGhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRWxlbWVudCopOwogICAgIGJvb2wgc2hvdWxkUHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOwogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbkNo
YW5nZWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDRjMjVmZWE1NDUxZi4uNzU3ZWY4NTcxMWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUu
Y3BwCkBAIC0zNjIsNiArMzYyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlOjpjb21wdXRl
SXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCkgY29uc3QKICAgICByZXR1cm4g
aXNEYXRhVGFibGUoKTsKIH0KIAorCit2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6cmVjb21wdXRl
SXNFeHBvc2FibGUoKQoreworICAgIGJvb2wgcHJldmlvdXNseUV4cG9zYWJsZSA9IG1faXNFeHBv
c2FibGU7CisgICAgbV9pc0V4cG9zYWJsZSA9IGNvbXB1dGVJc1RhYmxlRXhwb3NhYmxlVGhyb3Vn
aEFjY2Vzc2liaWxpdHkoKTsKKyAgICBpZiAocHJldmlvdXNseUV4cG9zYWJsZSAhPSBtX2lzRXhw
b3NhYmxlKSB7CisgICAgICAgIC8vIEJlZm9yZSByZXNldHRpbmcgb3VyIGV4aXN0aW5nIGNoaWxk
cmVuLCBwb3NzaWJseSBsb3NpbmcgcmVmZXJlbmNlcyB0byB0aGVtLCBlbnN1cmUgd2UgdXBkYXRl
IHRoZWlyIHJvbGUgKHNpbmNlIGEgdGFibGUgY2VsbCdzIHJvbGUgaXMgZGVwZW5kZW50IG9uIHdo
ZXRoZXIgaXRzIHBhcmVudCB0YWJsZSBpcyBleHBvc2FibGUpLgorICAgICAgICB1cGRhdGVDaGls
ZHJlblJvbGVzKCk7CisKKyAgICAgICAgbV9jaGlsZHJlbkRpcnR5ID0gdHJ1ZTsKKyAgICB9Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRhdGVDaGlsZHJlblJvbGVzKCkKK3sKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgeworICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCisgICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3Np
YmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOworICAgIH0KK30KKwogdm9pZCBBY2Nl
c3NpYmlsaXR5VGFibGU6OmNsZWFyQ2hpbGRyZW4oKQogewogICAgIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKTsKQEAgLTQyNywxMCArNDQ4LDcgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKCkKICAgICAvLyBkZXRlcm1pbmVzIHdoZXRoZXIg
aXQgaXMgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRlcmF0ZSBhbGwgdGhlIGNlbGxzIGFuZCBh
bGxvdyB0aGVtIHRvCiAgICAgLy8gdXBkYXRlIHRoZWlyIHJvbGVzIG5vdyB0aGF0IHRoZSB0YWJs
ZSBrbm93cyBpdHMgc3RhdHVzLgogICAgIC8vIHNlZSBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1f
cm93cykgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkp
Ci0gICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRl
Um9sZSgpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZHJlblJvbGVzKCk7CiB9CiAKIHZvaWQgQWNj
ZXNzaWJpbGl0eVRhYmxlOjphZGRUYWJsZUNlbGxDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBy
b3dPYmplY3QsIEhhc2hTZXQ8QWNjZXNzaWJpbGl0eU9iamVjdCo+JiBhcHBlbmRlZFJvd3MsIHVu
c2lnbmVkJiBjb2x1bW5Db3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4IGU0MDc3YjZlNjZiMy4uNmE2MjMwMGNhYTY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRDaGlsZHJlbigpIG92
ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigpIGZpbmFsOworICAgIHZvaWQgdXBkYXRl
Q2hpbGRyZW5Sb2xlcygpOwogCiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNvbHVt
bnMoKSBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igcm93cygpIG92
ZXJyaWRlOwpAQCAtNzMsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1RhYmxlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIFJldHVybnMgd2hldGhlciBpdCBp
cyBleHBvc2VkIGFzIGFuIEFjY2Vzc2liaWxpdHlUYWJsZSB0byB0aGUgcGxhdGZvcm0uCiAgICAg
Ym9vbCBpc0V4cG9zYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgcmVjb21wdXRlSXNF
eHBvc2FibGUoKTsKIAogICAgIGludCBheENvbHVtbkNvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlUGFydEVsZW1lbnQuaAppbmRleCA3ODRiOThhZGYzMzcuLmE4OGI4ZTgyZDQ1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaApAQCAtMzMsNiAr
MzMsOSBAQCBjbGFzcyBIVE1MVGFibGVFbGVtZW50OwogCiBjbGFzcyBIVE1MVGFibGVQYXJ0RWxl
bWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChI
VE1MVGFibGVQYXJ0RWxlbWVudCk7CitwdWJsaWM6CisgICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJs
ZUVsZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRN
TFRhYmxlUGFydEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQpAQCAt
NDEsOCArNDQsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3Zl
cnJpZGU7Ci0KLSAgICBSZWZQdHI8Y29uc3QgSFRNTFRhYmxlRWxlbWVudD4gZmluZFBhcmVudFRh
YmxlKCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKaW5kZXggZDFmMTFiMzdkYjhmLi4zM2YyNmJhNTk2ZDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKQEAgLTEsMjIgKzEsMjEgQEAKIFRoaXMgdGVzdHMgdGhhdCBhdHRyaWJ1dGVz
IHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJlY3RseS4KIAotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorUEFTUzogZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgn
QVhBUklBQ29sdW1uQ291bnQnKSA9PT0gMTYKK1BBU1M6IGdyaWQubnVtYmVyQXR0cmlidXRlVmFs
dWUoJ0FYQVJJQVJvd0NvdW50JykgPT09IDMwCitQQVNTOiBncmlkLnJvd0NvdW50ID09PSA0CitQ
QVNTOiBncmlkLmNvbHVtbkNvdW50ID09PSA0CitQQVNTOiBjZWxsMS5udW1iZXJBdHRyaWJ1dGVW
YWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gMgorUEFTUzogY2VsbDEubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDcKK1BBU1M6IGNlbGwyLm51bWJlckF0dHJp
YnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSA0CitQQVNTOiBjZWxsMi5udW1iZXJB
dHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSA9PT0gOAorUEFTUzogY2VsbDQubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09IDMKK1BBU1M6IGNlbGwyLnJv
d0luZGV4UmFuZ2UoKSA9PT0gJ3sxLCAyfScKK1BBU1M6IGNlbGw1LmNvbHVtbkluZGV4UmFuZ2Uo
KSA9PT0gJ3syLCAzfScKK1BBU1M6IGNlbGwzLnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3sxLCAyfScK
K1BBU1M6IGNlbGw2LnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3swLCAyfScKK1BBU1M6IGNlbGw3LnJv
d0luZGV4UmFuZ2UoKSA9PT0gJ3swLCAyfScKK1BBU1M6ICNncmlkIEFYQVJJQVJvd0NvdW50IGR5
bmFtaWNhbGx5IGNoYW5nZWQgdG8gNjAuCiAKLQotUEFTUyBncmlkLm51bWJlckF0dHJpYnV0ZVZh
bHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIGlzIDE2Ci1QQVNTIGdyaWQubnVtYmVyQXR0cmlidXRl
VmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgaXMgMzAKLVBBU1MgZ3JpZC5yb3dDb3VudCBpcyA0Ci1Q
QVNTIGdyaWQuY29sdW1uQ291bnQgaXMgNAotUEFTUyBjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1
ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAyCi1QQVNTIGNlbGwxLm51bWJlckF0dHJpYnV0ZVZh
bHVlKCdBWEFSSUFSb3dJbmRleCcpIGlzIDcKLVBBU1MgY2VsbDIubnVtYmVyQXR0cmlidXRlVmFs
dWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgNAotUEFTUyBjZWxsMi5udW1iZXJBdHRyaWJ1dGVW
YWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA4Ci1QQVNTIGNlbGw0Lm51bWJlckF0dHJpYnV0ZVZh
bHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDMKLVBBU1MgY2VsbDIucm93SW5kZXhSYW5nZSgp
IGlzICd7MSwgMn0nCi1QQVNTIGNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSBpcyAnezIsIDN9Jwot
UEFTUyBjZWxsMy5yb3dJbmRleFJhbmdlKCkgaXMgJ3sxLCAyfScKLVBBU1MgY2VsbDYucm93SW5k
ZXhSYW5nZSgpIGlzICd7MCwgMn0nCi1QQVNTIGNlbGw3LnJvd0luZGV4UmFuZ2UoKSBpcyAnezAs
IDJ9JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRl
cy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMu
aHRtbAppbmRleCA1YjVkMzc5MDQ4ZjAuLmE0MzBkZTRhYmE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sCkBAIC0xLDkg
KzEsMTAgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
IDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KKzxib2R5PgogCiA8ZGl2IGlkPSJn
cmlkIiByb2xlPSJncmlkIiBhcmlhLWNvbGNvdW50PSIxNiIgYXJpYS1yb3djb3VudD0iMzAiPgog
ICA8ZGl2IHJvbGU9InJvd2dyb3VwIj4KQEAgLTY0LDQ2ICs2NSw1MyBAQAogPC90YWJsZT4KIAog
PHNjcmlwdD4KLQotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYXR0cmlidXRlcyBy
ZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBjb3JyZWN0bHkuIik7CisgICAg
dmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0byBh
cmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29ycmVjdGx5LlxuXG4iOwogCiAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgIAotICAgICAgICAgIHZhciBncmlk
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJncmlkIik7
Ci0gICAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCJjZWxsMSIpOwotICAgICAgICAgIHZhciBjZWxsMiA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDIiKTsKLSAgICAgICAgICB2
YXIgY2VsbDMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImNlbGwzIik7Ci0gICAgICAgICAgdmFyIGNlbGw0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOwotICAgICAgICAgIHZhciBjZWxsNSA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDUiKTsKLSAg
ICAgICAgICB2YXIgY2VsbDYgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoImNlbGw2Iik7Ci0gICAgICAgICAgdmFyIGNlbGw3ID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNyIpOwotICAgICAgICAgIAotICAg
ICAgICAgIC8vIGFyaWEtY29sY291bnQgYW5kIGFyaWEtcm93Y291bnQKLSAgICAgICAgICBzaG91
bGRCZSgiZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSIsICIx
NiIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFS
SUFSb3dDb3VudCcpIiwgIjMwIik7Ci0gICAgICAgICAgc2hvdWxkQmUoImdyaWQucm93Q291bnQi
LCAiNCIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLmNvbHVtbkNvdW50IiwgIjQiKTsKKyAg
ICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgICAgICAgLy8gYXJpYS1j
b2xpbmRleCBhbmQgYXJpYS1yb3dpbmRleAotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMS5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICIyIik7Ci0gICAgICAgICAg
c2hvdWxkQmUoImNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIiwg
IjciKTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FY
QVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMi5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSIsICI4Iik7Ci0gICAgICAgICAgLy8g
YXJpYS1jb2xpbmRleCBmcm9tIHBhcmVudCByb3cKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDQu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMyIpOwotICAgICAg
ICAgIAotICAgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQgYXJpYS1yb3dzcGFuLCBpbmNsdWRp
bmcgYXJpYS1yb3dzcGFuPSIwIgotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMi5yb3dJbmRleFJh
bmdlKCkiLCAiJ3sxLCAyfSciKTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDUuY29sdW1uSW5k
ZXhSYW5nZSgpIiwgIid7MiwgM30nIik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwzLnJvd0lu
ZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOworICAgICAgICB2YXIgZ3JpZCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZ3JpZCIpOworICAgICAgICB2YXIg
Y2VsbDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNl
bGwxIik7CisgICAgICAgIHZhciBjZWxsMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgiY2VsbDIiKTsKKyAgICAgICAgdmFyIGNlbGwzID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMyIpOworICAgICAgICB2
YXIgY2VsbDQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImNlbGw0Iik7CisgICAgICAgIHZhciBjZWxsNSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDUiKTsKKyAgICAgICAgdmFyIGNlbGw2ID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNiIpOworICAgICAg
ICB2YXIgY2VsbDcgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoImNlbGw3Iik7CiAKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDYucm93SW5kZXhSYW5nZSgp
IiwgIid7MCwgMn0nIik7Ci0gICAgICAgICAgLy8gdXNlIHJvd3NwYW4gZm9yIG5hdGl2ZSB0YWJs
ZQotICAgICAgICAgIHNob3VsZEJlKCJjZWxsNy5yb3dJbmRleFJhbmdlKCkiLCAiJ3swLCAyfSci
KTsKLSAgICB9CisgICAgICAgIC8vIGFyaWEtY29sY291bnQgYW5kIGFyaWEtcm93Y291bnQKKyAg
ICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FY
QVJJQUNvbHVtbkNvdW50JykiLCAiMTYiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3Qo
ImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykiLCAiMzAiKTsKKyAg
ICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQucm93Q291bnQiLCAiNCIpOworICAgICAg
ICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5jb2x1bW5Db3VudCIsICI0Iik7CiAKLTwvc2Ny
aXB0PgorICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGFuZCBhcmlhLXJvd2luZGV4CisgICAgICAg
IHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklB
Q29sdW1uSW5kZXgnKSIsICIyIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxs
MS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSIsICI3Iik7CisgICAgICAg
IHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklB
Q29sdW1uSW5kZXgnKSIsICI0Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxs
Mi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSIsICI4Iik7CisgICAgICAg
IC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93CisgICAgICAgIHRlc3RPdXRwdXQgKz0g
ZXhwZWN0KCJjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIs
ICIzIik7CisKKyAgICAgICAgLy8gYXJpYS1jb2xzcGFuIGFuZCBhcmlhLXJvd3NwYW4sIGluY2x1
ZGluZyBhcmlhLXJvd3NwYW49IjAiCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxs
Mi5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBl
eHBlY3QoImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIsICInezIsIDN9JyIpOworICAgICAgICB0
ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDMucm93SW5kZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7
CisKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw2LnJvd0luZGV4UmFuZ2UoKSIs
ICInezAsIDJ9JyIpOworICAgICAgICAvLyB1c2Ugcm93c3BhbiBmb3IgbmF0aXZlIHRhYmxlCisg
ICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNy5yb3dJbmRleFJhbmdlKCkiLCAiJ3sw
LCAyfSciKTsKIAotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZCIpLnNldEF0dHJp
YnV0ZSgiYXJpYS1yb3djb3VudCIsICI2MCIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBncmlk
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpID09PSA2MCB9KTsKKyAgICAg
ICAgICAgIHRlc3RPdXRwdXQgKz0gIlBBU1M6ICNncmlkIEFYQVJJQVJvd0NvdW50IGR5bmFtaWNh
bGx5IGNoYW5nZWQgdG8gNjAuXG4iOworCisgICAgICAgICAgICBkZWJ1Zyh0ZXN0T3V0cHV0KTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCAwKTsKKyAgICB9Cis8L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li40ZWQxMThmYzUyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTggQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEgdGFibGUncyAiZXhwb3NlZCIgc3RhdGUg
KHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLCB2cy4ganVzdCBhIGxh
eW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBkeW5hbWljIHBhZ2UgY2hhbmdlcy4K
KworSW5pdGlhbCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1yb3djb3VudCwgc28gaXQgc2hvdWxkIGJl
IGEgZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFibGUKKyNjZWxsT25lIEFYUm9sZTog
QVhDZWxsCisKK1JlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9uIHRoaXMgdGFibGUncyBj
b250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFibGUuCisjdGFibGUgQVhS
b2xlOiBBWFVua25vd24KKyNjZWxsT25lIEFYUm9sZTogQVhHcm91cAorCitBZGRpbmcgYSBsb3Qg
b2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxlIHRvIGJlY29tZSBhbiBhY2Nlc3Np
YmlsaXR5IGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2VsbE9uZSBBWFJv
bGU6IEFYQ2VsbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBv
c3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU1NjY4NzFjNmY4OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nl
c3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHRhYmxl
IGlkPSJ0YWJsZSIgYXJpYS1yb3djb3VudD0iMSI+CisgICAgPHRyPgorICAgICAgICA8dGQgaWQ9
ImNlbGxPbmUiPng8L3RkPgorICAgICAgICA8dGQ+eDwvdGQ+CisgICAgPC90cj4KKzwvdGFibGU+
CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSBgVGhpcyB0ZXN0IGVuc3VyZXMgYSB0
YWJsZSdzICJleHBvc2VkIiBzdGF0ZSAod2hldGhlciBpdCBpcyBhbiBhY2Nlc3NpYmlsaXR5IGRh
dGEgdGFibGUsIHZzLiBqdXN0IGEgbGF5b3V0IHRhYmxlKSB1cGRhdGVzIGluIHJlc3BvbnNlIHRv
IGR5bmFtaWMgcGFnZSBjaGFuZ2VzLlxuXG5gOworCisgICAgZnVuY3Rpb24gY3JlYXRlQ2VsbCgp
IHsKKyAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Cisg
ICAgICAgIGNlbGwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgaW5z
aWRlIGNlbGwiKSk7CisgICAgICAgIHJldHVybiBjZWxsOworICAgIH0KKworICAgIGlmICh3aW5k
b3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IHRhYmxlID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIpOworICAgICAgICBjb25zdCBjZWxsT25l
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsT25l
Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIkluaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEt
cm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEgdGFibGUuXG4iOworICAgICAgICB0ZXN0
T3V0cHV0ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAgICAgICAgdGVzdE91dHB1dCAr
PSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOworCisgICAgICAgIHRlc3RPdXRwdXQgKz0g
IlxuUmVtb3ZpbmcgYXJpYS1yb3djb3VudC4gQmFzZWQgb24gdGhpcyB0YWJsZSdzIGNvbnRlbnRz
LCBpdCBzaG91bGQgbm93IGJlY29tZSBhIGxheW91dCB0YWJsZS5cbiI7CisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZSIpLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1yb3djb3Vu
dCIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
YXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAgcmV0dXJuICFjZWxsT25lLnJv
bGUuaW5jbHVkZXMoIkFYQ2VsbCIpICYmICF0YWJsZS5yb2xlLmluY2x1ZGVzKCJBWFRhYmxlIik7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCN0YWJsZSAke3Rh
YmxlLnJvbGV9XG5gOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxs
T25lLnJvbGV9XG5gOworCisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcbkFkZGluZyBhIGxv
dCBvZiByb3dzIHdoaWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUgdG8gYmVjb21lIGFuIGFjY2Vz
c2liaWxpdHkgZGF0YSB0YWJsZS5cbiI7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDIwOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFibGUiKS5pbnNlcnRSb3coLTEpOworICAgICAgICAgICAgICAgIHJvdy5hcHBl
bmRDaGlsZChjcmVhdGVDZWxsKCkpOworICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChj
cmVhdGVDZWxsKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
KCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUuY2hpbGRyZW5Db3VudCA+PSAy
MDsKKyAgICAgICAgICAgICAgICAgICAgY2VsbE9uZS5yb2xlLmluY2x1ZGVzKCJBWENlbGwiKSAm
JgorICAgICAgICAgICAgICAgICAgICB0YWJsZS5yb2xlLmluY2x1ZGVzKCJBWFRhYmxlIik7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCN0YWJsZSAke3RhYmxl
LnJvbGV9XG5gOworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxsT25l
LnJvbGV9XG5gOworCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGUi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CisgICAgICAgICAgICBkZWJ1Zyh0ZXN0T3V0
cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCAwKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1p
Y2FsbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmls
aXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2QyZWMxOTQ4ZDU3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L3RhYmxl
LWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEgdGFibGUncyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIg
aXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJs
ZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBkeW5hbWljIHBhZ2UgY2hhbmdlcy4KKworSW5pdGlh
bCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1yb3djb3VudCwgc28gaXQgc2hvdWxkIGJlIGEgZGF0YSB0
YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFibGUKKyNjZWxsT25lIEFYUm9sZTogQVhDZWxsCisK
K1JlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9uIHRoaXMgdGFibGUncyBjb250ZW50cywg
aXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFVu
a25vd24KKyNjZWxsT25lIEFYUm9sZTogQVhTZWN0aW9uCisKK0FkZGluZyBhIGxvdCBvZiByb3dz
IHdoaWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUgdG8gYmVjb21lIGFuIGFjY2Vzc2liaWxpdHkg
ZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFibGUKKyNjZWxsT25lIEFYUm9sZTogQVhD
ZWxsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGVkMjBiZWZh
MjYzMS4uZGEwMDI2MjlkYWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjExMCw2ICsyMTEwLDcgQEAgd2Via2l0Lm9yZy9iLzE0ODgwNiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtc3AKICMg
RW5hYmxlICJwaG9uZSBudW1iZXIgbGlua2lmeWluZyIgdGVzdCBmb3IgaU9TCiBmYXN0L2RvbS9s
aW5raWZ5LXBob25lLW51bWJlcnMuaHRtbCBbIFBhc3MgXQogCithY2Nlc3NpYmlsaXR5L3RhYmxl
LWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0
eS9hcmlhLWJ1c3ktdXBkYXRlcy1hZnRlci1keW5hbWljLWNoYW5nZS5odG1sIFsgUGFzcyBdCiBh
Y2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLWRpc3BsYXktY29udGVudHMtZWxlbWVudC5odG1sIFsg
UGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHktdXBkYXRlcy1hZnRlci1keW5hbWlj
LWNoYW5nZS5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4
cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzJhZjgwNDBmNGNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBk
YXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0
IGVuc3VyZXMgYSB0YWJsZSdzICJleHBvc2VkIiBzdGF0ZSAod2hldGhlciBpdCBpcyBhbiBhY2Nl
c3NpYmlsaXR5IGRhdGEgdGFibGUsIHZzLiBqdXN0IGEgbGF5b3V0IHRhYmxlKSB1cGRhdGVzIGlu
IHJlc3BvbnNlIHRvIGR5bmFtaWMgcGFnZSBjaGFuZ2VzLgorCitJbml0aWFsIHRhYmxlIHN0YXRl
IGhhcyBhcmlhLXJvd2NvdW50LCBzbyBpdCBzaG91bGQgYmUgYSBkYXRhIHRhYmxlLgorI3RhYmxl
IFRhYmxlCisjY2VsbE9uZSBDZWxsCisKK1JlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9u
IHRoaXMgdGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFi
bGUuCisjdGFibGUgVW5rbm93bgorI2NlbGxPbmUgVGV4dEdyb3VwCisKK0FkZGluZyBhIGxvdCBv
ZiByb3dzIHdoaWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUgdG8gYmVjb21lIGFuIGFjY2Vzc2li
aWxpdHkgZGF0YSB0YWJsZS4KKyN0YWJsZSBUYWJsZQorI2NlbGxPbmUgQ2VsbAorCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzlhN2IyYWE4MjMwLi5lYjMxMWVkNjFl
ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTks
NiArNDU5LDkgQEAgZmFzdC9ldmVudHMvbW91c2VvdmVyLWJ1dHRvbi5odG1sIFsgU2tpcCBdCiAj
IFRPRE8gQWNjZXB0IGhlYWRlciBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyCiBodHRwL3Rlc3Rz
L21pc2MvaW1hZ2UtY2hlY2tzLWZvci1hY2NlcHQuaHRtbCBbIFNraXAgXQogCisjIFRpbWluZyBv
dXQgc2luY2UgYWRkZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0MDc1MCAobGlrZWx5IHNvbWUgbWlzc2luZyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGltcGxl
bWVudGF0aW9uKS4KK2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS5odG1sIFsgU2tpcCBdCisKICMgUHJvYmFibHkgd3Jvbmcgcm9sZSBhZnRlciBhZGRpbmcg
Y2hpbGRyZW4gdG8gbGlzdCAoQVhHcm91cCBpbnN0ZWFkIG9mIEFYTGlzdCkuCiBhY2Nlc3NpYmls
aXR5L2xpc3Qtd2l0aC1keW5hbWljYWxseS1jaGFuZ2luZy1jb250ZW50Lmh0bWwgWyBTa2lwIF0K
IGFjY2Vzc2liaWxpdHkvaWdub3JlZC1hcmlhLXJvbGUtZGVzY3JpcHRpb24uaHRtbCBbIFNraXAg
XQotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459744</attachid>
            <date>2022-05-24 22:25:41 -0700</date>
            <delta_ts>2022-05-25 10:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220524222540.patch</filename>
            <type>text/plain</type>
            <size>30262</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSAxZTUwN2YwNTU5NzI0Y2Q5ZTBmYTcyYzU2YzJiNWJmY2Q1YmFiOWRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogVHVlLCAyNCBNYXkgMjAyMiAyMjowNDo0NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbDogQWRkIHRl
c3RjYXNlLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRl
cy1keW5hbWljYWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sOiBBZGRlZC4KKiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBk
YXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCiogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zOiBEaXNhYmxlIG5ldyB0ZXN0LgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpmaWx0ZXJXZWFrSGFzaFNl
dEZvclJlbW92YWwpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50
RGVzdHJ1Y3Rpb24pOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2Fj
aGVVcGRhdGUpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5VGFibGU6OnJlY29tcHV0ZUlzRXhwb3NhYmxlKTogQWRkZWQuCihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGU6OnVwZGF0ZUNoaWxkcmVuUm9sZXMpOiBBZGRlZC4KKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW4pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVQYXJ0RWxlbWVudC5oOgpNb3ZlZCBmaW5kUGFyZW50VGFibGUgZnJvbSBwcm90ZWN0
ZWQgdG8gcHVibGljIHNvIGl0IGNhbiBiZSBjYWxsZWQgZnJvbQphY2Nlc3NpYmlsaXR5IGNvZGUu
Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgNjkg
KysrKysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmggIHwgIDMgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAg
ICAgIHwgMzAgKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmgg
ICAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5o
ICAgIHwgIDUgKy0KIC4uLi9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0ICAgICAg
ICB8IDMxICsrKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5o
dG1sICB8IDgyICsrKysrKysrKystLS0tLS0tLS0KIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFt
aWNhbGx5LWV4cGVjdGVkLnR4dCB8IDE4ICsrKysKIC4uLi90YWJsZS1leHBvc3VyZS11cGRhdGVz
LWR5bmFtaWNhbGx5Lmh0bWwgICB8IDY2ICsrKysrKysrKysrKysrKwogLi4uLWV4cG9zdXJlLXVw
ZGF0ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IHwgMTggKysrKwogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgICAgIHwgIDEgKwogLi4uLWV4cG9zdXJlLXVwZGF0
ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IHwgMTggKysrKwogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgICAgIHwgIDMgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjc2
IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0
ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggM2I1NzRmMTI5OGYzLi43NzQzZDI5NGVjYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApA
QCAtODUsNiArODUsOCBAQAogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNs
dWRlICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCkBA
IC05MDAsNiArOTAyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSYgbm9kZSkK
ICAgICAgICAgbV9kZWZlcnJlZEF0dHJpYnV0ZUNoYW5nZS5yZW1vdmUoZG93bmNhc3Q8RWxlbWVu
dD4oJm5vZGUpKTsKICAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LnJlbW92ZShkb3duY2FzdDxF
bGVtZW50Pigmbm9kZSkpOwogICAgICAgICBtX2RlZmVycmVkUmVjb21wdXRlSXNJZ25vcmVkTGlz
dC5yZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOworICAgICAgICBtX2RlZmVycmVkUmVj
b21wdXRlVGFibGVJc0V4cG9zZWRMaXN0LnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSk7
CiAgICAgICAgIG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdlZExpc3QucmVtb3ZlKGRv
d25jYXN0PEVsZW1lbnQ+KG5vZGUpKTsKICAgICAgICAgbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExp
c3QucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKTsKICAgICAgICAgbV9kZWZlcnJlZE1l
bnVMaXN0Q2hhbmdlLnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSk7CkBAIC0xMTQwLDYg
KzExNDMsMTIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0KQogICAgICAgICByZXR1cm47CiAgICAgbV9kZWZlcnJlZENoaWxk
cmVuQ2hhbmdlZExpc3QuYWRkKG9iamVjdCk7CiAKKyAgICAvLyBBZGRpbmcgb3IgcmVtb3Zpbmcg
cm93cyBmcm9tIGEgdGFibGUgY2FuIGNhdXNlIGl0IHRvIGNoYW5nZSBmcm9tIGxheW91dCB0YWJs
ZSB0byBBWCBkYXRhIHRhYmxlIGFuZCB2aWNlIHZlcnNhLCBzbyBxdWV1ZSB1cCByZWNvbXB1dGF0
aW9uIG9mIHRoYXQgZm9yIHRoZSBwYXJlbnQgdGFibGUuCisgICAgaWYgKGF1dG8qIHRhYmxlU2Vj
dGlvbkVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KG9i
amVjdC0+ZWxlbWVudCgpKSkgeworICAgICAgICBpZiAoYXV0byogcGFyZW50VGFibGUgPSB0YWJs
ZVNlY3Rpb25FbGVtZW50LT5maW5kUGFyZW50VGFibGUoKS5nZXQoKSkKKyAgICAgICAgICAgIG1f
ZGVmZXJyZWRSZWNvbXB1dGVUYWJsZUlzRXhwb3NlZExpc3QuYWRkKCpwYXJlbnRUYWJsZSk7Cisg
ICAgfQorCiAgICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAg
ICAgICAgIG1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBA
IC0xMjkzLDcgKzEzMDIsMjkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51SXRlbVNl
bGVjdGVkKE5vZGUqIG5vZGUpCiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0
ZShub2RlKSwgJmRvY3VtZW50KCksIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQpOwogfQotICAgIAor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hhbmdlZChOb2RlKiBub2RlKQor
eworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGF4VGFi
bGUgPSBkeW5hbWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eVRhYmxlPihnZXQobm9kZSkpKQorICAg
ICAgICBheFRhYmxlLT5yZWNvbXB1dGVJc0V4cG9zYWJsZSgpOworCisgICAgcG9zdE5vdGlmaWNh
dGlvbihub2RlLCBBWFJvd0NvdW50Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlUm93Q291bnRDaGFuZ2VkKEFYQ29yZU9iamVjdCogYXhPYmplY3QsIERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBpZiAoIWF4T2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KGF4
T2JqZWN0KSkKKyAgICAgICAgYXhUYWJsZS0+cmVjb21wdXRlSXNFeHBvc2FibGUoKTsKKworICAg
IHBvc3ROb3RpZmljYXRpb24oYXhPYmplY3QsIGRvY3VtZW50LCBBWFJvd0NvdW50Q2hhbmdlZCk7
Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZGVmZXJGb2N1c2VkVUlFbGVtZW50Q2hhbmdlSWZO
ZWVkZWQoTm9kZSogb2xkTm9kZSwgTm9kZSogbmV3Tm9kZSkKIHsKICAgICBpZiAobm9kZUFuZFJl
bmRlcmVyQXJlVmFsaWQobmV3Tm9kZSkgJiYgcmVuZGVyZXJOZWVkc0RlZmVycmVkVXBkYXRlKCpu
ZXdOb2RlLT5yZW5kZXJlcigpKSkgewpAQCAtMTc5MCw3ICsxODIxLDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpoYW5kbGVBcmlhRXhwYW5kZWRDaGFuZ2UoTm9kZSogbm9kZSkKIAogICAgICAgICAv
LyBQb3N0IHRoYXQgdGhlIGFuY2VzdG9yJ3Mgcm93IGNvdW50IGNoYW5nZWQuCiAgICAgICAgIGlm
IChhbmNlc3RvcikKLSAgICAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oYW5jZXN0b3IsICZkb2N1
bWVudCgpLCBBWFJvd0NvdW50Q2hhbmdlZCk7CisgICAgICAgICAgICBoYW5kbGVSb3dDb3VudENo
YW5nZWQoYW5jZXN0b3IsICZkb2N1bWVudCgpKTsKIAogICAgICAgICAvLyBQb3N0IHRoYXQgdGhl
IHNwZWNpZmljIHJvdyBlaXRoZXIgY29sbGFwc2VkIG9yIGV4cGFuZGVkLgogICAgICAgICBhdXRv
IHJvbGUgPSBvYmplY3QtPnJvbGVWYWx1ZSgpOwpAQCAtMTkzOCw2ICsxOTY5LDggQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUsIEVsZW1lbnQKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9i
amVjdENhY2hlOjpBWFJlYWRPbmx5U3RhdHVzQ2hhbmdlZCk7CiAgICAgZWxzZSBpZiAoYXR0ck5h
bWUgPT0gYXJpYV9yZXF1aXJlZEF0dHIpCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24oZWxlbWVu
dCwgQVhPYmplY3RDYWNoZTo6QVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQpOworICAgIGVsc2UgaWYg
KGF0dHJOYW1lID09IGFyaWFfcm93Y291bnRBdHRyKQorICAgICAgICBoYW5kbGVSb3dDb3VudENo
YW5nZWQoZWxlbWVudCk7CiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9zb3J0QXR0cikK
ICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hlOjpBWFNvcnRE
aXJlY3Rpb25DaGFuZ2VkKTsKIH0KQEAgLTMyNTYsNyArMzI4OSw4IEBAIHN0YXRpYyB2b2lkIGZp
bHRlckxpc3RGb3JSZW1vdmFsKGNvbnN0IExpc3RIYXNoU2V0PFQ+JiBsaXN0LCBjb25zdCBEb2N1
bWVudCYgZG9jCiAgICAgICAgIGNvbmRpdGlvbmFsbHlBZGROb2RlVG9GaWx0ZXJMaXN0KG5vZGUs
IGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKIH0KIAotc3RhdGljIHZvaWQgZmlsdGVyV2Vha0hh
c2hTZXRGb3JSZW1vdmFsKFdlYWtIYXNoU2V0PEVsZW1lbnQ+JiB3ZWFrSGFzaFNldCwgY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50LCBIYXNoU2V0PFJlZjxOb2RlPj4mIG5vZGVzVG9SZW1vdmUpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgZmlsdGVyV2Vha0hhc2hTZXRGb3JSZW1v
dmFsKFdlYWtIYXNoU2V0PFQ+JiB3ZWFrSGFzaFNldCwgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
LCBIYXNoU2V0PFJlZjxOb2RlPj4mIG5vZGVzVG9SZW1vdmUpCiB7CiAgICAgd2Vha0hhc2hTZXQu
Zm9yRWFjaChbJl0gKGF1dG8mIGVsZW1lbnQpIHsKICAgICAgICAgY29uZGl0aW9uYWxseUFkZE5v
ZGVUb0ZpbHRlckxpc3QoJmVsZW1lbnQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKQEAgLTMy
NzEsNiArMzMwNSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50RGVz
dHJ1Y3Rpb24oY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGZpbHRlckxpc3RGb3JSZW1v
dmFsKG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsK
ICAgICBmaWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX2RlZmVycmVkTm9kZUFkZGVkT3JSZW1vdmVkTGlz
dCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOwogICAgIGZpbHRlcldlYWtIYXNoU2V0Rm9yUmVt
b3ZhbChtX2RlZmVycmVkUmVjb21wdXRlSXNJZ25vcmVkTGlzdCwgZG9jdW1lbnQsIG5vZGVzVG9S
ZW1vdmUpOworICAgIGZpbHRlcldlYWtIYXNoU2V0Rm9yUmVtb3ZhbChtX2RlZmVycmVkUmVjb21w
dXRlVGFibGVJc0V4cG9zZWRMaXN0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7CiAgICAgZmls
dGVyV2Vha0hhc2hTZXRGb3JSZW1vdmFsKG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdl
ZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKICAgICBmaWx0ZXJXZWFrSGFzaFNldEZv
clJlbW92YWwobV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVt
b3ZlKTsKICAgICBmaWx0ZXJXZWFrSGFzaFNldEZvclJlbW92YWwobV9kZWZlcnJlZE1lbnVMaXN0
Q2hhbmdlLCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7CkBAIC0zMzE0LDYgKzMzNDksMTIgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpCiAgICAgICAg
IHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSht
X3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKIAorICAgIG1fZGVmZXJyZWRS
ZWNvbXB1dGVUYWJsZUlzRXhwb3NlZExpc3QuZm9yRWFjaChbdGhpc10gKGF1dG8mIHRhYmxlRWxl
bWVudCkgeworICAgICAgICBpZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3duY2FzdDxBY2Nl
c3NpYmlsaXR5VGFibGU+KGdldE9yQ3JlYXRlKCZ0YWJsZUVsZW1lbnQpKSkKKyAgICAgICAgICAg
IGF4VGFibGUtPnJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CisgICAgfSk7CisgICAgbV9kZWZlcnJl
ZFJlY29tcHV0ZVRhYmxlSXNFeHBvc2VkTGlzdC5jbGVhcigpOworCiAgICAgZm9yIChhdXRvKiBu
b2RlQ2hpbGQgOiBtX2RlZmVycmVkTm9kZUFkZGVkT3JSZW1vdmVkTGlzdCkgewogICAgICAgICBo
YW5kbGVNZW51T3BlbmVkKG5vZGVDaGlsZCk7CiAgICAgICAgIGhhbmRsZUxpdmVSZWdpb25DcmVh
dGVkKG5vZGVDaGlsZCk7CkBAIC0zNDE0LDYgKzM0NTUsMTQgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3Jl
T2JqZWMKICAgICAgICAgYm9vbCBub2RlIHsgZmFsc2UgfTsKICAgICB9OwogICAgIEhhc2hNYXA8
QVhJRCwgVXBkYXRlZEZpZWxkcz4gdXBkYXRlZE9iamVjdHM7CisgICAgYXV0byB1cGRhdGVOb2Rl
ID0gWyZdIChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCkgeworICAgICAgICBhdXRvIHVw
ZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2JqZWN0cy5nZXQoYXhPYmplY3QtPm9iamVjdElEKCkpOwor
ICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkgeworICAgICAgICAgICAgdXBkYXRlZE9i
amVjdHMuc2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRzIHsgdXBkYXRlZEZp
ZWxkcy5jaGlsZHJlbiwgdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUoKmF4
T2JqZWN0KTsKKyAgICAgICAgfQorICAgIH07CisKICAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGlm
aWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpIHsKICAgICAgICAgQVhMT0cobm90aWZpY2F0aW9uKTsK
ICAgICAgICAgaWYgKCFub3RpZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlvbi5maXJzdC0+
b2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0zNDU3LDE3ICszNTA2LDE1IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PEFYQ29yZU9iamVjCiAgICAgICAgIGNhc2UgQVhQcmVzc2VkU3RhdGVDaGFuZ2VkOgogICAgICAg
ICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhUZXh0Q2hh
bmdlZDoKLSAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDogewotICAgICAgICAgICAgYXV0byB1
cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5vdGlmaWNhdGlvbi5maXJzdC0+b2Jq
ZWN0SUQoKSk7Ci0gICAgICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkgewotICAgICAg
ICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElE
KCksIFVwZGF0ZWRGaWVsZHMgeyB1cGRhdGVkRmllbGRzLmNoaWxkcmVuLCB0cnVlIH0pOwotICAg
ICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUoKm5vdGlmaWNhdGlvbi5maXJzdCk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6CisgICAgICAgICAgICB1cGRh
dGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQorICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgorICAgICAgICAgICAgaWYgKG5vdGlm
aWNhdGlvbi5maXJzdC0+aXNUYWJsZSgpKQorICAgICAgICAgICAgICAgIHVwZGF0ZU5vZGUobm90
aWZpY2F0aW9uLmZpcnN0KTsKKyAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICBjYXNl
IEFYQ2hpbGRyZW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFYTGFuZ3VhZ2VDaGFuZ2VkOgotICAg
ICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgogICAgICAgICBjYXNlIEFYUm93Q29sbGFwc2Vk
OgogICAgICAgICBjYXNlIEFYUm93RXhwYW5kZWQ6IHsKICAgICAgICAgICAgIGF1dG8gdXBkYXRl
ZEZpZWxkcyA9IHVwZGF0ZWRPYmplY3RzLmdldChub3RpZmljYXRpb24uZmlyc3QtPm9iamVjdElE
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRl
eCAyYzRmODExYWU5NzIuLmI0OGQ1YTliYjhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTQ2Miw2ICs0NjIsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9u
Q3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsK
KyAgICB2b2lkIGhhbmRsZVJvd0NvdW50Q2hhbmdlZChOb2RlKik7CisgICAgdm9pZCBoYW5kbGVS
b3dDb3VudENoYW5nZWQoQVhDb3JlT2JqZWN0KiwgRG9jdW1lbnQqKTsKICAgICB2b2lkIGhhbmRs
ZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopOwogICAgIGJv
b2wgc2hvdWxkUHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxl
bWVudCopOwogICAgIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSopOwpAQCAtNTI1
LDYgKzUyNyw3IEBAIHByaXZhdGU6CiAKICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3Rl
eHRTZWxlY3Rpb25JbnRlbnQ7CiAgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9kZWZlcnJlZFJl
Y29tcHV0ZUlzSWdub3JlZExpc3Q7CisgICAgV2Vha0hhc2hTZXQ8SFRNTFRhYmxlRWxlbWVudD4g
bV9kZWZlcnJlZFJlY29tcHV0ZVRhYmxlSXNFeHBvc2VkTGlzdDsKICAgICBMaXN0SGFzaFNldDxO
b2RlKj4gbV9kZWZlcnJlZFRleHRDaGFuZ2VkTGlzdDsKICAgICBXZWFrSGFzaFNldDxFbGVtZW50
PiBtX2RlZmVycmVkU2VsZWN0ZWRDaGlsZHJlZENoYW5nZWRMaXN0OwogICAgIExpc3RIYXNoU2V0
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9kZWZlcnJlZENoaWxkcmVuQ2hhbmdlZExp
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZS5jcHAKaW5kZXggNGMyNWZlYTU0NTFmLi42ZjhlZjlmOWE4YWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKQEAgLTM2
Miw2ICszNjIsMzEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNvbXB1dGVJc1RhYmxlRXhw
b3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKSBjb25zdAogICAgIHJldHVybiBpc0RhdGFUYWJs
ZSgpOwogfQogCisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjpyZWNvbXB1dGVJc0V4cG9zYWJs
ZSgpCit7CisgICAgYm9vbCBwcmV2aW91c2x5RXhwb3NhYmxlID0gbV9pc0V4cG9zYWJsZTsKKyAg
ICBtX2lzRXhwb3NhYmxlID0gY29tcHV0ZUlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJp
bGl0eSgpOworICAgIGlmIChwcmV2aW91c2x5RXhwb3NhYmxlICE9IG1faXNFeHBvc2FibGUpIHsK
KyAgICAgICAgLy8gQSB0YWJsZSdzIHJvbGUgdmFsdWUgaXMgZGVwZW5kZW50IG9uIHdoZXRoZXIg
aXQncyBleHBvc2VkLCBzbyBub3RpZnkgdGhlIGNhY2hlIHRoaXMgaGFzIGNoYW5nZWQuCisgICAg
ICAgIGlmIChhdXRvKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hl
LT5oYW5kbGVSb2xlQ2hhbmdlKHRoaXMpOworCisgICAgICAgIC8vIEJlZm9yZSByZXNldHRpbmcg
b3VyIGV4aXN0aW5nIGNoaWxkcmVuLCBwb3NzaWJseSBsb3NpbmcgcmVmZXJlbmNlcyB0byB0aGVt
LCBlbnN1cmUgd2UgdXBkYXRlIHRoZWlyIHJvbGUgKHNpbmNlIGEgdGFibGUgY2VsbCdzIHJvbGUg
aXMgZGVwZW5kZW50IG9uIHdoZXRoZXIgaXRzIHBhcmVudCB0YWJsZSBpcyBleHBvc2FibGUpLgor
ICAgICAgICB1cGRhdGVDaGlsZHJlblJvbGVzKCk7CisKKyAgICAgICAgbV9jaGlsZHJlbkRpcnR5
ID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjp1cGRhdGVDaGls
ZHJlblJvbGVzKCkKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IG1fcm93cykgeworICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxkcmVuKCkpCisgICAgICAgICAg
ICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2JqZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOworICAg
IH0KK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmNsZWFyQ2hpbGRyZW4oKQogewogICAg
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmNsZWFyQ2hpbGRyZW4oKTsKQEAgLTQyNywxMCAr
NDUyLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuKCkKICAgICAvLyBk
ZXRlcm1pbmVzIHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRlcmF0ZSBh
bGwgdGhlIGNlbGxzIGFuZCBhbGxvdyB0aGVtIHRvCiAgICAgLy8gdXBkYXRlIHRoZWlyIHJvbGVz
IG5vdyB0aGF0IHRoZSB0YWJsZSBrbm93cyBpdHMgc3RhdHVzLgogICAgIC8vIHNlZSBidWc6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKLSAgICBmb3IgKGNv
bnN0IGF1dG8mIHJvdyA6IG1fcm93cykgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwg
OiByb3ctPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PigqY2VsbCkudXBkYXRlUm9sZSgpOwotICAgIH0KKyAgICB1cGRhdGVDaGlsZHJlblJvbGVz
KCk7CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRUYWJsZUNlbGxDaGlsZChBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb3dPYmplY3QsIEhhc2hTZXQ8QWNjZXNzaWJpbGl0eU9iamVjdCo+
JiBhcHBlbmRlZFJvd3MsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4IGU0MDc3YjZlNjZi
My4uNmE2MjMwMGNhYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDaGlsZHJlbigpIGZpbmFs
OworICAgIHZvaWQgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOwogCiAgICAgQWNjZXNzaWJpbGl0eUNo
aWxkcmVuVmVjdG9yIGNvbHVtbnMoKSBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3Igcm93cygpIG92ZXJyaWRlOwpAQCAtNzMsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1RhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIFJl
dHVybnMgd2hldGhlciBpdCBpcyBleHBvc2VkIGFzIGFuIEFjY2Vzc2liaWxpdHlUYWJsZSB0byB0
aGUgcGxhdGZvcm0uCiAgICAgYm9vbCBpc0V4cG9zYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgcmVjb21wdXRlSXNFeHBvc2FibGUoKTsKIAogICAgIGludCBheENvbHVtbkNvdW50KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGF4Um93Q291bnQoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAppbmRleCA3ODRiOThhZGYz
MzcuLmE4OGI4ZTgyZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVQYXJ0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVs
ZW1lbnQuaApAQCAtMzMsNiArMzMsOSBAQCBjbGFzcyBIVE1MVGFibGVFbGVtZW50OwogCiBjbGFz
cyBIVE1MVGFibGVQYXJ0RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChIVE1MVGFibGVQYXJ0RWxlbWVudCk7CitwdWJsaWM6CisgICAgUmVm
UHRyPGNvbnN0IEhUTUxUYWJsZUVsZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNvbnN0OworCiBw
cm90ZWN0ZWQ6CiAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQpAQCAtNDEsOCArNDQsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Ci0KLSAgICBSZWZQdHI8Y29uc3QgSFRNTFRhYmxlRWxl
bWVudD4gZmluZFBhcmVudFRhYmxlKCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFi
bGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggZDFmMTFiMzdkYjhmLi4zM2YyNmJhNTk2
ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
dGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEsMjIgKzEsMjEgQEAKIFRoaXMgdGVz
dHMgdGhhdCBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJsZS9ncmlkIGFyZSB3b3JraW5n
IGNvcnJlY3RseS4KIAotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorUEFTUzogZ3JpZC5udW1i
ZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uQ291bnQnKSA9PT0gMTYKK1BBU1M6IGdyaWQu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgPT09IDMwCitQQVNTOiBncmlk
LnJvd0NvdW50ID09PSA0CitQQVNTOiBncmlkLmNvbHVtbkNvdW50ID09PSA0CitQQVNTOiBjZWxs
MS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gMgorUEFTUzog
Y2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDcKK1BBU1M6
IGNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSA0CitQ
QVNTOiBjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSA9PT0gOAor
UEFTUzogY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgPT09
IDMKK1BBU1M6IGNlbGwyLnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3sxLCAyfScKK1BBU1M6IGNlbGw1
LmNvbHVtbkluZGV4UmFuZ2UoKSA9PT0gJ3syLCAzfScKK1BBU1M6IGNlbGwzLnJvd0luZGV4UmFu
Z2UoKSA9PT0gJ3sxLCAyfScKK1BBU1M6IGNlbGw2LnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3swLCAy
fScKK1BBU1M6IGNlbGw3LnJvd0luZGV4UmFuZ2UoKSA9PT0gJ3swLCAyfScKK1BBU1M6ICNncmlk
IEFYQVJJQVJvd0NvdW50IGR5bmFtaWNhbGx5IGNoYW5nZWQgdG8gNjAuCiAKLQotUEFTUyBncmlk
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5Db3VudCcpIGlzIDE2Ci1QQVNTIGdy
aWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0NvdW50JykgaXMgMzAKLVBBU1MgZ3Jp
ZC5yb3dDb3VudCBpcyA0Ci1QQVNTIGdyaWQuY29sdW1uQ291bnQgaXMgNAotUEFTUyBjZWxsMS5u
dW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSBpcyAyCi1QQVNTIGNlbGwx
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dJbmRleCcpIGlzIDcKLVBBU1MgY2VsbDIu
bnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykgaXMgNAotUEFTUyBjZWxs
Mi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSBpcyA4Ci1QQVNTIGNlbGw0
Lm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIGlzIDMKLVBBU1MgY2Vs
bDIucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0nCi1QQVNTIGNlbGw1LmNvbHVtbkluZGV4UmFu
Z2UoKSBpcyAnezIsIDN9JwotUEFTUyBjZWxsMy5yb3dJbmRleFJhbmdlKCkgaXMgJ3sxLCAyfScK
LVBBU1MgY2VsbDYucm93SW5kZXhSYW5nZSgpIGlzICd7MCwgMn0nCi1QQVNTIGNlbGw3LnJvd0lu
ZGV4UmFuZ2UoKSBpcyAnezAsIDJ9JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdGFibGUtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlh
LXRhYmxlLWF0dHJpYnV0ZXMuaHRtbAppbmRleCA1YjVkMzc5MDQ4ZjAuLmE0MzBkZTRhYmE3YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmli
dXRlcy5odG1sCkBAIC0xLDkgKzEsMTAgQEAKIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KKzxi
b2R5PgogCiA8ZGl2IGlkPSJncmlkIiByb2xlPSJncmlkIiBhcmlhLWNvbGNvdW50PSIxNiIgYXJp
YS1yb3djb3VudD0iMzAiPgogICA8ZGl2IHJvbGU9InJvd2dyb3VwIj4KQEAgLTY0LDQ2ICs2NSw1
MyBAQAogPC90YWJsZT4KIAogPHNjcmlwdD4KLQotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IHRoYXQgYXR0cmlidXRlcyByZWxhdGVkIHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBj
b3JyZWN0bHkuIik7CisgICAgdmFyIHRlc3RPdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0IGF0dHJp
YnV0ZXMgcmVsYXRlZCB0byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29ycmVjdGx5Llxu
XG4iOwogCiAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewotICAgIAot
ICAgICAgICAgIHZhciBncmlkID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJncmlkIik7Ci0gICAgICAgICAgdmFyIGNlbGwxID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMSIpOwotICAgICAgICAgIHZhciBj
ZWxsMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2Vs
bDIiKTsKLSAgICAgICAgICB2YXIgY2VsbDMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoImNlbGwzIik7Ci0gICAgICAgICAgdmFyIGNlbGw0ID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIpOwotICAgICAg
ICAgIHZhciBjZWxsNSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgiY2VsbDUiKTsKLSAgICAgICAgICB2YXIgY2VsbDYgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw2Iik7Ci0gICAgICAgICAgdmFyIGNlbGw3
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNyIp
OwotICAgICAgICAgIAotICAgICAgICAgIC8vIGFyaWEtY29sY291bnQgYW5kIGFyaWEtcm93Y291
bnQKLSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklB
Q29sdW1uQ291bnQnKSIsICIxNiIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIiwgIjMwIik7Ci0gICAgICAgICAgc2hvdWxk
QmUoImdyaWQucm93Q291bnQiLCAiNCIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLmNvbHVt
bkNvdW50IiwgIjQiKTsKKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0g
ICAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJpYS1yb3dpbmRleAotICAgICAgICAgIHNo
b3VsZEJlKCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIs
ICIyIik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdB
WEFSSUFSb3dJbmRleCcpIiwgIjciKTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDIubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiNCIpOwotICAgICAgICAgIHNo
b3VsZEJlKCJjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSIsICI4
Iik7Ci0gICAgICAgICAgLy8gYXJpYS1jb2xpbmRleCBmcm9tIHBhcmVudCByb3cKLSAgICAgICAg
ICBzaG91bGRCZSgiY2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4
JykiLCAiMyIpOwotICAgICAgICAgIAotICAgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQgYXJp
YS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJpYS1yb3dzcGFuPSIwIgotICAgICAgICAgIHNob3VsZEJl
KCJjZWxsMi5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKLSAgICAgICAgICBzaG91bGRC
ZSgiY2VsbDUuY29sdW1uSW5kZXhSYW5nZSgpIiwgIid7MiwgM30nIik7Ci0gICAgICAgICAgc2hv
dWxkQmUoImNlbGwzLnJvd0luZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOworICAgICAgICB2YXIg
Z3JpZCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZ3Jp
ZCIpOworICAgICAgICB2YXIgY2VsbDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoImNlbGwxIik7CisgICAgICAgIHZhciBjZWxsMiA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDIiKTsKKyAgICAgICAgdmFy
IGNlbGwzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJj
ZWxsMyIpOworICAgICAgICB2YXIgY2VsbDQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoImNlbGw0Iik7CisgICAgICAgIHZhciBjZWxsNSA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDUiKTsKKyAgICAgICAg
dmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJjZWxsNiIpOworICAgICAgICB2YXIgY2VsbDcgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw3Iik7CiAKLSAgICAgICAgICBzaG91bGRCZSgiY2Vs
bDYucm93SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7Ci0gICAgICAgICAgLy8gdXNlIHJvd3Nw
YW4gZm9yIG5hdGl2ZSB0YWJsZQotICAgICAgICAgIHNob3VsZEJlKCJjZWxsNy5yb3dJbmRleFJh
bmdlKCkiLCAiJ3swLCAyfSciKTsKLSAgICB9CisgICAgICAgIC8vIGFyaWEtY29sY291bnQgYW5k
IGFyaWEtcm93Y291bnQKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykiLCAiMTYiKTsKKyAgICAgICAgdGVz
dE91dHB1dCArPSBleHBlY3QoImdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0Nv
dW50JykiLCAiMzAiKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImdyaWQucm93Q291
bnQiLCAiNCIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiZ3JpZC5jb2x1bW5Db3Vu
dCIsICI0Iik7CiAKLTwvc2NyaXB0PgorICAgICAgICAvLyBhcmlhLWNvbGluZGV4IGFuZCBhcmlh
LXJvd2luZGV4CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMS5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICIyIik7CisgICAgICAgIHRlc3RPdXRw
dXQgKz0gZXhwZWN0KCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgn
KSIsICI3Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsMi5udW1iZXJBdHRy
aWJ1dGVWYWx1ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSIsICI0Iik7CisgICAgICAgIHRlc3RPdXRw
dXQgKz0gZXhwZWN0KCJjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgn
KSIsICI4Iik7CisgICAgICAgIC8vIGFyaWEtY29saW5kZXggZnJvbSBwYXJlbnQgcm93CisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBQ29sdW1uSW5kZXgnKSIsICIzIik7CisKKyAgICAgICAgLy8gYXJpYS1jb2xzcGFuIGFuZCBh
cmlhLXJvd3NwYW4sIGluY2x1ZGluZyBhcmlhLXJvd3NwYW49IjAiCisgICAgICAgIHRlc3RPdXRw
dXQgKz0gZXhwZWN0KCJjZWxsMi5yb3dJbmRleFJhbmdlKCkiLCAiJ3sxLCAyfSciKTsKKyAgICAg
ICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw1LmNvbHVtbkluZGV4UmFuZ2UoKSIsICInezIs
IDN9JyIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDMucm93SW5kZXhSYW5n
ZSgpIiwgIid7MSwgMn0nIik7CisKKyAgICAgICAgdGVzdE91dHB1dCArPSBleHBlY3QoImNlbGw2
LnJvd0luZGV4UmFuZ2UoKSIsICInezAsIDJ9JyIpOworICAgICAgICAvLyB1c2Ugcm93c3BhbiBm
b3IgbmF0aXZlIHRhYmxlCisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNy5yb3dJ
bmRleFJhbmdlKCkiLCAiJ3swLCAyfSciKTsKIAotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ3JpZCIpLnNldEF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIsICI2MCIpOworICAgICAgICBz
ZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigo
KSA9PiB7IHJldHVybiBncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcp
ID09PSA2MCB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gIlBBU1M6ICNncmlkIEFYQVJJ
QVJvd0NvdW50IGR5bmFtaWNhbGx5IGNoYW5nZWQgdG8gNjAuXG4iOworCisgICAgICAgICAgICBk
ZWJ1Zyh0ZXN0T3V0cHV0KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9
LCAwKTsKKyAgICB9Cis8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNh
bGx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1
cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi40ZWQxMThmYzUyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEgdGFibGUn
cyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRh
YmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBkeW5h
bWljIHBhZ2UgY2hhbmdlcy4KKworSW5pdGlhbCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1yb3djb3Vu
dCwgc28gaXQgc2hvdWxkIGJlIGEgZGF0YSB0YWJsZS4KKyN0YWJsZSBBWFJvbGU6IEFYVGFibGUK
KyNjZWxsT25lIEFYUm9sZTogQVhDZWxsCisKK1JlbW92aW5nIGFyaWEtcm93Y291bnQuIEJhc2Vk
IG9uIHRoaXMgdGFibGUncyBjb250ZW50cywgaXQgc2hvdWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQg
dGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFVua25vd24KKyNjZWxsT25lIEFYUm9sZTogQVhHcm91
cAorCitBZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQgY2F1c2UgdGhlIHRhYmxlIHRv
IGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRh
YmxlCisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZmYTk4MjcyMDI3Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1
cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKworPHRhYmxlIGlkPSJ0YWJsZSIgYXJpYS1yb3djb3VudD0iMSI+CisgICAgPHRy
PgorICAgICAgICA8dGQgaWQ9ImNlbGxPbmUiPng8L3RkPgorICAgICAgICA8dGQ+eDwvdGQ+Cisg
ICAgPC90cj4KKzwvdGFibGU+CisKKzxzY3JpcHQ+CisgICAgdmFyIHRlc3RPdXRwdXQgPSBgVGhp
cyB0ZXN0IGVuc3VyZXMgYSB0YWJsZSdzICJleHBvc2VkIiBzdGF0ZSAod2hldGhlciBpdCBpcyBh
biBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUsIHZzLiBqdXN0IGEgbGF5b3V0IHRhYmxlKSB1cGRh
dGVzIGluIHJlc3BvbnNlIHRvIGR5bmFtaWMgcGFnZSBjaGFuZ2VzLlxuXG5gOworCisgICAgZnVu
Y3Rpb24gY3JlYXRlQ2VsbCgpIHsKKyAgICAgICAgY29uc3QgY2VsbCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInRkIik7CisgICAgICAgIGNlbGwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRleHQgaW5zaWRlIGNlbGwiKSk7CisgICAgICAgIHJldHVybiBjZWxsOworICAg
IH0KKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IHRhYmxlID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWJsZSIpOworICAg
ICAgICBjb25zdCBjZWxsT25lID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKCJjZWxsT25lIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gIkluaXRpYWwgdGFi
bGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEgdGFibGUu
XG4iOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAg
ICAgICAgdGVzdE91dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOworCisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gIlxuUmVtb3ZpbmcgYXJpYS1yb3djb3VudC4gQmFzZWQgb24gdGhp
cyB0YWJsZSdzIGNvbnRlbnRzLCBpdCBzaG91bGQgbm93IGJlY29tZSBhIGxheW91dCB0YWJsZS5c
biI7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YWJsZSIpLnJlbW92ZUF0dHJp
YnV0ZSgiYXJpYS1yb3djb3VudCIpOworICAgICAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7CisgICAgICAgICAgICAgICAg
cmV0dXJuICFjZWxsT25lLnJvbGUuaW5jbHVkZXMoIkFYQ2VsbCIpICYmICF0YWJsZS5yb2xlLmlu
Y2x1ZGVzKCJBWFRhYmxlIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRw
dXQgKz0gYCN0YWJsZSAke3RhYmxlLnJvbGV9XG5gOworICAgICAgICAgICAgdGVzdE91dHB1dCAr
PSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5gOworCisgICAgICAgICAgICB0ZXN0T3V0cHV0
ICs9ICJcbkFkZGluZyBhIGxvdCBvZiByb3dzIHdoaWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUg
dG8gYmVjb21lIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZS5cbiI7CisgICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjb25zdCByb3cg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFibGUiKS5pbnNlcnRSb3coLTEpOworICAgICAg
ICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVhdGVDZWxsKCkpOworICAgICAgICAgICAgICAg
IHJvdy5hcHBlbmRDaGlsZChjcmVhdGVDZWxsKCkpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUu
Y2hpbGRyZW5Db3VudCA+PSAyMCAmJgorICAgICAgICAgICAgICAgICAgICBjZWxsT25lLnJvbGUu
aW5jbHVkZXMoIkFYQ2VsbCIpICYmCisgICAgICAgICAgICAgICAgICAgIHRhYmxlLnJvbGUuaW5j
bHVkZXMoIkFYVGFibGUiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdE91dHB1
dCArPSBgI3RhYmxlICR7dGFibGUucm9sZX1cbmA7CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9
IGAjY2VsbE9uZSAke2NlbGxPbmUucm9sZX1cbmA7CisKKyAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YWJsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICAg
ICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhw
b3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxs
eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4z
ZDJlYzE5NDhkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGli
L2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgYSB0YWJsZSdzICJleHBv
c2VkIiBzdGF0ZSAod2hldGhlciBpdCBpcyBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUsIHZz
LiBqdXN0IGEgbGF5b3V0IHRhYmxlKSB1cGRhdGVzIGluIHJlc3BvbnNlIHRvIGR5bmFtaWMgcGFn
ZSBjaGFuZ2VzLgorCitJbml0aWFsIHRhYmxlIHN0YXRlIGhhcyBhcmlhLXJvd2NvdW50LCBzbyBp
dCBzaG91bGQgYmUgYSBkYXRhIHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhUYWJsZQorI2NlbGxP
bmUgQVhSb2xlOiBBWENlbGwKKworUmVtb3ZpbmcgYXJpYS1yb3djb3VudC4gQmFzZWQgb24gdGhp
cyB0YWJsZSdzIGNvbnRlbnRzLCBpdCBzaG91bGQgbm93IGJlY29tZSBhIGxheW91dCB0YWJsZS4K
KyN0YWJsZSBBWFJvbGU6IEFYVW5rbm93bgorI2NlbGxPbmUgQVhSb2xlOiBBWFNlY3Rpb24KKwor
QWRkaW5nIGEgbG90IG9mIHJvd3Mgd2hpY2ggc2hvdWxkIGNhdXNlIHRoZSB0YWJsZSB0byBiZWNv
bWUgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhUYWJsZQor
I2NlbGxPbmUgQVhSb2xlOiBBWENlbGwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMmQ4MWE2ZjliY2RjLi5mNGZmNTNlNDBmNDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTE0LDYgKzIxMTQsNyBAQCB3ZWJraXQu
b3JnL2IvMTQ4ODA2IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0
aWNvbC9tdWx0aWNvbC1zcAogIyBFbmFibGUgInBob25lIG51bWJlciBsaW5raWZ5aW5nIiB0ZXN0
IGZvciBpT1MKIGZhc3QvZG9tL2xpbmtpZnktcGhvbmUtbnVtYmVycy5odG1sIFsgUGFzcyBdCiAK
K2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sIFsg
UGFzcyBdCiBhY2Nlc3NpYmlsaXR5L2FyaWEtYnVzeS11cGRhdGVzLWFmdGVyLWR5bmFtaWMtY2hh
bmdlLmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250
ZW50cy1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS11
cGRhdGVzLWFmdGVyLWR5bmFtaWMtY2hhbmdlLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0
ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Fj
Y2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MGM5OTAwYWMwNTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0
eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE4IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxlJ3MgImV4cG9zZWQiIHN0YXRlICh3
aGV0aGVyIGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZSwgdnMuIGp1c3QgYSBsYXlv
dXQgdGFibGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHluYW1pYyBwYWdlIGNoYW5nZXMuCisK
K0luaXRpYWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBh
IGRhdGEgdGFibGUuCisjdGFibGUgVGFibGUKKyNjZWxsT25lIENlbGwKKworUmVtb3ZpbmcgYXJp
YS1yb3djb3VudC4gQmFzZWQgb24gdGhpcyB0YWJsZSdzIGNvbnRlbnRzLCBpdCBzaG91bGQgbm93
IGJlY29tZSBhIGxheW91dCB0YWJsZS4KKyN0YWJsZSBVbmtub3duCisjY2VsbE9uZSBUZXh0R3Jv
dXAKKworQWRkaW5nIGEgbG90IG9mIHJvd3Mgd2hpY2ggc2hvdWxkIGNhdXNlIHRoZSB0YWJsZSB0
byBiZWNvbWUgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxlLgorI3RhYmxlIFRhYmxlCisjY2Vs
bE9uZSBDZWxsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA1
Y2U1YzZjMjVjMy4uOTg4NzgyZDEzZTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDU5LDYgKzQ1OSw5IEBAIGZhc3QvZXZlbnRzL21vdXNlb3Zlci1i
dXR0b24uaHRtbCBbIFNraXAgXQogIyBUT0RPIEFjY2VwdCBoZWFkZXIgaXMgaGFuZGxlZCBieSB0
aGUgYnJvd3NlcgogaHR0cC90ZXN0cy9taXNjL2ltYWdlLWNoZWNrcy1mb3ItYWNjZXB0Lmh0bWwg
WyBTa2lwIF0KIAorIyBUaW1pbmcgb3V0IHNpbmNlIGFkZGVkIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA3NTAgKGxpa2VseSBzb21lIG1pc3NpbmcgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCBpbXBsZW1lbnRhdGlvbikuCithY2Nlc3NpYmlsaXR5L3RhYmxlLWV4
cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbCBbIFNraXAgXQorCiAjIFByb2JhYmx5IHdy
b25nIHJvbGUgYWZ0ZXIgYWRkaW5nIGNoaWxkcmVuIHRvIGxpc3QgKEFYR3JvdXAgaW5zdGVhZCBv
ZiBBWExpc3QpLgogYWNjZXNzaWJpbGl0eS9saXN0LXdpdGgtZHluYW1pY2FsbHktY2hhbmdpbmct
Y29udGVudC5odG1sIFsgU2tpcCBdCiBhY2Nlc3NpYmlsaXR5L2lnbm9yZWQtYXJpYS1yb2xlLWRl
c2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459762</attachid>
            <date>2022-05-25 10:46:31 -0700</date>
            <delta_ts>2022-05-26 04:40:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240750-20220525104630.patch</filename>
            <type>text/plain</type>
            <size>29943</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBjNmU1YmYwYmM3YzgxYWFhOTZjYWY5NzJjYjhkNjhmMGZlY2FmZmFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogVHVlLCAyNCBNYXkgMjAyMiAyMjowNDo0NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFjY2Vz
c2liaWxpdHlUYWJsZTo6bV9pc0V4cG9zYWJsZSBpcyBuZXZlciByZWNvbXB1dGVkIGFmdGVyCiBB
Y2Nlc3NpYmlsaXR5VGFibGU6OmluaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDc1MAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBY2Nlc3NpYmlsaXR5
VGFibGU6Om1faXNFeHBvc2FibGUgaXMgbmV2ZXIgcmVjb21wdXRlZCBhZnRlcgpBY2Nlc3NpYmls
aXR5VGFibGU6OmluaXQuIFRoaXMgaXMgYmFkIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0YWJs
ZSwKYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHRhYmxlIGNlbGxzIGluIHRoZSB0YWJsZSwgYXJl
IGRlcGVuZGVudCBvbgp3aGV0aGVyIHRoZSB0YWJsZSBpcyBleHBvc2VkLgoKV2l0aCB0aGlzIGNv
bW1pdCwgd2UgcmVjb21wdXRlIG1faXNFeHBvc2FibGUgd2hlbiBhIHRhYmxlJ3Mgcm93IGNvdW50
CmNoYW5nZXMuIFRoaXMgY29tbWl0IGFsc28gdXBkYXRlcyB0aGUgaXNvbGF0ZWQgdHJlZSBmb3Ig
cm93IGNvdW50CmNoYW5nZXMsIG1lYW5pbmcgd2UgaGFuZGxlIGR5bmFtaWMgYXJpYS1yb3djb3Vu
dCB2YWx1ZSBtb2RpZmljYXRpb25zLgoKVGVzdDogYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3Vy
ZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwuCkFsc28gYWRkZWQgYW5vdGhlciB0ZXN0Y2FzZSB0
byBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1sLgoKKiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CiogTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbDogQWRkIHRl
c3RjYXNlLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRl
cy1keW5hbWljYWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sOiBBZGRlZC4KKiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBk
YXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUgbmV3IHRlc3QuCiogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWlj
YWxseS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zOiBEaXNhYmxlIG5ldyB0ZXN0LgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKToKKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hhbmdlZCk6IEFkZGVkLgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSk6CihXZWJDb3JlOjpmaWx0ZXJXZWFrSGFzaFNl
dEZvclJlbW92YWwpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRvY3VtZW50
RGVzdHJ1Y3Rpb24pOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2Fj
aGVVcGRhdGUpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToK
KiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHA6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5VGFibGU6OnJlY29tcHV0ZUlzRXhwb3NhYmxlKTogQWRkZWQuCihXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5VGFibGU6OnVwZGF0ZUNoaWxkcmVuUm9sZXMpOiBBZGRlZC4KKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW4pOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmg6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVQYXJ0RWxlbWVudC5oOgpNb3ZlZCBmaW5kUGFyZW50VGFibGUgZnJvbSBwcm90ZWN0
ZWQgdG8gcHVibGljIHNvIGl0IGNhbiBiZSBjYWxsZWQgZnJvbQphY2Nlc3NpYmlsaXR5IGNvZGUu
Ci0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgIHwgNTcg
KysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggIHwgIDIgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAgICAg
IHwgMzAgKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggICAg
ICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oICAg
IHwgIDUgKy0KIC4uLi9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0ICAgICAgICB8
IDMxICsrKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy5odG1s
ICB8IDgyICsrKysrKysrKystLS0tLS0tLS0KIC4uLi1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNh
bGx5LWV4cGVjdGVkLnR4dCB8IDE4ICsrKysKIC4uLi90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5
bmFtaWNhbGx5Lmh0bWwgICB8IDY2ICsrKysrKysrKysrKysrKwogLi4uLWV4cG9zdXJlLXVwZGF0
ZXMtZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IHwgMTggKysrKwogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgICAgIHwgIDEgKwogLi4uLWV4cG9zdXJlLXVwZGF0ZXMt
ZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0IHwgMTggKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgICAgIHwgIDMgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjYzIGlu
c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Rh
YmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11
cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMt
ZHluYW1pY2FsbHktZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggM2I1NzRmMTI5OGYzLi42ODc1YjBlMWY1YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAt
ODUsNiArODUsOCBAQAogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbmxpbmVSdW5BbmRPZmZzZXQuaCIKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCkBAIC05
MDAsNiArOTAyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSYgbm9kZSkKICAg
ICAgICAgbV9kZWZlcnJlZEF0dHJpYnV0ZUNoYW5nZS5yZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4o
Jm5vZGUpKTsKICAgICAgICAgbV9tb2RhbEVsZW1lbnRzU2V0LnJlbW92ZShkb3duY2FzdDxFbGVt
ZW50Pigmbm9kZSkpOwogICAgICAgICBtX2RlZmVycmVkUmVjb21wdXRlSXNJZ25vcmVkTGlzdC5y
ZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOworICAgICAgICBtX2RlZmVycmVkUmVjb21w
dXRlVGFibGVJc0V4cG9zZWRMaXN0LnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSk7CiAg
ICAgICAgIG1fZGVmZXJyZWRTZWxlY3RlZENoaWxkcmVkQ2hhbmdlZExpc3QucmVtb3ZlKGRvd25j
YXN0PEVsZW1lbnQ+KG5vZGUpKTsKICAgICAgICAgbV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3Qu
cmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKTsKICAgICAgICAgbV9kZWZlcnJlZE1lbnVM
aXN0Q2hhbmdlLnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSk7CkBAIC0xMTQwLDYgKzEx
NDMsMTIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQogICAgICAgICByZXR1cm47CiAgICAgbV9kZWZlcnJlZENoaWxkcmVu
Q2hhbmdlZExpc3QuYWRkKG9iamVjdCk7CiAKKyAgICAvLyBBZGRpbmcgb3IgcmVtb3Zpbmcgcm93
cyBmcm9tIGEgdGFibGUgY2FuIGNhdXNlIGl0IHRvIGNoYW5nZSBmcm9tIGxheW91dCB0YWJsZSB0
byBBWCBkYXRhIHRhYmxlIGFuZCB2aWNlIHZlcnNhLCBzbyBxdWV1ZSB1cCByZWNvbXB1dGF0aW9u
IG9mIHRoYXQgZm9yIHRoZSBwYXJlbnQgdGFibGUuCisgICAgaWYgKGF1dG8qIHRhYmxlU2VjdGlv
bkVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ+KG9iamVj
dC0+ZWxlbWVudCgpKSkgeworICAgICAgICBpZiAoYXV0byogcGFyZW50VGFibGUgPSB0YWJsZVNl
Y3Rpb25FbGVtZW50LT5maW5kUGFyZW50VGFibGUoKS5nZXQoKSkKKyAgICAgICAgICAgIG1fZGVm
ZXJyZWRSZWNvbXB1dGVUYWJsZUlzRXhwb3NlZExpc3QuYWRkKCpwYXJlbnRUYWJsZSk7CisgICAg
fQorCiAgICAgaWYgKCFtX3BlcmZvcm1DYWNoZVVwZGF0ZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAg
ICAgIG1fcGVyZm9ybUNhY2hlVXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBAIC0x
MjkzLDcgKzEzMDIsMTggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51SXRlbVNlbGVj
dGVkKE5vZGUqIG5vZGUpCiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0ZShu
b2RlKSwgJmRvY3VtZW50KCksIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQpOwogfQotICAgIAorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVJvd0NvdW50Q2hhbmdlZChBWENvcmVPYmplY3QqIGF4
T2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFheE9iamVjdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGF4VGFibGUgPSBkeW5hbWljRG93bmNhc3Q8QWNj
ZXNzaWJpbGl0eVRhYmxlPihheE9iamVjdCkpCisgICAgICAgIGF4VGFibGUtPnJlY29tcHV0ZUlz
RXhwb3NhYmxlKCk7CisKKyAgICBwb3N0Tm90aWZpY2F0aW9uKGF4T2JqZWN0LCBkb2N1bWVudCwg
QVhSb3dDb3VudENoYW5nZWQpOworfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmRlZmVyRm9jdXNl
ZFVJRWxlbWVudENoYW5nZUlmTmVlZGVkKE5vZGUqIG9sZE5vZGUsIE5vZGUqIG5ld05vZGUpCiB7
CiAgICAgaWYgKG5vZGVBbmRSZW5kZXJlckFyZVZhbGlkKG5ld05vZGUpICYmIHJlbmRlcmVyTmVl
ZHNEZWZlcnJlZFVwZGF0ZSgqbmV3Tm9kZS0+cmVuZGVyZXIoKSkpIHsKQEAgLTE3OTAsNyArMTgx
MCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdlKE5vZGUq
IG5vZGUpCiAKICAgICAgICAgLy8gUG9zdCB0aGF0IHRoZSBhbmNlc3RvcidzIHJvdyBjb3VudCBj
aGFuZ2VkLgogICAgICAgICBpZiAoYW5jZXN0b3IpCi0gICAgICAgICAgICBwb3N0Tm90aWZpY2F0
aW9uKGFuY2VzdG9yLCAmZG9jdW1lbnQoKSwgQVhSb3dDb3VudENoYW5nZWQpOworICAgICAgICAg
ICAgaGFuZGxlUm93Q291bnRDaGFuZ2VkKGFuY2VzdG9yLCAmZG9jdW1lbnQoKSk7CiAKICAgICAg
ICAgLy8gUG9zdCB0aGF0IHRoZSBzcGVjaWZpYyByb3cgZWl0aGVyIGNvbGxhcHNlZCBvciBleHBh
bmRlZC4KICAgICAgICAgYXV0byByb2xlID0gb2JqZWN0LT5yb2xlVmFsdWUoKTsKQEAgLTE5Mzgs
NiArMTk1OCw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50CiAgICAgICAgIHBvc3ROb3RpZmlj
YXRpb24oZWxlbWVudCwgQVhPYmplY3RDYWNoZTo6QVhSZWFkT25seVN0YXR1c0NoYW5nZWQpOwog
ICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IGFyaWFfcmVxdWlyZWRBdHRyKQogICAgICAgICBwb3N0
Tm90aWZpY2F0aW9uKGVsZW1lbnQsIEFYT2JqZWN0Q2FjaGU6OkFYUmVxdWlyZWRTdGF0dXNDaGFu
Z2VkKTsKKyAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBhcmlhX3Jvd2NvdW50QXR0cikKKyAgICAg
ICAgaGFuZGxlUm93Q291bnRDaGFuZ2VkKGdldChlbGVtZW50KSwgZWxlbWVudCA/ICZlbGVtZW50
LT5kb2N1bWVudCgpIDogbnVsbHB0cik7CiAgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gYXJpYV9z
b3J0QXR0cikKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihlbGVtZW50LCBBWE9iamVjdENhY2hl
OjpBWFNvcnREaXJlY3Rpb25DaGFuZ2VkKTsKIH0KQEAgLTMyNTYsNyArMzI3OCw4IEBAIHN0YXRp
YyB2b2lkIGZpbHRlckxpc3RGb3JSZW1vdmFsKGNvbnN0IExpc3RIYXNoU2V0PFQ+JiBsaXN0LCBj
b25zdCBEb2N1bWVudCYgZG9jCiAgICAgICAgIGNvbmRpdGlvbmFsbHlBZGROb2RlVG9GaWx0ZXJM
aXN0KG5vZGUsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKIH0KIAotc3RhdGljIHZvaWQgZmls
dGVyV2Vha0hhc2hTZXRGb3JSZW1vdmFsKFdlYWtIYXNoU2V0PEVsZW1lbnQ+JiB3ZWFrSGFzaFNl
dCwgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBIYXNoU2V0PFJlZjxOb2RlPj4mIG5vZGVzVG9S
ZW1vdmUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgZmlsdGVyV2Vha0hhc2hT
ZXRGb3JSZW1vdmFsKFdlYWtIYXNoU2V0PFQ+JiB3ZWFrSGFzaFNldCwgY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50LCBIYXNoU2V0PFJlZjxOb2RlPj4mIG5vZGVzVG9SZW1vdmUpCiB7CiAgICAgd2Vh
a0hhc2hTZXQuZm9yRWFjaChbJl0gKGF1dG8mIGVsZW1lbnQpIHsKICAgICAgICAgY29uZGl0aW9u
YWxseUFkZE5vZGVUb0ZpbHRlckxpc3QoJmVsZW1lbnQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3Zl
KTsKQEAgLTMyNzEsNiArMzI5NCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cHJlcGFyZUZvckRv
Y3VtZW50RGVzdHJ1Y3Rpb24oY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGZpbHRlckxp
c3RGb3JSZW1vdmFsKG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1Rv
UmVtb3ZlKTsKICAgICBmaWx0ZXJMaXN0Rm9yUmVtb3ZhbChtX2RlZmVycmVkTm9kZUFkZGVkT3JS
ZW1vdmVkTGlzdCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOwogICAgIGZpbHRlcldlYWtIYXNo
U2V0Rm9yUmVtb3ZhbChtX2RlZmVycmVkUmVjb21wdXRlSXNJZ25vcmVkTGlzdCwgZG9jdW1lbnQs
IG5vZGVzVG9SZW1vdmUpOworICAgIGZpbHRlcldlYWtIYXNoU2V0Rm9yUmVtb3ZhbChtX2RlZmVy
cmVkUmVjb21wdXRlVGFibGVJc0V4cG9zZWRMaXN0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7
CiAgICAgZmlsdGVyV2Vha0hhc2hTZXRGb3JSZW1vdmFsKG1fZGVmZXJyZWRTZWxlY3RlZENoaWxk
cmVkQ2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKICAgICBmaWx0ZXJXZWFr
SGFzaFNldEZvclJlbW92YWwobV9kZWZlcnJlZE1vZGFsQ2hhbmdlZExpc3QsIGRvY3VtZW50LCBu
b2Rlc1RvUmVtb3ZlKTsKICAgICBmaWx0ZXJXZWFrSGFzaFNldEZvclJlbW92YWwobV9kZWZlcnJl
ZE1lbnVMaXN0Q2hhbmdlLCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7CkBAIC0zMzE0LDYgKzMz
MzgsMTIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgp
CiAgICAgICAgIHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJyZWRDYWNo
ZVVwZGF0ZShtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKIAorICAgIG1f
ZGVmZXJyZWRSZWNvbXB1dGVUYWJsZUlzRXhwb3NlZExpc3QuZm9yRWFjaChbdGhpc10gKGF1dG8m
IHRhYmxlRWxlbWVudCkgeworICAgICAgICBpZiAoYXV0byogYXhUYWJsZSA9IGR5bmFtaWNEb3du
Y2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KGdldE9yQ3JlYXRlKCZ0YWJsZUVsZW1lbnQpKSkKKyAg
ICAgICAgICAgIGF4VGFibGUtPnJlY29tcHV0ZUlzRXhwb3NhYmxlKCk7CisgICAgfSk7CisgICAg
bV9kZWZlcnJlZFJlY29tcHV0ZVRhYmxlSXNFeHBvc2VkTGlzdC5jbGVhcigpOworCiAgICAgZm9y
IChhdXRvKiBub2RlQ2hpbGQgOiBtX2RlZmVycmVkTm9kZUFkZGVkT3JSZW1vdmVkTGlzdCkgewog
ICAgICAgICBoYW5kbGVNZW51T3BlbmVkKG5vZGVDaGlsZCk7CiAgICAgICAgIGhhbmRsZUxpdmVS
ZWdpb25DcmVhdGVkKG5vZGVDaGlsZCk7CkBAIC0zNDE0LDYgKzM0NDQsMTQgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QVhDb3JlT2JqZWMKICAgICAgICAgYm9vbCBub2RlIHsgZmFsc2UgfTsKICAgICB9OwogICAg
IEhhc2hNYXA8QVhJRCwgVXBkYXRlZEZpZWxkcz4gdXBkYXRlZE9iamVjdHM7CisgICAgYXV0byB1
cGRhdGVOb2RlID0gWyZdIChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCkgeworICAgICAg
ICBhdXRvIHVwZGF0ZWRGaWVsZHMgPSB1cGRhdGVkT2JqZWN0cy5nZXQoYXhPYmplY3QtPm9iamVj
dElEKCkpOworICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkgeworICAgICAgICAgICAg
dXBkYXRlZE9iamVjdHMuc2V0KGF4T2JqZWN0LT5vYmplY3RJRCgpLCBVcGRhdGVkRmllbGRzIHsg
dXBkYXRlZEZpZWxkcy5jaGlsZHJlbiwgdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRyZWUtPnVwZGF0
ZU5vZGUoKmF4T2JqZWN0KTsKKyAgICAgICAgfQorICAgIH07CisKICAgICBmb3IgKGNvbnN0IGF1
dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpIHsKICAgICAgICAgQVhMT0cobm90aWZp
Y2F0aW9uKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24uZmlyc3QgfHwgIW5vdGlmaWNhdGlv
bi5maXJzdC0+b2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0zNDU3LDE3ICszNDk1LDE0IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFYQ29yZU9iamVjCiAgICAgICAgIGNhc2UgQVhQcmVzc2VkU3RhdGVDaGFuZ2Vk
OgogICAgICAgICBjYXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2Ug
QVhUZXh0Q2hhbmdlZDoKLSAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDogewotICAgICAgICAg
ICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5vdGlmaWNhdGlvbi5m
aXJzdC0+b2JqZWN0SUQoKSk7Ci0gICAgICAgICAgICBpZiAoIXVwZGF0ZWRGaWVsZHMubm9kZSkg
ewotICAgICAgICAgICAgICAgIHVwZGF0ZWRPYmplY3RzLnNldChub3RpZmljYXRpb24uZmlyc3Qt
Pm9iamVjdElEKCksIFVwZGF0ZWRGaWVsZHMgeyB1cGRhdGVkRmllbGRzLmNoaWxkcmVuLCB0cnVl
IH0pOwotICAgICAgICAgICAgICAgIHRyZWUtPnVwZGF0ZU5vZGUoKm5vdGlmaWNhdGlvbi5maXJz
dCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6CisgICAgICAg
ICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQorICAgICAgICBjYXNlIEFYUm93Q291bnRDaGFuZ2VkOgorICAgICAgICAgICAg
dXBkYXRlTm9kZShub3RpZmljYXRpb24uZmlyc3QpOworICAgICAgICAgICAgRkFMTFRIUk9VR0g7
CiAgICAgICAgIGNhc2UgQVhDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhMYW5ndWFn
ZUNoYW5nZWQ6Ci0gICAgICAgIGNhc2UgQVhSb3dDb3VudENoYW5nZWQ6CiAgICAgICAgIGNhc2Ug
QVhSb3dDb2xsYXBzZWQ6CiAgICAgICAgIGNhc2UgQVhSb3dFeHBhbmRlZDogewogICAgICAgICAg
ICAgYXV0byB1cGRhdGVkRmllbGRzID0gdXBkYXRlZE9iamVjdHMuZ2V0KG5vdGlmaWNhdGlvbi5m
aXJzdC0+b2JqZWN0SUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCmluZGV4IDJjNGY4MTFhZTk3Mi4uYjkyYWNkMTRiNmM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtNDYyLDYgKzQ2Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhh
bmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2Vs
ZWN0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlUm93Q291bnRDaGFuZ2VkKEFYQ29yZU9iamVj
dCosIERvY3VtZW50Kik7CiAgICAgdm9pZCBoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICBib29sIHNob3VsZFByb2Nlc3NBdHRyaWJ1dGVD
aGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKTsKICAgICB2b2lkIHNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKE5vZGUqKTsKQEAgLTUyNSw2ICs1MjYsNyBAQCBwcml2YXRlOgogCiAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogICAgIFdl
YWtIYXNoU2V0PEVsZW1lbnQ+IG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9yZWRMaXN0OworICAg
IFdlYWtIYXNoU2V0PEhUTUxUYWJsZUVsZW1lbnQ+IG1fZGVmZXJyZWRSZWNvbXB1dGVUYWJsZUlz
RXhwb3NlZExpc3Q7CiAgICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fZGVmZXJyZWRUZXh0Q2hhbmdl
ZExpc3Q7CiAgICAgV2Vha0hhc2hTZXQ8RWxlbWVudD4gbV9kZWZlcnJlZFNlbGVjdGVkQ2hpbGRy
ZWRDaGFuZ2VkTGlzdDsKICAgICBMaXN0SGFzaFNldDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4+IG1fZGVmZXJyZWRDaGlsZHJlbkNoYW5nZWRMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCmluZGV4IDRjMjVmZWE1NDUx
Zi4uNmY4ZWY5ZjlhOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCkBAIC0zNjIsNiArMzYyLDMxIEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVRhYmxlOjpjb21wdXRlSXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5
KCkgY29uc3QKICAgICByZXR1cm4gaXNEYXRhVGFibGUoKTsKIH0KIAorCit2b2lkIEFjY2Vzc2li
aWxpdHlUYWJsZTo6cmVjb21wdXRlSXNFeHBvc2FibGUoKQoreworICAgIGJvb2wgcHJldmlvdXNs
eUV4cG9zYWJsZSA9IG1faXNFeHBvc2FibGU7CisgICAgbV9pc0V4cG9zYWJsZSA9IGNvbXB1dGVJ
c1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKTsKKyAgICBpZiAocHJldmlvdXNs
eUV4cG9zYWJsZSAhPSBtX2lzRXhwb3NhYmxlKSB7CisgICAgICAgIC8vIEEgdGFibGUncyByb2xl
IHZhbHVlIGlzIGRlcGVuZGVudCBvbiB3aGV0aGVyIGl0J3MgZXhwb3NlZCwgc28gbm90aWZ5IHRo
ZSBjYWNoZSB0aGlzIGhhcyBjaGFuZ2VkLgorICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+aGFuZGxlUm9sZUNoYW5nZSh0aGlzKTsK
KworICAgICAgICAvLyBCZWZvcmUgcmVzZXR0aW5nIG91ciBleGlzdGluZyBjaGlsZHJlbiwgcG9z
c2libHkgbG9zaW5nIHJlZmVyZW5jZXMgdG8gdGhlbSwgZW5zdXJlIHdlIHVwZGF0ZSB0aGVpciBy
b2xlIChzaW5jZSBhIHRhYmxlIGNlbGwncyByb2xlIGlzIGRlcGVuZGVudCBvbiB3aGV0aGVyIGl0
cyBwYXJlbnQgdGFibGUgaXMgZXhwb3NhYmxlKS4KKyAgICAgICAgdXBkYXRlQ2hpbGRyZW5Sb2xl
cygpOworCisgICAgICAgIG1fY2hpbGRyZW5EaXJ0eSA9IHRydWU7CisgICAgfQorfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlUYWJsZTo6dXBkYXRlQ2hpbGRyZW5Sb2xlcygpCit7CisgICAgZm9yIChj
b25zdCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjZWxs
IDogcm93LT5jaGlsZHJlbigpKQorICAgICAgICAgICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9i
amVjdD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsKKyAgICB9Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0
eVRhYmxlOjpjbGVhckNoaWxkcmVuKCkKIHsKICAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpjbGVhckNoaWxkcmVuKCk7CkBAIC00MjcsMTAgKzQ1Miw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eVRhYmxlOjphZGRDaGlsZHJlbigpCiAgICAgLy8gZGV0ZXJtaW5lcyB3aGV0aGVyIGl0IGlzIGFu
IGFjY2Vzc2liaWxpdHkgdGFibGUuIEl0ZXJhdGUgYWxsIHRoZSBjZWxscyBhbmQgYWxsb3cgdGhl
bSB0bwogICAgIC8vIHVwZGF0ZSB0aGVpciByb2xlcyBub3cgdGhhdCB0aGUgdGFibGUga25vd3Mg
aXRzIHN0YXR1cy4KICAgICAvLyBzZWUgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ3MDAxCi0gICAgZm9yIChjb25zdCBhdXRvJiByb3cgOiBtX3Jvd3MpIHsK
LSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjZWxsIDogcm93LT5jaGlsZHJlbigpKQotICAgICAg
ICAgICAgZG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4oKmNlbGwpLnVwZGF0ZVJvbGUoKTsK
LSAgICB9CisgICAgdXBkYXRlQ2hpbGRyZW5Sb2xlcygpOwogfQogCiB2b2lkIEFjY2Vzc2liaWxp
dHlUYWJsZTo6YWRkVGFibGVDZWxsQ2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCogcm93T2JqZWN0
LCBIYXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3QqPiYgYXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYg
Y29sdW1uQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGUuaAppbmRleCBlNDA3N2I2ZTY2YjMuLjZhNjIzMDBjYWE2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUNoaWxkcmVu
Um9sZXMoKTsKIAogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjb2x1bW5zKCkgb3Zl
cnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd3MoKSBvdmVycmlkZTsK
QEAgLTczLDYgKzc0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNUYWJsZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgaXQgaXMgZXhwb3Nl
ZCBhcyBhbiBBY2Nlc3NpYmlsaXR5VGFibGUgdG8gdGhlIHBsYXRmb3JtLgogICAgIGJvb2wgaXNF
eHBvc2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHJlY29tcHV0ZUlzRXhwb3NhYmxl
KCk7CiAKICAgICBpbnQgYXhDb2x1bW5Db3VudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBh
eFJvd0NvdW50KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVBhcnRFbGVtZW50LmgKaW5kZXggNzg0Yjk4YWRmMzM3Li5hODhiOGU4MmQ0NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKQEAgLTMzLDYgKzMzLDkgQEAg
Y2xhc3MgSFRNTFRhYmxlRWxlbWVudDsKIAogY2xhc3MgSFRNTFRhYmxlUGFydEVsZW1lbnQgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTFRhYmxl
UGFydEVsZW1lbnQpOworcHVibGljOgorICAgIFJlZlB0cjxjb25zdCBIVE1MVGFibGVFbGVtZW50
PiBmaW5kUGFyZW50VGFibGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxUYWJsZVBh
cnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKQEAgLTQxLDggKzQ0
LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwot
Ci0gICAgUmVmUHRyPGNvbnN0IEhUTUxUYWJsZUVsZW1lbnQ+IGZpbmRQYXJlbnRUYWJsZSgpIGNv
bnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CmluZGV4IGQxZjExYjM3ZGI4Zi4uMzNmMjZiYTU5NmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGUtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDIyICsxLDIxIEBACiBUaGlzIHRlc3RzIHRoYXQgYXR0cmlidXRlcyByZWxhdGVk
IHRvIGFyaWEgdGFibGUvZ3JpZCBhcmUgd29ya2luZyBjb3JyZWN0bHkuCiAKLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KK1BBU1M6IGdyaWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNv
bHVtbkNvdW50JykgPT09IDE2CitQQVNTOiBncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFS
SUFSb3dDb3VudCcpID09PSAzMAorUEFTUzogZ3JpZC5yb3dDb3VudCA9PT0gNAorUEFTUzogZ3Jp
ZC5jb2x1bW5Db3VudCA9PT0gNAorUEFTUzogY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FY
QVJJQUNvbHVtbkluZGV4JykgPT09IDIKK1BBU1M6IGNlbGwxLm51bWJlckF0dHJpYnV0ZVZhbHVl
KCdBWEFSSUFSb3dJbmRleCcpID09PSA3CitQQVNTOiBjZWxsMi5udW1iZXJBdHRyaWJ1dGVWYWx1
ZSgnQVhBUklBQ29sdW1uSW5kZXgnKSA9PT0gNAorUEFTUzogY2VsbDIubnVtYmVyQXR0cmlidXRl
VmFsdWUoJ0FYQVJJQVJvd0luZGV4JykgPT09IDgKK1BBU1M6IGNlbGw0Lm51bWJlckF0dHJpYnV0
ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpID09PSAzCitQQVNTOiBjZWxsMi5yb3dJbmRleFJh
bmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBjZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkgPT09ICd7
MiwgM30nCitQQVNTOiBjZWxsMy5yb3dJbmRleFJhbmdlKCkgPT09ICd7MSwgMn0nCitQQVNTOiBj
ZWxsNi5yb3dJbmRleFJhbmdlKCkgPT09ICd7MCwgMn0nCitQQVNTOiBjZWxsNy5yb3dJbmRleFJh
bmdlKCkgPT09ICd7MCwgMn0nCitQQVNTOiAjZ3JpZCBBWEFSSUFSb3dDb3VudCBkeW5hbWljYWxs
eSBjaGFuZ2VkIHRvIDYwLgogCi0KLVBBU1MgZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBQ29sdW1uQ291bnQnKSBpcyAxNgotUEFTUyBncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdB
WEFSSUFSb3dDb3VudCcpIGlzIDMwCi1QQVNTIGdyaWQucm93Q291bnQgaXMgNAotUEFTUyBncmlk
LmNvbHVtbkNvdW50IGlzIDQKLVBBU1MgY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJ
QUNvbHVtbkluZGV4JykgaXMgMgotUEFTUyBjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBUm93SW5kZXgnKSBpcyA3Ci1QQVNTIGNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFS
SUFDb2x1bW5JbmRleCcpIGlzIDQKLVBBU1MgY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FY
QVJJQVJvd0luZGV4JykgaXMgOAotUEFTUyBjZWxsNC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhB
UklBQ29sdW1uSW5kZXgnKSBpcyAzCi1QQVNTIGNlbGwyLnJvd0luZGV4UmFuZ2UoKSBpcyAnezEs
IDJ9JwotUEFTUyBjZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkgaXMgJ3syLCAzfScKLVBBU1MgY2Vs
bDMucm93SW5kZXhSYW5nZSgpIGlzICd7MSwgMn0nCi1QQVNTIGNlbGw2LnJvd0luZGV4UmFuZ2Uo
KSBpcyAnezAsIDJ9JwotUEFTUyBjZWxsNy5yb3dJbmRleFJhbmdlKCkgaXMgJ3swLCAyfScKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLmh0bWwKaW5k
ZXggNWI1ZDM3OTA0OGYwLi5hNDMwZGU0YWJhN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS10YWJsZS1hdHRyaWJ1dGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWF0dHJpYnV0ZXMuaHRtbApAQCAtMSw5ICsxLDEwIEBA
CiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4K
IDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Cis8Ym9keT4KIAogPGRpdiBpZD0iZ3JpZCIgcm9s
ZT0iZ3JpZCIgYXJpYS1jb2xjb3VudD0iMTYiIGFyaWEtcm93Y291bnQ9IjMwIj4KICAgPGRpdiBy
b2xlPSJyb3dncm91cCI+CkBAIC02NCw0NiArNjUsNTMgQEAKIDwvdGFibGU+CiAKIDxzY3JpcHQ+
Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGF0dHJpYnV0ZXMgcmVsYXRlZCB0
byBhcmlhIHRhYmxlL2dyaWQgYXJlIHdvcmtpbmcgY29ycmVjdGx5LiIpOworICAgIHZhciB0ZXN0
T3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCBhdHRyaWJ1dGVzIHJlbGF0ZWQgdG8gYXJpYSB0YWJs
ZS9ncmlkIGFyZSB3b3JraW5nIGNvcnJlY3RseS5cblxuIjsKIAogICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAKLSAgICAgICAgICB2YXIgZ3JpZCA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZ3JpZCIpOwotICAgICAg
ICAgIHZhciBjZWxsMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgiY2VsbDEiKTsKLSAgICAgICAgICB2YXIgY2VsbDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGwyIik7Ci0gICAgICAgICAgdmFyIGNlbGwz
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMyIp
OwotICAgICAgICAgIHZhciBjZWxsNCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiY2VsbDQiKTsKLSAgICAgICAgICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNlbGw1Iik7Ci0gICAgICAgICAg
dmFyIGNlbGw2ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJjZWxsNiIpOwotICAgICAgICAgIHZhciBjZWxsNyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDciKTsKLSAgICAgICAgICAKLSAgICAgICAgICAv
LyBhcmlhLWNvbGNvdW50IGFuZCBhcmlhLXJvd2NvdW50Ci0gICAgICAgICAgc2hvdWxkQmUoImdy
aWQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkNvdW50JykiLCAiMTYiKTsKLSAg
ICAgICAgICBzaG91bGRCZSgiZ3JpZC5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291
bnQnKSIsICIzMCIpOwotICAgICAgICAgIHNob3VsZEJlKCJncmlkLnJvd0NvdW50IiwgIjQiKTsK
LSAgICAgICAgICBzaG91bGRCZSgiZ3JpZC5jb2x1bW5Db3VudCIsICI0Iik7CisgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgICAgICAgIC8vIGFyaWEtY29saW5kZXgg
YW5kIGFyaWEtcm93aW5kZXgKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDEubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMiIpOwotICAgICAgICAgIHNob3VsZEJl
KCJjZWxsMS5udW1iZXJBdHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93SW5kZXgnKSIsICI3Iik7Ci0g
ICAgICAgICAgc2hvdWxkQmUoImNlbGwyLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1
bW5JbmRleCcpIiwgIjQiKTsKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDIubnVtYmVyQXR0cmli
dXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAiOCIpOwotICAgICAgICAgIC8vIGFyaWEtY29s
aW5kZXggZnJvbSBwYXJlbnQgcm93Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGw0Lm51bWJlckF0
dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1bW5JbmRleCcpIiwgIjMiKTsKLSAgICAgICAgICAKLSAg
ICAgICAgICAvLyBhcmlhLWNvbHNwYW4gYW5kIGFyaWEtcm93c3BhbiwgaW5jbHVkaW5nIGFyaWEt
cm93c3Bhbj0iMCIKLSAgICAgICAgICBzaG91bGRCZSgiY2VsbDIucm93SW5kZXhSYW5nZSgpIiwg
Iid7MSwgMn0nIik7Ci0gICAgICAgICAgc2hvdWxkQmUoImNlbGw1LmNvbHVtbkluZGV4UmFuZ2Uo
KSIsICInezIsIDN9JyIpOwotICAgICAgICAgIHNob3VsZEJlKCJjZWxsMy5yb3dJbmRleFJhbmdl
KCkiLCAiJ3sxLCAyfSciKTsKKyAgICAgICAgdmFyIGdyaWQgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImdyaWQiKTsKKyAgICAgICAgdmFyIGNlbGwxID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsMSIpOwor
ICAgICAgICB2YXIgY2VsbDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoImNlbGwyIik7CisgICAgICAgIHZhciBjZWxsMyA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDMiKTsKKyAgICAgICAgdmFyIGNlbGw0
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxsNCIp
OworICAgICAgICB2YXIgY2VsbDUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoImNlbGw1Iik7CisgICAgICAgIHZhciBjZWxsNiA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbDYiKTsKKyAgICAgICAgdmFyIGNl
bGw3ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJjZWxs
NyIpOwogCi0gICAgICAgICAgc2hvdWxkQmUoImNlbGw2LnJvd0luZGV4UmFuZ2UoKSIsICInezAs
IDJ9JyIpOwotICAgICAgICAgIC8vIHVzZSByb3dzcGFuIGZvciBuYXRpdmUgdGFibGUKLSAgICAg
ICAgICBzaG91bGRCZSgiY2VsbDcucm93SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7Ci0gICAg
fQorICAgICAgICAvLyBhcmlhLWNvbGNvdW50IGFuZCBhcmlhLXJvd2NvdW50CisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFDb2x1
bW5Db3VudCcpIiwgIjE2Iik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLm51
bWJlckF0dHJpYnV0ZVZhbHVlKCdBWEFSSUFSb3dDb3VudCcpIiwgIjMwIik7CisgICAgICAgIHRl
c3RPdXRwdXQgKz0gZXhwZWN0KCJncmlkLnJvd0NvdW50IiwgIjQiKTsKKyAgICAgICAgdGVzdE91
dHB1dCArPSBleHBlY3QoImdyaWQuY29sdW1uQ291bnQiLCAiNCIpOwogCi08L3NjcmlwdD4KKyAg
ICAgICAgLy8gYXJpYS1jb2xpbmRleCBhbmQgYXJpYS1yb3dpbmRleAorICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbklu
ZGV4JykiLCAiMiIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDEubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAiNyIpOworICAgICAgICB0ZXN0T3V0
cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbklu
ZGV4JykiLCAiNCIpOworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIubnVtYmVy
QXR0cmlidXRlVmFsdWUoJ0FYQVJJQVJvd0luZGV4JykiLCAiOCIpOworICAgICAgICAvLyBhcmlh
LWNvbGluZGV4IGZyb20gcGFyZW50IHJvdworICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgi
Y2VsbDQubnVtYmVyQXR0cmlidXRlVmFsdWUoJ0FYQVJJQUNvbHVtbkluZGV4JykiLCAiMyIpOwor
CisgICAgICAgIC8vIGFyaWEtY29sc3BhbiBhbmQgYXJpYS1yb3dzcGFuLCBpbmNsdWRpbmcgYXJp
YS1yb3dzcGFuPSIwIgorICAgICAgICB0ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDIucm93SW5k
ZXhSYW5nZSgpIiwgIid7MSwgMn0nIik7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJj
ZWxsNS5jb2x1bW5JbmRleFJhbmdlKCkiLCAiJ3syLCAzfSciKTsKKyAgICAgICAgdGVzdE91dHB1
dCArPSBleHBlY3QoImNlbGwzLnJvd0luZGV4UmFuZ2UoKSIsICInezEsIDJ9JyIpOworCisgICAg
ICAgIHRlc3RPdXRwdXQgKz0gZXhwZWN0KCJjZWxsNi5yb3dJbmRleFJhbmdlKCkiLCAiJ3swLCAy
fSciKTsKKyAgICAgICAgLy8gdXNlIHJvd3NwYW4gZm9yIG5hdGl2ZSB0YWJsZQorICAgICAgICB0
ZXN0T3V0cHV0ICs9IGV4cGVjdCgiY2VsbDcucm93SW5kZXhSYW5nZSgpIiwgIid7MCwgMn0nIik7
CiAKLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWQiKS5zZXRBdHRyaWJ1dGUoImFy
aWEtcm93Y291bnQiLCAiNjAiKTsKKyAgICAgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4geyByZXR1cm4gZ3JpZC5udW1iZXJB
dHRyaWJ1dGVWYWx1ZSgnQVhBUklBUm93Q291bnQnKSA9PT0gNjAgfSk7CisgICAgICAgICAgICB0
ZXN0T3V0cHV0ICs9ICJQQVNTOiAjZ3JpZCBBWEFSSUFSb3dDb3VudCBkeW5hbWljYWxseSBjaGFu
Z2VkIHRvIDYwLlxuIjsKKworICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
dGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGVkMTE4
ZmM1MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJs
ZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4
IEBACitUaGlzIHRlc3QgZW5zdXJlcyBhIHRhYmxlJ3MgImV4cG9zZWQiIHN0YXRlICh3aGV0aGVy
IGl0IGlzIGFuIGFjY2Vzc2liaWxpdHkgZGF0YSB0YWJsZSwgdnMuIGp1c3QgYSBsYXlvdXQgdGFi
bGUpIHVwZGF0ZXMgaW4gcmVzcG9uc2UgdG8gZHluYW1pYyBwYWdlIGNoYW5nZXMuCisKK0luaXRp
YWwgdGFibGUgc3RhdGUgaGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEg
dGFibGUuCisjdGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAor
CitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNlZCBvbiB0aGlzIHRhYmxlJ3MgY29udGVudHMs
IGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0IHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhV
bmtub3duCisjY2VsbE9uZSBBWFJvbGU6IEFYR3JvdXAKKworQWRkaW5nIGEgbG90IG9mIHJvd3Mg
d2hpY2ggc2hvdWxkIGNhdXNlIHRoZSB0YWJsZSB0byBiZWNvbWUgYW4gYWNjZXNzaWJpbGl0eSBk
YXRhIHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhUYWJsZQorI2NlbGxPbmUgQVhSb2xlOiBBWENl
bGwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBk
YXRlcy1keW5hbWljYWxseS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS90YWJsZS1l
eHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi5lOTk3ZmMzYzIxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2FsbHkuaHRt
bApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0
eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzx0YWJsZSBpZD0idGFi
bGUiIGFyaWEtcm93Y291bnQ9IjEiPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGlkPSJjZWxsT25l
Ij54PC90ZD4KKyAgICAgICAgPHRkPng8L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorCis8c2Ny
aXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gYFRoaXMgdGVzdCBlbnN1cmVzIGEgdGFibGUncyAi
ZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRhIHRhYmxl
LCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBkeW5hbWlj
IHBhZ2UgY2hhbmdlcy5cblxuYDsKKworICAgIGZ1bmN0aW9uIGNyZWF0ZUNlbGwoKSB7CisgICAg
ICAgIGNvbnN0IGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOworICAgICAgICBj
ZWxsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBjZWxs
IikpOworICAgICAgICByZXR1cm4gY2VsbDsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBjb25zdCB0YWJsZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vz
c2libGVFbGVtZW50QnlJZCgidGFibGUiKTsKKyAgICAgICAgY29uc3QgY2VsbE9uZSA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiY2VsbE9uZSIpOworICAg
ICAgICB0ZXN0T3V0cHV0ICs9ICJJbml0aWFsIHRhYmxlIHN0YXRlIGhhcyBhcmlhLXJvd2NvdW50
LCBzbyBpdCBzaG91bGQgYmUgYSBkYXRhIHRhYmxlLlxuIjsKKyAgICAgICAgdGVzdE91dHB1dCAr
PSBgI3RhYmxlICR7dGFibGUucm9sZX1cbmA7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYCNjZWxs
T25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKworICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcblJlbW92
aW5nIGFyaWEtcm93Y291bnQuIEJhc2VkIG9uIHRoaXMgdGFibGUncyBjb250ZW50cywgaXQgc2hv
dWxkIG5vdyBiZWNvbWUgYSBsYXlvdXQgdGFibGUuXG4iOworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFibGUiKS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiKTsKKyAg
ICAgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IHdh
aXRGb3IoKCkgPT4geworICAgICAgICAgICAgICAgIHJldHVybiAhY2VsbE9uZS5yb2xlLmluY2x1
ZGVzKCJDZWxsIikgJiYgIXRhYmxlLnJvbGUuaW5jbHVkZXMoIlRhYmxlIik7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCN0YWJsZSAke3RhYmxlLnJvbGV9XG5g
OworICAgICAgICAgICAgdGVzdE91dHB1dCArPSBgI2NlbGxPbmUgJHtjZWxsT25lLnJvbGV9XG5g
OworCisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9ICJcbkFkZGluZyBhIGxvdCBvZiByb3dzIHdo
aWNoIHNob3VsZCBjYXVzZSB0aGUgdGFibGUgdG8gYmVjb21lIGFuIGFjY2Vzc2liaWxpdHkgZGF0
YSB0YWJsZS5cbiI7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHsK
KyAgICAgICAgICAgICAgICBjb25zdCByb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFi
bGUiKS5pbnNlcnRSb3coLTEpOworICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVh
dGVDZWxsKCkpOworICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjcmVhdGVDZWxsKCkp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdGFibGUuY2hpbGRyZW5Db3VudCA+PSAyMCAmJgorICAgICAg
ICAgICAgICAgICAgICBjZWxsT25lLnJvbGUuaW5jbHVkZXMoIkNlbGwiKSAmJgorICAgICAgICAg
ICAgICAgICAgICB0YWJsZS5yb2xlLmluY2x1ZGVzKCJUYWJsZSIpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB0ZXN0T3V0cHV0ICs9IGAjdGFibGUgJHt0YWJsZS5yb2xlfVxuYDsKKyAg
ICAgICAgICAgIHRlc3RPdXRwdXQgKz0gYCNjZWxsT25lICR7Y2VsbE9uZS5yb2xlfVxuYDsKKwor
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhYmxlIikuc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworICAgICAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwgMCk7CisgICAgfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIv
YWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBv
c3VyZS11cGRhdGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjNkMmVjMTk0OGQ1NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRh
dGVzLWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3Qg
ZW5zdXJlcyBhIHRhYmxlJ3MgImV4cG9zZWQiIHN0YXRlICh3aGV0aGVyIGl0IGlzIGFuIGFjY2Vz
c2liaWxpdHkgZGF0YSB0YWJsZSwgdnMuIGp1c3QgYSBsYXlvdXQgdGFibGUpIHVwZGF0ZXMgaW4g
cmVzcG9uc2UgdG8gZHluYW1pYyBwYWdlIGNoYW5nZXMuCisKK0luaXRpYWwgdGFibGUgc3RhdGUg
aGFzIGFyaWEtcm93Y291bnQsIHNvIGl0IHNob3VsZCBiZSBhIGRhdGEgdGFibGUuCisjdGFibGUg
QVhSb2xlOiBBWFRhYmxlCisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitSZW1vdmluZyBhcmlh
LXJvd2NvdW50LiBCYXNlZCBvbiB0aGlzIHRhYmxlJ3MgY29udGVudHMsIGl0IHNob3VsZCBub3cg
YmVjb21lIGEgbGF5b3V0IHRhYmxlLgorI3RhYmxlIEFYUm9sZTogQVhVbmtub3duCisjY2VsbE9u
ZSBBWFJvbGU6IEFYU2VjdGlvbgorCitBZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBzaG91bGQg
Y2F1c2UgdGhlIHRhYmxlIHRvIGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFibGUuCisj
dGFibGUgQVhSb2xlOiBBWFRhYmxlCisjY2VsbE9uZSBBWFJvbGU6IEFYQ2VsbAorCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZDgxYTZmOWJjZGMuLmY0ZmY1M2U0
MGY0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIx
MTQsNiArMjExNCw3IEBAIHdlYmtpdC5vcmcvYi8xNDg4MDYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLXNwCiAjIEVuYWJsZSAicGhvbmUg
bnVtYmVyIGxpbmtpZnlpbmciIHRlc3QgZm9yIGlPUwogZmFzdC9kb20vbGlua2lmeS1waG9uZS1u
dW1iZXJzLmh0bWwgWyBQYXNzIF0KIAorYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRh
dGVzLWR5bmFtaWNhbGx5Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvYXJpYS1idXN5LXVw
ZGF0ZXMtYWZ0ZXItZHluYW1pYy1jaGFuZ2UuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9h
cmlhLWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQuaHRtbCBbIFBhc3MgXQogYWNjZXNz
aWJpbGl0eS9hcmlhLXJlYWRvbmx5LXVwZGF0ZXMtYWZ0ZXItZHluYW1pYy1jaGFuZ2UuaHRtbCBb
IFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxp
dHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS90YWJsZS1leHBvc3VyZS11cGRhdGVz
LWR5bmFtaWNhbGx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjYwYzk5MDBhYzA1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L3RhYmxlLWV4cG9zdXJlLXVwZGF0ZXMtZHluYW1pY2Fs
bHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCBlbnN1cmVzIGEgdGFi
bGUncyAiZXhwb3NlZCIgc3RhdGUgKHdoZXRoZXIgaXQgaXMgYW4gYWNjZXNzaWJpbGl0eSBkYXRh
IHRhYmxlLCB2cy4ganVzdCBhIGxheW91dCB0YWJsZSkgdXBkYXRlcyBpbiByZXNwb25zZSB0byBk
eW5hbWljIHBhZ2UgY2hhbmdlcy4KKworSW5pdGlhbCB0YWJsZSBzdGF0ZSBoYXMgYXJpYS1yb3dj
b3VudCwgc28gaXQgc2hvdWxkIGJlIGEgZGF0YSB0YWJsZS4KKyN0YWJsZSBUYWJsZQorI2NlbGxP
bmUgQ2VsbAorCitSZW1vdmluZyBhcmlhLXJvd2NvdW50LiBCYXNlZCBvbiB0aGlzIHRhYmxlJ3Mg
Y29udGVudHMsIGl0IHNob3VsZCBub3cgYmVjb21lIGEgbGF5b3V0IHRhYmxlLgorI3RhYmxlIFVu
a25vd24KKyNjZWxsT25lIFRleHRHcm91cAorCitBZGRpbmcgYSBsb3Qgb2Ygcm93cyB3aGljaCBz
aG91bGQgY2F1c2UgdGhlIHRhYmxlIHRvIGJlY29tZSBhbiBhY2Nlc3NpYmlsaXR5IGRhdGEgdGFi
bGUuCisjdGFibGUgVGFibGUKKyNjZWxsT25lIENlbGwKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMDVjZTVjNmMyNWMzLi45ODg3ODJkMTNlNDAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTksNiArNDU5LDkgQEAg
ZmFzdC9ldmVudHMvbW91c2VvdmVyLWJ1dHRvbi5odG1sIFsgU2tpcCBdCiAjIFRPRE8gQWNjZXB0
IGhlYWRlciBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyCiBodHRwL3Rlc3RzL21pc2MvaW1hZ2Ut
Y2hlY2tzLWZvci1hY2NlcHQuaHRtbCBbIFNraXAgXQogCisjIFRpbWluZyBvdXQgc2luY2UgYWRk
ZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDc1MCAobGlr
ZWx5IHNvbWUgbWlzc2luZyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGltcGxlbWVudGF0aW9uKS4K
K2FjY2Vzc2liaWxpdHkvdGFibGUtZXhwb3N1cmUtdXBkYXRlcy1keW5hbWljYWxseS5odG1sIFsg
U2tpcCBdCisKICMgUHJvYmFibHkgd3Jvbmcgcm9sZSBhZnRlciBhZGRpbmcgY2hpbGRyZW4gdG8g
bGlzdCAoQVhHcm91cCBpbnN0ZWFkIG9mIEFYTGlzdCkuCiBhY2Nlc3NpYmlsaXR5L2xpc3Qtd2l0
aC1keW5hbWljYWxseS1jaGFuZ2luZy1jb250ZW50Lmh0bWwgWyBTa2lwIF0KIGFjY2Vzc2liaWxp
dHkvaWdub3JlZC1hcmlhLXJvbGUtZGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQotLSAKMi4zMi4w
IChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>