<?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>229917</bug_id>
          
          <creation_ts>2021-09-04 16:05:41 -0700</creation_ts>
          <short_desc>Correctly support fragment-only URLs in CSS images</short_desc>
          <delta_ts>2021-11-30 14:05:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229082</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>macpherson</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1790519</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-04 16:05:41 -0700</bug_when>
    <thetext>We need to support https://drafts.csswg.org/css-values/#url-local-url-flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790713</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-06 08:39:46 -0700</bug_when>
    <thetext>This was fixed for SVG in https://trac.webkit.org/changeset/249416/webkit, but not for CSS images, and when I unprefix the `mask` property I need to start using CSSImages for mask references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790714</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-06 08:42:48 -0700</bug_when>
    <thetext>Currently we lose the knowledge of the URL being a fragment only URL here:

Ref&lt;CSSImageValue&gt; CSSImageValue::valueWithStylesResolved(Style::BuilderState&amp; state)
{
    auto location = makeResolvedURL(reresolvedURL(state.document()));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791191</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-07 13:26:05 -0700</bug_when>
    <thetext>Given that CSS has special handling for fragment-only URLs, CSSImageValue::reresolvedURL can be changed to leave such URLs untouched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791192</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-07 13:27:09 -0700</bug_when>
    <thetext>Maybe; unclear to me, actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791201</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-07 13:45:51 -0700</bug_when>
    <thetext>Before we change anything we need to make sure we have tests with fragment-only URLs in style sheets and in CSS variables in style sheets with different base URLs as well as the ones in documents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791219</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-07 14:17:12 -0700</bug_when>
    <thetext>Yeah, I wasn&apos;t sure how to test this without doing the mask work first. cssText() already only returns the fragment part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791227</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-07 14:40:14 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #6)
&gt; cssText() already only returns the fragment part.

Even when called on a value that comes from the computed style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791654</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-08 15:47:59 -0700</bug_when>
    <thetext>*** Bug 154551 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791738</commentid>
    <comment_count>9</comment_count>
      <attachid>437699</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-08 19:59:37 -0700</bug_when>
    <thetext>Created attachment 437699
Test

Actually it does seem testable. Attached testcase suggests we do the wrong thing with empty urls and fragment-only urls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792466</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-10 11:47:19 -0700</bug_when>
    <thetext>Adding some WPT via https://github.com/web-platform-tests/wpt/pull/30552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792740</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-11 16:06:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/83016456&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814894</commentid>
    <comment_count>12</comment_count>
      <attachid>444186</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-14 12:25:17 -0800</bug_when>
    <thetext>Created attachment 444186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814932</commentid>
    <comment_count>13</comment_count>
      <attachid>444204</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-14 18:30:26 -0800</bug_when>
    <thetext>Created attachment 444204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815086</commentid>
    <comment_count>14</comment_count>
      <attachid>444204</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-15 09:04:46 -0800</bug_when>
    <thetext>Comment on attachment 444204
Patch

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

Thanks for taking this on! We really want to fix this. I don’t think this patch is quite right yet.

review- because the use of String::find here is incorrect.

&gt; Source/WebCore/css/CSSImageValue.cpp:92
&gt; +    if (!m_location.resolvedURL.string().find(&apos;#&apos;) || m_location.resolvedURL.string().isEmpty())
&gt; +        return m_location.resolvedURL;

Calling find is an inefficient way to to this check. One efficient way to check if something starts with a &apos;#&apos; is to call the startsWith function passing the character &apos;#&apos;. But given that the URL class already parsed the URL there is an even more efficient way to check using URL class functions. However, this call site has a URL but the other call site just has a String.

Also, we don’t want to write this special case explicitly in two different places. We probably want to make a named function to do the check.

In addition, we should encapsulate this as a smarter version of completeURL, I think.

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:3620
&gt; +            // Image URLs that start with an explicit #, or are empty should be preserved, otherwise
&gt; +            // resolve the complete URL.
&gt; +            if (!string.find(&apos;#&apos;) || string.isEmpty()) {
&gt; +                return CSSImageValue::create(URL(URL(), string.toAtomString().string()),
&gt; +                    context.isContentOpaque ? LoadedFromOpaqueSource::Yes : LoadedFromOpaqueSource::No);
&gt; +            } else {
&gt; +                return CSSImageValue::create(context.completeURL(string.toAtomString().string()),
&gt; +                    context.isContentOpaque ? LoadedFromOpaqueSource::Yes : LoadedFromOpaqueSource::No);
&gt; +            }

Is this only for image URLs? What about other CSS URLs? I think this logic should probably go in the CSSParserContext::completeURL function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815285</commentid>
    <comment_count>15</comment_count>
      <attachid>444204</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-15 17:05:42 -0800</bug_when>
    <thetext>Comment on attachment 444204
Patch

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

&gt;&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:3620
&gt;&gt; +            }
&gt; 
&gt; Is this only for image URLs? What about other CSS URLs? I think this logic should probably go in the CSSParserContext::completeURL function.

It looks like we already have two (slightly different) implementations of completeURL, in CSSParserContext and Document.

One option would be to add a new method to wtf::URL (static construction helper) which handles this specific logic, and use that from both completeURL imps, though I&apos;m unsure if WTF is an appropriate place for css-values-specific logic.

Having a separate helper method that we call from both completeURL impls would also work, though I&apos;m not sure where the best spot for that to live is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815297</commentid>
    <comment_count>16</comment_count>
      <attachid>444322</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-15 17:44:03 -0800</bug_when>
    <thetext>Created attachment 444322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815299</commentid>
    <comment_count>17</comment_count>
      <attachid>444322</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-15 17:47:13 -0800</bug_when>
    <thetext>Comment on attachment 444322
Patch

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

&gt; Source/WebCore/dom/Document.cpp:5606
&gt; +    // https://www.w3.org/TR/css-values-4/#local-urls
&gt; +    // Empty URLs and fragment-only URLs should not be resolved relative to the base
&gt; +    // URL.
&gt; +    if (url.isEmpty() || url.startsWith(&apos;#&apos;))
&gt; +        return URL(URL(), url);

I think you are correct to say that it may be incorrect to have this here. We’ll need to see which regression tests fail.

Instead we may want to change CSSImageValue to use another function specific to CSS that adds this behavior and then calls through to Document::completeURL. I might put it in CSSParserContext as a static member function that takes a document, or somewhere else that CSSImageValue can find it. I think there are possibly other call sites like CSSCursorImageValue that may need the same code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815306</commentid>
    <comment_count>18</comment_count>
      <attachid>444322</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-15 18:25:52 -0800</bug_when>
    <thetext>Comment on attachment 444322
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:5606
&gt;&gt; +        return URL(URL(), url);
&gt; 
&gt; I think you are correct to say that it may be incorrect to have this here. We’ll need to see which regression tests fail.
&gt; 
&gt; Instead we may want to change CSSImageValue to use another function specific to CSS that adds this behavior and then calls through to Document::completeURL. I might put it in CSSParserContext as a static member function that takes a document, or somewhere else that CSSImageValue can find it. I think there are possibly other call sites like CSSCursorImageValue that may need the same code.

I&apos;m not sure about CSSCursorImageValue, it looks like that&apos;s checking the &apos;href&apos; attribute of an SVG cursor element and likely isn&apos;t covered by the css values spec.

How about a static &apos;should this string be kept as-is without resolving relative to the base url&apos; static helper to CSSValue, and then have both the parser and CSSImageValue check that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815568</commentid>
    <comment_count>19</comment_count>
      <attachid>444322</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 10:58:27 -0800</bug_when>
    <thetext>Comment on attachment 444322
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/Document.cpp:5606
&gt;&gt;&gt; +        return URL(URL(), url);
&gt;&gt; 
&gt;&gt; I think you are correct to say that it may be incorrect to have this here. We’ll need to see which regression tests fail.
&gt;&gt; 
&gt;&gt; Instead we may want to change CSSImageValue to use another function specific to CSS that adds this behavior and then calls through to Document::completeURL. I might put it in CSSParserContext as a static member function that takes a document, or somewhere else that CSSImageValue can find it. I think there are possibly other call sites like CSSCursorImageValue that may need the same code.
&gt; 
&gt; I&apos;m not sure about CSSCursorImageValue, it looks like that&apos;s checking the &apos;href&apos; attribute of an SVG cursor element and likely isn&apos;t covered by the css values spec.
&gt; 
&gt; How about a static &apos;should this string be kept as-is without resolving relative to the base url&apos; static helper to CSSValue, and then have both the parser and CSSImageValue check that?

CSSCursorImageValue has URLs that come from the CSS &quot;cursor&quot; property. Syntax like: &quot;cursor: url(hand.cur), pointer&quot; that is parsed by the consumeCursor function in CSSPropertyParser.cpp. It’s simply got less test coverage than CSSImageValue, but it has many of the same issues.

It’s fine to put a static helper somewhere; it’s just much better to have this packaged as part of a URL completion algorithm rather than a check outside. Having a separate check will result in repetitive code outside the function. So maybe we should just add new completeImageURL or completeCSSImageURL functions that wrap the existing completeURL functions.

And yes, still nice to share the check for which URLs should not be resolved relative to the base for this case, and name based on the specification. Like a function named isCSSLocalURL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815632</commentid>
    <comment_count>20</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-16 14:00:47 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #19)
 
&gt; CSSCursorImageValue has URLs that come from the CSS &quot;cursor&quot; property.
&gt; Syntax like: &quot;cursor: url(hand.cur), pointer&quot; that is parsed by the
&gt; consumeCursor function in CSSPropertyParser.cpp. It’s simply got less test
&gt; coverage than CSSImageValue, but it has many of the same issues.

My understanding is that CSSCursorImageValue just wraps a CSSImageValue in that case (via m_imageValue), so fixing the completeURL lookups within CSSImageValue should be sufficient.

The call to document.completeURL from within CSSCursorImageValue looks to be specific to the case where the cursor property references an element within SVG, and we&apos;re looking up the href attribute from that.

&gt; 
&gt; It’s fine to put a static helper somewhere; it’s just much better to have
&gt; this packaged as part of a URL completion algorithm rather than a check
&gt; outside. Having a separate check will result in repetitive code outside the
&gt; function. So maybe we should just add new completeImageURL or
&gt; completeCSSImageURL functions that wrap the existing completeURL functions.
&gt; 
&gt; And yes, still nice to share the check for which URLs should not be resolved
&gt; relative to the base for this case, and name based on the specification.
&gt; Like a function named isCSSLocalURL.

The part I&apos;m struggling with is that CSSImageValue wants to use the algorithm in Document, whereas the consumers in the parser want to use the CSSParserContext algorithm. These differ a fair bit in their resolution of the base url, and character encoding.

A single completeCSSImageURL function would need to take either a CSSParserContext or Document, and pick which completeURL function to call based on which was provided at runtime (or I could template it, since the args as the same).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815687</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 15:31:45 -0800</bug_when>
    <thetext>(In reply to Matt Woodrow from comment #20)
&gt; My understanding is that CSSCursorImageValue just wraps a CSSImageValue in
&gt; that case (via m_imageValue), so fixing the completeURL lookups within
&gt; CSSImageValue should be sufficient.

Good point. That seems right!

Do we have test coverage for that case in WPT, or is it just code inspection that gives us the confidence that we handle the cursor image case correctly?

&gt; The call to document.completeURL from within CSSCursorImageValue looks to be
&gt; specific to the case where the cursor property references an element within
&gt; SVG, and we&apos;re looking up the href attribute from that.

Agreed, yes.

&gt; &gt; It’s fine to put a static helper somewhere; it’s just much better to have
&gt; &gt; this packaged as part of a URL completion algorithm rather than a check
&gt; &gt; outside. Having a separate check will result in repetitive code outside the
&gt; &gt; function. So maybe we should just add new completeImageURL or
&gt; &gt; completeCSSImageURL functions that wrap the existing completeURL functions.
&gt; &gt; 
&gt; &gt; And yes, still nice to share the check for which URLs should not be resolved
&gt; &gt; relative to the base for this case, and name based on the specification.
&gt; &gt; Like a function named isCSSLocalURL.
&gt; 
&gt; The part I&apos;m struggling with is that CSSImageValue wants to use the
&gt; algorithm in Document, whereas the consumers in the parser want to use the
&gt; CSSParserContext algorithm. These differ a fair bit in their resolution of
&gt; the base url, and character encoding.

Well, you should be aware that the one in CSSImageValue is something kind of new, and only used rarely in cases where no base URL is around at the time the CSS value was parsed. I would be surprised if any real world test case relies on these subtle differences between the two, it&apos;s just that it needs to happen at a time where we don&apos;t have a CSS parsing context. I think we&apos;d probably want it to use the CSS completion algorithm, not the general purpose document one. For now, I would do that by making a cover that takes a document.

&gt; A single completeCSSImageURL function would need to take either a
&gt; CSSParserContext or Document, and pick which completeURL function to call
&gt; based on which was provided at runtime (or I could template it, since the
&gt; args as the same).

Two separate functions would be fine.

I would likely come look at this later and refactor to try to make this have less repeated code, so what matters most is the test coverage, even more than exactly how we right the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815745</commentid>
    <comment_count>22</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-16 17:43:23 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #21)
 
&gt; Do we have test coverage for that case in WPT, or is it just code inspection
&gt; that gives us the confidence that we handle the cursor image case correctly?

The changes to invalid-cursor-property-crash.html test the empty URL piece for `cursor`, I don&apos;t think there&apos;s any current coverage for the fragment-only piece.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815746</commentid>
    <comment_count>23</comment_count>
      <attachid>444457</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-16 17:45:45 -0800</bug_when>
    <thetext>Created attachment 444457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815747</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 17:46:20 -0800</bug_when>
    <thetext>(In reply to Matt Woodrow from comment #22)
&gt; (In reply to Darin Adler from comment #21)
&gt; &gt; Do we have test coverage for that case in WPT, or is it just code inspection
&gt; &gt; that gives us the confidence that we handle the cursor image case correctly?
&gt; 
&gt; The changes to invalid-cursor-property-crash.html test the empty URL piece
&gt; for `cursor`, I don&apos;t think there&apos;s any current coverage for the
&gt; fragment-only piece.

Let’s add that. Doesn’t have to be in this patch, but let’s follow through and do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815761</commentid>
    <comment_count>25</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-16 18:05:47 -0800</bug_when>
    <thetext>Created https://github.com/web-platform-tests/wpt/pull/31655 for the additional testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815769</commentid>
    <comment_count>26</comment_count>
      <attachid>444457</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 18:20:22 -0800</bug_when>
    <thetext>Comment on attachment 444457
Patch

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

&gt; Source/WebCore/css/CSSImageValue.cpp:87
&gt; +    if (CSSValue::isCSSLocalURL(m_location.resolvedURL.string()))

This can just be:

   if (isCSSLocalURL(...

Since CSSImageValue derives from CSSValue.

&gt; Source/WebCore/css/CSSImageValue.cpp:88
&gt; +        return URL(URL(), m_location.resolvedURL.string());

This can just be:

    return m_location.resolvedURL;

No need to re-create the URL from a string.

&gt; Source/WebCore/css/CSSValue.h:157
&gt; +    // Empty URLs and fragment-only URLs should not be resolved relative to the base
&gt; +    // URL.

Let’s not break the word URL onto a separate line.

&gt; Source/WebCore/css/CSSValue.h:158
&gt; +    static bool isCSSLocalURL(const String&amp; url)

I might name this argument &quot;relativeURL&quot;. I suggest this take a StringView, not a const String&amp;.

If it was me, I would also move this function body out of the class definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815775</commentid>
    <comment_count>27</comment_count>
      <attachid>444457</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-16 18:26:43 -0800</bug_when>
    <thetext>Comment on attachment 444457
Patch

This is OK, as is, but I have a few suggestions for further improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816248</commentid>
    <comment_count>28</comment_count>
      <attachid>444620</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-17 18:01:09 -0800</bug_when>
    <thetext>Created attachment 444620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816258</commentid>
    <comment_count>29</comment_count>
      <attachid>444620</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-17 18:16:26 -0800</bug_when>
    <thetext>Comment on attachment 444620
Patch

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

&gt; Source/WebCore/css/parser/CSSParserContext.cpp:257
&gt; +        if (CSSValue::isCSSLocalURL(string))
&gt; +            return { string, { URL(), string } };
&gt; +
&gt;          if (charset.isEmpty())
&gt;              return { string, { baseURL, string } };
&gt;          auto encodingForURLParsing = TextEncoding { charset }.encodingForFormSubmissionOrURLParsing();

I think this might do the wrong thing when the fragment URLs contain non-ASCII characters since we are not taking the charset into account. We should make sure we have test cases for that.

I am not insisting that we add such test cases *before* landing this patch, but I strongly suspect we don’t have tests where the charset would make a difference, and we need to add them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816513</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-18 10:52:51 -0800</bug_when>
    <thetext>Let’s rebase this and get it landed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816565</commentid>
    <comment_count>31</comment_count>
      <attachid>444717</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-18 12:32:40 -0800</bug_when>
    <thetext>Created attachment 444717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816721</commentid>
    <comment_count>32</comment_count>
      <attachid>444768</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2021-11-18 18:37:17 -0800</bug_when>
    <thetext>Created attachment 444768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816858</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-19 07:37:11 -0800</bug_when>
    <thetext>Committed r286061 (244448@main): &lt;https://commits.webkit.org/244448@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444768.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818934</commentid>
    <comment_count>34</comment_count>
      <attachid>444768</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-30 14:05:34 -0800</bug_when>
    <thetext>Comment on attachment 444768
Patch

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

&gt; Source/WebCore/css/parser/CSSParserContext.cpp:253
&gt; +        if (CSSValue::isCSSLocalURL(string))
&gt; +            return { string, { URL(), string } };

I suspect think this is going to handle non-ASCII characters incorrectly when charset is not UTF-8. Can we make some test cases to check that in other browsers?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>437699</attachid>
            <date>2021-09-08 19:59:37 -0700</date>
            <delta_ts>2021-09-08 19:59:37 -0700</delta_ts>
            <desc>Test</desc>
            <filename>fragment-only-urls.html</filename>
            <type>text/html</type>
            <size>661</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzdHlsZT4KICAgICAgICAuYm94IHsK
ICAgICAgICAgICAgd2lkdGg6IDEwcHg7CiAgICAgICAgICAgIGhlaWdodDogMTBweDsKICAgICAg
ICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCksIHVybCgjZm9vKSwgdXJsKHRlc3QuaHRtbCNm
b28pOwogICAgICAgIH0KICAgICAgICAKICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0PgogICAgICAg
IGZ1bmN0aW9uIHNob3dPdXRwdXQocykKICAgICAgICB7CiAgICAgICAgICAgIGxldCBvdXRwdXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykKICAgICAgICAgICAgb3V0cHV0Lmlu
bmVyVGV4dCArPSBzICsgJ1xuJzsKICAgICAgICB9CiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCAoKSA9PiB7CiAgICAgICAgICAgIGxldCBib3ggPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcuYm94Jyk7CiAgICAgICAgICAgIHNob3dPdXRwdXQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoYm94KS5iYWNrZ3JvdW5kSW1hZ2UpOwogICAgICAgIH0sIGZhbHNlKTsKICAgIDwv
c2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgogICAgPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KPHByZSBp
ZD0ib3V0cHV0Ij48L3ByZT4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444186</attachid>
            <date>2021-11-14 12:25:17 -0800</date>
            <delta_ts>2021-11-14 18:30:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211115092516.patch</filename>
            <type>text/plain</type>
            <size>17899</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1MTEyZTI0OGQyNDdj
NDVhMzE4YWE5OWQ5MDkwOTliOWZmMGYwNi4uMWRjMDYwMWVmOWNiZDg4NjhlZGRmYmQyNTZkNDVm
NWVjMDU3MDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTExLTExICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpjb25zdW1lSW1hZ2UpOgorCiAyMDIxLTExLTA4ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3Jp
ZmZpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBub25jZS1oaWRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA2ZTJlYTBiOGUzM2FjOTM5MmM2MjQ1MTc4
ZmNmZmIyZGQ3Y2ZkZDcyLi40ZmZkOGRkMDhmZWFiYjI1MTc5ODQ5YjExOGMzYzY1ZWZlNGZhMmNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC04Niw2ICs4NiwxMCBAQCBV
UkwgQ1NTSW1hZ2VWYWx1ZTo6cmVyZXNvbHZlZFVSTChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQp
IGNvbnN0CiB7CiAgICAgLy8gUmUtcmVzb2x2aW5nIHRoZSBVUkwgaXMgaW1wb3J0YW50IGZvciBj
YXNlcyB3aGVyZSByZXNvbHZlZFVSTCBpcyBzdGlsbCBub3QgYW4gYWJzb2x1dGUgVVJMLgogICAg
IC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGVyZSB3YXMgbm8gYWJzb2x1dGUgYmFzZSBVUkwgd2hl
biB0aGUgdmFsdWUgd2FzIGNyZWF0ZWQsIGxpa2UgYSBzdHlsZSBmcm9tIGEgZG9jdW1lbnQgd2l0
aG91dCBhIGJhc2UgVVJMLgorICAgIC8vIEltYWdlIFVSTHMgdGhhdCBzdGFydCB3aXRoIGFuIGV4
cGxpY2l0ICMsIG9yIGFyZSBlbXB0eSBzaG91bGQgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UKKyAg
ICAvLyByZXNvbHZlIHRoZSBjb21wbGV0ZSBVUkwuCisgICAgaWYgKCFtX2xvY2F0aW9uLnJlc29s
dmVkVVJMLnN0cmluZygpLmZpbmQoJyMnKSB8fCBtX2xvY2F0aW9uLnJlc29sdmVkVVJMLnN0cmlu
ZygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fbG9jYXRpb24ucmVzb2x2ZWRVUkw7CiAg
ICAgcmV0dXJuIGRvY3VtZW50LmNvbXBsZXRlVVJMKG1fbG9jYXRpb24ucmVzb2x2ZWRVUkwuc3Ry
aW5nKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggNDkxZWM1Y2RmZDRkNDdkNDNlNzlhZWZjZjE0
MGI2ZGNkZjdkY2VmZC4uN2Q0ZjA4ZjhlMWEzZjhlZDFhODUyYTdkMmU4OWUxMDAyOWExNmFhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmNwcApAQCAtMzYwOSw4ICszNjA5LDE1IEBAIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUltYWdlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0CiAKICAgICBpZiAoYWxsb3dlZEltYWdlVHlwZXMuY29udGFpbnMoQWxsb3dlZEltYWdlVHlw
ZTo6VVJMRnVuY3Rpb24pKSB7CiAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVVcmxB
c1N0cmluZ1ZpZXcocmFuZ2UpOyAhc3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICByZXR1
cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwoc3RyaW5nLnRvQXRv
bVN0cmluZygpLnN0cmluZygpKSwKLSAgICAgICAgICAgICAgICBjb250ZXh0LmlzQ29udGVudE9w
YXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKTsKKyAgICAgICAgICAgIC8vIEltYWdlIFVSTHMgdGhhdCBzdGFydCB3aXRoIGFuIGV4
cGxpY2l0ICMsIG9yIGFyZSBlbXB0eSBzaG91bGQgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UKKyAg
ICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGNvbXBsZXRlIFVSTC4KKyAgICAgICAgICAgIGlmICgh
c3RyaW5nLmZpbmQoJyMnKSB8fCBzdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShVUkwoVVJMKCksIHN0cmluZy50b0F0b21TdHJp
bmcoKS5zdHJpbmcoKSksCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuaXNDb250ZW50T3Bh
cXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6Tm8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
SW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwoc3RyaW5nLnRvQXRvbVN0cmlu
ZygpLnN0cmluZygpKSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pc0NvbnRlbnRPcGFx
dWUgPyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNl
OjpObyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGQ1OGNmM2Q5NTdjMTgzMGE0MTgxNTY3MjM5OWY4MmZkYjEzMTY5
Y2UuLjAxMmI2MDNlMmZhOTk0NmNlZWUzODljMGYwMGIzNTI3MTI2NmE3OWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTExICBNYXR0IFdv
b2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIEltcG9ydCBjc3MvY3Nz
LXZhbHVlcy91cmxzIHdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAgICBEb24ndCBtb2RpZnkgZnJh
Z21lbnQtb25seSBvciBlbXB0eSBpbWFnZSBVUkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgaGFuZGxpbmcgb2YgZW1wdHkgYW5kIGZyYWdt
ZW50IHVybCgpcyBmb3IgaW1hZ2VzIHRvIG5vdCBjb252ZXJ0IHRvIGEgZnVsbHkgcmVzb2x2ZWQK
KyAgICAgICAgcGF0aCwgYW5kIGluc3RlYWQgcHJlc2VydmUgdGhlbSBhcy1pcywgdG8gbWF0Y2gg
Y3NzLXZhbHVlczQgcmVxdWlyZW1lbnRzLgorCisgICAgICAgIEltcG9ydCBuZXcgdGVzdHMgaW4g
Y3NzL2Nzcy12YWx1ZXMvdXJscyBmcm9tIDVlMzE4Nzg1NmEzMTFmNTgzMTI0NzM1Y2FkNWEwM2Jh
YTYxOTUxYjMgYW5kCisgICAgICAgIGFkZCBleHBlY3RhdGlvbnMgZm9yIHRoZSBuZXcgdGVzdHMu
CisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9l
bXB0eS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29s
dmUtcmVsYXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNv
bHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5LXVy
bHMuY3NzOiBBZGRlZC4KKyAgICAgICAgKDpyb290KToKKyAgICAgICAgKCNleHRlcm5hbC11bnF1
b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtcXVvdGVkKToKKyAgICAgICAgKCNleHRlcm5hbC12
YXJpYWJsZSk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzczogQWRkZWQuCisgICAgICAgICg6cm9vdCk6Cisg
ICAgICAgICgjc3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSk6CisgICAgICAgICgjc3R5bGVzaGVl
dC1yZWxhdGl2ZS12YXJpYWJsZS1pbWFnZSk6CisgICAgICAgICgjc3R5bGVzaGVldC1yZWxhdGl2
ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZzoKKwog
MjAyMS0xMS0wOCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgbm9uY2UtaGlkaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDlk
ODU5ZWYxYjQzYzdmM2NkZmRlMTk5NjllMDBjMDhkMzdmYzlkZTMuLmIxMzljMThkZDFjNzVlYWY2
Y2M2M2I4NDE0MzM3NTZhYTA5MjU0MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC0xNDMs
NiArMTQzLDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3JtcyI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMi
OiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpIjogImltcG9y
dCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscyI6ICJpbXBv
cnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFyaWFibGVzIjogImltcG9y
dCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBv
cnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2RlcyI6ICJp
bXBvcnQiLCAKQEAgLTMyMSw3ICszMjIsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1z
ZXRSYW5nZVRleHQuaHRtbCI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtdGV4dGFyZWEtZWxlbWVudCI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3Ro
ZS1kaWFsb2ctZWxlbWVudC8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtc3VtbWFyeS1lbGVtZW50Ijog
InNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3Rp
dmUtZWxlbWVudHMvdGhlLXN1bW1hcnktZWxlbWVudCI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9kb3dubG9hZGluZy1yZXNvdXJjZXMiOiAi
aW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9m
b2xsb3dpbmctaHlwZXJsaW5rcyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9saW5rcy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMi
OiAic2tpcCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHku
aHRtbAppbmRleCAzYWI3MDc5Mzk2YzUxN2Q3YWJkNjMzNGIwY2ZhZGY3ZWRhNDcxMTE1Li4zMDgy
YTUxYzQyMDUzYTY0OTg5YTQ5YzhlY2IzZDA4ODE5ZmVjYjg5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
ZW1wdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbApAQCAtMjYsMTUgKzI2LDExIEBAIGNv
bnN0IGlkcyA9IFsKICAgImV4dGVybmFsLXF1b3RlZCIKIF07CiAKLWNvbnN0IGlubGluZV91cmwg
PSBsb2NhdGlvbi5ocmVmOwotY29uc3QgZXh0ZXJuYWxfdXJsID0gbmV3IFVSTChkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmhyZWYsIGxvY2F0aW9uLmhyZWYp
LmhyZWY7Ci0KIGZvciAobGV0IGlkIG9mIGlkcykgewogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAg
ICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICAgICAgICBj
b25zdCBleHBlY3RlZCA9IGlkLnN0YXJ0c1dpdGgoImlubGluZS0iKSA/IGlubGluZV91cmwgOiBl
eHRlcm5hbF91cmw7CiAgICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZWwpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlWyJiYWNrZ3JvdW5kLWltYWdlIl0s
ICd1cmwoIicgKyBleHBlY3RlZCArICciKScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxl
WyJiYWNrZ3JvdW5kLWltYWdlIl0sICd1cmwoIiIpJyk7CiAgICAgfSwgImVtcHR5IFVSTDogIiAr
IGlkKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzOTM4ZTZjMWI2Y2U2OGZjNjA4NThkM2M0ODI5NTZlNmIxMDIwMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisK
K1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtdW5xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUt
cXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwtdW5xdW90ZWQKK1BBU1MgZW1wdHkgVVJM
OiBleHRlcm5hbC1xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBleHRlcm5hbC12YXJpYWJsZQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOTdmZWVmN2Q0MzljNTQ2ZjdmNDc2YjY3NGIwZmIyNTJmYjU4
YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHkuaHRtbApAQCAtMCww
ICsxLDM3IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5GcmFnbWVudC1vbiBVUkxzIGJlaGF2
aW91cjwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtdmFsdWVzLyNsb2NhbC11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+Cis8c3R5bGU+CisjaW5saW5lLXVucXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoI2Zvbyk7Cit9CisKKyNpbmxpbmUtcXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoIiNmb28iKTsKK30KKzwvc3R5bGU+Cis8bGluayByZWw9c3R5bGVzaGVl
dCBocmVmPXN1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcz4KKzxkaXYgaWQ9ImlubGluZS11
bnF1b3RlZCI+PC9kaXY+Cis8ZGl2IGlkPSJpbmxpbmUtcXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9
ImV4dGVybmFsLXVucXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9ImV4dGVybmFsLXF1b3RlZCI+PC9k
aXY+Cis8ZGl2IGlkPSJleHRlcm5hbC12YXJpYWJsZSI+PC9kaXY+Cis8c2NyaXB0PgorY29uc3Qg
aWRzID0gWworICAiaW5saW5lLXVucXVvdGVkIiwKKyAgImlubGluZS1xdW90ZWQiLAorICAiZXh0
ZXJuYWwtdW5xdW90ZWQiLAorICAiZXh0ZXJuYWwtcXVvdGVkIiwKKyAgImV4dGVybmFsLXZhcmlh
YmxlIiwKK107CisKK2ZvciAobGV0IGlkIG9mIGlkcykgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7
CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAg
ICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAndXJsKCIjZm9vIiknKTsKKyAg
ICB9LCAiZW1wdHkgVVJMOiAiICsgaWQpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZl
LXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlZmE2NWZmODI3ZmFm
MmUzZTA1ZWIwZmQ4MjI2YmIxOWMyODc5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVz
b2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJ
TCBiYXNlLXJlbGF0aXZlIFVSTDogcmVsYXRpdmUtaW1hZ2UtdXJsIFR5cGUgZXJyb3IKK0ZBSUwg
YmFzZS1yZWxhdGl2ZSBVUkw6IHJlbGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCBUeXBlIGVycm9y
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmJlMTI3YWIy
YmQ4NGQ4YTU5NjVmYTQyYmJlNzA0ZjdiZDBiNmI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxz
L3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPHRpdGxlPlVSTHMgaW4gZW1iZWRkZWQgc3R5bGUgc2hlZXRzIHJlc29sdmUgcmVs
YXRpdmUgdG8gdGhlIGRvY3VtZW50IGJhc2UgVVJJPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhy
ZWY9aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMvI3JlbGF0aXZlLXVybHM+Cis8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxiYXNlIGhyZWY9
Imh0dHA6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ij4KKzxzdHlsZT4KKzpyb290IHsKKyAgICAtLWlt
YWdlLXBhdGg6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7Cit9CisjcmVsYXRpdmUtaW1hZ2UtdXJs
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3Rlc3QucG5nKTsKK30KKworI3Jl
bGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0t
aW1hZ2UtcGF0aCk7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0icmVsYXRpdmUtaW1hZ2UtdXJsIj48
L2Rpdj4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCI+PC9kaXY+Cis8c2Ny
aXB0PgorY29uc3QgaWRzID0gWworICAicmVsYXRpdmUtaW1hZ2UtdXJsIiwKKyAgInJlbGF0aXZl
LWltYWdlLXZhcmlhYmxlLXVybCIKK107CisKK2ZvciAobGV0IGlkIG9mIGlkcykgeworICAgIHRl
c3QoKCkgPT4geworICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgICAgICAgY29uc3QgYmFja2dyb3VuZEltYWdlU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShlbClbImJhY2tncm91bmQtaW1hZ2UiXTsKKyAgICAgICAgY29uc3QgYmFzZVJlbGF0
aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBkb2N1bWVudC5iYXNlVVJJ
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhiYWNrZ3JvdW5kSW1hZ2VTdHlsZSwgYHVybCgiJHti
YXNlUmVsYXRpdmVJbWFnZVVSTC5ocmVmfSIpYCk7CisgICAgfSwgImJhc2UtcmVsYXRpdmUgVVJM
OiAiICsgaWQpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxh
dGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZl
LXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOTE0Njc1NzIxZDFhNTJj
YTMzZDM2Zjg2OGE0MDMxNTEyM2ViZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2
ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKwor
UEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZQor
UEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1yZWxhdGl2ZS12YXJpYWJs
ZS1pbWFnZQorUEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1yZWxhdGl2
ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1y
ZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1z
dHlsZXNoZWV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ3NWQ5NzA1MjcyYmYwMGFkMjM2MjZhOWY1YTNh
ODVkZjI1OGFiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRv
LXN0eWxlc2hlZXQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRs
ZT5VUkxzIGluIGEgc3R5bGVzaGVldCByZXNvbHZlIHJlbGF0aXZlIHRvIHRoZSBzdHlsZXNoZWV0
PC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy12YWx1ZXMvI3JlbGF0aXZlLXVybHM+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcz48L3NjcmlwdD4KKzxsaW5rIGlkPSJzdHlsZXNoZWV0IiByZWw9c3R5bGVzaGVldCBocmVm
PXN1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3M+Cis8ZGl2IGlkPSJzdHlsZXNoZWV0LXJlbGF0aXZl
LWltYWdlIj48L2Rpdj4KKzxkaXYgaWQ9InN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1h
Z2UiPjwvZGl2PgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1kb2N1bWVudC12YXJpYWJs
ZS1pbWFnZSI+PC9kaXY+Cis8c3R5bGU+CisgICAgOnJvb3QgeworICAgICAgICAtLWltYWdlLXBh
dGgtZG9jdW1lbnQ6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7CisgICAgfQorPC9zdHlsZT4KKzxz
Y3JpcHQ+Citjb25zdCBpZHMgPSBbCisgICJzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlIiwKKyAg
InN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UiLAorICAic3R5bGVzaGVldC1yZWxh
dGl2ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSIsCitdOworCitmb3IgKGxldCBpZCBvZiBpZHMp
IHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZVN0eWxlID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWwpWyJiYWNrZ3JvdW5kLWltYWdlIl07CisKKyAgICAgICAgY29u
c3Qgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNoZWV0Iik7Cisg
ICAgICAgIGNvbnN0IHNoZWV0UmVsYXRpdmVJbWFnZVVSTCA9IG5ldyBVUkwoImltYWdlcy90ZXN0
LnBuZyIsIHN0eWxlc2hlZXQuaHJlZik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhiYWNrZ3Jv
dW5kSW1hZ2VTdHlsZSwgYHVybCgiJHtzaGVldFJlbGF0aXZlSW1hZ2VVUkwuaHJlZn0iKWApOwor
ICAgIH0sICJzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogIiArIGlkKTsKK30KKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJs
cy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBiZDlkYWI5OWFj
NGZlMTNlOTBmMTE4YTIyZmIwYzk3NjdkYTg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9z
dXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKQEAgLTAsMCArMSwxNSBAQAorOnJvb3Qgewor
ICAgIC0tZnJhZ21lbnQtaW1hZ2UtdXJsOiB1cmwoIiNmb28iKTsKK30KKworI2V4dGVybmFsLXVu
cXVvdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI2Zvbyk7Cit9CisKKyNleHRlcm5h
bC1xdW90ZWQgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiI2ZvbyIpOworfQorCisjZXh0
ZXJuYWwtdmFyaWFibGUgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWZyYWdtZW50LWlt
YWdlLXVybCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNz
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzNTRjNjU1
ZTk4OThjZmY4NDVmZjc4ZGY3MTdjY2E3YzczZjAzMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpAQCAtMCwwICsxLDE1IEBACis6cm9vdCB7Cisg
ICAgLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQ6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7Cit9CisK
KyNzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo
aW1hZ2VzL3Rlc3QucG5nKTsKK30KKworI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1h
Z2UgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgtc3R5bGVzaGVldCk7
Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdlIHsKKyAg
ICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZS1wYXRoLWRvY3VtZW50KTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvdzNj
LWltcG9ydC5sb2cKaW5kZXggYTk5M2Y4ZmViMDMxYmNmNzVmMThhYjA5NTVjNjIzYjMxMTE1ZWIy
YS4uOGI0NGY1Y2QxZjlhNjQ3NTE1N2JiZWM4NDc2MDE4YjU1ZWQyZTQ4ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVl
cy91cmxzL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvdzNjLWlt
cG9ydC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQv
ZnJhZ21lbnQtb25seS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3Nz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5s
b2cKaW5kZXggM2MxYTQ1NGMwYTZiZWFjNWI2NDU5YjI0NThkMDFiMjMyM2M2NDY5OC4uMmFkMjYy
YjUzYzI4ZTNhZDZhNGEzMDIyNGVkMWQyNjBhZWQxNTQ1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3cz
Yy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZwpAQCAtMTUsMyArMTUsNiBA
QCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUt
dG8tYmFzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1s
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444204</attachid>
            <date>2021-11-14 18:30:26 -0800</date>
            <delta_ts>2021-11-15 17:43:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211115153024.patch</filename>
            <type>text/plain</type>
            <size>18646</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1MTEyZTI0OGQyNDdj
NDVhMzE4YWE5OWQ5MDkwOTliOWZmMGYwNi4uMWRjMDYwMWVmOWNiZDg4NjhlZGRmYmQyNTZkNDVm
NWVjMDU3MDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTExLTExICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpjb25zdW1lSW1hZ2UpOgorCiAyMDIxLTExLTA4ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3Jp
ZmZpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBub25jZS1oaWRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA2ZTJlYTBiOGUzM2FjOTM5MmM2MjQ1MTc4
ZmNmZmIyZGQ3Y2ZkZDcyLi40ZmZkOGRkMDhmZWFiYjI1MTc5ODQ5YjExOGMzYzY1ZWZlNGZhMmNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC04Niw2ICs4NiwxMCBAQCBV
UkwgQ1NTSW1hZ2VWYWx1ZTo6cmVyZXNvbHZlZFVSTChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQp
IGNvbnN0CiB7CiAgICAgLy8gUmUtcmVzb2x2aW5nIHRoZSBVUkwgaXMgaW1wb3J0YW50IGZvciBj
YXNlcyB3aGVyZSByZXNvbHZlZFVSTCBpcyBzdGlsbCBub3QgYW4gYWJzb2x1dGUgVVJMLgogICAg
IC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGVyZSB3YXMgbm8gYWJzb2x1dGUgYmFzZSBVUkwgd2hl
biB0aGUgdmFsdWUgd2FzIGNyZWF0ZWQsIGxpa2UgYSBzdHlsZSBmcm9tIGEgZG9jdW1lbnQgd2l0
aG91dCBhIGJhc2UgVVJMLgorICAgIC8vIEltYWdlIFVSTHMgdGhhdCBzdGFydCB3aXRoIGFuIGV4
cGxpY2l0ICMsIG9yIGFyZSBlbXB0eSBzaG91bGQgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UKKyAg
ICAvLyByZXNvbHZlIHRoZSBjb21wbGV0ZSBVUkwuCisgICAgaWYgKCFtX2xvY2F0aW9uLnJlc29s
dmVkVVJMLnN0cmluZygpLmZpbmQoJyMnKSB8fCBtX2xvY2F0aW9uLnJlc29sdmVkVVJMLnN0cmlu
ZygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fbG9jYXRpb24ucmVzb2x2ZWRVUkw7CiAg
ICAgcmV0dXJuIGRvY3VtZW50LmNvbXBsZXRlVVJMKG1fbG9jYXRpb24ucmVzb2x2ZWRVUkwuc3Ry
aW5nKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggNDkxZWM1Y2RmZDRkNDdkNDNlNzlhZWZjZjE0
MGI2ZGNkZjdkY2VmZC4uN2Q0ZjA4ZjhlMWEzZjhlZDFhODUyYTdkMmU4OWUxMDAyOWExNmFhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmNwcApAQCAtMzYwOSw4ICszNjA5LDE1IEBAIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUltYWdlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250
ZXh0CiAKICAgICBpZiAoYWxsb3dlZEltYWdlVHlwZXMuY29udGFpbnMoQWxsb3dlZEltYWdlVHlw
ZTo6VVJMRnVuY3Rpb24pKSB7CiAgICAgICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVVcmxB
c1N0cmluZ1ZpZXcocmFuZ2UpOyAhc3RyaW5nLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICByZXR1
cm4gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwoc3RyaW5nLnRvQXRv
bVN0cmluZygpLnN0cmluZygpKSwKLSAgICAgICAgICAgICAgICBjb250ZXh0LmlzQ29udGVudE9w
YXF1ZSA/IExvYWRlZEZyb21PcGFxdWVTb3VyY2U6OlllcyA6IExvYWRlZEZyb21PcGFxdWVTb3Vy
Y2U6Ok5vKTsKKyAgICAgICAgICAgIC8vIEltYWdlIFVSTHMgdGhhdCBzdGFydCB3aXRoIGFuIGV4
cGxpY2l0ICMsIG9yIGFyZSBlbXB0eSBzaG91bGQgYmUgcHJlc2VydmVkLCBvdGhlcndpc2UKKyAg
ICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGNvbXBsZXRlIFVSTC4KKyAgICAgICAgICAgIGlmICgh
c3RyaW5nLmZpbmQoJyMnKSB8fCBzdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShVUkwoVVJMKCksIHN0cmluZy50b0F0b21TdHJp
bmcoKS5zdHJpbmcoKSksCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuaXNDb250ZW50T3Bh
cXVlID8gTG9hZGVkRnJvbU9wYXF1ZVNvdXJjZTo6WWVzIDogTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6Tm8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ1NT
SW1hZ2VWYWx1ZTo6Y3JlYXRlKGNvbnRleHQuY29tcGxldGVVUkwoc3RyaW5nLnRvQXRvbVN0cmlu
ZygpLnN0cmluZygpKSwKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pc0NvbnRlbnRPcGFx
dWUgPyBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpZZXMgOiBMb2FkZWRGcm9tT3BhcXVlU291cmNl
OjpObyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IGQ1OGNmM2Q5NTdjMTgzMGE0MTgxNTY3MjM5OWY4MmZkYjEzMTY5
Y2UuLjAxMmI2MDNlMmZhOTk0NmNlZWUzODljMGYwMGIzNTI3MTI2NmE3OWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTExLTExICBNYXR0IFdv
b2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIEltcG9ydCBjc3MvY3Nz
LXZhbHVlcy91cmxzIHdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAgICBEb24ndCBtb2RpZnkgZnJh
Z21lbnQtb25seSBvciBlbXB0eSBpbWFnZSBVUkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgaGFuZGxpbmcgb2YgZW1wdHkgYW5kIGZyYWdt
ZW50IHVybCgpcyBmb3IgaW1hZ2VzIHRvIG5vdCBjb252ZXJ0IHRvIGEgZnVsbHkgcmVzb2x2ZWQK
KyAgICAgICAgcGF0aCwgYW5kIGluc3RlYWQgcHJlc2VydmUgdGhlbSBhcy1pcywgdG8gbWF0Y2gg
Y3NzLXZhbHVlczQgcmVxdWlyZW1lbnRzLgorCisgICAgICAgIEltcG9ydCBuZXcgdGVzdHMgaW4g
Y3NzL2Nzcy12YWx1ZXMvdXJscyBmcm9tIDVlMzE4Nzg1NmEzMTFmNTgzMTI0NzM1Y2FkNWEwM2Jh
YTYxOTUxYjMgYW5kCisgICAgICAgIGFkZCBleHBlY3RhdGlvbnMgZm9yIHRoZSBuZXcgdGVzdHMu
CisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9l
bXB0eS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29s
dmUtcmVsYXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFz
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNv
bHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5LXVy
bHMuY3NzOiBBZGRlZC4KKyAgICAgICAgKDpyb290KToKKyAgICAgICAgKCNleHRlcm5hbC11bnF1
b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtcXVvdGVkKToKKyAgICAgICAgKCNleHRlcm5hbC12
YXJpYWJsZSk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzczogQWRkZWQuCisgICAgICAgICg6cm9vdCk6Cisg
ICAgICAgICgjc3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSk6CisgICAgICAgICgjc3R5bGVzaGVl
dC1yZWxhdGl2ZS12YXJpYWJsZS1pbWFnZSk6CisgICAgICAgICgjc3R5bGVzaGVldC1yZWxhdGl2
ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZzoKKwog
MjAyMS0xMS0wOCAgUGF0cmljayBHcmlmZmlzICA8cGdyaWZmaXNAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnQgbm9uY2UtaGlkaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9pbnZhbGlkLWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHktY3Jhc2guaHRtbAppbmRleCAzZWYxMmRmMGNh
ZmVjNWY5OGNiZWMxN2VhZWY1MTkzNTU1NDBlZDNhLi42NGZiMTBlNWQxM2I5ODEzNjlkZDg5YjY3
ZDI1ODg5OTVkOTE1MDMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlk
LWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2lu
dmFsaWQtY3Vyc29yLXByb3BlcnR5LWNyYXNoLmh0bWwKQEAgLTcsOCArNyw4IEBACiAgICAgICAg
ICAgICAKICAgICAgICAgdmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlRGl2Jyk7
CiAgICAgICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUoZCwgJycpOwotICAgICAgICAKLSAgICAgICAgaWYgKHN0eWxlICYmIHN0eWxlLmN1cnNvciA9
PSAndXJsKCInICsgZG9jdW1lbnQubG9jYXRpb24gKyAnIiksIGF1dG8nKQorCisgICAgICAgIGlm
IChzdHlsZSAmJiBzdHlsZS5jdXJzb3IgPT0gJ3VybCgiIiksIGF1dG8nKQogICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICdTVUNDRVNTJzsg
ICAgICAgICAgICAKICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmlu
ZGV4IDlkODU5ZWYxYjQzYzdmM2NkZmRlMTk5NjllMDBjMDhkMzdmYzlkZTMuLmIxMzljMThkZDFj
NzVlYWY2Y2M2M2I4NDE0MzM3NTZhYTA5MjU0MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBA
IC0xNDMsNiArMTQzLDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNm
b3JtcyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNp
dGlvbnMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpIjog
ImltcG9ydCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscyI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFyaWFibGVzIjog
ImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rl
cyI6ICJpbXBvcnQiLCAKQEAgLTMyMSw3ICszMjIsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVj
dGlvbi1zZXRSYW5nZVRleHQuaHRtbCI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtdGV4dGFyZWEtZWxlbWVudCI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1l
bnRzL3RoZS1kaWFsb2ctZWxlbWVudC8iOiAiaW1wb3J0IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtc3VtbWFyeS1lbGVt
ZW50IjogInNraXAiLAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50
ZXJhY3RpdmUtZWxlbWVudHMvdGhlLXN1bW1hcnktZWxlbWVudCI6ICJza2lwIiwgCiAgICAgIndl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9kb3dubG9hZGluZy1yZXNvdXJj
ZXMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9s
aW5rcy9mb2xsb3dpbmctaHlwZXJsaW5rcyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9saW5rcy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxl
bWVudHMiOiAic2tpcCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
ZW1wdHkuaHRtbAppbmRleCAzYWI3MDc5Mzk2YzUxN2Q3YWJkNjMzNGIwY2ZhZGY3ZWRhNDcxMTE1
Li4zMDgyYTUxYzQyMDUzYTY0OTg5YTQ5YzhlY2IzZDA4ODE5ZmVjYjg5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVz
L3VybHMvZW1wdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbApAQCAtMjYsMTUgKzI2LDEx
IEBAIGNvbnN0IGlkcyA9IFsKICAgImV4dGVybmFsLXF1b3RlZCIKIF07CiAKLWNvbnN0IGlubGlu
ZV91cmwgPSBsb2NhdGlvbi5ocmVmOwotY29uc3QgZXh0ZXJuYWxfdXJsID0gbmV3IFVSTChkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmhyZWYsIGxvY2F0aW9u
LmhyZWYpLmhyZWY7Ci0KIGZvciAobGV0IGlkIG9mIGlkcykgewogICAgIHRlc3QoZnVuY3Rpb24o
KSB7CiAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICAg
ICAgICBjb25zdCBleHBlY3RlZCA9IGlkLnN0YXJ0c1dpdGgoImlubGluZS0iKSA/IGlubGluZV91
cmwgOiBleHRlcm5hbF91cmw7CiAgICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZWwpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlWyJiYWNrZ3JvdW5kLWlt
YWdlIl0sICd1cmwoIicgKyBleHBlY3RlZCArICciKScpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KHN0eWxlWyJiYWNrZ3JvdW5kLWltYWdlIl0sICd1cmwoIiIpJyk7CiAgICAgfSwgImVtcHR5IFVS
TDogIiArIGlkKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQzOTM4ZTZjMWI2Y2U2OGZjNjA4NThkM2M0ODI5NTZlNmIxMDIwMGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtdW5xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBp
bmxpbmUtcXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwtdW5xdW90ZWQKK1BBU1MgZW1w
dHkgVVJMOiBleHRlcm5hbC1xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBleHRlcm5hbC12YXJpYWJs
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdt
ZW50LW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTdmZWVmN2Q0MzljNTQ2ZjdmNDc2YjY3NGIwZmIy
NTJmYjU4YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHkuaHRtbApA
QCAtMCwwICsxLDM3IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5GcmFnbWVudC1vbiBVUkxz
IGJlaGF2aW91cjwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3MtdmFsdWVzLyNsb2NhbC11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c3R5bGU+CisjaW5saW5lLXVucXVvdGVkIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoI2Zvbyk7Cit9CisKKyNpbmxpbmUtcXVvdGVkIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoIiNmb28iKTsKK30KKzwvc3R5bGU+Cis8bGluayByZWw9c3R5
bGVzaGVldCBocmVmPXN1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcz4KKzxkaXYgaWQ9Imlu
bGluZS11bnF1b3RlZCI+PC9kaXY+Cis8ZGl2IGlkPSJpbmxpbmUtcXVvdGVkIj48L2Rpdj4KKzxk
aXYgaWQ9ImV4dGVybmFsLXVucXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9ImV4dGVybmFsLXF1b3Rl
ZCI+PC9kaXY+Cis8ZGl2IGlkPSJleHRlcm5hbC12YXJpYWJsZSI+PC9kaXY+Cis8c2NyaXB0Pgor
Y29uc3QgaWRzID0gWworICAiaW5saW5lLXVucXVvdGVkIiwKKyAgImlubGluZS1xdW90ZWQiLAor
ICAiZXh0ZXJuYWwtdW5xdW90ZWQiLAorICAiZXh0ZXJuYWwtcXVvdGVkIiwKKyAgImV4dGVybmFs
LXZhcmlhYmxlIiwKK107CisKK2ZvciAobGV0IGlkIG9mIGlkcykgeworICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwor
ICAgICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAndXJsKCIjZm9vIikn
KTsKKyAgICB9LCAiZW1wdHkgVVJMOiAiICsgaWQpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9y
ZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlZmE2NWZm
ODI3ZmFmMmUzZTA1ZWIwZmQ4MjI2YmIxOWMyODc5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworRkFJTCBiYXNlLXJlbGF0aXZlIFVSTDogcmVsYXRpdmUtaW1hZ2UtdXJsIFR5cGUgZXJyb3IK
K0ZBSUwgYmFzZS1yZWxhdGl2ZSBVUkw6IHJlbGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCBUeXBl
IGVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmJl
MTI3YWIyYmQ4NGQ4YTU5NjVmYTQyYmJlNzA0ZjdiZDBiNmI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVl
cy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPHRpdGxlPlVSTHMgaW4gZW1iZWRkZWQgc3R5bGUgc2hlZXRzIHJlc29s
dmUgcmVsYXRpdmUgdG8gdGhlIGRvY3VtZW50IGJhc2UgVVJJPC90aXRsZT4KKzxsaW5rIHJlbD1o
ZWxwIGhyZWY9aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMvI3JlbGF0aXZlLXVy
bHM+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxiYXNl
IGhyZWY9Imh0dHA6Ly97e2hvc3RzW2FsdF1bd3d3XX19Ij4KKzxzdHlsZT4KKzpyb290IHsKKyAg
ICAtLWltYWdlLXBhdGg6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7Cit9CisjcmVsYXRpdmUtaW1h
Z2UtdXJsIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL3Rlc3QucG5nKTsKK30K
KworI3JlbGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
dmFyKC0taW1hZ2UtcGF0aCk7Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0icmVsYXRpdmUtaW1hZ2Ut
dXJsIj48L2Rpdj4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCI+PC9kaXY+
Cis8c2NyaXB0PgorY29uc3QgaWRzID0gWworICAicmVsYXRpdmUtaW1hZ2UtdXJsIiwKKyAgInJl
bGF0aXZlLWltYWdlLXZhcmlhYmxlLXVybCIKK107CisKK2ZvciAobGV0IGlkIG9mIGlkcykgewor
ICAgIHRlc3QoKCkgPT4geworICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKTsKKyAgICAgICAgY29uc3QgYmFja2dyb3VuZEltYWdlU3R5bGUgPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbClbImJhY2tncm91bmQtaW1hZ2UiXTsKKyAgICAgICAgY29uc3QgYmFz
ZVJlbGF0aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBkb2N1bWVudC5i
YXNlVVJJKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhiYWNrZ3JvdW5kSW1hZ2VTdHlsZSwgYHVy
bCgiJHtiYXNlUmVsYXRpdmVJbWFnZVVSTC5ocmVmfSIpYCk7CisgICAgfSwgImJhc2UtcmVsYXRp
dmUgVVJMOiAiICsgaWQpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2
ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJl
bGF0aXZlLXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOTE0Njc1NzIx
ZDFhNTJjYTMzZDM2Zjg2OGE0MDMxNTEyM2ViZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
cmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworUEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1yZWxhdGl2ZS1p
bWFnZQorUEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1yZWxhdGl2ZS12
YXJpYWJsZS1pbWFnZQorUEFTUyBzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogc3R5bGVzaGVldC1y
ZWxhdGl2ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVz
b2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2
ZS10by1zdHlsZXNoZWV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ3NWQ5NzA1MjcyYmYwMGFkMjM2MjZh
OWY1YTNhODVkZjI1OGFiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0
aXZlLXRvLXN0eWxlc2hlZXQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IWRvY3R5cGUgaHRtbD4K
Kzx0aXRsZT5VUkxzIGluIGEgc3R5bGVzaGVldCByZXNvbHZlIHJlbGF0aXZlIHRvIHRoZSBzdHls
ZXNoZWV0PC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9aHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzcy12YWx1ZXMvI3JlbGF0aXZlLXVybHM+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcz48L3NjcmlwdD4KKzxsaW5rIGlkPSJzdHlsZXNoZWV0IiByZWw9c3R5bGVzaGVl
dCBocmVmPXN1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3M+Cis8ZGl2IGlkPSJzdHlsZXNoZWV0LXJl
bGF0aXZlLWltYWdlIj48L2Rpdj4KKzxkaXYgaWQ9InN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFi
bGUtaW1hZ2UiPjwvZGl2PgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1kb2N1bWVudC12
YXJpYWJsZS1pbWFnZSI+PC9kaXY+Cis8c3R5bGU+CisgICAgOnJvb3QgeworICAgICAgICAtLWlt
YWdlLXBhdGgtZG9jdW1lbnQ6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7CisgICAgfQorPC9zdHls
ZT4KKzxzY3JpcHQ+Citjb25zdCBpZHMgPSBbCisgICJzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdl
IiwKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UiLAorICAic3R5bGVzaGVl
dC1yZWxhdGl2ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSIsCitdOworCitmb3IgKGxldCBpZCBv
ZiBpZHMpIHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZVN0eWxlID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpWyJiYWNrZ3JvdW5kLWltYWdlIl07CisKKyAgICAg
ICAgY29uc3Qgc3R5bGVzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZXNoZWV0
Iik7CisgICAgICAgIGNvbnN0IHNoZWV0UmVsYXRpdmVJbWFnZVVSTCA9IG5ldyBVUkwoImltYWdl
cy90ZXN0LnBuZyIsIHN0eWxlc2hlZXQuaHJlZik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhi
YWNrZ3JvdW5kSW1hZ2VTdHlsZSwgYHVybCgiJHtzaGVldFJlbGF0aXZlSW1hZ2VVUkwuaHJlZn0i
KWApOworICAgIH0sICJzdHlsZXNoZWV0LXJlbGF0aXZlIFVSTDogIiArIGlkKTsKK30KKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBiZDlk
YWI5OWFjNGZlMTNlOTBmMTE4YTIyZmIwYzk3NjdkYTg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKQEAgLTAsMCArMSwxNSBAQAorOnJv
b3QgeworICAgIC0tZnJhZ21lbnQtaW1hZ2UtdXJsOiB1cmwoIiNmb28iKTsKK30KKworI2V4dGVy
bmFsLXVucXVvdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI2Zvbyk7Cit9CisKKyNl
eHRlcm5hbC1xdW90ZWQgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiI2ZvbyIpOworfQor
CisjZXh0ZXJuYWwtdmFyaWFibGUgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWZyYWdt
ZW50LWltYWdlLXVybCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11
cmxzLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEz
NTRjNjU1ZTk4OThjZmY4NDVmZjc4ZGY3MTdjY2E3YzczZjAzMGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpAQCAtMCwwICsxLDE1IEBACis6cm9v
dCB7CisgICAgLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQ6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7
Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaW1hZ2VzL3Rlc3QucG5nKTsKK30KKworI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFi
bGUtaW1hZ2UgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgtc3R5bGVz
aGVldCk7Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdl
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZS1wYXRoLWRvY3VtZW50KTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBv
cnQvdzNjLWltcG9ydC5sb2cKaW5kZXggYTk5M2Y4ZmViMDMxYmNmNzVmMThhYjA5NTVjNjIzYjMx
MTE1ZWIyYS4uOGI0NGY1Y2QxZjlhNjQ3NTE1N2JiZWM4NDc2MDE4YjU1ZWQyZTQ4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1
cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVy
bHMuY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWlt
cG9ydC5sb2cKaW5kZXggM2MxYTQ1NGMwYTZiZWFjNWI2NDU5YjI0NThkMDFiMjMyM2M2NDY5OC4u
MmFkMjYyYjUzYzI4ZTNhZDZhNGEzMDIyNGVkMWQyNjBhZWQxNTQ1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZwpAQCAtMTUsMyAr
MTUsNiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2Vt
cHR5Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVs
YXRpdmUtdG8tYmFzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVl
dC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444322</attachid>
            <date>2021-11-15 17:44:03 -0800</date>
            <delta_ts>2021-11-16 17:45:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211116144401.patch</filename>
            <type>text/plain</type>
            <size>18788</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1MTEyZTI0OGQyNDdj
NDVhMzE4YWE5OWQ5MDkwOTliOWZmMGYwNi4uZmZlZDg3YjAzYWI5NDM2MmMwNDgyMDEwMTZjYWY1
ZjFjOGNhMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJM
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJ
bWFnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpjb21wbGV0ZVVSTCBjb25zdCk6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZp
cyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5k
ZXggOWZjZWFmMGYzZjNhMDMzOTg1ZDc1NzQzMTJiYjA1OTY0ZDZkYzlmOC4uNWRhNWVjMzg4NzMw
ZDIxYzRmYzM2ZjllMjkxYzVlYTdjMmY1ZGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC0yNDUsOCArMjQ1LDE2IEBAIGJvb2wgQ1NT
UGFyc2VyQ29udGV4dDo6aXNQcm9wZXJ0eVJ1bnRpbWVEaXNhYmxlZChDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5KSBjb25zdAogUmVzb2x2ZWRVUkwgQ1NTUGFyc2VyQ29udGV4dDo6Y29tcGxldGVVUkwo
Y29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0CiB7CiAgICAgYXV0byByZXN1bHQgPSBbJl0gKCkg
LT4gUmVzb2x2ZWRVUkwgeworICAgICAgICAvLyBTZWUgYWxzbyBEb2N1bWVudDo6Y29tcGxldGVV
UkwoY29uc3QgU3RyaW5nJikKICAgICAgICAgaWYgKHN0cmluZy5pc051bGwoKSkKICAgICAgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12
YWx1ZXMtNC8jbG9jYWwtdXJscworICAgICAgICAvLyBFbXB0eSBVUkxzIGFuZCBmcmFnbWVudC1v
bmx5IFVSTHMgc2hvdWxkIG5vdCBiZSByZXNvbHZlZCByZWxhdGl2ZSB0byB0aGUgYmFzZQorICAg
ICAgICAvLyBVUkwuCisgICAgICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpIHx8IHN0cmluZy5zdGFy
dHNXaXRoKCcjJykpCisgICAgICAgICAgICByZXR1cm4geyBzdHJpbmcsIHsgVVJMKCksIHN0cmlu
ZyB9IH07CisKICAgICAgICAgaWYgKGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIHsgc3RyaW5nLCB7IGJhc2VVUkwsIHN0cmluZyB9IH07CiAgICAgICAgIGF1dG8gZW5jb2Rp
bmdGb3JVUkxQYXJzaW5nID0gVGV4dEVuY29kaW5nIHsgY2hhcnNldCB9LmVuY29kaW5nRm9yRm9y
bVN1Ym1pc3Npb25PclVSTFBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY2
NTU1NWE4YzQyMGFjOGZhYzQxNzMzZjI4MGM1MWIwMDY1ZmM3Y2YuLmFkZTNjOGQ3ZjFlYzI1ZGYx
MDhmMmViNTNlMmFmOGI0YTc4MmFmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTU5
MiwxMSArNTU5MiwxOSBAQCB2b2lkIERvY3VtZW50OjpzZXREZWNvZGVyKFJlZlB0cjxUZXh0UmVz
b3VyY2VEZWNvZGVyPiYmIGRlY29kZXIpCiAKIFVSTCBEb2N1bWVudDo6Y29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlLCBGb3JjZVVURjggZm9y
Y2VVVEY4KSBjb25zdAogeworICAgIC8vIFNlZSBhbHNvIENTU1BhcnNlckNvbnRleHQ6OmNvbXBs
ZXRlVVJMKGNvbnN0IFN0cmluZyYpCisKICAgICAvLyBBbHdheXMgcmV0dXJuIGEgbnVsbCBVUkwg
d2hlbiBwYXNzZWQgYSBudWxsIHN0cmluZy4KICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNoYW5n
ZSB0aGUgVVJMIGNvbnN0cnVjdG9yIHRvIGhhdmUgdGhpcyBiZWhhdmlvcj8KLSAgICAvLyBTZWUg
YWxzbyBbQ1NTXVN0eWxlU2hlZXQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpCiAgICAgaWYg
KHVybC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOworCisgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtNC8jbG9jYWwtdXJscworICAgIC8vIEVtcHR5IFVSTHMg
YW5kIGZyYWdtZW50LW9ubHkgVVJMcyBzaG91bGQgbm90IGJlIHJlc29sdmVkIHJlbGF0aXZlIHRv
IHRoZSBiYXNlCisgICAgLy8gVVJMLgorICAgIGlmICh1cmwuaXNFbXB0eSgpIHx8IHVybC5zdGFy
dHNXaXRoKCcjJykpCisgICAgICAgIHJldHVybiBVUkwoVVJMKCksIHVybCk7CisKICAgICBjb25z
dCBVUkwmIGJhc2VVUkwgPSAoKGJhc2VVUkxPdmVycmlkZS5pc0VtcHR5KCkgfHwgYmFzZVVSTE92
ZXJyaWRlID09IGFib3V0QmxhbmtVUkwoKSkgJiYgcGFyZW50RG9jdW1lbnQoKSkgPyBwYXJlbnRE
b2N1bWVudCgpLT5iYXNlVVJMKCkgOiBiYXNlVVJMT3ZlcnJpZGU7CiAgICAgaWYgKCFtX2RlY29k
ZXIgfHwgZm9yY2VVVEY4ID09IEZvcmNlVVRGODo6WWVzKQogICAgICAgICByZXR1cm4gVVJMKGJh
c2VVUkwsIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBkNThjZjNkOTU3
YzE4MzBhNDE4MTU2NzIzOTlmODJmZGIxMzE2OWNlLi4wMTJiNjAzZTJmYTk5NDZjZWVlMzg5YzBm
MDBiMzUyNzEyNjZhNzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMS0xMS0xMSAgTWF0dCBXb29kcm93ICA8bWF0dC53b29kcm93QGdtYWlsLmNv
bT4KKworICAgICAgICBJbXBvcnQgY3NzL2Nzcy12YWx1ZXMvdXJscyB3ZWItcGxhdGZvcm0tdGVz
dHMKKyAgICAgICAgRG9uJ3QgbW9kaWZ5IGZyYWdtZW50LW9ubHkgb3IgZW1wdHkgaW1hZ2UgVVJM
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5OTE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IGhhbmRsaW5nIG9mIGVtcHR5IGFuZCBmcmFnbWVudCB1cmwoKXMgZm9yIGltYWdlcyB0byBub3Qg
Y29udmVydCB0byBhIGZ1bGx5IHJlc29sdmVkCisgICAgICAgIHBhdGgsIGFuZCBpbnN0ZWFkIHBy
ZXNlcnZlIHRoZW0gYXMtaXMsIHRvIG1hdGNoIGNzcy12YWx1ZXM0IHJlcXVpcmVtZW50cy4KKwor
ICAgICAgICBJbXBvcnQgbmV3IHRlc3RzIGluIGNzcy9jc3MtdmFsdWVzL3VybHMgZnJvbSA1ZTMx
ODc4NTZhMzExZjU4MzEyNDczNWNhZDVhMDNiYWE2MTk1MWIzIGFuZAorICAgICAgICBhZGQgZXhw
ZWN0YXRpb25zIGZvciB0aGUgbmV3IHRlc3RzLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvZnJhZ21lbnQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1z
dHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzczogQWRkZWQuCisgICAgICAgICg6cm9v
dCk6CisgICAgICAgICgjZXh0ZXJuYWwtdW5xdW90ZWQpOgorICAgICAgICAoI2V4dGVybmFsLXF1
b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtdmFyaWFibGUpOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3M6
IEFkZGVkLgorICAgICAgICAoOnJvb3QpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUt
aW1hZ2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UpOgor
ICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2UpOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvdzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZpcyAg
PHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHkt
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQtY3Vyc29yLXByb3BlcnR5
LWNyYXNoLmh0bWwKaW5kZXggM2VmMTJkZjBjYWZlYzVmOThjYmVjMTdlYWVmNTE5MzU1NTQwZWQz
YS4uNjRmYjEwZTVkMTNiOTgxMzY5ZGQ4OWI2N2QyNTg4OTk1ZDkxNTAzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHktY3Jhc2guaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkLWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5o
dG1sCkBAIC03LDggKzcsOCBAQAogICAgICAgICAgICAgCiAgICAgICAgIHZhciBkID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RoZURpdicpOwogICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsICcnKTsKLSAgICAgICAgCi0gICAgICAg
IGlmIChzdHlsZSAmJiBzdHlsZS5jdXJzb3IgPT0gJ3VybCgiJyArIGRvY3VtZW50LmxvY2F0aW9u
ICsgJyIpLCBhdXRvJykKKworICAgICAgICBpZiAoc3R5bGUgJiYgc3R5bGUuY3Vyc29yID09ICd1
cmwoIiIpLCBhdXRvJykKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7ICAgICAgICAgICAgCiAgICAgfQogICAgIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBv
cnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA5ZDg1OWVmMWI0M2M3ZjNjZGZkZTE5OTY5
ZTAwYzA4ZDM3ZmM5ZGUzLi5iMTM5YzE4ZGQxYzc1ZWFmNmNjNjNiODQxNDMzNzU2YWEwOTI1NDM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1l
eHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMTQzLDYgKzE0Myw3IEBACiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aSI6ICJpbXBvcnQiLCAKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhcmlhYmxlcyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtd2lsbC1jaGFuZ2UiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMiOiAiaW1wb3J0IiwgCkBAIC0zMjEsNyArMzIy
LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRm
aWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0UmFuZ2VUZXh0Lmh0bWwiOiAic2tp
cCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXRl
eHRhcmVhLWVsZW1lbnQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQvIjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3Rp
dmUtZWxlbWVudHMvdGhlLXN1bW1hcnktZWxlbWVudCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5
LWVsZW1lbnQiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvbGlua3MvZG93bmxvYWRpbmctcmVzb3VyY2VzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvbGlua3MvZm9sbG93aW5nLWh5cGVybGlua3MiOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlu
a3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKaW5kZXggM2FiNzA3OTM5NmM1
MTdkN2FiZDYzMzRiMGNmYWRmN2VkYTQ3MTExNS4uMzA4MmE1MWM0MjA1M2E2NDk4OWE0OWM4ZWNi
M2QwODgxOWZlY2I4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxz
L2VtcHR5Lmh0bWwKQEAgLTI2LDE1ICsyNiwxMSBAQCBjb25zdCBpZHMgPSBbCiAgICJleHRlcm5h
bC1xdW90ZWQiCiBdOwogCi1jb25zdCBpbmxpbmVfdXJsID0gbG9jYXRpb24uaHJlZjsKLWNvbnN0
IGV4dGVybmFsX3VybCA9IG5ldyBVUkwoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibGlua1tyZWw9
c3R5bGVzaGVldF0iKS5ocmVmLCBsb2NhdGlvbi5ocmVmKS5ocmVmOwotCiBmb3IgKGxldCBpZCBv
ZiBpZHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBjb25zdCBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBpZC5zdGFy
dHNXaXRoKCJpbmxpbmUtIikgPyBpbmxpbmVfdXJsIDogZXh0ZXJuYWxfdXJsOwogICAgICAgICBj
b25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAndXJsKCInICsgZXhwZWN0ZWQgKyAn
IiknKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAn
dXJsKCIiKScpOwogICAgIH0sICJlbXB0eSBVUkw6ICIgKyBpZCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFn
bWVudC1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzkzOGU2YzFiNmNlNjhmYzYwODU4
ZDNjNDgyOTU2ZTZiMTAyMDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIGVtcHR5IFVSTDogaW5saW5l
LXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogaW5saW5lLXF1b3RlZAorUEFTUyBlbXB0eSBVUkw6
IGV4dGVybmFsLXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwtcXVvdGVkCitQQVNT
IGVtcHR5IFVSTDogZXh0ZXJuYWwtdmFyaWFibGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdt
ZW50LW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk3
ZmVlZjdkNDM5YzU0NmY3ZjQ3NmI2NzRiMGZiMjUyZmI1OGIyNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8dGl0bGU+RnJhZ21lbnQtb24gVVJMcyBiZWhhdmlvdXI8L3RpdGxlPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj1odHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy8jbG9jYWwtdXJs
cz4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHN0eWxl
PgorI2lubGluZS11bnF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCNmb28pOwor
fQorCisjaW5saW5lLXF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIjZm9vIik7
Cit9Cis8L3N0eWxlPgorPGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0L2ZyYWdtZW50
LW9ubHktdXJscy5jc3M+Cis8ZGl2IGlkPSJpbmxpbmUtdW5xdW90ZWQiPjwvZGl2PgorPGRpdiBp
ZD0iaW5saW5lLXF1b3RlZCI+PC9kaXY+Cis8ZGl2IGlkPSJleHRlcm5hbC11bnF1b3RlZCI+PC9k
aXY+Cis8ZGl2IGlkPSJleHRlcm5hbC1xdW90ZWQiPjwvZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwt
dmFyaWFibGUiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlkcyA9IFsKKyAgImlubGluZS11bnF1
b3RlZCIsCisgICJpbmxpbmUtcXVvdGVkIiwKKyAgImV4dGVybmFsLXVucXVvdGVkIiwKKyAgImV4
dGVybmFsLXF1b3RlZCIsCisgICJleHRlcm5hbC12YXJpYWJsZSIsCitdOworCitmb3IgKGxldCBp
ZCBvZiBpZHMpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGVbImJhY2tn
cm91bmQtaW1hZ2UiXSwgJ3VybCgiI2ZvbyIpJyk7CisgICAgfSwgImVtcHR5IFVSTDogIiArIGlk
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8t
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZWZhNjVmZjgyN2ZhZjJlM2UwNWViMGZkODIyNmJiMTljMjg3
OWMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgYmFzZS1yZWxhdGl2ZSBVUkw6IHJl
bGF0aXZlLWltYWdlLXVybCBUeXBlIGVycm9yCitGQUlMIGJhc2UtcmVsYXRpdmUgVVJMOiByZWxh
dGl2ZS1pbWFnZS12YXJpYWJsZS11cmwgVHlwZSBlcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
cmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10
by1iYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZTEyN2FiMmJkODRkOGE1OTY1ZmE0MmJiZTcwNGY3
YmQwYjZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJh
c2UuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5VUkxzIGlu
IGVtYmVkZGVkIHN0eWxlIHNoZWV0cyByZXNvbHZlIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCBi
YXNlIFVSSTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8YmFzZSBocmVmPSJodHRwOi8ve3tob3N0c1thbHRdW3d3
d119fSI+Cis8c3R5bGU+Cis6cm9vdCB7CisgICAgLS1pbWFnZS1wYXRoOiB1cmwoImltYWdlcy90
ZXN0LnBuZyIpOworfQorI3JlbGF0aXZlLWltYWdlLXVybCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisKKyNyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11
cmwgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgpOworfQorPC9zdHls
ZT4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXVybCI+PC9kaXY+Cis8ZGl2IGlkPSJyZWxhdGl2
ZS1pbWFnZS12YXJpYWJsZS11cmwiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlkcyA9IFsKKyAg
InJlbGF0aXZlLWltYWdlLXVybCIsCisgICJyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwiCitd
OworCitmb3IgKGxldCBpZCBvZiBpZHMpIHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgY29u
c3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IGJhY2tn
cm91bmRJbWFnZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpWyJiYWNrZ3JvdW5k
LWltYWdlIl07CisgICAgICAgIGNvbnN0IGJhc2VSZWxhdGl2ZUltYWdlVVJMID0gbmV3IFVSTCgi
aW1hZ2VzL3Rlc3QucG5nIiwgZG9jdW1lbnQuYmFzZVVSSSk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7YmFzZVJlbGF0aXZlSW1hZ2VVUkwuaHJl
Zn0iKWApOworICAgIH0sICJiYXNlLXJlbGF0aXZlIFVSTDogIiArIGlkKTsKK30KKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZjkxNDY3NTcyMWQxYTUyY2EzM2QzNmY4NjhhNDAzMTUxMjNlYmZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVl
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc3R5bGVzaGVldC1yZWxhdGl2
ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtaW1hZ2UKK1BBU1Mgc3R5bGVzaGVldC1yZWxhdGl2
ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UKK1BBU1Mgc3R5bGVzaGVl
dC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1h
Z2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0NzVkOTcwNTI3MmJmMDBhZDIzNjI2YTlmNWEzYTg1ZGYyNThhYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0bWwKQEAgLTAs
MCArMSwzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VVJMcyBpbiBhIHN0eWxlc2hlZXQg
cmVzb2x2ZSByZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldDwvdGl0bGU+Cis8bGluayByZWw9aGVs
cCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxz
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8bGluayBp
ZD0ic3R5bGVzaGVldCIgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0L3JlbGF0aXZlLXVybHMu
Y3NzPgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSI+PC9kaXY+Cis8ZGl2IGlk
PSJzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIj48L2Rpdj4KKzxkaXYgaWQ9InN0
eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2UiPjwvZGl2PgorPHN0eWxl
PgorICAgIDpyb290IHsKKyAgICAgICAgLS1pbWFnZS1wYXRoLWRvY3VtZW50OiB1cmwoImltYWdl
cy90ZXN0LnBuZyIpOworICAgIH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorY29uc3QgaWRzID0gWwor
ICAic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSIsCisgICJzdHlsZXNoZWV0LXJlbGF0aXZlLXZh
cmlhYmxlLWltYWdlIiwKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUt
aW1hZ2UiLAorXTsKKworZm9yIChsZXQgaWQgb2YgaWRzKSB7CisgICAgdGVzdCgoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBj
b25zdCBiYWNrZ3JvdW5kSW1hZ2VTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKVsi
YmFja2dyb3VuZC1pbWFnZSJdOworCisgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICBjb25zdCBzaGVldFJlbGF0
aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBzdHlsZXNoZWV0LmhyZWYp
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7
c2hlZXRSZWxhdGl2ZUltYWdlVVJMLmhyZWZ9IilgKTsKKyAgICB9LCAic3R5bGVzaGVldC1yZWxh
dGl2ZSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBw
b3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5
LXVybHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYmQ5ZGFiOTlhYzRmZTEzZTkwZjExOGEyMmZiMGM5NzY3
ZGE4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5LXVy
bHMuY3NzCkBAIC0wLDAgKzEsMTUgQEAKKzpyb290IHsKKyAgICAtLWZyYWdtZW50LWltYWdlLXVy
bDogdXJsKCIjZm9vIik7Cit9CisKKyNleHRlcm5hbC11bnF1b3RlZCB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCNmb28pOworfQorCisjZXh0ZXJuYWwtcXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoIiNmb28iKTsKK30KKworI2V4dGVybmFsLXZhcmlhYmxlIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1mcmFnbWVudC1pbWFnZS11cmwpOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxh
dGl2ZS11cmxzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzU0YzY1NWU5ODk4Y2ZmODQ1ZmY3OGRmNzE3Y2Nh
N2M3M2YwMzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJs
cy5jc3MKQEAgLTAsMCArMSwxNSBAQAorOnJvb3QgeworICAgIC0taW1hZ2UtcGF0aC1zdHlsZXNo
ZWV0OiB1cmwoImltYWdlcy90ZXN0LnBuZyIpOworfQorCisjc3R5bGVzaGVldC1yZWxhdGl2ZS1p
bWFnZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisK
KyNzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB2YXIoLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQpOworfQorCisjc3R5bGVzaGVldC1yZWxh
dGl2ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdmFy
KC0taW1hZ2UtcGF0aC1kb2N1bWVudCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCmluZGV4IGE5OTNm
OGZlYjAzMWJjZjc1ZjE4YWIwOTU1YzYyM2IzMTExNWViMmEuLjhiNDRmNWNkMWY5YTY0NzUxNTdi
YmVjODQ3NjAxOGI1NWVkMmU0OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCkBAIC0xNSwzICsxNSw1
IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9y
dC9lbXB0eS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3czYy1pbXBvcnQubG9nCmluZGV4IDNjMWE0NTRjMGE2YmVh
YzViNjQ1OWIyNDU4ZDAxYjIzMjNjNjQ2OTguLjJhZDI2MmI1M2MyOGUzYWQ2YTRhMzAyMjRlZDFk
MjYwYWVkMTU0NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDYgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHkuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9y
ZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444457</attachid>
            <date>2021-11-16 17:45:45 -0800</date>
            <delta_ts>2021-11-17 18:01:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211117144543.patch</filename>
            <type>text/plain</type>
            <size>19928</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1MTEyZTI0OGQyNDdj
NDVhMzE4YWE5OWQ5MDkwOTliOWZmMGYwNi4uZmZlZDg3YjAzYWI5NDM2MmMwNDgyMDEwMTZjYWY1
ZjFjOGNhMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJM
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJ
bWFnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpjb21wbGV0ZVVSTCBjb25zdCk6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZp
cyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDZlMmVhMGI4ZTMzYWM5Mzky
YzYyNDUxNzhmY2ZmYjJkZDdjZmRkNzIuLmE3NzRhNjg0NGYwYmQ3MTFhMDFhMTQwM2IyOTBjMGFh
MzgwMDcyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDYgKzg0
LDkgQEAgYm9vbCBDU1NJbWFnZVZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAogCiBVUkwgQ1NTSW1h
Z2VWYWx1ZTo6cmVyZXNvbHZlZFVSTChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7
CisgICAgaWYgKENTU1ZhbHVlOjppc0NTU0xvY2FsVVJMKG1fbG9jYXRpb24ucmVzb2x2ZWRVUkwu
c3RyaW5nKCkpKQorICAgICAgICByZXR1cm4gVVJMKFVSTCgpLCBtX2xvY2F0aW9uLnJlc29sdmVk
VVJMLnN0cmluZygpKTsKKwogICAgIC8vIFJlLXJlc29sdmluZyB0aGUgVVJMIGlzIGltcG9ydGFu
dCBmb3IgY2FzZXMgd2hlcmUgcmVzb2x2ZWRVUkwgaXMgc3RpbGwgbm90IGFuIGFic29sdXRlIFVS
TC4KICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlcmUgd2FzIG5vIGFic29sdXRlIGJhc2Ug
VVJMIHdoZW4gdGhlIHZhbHVlIHdhcyBjcmVhdGVkLCBsaWtlIGEgc3R5bGUgZnJvbSBhIGRvY3Vt
ZW50IHdpdGhvdXQgYSBiYXNlIFVSTC4KICAgICByZXR1cm4gZG9jdW1lbnQuY29tcGxldGVVUkwo
bV9sb2NhdGlvbi5yZXNvbHZlZFVSTC5zdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4
IDI5ZWE0YjZkMTE2NjQyOTZhNzdmMWRkOTY3NmU2MDI4ZDU3YmQ1M2IuLjZiNTE1NzFiMDUzNzBi
YWI0ZmQ1YmU0MDVkNzMwZWQ2Mzg5MDA1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC0xNTIs
NiArMTUyLDE0IEBAIHB1YmxpYzoKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZSYpIGNv
bnN0OwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIGVxdWFscyhvdGhlcik7IH0KIAorICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9j
c3MtdmFsdWVzLTQvI2xvY2FsLXVybHMKKyAgICAvLyBFbXB0eSBVUkxzIGFuZCBmcmFnbWVudC1v
bmx5IFVSTHMgc2hvdWxkIG5vdCBiZSByZXNvbHZlZCByZWxhdGl2ZSB0byB0aGUgYmFzZQorICAg
IC8vIFVSTC4KKyAgICBzdGF0aWMgYm9vbCBpc0NTU0xvY2FsVVJMKGNvbnN0IFN0cmluZyYgdXJs
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHVybC5pc0VtcHR5KCkgfHwgdXJsLnN0YXJ0c1dpdGgo
JyMnKTsKKyAgICB9CisKIHByb3RlY3RlZDoKIAogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgQ2xh
c3NUeXBlQml0cyA9IDY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJD
b250ZXh0LmNwcAppbmRleCA5ZmNlYWYwZjNmM2EwMzM5ODVkNzU3NDMxMmJiMDU5NjRkNmRjOWY4
Li40YjM0M2EzMjY4YjM5YjYyZjk4Nzk5MDE2NWUwZDVmNjVhODQwMGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTI0NSw4ICsyNDUs
MTMgQEAgYm9vbCBDU1NQYXJzZXJDb250ZXh0Ojppc1Byb3BlcnR5UnVudGltZURpc2FibGVkKENT
U1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CiBSZXNvbHZlZFVSTCBDU1NQYXJzZXJDb250ZXh0
Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3QKIHsKICAgICBhdXRvIHJl
c3VsdCA9IFsmXSAoKSAtPiBSZXNvbHZlZFVSTCB7CisgICAgICAgIC8vIFNlZSBhbHNvIERvY3Vt
ZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKQogICAgICAgICBpZiAoc3RyaW5nLmlzTnVs
bCgpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICBpZiAoQ1NTVmFsdWU6Omlz
Q1NTTG9jYWxVUkwoc3RyaW5nKSkKKyAgICAgICAgICAgIHJldHVybiB7IHN0cmluZywgeyBVUkwo
KSwgc3RyaW5nIH0gfTsKKwogICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4geyBzdHJpbmcsIHsgYmFzZVVSTCwgc3RyaW5nIH0gfTsKICAgICAgICAgYXV0
byBlbmNvZGluZ0ZvclVSTFBhcnNpbmcgPSBUZXh0RW5jb2RpbmcgeyBjaGFyc2V0IH0uZW5jb2Rp
bmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggZjY1NTU1YThjNDIwYWM4ZmFjNDE3MzNmMjgwYzUxYjAwNjVmYzdjZi4uNGE2YmZmYzU1
YTQwYTMxMGMwMDhlZWU2NzUxOTkyYTUxY2NiZTJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC01NTkyLDExICs1NTkyLDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERlY29kZXIoUmVmUHRy
PFRleHRSZXNvdXJjZURlY29kZXI+JiYgZGVjb2RlcikKIAogVVJMIERvY3VtZW50Ojpjb21wbGV0
ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVVJMJiBiYXNlVVJMT3ZlcnJpZGUsIEZvcmNl
VVRGOCBmb3JjZVVURjgpIGNvbnN0CiB7CisgICAgLy8gU2VlIGFsc28gQ1NTUGFyc2VyQ29udGV4
dDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikKKwogICAgIC8vIEFsd2F5cyByZXR1cm4gYSBu
dWxsIFVSTCB3aGVuIHBhc3NlZCBhIG51bGwgc3RyaW5nLgogICAgIC8vIEZJWE1FOiBTaG91bGQg
d2UgY2hhbmdlIHRoZSBVUkwgY29uc3RydWN0b3IgdG8gaGF2ZSB0aGlzIGJlaGF2aW9yPwotICAg
IC8vIFNlZSBhbHNvIFtDU1NdU3R5bGVTaGVldDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikK
ICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CisKICAgICBjb25z
dCBVUkwmIGJhc2VVUkwgPSAoKGJhc2VVUkxPdmVycmlkZS5pc0VtcHR5KCkgfHwgYmFzZVVSTE92
ZXJyaWRlID09IGFib3V0QmxhbmtVUkwoKSkgJiYgcGFyZW50RG9jdW1lbnQoKSkgPyBwYXJlbnRE
b2N1bWVudCgpLT5iYXNlVVJMKCkgOiBiYXNlVVJMT3ZlcnJpZGU7CiAgICAgaWYgKCFtX2RlY29k
ZXIgfHwgZm9yY2VVVEY4ID09IEZvcmNlVVRGODo6WWVzKQogICAgICAgICByZXR1cm4gVVJMKGJh
c2VVUkwsIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBkNThjZjNkOTU3
YzE4MzBhNDE4MTU2NzIzOTlmODJmZGIxMzE2OWNlLi4wMTJiNjAzZTJmYTk5NDZjZWVlMzg5YzBm
MDBiMzUyNzEyNjZhNzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAyMS0xMS0xMSAgTWF0dCBXb29kcm93ICA8bWF0dC53b29kcm93QGdtYWlsLmNv
bT4KKworICAgICAgICBJbXBvcnQgY3NzL2Nzcy12YWx1ZXMvdXJscyB3ZWItcGxhdGZvcm0tdGVz
dHMKKyAgICAgICAgRG9uJ3QgbW9kaWZ5IGZyYWdtZW50LW9ubHkgb3IgZW1wdHkgaW1hZ2UgVVJM
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5OTE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
IGhhbmRsaW5nIG9mIGVtcHR5IGFuZCBmcmFnbWVudCB1cmwoKXMgZm9yIGltYWdlcyB0byBub3Qg
Y29udmVydCB0byBhIGZ1bGx5IHJlc29sdmVkCisgICAgICAgIHBhdGgsIGFuZCBpbnN0ZWFkIHBy
ZXNlcnZlIHRoZW0gYXMtaXMsIHRvIG1hdGNoIGNzcy12YWx1ZXM0IHJlcXVpcmVtZW50cy4KKwor
ICAgICAgICBJbXBvcnQgbmV3IHRlc3RzIGluIGNzcy9jc3MtdmFsdWVzL3VybHMgZnJvbSA1ZTMx
ODc4NTZhMzExZjU4MzEyNDczNWNhZDVhMDNiYWE2MTk1MWIzIGFuZAorICAgICAgICBhZGQgZXhw
ZWN0YXRpb25zIGZvciB0aGUgbmV3IHRlc3RzLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9y
dC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvZnJhZ21lbnQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1z
dHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzczogQWRkZWQuCisgICAgICAgICg6cm9v
dCk6CisgICAgICAgICgjZXh0ZXJuYWwtdW5xdW90ZWQpOgorICAgICAgICAoI2V4dGVybmFsLXF1
b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtdmFyaWFibGUpOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3M6
IEFkZGVkLgorICAgICAgICAoOnJvb3QpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUt
aW1hZ2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UpOgor
ICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2UpOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvdzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZpcyAg
PHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHkt
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQtY3Vyc29yLXByb3BlcnR5
LWNyYXNoLmh0bWwKaW5kZXggM2VmMTJkZjBjYWZlYzVmOThjYmVjMTdlYWVmNTE5MzU1NTQwZWQz
YS4uNjRmYjEwZTVkMTNiOTgxMzY5ZGQ4OWI2N2QyNTg4OTk1ZDkxNTAzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHktY3Jhc2guaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkLWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5o
dG1sCkBAIC03LDggKzcsOCBAQAogICAgICAgICAgICAgCiAgICAgICAgIHZhciBkID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RoZURpdicpOwogICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGQsICcnKTsKLSAgICAgICAgCi0gICAgICAg
IGlmIChzdHlsZSAmJiBzdHlsZS5jdXJzb3IgPT0gJ3VybCgiJyArIGRvY3VtZW50LmxvY2F0aW9u
ICsgJyIpLCBhdXRvJykKKworICAgICAgICBpZiAoc3R5bGUgJiYgc3R5bGUuY3Vyc29yID09ICd1
cmwoIiIpLCBhdXRvJykKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7ICAgICAgICAgICAgCiAgICAgfQogICAgIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBv
cnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRleCA5ZDg1OWVmMWI0M2M3ZjNjZGZkZTE5OTY5
ZTAwYzA4ZDM3ZmM5ZGUzLi5iMTM5YzE4ZGQxYzc1ZWFmNmNjNjNiODQxNDMzNzU2YWEwOTI1NDM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1l
eHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAtMTQzLDYgKzE0Myw3IEBACiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aSI6ICJpbXBvcnQiLCAKKyAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhcmlhYmxlcyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtd2lsbC1jaGFuZ2UiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMiOiAiaW1wb3J0IiwgCkBAIC0zMjEsNyArMzIy
LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRm
aWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0UmFuZ2VUZXh0Lmh0bWwiOiAic2tp
cCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXRl
eHRhcmVhLWVsZW1lbnQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQvIjogImlt
cG9ydCIsIAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3Rp
dmUtZWxlbWVudHMvdGhlLXN1bW1hcnktZWxlbWVudCI6ICJza2lwIiwKKyAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5
LWVsZW1lbnQiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvbGlua3MvZG93bmxvYWRpbmctcmVzb3VyY2VzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvbGlua3MvZm9sbG93aW5nLWh5cGVybGlua3MiOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlu
a3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIjogInNraXAiLCAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKaW5kZXggM2FiNzA3OTM5NmM1
MTdkN2FiZDYzMzRiMGNmYWRmN2VkYTQ3MTExNS4uMzA4MmE1MWM0MjA1M2E2NDk4OWE0OWM4ZWNi
M2QwODgxOWZlY2I4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxz
L2VtcHR5Lmh0bWwKQEAgLTI2LDE1ICsyNiwxMSBAQCBjb25zdCBpZHMgPSBbCiAgICJleHRlcm5h
bC1xdW90ZWQiCiBdOwogCi1jb25zdCBpbmxpbmVfdXJsID0gbG9jYXRpb24uaHJlZjsKLWNvbnN0
IGV4dGVybmFsX3VybCA9IG5ldyBVUkwoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigibGlua1tyZWw9
c3R5bGVzaGVldF0iKS5ocmVmLCBsb2NhdGlvbi5ocmVmKS5ocmVmOwotCiBmb3IgKGxldCBpZCBv
ZiBpZHMpIHsKICAgICB0ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBjb25zdCBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKLSAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBpZC5zdGFy
dHNXaXRoKCJpbmxpbmUtIikgPyBpbmxpbmVfdXJsIDogZXh0ZXJuYWxfdXJsOwogICAgICAgICBj
b25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKLSAgICAgICAgYXNzZXJ0
X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAndXJsKCInICsgZXhwZWN0ZWQgKyAn
IiknKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAn
dXJsKCIiKScpOwogICAgIH0sICJlbXB0eSBVUkw6ICIgKyBpZCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFn
bWVudC1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzkzOGU2YzFiNmNlNjhmYzYwODU4
ZDNjNDgyOTU2ZTZiMTAyMDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIGVtcHR5IFVSTDogaW5saW5l
LXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogaW5saW5lLXF1b3RlZAorUEFTUyBlbXB0eSBVUkw6
IGV4dGVybmFsLXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwtcXVvdGVkCitQQVNT
IGVtcHR5IFVSTDogZXh0ZXJuYWwtdmFyaWFibGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdt
ZW50LW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk3
ZmVlZjdkNDM5YzU0NmY3ZjQ3NmI2NzRiMGZiMjUyZmI1OGIyNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8dGl0bGU+RnJhZ21lbnQtb24gVVJMcyBiZWhhdmlvdXI8L3RpdGxlPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj1odHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy8jbG9jYWwtdXJs
cz4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHN0eWxl
PgorI2lubGluZS11bnF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCNmb28pOwor
fQorCisjaW5saW5lLXF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIjZm9vIik7
Cit9Cis8L3N0eWxlPgorPGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0L2ZyYWdtZW50
LW9ubHktdXJscy5jc3M+Cis8ZGl2IGlkPSJpbmxpbmUtdW5xdW90ZWQiPjwvZGl2PgorPGRpdiBp
ZD0iaW5saW5lLXF1b3RlZCI+PC9kaXY+Cis8ZGl2IGlkPSJleHRlcm5hbC11bnF1b3RlZCI+PC9k
aXY+Cis8ZGl2IGlkPSJleHRlcm5hbC1xdW90ZWQiPjwvZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwt
dmFyaWFibGUiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlkcyA9IFsKKyAgImlubGluZS11bnF1
b3RlZCIsCisgICJpbmxpbmUtcXVvdGVkIiwKKyAgImV4dGVybmFsLXVucXVvdGVkIiwKKyAgImV4
dGVybmFsLXF1b3RlZCIsCisgICJleHRlcm5hbC12YXJpYWJsZSIsCitdOworCitmb3IgKGxldCBp
ZCBvZiBpZHMpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGVbImJhY2tn
cm91bmQtaW1hZ2UiXSwgJ3VybCgiI2ZvbyIpJyk7CisgICAgfSwgImVtcHR5IFVSTDogIiArIGlk
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8t
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZWZhNjVmZjgyN2ZhZjJlM2UwNWViMGZkODIyNmJiMTljMjg3
OWMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgYmFzZS1yZWxhdGl2ZSBVUkw6IHJl
bGF0aXZlLWltYWdlLXVybCBUeXBlIGVycm9yCitGQUlMIGJhc2UtcmVsYXRpdmUgVVJMOiByZWxh
dGl2ZS1pbWFnZS12YXJpYWJsZS11cmwgVHlwZSBlcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
cmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10
by1iYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZTEyN2FiMmJkODRkOGE1OTY1ZmE0MmJiZTcwNGY3
YmQwYjZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJh
c2UuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5VUkxzIGlu
IGVtYmVkZGVkIHN0eWxlIHNoZWV0cyByZXNvbHZlIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCBi
YXNlIFVSSTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8YmFzZSBocmVmPSJodHRwOi8ve3tob3N0c1thbHRdW3d3
d119fSI+Cis8c3R5bGU+Cis6cm9vdCB7CisgICAgLS1pbWFnZS1wYXRoOiB1cmwoImltYWdlcy90
ZXN0LnBuZyIpOworfQorI3JlbGF0aXZlLWltYWdlLXVybCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisKKyNyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11
cmwgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgpOworfQorPC9zdHls
ZT4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXVybCI+PC9kaXY+Cis8ZGl2IGlkPSJyZWxhdGl2
ZS1pbWFnZS12YXJpYWJsZS11cmwiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlkcyA9IFsKKyAg
InJlbGF0aXZlLWltYWdlLXVybCIsCisgICJyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwiCitd
OworCitmb3IgKGxldCBpZCBvZiBpZHMpIHsKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgY29u
c3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IGJhY2tn
cm91bmRJbWFnZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpWyJiYWNrZ3JvdW5k
LWltYWdlIl07CisgICAgICAgIGNvbnN0IGJhc2VSZWxhdGl2ZUltYWdlVVJMID0gbmV3IFVSTCgi
aW1hZ2VzL3Rlc3QucG5nIiwgZG9jdW1lbnQuYmFzZVVSSSk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7YmFzZVJlbGF0aXZlSW1hZ2VVUkwuaHJl
Zn0iKWApOworICAgIH0sICJiYXNlLXJlbGF0aXZlIFVSTDogIiArIGlkKTsKK30KKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZjkxNDY3NTcyMWQxYTUyY2EzM2QzNmY4NjhhNDAzMTUxMjNlYmZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVl
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc3R5bGVzaGVldC1yZWxhdGl2
ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtaW1hZ2UKK1BBU1Mgc3R5bGVzaGVldC1yZWxhdGl2
ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UKK1BBU1Mgc3R5bGVzaGVl
dC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1h
Z2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0NzVkOTcwNTI3MmJmMDBhZDIzNjI2YTlmNWEzYTg1ZGYyNThhYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0bWwKQEAgLTAs
MCArMSwzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VVJMcyBpbiBhIHN0eWxlc2hlZXQg
cmVzb2x2ZSByZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldDwvdGl0bGU+Cis8bGluayByZWw9aGVs
cCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxz
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8bGluayBp
ZD0ic3R5bGVzaGVldCIgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0L3JlbGF0aXZlLXVybHMu
Y3NzPgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSI+PC9kaXY+Cis8ZGl2IGlk
PSJzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIj48L2Rpdj4KKzxkaXYgaWQ9InN0
eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2UiPjwvZGl2PgorPHN0eWxl
PgorICAgIDpyb290IHsKKyAgICAgICAgLS1pbWFnZS1wYXRoLWRvY3VtZW50OiB1cmwoImltYWdl
cy90ZXN0LnBuZyIpOworICAgIH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorY29uc3QgaWRzID0gWwor
ICAic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSIsCisgICJzdHlsZXNoZWV0LXJlbGF0aXZlLXZh
cmlhYmxlLWltYWdlIiwKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUt
aW1hZ2UiLAorXTsKKworZm9yIChsZXQgaWQgb2YgaWRzKSB7CisgICAgdGVzdCgoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBj
b25zdCBiYWNrZ3JvdW5kSW1hZ2VTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKVsi
YmFja2dyb3VuZC1pbWFnZSJdOworCisgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICBjb25zdCBzaGVldFJlbGF0
aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBzdHlsZXNoZWV0LmhyZWYp
OworCisgICAgICAgIGFzc2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7
c2hlZXRSZWxhdGl2ZUltYWdlVVJMLmhyZWZ9IilgKTsKKyAgICB9LCAic3R5bGVzaGVldC1yZWxh
dGl2ZSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBw
b3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5
LXVybHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYmQ5ZGFiOTlhYzRmZTEzZTkwZjExOGEyMmZiMGM5NzY3
ZGE4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVudC1vbmx5LXVy
bHMuY3NzCkBAIC0wLDAgKzEsMTUgQEAKKzpyb290IHsKKyAgICAtLWZyYWdtZW50LWltYWdlLXVy
bDogdXJsKCIjZm9vIik7Cit9CisKKyNleHRlcm5hbC11bnF1b3RlZCB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCNmb28pOworfQorCisjZXh0ZXJuYWwtcXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoIiNmb28iKTsKK30KKworI2V4dGVybmFsLXZhcmlhYmxlIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1mcmFnbWVudC1pbWFnZS11cmwpOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxh
dGl2ZS11cmxzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzU0YzY1NWU5ODk4Y2ZmODQ1ZmY3OGRmNzE3Y2Nh
N2M3M2YwMzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJs
cy5jc3MKQEAgLTAsMCArMSwxNSBAQAorOnJvb3QgeworICAgIC0taW1hZ2UtcGF0aC1zdHlsZXNo
ZWV0OiB1cmwoImltYWdlcy90ZXN0LnBuZyIpOworfQorCisjc3R5bGVzaGVldC1yZWxhdGl2ZS1p
bWFnZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisK
KyNzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB2YXIoLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQpOworfQorCisjc3R5bGVzaGVldC1yZWxh
dGl2ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdmFy
KC0taW1hZ2UtcGF0aC1kb2N1bWVudCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCmluZGV4IGE5OTNm
OGZlYjAzMWJjZjc1ZjE4YWIwOTU1YzYyM2IzMTExNWViMmEuLjhiNDRmNWNkMWY5YTY0NzUxNTdi
YmVjODQ3NjAxOGI1NWVkMmU0OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCkBAIC0xNSwzICsxNSw1
IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9y
dC9lbXB0eS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3czYy1pbXBvcnQubG9nCmluZGV4IDNjMWE0NTRjMGE2YmVh
YzViNjQ1OWIyNDU4ZDAxYjIzMjNjNjQ2OTguLjJhZDI2MmI1M2MyOGUzYWQ2YTRhMzAyMjRlZDFk
MjYwYWVkMTU0NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3Vy
bHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDYgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9u
bHkuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9y
ZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444620</attachid>
            <date>2021-11-17 18:01:09 -0800</date>
            <delta_ts>2021-11-18 12:32:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211118150107.patch</filename>
            <type>text/plain</type>
            <size>21635</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI1MTEyZTI0OGQyNDdj
NDVhMzE4YWE5OWQ5MDkwOTliOWZmMGYwNi4uZmZlZDg3YjAzYWI5NDM2MmMwNDgyMDEwMTZjYWY1
ZjFjOGNhMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJM
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJ
bWFnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpjb21wbGV0ZVVSTCBjb25zdCk6CisKIDIwMjEtMTEtMDggIFBhdHJpY2sgR3JpZmZp
cyAgPHBncmlmZmlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5vbmNlLWhpZGlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDZlMmVhMGI4ZTMzYWM5Mzky
YzYyNDUxNzhmY2ZmYjJkZDdjZmRkNzIuLmU1NTdjZGQ2ZDkyZDAxOWI1OWU5YWMzMGEyZDkwODBm
NmFkNjYwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTg0LDYgKzg0
LDkgQEAgYm9vbCBDU1NJbWFnZVZhbHVlOjppc1BlbmRpbmcoKSBjb25zdAogCiBVUkwgQ1NTSW1h
Z2VWYWx1ZTo6cmVyZXNvbHZlZFVSTChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7
CisgICAgaWYgKGlzQ1NTTG9jYWxVUkwobV9sb2NhdGlvbi5yZXNvbHZlZFVSTC5zdHJpbmcoKSkp
CisgICAgICAgIHJldHVybiBtX2xvY2F0aW9uLnJlc29sdmVkVVJMOworCiAgICAgLy8gUmUtcmVz
b2x2aW5nIHRoZSBVUkwgaXMgaW1wb3J0YW50IGZvciBjYXNlcyB3aGVyZSByZXNvbHZlZFVSTCBp
cyBzdGlsbCBub3QgYW4gYWJzb2x1dGUgVVJMLgogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0
aGVyZSB3YXMgbm8gYWJzb2x1dGUgYmFzZSBVUkwgd2hlbiB0aGUgdmFsdWUgd2FzIGNyZWF0ZWQs
IGxpa2UgYSBzdHlsZSBmcm9tIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJhc2UgVVJMLgogICAgIHJl
dHVybiBkb2N1bWVudC5jb21wbGV0ZVVSTChtX2xvY2F0aW9uLnJlc29sdmVkVVJMLnN0cmluZygp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDRmM2Y0NWFlODRhOWQ4ZGY1M2I2OWI2YjMz
MzY2MGQ4YzNjZmJjOGIuLjU0OTFkNmU2NjFmYWFhN2RkOTliNGY1MWIyODIyNjA1ZjhlZGU0MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtMjI5LDYgKzIyOSwxMSBAQCBib29sIENTU1Zh
bHVlOjplcXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBDU1NWYWx1ZTo6aXNDU1NMb2NhbFVSTChTdHJpbmdWaWV3IHJlbGF0aXZl
VVJMKQoreworICAgIHJldHVybiByZWxhdGl2ZVVSTC5pc0VtcHR5KCkgfHwgcmVsYXRpdmVVUkwu
c3RhcnRzV2l0aCgnIycpOworfQorCiBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAog
ewogICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggMjll
YTRiNmQxMTY2NDI5NmE3N2YxZGQ5Njc2ZTYwMjhkNTdiZDUzYi4uMjI2ZTFlYjgyOTlkODY2MWNi
NzMyNzY1NTU4ODk0NDhmNmQ0NDUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTE1Miw2ICsx
NTIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU1ZhbHVlJikgY29uc3Q7
CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gZXF1YWxzKG90aGVyKTsgfQogCisgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12
YWx1ZXMtNC8jbG9jYWwtdXJscworICAgIC8vIEVtcHR5IFVSTHMgYW5kIGZyYWdtZW50LW9ubHkg
VVJMcyBzaG91bGQgbm90IGJlIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBiYXNlIFVSTC4KKyAg
ICBzdGF0aWMgYm9vbCBpc0NTU0xvY2FsVVJMKFN0cmluZ1ZpZXcgcmVsYXRpdmVVUkwpOworCiBw
cm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IENsYXNzVHlwZUJpdHMgPSA2Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKaW5kZXgg
OWZjZWFmMGYzZjNhMDMzOTg1ZDc1NzQzMTJiYjA1OTY0ZDZkYzlmOC4uNGIzNDNhMzI2OGIzOWI2
MmY5ODc5OTAxNjVlMGQ1ZjY1YTg0MDBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCkBAIC0yNDUsOCArMjQ1LDEzIEBAIGJvb2wgQ1NTUGFy
c2VyQ29udGV4dDo6aXNQcm9wZXJ0eVJ1bnRpbWVEaXNhYmxlZChDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5KSBjb25zdAogUmVzb2x2ZWRVUkwgQ1NTUGFyc2VyQ29udGV4dDo6Y29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0CiB7CiAgICAgYXV0byByZXN1bHQgPSBbJl0gKCkgLT4g
UmVzb2x2ZWRVUkwgeworICAgICAgICAvLyBTZWUgYWxzbyBEb2N1bWVudDo6Y29tcGxldGVVUkwo
Y29uc3QgU3RyaW5nJikKICAgICAgICAgaWYgKHN0cmluZy5pc051bGwoKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CisKKyAgICAgICAgaWYgKENTU1ZhbHVlOjppc0NTU0xvY2FsVVJMKHN0cmlu
ZykpCisgICAgICAgICAgICByZXR1cm4geyBzdHJpbmcsIHsgVVJMKCksIHN0cmluZyB9IH07CisK
ICAgICAgICAgaWYgKGNoYXJzZXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHsgc3Ry
aW5nLCB7IGJhc2VVUkwsIHN0cmluZyB9IH07CiAgICAgICAgIGF1dG8gZW5jb2RpbmdGb3JVUkxQ
YXJzaW5nID0gVGV4dEVuY29kaW5nIHsgY2hhcnNldCB9LmVuY29kaW5nRm9yRm9ybVN1Ym1pc3Np
b25PclVSTFBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY2NTU1NWE4YzQy
MGFjOGZhYzQxNzMzZjI4MGM1MWIwMDY1ZmM3Y2YuLjRhNmJmZmM1NWE0MGEzMTBjMDA4ZWVlNjc1
MTk5MmE1MWNjYmUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTU5MiwxMSArNTU5
MiwxMyBAQCB2b2lkIERvY3VtZW50OjpzZXREZWNvZGVyKFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNv
ZGVyPiYmIGRlY29kZXIpCiAKIFVSTCBEb2N1bWVudDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFVSTCYgYmFzZVVSTE92ZXJyaWRlLCBGb3JjZVVURjggZm9yY2VVVEY4KSBj
b25zdAogeworICAgIC8vIFNlZSBhbHNvIENTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJMKGNv
bnN0IFN0cmluZyYpCisKICAgICAvLyBBbHdheXMgcmV0dXJuIGEgbnVsbCBVUkwgd2hlbiBwYXNz
ZWQgYSBudWxsIHN0cmluZy4KICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNoYW5nZSB0aGUgVVJM
IGNvbnN0cnVjdG9yIHRvIGhhdmUgdGhpcyBiZWhhdmlvcj8KLSAgICAvLyBTZWUgYWxzbyBbQ1NT
XVN0eWxlU2hlZXQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpCiAgICAgaWYgKHVybC5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOworCiAgICAgY29uc3QgVVJMJiBiYXNlVVJMID0g
KChiYXNlVVJMT3ZlcnJpZGUuaXNFbXB0eSgpIHx8IGJhc2VVUkxPdmVycmlkZSA9PSBhYm91dEJs
YW5rVVJMKCkpICYmIHBhcmVudERvY3VtZW50KCkpID8gcGFyZW50RG9jdW1lbnQoKS0+YmFzZVVS
TCgpIDogYmFzZVVSTE92ZXJyaWRlOwogICAgIGlmICghbV9kZWNvZGVyIHx8IGZvcmNlVVRGOCA9
PSBGb3JjZVVURjg6OlllcykKICAgICAgICAgcmV0dXJuIFVSTChiYXNlVVJMLCB1cmwpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDU4Y2YzZDk1N2MxODMwYTQxODE1NjcyMzk5
ZjgyZmRiMTMxNjljZS4uMDEyYjYwM2UyZmE5OTQ2Y2VlZTM4OWMwZjAwYjM1MjcxMjY2YTc5ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMTEt
MTEgIE1hdHQgV29vZHJvdyAgPG1hdHQud29vZHJvd0BnbWFpbC5jb20+CisKKyAgICAgICAgSW1w
b3J0IGNzcy9jc3MtdmFsdWVzL3VybHMgd2ViLXBsYXRmb3JtLXRlc3RzCisgICAgICAgIERvbid0
IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBoYW5kbGluZyBvZiBlbXB0
eSBhbmQgZnJhZ21lbnQgdXJsKClzIGZvciBpbWFnZXMgdG8gbm90IGNvbnZlcnQgdG8gYSBmdWxs
eSByZXNvbHZlZAorICAgICAgICBwYXRoLCBhbmQgaW5zdGVhZCBwcmVzZXJ2ZSB0aGVtIGFzLWlz
LCB0byBtYXRjaCBjc3MtdmFsdWVzNCByZXF1aXJlbWVudHMuCisKKyAgICAgICAgSW1wb3J0IG5l
dyB0ZXN0cyBpbiBjc3MvY3NzLXZhbHVlcy91cmxzIGZyb20gNWUzMTg3ODU2YTMxMWY1ODMxMjQ3
MzVjYWQ1YTAzYmFhNjE5NTFiMyBhbmQKKyAgICAgICAgYWRkIGV4cGVjdGF0aW9ucyBmb3IgdGhl
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1w
dHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL2VtcHR5Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHku
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVz
L3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxh
dGl2ZS10by1iYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVl
cy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdt
ZW50LW9ubHktdXJscy5jc3M6IEFkZGVkLgorICAgICAgICAoOnJvb3QpOgorICAgICAgICAoI2V4
dGVybmFsLXVucXVvdGVkKToKKyAgICAgICAgKCNleHRlcm5hbC1xdW90ZWQpOgorICAgICAgICAo
I2V4dGVybmFsLXZhcmlhYmxlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3NzOiBBZGRlZC4KKyAgICAgICAg
KDpyb290KToKKyAgICAgICAgKCNzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlKToKKyAgICAgICAg
KCNzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlKToKKyAgICAgICAgKCNzdHlsZXNo
ZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdlKToKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3czYy1pbXBv
cnQubG9nOgorCiAyMDIxLTExLTA4ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3JpZmZpc0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBub25jZS1oaWRpbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQtY3Vyc29yLXByb3BlcnR5LWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkLWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5odG1sCmluZGV4
IDNlZjEyZGYwY2FmZWM1Zjk4Y2JlYzE3ZWFlZjUxOTM1NTU0MGVkM2EuLjY0ZmIxMGU1ZDEzYjk4
MTM2OWRkODliNjdkMjU4ODk5NWQ5MTUwMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ludmFsaWQtY3Vyc29yLXByb3BlcnR5LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvaW52YWxpZC1jdXJzb3ItcHJvcGVydHktY3Jhc2guaHRtbApAQCAtNyw4ICs3LDgg
QEAKICAgICAgICAgICAgIAogICAgICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0aGVEaXYnKTsKICAgICAgICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShkLCAnJyk7Ci0gICAgICAgIAotICAgICAgICBpZiAoc3R5bGUgJiYgc3R5
bGUuY3Vyc29yID09ICd1cmwoIicgKyBkb2N1bWVudC5sb2NhdGlvbiArICciKSwgYXV0bycpCisK
KyAgICAgICAgaWYgKHN0eWxlICYmIHN0eWxlLmN1cnNvciA9PSAndXJsKCIiKSwgYXV0bycpCiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0g
J1NVQ0NFU1MnOyAgICAgICAgICAgIAogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5q
c29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24KaW5kZXggOWQ4NTllZjFiNDNjN2YzY2RmZGUxOTk2OWUwMGMwOGQzN2ZjOWRlMy4u
YjEzOWMxOGRkMWM3NWVhZjZjYzYzYjg0MTQzMzc1NmFhMDkyNTQzOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24K
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24KQEAgLTE0Myw2ICsxNDMsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2Zvcm1zIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2l0aW9ucyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdWkiOiAiaW1wb3J0IiwgCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YXJpYWJsZXMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdp
bGwtY2hhbmdlIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13
cml0aW5nLW1vZGVzIjogImltcG9ydCIsIApAQCAtMzIxLDcgKzMyMiw3IEBACiAgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4
dGZpZWxkc2VsZWN0aW9uLXNldFJhbmdlVGV4dC5odG1sIjogInNraXAiLCAKICAgICAid2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS10ZXh0YXJlYS1lbGVtZW50Ijog
ImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvaW50ZXJh
Y3RpdmUtZWxlbWVudHMvdGhlLWRpYWxvZy1lbGVtZW50LyI6ICJpbXBvcnQiLCAKLSAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1z
dW1tYXJ5LWVsZW1lbnQiOiAic2tpcCIsCisgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtc3VtbWFyeS1lbGVtZW50IjogInNraXAi
LCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2xpbmtzL2Rvd25sb2Fk
aW5nLXJlc291cmNlcyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2xpbmtzL2ZvbGxvd2luZy1oeXBlcmxpbmtzIjogInNraXAiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmtzLWNyZWF0ZWQtYnktYS1h
bmQtYXJlYS1lbGVtZW50cyI6ICJza2lwIiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9lbXB0eS5odG1sCmluZGV4IDNhYjcwNzkzOTZjNTE3ZDdhYmQ2MzM0YjBjZmFk
ZjdlZGE0NzExMTUuLjM3NDg1Njc1NDU2OWNiMjgzNzUzN2E0Y2U2N2RmYzE2YmQzOTMxNjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sCkBAIC03
LDEwICs3LDEyIEBACiA8c3R5bGU+CiAjaW5saW5lLXVucXVvdGVkIHsKICAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoKTsKKyAgICBjdXJzb3I6IHVybCgpLCBwb2ludGVyOwogfQogCiAjaW5saW5l
LXF1b3RlZCB7CiAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIiKTsKKyAgICBjdXJzb3I6IHVy
bCgiIiksIHBvaW50ZXI7CiB9CiA8L3N0eWxlPgogPGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj1z
dXBwb3J0L2VtcHR5LXVybHMuY3NzPgpAQCAtMjYsMTUgKzI4LDEyIEBAIGNvbnN0IGlkcyA9IFsK
ICAgImV4dGVybmFsLXF1b3RlZCIKIF07CiAKLWNvbnN0IGlubGluZV91cmwgPSBsb2NhdGlvbi5o
cmVmOwotY29uc3QgZXh0ZXJuYWxfdXJsID0gbmV3IFVSTChkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJsaW5rW3JlbD1zdHlsZXNoZWV0XSIpLmhyZWYsIGxvY2F0aW9uLmhyZWYpLmhyZWY7Ci0KIGZv
ciAobGV0IGlkIG9mIGlkcykgewogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIGNvbnN0
IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotICAgICAgICBjb25zdCBleHBlY3Rl
ZCA9IGlkLnN0YXJ0c1dpdGgoImlubGluZS0iKSA/IGlubGluZV91cmwgOiBleHRlcm5hbF91cmw7
CiAgICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlWyJiYWNrZ3JvdW5kLWltYWdlIl0sICd1cmwoIicgKyBl
eHBlY3RlZCArICciKScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlWyJiYWNrZ3JvdW5k
LWltYWdlIl0sICd1cmwoIiIpJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGVbImN1cnNv
ciJdLCAndXJsKCIiKSwgcG9pbnRlcicpOwogICAgIH0sICJlbXB0eSBVUkw6ICIgKyBpZCk7CiB9
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzkzOGU2
YzFiNmNlNjhmYzYwODU4ZDNjNDgyOTU2ZTZiMTAyMDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIGVt
cHR5IFVSTDogaW5saW5lLXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogaW5saW5lLXF1b3RlZAor
UEFTUyBlbXB0eSBVUkw6IGV4dGVybmFsLXVucXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJu
YWwtcXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwtdmFyaWFibGUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL2ZyYWdtZW50LW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTcxNTNhZGY4Zjg0MzdiZGY1NDc2OGM1ODkxNTE0MWVkNmNlZjRjMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5Lmh0bWwKQEAgLTAsMCArMSw0MCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+RnJhZ21lbnQtb24gVVJMcyBiZWhhdmlvdXI8L3Rp
dGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj1odHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZh
bHVlcy8jbG9jYWwtdXJscz4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwv
c2NyaXB0PgorPHN0eWxlPgorI2lubGluZS11bnF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKCNmb28pOworICAgIGN1cnNvcjogdXJsKCNmb28pLCBwb2ludGVyOworfQorCisjaW5s
aW5lLXF1b3RlZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIjZm9vIik7CisgICAgY3Vy
c29yOiB1cmwoIiNmb28iKSwgcG9pbnRlcjsKK30KKzwvc3R5bGU+Cis8bGluayByZWw9c3R5bGVz
aGVldCBocmVmPXN1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcz4KKzxkaXYgaWQ9ImlubGlu
ZS11bnF1b3RlZCI+PC9kaXY+Cis8ZGl2IGlkPSJpbmxpbmUtcXVvdGVkIj48L2Rpdj4KKzxkaXYg
aWQ9ImV4dGVybmFsLXVucXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9ImV4dGVybmFsLXF1b3RlZCI+
PC9kaXY+Cis8ZGl2IGlkPSJleHRlcm5hbC12YXJpYWJsZSI+PC9kaXY+Cis8c2NyaXB0PgorY29u
c3QgaWRzID0gWworICAiaW5saW5lLXVucXVvdGVkIiwKKyAgImlubGluZS1xdW90ZWQiLAorICAi
ZXh0ZXJuYWwtdW5xdW90ZWQiLAorICAiZXh0ZXJuYWwtcXVvdGVkIiwKKyAgImV4dGVybmFsLXZh
cmlhYmxlIiwKK107CisKK2ZvciAobGV0IGlkIG9mIGlkcykgeworICAgIHRlc3QoZnVuY3Rpb24o
KSB7CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAg
ICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzdHlsZVsiYmFja2dyb3VuZC1pbWFnZSJdLCAndXJsKCIjZm9vIiknKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiY3Vyc29yIl0sICd1cmwoIiNmb28iKSwgcG9p
bnRlcicpOworICAgIH0sICJlbXB0eSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGVm
YTY1ZmY4MjdmYWYyZTNlMDVlYjBmZDgyMjZiYjE5YzI4NzljMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1
ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorCitGQUlMIGJhc2UtcmVsYXRpdmUgVVJMOiByZWxhdGl2ZS1pbWFnZS11cmwgVHlwZSBl
cnJvcgorRkFJTCBiYXNlLXJlbGF0aXZlIFVSTDogcmVsYXRpdmUtaW1hZ2UtdmFyaWFibGUtdXJs
IFR5cGUgZXJyb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJmYmUxMjdhYjJiZDg0ZDhhNTk2NWZhNDJiYmU3MDRmN2JkMGI2YjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VVJMcyBpbiBlbWJlZGRlZCBzdHlsZSBzaGVldHMg
cmVzb2x2ZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgYmFzZSBVUkk8L3RpdGxlPgorPGxpbmsg
cmVsPWhlbHAgaHJlZj1odHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy8jcmVsYXRp
dmUtdXJscz4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgor
PGJhc2UgaHJlZj0iaHR0cDovL3t7aG9zdHNbYWx0XVt3d3ddfX0iPgorPHN0eWxlPgorOnJvb3Qg
eworICAgIC0taW1hZ2UtcGF0aDogdXJsKCJpbWFnZXMvdGVzdC5wbmciKTsKK30KKyNyZWxhdGl2
ZS1pbWFnZS11cmwgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvdGVzdC5wbmcp
OworfQorCisjcmVsYXRpdmUtaW1hZ2UtdmFyaWFibGUtdXJsIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB2YXIoLS1pbWFnZS1wYXRoKTsKK30KKzwvc3R5bGU+Cis8ZGl2IGlkPSJyZWxhdGl2ZS1p
bWFnZS11cmwiPjwvZGl2PgorPGRpdiBpZD0icmVsYXRpdmUtaW1hZ2UtdmFyaWFibGUtdXJsIj48
L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCBpZHMgPSBbCisgICJyZWxhdGl2ZS1pbWFnZS11cmwiLAor
ICAicmVsYXRpdmUtaW1hZ2UtdmFyaWFibGUtdXJsIgorXTsKKworZm9yIChsZXQgaWQgb2YgaWRz
KSB7CisgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoaWQpOworICAgICAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2VTdHlsZSA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGVsKVsiYmFja2dyb3VuZC1pbWFnZSJdOworICAgICAgICBjb25z
dCBiYXNlUmVsYXRpdmVJbWFnZVVSTCA9IG5ldyBVUkwoImltYWdlcy90ZXN0LnBuZyIsIGRvY3Vt
ZW50LmJhc2VVUkkpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGJhY2tncm91bmRJbWFnZVN0eWxl
LCBgdXJsKCIke2Jhc2VSZWxhdGl2ZUltYWdlVVJMLmhyZWZ9IilgKTsKKyAgICB9LCAiYmFzZS1y
ZWxhdGl2ZSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9y
ZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29s
dmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY5MTQ2
NzU3MjFkMWE1MmNhMzNkMzZmODY4YTQwMzE1MTIzZWJmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCitQQVNTIHN0eWxlc2hlZXQtcmVsYXRpdmUgVVJMOiBzdHlsZXNoZWV0LXJlbGF0
aXZlLWltYWdlCitQQVNTIHN0eWxlc2hlZXQtcmVsYXRpdmUgVVJMOiBzdHlsZXNoZWV0LXJlbGF0
aXZlLXZhcmlhYmxlLWltYWdlCitQQVNTIHN0eWxlc2hlZXQtcmVsYXRpdmUgVVJMOiBzdHlsZXNo
ZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJs
cy9yZXNvbHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJl
bGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDc1ZDk3MDUyNzJiZjAwYWQy
MzYyNmE5ZjVhM2E4NWRmMjU4YWI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUt
cmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPHRpdGxlPlVSTHMgaW4gYSBzdHlsZXNoZWV0IHJlc29sdmUgcmVsYXRpdmUgdG8gdGhl
IHN0eWxlc2hlZXQ8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj1odHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLXZhbHVlcy8jcmVsYXRpdmUtdXJscz4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPGxpbmsgaWQ9InN0eWxlc2hlZXQiIHJlbD1zdHls
ZXNoZWV0IGhyZWY9c3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcz4KKzxkaXYgaWQ9InN0eWxlc2hl
ZXQtcmVsYXRpdmUtaW1hZ2UiPjwvZGl2PgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS12
YXJpYWJsZS1pbWFnZSI+PC9kaXY+Cis8ZGl2IGlkPSJzdHlsZXNoZWV0LXJlbGF0aXZlLWRvY3Vt
ZW50LXZhcmlhYmxlLWltYWdlIj48L2Rpdj4KKzxzdHlsZT4KKyAgICA6cm9vdCB7CisgICAgICAg
IC0taW1hZ2UtcGF0aC1kb2N1bWVudDogdXJsKCJpbWFnZXMvdGVzdC5wbmciKTsKKyAgICB9Cis8
L3N0eWxlPgorPHNjcmlwdD4KK2NvbnN0IGlkcyA9IFsKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUt
aW1hZ2UiLAorICAic3R5bGVzaGVldC1yZWxhdGl2ZS12YXJpYWJsZS1pbWFnZSIsCisgICJzdHls
ZXNoZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdlIiwKK107CisKK2ZvciAobGV0
IGlkIG9mIGlkcykgeworICAgIHRlc3QoKCkgPT4geworICAgICAgICBjb25zdCBlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgY29uc3QgYmFja2dyb3VuZEltYWdlU3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbClbImJhY2tncm91bmQtaW1hZ2UiXTsKKwor
ICAgICAgICBjb25zdCBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxl
c2hlZXQiKTsKKyAgICAgICAgY29uc3Qgc2hlZXRSZWxhdGl2ZUltYWdlVVJMID0gbmV3IFVSTCgi
aW1hZ2VzL3Rlc3QucG5nIiwgc3R5bGVzaGVldC5ocmVmKTsKKworICAgICAgICBhc3NlcnRfZXF1
YWxzKGJhY2tncm91bmRJbWFnZVN0eWxlLCBgdXJsKCIke3NoZWV0UmVsYXRpdmVJbWFnZVVSTC5o
cmVmfSIpYCk7CisgICAgfSwgInN0eWxlc2hlZXQtcmVsYXRpdmUgVVJMOiAiICsgaWQpOworfQor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9lbXB0eS11cmxzLmNzcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCmluZGV4IGNlZWQzNThmMzQ4NDI1YWQ4MjQwNGI5
NDU1MWJiMmExN2U1ZWI1MzMuLjA1NTllM2IyMzUyNTE5ZTAwY2M1MTk2ZGM5OWE2YWI2OWU4YWU5
MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJs
cy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCkBAIC0xLDcgKzEsOSBAQAogI2V4dGVybmFsLXVucXVv
dGVkIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKTsKKyAgICBjdXJzb3I6IHVybCgpLCBw
b2ludGVyOwogfQogCiAjZXh0ZXJuYWwtcXVvdGVkIHsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1
cmwoIiIpOworICAgIGN1cnNvcjogdXJsKCIiKSwgcG9pbnRlcjsKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFn
bWVudC1vbmx5LXVybHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMzlhMDg3ZTllZWI3ODY5Njc3NTFhY2Ji
YmRhMTEyYWQ1OTBmZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9mcmFnbWVu
dC1vbmx5LXVybHMuY3NzCkBAIC0wLDAgKzEsMTkgQEAKKzpyb290IHsKKyAgICAtLWZyYWdtZW50
LWltYWdlLXVybDogdXJsKCIjZm9vIik7CisgICAgLS1mcmFnbWVudC1jdXJzb3ItdXJsOiB1cmwo
IiNmb28iKSwgcG9pbnRlcjsKK30KKworI2V4dGVybmFsLXVucXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoI2Zvbyk7CisgICAgY3Vyc29yOiB1cmwoI2ZvbyksIHBvaW50ZXI7Cit9
CisKKyNleHRlcm5hbC1xdW90ZWQgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiI2ZvbyIp
OworICAgIGN1cnNvcjogdXJsKCIjZm9vIiksIHBvaW50ZXI7Cit9CisKKyNleHRlcm5hbC12YXJp
YWJsZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZnJhZ21lbnQtaW1hZ2UtdXJsKTsK
KyAgICBjdXJzb3I6IHZhcigtLWZyYWdtZW50LWN1cnNvci11cmwpOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVl
cy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2
ZS11cmxzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzU0YzY1NWU5ODk4Y2ZmODQ1ZmY3OGRmNzE3Y2NhN2M3
M2YwMzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJscy5j
c3MKQEAgLTAsMCArMSwxNSBAQAorOnJvb3QgeworICAgIC0taW1hZ2UtcGF0aC1zdHlsZXNoZWV0
OiB1cmwoImltYWdlcy90ZXN0LnBuZyIpOworfQorCisjc3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFn
ZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisKKyNz
dHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdl
OiB2YXIoLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQpOworfQorCisjc3R5bGVzaGVldC1yZWxhdGl2
ZS1kb2N1bWVudC12YXJpYWJsZS1pbWFnZSB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0t
aW1hZ2UtcGF0aC1kb2N1bWVudCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCmluZGV4IGE5OTNmOGZl
YjAzMWJjZjc1ZjE4YWIwOTU1YzYyM2IzMTExNWViMmEuLjhiNDRmNWNkMWY5YTY0NzUxNTdiYmVj
ODQ3NjAxOGI1NWVkMmU0OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nCkBAIC0xNSwzICsxNSw1IEBA
IE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9l
bXB0eS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVz
L3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL3czYy1pbXBvcnQubG9nCmluZGV4IDNjMWE0NTRjMGE2YmVhYzVi
NjQ1OWIyNDU4ZDAxYjIzMjNjNjQ2OTguLjJhZDI2MmI1M2MyOGUzYWQ2YTRhMzAyMjRlZDFkMjYw
YWVkMTU0NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
dzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDYgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHku
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNv
bHZlLXJlbGF0aXZlLXRvLXN0eWxlc2hlZXQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444717</attachid>
            <date>2021-11-18 12:32:40 -0800</date>
            <delta_ts>2021-11-18 18:37:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211119093238.patch</filename>
            <type>text/plain</type>
            <size>20932</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkzZWRhMGQ0MmM0Mjgw
YWMwMzc4YjI5N2YyZDc3MGYwYWQzZmY3Yy4uMjFlZjYyYjQyMzQ1YjA2OGZiNTFkM2NhNWJhZGMw
MjU2MjBkZTg4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE5ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9y
IGVtcHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGlu
ZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICog
Y3NzL0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6
cmVyZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJM
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJ
bWFnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpjb21wbGV0ZVVSTCBjb25zdCk6CisKIDIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3Ig
Z2V0dGluZyBhbmQgc2V0dGluZyB0aGUgY2FtZXJhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1
ZS5jcHAKaW5kZXggNmUyZWEwYjhlMzNhYzkzOTJjNjI0NTE3OGZjZmZiMmRkN2NmZGQ3Mi4uZTU1
N2NkZDZkOTJkMDE5YjU5ZTlhYzMwYTJkOTA4MGY2YWQ2NjA4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmNwcApAQCAtODQsNiArODQsOSBAQCBib29sIENTU0ltYWdlVmFsdWU6Omlz
UGVuZGluZygpIGNvbnN0CiAKIFVSTCBDU1NJbWFnZVZhbHVlOjpyZXJlc29sdmVkVVJMKGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKKyAgICBpZiAoaXNDU1NMb2NhbFVSTChtX2xv
Y2F0aW9uLnJlc29sdmVkVVJMLnN0cmluZygpKSkKKyAgICAgICAgcmV0dXJuIG1fbG9jYXRpb24u
cmVzb2x2ZWRVUkw7CisKICAgICAvLyBSZS1yZXNvbHZpbmcgdGhlIFVSTCBpcyBpbXBvcnRhbnQg
Zm9yIGNhc2VzIHdoZXJlIHJlc29sdmVkVVJMIGlzIHN0aWxsIG5vdCBhbiBhYnNvbHV0ZSBVUkwu
CiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZXJlIHdhcyBubyBhYnNvbHV0ZSBiYXNlIFVS
TCB3aGVuIHRoZSB2YWx1ZSB3YXMgY3JlYXRlZCwgbGlrZSBhIHN0eWxlIGZyb20gYSBkb2N1bWVu
dCB3aXRob3V0IGEgYmFzZSBVUkwuCiAgICAgcmV0dXJuIGRvY3VtZW50LmNvbXBsZXRlVVJMKG1f
bG9jYXRpb24ucmVzb2x2ZWRVUkwuc3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5k
ZXggZmEwNDk1OTQ2NzNjMDJkMzIxY2NkZjU2ZWY2NmNhN2FjYmNmOWZmNS4uYmFjZTM0YTY3ZjQy
NTFiMDQ0MGFjY2IwNWE2YTA4N2MzY2E4MmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBA
IC0yMzIsNiArMjMyLDExIEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYg
b3RoZXIpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENTU1ZhbHVlOjppc0NT
U0xvY2FsVVJMKFN0cmluZ1ZpZXcgcmVsYXRpdmVVUkwpCit7CisgICAgcmV0dXJuIHJlbGF0aXZl
VVJMLmlzRW1wdHkoKSB8fCByZWxhdGl2ZVVSTC5zdGFydHNXaXRoKCcjJyk7Cit9CisKIFN0cmlu
ZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBmYmRlOGUxOTNmZTUwZjc0OTI5NjIzYzE5MzI4Nzc0
MWFlNTMxOWY5Li45NDg3ODZlNDIyN2NkNzBkZTYyOWIwMzdmYWNiMzEwZDg3N2M3NTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTU1LDYgKzE1NSwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBl
cXVhbHMoY29uc3QgQ1NTVmFsdWUmKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Q1NTVmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CiAKKyAgICAv
LyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy00LyNsb2NhbC11cmxzCisgICAgLy8g
RW1wdHkgVVJMcyBhbmQgZnJhZ21lbnQtb25seSBVUkxzIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQg
cmVsYXRpdmUgdG8gdGhlIGJhc2UgVVJMLgorICAgIHN0YXRpYyBib29sIGlzQ1NTTG9jYWxVUkwo
U3RyaW5nVmlldyByZWxhdGl2ZVVSTCk7CisKIHByb3RlY3RlZDoKIAogICAgIHN0YXRpYyBjb25z
dCBzaXplX3QgQ2xhc3NUeXBlQml0cyA9IDY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA5ZmNlYWYwZjNmM2EwMzM5ODVkNzU3NDMxMmJi
MDU5NjRkNmRjOWY4Li40YjM0M2EzMjY4YjM5YjYyZjk4Nzk5MDE2NWUwZDVmNjVhODQwMGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAg
LTI0NSw4ICsyNDUsMTMgQEAgYm9vbCBDU1NQYXJzZXJDb250ZXh0Ojppc1Byb3BlcnR5UnVudGlt
ZURpc2FibGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CiBSZXNvbHZlZFVSTCBDU1NQ
YXJzZXJDb250ZXh0Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3QKIHsK
ICAgICBhdXRvIHJlc3VsdCA9IFsmXSAoKSAtPiBSZXNvbHZlZFVSTCB7CisgICAgICAgIC8vIFNl
ZSBhbHNvIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKQogICAgICAgICBpZiAo
c3RyaW5nLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICBpZiAo
Q1NTVmFsdWU6OmlzQ1NTTG9jYWxVUkwoc3RyaW5nKSkKKyAgICAgICAgICAgIHJldHVybiB7IHN0
cmluZywgeyBVUkwoKSwgc3RyaW5nIH0gfTsKKwogICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4geyBzdHJpbmcsIHsgYmFzZVVSTCwgc3RyaW5nIH0gfTsK
ICAgICAgICAgYXV0byBlbmNvZGluZ0ZvclVSTFBhcnNpbmcgPSBUZXh0RW5jb2RpbmcgeyBjaGFy
c2V0IH0uZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggNjk3Y2Y2YTVhODJkZDBkMTcxM2ZmZDVmYmI5NjQ0NzllMTFlYTcx
Mi4uODQxM2UwMTRmNmU3NGNhY2IzNThhZmNmYzAyMjQwOWEyNWUzMDJjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC01NTkxLDExICs1NTkxLDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERl
Y29kZXIoUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+JiYgZGVjb2RlcikKIAogVVJMIERvY3Vt
ZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVVJMJiBiYXNlVVJMT3Zl
cnJpZGUsIEZvcmNlVVRGOCBmb3JjZVVURjgpIGNvbnN0CiB7CisgICAgLy8gU2VlIGFsc28gQ1NT
UGFyc2VyQ29udGV4dDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikKKwogICAgIC8vIEFsd2F5
cyByZXR1cm4gYSBudWxsIFVSTCB3aGVuIHBhc3NlZCBhIG51bGwgc3RyaW5nLgogICAgIC8vIEZJ
WE1FOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBVUkwgY29uc3RydWN0b3IgdG8gaGF2ZSB0aGlzIGJl
aGF2aW9yPwotICAgIC8vIFNlZSBhbHNvIFtDU1NdU3R5bGVTaGVldDo6Y29tcGxldGVVUkwoY29u
c3QgU3RyaW5nJikKICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7
CisKICAgICBjb25zdCBVUkwmIGJhc2VVUkwgPSAoKGJhc2VVUkxPdmVycmlkZS5pc0VtcHR5KCkg
fHwgYmFzZVVSTE92ZXJyaWRlID09IGFib3V0QmxhbmtVUkwoKSkgJiYgcGFyZW50RG9jdW1lbnQo
KSkgPyBwYXJlbnREb2N1bWVudCgpLT5iYXNlVVJMKCkgOiBiYXNlVVJMT3ZlcnJpZGU7CiAgICAg
aWYgKCFtX2RlY29kZXIgfHwgZm9yY2VVVEY4ID09IEZvcmNlVVRGODo6WWVzKQogICAgICAgICBy
ZXR1cm4gVVJMKGJhc2VVUkwsIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRl
eCAzMzhkMmEyYzFmYmRmZTZhMDdhZGE2Mjk5M2I1MTEzMGI3MTJmZDg3Li5hMDc4YzRjOWIzOGI2
ZjA2YWZlZTYxYTU5NDA4NTBiZjJkZmUyNTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMS0xMS0xOSAgTWF0dCBXb29kcm93ICA8bWF0dC53b29k
cm93QGdtYWlsLmNvbT4KKworICAgICAgICBJbXBvcnQgY3NzL2Nzcy12YWx1ZXMvdXJscyB3ZWIt
cGxhdGZvcm0tdGVzdHMKKyAgICAgICAgRG9uJ3QgbW9kaWZ5IGZyYWdtZW50LW9ubHkgb3IgZW1w
dHkgaW1hZ2UgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5OTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hhbmdlIGhhbmRsaW5nIG9mIGVtcHR5IGFuZCBmcmFnbWVudCB1cmwoKXMgZm9yIGlt
YWdlcyB0byBub3QgY29udmVydCB0byBhIGZ1bGx5IHJlc29sdmVkCisgICAgICAgIHBhdGgsIGFu
ZCBpbnN0ZWFkIHByZXNlcnZlIHRoZW0gYXMtaXMsIHRvIG1hdGNoIGNzcy12YWx1ZXM0IHJlcXVp
cmVtZW50cy4KKworICAgICAgICBJbXBvcnQgbmV3IHRlc3RzIGluIGNzcy9jc3MtdmFsdWVzL3Vy
bHMgZnJvbSA1ZTMxODc4NTZhMzExZjU4MzEyNDczNWNhZDVhMDNiYWE2MTk1MWIzIGFuZAorICAg
ICAgICBhZGQgZXhwZWN0YXRpb25zIGZvciB0aGUgbmV3IHRlc3RzLgorCisgICAgICAgICogcmVz
b3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJh
c2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1y
ZWxhdGl2ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1z
dHlsZXNoZWV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzczogQWRkZWQuCisg
ICAgICAgICg6cm9vdCk6CisgICAgICAgICgjZXh0ZXJuYWwtdW5xdW90ZWQpOgorICAgICAgICAo
I2V4dGVybmFsLXF1b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtdmFyaWFibGUpOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRp
dmUtdXJscy5jc3M6IEFkZGVkLgorICAgICAgICAoOnJvb3QpOgorICAgICAgICAoI3N0eWxlc2hl
ZXQtcmVsYXRpdmUtaW1hZ2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFi
bGUtaW1hZ2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFi
bGUtaW1hZ2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3N1cHBvcnQvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMTEtMTggIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBjc3Mt
dHJhbnNmb3JtcyBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2lu
dmFsaWQtY3Vyc29yLXByb3BlcnR5LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
bnZhbGlkLWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5odG1sCmluZGV4IDNlZjEyZGYwY2FmZWM1Zjk4
Y2JlYzE3ZWFlZjUxOTM1NTU0MGVkM2EuLjY0ZmIxMGU1ZDEzYjk4MTM2OWRkODliNjdkMjU4ODk5
NWQ5MTUwMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQtY3Vyc29y
LXByb3BlcnR5LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1j
dXJzb3ItcHJvcGVydHktY3Jhc2guaHRtbApAQCAtNyw4ICs3LDggQEAKICAgICAgICAgICAgIAog
ICAgICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGVEaXYnKTsKICAgICAg
ICAgdmFyIHN0eWxlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkLCAn
Jyk7Ci0gICAgICAgIAotICAgICAgICBpZiAoc3R5bGUgJiYgc3R5bGUuY3Vyc29yID09ICd1cmwo
IicgKyBkb2N1bWVudC5sb2NhdGlvbiArICciKSwgYXV0bycpCisKKyAgICAgICAgaWYgKHN0eWxl
ICYmIHN0eWxlLmN1cnNvciA9PSAndXJsKCIiKSwgYXV0bycpCiAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gJ1NVQ0NFU1MnOyAgICAgICAg
ICAgIAogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggNjQ3
NzUxNDhjNTYyNzJmOTM4MWVhOGZjMmEzZjU2YjIyZDliODdkOS4uOWQwMjA4MzUwMWRjNTkxMWNk
ZDVmMTU3NTRhMDQ3M2VkYjhmMDg4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTE0NCw2
ICsxNDQsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zLyI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMi
OiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpIjogImltcG9y
dCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscyI6ICJpbXBv
cnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFyaWFibGVzIjogImltcG9y
dCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBv
cnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2RlcyI6ICJp
bXBvcnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0
bWwKaW5kZXggM2FiNzA3OTM5NmM1MTdkN2FiZDYzMzRiMGNmYWRmN2VkYTQ3MTExNS4uMzc0ODU2
NzU0NTY5Y2IyODM3NTM3YTRjZTY3ZGZjMTZiZDM5MzE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2Vt
cHR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKQEAgLTcsMTAgKzcsMTIgQEAKIDxzdHls
ZT4KICNpbmxpbmUtdW5xdW90ZWQgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOworICAg
IGN1cnNvcjogdXJsKCksIHBvaW50ZXI7CiB9CiAKICNpbmxpbmUtcXVvdGVkIHsKICAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoIiIpOworICAgIGN1cnNvcjogdXJsKCIiKSwgcG9pbnRlcjsKIH0K
IDwvc3R5bGU+CiA8bGluayByZWw9c3R5bGVzaGVldCBocmVmPXN1cHBvcnQvZW1wdHktdXJscy5j
c3M+CkBAIC0yNiwxNSArMjgsMTIgQEAgY29uc3QgaWRzID0gWwogICAiZXh0ZXJuYWwtcXVvdGVk
IgogXTsKIAotY29uc3QgaW5saW5lX3VybCA9IGxvY2F0aW9uLmhyZWY7Ci1jb25zdCBleHRlcm5h
bF91cmwgPSBuZXcgVVJMKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImxpbmtbcmVsPXN0eWxlc2hl
ZXRdIikuaHJlZiwgbG9jYXRpb24uaHJlZikuaHJlZjsKLQogZm9yIChsZXQgaWQgb2YgaWRzKSB7
CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCk7Ci0gICAgICAgIGNvbnN0IGV4cGVjdGVkID0gaWQuc3RhcnRzV2l0aCgi
aW5saW5lLSIpID8gaW5saW5lX3VybCA6IGV4dGVybmFsX3VybDsKICAgICAgICAgY29uc3Qgc3R5
bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMo
c3R5bGVbImJhY2tncm91bmQtaW1hZ2UiXSwgJ3VybCgiJyArIGV4cGVjdGVkICsgJyIpJyk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGVbImJhY2tncm91bmQtaW1hZ2UiXSwgJ3VybCgiIikn
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiY3Vyc29yIl0sICd1cmwoIiIpLCBwb2lu
dGVyJyk7CiAgICAgfSwgImVtcHR5IFVSTDogIiArIGlkKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50
LW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOTM4ZTZjMWI2Y2U2OGZjNjA4NThkM2M0
ODI5NTZlNmIxMDIwMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtdW5x
dW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtcXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0
ZXJuYWwtdW5xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBleHRlcm5hbC1xdW90ZWQKK1BBU1MgZW1w
dHkgVVJMOiBleHRlcm5hbC12YXJpYWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQt
b25seS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzE1M2Fk
ZjhmODQzN2JkZjU0NzY4YzU4OTE1MTQxZWQ2Y2VmNGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL2ZyYWdtZW50LW9ubHkuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IWRvY3R5cGUgaHRtbD4K
Kzx0aXRsZT5GcmFnbWVudC1vbiBVUkxzIGJlaGF2aW91cjwvdGl0bGU+Cis8bGluayByZWw9aGVs
cCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNsb2NhbC11cmxzPgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c3R5bGU+Cisj
aW5saW5lLXVucXVvdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI2Zvbyk7CisgICAg
Y3Vyc29yOiB1cmwoI2ZvbyksIHBvaW50ZXI7Cit9CisKKyNpbmxpbmUtcXVvdGVkIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoIiNmb28iKTsKKyAgICBjdXJzb3I6IHVybCgiI2ZvbyIpLCBw
b2ludGVyOworfQorPC9zdHlsZT4KKzxsaW5rIHJlbD1zdHlsZXNoZWV0IGhyZWY9c3VwcG9ydC9m
cmFnbWVudC1vbmx5LXVybHMuY3NzPgorPGRpdiBpZD0iaW5saW5lLXVucXVvdGVkIj48L2Rpdj4K
KzxkaXYgaWQ9ImlubGluZS1xdW90ZWQiPjwvZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwtdW5xdW90
ZWQiPjwvZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwtcXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9ImV4
dGVybmFsLXZhcmlhYmxlIj48L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCBpZHMgPSBbCisgICJpbmxp
bmUtdW5xdW90ZWQiLAorICAiaW5saW5lLXF1b3RlZCIsCisgICJleHRlcm5hbC11bnF1b3RlZCIs
CisgICJleHRlcm5hbC1xdW90ZWQiLAorICAiZXh0ZXJuYWwtdmFyaWFibGUiLAorXTsKKworZm9y
IChsZXQgaWQgb2YgaWRzKSB7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qg
ZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IHN0eWxlID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxl
WyJiYWNrZ3JvdW5kLWltYWdlIl0sICd1cmwoIiNmb28iKScpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHN0eWxlWyJjdXJzb3IiXSwgJ3VybCgiI2ZvbyIpLCBwb2ludGVyJyk7CisgICAgfSwgImVt
cHR5IFVSTDogIiArIGlkKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29s
dmUtcmVsYXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2
ZS10by1iYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWZhNjVmZjgyN2ZhZjJlM2UwNWVi
MGZkODIyNmJiMTljMjg3OWMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVs
YXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgYmFzZS1y
ZWxhdGl2ZSBVUkw6IHJlbGF0aXZlLWltYWdlLXVybCBUeXBlIGVycm9yCitGQUlMIGJhc2UtcmVs
YXRpdmUgVVJMOiByZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwgVHlwZSBlcnJvcgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVz
b2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZTEyN2FiMmJkODRkOGE1
OTY1ZmE0MmJiZTcwNGY3YmQwYjZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZl
LXJlbGF0aXZlLXRvLWJhc2UuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4K
Kzx0aXRsZT5VUkxzIGluIGVtYmVkZGVkIHN0eWxlIHNoZWV0cyByZXNvbHZlIHJlbGF0aXZlIHRv
IHRoZSBkb2N1bWVudCBiYXNlIFVSSTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxzPgorPHNjcmlwdCBz
cmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8YmFzZSBocmVmPSJodHRwOi8v
e3tob3N0c1thbHRdW3d3d119fSI+Cis8c3R5bGU+Cis6cm9vdCB7CisgICAgLS1pbWFnZS1wYXRo
OiB1cmwoImltYWdlcy90ZXN0LnBuZyIpOworfQorI3JlbGF0aXZlLWltYWdlLXVybCB7CisgICAg
YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisKKyNyZWxhdGl2ZS1p
bWFnZS12YXJpYWJsZS11cmwgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBh
dGgpOworfQorPC9zdHlsZT4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXVybCI+PC9kaXY+Cis8
ZGl2IGlkPSJyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwiPjwvZGl2PgorPHNjcmlwdD4KK2Nv
bnN0IGlkcyA9IFsKKyAgInJlbGF0aXZlLWltYWdlLXVybCIsCisgICJyZWxhdGl2ZS1pbWFnZS12
YXJpYWJsZS11cmwiCitdOworCitmb3IgKGxldCBpZCBvZiBpZHMpIHsKKyAgICB0ZXN0KCgpID0+
IHsKKyAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAg
ICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZWwpWyJiYWNrZ3JvdW5kLWltYWdlIl07CisgICAgICAgIGNvbnN0IGJhc2VSZWxhdGl2ZUltYWdl
VVJMID0gbmV3IFVSTCgiaW1hZ2VzL3Rlc3QucG5nIiwgZG9jdW1lbnQuYmFzZVVSSSk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7YmFzZVJlbGF0
aXZlSW1hZ2VVUkwuaHJlZn0iKWApOworICAgIH0sICJiYXNlLXJlbGF0aXZlIFVSTDogIiArIGlk
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8t
c3R5bGVzaGVldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHls
ZXNoZWV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjkxNDY3NTcyMWQxYTUyY2EzM2QzNmY4
NjhhNDAzMTUxMjNlYmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRp
dmUtdG8tc3R5bGVzaGVldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc3R5
bGVzaGVldC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtaW1hZ2UKK1BBU1Mgc3R5
bGVzaGVldC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UK
K1BBU1Mgc3R5bGVzaGVldC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1l
bnQtdmFyaWFibGUtaW1hZ2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUt
dG8tc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVl
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE0NzVkOTcwNTI3MmJmMDBhZDIzNjI2YTlmNWEzYTg1ZGYyNThh
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNo
ZWV0Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VVJMcyBp
biBhIHN0eWxlc2hlZXQgcmVzb2x2ZSByZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldDwvdGl0bGU+
Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVz
LyNyZWxhdGl2ZS11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Cis8bGluayBpZD0ic3R5bGVzaGVldCIgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0
L3JlbGF0aXZlLXVybHMuY3NzPgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSI+
PC9kaXY+Cis8ZGl2IGlkPSJzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIj48L2Rp
dj4KKzxkaXYgaWQ9InN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2Ui
PjwvZGl2PgorPHN0eWxlPgorICAgIDpyb290IHsKKyAgICAgICAgLS1pbWFnZS1wYXRoLWRvY3Vt
ZW50OiB1cmwoImltYWdlcy90ZXN0LnBuZyIpOworICAgIH0KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
Y29uc3QgaWRzID0gWworICAic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSIsCisgICJzdHlsZXNo
ZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIiwKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUtZG9j
dW1lbnQtdmFyaWFibGUtaW1hZ2UiLAorXTsKKworZm9yIChsZXQgaWQgb2YgaWRzKSB7CisgICAg
dGVzdCgoKSA9PiB7CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpOworICAgICAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2VTdHlsZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsKVsiYmFja2dyb3VuZC1pbWFnZSJdOworCisgICAgICAgIGNvbnN0IHN0eWxl
c2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICBj
b25zdCBzaGVldFJlbGF0aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBz
dHlsZXNoZWV0LmhyZWYpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdl
U3R5bGUsIGB1cmwoIiR7c2hlZXRSZWxhdGl2ZUltYWdlVVJMLmhyZWZ9IilgKTsKKyAgICB9LCAi
c3R5bGVzaGVldC1yZWxhdGl2ZSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZW1wdHkt
dXJscy5jc3MKaW5kZXggY2VlZDM1OGYzNDg0MjVhZDgyNDA0Yjk0NTUxYmIyYTE3ZTVlYjUzMy4u
MDU1OWUzYjIzNTI1MTllMDBjYzUxOTZkYzk5YTZhYjY5ZThhZTkwZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3N1cHBvcnQvZW1wdHktdXJscy5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZW1wdHktdXJs
cy5jc3MKQEAgLTEsNyArMSw5IEBACiAjZXh0ZXJuYWwtdW5xdW90ZWQgewogICAgIGJhY2tncm91
bmQtaW1hZ2U6IHVybCgpOworICAgIGN1cnNvcjogdXJsKCksIHBvaW50ZXI7CiB9CiAKICNleHRl
cm5hbC1xdW90ZWQgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiIik7CisgICAgY3Vyc29y
OiB1cmwoIiIpLCBwb2ludGVyOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZnJhZ21l
bnQtb25seS11cmxzLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmMzOWEwODdlOWVlYjc4Njk2Nzc1MWFjYmJiZGExMTJhZDU5MGZmOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKQEAg
LTAsMCArMSwxOSBAQAorOnJvb3QgeworICAgIC0tZnJhZ21lbnQtaW1hZ2UtdXJsOiB1cmwoIiNm
b28iKTsKKyAgICAtLWZyYWdtZW50LWN1cnNvci11cmw6IHVybCgiI2ZvbyIpLCBwb2ludGVyOwor
fQorCisjZXh0ZXJuYWwtdW5xdW90ZWQgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgjZm9v
KTsKKyAgICBjdXJzb3I6IHVybCgjZm9vKSwgcG9pbnRlcjsKK30KKworI2V4dGVybmFsLXF1b3Rl
ZCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIjZm9vIik7CisgICAgY3Vyc29yOiB1cmwo
IiNmb28iKSwgcG9pbnRlcjsKK30KKworI2V4dGVybmFsLXZhcmlhYmxlIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB2YXIoLS1mcmFnbWVudC1pbWFnZS11cmwpOworICAgIGN1cnNvcjogdmFyKC0t
ZnJhZ21lbnQtY3Vyc29yLXVybCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxh
dGl2ZS11cmxzLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEzNTRjNjU1ZTk4OThjZmY4NDVmZjc4ZGY3MTdjY2E3YzczZjAzMGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpAQCAtMCwwICsxLDE1IEBA
Cis6cm9vdCB7CisgICAgLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQ6IHVybCgiaW1hZ2VzL3Rlc3Qu
cG5nIik7Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoaW1hZ2VzL3Rlc3QucG5nKTsKK30KKworI3N0eWxlc2hlZXQtcmVsYXRpdmUt
dmFyaWFibGUtaW1hZ2UgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgt
c3R5bGVzaGVldCk7Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxl
LWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZS1wYXRoLWRvY3VtZW50
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxz
L3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKaW5kZXggYTk5M2Y4ZmViMDMxYmNmNzVmMThhYjA5NTVj
NjIzYjMxMTE1ZWIyYS4uOGI0NGY1Y2QxZjlhNjQ3NTE1N2JiZWM4NDc2MDE4YjU1ZWQyZTQ4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1
cHBvcnQvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9uZQogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0
aXZlLXVybHMuY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMv
dzNjLWltcG9ydC5sb2cKaW5kZXggM2MxYTQ1NGMwYTZiZWFjNWI2NDU5YjI0NThkMDFiMjMyM2M2
NDY5OC4uMmFkMjYyYjUzYzI4ZTNhZDZhNGEzMDIyNGVkMWQyNjBhZWQxNTQ1NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZwpAQCAt
MTUsMyArMTUsNiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL2VtcHR5Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29s
dmUtcmVsYXRpdmUtdG8tYmFzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5
bGVzaGVldC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444768</attachid>
            <date>2021-11-18 18:37:17 -0800</date>
            <delta_ts>2021-11-19 07:37:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229917-20211119153716.patch</filename>
            <type>text/plain</type>
            <size>20926</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTkzZWRhMGQ0MmM0Mjgw
YWMwMzc4YjI5N2YyZDc3MGYwYWQzZmY3Yy4uMDg0ZDNlZjgyM2I5NjI3MTczODc1ODhlZTU3ODdk
Yzc4NWYxOWU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTExLTE5ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0Lndvb2Ryb3dAZ21haWwuY29tPgorCisgICAgICAgIERvbid0IG1vZGlm
eSBmcmFnbWVudC1vbmx5IG9yIGVtcHR5IGltYWdlIFVSTHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTkxNworCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIERvbid0IG1vZGlmeSBmcmFnbWVudC1vbmx5IG9yIGVt
cHR5IGltYWdlIFVSTHMsIGFzLXBlciBjc3MtdmFsdWVzLTQKKworICAgICAgICBFeGlzdGluZyB3
ZWItcGxhdGZvcm0tdGVzdHMgYXJlIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICogY3Nz
L0NTU0ltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6cmVy
ZXNvbHZlZFVSTCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OmNvbXBsZXRlVVJMIGNv
bnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVJbWFn
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojpjb21wbGV0ZVVSTCBjb25zdCk6CisKIDIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgZ2V0
dGluZyBhbmQgc2V0dGluZyB0aGUgY2FtZXJhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5j
cHAKaW5kZXggNmUyZWEwYjhlMzNhYzkzOTJjNjI0NTE3OGZjZmZiMmRkN2NmZGQ3Mi4uZTU1N2Nk
ZDZkOTJkMDE5YjU5ZTlhYzMwYTJkOTA4MGY2YWQ2NjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmNwcApAQCAtODQsNiArODQsOSBAQCBib29sIENTU0ltYWdlVmFsdWU6OmlzUGVu
ZGluZygpIGNvbnN0CiAKIFVSTCBDU1NJbWFnZVZhbHVlOjpyZXJlc29sdmVkVVJMKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCkgY29uc3QKIHsKKyAgICBpZiAoaXNDU1NMb2NhbFVSTChtX2xvY2F0
aW9uLnJlc29sdmVkVVJMLnN0cmluZygpKSkKKyAgICAgICAgcmV0dXJuIG1fbG9jYXRpb24ucmVz
b2x2ZWRVUkw7CisKICAgICAvLyBSZS1yZXNvbHZpbmcgdGhlIFVSTCBpcyBpbXBvcnRhbnQgZm9y
IGNhc2VzIHdoZXJlIHJlc29sdmVkVVJMIGlzIHN0aWxsIG5vdCBhbiBhYnNvbHV0ZSBVUkwuCiAg
ICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZXJlIHdhcyBubyBhYnNvbHV0ZSBiYXNlIFVSTCB3
aGVuIHRoZSB2YWx1ZSB3YXMgY3JlYXRlZCwgbGlrZSBhIHN0eWxlIGZyb20gYSBkb2N1bWVudCB3
aXRob3V0IGEgYmFzZSBVUkwuCiAgICAgcmV0dXJuIGRvY3VtZW50LmNvbXBsZXRlVVJMKG1fbG9j
YXRpb24ucmVzb2x2ZWRVUkwuc3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXgg
ZmEwNDk1OTQ2NzNjMDJkMzIxY2NkZjU2ZWY2NmNhN2FjYmNmOWZmNS4uYmFjZTM0YTY3ZjQyNTFi
MDQ0MGFjY2IwNWE2YTA4N2MzY2E4MmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0y
MzIsNiArMjMyLDExIEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3Ro
ZXIpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIENTU1ZhbHVlOjppc0NTU0xv
Y2FsVVJMKFN0cmluZ1ZpZXcgcmVsYXRpdmVVUkwpCit7CisgICAgcmV0dXJuIHJlbGF0aXZlVVJM
LmlzRW1wdHkoKSB8fCByZWxhdGl2ZVVSTC5zdGFydHNXaXRoKCcjJyk7Cit9CisKIFN0cmluZyBD
U1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjbGFzc1R5cGUoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBmYmRlOGUxOTNmZTUwZjc0OTI5NjIzYzE5MzI4Nzc0MWFl
NTMxOWY5Li45NDg3ODZlNDIyN2NkNzBkZTYyOWIwMzdmYWNiMzEwZDg3N2M3NTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuaApAQCAtMTU1LDYgKzE1NSwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcXVh
bHMoY29uc3QgQ1NTVmFsdWUmKSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NT
VmFsdWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBlcXVhbHMob3RoZXIpOyB9CiAKKyAgICAvLyBo
dHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy00LyNsb2NhbC11cmxzCisgICAgLy8gRW1w
dHkgVVJMcyBhbmQgZnJhZ21lbnQtb25seSBVUkxzIHNob3VsZCBub3QgYmUgcmVzb2x2ZWQgcmVs
YXRpdmUgdG8gdGhlIGJhc2UgVVJMLgorICAgIHN0YXRpYyBib29sIGlzQ1NTTG9jYWxVUkwoU3Ry
aW5nVmlldyByZWxhdGl2ZVVSTCk7CisKIHByb3RlY3RlZDoKIAogICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgQ2xhc3NUeXBlQml0cyA9IDY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXJDb250ZXh0LmNwcAppbmRleCA5ZmNlYWYwZjNmM2EwMzM5ODVkNzU3NDMxMmJiMDU5
NjRkNmRjOWY4Li40YjM0M2EzMjY4YjM5YjYyZjk4Nzk5MDE2NWUwZDVmNjVhODQwMGEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTI0
NSw4ICsyNDUsMTMgQEAgYm9vbCBDU1NQYXJzZXJDb250ZXh0Ojppc1Byb3BlcnR5UnVudGltZURp
c2FibGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CiBSZXNvbHZlZFVSTCBDU1NQYXJz
ZXJDb250ZXh0Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3QKIHsKICAg
ICBhdXRvIHJlc3VsdCA9IFsmXSAoKSAtPiBSZXNvbHZlZFVSTCB7CisgICAgICAgIC8vIFNlZSBh
bHNvIERvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKQogICAgICAgICBpZiAoc3Ry
aW5nLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKKworICAgICAgICBpZiAoQ1NT
VmFsdWU6OmlzQ1NTTG9jYWxVUkwoc3RyaW5nKSkKKyAgICAgICAgICAgIHJldHVybiB7IHN0cmlu
ZywgeyBVUkwoKSwgc3RyaW5nIH0gfTsKKwogICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4geyBzdHJpbmcsIHsgYmFzZVVSTCwgc3RyaW5nIH0gfTsKICAg
ICAgICAgYXV0byBlbmNvZGluZ0ZvclVSTFBhcnNpbmcgPSBUZXh0RW5jb2RpbmcgeyBjaGFyc2V0
IH0uZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbk9yVVJMUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNjk3Y2Y2YTVhODJkZDBkMTcxM2ZmZDVmYmI5NjQ0NzllMTFlYTcxMi4u
ODQxM2UwMTRmNmU3NGNhY2IzNThhZmNmYzAyMjQwOWEyNWUzMDJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC01NTkxLDExICs1NTkxLDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERlY29k
ZXIoUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+JiYgZGVjb2RlcikKIAogVVJMIERvY3VtZW50
Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgVVJMJiBiYXNlVVJMT3ZlcnJp
ZGUsIEZvcmNlVVRGOCBmb3JjZVVURjgpIGNvbnN0CiB7CisgICAgLy8gU2VlIGFsc28gQ1NTUGFy
c2VyQ29udGV4dDo6Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikKKwogICAgIC8vIEFsd2F5cyBy
ZXR1cm4gYSBudWxsIFVSTCB3aGVuIHBhc3NlZCBhIG51bGwgc3RyaW5nLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgY2hhbmdlIHRoZSBVUkwgY29uc3RydWN0b3IgdG8gaGF2ZSB0aGlzIGJlaGF2
aW9yPwotICAgIC8vIFNlZSBhbHNvIFtDU1NdU3R5bGVTaGVldDo6Y29tcGxldGVVUkwoY29uc3Qg
U3RyaW5nJikKICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CisK
ICAgICBjb25zdCBVUkwmIGJhc2VVUkwgPSAoKGJhc2VVUkxPdmVycmlkZS5pc0VtcHR5KCkgfHwg
YmFzZVVSTE92ZXJyaWRlID09IGFib3V0QmxhbmtVUkwoKSkgJiYgcGFyZW50RG9jdW1lbnQoKSkg
PyBwYXJlbnREb2N1bWVudCgpLT5iYXNlVVJMKCkgOiBiYXNlVVJMT3ZlcnJpZGU7CiAgICAgaWYg
KCFtX2RlY29kZXIgfHwgZm9yY2VVVEY4ID09IEZvcmNlVVRGODo6WWVzKQogICAgICAgICByZXR1
cm4gVVJMKGJhc2VVUkwsIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAz
MzhkMmEyYzFmYmRmZTZhMDdhZGE2Mjk5M2I1MTEzMGI3MTJmZDg3Li4zODY4NzRmYTAyNzBmZDlk
MTY2M2MwNzcwZmJmMTI0MWI2ZTg1YzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOSBAQAorMjAyMS0xMS0xOSAgTWF0dCBXb29kcm93ICA8bWF0dC53b29kcm93
QGdtYWlsLmNvbT4KKworICAgICAgICBJbXBvcnQgY3NzL2Nzcy12YWx1ZXMvdXJscyB3ZWItcGxh
dGZvcm0tdGVzdHMKKyAgICAgICAgRG9uJ3QgbW9kaWZ5IGZyYWdtZW50LW9ubHkgb3IgZW1wdHkg
aW1hZ2UgVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5OTE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
Q2hhbmdlIGhhbmRsaW5nIG9mIGVtcHR5IGFuZCBmcmFnbWVudCB1cmwoKXMgZm9yIGltYWdlcyB0
byBub3QgY29udmVydCB0byBhIGZ1bGx5IHJlc29sdmVkCisgICAgICAgIHBhdGgsIGFuZCBpbnN0
ZWFkIHByZXNlcnZlIHRoZW0gYXMtaXMsIHRvIG1hdGNoIGNzcy12YWx1ZXM0IHJlcXVpcmVtZW50
cy4KKworICAgICAgICBJbXBvcnQgbmV3IHRlc3RzIGluIGNzcy9jc3MtdmFsdWVzL3VybHMgZnJv
bSA1ZTMxODc4NTZhMzExZjU4MzEyNDczNWNhZDVhMDNiYWE2MTk1MWIzIGFuZAorICAgICAgICBh
ZGQgZXhwZWN0YXRpb25zIGZvciB0aGUgbmV3IHRlc3RzLgorCisgICAgICAgICogcmVzb3VyY2Vz
L2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZW1wdHkuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9mcmFnbWVudC1vbmx5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12
YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0aXZlLXRvLWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2
ZS10by1zdHlsZXNoZWV0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNo
ZWV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZh
bHVlcy91cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzczogQWRkZWQuCisgICAgICAg
ICg6cm9vdCk6CisgICAgICAgICgjZXh0ZXJuYWwtdW5xdW90ZWQpOgorICAgICAgICAoI2V4dGVy
bmFsLXF1b3RlZCk6CisgICAgICAgICgjZXh0ZXJuYWwtdmFyaWFibGUpOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvcmVsYXRpdmUtdXJs
cy5jc3M6IEFkZGVkLgorICAgICAgICAoOnJvb3QpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVs
YXRpdmUtaW1hZ2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1h
Z2UpOgorICAgICAgICAoI3N0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1h
Z2UpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1
cHBvcnQvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2c6CisKIDIwMjEtMTEtMTggIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBjc3MtdHJhbnNm
b3JtcyBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQt
Y3Vyc29yLXByb3BlcnR5LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlk
LWN1cnNvci1wcm9wZXJ0eS1jcmFzaC5odG1sCmluZGV4IDNlZjEyZGYwY2FmZWM1Zjk4Y2JlYzE3
ZWFlZjUxOTM1NTU0MGVkM2EuLjY0ZmIxMGU1ZDEzYjk4MTM2OWRkODliNjdkMjU4ODk5NWQ5MTUw
MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ludmFsaWQtY3Vyc29yLXByb3Bl
cnR5LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1jdXJzb3It
cHJvcGVydHktY3Jhc2guaHRtbApAQCAtNyw4ICs3LDggQEAKICAgICAgICAgICAgIAogICAgICAg
ICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGVEaXYnKTsKICAgICAgICAgdmFy
IHN0eWxlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkLCAnJyk7Ci0g
ICAgICAgIAotICAgICAgICBpZiAoc3R5bGUgJiYgc3R5bGUuY3Vyc29yID09ICd1cmwoIicgKyBk
b2N1bWVudC5sb2NhdGlvbiArICciKSwgYXV0bycpCisKKyAgICAgICAgaWYgKHN0eWxlICYmIHN0
eWxlLmN1cnNvciA9PSAndXJsKCIiKSwgYXV0bycpCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gJ1NVQ0NFU1MnOyAgICAgICAgICAgIAog
ICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggNjQ3NzUxNDhj
NTYyNzJmOTM4MWVhOGZjMmEzZjU2YjIyZDliODdkOS4uOWQwMjA4MzUwMWRjNTkxMWNkZDVmMTU3
NTRhMDQ3M2VkYjhmMDg4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTE0NCw2ICsxNDQs
NyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zLyI6ICJpbXBv
cnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMiOiAiaW1w
b3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpIjogImltcG9ydCIsIAor
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscyI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFyaWFibGVzIjogImltcG9ydCIsIAog
ICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5nZSI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2RlcyI6ICJpbXBvcnQi
LCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKaW5k
ZXggM2FiNzA3OTM5NmM1MTdkN2FiZDYzMzRiMGNmYWRmN2VkYTQ3MTExNS4uMzc0ODU2NzU0NTY5
Y2IyODM3NTM3YTRjZTY3ZGZjMTZiZDM5MzE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXZhbHVlcy91cmxzL2VtcHR5Lmh0bWwKQEAgLTcsMTAgKzcsMTIgQEAKIDxzdHlsZT4KICNp
bmxpbmUtdW5xdW90ZWQgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgpOworICAgIGN1cnNv
cjogdXJsKCksIHBvaW50ZXI7CiB9CiAKICNpbmxpbmUtcXVvdGVkIHsKICAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoIiIpOworICAgIGN1cnNvcjogdXJsKCIiKSwgcG9pbnRlcjsKIH0KIDwvc3R5
bGU+CiA8bGluayByZWw9c3R5bGVzaGVldCBocmVmPXN1cHBvcnQvZW1wdHktdXJscy5jc3M+CkBA
IC0yNiwxNSArMjgsMTIgQEAgY29uc3QgaWRzID0gWwogICAiZXh0ZXJuYWwtcXVvdGVkIgogXTsK
IAotY29uc3QgaW5saW5lX3VybCA9IGxvY2F0aW9uLmhyZWY7Ci1jb25zdCBleHRlcm5hbF91cmwg
PSBuZXcgVVJMKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImxpbmtbcmVsPXN0eWxlc2hlZXRdIiku
aHJlZiwgbG9jYXRpb24uaHJlZikuaHJlZjsKLQogZm9yIChsZXQgaWQgb2YgaWRzKSB7CiAgICAg
dGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCk7Ci0gICAgICAgIGNvbnN0IGV4cGVjdGVkID0gaWQuc3RhcnRzV2l0aCgiaW5saW5l
LSIpID8gaW5saW5lX3VybCA6IGV4dGVybmFsX3VybDsKICAgICAgICAgY29uc3Qgc3R5bGUgPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGVb
ImJhY2tncm91bmQtaW1hZ2UiXSwgJ3VybCgiJyArIGV4cGVjdGVkICsgJyIpJyk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoc3R5bGVbImJhY2tncm91bmQtaW1hZ2UiXSwgJ3VybCgiIiknKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZVsiY3Vyc29yIl0sICd1cmwoIiIpLCBwb2ludGVyJyk7
CiAgICAgfSwgImVtcHR5IFVSTDogIiArIGlkKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVl
cy91cmxzL2ZyYWdtZW50LW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOTM4ZTZjMWI2Y2U2OGZjNjA4NThkM2M0ODI5NTZl
NmIxMDIwMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtdW5xdW90ZWQK
K1BBU1MgZW1wdHkgVVJMOiBpbmxpbmUtcXVvdGVkCitQQVNTIGVtcHR5IFVSTDogZXh0ZXJuYWwt
dW5xdW90ZWQKK1BBU1MgZW1wdHkgVVJMOiBleHRlcm5hbC1xdW90ZWQKK1BBU1MgZW1wdHkgVVJM
OiBleHRlcm5hbC12YXJpYWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL2ZyYWdtZW50LW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzE1M2FkZjhmODQz
N2JkZjU0NzY4YzU4OTE1MTQxZWQ2Y2VmNGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2Zy
YWdtZW50LW9ubHkuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRs
ZT5GcmFnbWVudC1vbiBVUkxzIGJlaGF2aW91cjwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVm
PWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNsb2NhbC11cmxzPgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c3R5bGU+CisjaW5saW5l
LXVucXVvdGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI2Zvbyk7CisgICAgY3Vyc29y
OiB1cmwoI2ZvbyksIHBvaW50ZXI7Cit9CisKKyNpbmxpbmUtcXVvdGVkIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoIiNmb28iKTsKKyAgICBjdXJzb3I6IHVybCgiI2ZvbyIpLCBwb2ludGVy
OworfQorPC9zdHlsZT4KKzxsaW5rIHJlbD1zdHlsZXNoZWV0IGhyZWY9c3VwcG9ydC9mcmFnbWVu
dC1vbmx5LXVybHMuY3NzPgorPGRpdiBpZD0iaW5saW5lLXVucXVvdGVkIj48L2Rpdj4KKzxkaXYg
aWQ9ImlubGluZS1xdW90ZWQiPjwvZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwtdW5xdW90ZWQiPjwv
ZGl2PgorPGRpdiBpZD0iZXh0ZXJuYWwtcXVvdGVkIj48L2Rpdj4KKzxkaXYgaWQ9ImV4dGVybmFs
LXZhcmlhYmxlIj48L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCBpZHMgPSBbCisgICJpbmxpbmUtdW5x
dW90ZWQiLAorICAiaW5saW5lLXF1b3RlZCIsCisgICJleHRlcm5hbC11bnF1b3RlZCIsCisgICJl
eHRlcm5hbC1xdW90ZWQiLAorICAiZXh0ZXJuYWwtdmFyaWFibGUiLAorXTsKKworZm9yIChsZXQg
aWQgb2YgaWRzKSB7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3QgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWwpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlWyJiYWNr
Z3JvdW5kLWltYWdlIl0sICd1cmwoIiNmb28iKScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0
eWxlWyJjdXJzb3IiXSwgJ3VybCgiI2ZvbyIpLCBwb2ludGVyJyk7CisgICAgfSwgImVtcHR5IFVS
TDogIiArIGlkKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVs
YXRpdmUtdG8tYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1i
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWZhNjVmZjgyN2ZhZjJlM2UwNWViMGZkODIy
NmJiMTljMjg3OWMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUt
dG8tYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgYmFzZS1yZWxhdGl2
ZSBVUkw6IHJlbGF0aXZlLWltYWdlLXVybCBUeXBlIGVycm9yCitGQUlMIGJhc2UtcmVsYXRpdmUg
VVJMOiByZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwgVHlwZSBlcnJvcgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1iYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1y
ZWxhdGl2ZS10by1iYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZiZTEyN2FiMmJkODRkOGE1OTY1ZmE0
MmJiZTcwNGY3YmQwYjZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9yZXNvbHZlLXJlbGF0
aXZlLXRvLWJhc2UuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRs
ZT5VUkxzIGluIGVtYmVkZGVkIHN0eWxlIHNoZWV0cyByZXNvbHZlIHJlbGF0aXZlIHRvIHRoZSBk
b2N1bWVudCBiYXNlIFVSSTwvdGl0bGU+Cis8bGluayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNyZWxhdGl2ZS11cmxzPgorPHNjcmlwdCBzcmM9L3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8YmFzZSBocmVmPSJodHRwOi8ve3tob3N0
c1thbHRdW3d3d119fSI+Cis8c3R5bGU+Cis6cm9vdCB7CisgICAgLS1pbWFnZS1wYXRoOiB1cmwo
ImltYWdlcy90ZXN0LnBuZyIpOworfQorI3JlbGF0aXZlLWltYWdlLXVybCB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKGltYWdlcy90ZXN0LnBuZyk7Cit9CisKKyNyZWxhdGl2ZS1pbWFnZS12
YXJpYWJsZS11cmwgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgpOwor
fQorPC9zdHlsZT4KKzxkaXYgaWQ9InJlbGF0aXZlLWltYWdlLXVybCI+PC9kaXY+Cis8ZGl2IGlk
PSJyZWxhdGl2ZS1pbWFnZS12YXJpYWJsZS11cmwiPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlk
cyA9IFsKKyAgInJlbGF0aXZlLWltYWdlLXVybCIsCisgICJyZWxhdGl2ZS1pbWFnZS12YXJpYWJs
ZS11cmwiCitdOworCitmb3IgKGxldCBpZCBvZiBpZHMpIHsKKyAgICB0ZXN0KCgpID0+IHsKKyAg
ICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGNv
bnN0IGJhY2tncm91bmRJbWFnZVN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpWyJi
YWNrZ3JvdW5kLWltYWdlIl07CisgICAgICAgIGNvbnN0IGJhc2VSZWxhdGl2ZUltYWdlVVJMID0g
bmV3IFVSTCgiaW1hZ2VzL3Rlc3QucG5nIiwgZG9jdW1lbnQuYmFzZVVSSSk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdlU3R5bGUsIGB1cmwoIiR7YmFzZVJlbGF0aXZlSW1h
Z2VVUkwuaHJlZn0iKWApOworICAgIH0sICJiYXNlLXJlbGF0aXZlIFVSTDogIiArIGlkKTsKK30K
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVz
aGVldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjkxNDY3NTcyMWQxYTUyY2EzM2QzNmY4NjhhNDAz
MTUxMjNlYmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8t
c3R5bGVzaGVldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1Mgc3R5bGVzaGVl
dC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtaW1hZ2UKK1BBU1Mgc3R5bGVzaGVl
dC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFibGUtaW1hZ2UKK1BBU1Mg
c3R5bGVzaGVldC1yZWxhdGl2ZSBVUkw6IHN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFy
aWFibGUtaW1hZ2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5
bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVldC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0NzVkOTcwNTI3MmJmMDBhZDIzNjI2YTlmNWEzYTg1ZGYyNThhYjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvcmVzb2x2ZS1yZWxhdGl2ZS10by1zdHlsZXNoZWV0Lmh0
bWwKQEAgLTAsMCArMSwzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VVJMcyBpbiBhIHN0
eWxlc2hlZXQgcmVzb2x2ZSByZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldDwvdGl0bGU+Cis8bGlu
ayByZWw9aGVscCBocmVmPWh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLyNyZWxh
dGl2ZS11cmxzPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+
Cis8bGluayBpZD0ic3R5bGVzaGVldCIgcmVsPXN0eWxlc2hlZXQgaHJlZj1zdXBwb3J0L3JlbGF0
aXZlLXVybHMuY3NzPgorPGRpdiBpZD0ic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSI+PC9kaXY+
Cis8ZGl2IGlkPSJzdHlsZXNoZWV0LXJlbGF0aXZlLXZhcmlhYmxlLWltYWdlIj48L2Rpdj4KKzxk
aXYgaWQ9InN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQtdmFyaWFibGUtaW1hZ2UiPjwvZGl2
PgorPHN0eWxlPgorICAgIDpyb290IHsKKyAgICAgICAgLS1pbWFnZS1wYXRoLWRvY3VtZW50OiB1
cmwoImltYWdlcy90ZXN0LnBuZyIpOworICAgIH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorY29uc3Qg
aWRzID0gWworICAic3R5bGVzaGVldC1yZWxhdGl2ZS1pbWFnZSIsCisgICJzdHlsZXNoZWV0LXJl
bGF0aXZlLXZhcmlhYmxlLWltYWdlIiwKKyAgInN0eWxlc2hlZXQtcmVsYXRpdmUtZG9jdW1lbnQt
dmFyaWFibGUtaW1hZ2UiLAorXTsKKworZm9yIChsZXQgaWQgb2YgaWRzKSB7CisgICAgdGVzdCgo
KSA9PiB7CisgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwor
ICAgICAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2VTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGVsKVsiYmFja2dyb3VuZC1pbWFnZSJdOworCisgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVzaGVldCIpOworICAgICAgICBjb25zdCBz
aGVldFJlbGF0aXZlSW1hZ2VVUkwgPSBuZXcgVVJMKCJpbWFnZXMvdGVzdC5wbmciLCBzdHlsZXNo
ZWV0LmhyZWYpOworCisgICAgICAgIGFzc2VydF9lcXVhbHMoYmFja2dyb3VuZEltYWdlU3R5bGUs
IGB1cmwoIiR7c2hlZXRSZWxhdGl2ZUltYWdlVVJMLmhyZWZ9IilgKTsKKyAgICB9LCAic3R5bGVz
aGVldC1yZWxhdGl2ZSBVUkw6ICIgKyBpZCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMv
dXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZW1wdHktdXJscy5j
c3MKaW5kZXggY2VlZDM1OGYzNDg0MjVhZDgyNDA0Yjk0NTUxYmIyYTE3ZTVlYjUzMy4uMDU1OWUz
YjIzNTI1MTllMDBjYzUxOTZkYzk5YTZhYjY5ZThhZTkwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1
cHBvcnQvZW1wdHktdXJscy5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZW1wdHktdXJscy5jc3MK
QEAgLTEsNyArMSw5IEBACiAjZXh0ZXJuYWwtdW5xdW90ZWQgewogICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgpOworICAgIGN1cnNvcjogdXJsKCksIHBvaW50ZXI7CiB9CiAKICNleHRlcm5hbC1x
dW90ZWQgewogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiIik7CisgICAgY3Vyc29yOiB1cmwo
IiIpLCBwb2ludGVyOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQvZnJhZ21lbnQtb25s
eS11cmxzLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmMzOWEwODdlOWVlYjc4Njk2Nzc1MWFjYmJiZGExMTJhZDU5MGZmOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2ZyYWdtZW50LW9ubHktdXJscy5jc3MKQEAgLTAsMCAr
MSwxOSBAQAorOnJvb3QgeworICAgIC0tZnJhZ21lbnQtaW1hZ2UtdXJsOiB1cmwoIiNmb28iKTsK
KyAgICAtLWZyYWdtZW50LWN1cnNvci11cmw6IHVybCgiI2ZvbyIpLCBwb2ludGVyOworfQorCisj
ZXh0ZXJuYWwtdW5xdW90ZWQgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgjZm9vKTsKKyAg
ICBjdXJzb3I6IHVybCgjZm9vKSwgcG9pbnRlcjsKK30KKworI2V4dGVybmFsLXF1b3RlZCB7Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIjZm9vIik7CisgICAgY3Vyc29yOiB1cmwoIiNmb28i
KSwgcG9pbnRlcjsKK30KKworI2V4dGVybmFsLXZhcmlhYmxlIHsKKyAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB2YXIoLS1mcmFnbWVudC1pbWFnZS11cmwpOworICAgIGN1cnNvcjogdmFyKC0tZnJhZ21l
bnQtY3Vyc29yLXVybCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11
cmxzLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVybHMuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEz
NTRjNjU1ZTk4OThjZmY4NDVmZjc4ZGY3MTdjY2E3YzczZjAzMGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFs
dWVzL3VybHMvc3VwcG9ydC9yZWxhdGl2ZS11cmxzLmNzcwpAQCAtMCwwICsxLDE1IEBACis6cm9v
dCB7CisgICAgLS1pbWFnZS1wYXRoLXN0eWxlc2hlZXQ6IHVybCgiaW1hZ2VzL3Rlc3QucG5nIik7
Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWltYWdlIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaW1hZ2VzL3Rlc3QucG5nKTsKK30KKworI3N0eWxlc2hlZXQtcmVsYXRpdmUtdmFyaWFi
bGUtaW1hZ2UgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWltYWdlLXBhdGgtc3R5bGVz
aGVldCk7Cit9CisKKyNzdHlsZXNoZWV0LXJlbGF0aXZlLWRvY3VtZW50LXZhcmlhYmxlLWltYWdl
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1pbWFnZS1wYXRoLWRvY3VtZW50KTsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBv
cnQvdzNjLWltcG9ydC5sb2cKaW5kZXggYTk5M2Y4ZmViMDMxYmNmNzVmMThhYjA5NTVjNjIzYjMx
MTE1ZWIyYS4uOGI0NGY1Y2QxZjlhNjQ3NTE1N2JiZWM4NDc2MDE4YjU1ZWQyZTQ4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXZhbHVlcy91cmxzL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKQEAgLTE1LDMgKzE1LDUgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L2VtcHR5LXVybHMuY3NzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3N1
cHBvcnQvZnJhZ21lbnQtb25seS11cmxzLmNzcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy9zdXBwb3J0L3JlbGF0aXZlLXVy
bHMuY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdmFsdWVzL3VybHMvdzNjLWlt
cG9ydC5sb2cKaW5kZXggM2MxYTQ1NGMwYTZiZWFjNWI2NDU5YjI0NThkMDFiMjMyM2M2NDY5OC4u
MmFkMjYyYjUzYzI4ZTNhZDZhNGEzMDIyNGVkMWQyNjBhZWQxNTQ1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91
cmxzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy12YWx1ZXMvdXJscy93M2MtaW1wb3J0LmxvZwpAQCAtMTUsMyAr
MTUsNiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL2Vt
cHR5Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdmFsdWVzL3VybHMvZnJhZ21lbnQtb25seS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVs
YXRpdmUtdG8tYmFzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXZhbHVlcy91cmxzL3Jlc29sdmUtcmVsYXRpdmUtdG8tc3R5bGVzaGVl
dC5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>