<?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>199237</bug_id>
          
          <creation_ts>2019-06-26 15:30:49 -0700</creation_ts>
          <short_desc>Implement @supports selector().</short_desc>
          <delta_ts>2021-03-14 05:31:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Emilio Cobos Álvarez (:emilio)">emilio</reporter>
          <assigned_to name="Joonghun Park">jh718.park</assigned_to>
          <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jh718.park</cc>
    
    <cc>koivisto</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>lwarlow</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>miriam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548146</commentid>
    <comment_count>0</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2019-06-26 15:30:49 -0700</bug_when>
    <thetext>This is a simple selector query function that allows to query whether an UA supports a selector, which .

Spec lives at https://drafts.csswg.org/css-conditional-4/#at-supports-ext.

It was discussed https://github.com/w3c/csswg-drafts/issues/3207.

I plan to enable it on Firefox on a couple releases, it&apos;d be great if WebKit implemented this as well so authors can use it, and should be pretty straight-forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562278</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-16 16:08:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/54411727&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591181</commentid>
    <comment_count>2</comment_count>
    <who name="Smoley">smoley</who>
    <bug_when>2019-11-18 12:41:39 -0800</bug_when>
    <thetext>*** Bug 204165 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681045</commentid>
    <comment_count>3</comment_count>
      <attachid>406779</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-18 06:11:28 -0700</bug_when>
    <thetext>Created attachment 406779
&lt;WIP&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681049</commentid>
    <comment_count>4</comment_count>
      <attachid>406781</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-18 07:39:37 -0700</bug_when>
    <thetext>Created attachment 406781
Need to rebase layout test result</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681051</commentid>
    <comment_count>5</comment_count>
      <attachid>406782</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-18 07:51:17 -0700</bug_when>
    <thetext>Created attachment 406782
Add annotation in CSSSupportsParser::consumeConditionInParenthesis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681057</commentid>
    <comment_count>6</comment_count>
      <attachid>406782</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-18 08:06:14 -0700</bug_when>
    <thetext>Comment on attachment 406782
Add annotation in CSSSupportsParser::consumeConditionInParenthesis

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Implement @supports selector().

Need to include tests in this.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:141
&gt; +// static

While there are a few static instances of this in WebKit code, we normally don’t include these comments. I can see how some people might like them,, but I don’t think this is the function we should start this new tradition with.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:153
&gt; +    if (containsUnknownWebKitPseudoElements(*complexSelector))
&gt; +        return false;
&gt; +    return true;

This is OK, but could also just use a single return statement here.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:975
&gt; +    for (const CSSSelector* current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {

I suggest using auto here instead of const CSSSelector*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681071</commentid>
    <comment_count>7</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-18 08:34:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 406782 [details]
&gt; Add annotation in CSSSupportsParser::consumeConditionInParenthesis
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406782&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Implement @supports selector().
&gt; 
&gt; Need to include tests in this.
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:141
&gt; &gt; +// static
&gt; 
&gt; While there are a few static instances of this in WebKit code, we normally
&gt; don’t include these comments. I can see how some people might like them,,
&gt; but I don’t think this is the function we should start this new tradition
&gt; with.
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:153
&gt; &gt; +    if (containsUnknownWebKitPseudoElements(*complexSelector))
&gt; &gt; +        return false;
&gt; &gt; +    return true;
&gt; 
&gt; This is OK, but could also just use a single return statement here.
&gt; 
&gt; &gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:975
&gt; &gt; +    for (const CSSSelector* current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {
&gt; 
&gt; I suggest using auto here instead of const CSSSelector*.

Thank you for your review, Darin. I will apply your comments in the next patchset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681278</commentid>
    <comment_count>8</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-18 18:19:55 -0700</bug_when>
    <thetext>If I put some printf statements like this,
 
bool CSSSelectorParser::supportsComplexSelector(CSSParserTokenRange range, const CSSParserContext&amp; context)
{
    range.consumeWhitespace();
    CSSSelectorParser parser(context, nullptr);
    printf(&quot;CSSSelectorParser::supportsComplexSelector: %s\n&quot;, range.serialize().utf8().data());
    auto parserSelector = parser.consumeComplexSelector(range);
    if (parser.m_failedParsing || !range.atEnd() || !parserSelector)
        return false;
    auto complexSelector = parserSelector-&gt;releaseSelector();
    printf(&quot;complexSelector: %s\n&quot;, complexSelector-&gt;value().string().utf8().data());
    ASSERT(complexSelector);
    if (containsUnknownWebKitPseudoElements(*complexSelector))
        return false;
    return true;
}

below logs are printed.

CSSSelectorParser::supportsComplexSelector: A | .B
complexSelector: B

So, it seems that |CSSSelectorParser::consumeComplexSelector| doesn&apos;t address the unknown combinator correctly.

I will make a separate bug to address this bug separately and leave a FIXME comment here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681312</commentid>
    <comment_count>9</comment_count>
      <attachid>406782</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-19 04:15:25 -0700</bug_when>
    <thetext>Comment on attachment 406782
Add annotation in CSSSupportsParser::consumeConditionInParenthesis

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt;&gt; +        Implement @supports selector().
&gt;&gt; 
&gt;&gt; Need to include tests in this.
&gt; 
&gt; Thank you for your review, Darin. I will apply your comments in the next patchset.

Tests were added in the next patchset.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:141
&gt;&gt; +// static
&gt; 
&gt; While there are a few static instances of this in WebKit code, we normally don’t include these comments. I can see how some people might like them,, but I don’t think this is the function we should start this new tradition with.

Removed.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:153
&gt;&gt; +    return true;
&gt; 
&gt; This is OK, but could also just use a single return statement here.

I changed this with a single return statement.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:975
&gt;&gt; +    for (const CSSSelector* current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {
&gt; 
&gt; I suggest using auto here instead of const CSSSelector*.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681314</commentid>
    <comment_count>10</comment_count>
      <attachid>406835</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-19 04:23:28 -0700</bug_when>
    <thetext>Created attachment 406835
wpt tests has been added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681336</commentid>
    <comment_count>11</comment_count>
      <attachid>406835</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-19 08:23:58 -0700</bug_when>
    <thetext>Comment on attachment 406835
wpt tests has been added

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

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:155
&gt; +    return containsUnknownWebKitPseudoElements(*complexSelector) ? false : true;

Typically we would use &quot;!&quot; here rather than &quot;? false : true&quot;.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:977
&gt; +    for (const auto* current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {

When I suggested auto, I meant &quot;auto&quot;, not &quot;const auto*&quot;.

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:47
&gt; +    bool isSupportsSelector = false;
&gt; +
&gt; +    if (range.peek().type() == FunctionToken &amp;&amp; range.peek().functionId() == CSSValueSelector)
&gt; +        isSupportsSelector = true;

This boolean expression should be written in a straightforward way, not with an if statement:

    bool isSupportsSelector = range.peek().type() == FunctionToken &amp;&amp; range.peek().functionId() == CSSValueSelector;

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:72
&gt; +        SupportsResult nextResult = consumeConditionInParenthesis(range);

auto

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:112
&gt; +    SupportsResult result = consumeConditionInParenthesis(range);

auto

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:138
&gt; +    if (range.peek().type() != FunctionToken)
&gt; +        return Invalid;
&gt; +    if (range.peek().functionId() != CSSValueSelector)
&gt;          return Invalid;

Why not use || and a single if statement?

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:144
&gt; +    if (CSSSelectorParser::supportsComplexSelector(block, m_parser.context()))
&gt; +        return Supported;
&gt;  
&gt; -    CSSParserTokenRange innerRange = range.consumeBlock();
&gt; -    innerRange.consumeWhitespace();
&gt; -    SupportsResult result = consumeCondition(innerRange);
&gt; -    if (result != Invalid)
&gt; -        return result;
&gt; -    return consumeDeclarationConditionOrGeneralEnclosed(innerRange);
&gt; +    return Unsupported;

return CSSSelectorParser::supportsComplexSelector(block, m_parser.context()) ? Supported : Unsupported;

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:150
&gt; +    CSSParserTokenRange innerRange = range;

auto

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:155
&gt; +        SupportsResult result = consumeCondition(innerRange);

auto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683205</commentid>
    <comment_count>12</comment_count>
      <attachid>406835</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-26 17:01:13 -0700</bug_when>
    <thetext>Comment on attachment 406835
wpt tests has been added

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

I&apos;m sorry for the late update, Darin.
I updated all the comments you left in the previous patchset. Could you please review this change again?

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:155
&gt;&gt; +    return containsUnknownWebKitPseudoElements(*complexSelector) ? false : true;
&gt; 
&gt; Typically we would use &quot;!&quot; here rather than &quot;? false : true&quot;.

Ok, I will change this in the next patchset.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:977
&gt;&gt; +    for (const auto* current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {
&gt; 
&gt; When I suggested auto, I meant &quot;auto&quot;, not &quot;const auto*&quot;.

Done.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:47
&gt;&gt; +        isSupportsSelector = true;
&gt; 
&gt; This boolean expression should be written in a straightforward way, not with an if statement:
&gt; 
&gt;     bool isSupportsSelector = range.peek().type() == FunctionToken &amp;&amp; range.peek().functionId() == CSSValueSelector;

I rewrote the patch accoring to the spec, so I found that this bool variable was no longer needed here.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:72
&gt;&gt; +        SupportsResult nextResult = consumeConditionInParenthesis(range);
&gt; 
&gt; auto

Done.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:112
&gt;&gt; +    SupportsResult result = consumeConditionInParenthesis(range);
&gt; 
&gt; auto

Done.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:138
&gt;&gt;          return Invalid;
&gt; 
&gt; Why not use || and a single if statement?

Ok, I will change this in the next patchset.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:144
&gt;&gt; +    return Unsupported;
&gt; 
&gt; return CSSSelectorParser::supportsComplexSelector(block, m_parser.context()) ? Supported : Unsupported;

Done.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:150
&gt;&gt; +    CSSParserTokenRange innerRange = range;
&gt; 
&gt; auto

Done.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:155
&gt;&gt; +        SupportsResult result = consumeCondition(innerRange);
&gt; 
&gt; auto

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683211</commentid>
    <comment_count>13</comment_count>
      <attachid>407359</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-26 17:06:59 -0700</bug_when>
    <thetext>Created attachment 407359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683248</commentid>
    <comment_count>14</comment_count>
      <attachid>407366</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-26 18:52:06 -0700</bug_when>
    <thetext>Created attachment 407366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683296</commentid>
    <comment_count>15</comment_count>
      <attachid>407378</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-26 23:16:09 -0700</bug_when>
    <thetext>Created attachment 407378
Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683411</commentid>
    <comment_count>16</comment_count>
      <attachid>407378</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-08-27 09:52:11 -0700</bug_when>
    <thetext>Comment on attachment 407378
Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements

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

&gt; Source/WebCore/ChangeLog:26
&gt; +2020-08-26  Joonghun Park  &lt;jh718.park@samsung.com&gt;
&gt; +
&gt; +        Implement @supports selector().
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=199237
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Tests: css3/conditional/w3c/at-supports-040.html
&gt; +               css3/conditional/w3c/at-supports-041.html
&gt; +               css3/conditional/w3c/at-supports-042.html
&gt; +
&gt; +        * css/CSSValueKeywords.in:
&gt; +        * css/parser/CSSParserImpl.h:
&gt; +        (WebCore::CSSParserImpl::context const):
&gt; +        * css/parser/CSSSelectorParser.cpp:
&gt; +        (WebCore::CSSSelectorParser::supportsComplexSelector):
&gt; +        (WebCore::CSSSelectorParser::containsUnknownWebKitPseudoElements):
&gt; +        * css/parser/CSSSupportsParser.cpp:
&gt; +        (WebCore::CSSSupportsParser::supportsCondition):
&gt; +        (WebCore::CSSSupportsParser::consumeCondition):
&gt; +        (WebCore::CSSSupportsParser::consumeNegation):
&gt; +        (WebCore::CSSSupportsParser::consumeSupportsFeatureOrGeneralEnclosed):
&gt; +        (WebCore::CSSSupportsParser::consumeSupportsSelectorFn):
&gt; +        (WebCore::CSSSupportsParser::consumeConditionInParenthesis):
&gt; +        (WebCore::CSSSupportsParser::consumeDeclarationConditionOrGeneralEnclosed): Deleted.
&gt; +        * css/parser/CSSSupportsParser.h:

You should type some words about this patch and link to the spec.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:155
&gt; +    return !containsUnknownWebKitPseudoElements(*complexSelector) ? true : false;

Just

return !containsUnknownWebKitPseudoElements(*complexSelector);

or maybe

if (containsUnknownWebKitPseudoElements(*complexSelector))
    return false;

return true;

to emphasize that false is a rare special case.

&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:983
&gt; +bool CSSSelectorParser::containsUnknownWebKitPseudoElements(const CSSSelector&amp; complexSelector)
&gt; +{
&gt; +    for (auto current = &amp;complexSelector; current; current = current-&gt;tagHistory()) {
&gt; +        if (current-&gt;match() == CSSSelector::PseudoElement &amp;&amp; current-&gt;pseudoElementType() == CSSSelector::PseudoElementWebKitCustom)
&gt; +            return true;
&gt; +    }
&gt; +
&gt; +    return false;
&gt; +}

Why are PseudoElementWebKitCustom excluded? (seems ok but is there some specific reason?)

&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:132
&gt; +CSSSupportsParser::SupportsResult CSSSupportsParser::consumeSupportsSelectorFn(CSSParserTokenRange&amp; range)

WebKit coding style generally uses full words so this should be consumeSupportsSelectorFunction. Unless there is some spec or other good reason for this naming?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683413</commentid>
    <comment_count>17</comment_count>
      <attachid>407378</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-08-27 09:53:15 -0700</bug_when>
    <thetext>Comment on attachment 407378
Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements

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

&gt; LayoutTests/ChangeLog:13
&gt; +        * css3/conditional/w3c/at-supports-040-expected.html: Added.
&gt; +        * css3/conditional/w3c/at-supports-040.html: Added.
&gt; +        * css3/conditional/w3c/at-supports-041-expected.html: Added.
&gt; +        * css3/conditional/w3c/at-supports-041.html: Added.
&gt; +        * css3/conditional/w3c/at-supports-042-expected.html: Added.
&gt; +        * css3/conditional/w3c/at-supports-042.html: Added.

Aren&apos;t there WPT tests to enable or import for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683462</commentid>
    <comment_count>18</comment_count>
      <attachid>407378</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-27 12:58:29 -0700</bug_when>
    <thetext>Comment on attachment 407378
Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements

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

Thank you for your review, Antti.

&gt;&gt; Source/WebCore/ChangeLog:26
&gt;&gt; +        * css/parser/CSSSupportsParser.h:
&gt; 
&gt; You should type some words about this patch and link to the spec.

Ok, I will add patch description for this change as below.

This feature allows authors to test if the browser supports the tested selector syntax.
The corresponding spec is https://drafts.csswg.org/css-conditional-4/#at-supports-ext.

And unknown -webkit- pseudo elements are not supported according to the spec, https://drafts.csswg.org/css-conditional-4/#support-definition-ext.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:155
&gt;&gt; +    return !containsUnknownWebKitPseudoElements(*complexSelector) ? true : false;
&gt; 
&gt; Just
&gt; 
&gt; return !containsUnknownWebKitPseudoElements(*complexSelector);
&gt; 
&gt; or maybe
&gt; 
&gt; if (containsUnknownWebKitPseudoElements(*complexSelector))
&gt;     return false;
&gt; 
&gt; return true;
&gt; 
&gt; to emphasize that false is a rare special case.

Done with return !containsUnknownWebKitPseudoElements(*complexSelector);.

&gt;&gt; Source/WebCore/css/parser/CSSSelectorParser.cpp:983
&gt;&gt; +}
&gt; 
&gt; Why are PseudoElementWebKitCustom excluded? (seems ok but is there some specific reason?)

This behavior is specified in the spec, https://drafts.csswg.org/css-conditional-4/#support-definition-ext.
I will leave a comment in the patch description about this.

&gt;&gt; Source/WebCore/css/parser/CSSSupportsParser.cpp:132
&gt;&gt; +CSSSupportsParser::SupportsResult CSSSupportsParser::consumeSupportsSelectorFn(CSSParserTokenRange&amp; range)
&gt; 
&gt; WebKit coding style generally uses full words so this should be consumeSupportsSelectorFunction. Unless there is some spec or other good reason for this naming?

This naming was following https://drafts.csswg.org/css-conditional-4/#at-supports-ext&apos;s term &lt;supports-selector-fn&gt;.
But as you suggested, consumeSupportsSelectorFunction would be ok too.
I will rename it as you suggested in the next patchset.

&gt;&gt; LayoutTests/ChangeLog:13
&gt;&gt; +        * css3/conditional/w3c/at-supports-042.html: Added.
&gt; 
&gt; Aren&apos;t there WPT tests to enable or import for this?

When Emilio shipped this feature in Firefox, he enabled this feature with these 3 wpts, and I heard from him that these are enough tests to enable this feature.
And AFAIK these are all of the tests about css supports selector() in wpt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683465</commentid>
    <comment_count>19</comment_count>
      <attachid>407378</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-27 13:06:33 -0700</bug_when>
    <thetext>Comment on attachment 407378
Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements

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

&gt;&gt;&gt; LayoutTests/ChangeLog:13
&gt;&gt;&gt; +        * css3/conditional/w3c/at-supports-042.html: Added.
&gt;&gt; 
&gt;&gt; Aren&apos;t there WPT tests to enable or import for this?
&gt; 
&gt; When Emilio shipped this feature in Firefox, he enabled this feature with these 3 wpts, and I heard from him that these are enough tests to enable this feature.
&gt; And AFAIK these are all of the tests about css supports selector() in wpt.

FYI, the Forefox link for this feature implementation is https://hg.mozilla.org/mozilla-central/rev/631545ef7925.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683467</commentid>
    <comment_count>20</comment_count>
      <attachid>407424</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-27 13:12:43 -0700</bug_when>
    <thetext>Created attachment 407424
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683472</commentid>
    <comment_count>21</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-08-27 13:28:01 -0700</bug_when>
    <thetext>&gt; &gt; Aren&apos;t there WPT tests to enable or import for this?
&gt; 
&gt; When Emilio shipped this feature in Firefox, he enabled this feature with
&gt; these 3 wpts, and I heard from him that these are enough tests to enable
&gt; this feature.
&gt; And AFAIK these are all of the tests about css supports selector() in wpt.

I mean we should probably be importing the whole https://github.com/web-platform-tests/wpt/tree/master/css/css-conditional directory under LayoutTests/imported/w3c/web-platform-tests/ instead of adding the tests manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683477</commentid>
    <comment_count>22</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2020-08-27 13:34:36 -0700</bug_when>
    <thetext>Ah, I see. Then I will import (In reply to Antti Koivisto from comment #21)
&gt; &gt; &gt; Aren&apos;t there WPT tests to enable or import for this?
&gt; &gt; 
&gt; &gt; When Emilio shipped this feature in Firefox, he enabled this feature with
&gt; &gt; these 3 wpts, and I heard from him that these are enough tests to enable
&gt; &gt; this feature.
&gt; &gt; And AFAIK these are all of the tests about css supports selector() in wpt.
&gt; 
&gt; I mean we should probably be importing the whole
&gt; https://github.com/web-platform-tests/wpt/tree/master/css/css-conditional
&gt; directory under LayoutTests/imported/w3c/web-platform-tests/ instead of
&gt; adding the tests manually.

Ah, I see. Then I will import LayoutTests/imported/w3c/web-platform-tests/
and remove the correspond existing LayoutTests/ test cases in the separate gardening patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683480</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-27 14:10:24 -0700</bug_when>
    <thetext>Committed r266253: &lt;https://trac.webkit.org/changeset/266253&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407424.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406779</attachid>
            <date>2020-08-18 06:11:28 -0700</date>
            <delta_ts>2020-08-18 07:39:33 -0700</delta_ts>
            <desc>&lt;WIP&gt;</desc>
            <filename>bug-199237-20200818221059.patch</filename>
            <type>text/plain</type>
            <size>9311</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1NjY5YjliMTlmNzBj
OTFmNTZkZDFkYjJhZmQxZmM3YzAxMGY3ZC4uMDliY2IyODQ4MzRjZDk3NGNkMzAxYjdmODNjNGE0
Yzc0NjljY2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA4LTE4ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VySW1wbDo6
Y29udGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6c3VwcG9ydHNDb21wbGV4
U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpz
dXBwb3J0c0NvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZUNvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZVN1cHBvcnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNTZWxlY3RvckZuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZURlY2xh
cmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaDoKKwogMjAyMC0wOC0xNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF1ZGlvQ29udGV4dC5nZXRPdXRwdXRUaW1l
c3RhbXAoKSBpcyBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmlu
ZGV4IGFiMGRmN2M4ZGQyZTg3OTcyOWQ3MWMyYTRmMzM3YTg4NzA5MTU5NTkuLjZiYWMwMDMyNjZj
YmQzYzBlZTU4NzQyMDM4Mzg2ZDUyNTgwMTFjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCkBAIC0xNDUxLDMgKzE0NTEsNyBAQCBmcm9tLWZvbnQKIC8vIGR5bmFtaWMt
cmFuZ2UKIHN0YW5kYXJkCiBoaWdoCisKKy8vIEBzdXBwb3J0cyBzZWxlY3RvcigpCisvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3VwcG9ydHMt
c2VsZWN0b3ItZm4KK3NlbGVjdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaAppbmRleCBmMGRhZWEyYWUxZmJiOTNl
YTY5OTNiY2NkMTQxYjI5YWIwNDRjM2E3Li42MTNmODVmNGYyYWFiODkwOTM3OTEyMzVhM2ZkMDc3
MDk4NDZjNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNl
ckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaApA
QCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rvcjxkb3VibGU+IHBhcnNl
S2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBzdXBwb3J0c0RlY2xh
cmF0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBzdGF0aWMgdm9p
ZCBwYXJzZURlY2xhcmF0aW9uTGlzdEZvckluc3BlY3Rvcihjb25zdCBTdHJpbmcmLCBjb25zdCBD
U1NQYXJzZXJDb250ZXh0JiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKICAgICBzdGF0aWMgdm9pZCBw
YXJzZVN0eWxlU2hlZXRGb3JJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiwgY29uc3QgQ1NTUGFyc2Vy
Q29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNlck9ic2VydmVyJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCmluZGV4IDM4
ZDE3MTJkM2YxZjkwNjFhYzIyYjliOGZjZTczYmMzNTUyNDlhYTAuLjllNjFkZTE4OTVhNDE2Y2Nk
YWViYjFiYWRlYzJlMGMxOGY2ZmJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKIAogICAg
IENTU1NlbGVjdG9yTGlzdCBjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tl
blJhbmdlJik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbXBsZXhTZWxlY3RvcihDU1NQ
YXJzZXJUb2tlblJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisKIHByaXZhdGU6CiAg
ICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlzdChDU1NQYXJzZXJU
b2tlblJhbmdlJik7CiAKQEAgLTcxLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBBdG9t
U3RyaW5nJiBkZXRlcm1pbmVOYW1lc3BhY2UoY29uc3QgQXRvbVN0cmluZyYgcHJlZml4KTsKICAg
ICB2b2lkIHByZXBlbmRUeXBlU2VsZWN0b3JJZk5lZWRlZChjb25zdCBBdG9tU3RyaW5nJiBuYW1l
c3BhY2VQcmVmaXgsIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnROYW1lLCBDU1NQYXJzZXJTZWxl
Y3RvciYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNw
bGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gY29tcG91bmRTZWxlY3RvciwgY29uc3QgQ1NTUGFyc2Vy
Q29udGV4dCYpOworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0Vs
ZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpOwogCiAgICAgY2xhc3Mg
RGlzYWxsb3dQc2V1ZG9FbGVtZW50c1Njb3BlOwogCkBAIC0xMzUsNiArMTM4LDIxIEBAIENTU1Nl
bGVjdG9yTGlzdCBDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3Rvckxpc3Qo
Q1NTUGFyc2VyVG9rZW5SYW5nCiAgICAgcmV0dXJuIENTU1NlbGVjdG9yTGlzdCB7IFdURk1vdmUo
c2VsZWN0b3JMaXN0KSB9OwogfQogCisvLyBzdGF0aWMKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJzZXI6
OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UsIGNvbnN0
IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmFuZ2UuY29uc3VtZVdoaXRlc3Bh
Y2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIoY29udGV4dCwgbnVsbHB0cik7Cisg
ICAgYXV0byBwYXJzZXJTZWxlY3RvciA9IHBhcnNlci5jb25zdW1lQ29tcGxleFNlbGVjdG9yKHJh
bmdlKTsKKyAgICBpZiAocGFyc2VyLm1fZmFpbGVkUGFyc2luZyB8fCAhcmFuZ2UuYXRFbmQoKSB8
fCAhcGFyc2VyU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIGNvbXBs
ZXhTZWxlY3RvciA9IHBhcnNlclNlbGVjdG9yLT5yZWxlYXNlU2VsZWN0b3IoKTsKKyAgICBBU1NF
UlQoY29tcGxleFNlbGVjdG9yKTsKKyAgICBpZiAoY29udGFpbnNVbmtub3duV2ViS2l0UHNldWRv
RWxlbWVudHMoKmNvbXBsZXhTZWxlY3RvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9yUGFyc2VyOjpjb25z
dW1lQ29tcG91bmRTZWxlY3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+IHNlbGVjdG9yTGlz
dDsKQEAgLTk1Miw0ICs5NzAsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
PiBDU1NTZWxlY3RvclBhcnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGEKICAgICByZXR1
cm4gc2Vjb25kQ29tcG91bmQ7CiB9CiAKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2Vs
ZWN0b3IpCit7CisgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY3VycmVudCA9ICZjb21wbGV4
U2VsZWN0b3I7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0b3J5KCkpIHsKKyAg
ICAgICAgaWYgKGN1cnJlbnQtPnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0VsZW1lbnRXZWJLaXRDdXN0b20pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKaW5kZXggZGYw
YWQwNjE4NGM0YzQyNGY5ZjM3ZGVmZWM0MzY1MzkzOTBkYjcyNi4uNGU0ODAxNmYxOWJlMTY4ODNh
ZDlhOTMwZTQxZDRjNTI4NTI2OTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBAQCBDU1NTdXBwb3J0c1Bh
cnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OnN1cHBvcnRzQ29uZGl0aW9u
KENTU1BhcnNlcgogICAgIC8vIHdpbmRvdy5DU1Muc3VwcG9ydHMgcmVxdWlyZXMgcGFyc2luZyBh
cy1pZiB0aGUgY29uZGl0aW9uIHdhcyB3cmFwcGVkIGluCiAgICAgLy8gcGFyZW50aGVzaXMuIFRo
ZSBvbmx5IHByb2R1Y3Rpb25zIHRoYXQgd291bGRuJ3QgaGF2ZSBwYXJzZWQgYWJvdmUgYXJlIHRo
ZQogICAgIC8vIGRlY2xhcmF0aW9uIGNvbmRpdGlvbiBvciB0aGUgZ2VuZXJhbCBlbmNsb3NlZCBw
cm9kdWN0aW9ucy4KLSAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZURlY2xhcmF0aW9u
Q29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQocmFuZ2UpOworICAgIHJldHVybiBzdXBwb3J0c1Bh
cnNlci5jb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQocmFuZ2UpOwogfQog
CiBlbnVtIENsYXVzZVR5cGUgeyBVbnJlc29sdmVkLCBDb25qdW5jdGlvbiwgRGlzanVuY3Rpb24g
fTsKIAogQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2Vy
Ojpjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCiB7Ci0gICAgaWYg
KHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgp
ID09IEZ1bmN0aW9uVG9rZW4pCisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRU
b2tlbikKICAgICAgICAgcmV0dXJuIGNvbnN1bWVOZWdhdGlvbihyYW5nZSk7CiAKICAgICBib29s
IHJlc3VsdCA9IGZhbHNlOwpAQCAtMTEyLDkgKzExMiwxMiBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6
U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVOZWdhdGlvbihDU1NQYXJz
ZXJUbwogICAgIHJldHVybiByZXN1bHQgPyBVbnN1cHBvcnRlZCA6IFN1cHBvcnRlZDsKIH0KIAot
Q1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25z
dW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKK0NTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0
c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1
bmN0aW9uVG9rZW4pIHsKKyAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0g
Q1NTVmFsdWVTZWxlY3RvcikKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNTZWxl
Y3RvckZuKHJhbmdlKTsKKwogICAgICAgICByYW5nZS5jb25zdW1lQ29tcG9uZW50VmFsdWUoKTsK
ICAgICAgICAgcmV0dXJuIFVuc3VwcG9ydGVkOwogICAgIH0KQEAgLTEyMiw2ICsxMjUsMjAgQEAg
Q1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25z
dW1lRGVjbGFyYXRpb25Db25kaXRpb24KICAgICByZXR1cm4gcmFuZ2UucGVlaygpLnR5cGUoKSA9
PSBJZGVudFRva2VuICYmIG1fcGFyc2VyLnN1cHBvcnRzRGVjbGFyYXRpb24ocmFuZ2UpID8gU3Vw
cG9ydGVkIDogVW5zdXBwb3J0ZWQ7CiB9CiAKK0NTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jl
c3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbihDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSAhPSBG
dW5jdGlvblRva2VuKQorICAgICAgICByZXR1cm4gSW52YWxpZDsKKyAgICBpZiAocmFuZ2UucGVl
aygpLmZ1bmN0aW9uSWQoKSAhPSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICByZXR1cm4gSW52
YWxpZDsKKyAgICBhdXRvIGJsb2NrID0gcmFuZ2UuY29uc3VtZUJsb2NrKCk7CisgICAgYmxvY2su
Y29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBpZiAoQ1NTU2VsZWN0b3JQYXJzZXI6OnN1cHBvcnRz
Q29tcGxleFNlbGVjdG9yKGJsb2NrLCBtX3BhcnNlci5jb250ZXh0KCkpKQorICAgICAgICByZXR1
cm4gU3VwcG9ydGVkOworCisgICAgcmV0dXJuIFVuc3VwcG9ydGVkOworfQorCiBDU1NTdXBwb3J0
c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVDb25kaXRp
b25JblBhcmVudGhlc2lzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJUb2tl
blR5cGUgc3RhcnRUb2tlblR5cGUpCiB7CiAgICAgaWYgKHN0YXJ0VG9rZW5UeXBlID09IElkZW50
VG9rZW4gJiYgcmFuZ2UucGVlaygpLnR5cGUoKSAhPSBMZWZ0UGFyZW50aGVzaXNUb2tlbikKQEAg
LTEyOSwxMCArMTQ2LDEyIEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NT
dXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzCiAKICAgICBDU1NQYXJz
ZXJUb2tlblJhbmdlIGlubmVyUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKICAgICBpbm5l
clJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisKKyAgICAvLyAoIDxzdXBwb3J0cy1jb25kaXRp
b24+ICkKICAgICBTdXBwb3J0c1Jlc3VsdCByZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uKGlubmVy
UmFuZ2UpOwogICAgIGlmIChyZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICByZXR1cm4gY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9z
ZWQoaW5uZXJSYW5nZSk7CisgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVy
YWxFbmNsb3NlZChpbm5lclJhbmdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCmluZGV4IDViMzk0
MGQ0Y2M4OTJjMGRhYTBiYzA4ZjQyNzIyM2M1Y2JhMmNmYzAuLjY0YzFiYTMzOWRhOWRjMTA5N2Fm
ZmQ2ZWViZTc5MDIxYWUyODM5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1N1cHBvcnRzUGFyc2VyLmgKQEAgLTU3LDcgKzU3LDEwIEBAIHByaXZhdGU6CiAKICAgICBTdXBw
b3J0c1Jlc3VsdCBjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UpOwogICAgIFN1
cHBvcnRzUmVzdWx0IGNvbnN1bWVOZWdhdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlKTsKLSAgICBT
dXBwb3J0c1Jlc3VsdCBjb25zdW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3Nl
ZChDU1NQYXJzZXJUb2tlblJhbmdlJik7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBv
cnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICAv
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3Vw
cG9ydHMtc2VsZWN0b3ItZm4KKyAgICAvLyA8c3VwcG9ydHMtc2VsZXRvci1mbj4gPSBzZWxlY3Rv
ciggPGNvbXBsZXgtc2VsZWN0b3I+ICk7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBv
cnRzU2VsZWN0b3JGbihDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKICAgICBTdXBwb3J0c1Jlc3Vs
dCBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NT
UGFyc2VyVG9rZW5UeXBlKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406781</attachid>
            <date>2020-08-18 07:39:37 -0700</date>
            <delta_ts>2020-08-18 07:51:13 -0700</delta_ts>
            <desc>Need to rebase layout test result</desc>
            <filename>bug-199237-20200818233935.patch</filename>
            <type>text/plain</type>
            <size>9499</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzM2M3Nzk5Y2U0Y2I1
ZTg2YTE2YmI0YmM4MDk3MjkxNDE4NWY5OC4uODlhNzFmN2MwNGU1Y2U4NDkzMGU3NmY4ZDU2YjEy
ZWY2ZDU0ZWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTE4ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VySW1wbDo6
Y29udGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6c3VwcG9ydHNDb21wbGV4
U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpz
dXBwb3J0c0NvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZVN1cHBvcnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNTZWxlY3RvckZuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZURlY2xh
cmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaDoKKwogMjAyMC0wOC0xOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgSlMgYnVpbHQtaW4gcm91dGlu
ZSB0byBtYXJrIGEgcHJvbWlzZSBhcyBoYW5kbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IGFiMGRmN2M4ZGQyZTg3OTcyOWQ3MWMyYTRmMzM3YTg4NzA5MTU5NTku
LjZiYWMwMDMyNjZjYmQzYzBlZTU4NzQyMDM4Mzg2ZDUyNTgwMTFjMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xNDUxLDMgKzE0NTEsNyBAQCBmcm9tLWZvbnQK
IC8vIGR5bmFtaWMtcmFuZ2UKIHN0YW5kYXJkCiBoaWdoCisKKy8vIEBzdXBwb3J0cyBzZWxlY3Rv
cigpCisvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVk
ZWYtc3VwcG9ydHMtc2VsZWN0b3ItZm4KK3NlbGVjdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaAppbmRleCBmMGRh
ZWEyYWUxZmJiOTNlYTY5OTNiY2NkMTQxYjI5YWIwNDRjM2E3Li42MTNmODVmNGYyYWFiODkwOTM3
OTEyMzVhM2ZkMDc3MDk4NDZjNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckltcGwuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rvcjxk
b3VibGU+IHBhcnNlS2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBz
dXBwb3J0c0RlY2xhcmF0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAg
ICBzdGF0aWMgdm9pZCBwYXJzZURlY2xhcmF0aW9uTGlzdEZvckluc3BlY3Rvcihjb25zdCBTdHJp
bmcmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKICAgICBz
dGF0aWMgdm9pZCBwYXJzZVN0eWxlU2hlZXRGb3JJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNlck9ic2Vy
dmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIu
Y3BwCmluZGV4IDM4ZDE3MTJkM2YxZjkwNjFhYzIyYjliOGZjZTczYmMzNTUyNDlhYTAuLjllNjFk
ZTE4OTVhNDE2Y2NkYWViYjFiYWRlYzJlMGMxOGY2ZmJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBAIHB1
YmxpYzoKIAogICAgIENTU1NlbGVjdG9yTGlzdCBjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChD
U1NQYXJzZXJUb2tlblJhbmdlJik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbXBsZXhT
ZWxlY3RvcihDU1NQYXJzZXJUb2tlblJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisK
IHByaXZhdGU6CiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlz
dChDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKQEAgLTcxLDYgKzczLDcgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBkZXRlcm1pbmVOYW1lc3BhY2UoY29uc3QgQXRvbVN0cmluZyYg
cHJlZml4KTsKICAgICB2b2lkIHByZXBlbmRUeXBlU2VsZWN0b3JJZk5lZWRlZChjb25zdCBBdG9t
U3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnROYW1lLCBD
U1NQYXJzZXJTZWxlY3RvciYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+IHNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9y
KHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gY29tcG91bmRTZWxlY3RvciwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zVW5rbm93bldl
YktpdFBzZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpOwog
CiAgICAgY2xhc3MgRGlzYWxsb3dQc2V1ZG9FbGVtZW50c1Njb3BlOwogCkBAIC0xMzUsNiArMTM4
LDIxIEBAIENTU1NlbGVjdG9yTGlzdCBDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhT
ZWxlY3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nCiAgICAgcmV0dXJuIENTU1NlbGVjdG9yTGlz
dCB7IFdURk1vdmUoc2VsZWN0b3JMaXN0KSB9OwogfQogCisvLyBzdGF0aWMKK2Jvb2wgQ1NTU2Vs
ZWN0b3JQYXJzZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2Ug
cmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmFuZ2UuY29u
c3VtZVdoaXRlc3BhY2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIoY29udGV4dCwg
bnVsbHB0cik7CisgICAgYXV0byBwYXJzZXJTZWxlY3RvciA9IHBhcnNlci5jb25zdW1lQ29tcGxl
eFNlbGVjdG9yKHJhbmdlKTsKKyAgICBpZiAocGFyc2VyLm1fZmFpbGVkUGFyc2luZyB8fCAhcmFu
Z2UuYXRFbmQoKSB8fCAhcGFyc2VyU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBhdXRvIGNvbXBsZXhTZWxlY3RvciA9IHBhcnNlclNlbGVjdG9yLT5yZWxlYXNlU2VsZWN0b3Io
KTsKKyAgICBBU1NFUlQoY29tcGxleFNlbGVjdG9yKTsKKyAgICBpZiAoY29udGFpbnNVbmtub3du
V2ViS2l0UHNldWRvRWxlbWVudHMoKmNvbXBsZXhTZWxlY3RvcikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9y
UGFyc2VyOjpjb25zdW1lQ29tcG91bmRTZWxlY3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiB7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+
IHNlbGVjdG9yTGlzdDsKQEAgLTk1Miw0ICs5NzAsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPiBDU1NTZWxlY3RvclBhcnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRT
aGEKICAgICByZXR1cm4gc2Vjb25kQ29tcG91bmQ7CiB9CiAKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJz
ZXI6OmNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9y
JiBjb21wbGV4U2VsZWN0b3IpCit7CisgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY3VycmVu
dCA9ICZjb21wbGV4U2VsZWN0b3I7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0
b3J5KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b20pCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5j
cHAKaW5kZXggZGYwYWQwNjE4NGM0YzQyNGY5ZjM3ZGVmZWM0MzY1MzkzOTBkYjcyNi4uNzFhMzVj
ODMxMzc5NGNiOWNmZTMyYjA2YWQzNzJiYTNkZDFlYzhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKQEAgLTQwLDEzICs0MCwxOSBAQCBD
U1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OnN1cHBv
cnRzQ29uZGl0aW9uKENTU1BhcnNlcgogICAgIC8vIGJ1dCBtYWpvciBicm93c2VyIHZlbmRvcnMg
YWxsb3cgaXQgaW4gQ1NTLnN1cHBvcnRzIGFsc28uCiAgICAgcmFuZ2UuY29uc3VtZVdoaXRlc3Bh
Y2UoKTsKICAgICBDU1NTdXBwb3J0c1BhcnNlciBzdXBwb3J0c1BhcnNlcihwYXJzZXIpOworCisg
ICAgYm9vbCBpc1N1cHBvcnRzU2VsZWN0b3IgPSBmYWxzZTsKKworICAgIGlmIChyYW5nZS5wZWVr
KCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4gJiYgcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9
PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICBpc1N1cHBvcnRzU2VsZWN0b3IgPSB0cnVlOwor
CiAgICAgYXV0byByZXN1bHQgPSBzdXBwb3J0c1BhcnNlci5jb25zdW1lQ29uZGl0aW9uKHJhbmdl
KTsKLSAgICBpZiAobW9kZSAhPSBGb3JXaW5kb3dDU1MgfHwgcmVzdWx0ICE9IEludmFsaWQpCisg
ICAgaWYgKChtb2RlICE9IEZvcldpbmRvd0NTUyAmJiAhaXNTdXBwb3J0c1NlbGVjdG9yKSB8fCBy
ZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAvLyB3aW5kb3cu
Q1NTLnN1cHBvcnRzIHJlcXVpcmVzIHBhcnNpbmcgYXMtaWYgdGhlIGNvbmRpdGlvbiB3YXMgd3Jh
cHBlZCBpbgogICAgIC8vIHBhcmVudGhlc2lzLiBUaGUgb25seSBwcm9kdWN0aW9ucyB0aGF0IHdv
dWxkbid0IGhhdmUgcGFyc2VkIGFib3ZlIGFyZSB0aGUKICAgICAvLyBkZWNsYXJhdGlvbiBjb25k
aXRpb24gb3IgdGhlIGdlbmVyYWwgZW5jbG9zZWQgcHJvZHVjdGlvbnMuCi0gICAgcmV0dXJuIHN1
cHBvcnRzUGFyc2VyLmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2Vk
KHJhbmdlKTsKKyAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZVN1cHBvcnRzRmVhdHVy
ZU9yR2VuZXJhbEVuY2xvc2VkKHJhbmdlKTsKIH0KIAogZW51bSBDbGF1c2VUeXBlIHsgVW5yZXNv
bHZlZCwgQ29uanVuY3Rpb24sIERpc2p1bmN0aW9uIH07CkBAIC0xMTIsOSArMTE4LDEyIEBAIENT
U1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3Vt
ZU5lZ2F0aW9uKENTU1BhcnNlclRvCiAgICAgcmV0dXJuIHJlc3VsdCA/IFVuc3VwcG9ydGVkIDog
U3VwcG9ydGVkOwogfQogCi1DU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3Vw
cG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2Vk
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRz
UmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFs
RW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKHJhbmdlLnBl
ZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgeworICAgICAgICBpZiAocmFuZ2UucGVlaygp
LmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICAgICAgcmV0dXJuIGNv
bnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4ocmFuZ2UpOworCiAgICAgICAgIHJhbmdlLmNvbnN1bWVD
b21wb25lbnRWYWx1ZSgpOwogICAgICAgICByZXR1cm4gVW5zdXBwb3J0ZWQ7CiAgICAgfQpAQCAt
MTIyLDYgKzEzMSwyMCBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3Vw
cG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbgogICAgIHJldHVybiByYW5n
ZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gJiYgbV9wYXJzZXIuc3VwcG9ydHNEZWNsYXJh
dGlvbihyYW5nZSkgPyBTdXBwb3J0ZWQgOiBVbnN1cHBvcnRlZDsKIH0KIAorQ1NTU3VwcG9ydHNQ
YXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNT
ZWxlY3RvckZuKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5w
ZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCisgICAgICAgIHJldHVybiBJbnZhbGlkOwor
ICAgIGlmIChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlU2VsZWN0b3IpCisg
ICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIGF1dG8gYmxvY2sgPSByYW5nZS5jb25zdW1lQmxv
Y2soKTsKKyAgICBibG9jay5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChDU1NTZWxlY3Rv
clBhcnNlcjo6c3VwcG9ydHNDb21wbGV4U2VsZWN0b3IoYmxvY2ssIG1fcGFyc2VyLmNvbnRleHQo
KSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0ZWQ7CisKKyAgICByZXR1cm4gVW5zdXBwb3J0ZWQ7
Cit9CisKIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNl
cjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIENTU1BhcnNlclRva2VuVHlwZSBzdGFydFRva2VuVHlwZSkKIHsKICAgICBpZiAoc3RhcnRU
b2tlblR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExlZnRQYXJl
bnRoZXNpc1Rva2VuKQpAQCAtMTI5LDEwICsxNTIsMTIgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1
cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXMKIAogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgaW5uZXJSYW5nZSA9IHJhbmdlLmNvbnN1bWVC
bG9jaygpOwogICAgIGlubmVyUmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKworICAgIC8vICgg
PHN1cHBvcnRzLWNvbmRpdGlvbj4gKQogICAgIFN1cHBvcnRzUmVzdWx0IHJlc3VsdCA9IGNvbnN1
bWVDb25kaXRpb24oaW5uZXJSYW5nZSk7CiAgICAgaWYgKHJlc3VsdCAhPSBJbnZhbGlkKQogICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIHJldHVybiBjb25zdW1lRGVjbGFyYXRpb25Db25kaXRp
b25PckdlbmVyYWxFbmNsb3NlZChpbm5lclJhbmdlKTsKKyAgICByZXR1cm4gY29uc3VtZVN1cHBv
cnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKGlubmVyUmFuZ2UpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFy
c2VyLmgKaW5kZXggNWIzOTQwZDRjYzg5MmMwZGFhMGJjMDhmNDI3MjIzYzVjYmEyY2ZjMC4uNjRj
MWJhMzM5ZGE5ZGMxMDk3YWZmZDZlZWJlNzkwMjFhZTI4MzkyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaApAQCAtNTcsNyArNTcsMTAgQEAgcHJp
dmF0ZToKIAogICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9r
ZW5SYW5nZSk7CiAgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZU5lZ2F0aW9uKENTU1BhcnNlclRv
a2VuUmFuZ2UpOwotICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlv
bk9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBTdXBwb3J0c1Jl
c3VsdCBjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYpOworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9u
YWwtNC8jdHlwZWRlZi1zdXBwb3J0cy1zZWxlY3Rvci1mbgorICAgIC8vIDxzdXBwb3J0cy1zZWxl
dG9yLWZuPiA9IHNlbGVjdG9yKCA8Y29tcGxleC1zZWxlY3Rvcj4gKTsKKyAgICBTdXBwb3J0c1Jl
c3VsdCBjb25zdW1lU3VwcG9ydHNTZWxlY3RvckZuKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIAog
ICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVDb25kaXRpb25JblBhcmVudGhlc2lzKENTU1BhcnNl
clRva2VuUmFuZ2UmLCBDU1NQYXJzZXJUb2tlblR5cGUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406782</attachid>
            <date>2020-08-18 07:51:17 -0700</date>
            <delta_ts>2020-08-19 04:23:23 -0700</delta_ts>
            <desc>Add annotation in CSSSupportsParser::consumeConditionInParenthesis</desc>
            <filename>bug-199237-20200818235115.patch</filename>
            <type>text/plain</type>
            <size>9606</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzM2M3Nzk5Y2U0Y2I1
ZTg2YTE2YmI0YmM4MDk3MjkxNDE4NWY5OC4uODlhNzFmN2MwNGU1Y2U4NDkzMGU3NmY4ZDU2YjEy
ZWY2ZDU0ZWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTE4ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VySW1wbDo6
Y29udGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6c3VwcG9ydHNDb21wbGV4
U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpz
dXBwb3J0c0NvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZVN1cHBvcnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNTZWxlY3RvckZuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZURlY2xh
cmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQpOiBEZWxldGVkLgorICAgICAgICAqIGNz
cy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaDoKKwogMjAyMC0wOC0xOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgSlMgYnVpbHQtaW4gcm91dGlu
ZSB0byBtYXJrIGEgcHJvbWlzZSBhcyBoYW5kbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IGFiMGRmN2M4ZGQyZTg3OTcyOWQ3MWMyYTRmMzM3YTg4NzA5MTU5NTku
LjZiYWMwMDMyNjZjYmQzYzBlZTU4NzQyMDM4Mzg2ZDUyNTgwMTFjMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xNDUxLDMgKzE0NTEsNyBAQCBmcm9tLWZvbnQK
IC8vIGR5bmFtaWMtcmFuZ2UKIHN0YW5kYXJkCiBoaWdoCisKKy8vIEBzdXBwb3J0cyBzZWxlY3Rv
cigpCisvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVk
ZWYtc3VwcG9ydHMtc2VsZWN0b3ItZm4KK3NlbGVjdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaAppbmRleCBmMGRh
ZWEyYWUxZmJiOTNlYTY5OTNiY2NkMTQxYjI5YWIwNDRjM2E3Li42MTNmODVmNGYyYWFiODkwOTM3
OTEyMzVhM2ZkMDc3MDk4NDZjNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckltcGwuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rvcjxk
b3VibGU+IHBhcnNlS2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBz
dXBwb3J0c0RlY2xhcmF0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAg
ICBzdGF0aWMgdm9pZCBwYXJzZURlY2xhcmF0aW9uTGlzdEZvckluc3BlY3Rvcihjb25zdCBTdHJp
bmcmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKICAgICBz
dGF0aWMgdm9pZCBwYXJzZVN0eWxlU2hlZXRGb3JJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNlck9ic2Vy
dmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIu
Y3BwCmluZGV4IDM4ZDE3MTJkM2YxZjkwNjFhYzIyYjliOGZjZTczYmMzNTUyNDlhYTAuLjllNjFk
ZTE4OTVhNDE2Y2NkYWViYjFiYWRlYzJlMGMxOGY2ZmJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBAIHB1
YmxpYzoKIAogICAgIENTU1NlbGVjdG9yTGlzdCBjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChD
U1NQYXJzZXJUb2tlblJhbmdlJik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbXBsZXhT
ZWxlY3RvcihDU1NQYXJzZXJUb2tlblJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisK
IHByaXZhdGU6CiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlz
dChDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKQEAgLTcxLDYgKzczLDcgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBkZXRlcm1pbmVOYW1lc3BhY2UoY29uc3QgQXRvbVN0cmluZyYg
cHJlZml4KTsKICAgICB2b2lkIHByZXBlbmRUeXBlU2VsZWN0b3JJZk5lZWRlZChjb25zdCBBdG9t
U3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnROYW1lLCBD
U1NQYXJzZXJTZWxlY3RvciYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2Vy
U2VsZWN0b3I+IHNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9y
KHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gY29tcG91bmRTZWxlY3RvciwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zVW5rbm93bldl
YktpdFBzZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpOwog
CiAgICAgY2xhc3MgRGlzYWxsb3dQc2V1ZG9FbGVtZW50c1Njb3BlOwogCkBAIC0xMzUsNiArMTM4
LDIxIEBAIENTU1NlbGVjdG9yTGlzdCBDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhT
ZWxlY3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nCiAgICAgcmV0dXJuIENTU1NlbGVjdG9yTGlz
dCB7IFdURk1vdmUoc2VsZWN0b3JMaXN0KSB9OwogfQogCisvLyBzdGF0aWMKK2Jvb2wgQ1NTU2Vs
ZWN0b3JQYXJzZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2Ug
cmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmFuZ2UuY29u
c3VtZVdoaXRlc3BhY2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIoY29udGV4dCwg
bnVsbHB0cik7CisgICAgYXV0byBwYXJzZXJTZWxlY3RvciA9IHBhcnNlci5jb25zdW1lQ29tcGxl
eFNlbGVjdG9yKHJhbmdlKTsKKyAgICBpZiAocGFyc2VyLm1fZmFpbGVkUGFyc2luZyB8fCAhcmFu
Z2UuYXRFbmQoKSB8fCAhcGFyc2VyU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBhdXRvIGNvbXBsZXhTZWxlY3RvciA9IHBhcnNlclNlbGVjdG9yLT5yZWxlYXNlU2VsZWN0b3Io
KTsKKyAgICBBU1NFUlQoY29tcGxleFNlbGVjdG9yKTsKKyAgICBpZiAoY29udGFpbnNVbmtub3du
V2ViS2l0UHNldWRvRWxlbWVudHMoKmNvbXBsZXhTZWxlY3RvcikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9y
UGFyc2VyOjpjb25zdW1lQ29tcG91bmRTZWxlY3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiB7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+
IHNlbGVjdG9yTGlzdDsKQEAgLTk1Miw0ICs5NzAsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPiBDU1NTZWxlY3RvclBhcnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRT
aGEKICAgICByZXR1cm4gc2Vjb25kQ29tcG91bmQ7CiB9CiAKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJz
ZXI6OmNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9y
JiBjb21wbGV4U2VsZWN0b3IpCit7CisgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY3VycmVu
dCA9ICZjb21wbGV4U2VsZWN0b3I7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0
b3J5KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b20pCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5j
cHAKaW5kZXggZGYwYWQwNjE4NGM0YzQyNGY5ZjM3ZGVmZWM0MzY1MzkzOTBkYjcyNi4uYTFhZTU3
ZTZhM2I4ZGYwYzVhYzk0ODM4ODFhZTFhYjNlNzIxYTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKQEAgLTQwLDEzICs0MCwxOSBAQCBD
U1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OnN1cHBv
cnRzQ29uZGl0aW9uKENTU1BhcnNlcgogICAgIC8vIGJ1dCBtYWpvciBicm93c2VyIHZlbmRvcnMg
YWxsb3cgaXQgaW4gQ1NTLnN1cHBvcnRzIGFsc28uCiAgICAgcmFuZ2UuY29uc3VtZVdoaXRlc3Bh
Y2UoKTsKICAgICBDU1NTdXBwb3J0c1BhcnNlciBzdXBwb3J0c1BhcnNlcihwYXJzZXIpOworCisg
ICAgYm9vbCBpc1N1cHBvcnRzU2VsZWN0b3IgPSBmYWxzZTsKKworICAgIGlmIChyYW5nZS5wZWVr
KCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4gJiYgcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9
PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICBpc1N1cHBvcnRzU2VsZWN0b3IgPSB0cnVlOwor
CiAgICAgYXV0byByZXN1bHQgPSBzdXBwb3J0c1BhcnNlci5jb25zdW1lQ29uZGl0aW9uKHJhbmdl
KTsKLSAgICBpZiAobW9kZSAhPSBGb3JXaW5kb3dDU1MgfHwgcmVzdWx0ICE9IEludmFsaWQpCisg
ICAgaWYgKChtb2RlICE9IEZvcldpbmRvd0NTUyAmJiAhaXNTdXBwb3J0c1NlbGVjdG9yKSB8fCBy
ZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAvLyB3aW5kb3cu
Q1NTLnN1cHBvcnRzIHJlcXVpcmVzIHBhcnNpbmcgYXMtaWYgdGhlIGNvbmRpdGlvbiB3YXMgd3Jh
cHBlZCBpbgogICAgIC8vIHBhcmVudGhlc2lzLiBUaGUgb25seSBwcm9kdWN0aW9ucyB0aGF0IHdv
dWxkbid0IGhhdmUgcGFyc2VkIGFib3ZlIGFyZSB0aGUKICAgICAvLyBkZWNsYXJhdGlvbiBjb25k
aXRpb24gb3IgdGhlIGdlbmVyYWwgZW5jbG9zZWQgcHJvZHVjdGlvbnMuCi0gICAgcmV0dXJuIHN1
cHBvcnRzUGFyc2VyLmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2Vk
KHJhbmdlKTsKKyAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZVN1cHBvcnRzRmVhdHVy
ZU9yR2VuZXJhbEVuY2xvc2VkKHJhbmdlKTsKIH0KIAogZW51bSBDbGF1c2VUeXBlIHsgVW5yZXNv
bHZlZCwgQ29uanVuY3Rpb24sIERpc2p1bmN0aW9uIH07CkBAIC0xMTIsOSArMTE4LDEyIEBAIENT
U1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3Vt
ZU5lZ2F0aW9uKENTU1BhcnNlclRvCiAgICAgcmV0dXJuIHJlc3VsdCA/IFVuc3VwcG9ydGVkIDog
U3VwcG9ydGVkOwogfQogCi1DU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3Vw
cG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2Vk
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRz
UmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFs
RW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKHJhbmdlLnBl
ZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgeworICAgICAgICBpZiAocmFuZ2UucGVlaygp
LmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICAgICAgcmV0dXJuIGNv
bnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4ocmFuZ2UpOworCiAgICAgICAgIHJhbmdlLmNvbnN1bWVD
b21wb25lbnRWYWx1ZSgpOwogICAgICAgICByZXR1cm4gVW5zdXBwb3J0ZWQ7CiAgICAgfQpAQCAt
MTIyLDYgKzEzMSwyMCBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3Vw
cG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbgogICAgIHJldHVybiByYW5n
ZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gJiYgbV9wYXJzZXIuc3VwcG9ydHNEZWNsYXJh
dGlvbihyYW5nZSkgPyBTdXBwb3J0ZWQgOiBVbnN1cHBvcnRlZDsKIH0KIAorQ1NTU3VwcG9ydHNQ
YXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNT
ZWxlY3RvckZuKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5w
ZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCisgICAgICAgIHJldHVybiBJbnZhbGlkOwor
ICAgIGlmIChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlU2VsZWN0b3IpCisg
ICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIGF1dG8gYmxvY2sgPSByYW5nZS5jb25zdW1lQmxv
Y2soKTsKKyAgICBibG9jay5jb25zdW1lV2hpdGVzcGFjZSgpOworICAgIGlmIChDU1NTZWxlY3Rv
clBhcnNlcjo6c3VwcG9ydHNDb21wbGV4U2VsZWN0b3IoYmxvY2ssIG1fcGFyc2VyLmNvbnRleHQo
KSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0ZWQ7CisKKyAgICByZXR1cm4gVW5zdXBwb3J0ZWQ7
Cit9CisKIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNl
cjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFu
Z2UsIENTU1BhcnNlclRva2VuVHlwZSBzdGFydFRva2VuVHlwZSkKIHsKICAgICBpZiAoc3RhcnRU
b2tlblR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExlZnRQYXJl
bnRoZXNpc1Rva2VuKQpAQCAtMTI5LDEwICsxNTIsMTUgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1
cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXMKIAogICAgIENTU1BhcnNlclRva2VuUmFuZ2UgaW5uZXJSYW5nZSA9IHJhbmdlLmNvbnN1bWVC
bG9jaygpOwogICAgIGlubmVyUmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKworICAgIC8vICgg
PHN1cHBvcnRzLWNvbmRpdGlvbj4gKQogICAgIFN1cHBvcnRzUmVzdWx0IHJlc3VsdCA9IGNvbnN1
bWVDb25kaXRpb24oaW5uZXJSYW5nZSk7CiAgICAgaWYgKHJlc3VsdCAhPSBJbnZhbGlkKQogICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIHJldHVybiBjb25zdW1lRGVjbGFyYXRpb25Db25kaXRp
b25PckdlbmVyYWxFbmNsb3NlZChpbm5lclJhbmdlKTsKKworICAgIC8vICggPHN1cHBvcnRzLWZl
YXR1cmU+ID0gPHN1cHBvcnRzLXNlbGVjdG9yLWZuPiB8IDxzdXBwb3J0cy1kZWNsPiApCisgICAg
Ly8gKCA8Z2VuZXJhbC1lbmNsb3NlZD4gKQorICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNGZWF0
dXJlT3JHZW5lcmFsRW5jbG9zZWQoaW5uZXJSYW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaApp
bmRleCA1YjM5NDBkNGNjODkyYzBkYWEwYmMwOGY0MjcyMjNjNWNiYTJjZmMwLi42NGMxYmEzMzlk
YTlkYzEwOTdhZmZkNmVlYmU3OTAyMWFlMjgzOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCkBAIC01Nyw3ICs1NywxMCBAQCBwcml2YXRlOgog
CiAgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdl
KTsKICAgICBTdXBwb3J0c1Jlc3VsdCBjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5n
ZSk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5l
cmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIFN1cHBvcnRzUmVzdWx0IGNv
bnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJhbmdl
Jik7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC00LyN0
eXBlZGVmLXN1cHBvcnRzLXNlbGVjdG9yLWZuCisgICAgLy8gPHN1cHBvcnRzLXNlbGV0b3ItZm4+
ID0gc2VsZWN0b3IoIDxjb21wbGV4LXNlbGVjdG9yPiApOworICAgIFN1cHBvcnRzUmVzdWx0IGNv
bnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiAgICAgU3Vw
cG9ydHNSZXN1bHQgY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYsIENTU1BhcnNlclRva2VuVHlwZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406835</attachid>
            <date>2020-08-19 04:23:28 -0700</date>
            <delta_ts>2020-08-26 17:06:55 -0700</delta_ts>
            <desc>wpt tests has been added</desc>
            <filename>bug-199237-20200819202259.patch</filename>
            <type>text/plain</type>
            <size>20963</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM0NjgzMWMyZWRjMzdh
ODE3ZDczZDAxNDAxNzk3Y2Y4ZjQwMzNjNi4uNTU4MzM2NjVmM2ZhZDAyMTMxOTExZWE3MDllNWU3
Njc2MWJiMDcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA4LTE5ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VySW1wbDo6
Y29udGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6c3VwcG9ydHNDb21wbGV4
U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpz
dXBwb3J0c0NvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZUNvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6
Y29uc3VtZU5lZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpj
b25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVDb25kaXRpb25JblBhcmVudGhl
c2lzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lRGVjbGFy
YXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3NlZCk6IERlbGV0ZWQuCisgICAgICAgICogY3Nz
L3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oOgorCiAyMDIwLTA4LTE4ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUGFubmVyTm9kZSdzIHJvbGxvZmZGYWN0b3Ig
c2hvdWxkIGJlIGNsYW1wZWQgdG8gWzAsIDFdIGludGVybmFsbHkgd2hlbiBkaXN0YW5jZU1vZGVs
IGlzICJsaW5lYXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGFi
MGRmN2M4ZGQyZTg3OTcyOWQ3MWMyYTRmMzM3YTg4NzA5MTU5NTkuLjZiYWMwMDMyNjZjYmQzYzBl
ZTU4NzQyMDM4Mzg2ZDUyNTgwMTFjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCkBAIC0xNDUxLDMgKzE0NTEsNyBAQCBmcm9tLWZvbnQKIC8vIGR5bmFtaWMtcmFuZ2UK
IHN0YW5kYXJkCiBoaWdoCisKKy8vIEBzdXBwb3J0cyBzZWxlY3RvcigpCisvLyBodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3VwcG9ydHMtc2VsZWN0
b3ItZm4KK3NlbGVjdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaAppbmRleCBmMGRhZWEyYWUxZmJiOTNlYTY5OTNi
Y2NkMTQxYjI5YWIwNDRjM2E3Li42MTNmODVmNGYyYWFiODkwOTM3OTEyMzVhM2ZkMDc3MDk4NDZj
NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaApAQCAtOTMs
NiArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rvcjxkb3VibGU+IHBhcnNlS2V5ZnJh
bWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBzdXBwb3J0c0RlY2xhcmF0aW9u
KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBzdGF0aWMgdm9pZCBwYXJz
ZURlY2xhcmF0aW9uTGlzdEZvckluc3BlY3Rvcihjb25zdCBTdHJpbmcmLCBjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKICAgICBzdGF0aWMgdm9pZCBwYXJzZVN0
eWxlU2hlZXRGb3JJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNlck9ic2VydmVyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCmluZGV4IDM4ZDE3MTJk
M2YxZjkwNjFhYzIyYjliOGZjZTczYmMzNTUyNDlhYTAuLmZmYjI4MGE4NTNhNmE1MjI2ZTY3MzUy
MzI2YWMxZTEwMTliYWE5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
U2VsZWN0b3JQYXJzZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKIAogICAgIENTU1Nl
bGVjdG9yTGlzdCBjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmdl
Jik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbXBsZXhTZWxlY3RvcihDU1NQYXJzZXJU
b2tlblJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisKIHByaXZhdGU6CiAgICAgQ1NT
U2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJh
bmdlJik7CiAKQEAgLTcxLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5n
JiBkZXRlcm1pbmVOYW1lc3BhY2UoY29uc3QgQXRvbVN0cmluZyYgcHJlZml4KTsKICAgICB2b2lk
IHByZXBlbmRUeXBlU2VsZWN0b3JJZk5lZWRlZChjb25zdCBBdG9tU3RyaW5nJiBuYW1lc3BhY2VQ
cmVmaXgsIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnROYW1lLCBDU1NQYXJzZXJTZWxlY3RvciYp
OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNwbGl0Q29t
cG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4gY29tcG91bmRTZWxlY3RvciwgY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYpOworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRz
KGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpOwogCiAgICAgY2xhc3MgRGlzYWxs
b3dQc2V1ZG9FbGVtZW50c1Njb3BlOwogCkBAIC0xMzUsNiArMTM4LDIzIEBAIENTU1NlbGVjdG9y
TGlzdCBDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3Rvckxpc3QoQ1NTUGFy
c2VyVG9rZW5SYW5nCiAgICAgcmV0dXJuIENTU1NlbGVjdG9yTGlzdCB7IFdURk1vdmUoc2VsZWN0
b3JMaXN0KSB9OwogfQogCitib29sIENTU1NlbGVjdG9yUGFyc2VyOjpzdXBwb3J0c0NvbXBsZXhT
ZWxlY3RvcihDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0
JiBjb250ZXh0KQoreworICAgIHJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisgICAgQ1NTU2Vs
ZWN0b3JQYXJzZXIgcGFyc2VyKGNvbnRleHQsIG51bGxwdHIpOworCisgICAgLy8gRklYTUU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU2MzUKKyAgICAvLyBVbmtu
b3duIGNzcyBzZWxlY3RvciBjb21iaW5hdG9yIGlzIG5vdCBhZGRyZXNzZWQgY29ycmVjdGx5IGlu
IHxDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3RvcnwuCisgICAgYXV0byBw
YXJzZXJTZWxlY3RvciA9IHBhcnNlci5jb25zdW1lQ29tcGxleFNlbGVjdG9yKHJhbmdlKTsKKyAg
ICBpZiAocGFyc2VyLm1fZmFpbGVkUGFyc2luZyB8fCAhcmFuZ2UuYXRFbmQoKSB8fCAhcGFyc2Vy
U2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gY29tcGxleFNlbGVj
dG9yID0gcGFyc2VyU2VsZWN0b3ItPnJlbGVhc2VTZWxlY3RvcigpOworICAgIEFTU0VSVChjb21w
bGV4U2VsZWN0b3IpOworCisgICAgcmV0dXJuIGNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0Vs
ZW1lbnRzKCpjb21wbGV4U2VsZWN0b3IpID8gZmFsc2UgOiB0cnVlOworfQorCiBDU1NTZWxlY3Rv
ckxpc3QgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlzdChDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENT
U1BhcnNlclNlbGVjdG9yPj4gc2VsZWN0b3JMaXN0OwpAQCAtOTUyLDQgKzk3MiwxNCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENv
bXBvdW5kQXRJbXBsaWNpdFNoYQogICAgIHJldHVybiBzZWNvbmRDb21wb3VuZDsKIH0KIAorYm9v
bCBDU1NTZWxlY3RvclBhcnNlcjo6Y29udGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMo
Y29uc3QgQ1NTU2VsZWN0b3ImIGNvbXBsZXhTZWxlY3RvcikKK3sKKyAgICBmb3IgKGNvbnN0IGF1
dG8qIGN1cnJlbnQgPSAmY29tcGxleFNlbGVjdG9yOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVu
dC0+dGFnSGlzdG9yeSgpKSB7CisgICAgICAgIGlmIChjdXJyZW50LT5wc2V1ZG9FbGVtZW50VHlw
ZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50V2ViS2l0Q3VzdG9tKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1N1cHBvcnRzUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9y
dHNQYXJzZXIuY3BwCmluZGV4IGRmMGFkMDYxODRjNGM0MjRmOWYzN2RlZmVjNDM2NTM5MzkwZGI3
MjYuLmVkNGM2ODFlZDYxNDJjOGU0YzFjYzZkNDMyZDY2ZGFlZGUxMzQ0MTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCkBAIC00MCwzMSAr
NDAsMzkgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFy
c2VyOjpzdXBwb3J0c0NvbmRpdGlvbihDU1NQYXJzZXIKICAgICAvLyBidXQgbWFqb3IgYnJvd3Nl
ciB2ZW5kb3JzIGFsbG93IGl0IGluIENTUy5zdXBwb3J0cyBhbHNvLgogICAgIHJhbmdlLmNvbnN1
bWVXaGl0ZXNwYWNlKCk7CiAgICAgQ1NTU3VwcG9ydHNQYXJzZXIgc3VwcG9ydHNQYXJzZXIocGFy
c2VyKTsKKworICAgIGJvb2wgaXNTdXBwb3J0c1NlbGVjdG9yID0gZmFsc2U7CisKKyAgICBpZiAo
cmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuICYmIHJhbmdlLnBlZWsoKS5mdW5j
dGlvbklkKCkgPT0gQ1NTVmFsdWVTZWxlY3RvcikKKyAgICAgICAgaXNTdXBwb3J0c1NlbGVjdG9y
ID0gdHJ1ZTsKKwogICAgIGF1dG8gcmVzdWx0ID0gc3VwcG9ydHNQYXJzZXIuY29uc3VtZUNvbmRp
dGlvbihyYW5nZSk7Ci0gICAgaWYgKG1vZGUgIT0gRm9yV2luZG93Q1NTIHx8IHJlc3VsdCAhPSBJ
bnZhbGlkKQorICAgIGlmICgobW9kZSAhPSBGb3JXaW5kb3dDU1MgJiYgIWlzU3VwcG9ydHNTZWxl
Y3RvcikgfHwgcmVzdWx0ICE9IEludmFsaWQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CisKICAg
ICAvLyB3aW5kb3cuQ1NTLnN1cHBvcnRzIHJlcXVpcmVzIHBhcnNpbmcgYXMtaWYgdGhlIGNvbmRp
dGlvbiB3YXMgd3JhcHBlZCBpbgogICAgIC8vIHBhcmVudGhlc2lzLiBUaGUgb25seSBwcm9kdWN0
aW9ucyB0aGF0IHdvdWxkbid0IGhhdmUgcGFyc2VkIGFib3ZlIGFyZSB0aGUKICAgICAvLyBkZWNs
YXJhdGlvbiBjb25kaXRpb24gb3IgdGhlIGdlbmVyYWwgZW5jbG9zZWQgcHJvZHVjdGlvbnMuCi0g
ICAgcmV0dXJuIHN1cHBvcnRzUGFyc2VyLmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2Vu
ZXJhbEVuY2xvc2VkKHJhbmdlKTsKKyAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZVN1
cHBvcnRzRmVhdHVyZU9yR2VuZXJhbEVuY2xvc2VkKHJhbmdlKTsKIH0KIAogZW51bSBDbGF1c2VU
eXBlIHsgVW5yZXNvbHZlZCwgQ29uanVuY3Rpb24sIERpc2p1bmN0aW9uIH07CiAKIENTU1N1cHBv
cnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRp
dGlvbihDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlKQogewotICAgIGlmIChyYW5nZS5wZWVrKCku
dHlwZSgpID09IElkZW50VG9rZW4gfHwgcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRv
a2VuKQotICAgICAgICByZXR1cm4gY29uc3VtZU5lZ2F0aW9uKHJhbmdlKTsKKyAgICBpZiAocmFu
Z2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0g
RnVuY3Rpb25Ub2tlbikgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShyYW5n
ZS5wZWVrKCkudmFsdWUoKSwgIm5vdCIpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVOZWdh
dGlvbihyYW5nZSk7CisgICAgfQogCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBDbGF1
c2VUeXBlIGNsYXVzZVR5cGUgPSBVbnJlc29sdmVkOwotICAgIAotICAgIGF1dG8gcHJldmlvdXNU
b2tlblR5cGUgPSBJZGVudFRva2VuOwogCiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgU3Vw
cG9ydHNSZXN1bHQgbmV4dFJlc3VsdCA9IGNvbnN1bWVDb25kaXRpb25JblBhcmVudGhlc2lzKHJh
bmdlLCBwcmV2aW91c1Rva2VuVHlwZSk7CisgICAgICAgIFN1cHBvcnRzUmVzdWx0IG5leHRSZXN1
bHQgPSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSk7CiAgICAgICAgIGlmIChu
ZXh0UmVzdWx0ID09IEludmFsaWQpCiAgICAgICAgICAgICByZXR1cm4gSW52YWxpZDsKKwogICAg
ICAgICBib29sIG5leHRTdXBwb3J0ZWQgPSBuZXh0UmVzdWx0OwogICAgICAgICBpZiAoY2xhdXNl
VHlwZSA9PSBVbnJlc29sdmVkKQogICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFN1cHBvcnRlZDsK
QEAgLTgzLDggKzkxLDYgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1
cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclQKICAgICAgICAgaWYgKHRv
a2VuLnR5cGUoKSAhPSBJZGVudFRva2VuICYmIHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2Vu
KQogICAgICAgICAgICAgcmV0dXJuIEludmFsaWQ7CiAgICAgICAgIAotICAgICAgICBwcmV2aW91
c1Rva2VuVHlwZSA9IHRva2VuLnR5cGUoKTsKLSAgICAgICAgCiAgICAgICAgIGlmIChjbGF1c2VU
eXBlID09IFVucmVzb2x2ZWQpCiAgICAgICAgICAgICBjbGF1c2VUeXBlID0gdG9rZW4udmFsdWUo
KS5sZW5ndGgoKSA9PSAzID8gQ29uanVuY3Rpb24gOiBEaXNqdW5jdGlvbjsKICAgICAgICAgaWYg
KChjbGF1c2VUeXBlID09IENvbmp1bmN0aW9uICYmICFlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRv
a2VuLnZhbHVlKCksICJhbmQiKSkKQEAgLTEwMCwyMSArMTA2LDIzIEBAIENTU1N1cHBvcnRzUGFy
c2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihD
U1NQYXJzZXJUCiBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQ
YXJzZXI6OmNvbnN1bWVOZWdhdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlKQogewogICAg
IEFTU0VSVChyYW5nZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gfHwgcmFuZ2UucGVlaygp
LnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKLSAgICBhdXRvIHRva2VuVHlwZSA9IHJhbmdlLnBl
ZWsoKS50eXBlKCk7Ci0gICAgaWYgKCFlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHJhbmdlLnBlZWso
KS52YWx1ZSgpLCAibm90IikpCi0gICAgICAgIHJldHVybiBJbnZhbGlkOworCiAgICAgaWYgKHJh
bmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbikKICAgICAgICAgcmFuZ2UuY29uc3VtZUlu
Y2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICBTdXBwb3J0c1Jlc3VsdCByZXN1bHQgPSBjb25zdW1l
Q29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSwgdG9rZW5UeXBlKTsKKyAgICBTdXBwb3J0c1Jl
c3VsdCByZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSk7CiAgICAg
cmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKICAgICBpZiAoIXJhbmdlLmF0RW5kKCkgfHwgcmVz
dWx0ID09IEludmFsaWQpCiAgICAgICAgIHJldHVybiBJbnZhbGlkOworCiAgICAgcmV0dXJuIHJl
c3VsdCA/IFVuc3VwcG9ydGVkIDogU3VwcG9ydGVkOwogfQogCi1DU1NTdXBwb3J0c1BhcnNlcjo6
U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRp
dGlvbk9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorQ1NTU3Vw
cG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3Vw
cG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Up
CiB7CiAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgeworICAg
ICAgICBpZiAocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNlbGVjdG9yKQor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4ocmFuZ2UpOworCiAg
ICAgICAgIHJhbmdlLmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpOwogICAgICAgICByZXR1cm4gVW5z
dXBwb3J0ZWQ7CiAgICAgfQpAQCAtMTIyLDE3ICsxMzAsMzYgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6
OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lRGVjbGFyYXRpb25Db25k
aXRpb24KICAgICByZXR1cm4gcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuICYmIG1f
cGFyc2VyLnN1cHBvcnRzRGVjbGFyYXRpb24ocmFuZ2UpID8gU3VwcG9ydGVkIDogVW5zdXBwb3J0
ZWQ7CiB9CiAKLUNTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1Bh
cnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIENTU1BhcnNlclRva2VuVHlwZSBzdGFydFRva2VuVHlwZSkKK0NTU1N1cHBvcnRzUGFy
c2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2Vs
ZWN0b3JGbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKLSAgICBpZiAoc3RhcnRUb2tl
blR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExlZnRQYXJlbnRo
ZXNpc1Rva2VuKQorICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4p
CisgICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIGlmIChyYW5nZS5wZWVrKCkuZnVuY3Rpb25J
ZCgpICE9IENTU1ZhbHVlU2VsZWN0b3IpCiAgICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIGF1
dG8gYmxvY2sgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKKyAgICBibG9jay5jb25zdW1lV2hpdGVz
cGFjZSgpOworICAgIGlmIChDU1NTZWxlY3RvclBhcnNlcjo6c3VwcG9ydHNDb21wbGV4U2VsZWN0
b3IoYmxvY2ssIG1fcGFyc2VyLmNvbnRleHQoKSkpCisgICAgICAgIHJldHVybiBTdXBwb3J0ZWQ7
CiAKLSAgICBDU1NQYXJzZXJUb2tlblJhbmdlIGlubmVyUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxv
Y2soKTsKLSAgICBpbm5lclJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7Ci0gICAgU3VwcG9ydHNS
ZXN1bHQgcmVzdWx0ID0gY29uc3VtZUNvbmRpdGlvbihpbm5lclJhbmdlKTsKLSAgICBpZiAocmVz
dWx0ICE9IEludmFsaWQpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgcmV0dXJuIGNvbnN1
bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2VkKGlubmVyUmFuZ2UpOworICAg
IHJldHVybiBVbnN1cHBvcnRlZDsKK30KKworQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVz
dWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKK3sKKyAgICAvLyA8c3VwcG9ydHMtaW4tcGFyZW5zPiA9
ICggPHN1cHBvcnRzLWNvbmRpdGlvbj4gKSB8IDxzdXBwb3J0cy1mZWF0dXJlPiB8IDxnZW5lcmFs
LWVuY2xvc2VkPgorICAgIENTU1BhcnNlclRva2VuUmFuZ2UgaW5uZXJSYW5nZSA9IHJhbmdlOwor
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IExlZnRQYXJlbnRoZXNpc1Rva2VuKSB7Cisg
ICAgICAgIGlubmVyUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKKyAgICAgICAgaW5uZXJS
YW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworCisgICAgICAgIFN1cHBvcnRzUmVzdWx0IHJlc3Vs
dCA9IGNvbnN1bWVDb25kaXRpb24oaW5uZXJSYW5nZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0g
SW52YWxpZCkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gPHN1
cHBvcnRzLWZlYXR1cmU+ID0gPHN1cHBvcnRzLXNlbGVjdG9yLWZuPiB8IDxzdXBwb3J0cy1kZWNs
PgorICAgIC8vIDxnZW5lcmFsLWVuY2xvc2VkPgorICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNG
ZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQoaW5uZXJSYW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9y
dHNQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIu
aAppbmRleCA1YjM5NDBkNGNjODkyYzBkYWEwYmMwOGY0MjcyMjNjNWNiYTJjZmMwLi5kZWVjNjFh
NTE2MDZjZGQ2MTI3Njk1YWRlZDRlMDYxOWIwYjkwNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCkBAIC01Nyw5ICs1NywxMiBAQCBwcml2YXRl
OgogCiAgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUb2tlblJh
bmdlKTsKICAgICBTdXBwb3J0c1Jlc3VsdCBjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG9rZW5S
YW5nZSk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JH
ZW5lcmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIFN1cHBvcnRzUmVzdWx0
IGNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJh
bmdlJik7CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC00
LyN0eXBlZGVmLXN1cHBvcnRzLXNlbGVjdG9yLWZuCisgICAgLy8gPHN1cHBvcnRzLXNlbGV0b3It
Zm4+ID0gc2VsZWN0b3IoIDxjb21wbGV4LXNlbGVjdG9yPiApOworICAgIFN1cHBvcnRzUmVzdWx0
IGNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCi0gICAg
U3VwcG9ydHNSZXN1bHQgY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYsIENTU1BhcnNlclRva2VuVHlwZSk7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3Vt
ZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiAgICAgQ1NT
UGFyc2VySW1wbCYgbV9wYXJzZXI7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjYTQ4Y2EwN2I4YTU5MGY2NWJmOTlk
NTFiZmQxOTQwZGIxYzRkZTAuLmI3Y2I3YzA0ZmJlM2YzZGVkNTEzYzdmYzk5NTIwNzdjMDA5ZTc2
NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wOC0xOSAgSm9vbmdodW4gUGFyayAgPGpo
NzE4LnBhcmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEBzdXBwb3J0cyBzZWxl
Y3RvcigpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk5MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTA4LTE4ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXZWJHTDJdIFBhc3MgdXNlci1kZWZpbmVkLXByb3Bl
cnRpZXMtb24tY29udGV4dC5odG1sIGxheW91dCB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA1OWY5OTU1MGRmMWMzMzkxMzYyZmMyOTMwOGQxYjQ5ZTgwNjYwYzQ3Li45OWEz
MGZiNmZiNzEzMzNmYTBhOWFkYTYwZWEzZjE1YjQ4MDBjYWVkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wOC0xOSAgSm9vbmdodW4gUGFyayAg
PGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEBzdXBwb3J0cyBz
ZWxlY3RvcigpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQ6CisKIDIw
MjAtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQYW5u
ZXJOb2RlJ3Mgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUgY2xhbXBlZCB0byBbMCwgMV0gaW50ZXJu
YWxseSB3aGVuIGRpc3RhbmNlTW9kZWwgaXMgImxpbmVhciIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDFkODdlMjkyMWRkMGE4YjEzYjhhNjRiZGZiODI2OTI1ZjU0N2JkNjUuLjFiODYxYWYxMmVkYzhm
NmYzZGY5ZDY2NGVkNTI0N2FmYmM3MWE5NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ5OCw5
ICsxNDk4LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1pbWctZWxlbWVudC8KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtb2JqZWN0LWVs
ZW1lbnQvb2JqZWN0LWV2ZW50cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLXZpZGVvLWVsZW1l
bnQvaW50cmluc2ljc2l6ZS9pbnRyaW5zaWNzaXplLXdpdGhvdXQtdW5zaXplZC1tZWRpYS50ZW50
YXRpdmUuaHR0cHMuc3ViLmh0bWwgWyBTa2lwIF0KIAotIyBAc3VwcG9ydHMgVzNDIEZhaWx1cmVz
Ci13ZWJraXQub3JnL2IvMTM3NTY4IGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTAx
NC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0KIHRyYW5zaXRpb25zL3N2Zy10ZXh0LXNoYWRv
dy10cmFuc2l0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzc4ODMgdHJhbnNp
dGlvbnMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtp
dC5vcmcvYi8xMzc4ODMgdHJhbnNpdGlvbnMvYm9yZGVyLXJhZGl1cy10cmFuc2l0aW9uLmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25h
bC93M2MvYXQtc3VwcG9ydHMtMDQwLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Nv
bmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
Y2I4OWZjNmRlY2FmYjJmMDRkZTE4YjQ0MTg2YTFmMjJmZmY4MzFjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKwk8aGVh
ZD4KKwkJPHRpdGxlPkNTUyBSZWZ0ZXN0IFJlZmVyZW5jZTwvdGl0bGU+CisJCTxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iRmxvcmlhbiBSaXZvYWwiIGhyZWY9Im1haWx0bzpmbG9yaWFuckBvcGVy
YS5jb20iPgorCQk8c3R5bGU+CisJCQlkaXYgeworCQkJCWJhY2tncm91bmQtY29sb3I6Z3JlZW47
CisJCQkJaGVpZ2h0OjEwMHB4OworCQkJCXdpZHRoOjEwMHB4OworCQkJfQorCQk8L3N0eWxlPgor
CTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25n
PmZpbGxlZCBncmVlbiBzcXVhcmU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+
LjwvcD4KKwkJPGRpdj48L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAuaHRtbCBiL0xheW91
dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjNGE1OGYzNDZiYWE3Yjc3ODhkZDZiZTVlNTkyNjc1OWMyNzlhODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5DU1MgQ29uZGl0
aW9uYWwgVGVzdDogQHN1cHBvcnRzIHNlbGVjdG9yKCkgd2l0aCBwc2V1ZG8tZWxlbWVudHMuPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6IiBo
cmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0i
aHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1vemlsbGEiPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLyNhdC1zdXBwb3J0
cyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJhdC1zdXBwb3J0cy0wMDEtcmVmLmh0bWwiPgor
PHN0eWxlPgorICBkaXYgeworICAgIGJhY2tncm91bmQtY29sb3I6cmVkOworICAgIGhlaWdodDox
MDBweDsKKyAgICB3aWR0aDoxMDBweDsKKyAgfQorICBAc3VwcG9ydHMgc2VsZWN0b3IoOjpiZWZv
cmUpIHsKKyAgICBkaXYgeyBiYWNrZ3JvdW5kOiBncmVlbiB9OworICB9Cis8L3N0eWxlPgorPHA+
VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxlZCBncmVlbiBzcXVhcmU8L3N0
cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKzxkaXY+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBv
cnRzLTA0MS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZTE4OTMxMjRkNjhiMDU4MGU5YzU2
YzYyNGFiOWExZTljMzgwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2Nv
bmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+
Q1NTIFJlZnRlc3QgUmVmZXJlbmNlPC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJGbG9yaWFuIFJpdm9hbCIgaHJlZj0ibWFpbHRvOmZsb3JpYW5yQG9wZXJhLmNvbSI+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGRpdiB7CisgICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjpncmVlbjsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6MTAwcHg7CisgICAg
ICAgICAgICAgICAgd2lkdGg6MTAwcHg7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+
CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD5UZXN0IHBhc3NlcyBpZiB0aGVy
ZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5u
byByZWQ8L3N0cm9uZz4uPC9wPgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1
cHBvcnRzLTA0MS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3Vw
cG9ydHMtMDQxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY5MjM2YTJhMjcwY2UwZTc1OWUzMmZjOTJjYjBi
Nzc1NGU4ZTRmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBo
dG1sPgorPHRpdGxlPkNTUyBDb25kaXRpb25hbCBUZXN0OiBAc3VwcG9ydHMgc2VsZWN0b3IoKSB3
aXRoIC13ZWJraXQtIHVua25vd24gcHNldWRvLWVsZW1lbnRzIGFuZCBuZWdhdGlvbi48L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9
Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJodHRw
czovL21vemlsbGEub3JnIiB0aXRsZT0iTW96aWxsYSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwvI2F0LXN1cHBvcnRzIj4K
KzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImF0LXN1cHBvcnRzLTAwMS1yZWYuaHRtbCI+Cis8c3R5
bGU+CisgIGRpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZWQ7CisgICAgaGVpZ2h0OjEwMHB4
OworICAgIHdpZHRoOjEwMHB4OworICB9CisgIEBzdXBwb3J0cyBub3QgKHNlbGVjdG9yKDo6LXdl
YmtpdC11bmtub3duLXBzZXVkbykpIHsKKyAgICBkaXYgeyBiYWNrZ3JvdW5kOiBncmVlbiB9Owor
ICB9Cis8L3N0eWxlPgorPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxl
ZCBncmVlbiBzcXVhcmU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4K
KzxkaXY+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3cz
Yy9hdC1zdXBwb3J0cy0wNDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0
aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjYjg5
ZmM2ZGVjYWZiMmYwNGRlMThiNDQxODZhMWYyMmZmZjgzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDItZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorCTxoZWFkPgor
CQk8dGl0bGU+Q1NTIFJlZnRlc3QgUmVmZXJlbmNlPC90aXRsZT4KKwkJPGxpbmsgcmVsPSJhdXRo
b3IiIHRpdGxlPSJGbG9yaWFuIFJpdm9hbCIgaHJlZj0ibWFpbHRvOmZsb3JpYW5yQG9wZXJhLmNv
bSI+CisJCTxzdHlsZT4KKwkJCWRpdiB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpncmVlbjsKKwkJ
CQloZWlnaHQ6MTAwcHg7CisJCQkJd2lkdGg6MTAwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9o
ZWFkPgorCTxib2R5PgorCQk8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+Zmls
bGVkIGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9w
PgorCQk8ZGl2PjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDcyNDFmMzdhMzU3OTJjNTU0NTQ1YjNmOGY2MzY1YWZjODM1YjA3ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPkNTUyBDb25kaXRpb25h
bCBUZXN0OiBAc3VwcG9ydHMgc2VsZWN0b3IoKSB3aXRoIG11bHRpcGxlIHNlbGVjdG9ycyBkb2Vz
bid0IHdvcmsuPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENvYm9z
IMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0iaHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1vemlsbGEiPgorPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFs
LyNhdC1zdXBwb3J0cyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJhdC1zdXBwb3J0cy0wMDEt
cmVmLmh0bWwiPgorPHN0eWxlPgorICBkaXYgeworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworICAgIGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDEwMHB4OworICB9CisgIEBzdXBwb3J0
cyBzZWxlY3RvcihkaXYsIGRpdikgeworICAgIGRpdiB7IGJhY2tncm91bmQ6IHJlZCB9OworICB9
Cis8L3N0eWxlPgorPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxlZCBn
cmVlbiBzcXVhcmU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKzxk
aXY+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4cGVjdGVkLnR4dAppbmRl
eCAwNThmNmQxODA3YzA4YjAwNmZmOWQzY2VkMThiODFjNWQ2MjIwNWQ2Li5iNTg0M2ZmZmM3ZWE5
YjhlY2Y0ZjkxODQ5NTk2ZWVjZTVjNzkzZDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
L0NTUy1leHBlY3RlZC50eHQKQEAgLTIsNSArMiw1IEBACiBQQVNTIENTUy5lc2NhcGUgCiBQQVNT
IENTUy5zdXBwb3J0cywgb25lIGFyZ3VtZW50IGZvcm0gCiBGQUlMIENTUy5zdXBwb3J0cywgdHdv
IGFyZ3VtZW50IGZvcm0gYXNzZXJ0X2VxdWFsczogQ1NTLnN1cHBvcnRzOiB0d28gYXJndW1lbnQg
Zm9ybSBzdWNjZWVkcyBmb3IgY3VzdG9tIHByb3BlcnR5IGV4cGVjdGVkIHRydWUgYnV0IGdvdCBm
YWxzZQotRkFJTCBDU1Muc3VwcG9ydHMsIHNlbGVjdG9yIGZ1bmN0aW9uIGFzc2VydF9lcXVhbHM6
IENTUy5zdXBwb3J0czogc2VsZWN0b3IoKSBmdW5jdGlvbiBhY2NlcHRzIGEgc2VsZWN0b3IgZXhw
ZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitGQUlMIENTUy5zdXBwb3J0cywgc2VsZWN0b3IgZnVu
Y3Rpb24gYXNzZXJ0X2VxdWFsczogQ1NTLnN1cHBvcnRzOiBzZWxlY3RvcigpIHdpdGggdW5rbm93
biBjb21iaW5hdG9ycyBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407359</attachid>
            <date>2020-08-26 17:06:59 -0700</date>
            <delta_ts>2020-08-26 18:52:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199237-20200827090657.patch</filename>
            <type>text/plain</type>
            <size>24246</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNhNGJhNTU0M2IwMDQy
ZjVkNDFhNmE3YmNjN2Y5Y2Q0Njk5YTE4NC4uN2I2YjVlNzU0ZWMzMDYwN2YwYTIxY2YyMDRhMTNj
ZmU5NzNmZDNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA4LTI2ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQw
Lmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0
MS5odG1sCisgICAgICAgICAgICAgICBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0w
NDIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICog
Y3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJJ
bXBsOjpjb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yUGFyc2VyOjpzdXBwb3J0c0Nv
bXBsZXhTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29u
dGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMpOgorICAgICAgICAqIGNzcy9wYXJzZXIv
Q1NTU3VwcG9ydHNQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OnN1cHBvcnRzQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lTmVnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OmNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFy
ZW50aGVzaXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVE
ZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmg6CisKIDIwMjAtMDgtMjYgIEFuZHJlcyBH
b256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFdoZW4gY2FjaGluZyB0
aGUgQWNjZXNzaWJpbGl0eVRleHQgcHJvcGVydHkgaW4gQVhJc29sYXRlZE9iamVjdCwgdGhlIFN0
cmluZ3MgbmVlZCB0byBiZSBpc29sYXRlZENvcGllZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KaW5kZXggYWIwZGY3YzhkZDJlODc5NzI5ZDcxYzJhNGYzMzdhODg3MDkxNTk1
OS4uNmJhYzAwMzI2NmNiZDNjMGVlNTg3NDIwMzgzODZkNTI1ODAxMWMwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTE0NTEsMyArMTQ1MSw3IEBAIGZyb20tZm9u
dAogLy8gZHluYW1pYy1yYW5nZQogc3RhbmRhcmQKIGhpZ2gKKworLy8gQHN1cHBvcnRzIHNlbGVj
dG9yKCkKKy8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwtNC8jdHlw
ZWRlZi1zdXBwb3J0cy1zZWxlY3Rvci1mbgorc2VsZWN0b3IKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCmluZGV4IGYw
ZGFlYTJhZTFmYmI5M2VhNjk5M2JjY2QxNDFiMjlhYjA0NGMzYTcuLjYxM2Y4NWY0ZjJhYWI4OTA5
Mzc5MTIzNWEzZmQwNzcwOTg0NmM0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VySW1wbC5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9y
PGRvdWJsZT4gcGFyc2VLZXlmcmFtZUtleUxpc3QoY29uc3QgU3RyaW5nJik7CiAKICAgICBib29s
IHN1cHBvcnRzRGVjbGFyYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIGNvbnN0IENT
U1BhcnNlckNvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAog
ICAgIHN0YXRpYyB2b2lkIHBhcnNlRGVjbGFyYXRpb25MaXN0Rm9ySW5zcGVjdG9yKGNvbnN0IFN0
cmluZyYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmLCBDU1NQYXJzZXJPYnNlcnZlciYpOwogICAg
IHN0YXRpYyB2b2lkIHBhcnNlU3R5bGVTaGVldEZvckluc3BlY3Rvcihjb25zdCBTdHJpbmcmLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiwgU3R5bGVTaGVldENvbnRlbnRzKiwgQ1NTUGFyc2VyT2Jz
ZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0
b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNl
ci5jcHAKaW5kZXggMzhkMTcxMmQzZjFmOTA2MWFjMjJiOWI4ZmNlNzNiYzM1NTI0OWFhMC4uYjNl
NmRjZDNkYmZkNmI3Njg1YjA5MGE1NjRlMTAxZmU2YjYwOTgzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAg
cHVibGljOgogCiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wbGV4U2VsZWN0b3JMaXN0
KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIAorICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQ29tcGxl
eFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsK
KwogcHJpdmF0ZToKICAgICBDU1NTZWxlY3Rvckxpc3QgY29uc3VtZUNvbXBvdW5kU2VsZWN0b3JM
aXN0KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIApAQCAtNzEsNiArNzMsNyBAQCBwcml2YXRlOgog
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGRldGVybWluZU5hbWVzcGFjZShjb25zdCBBdG9tU3RyaW5n
JiBwcmVmaXgpOwogICAgIHZvaWQgcHJlcGVuZFR5cGVTZWxlY3RvcklmTmVlZGVkKGNvbnN0IEF0
b21TdHJpbmcmIG5hbWVzcGFjZVByZWZpeCwgY29uc3QgQXRvbVN0cmluZyYgZWxlbWVudE5hbWUs
IENTU1BhcnNlclNlbGVjdG9yJik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4gc3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGFkb3dDcm9zc2luZ0NvbWJpbmF0
b3Ioc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBjb21wb3VuZFNlbGVjdG9yLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisgICAgc3RhdGljIGJvb2wgY29udGFpbnNVbmtub3du
V2ViS2l0UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3ImIGNvbXBsZXhTZWxlY3Rvcik7
CiAKICAgICBjbGFzcyBEaXNhbGxvd1BzZXVkb0VsZW1lbnRzU2NvcGU7CiAKQEAgLTEzNSw2ICsx
MzgsMjMgQEAgQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lQ29tcGxl
eFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmcKICAgICByZXR1cm4gQ1NTU2VsZWN0b3JM
aXN0IHsgV1RGTW92ZShzZWxlY3Rvckxpc3QpIH07CiB9CiAKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJz
ZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UsIGNv
bnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmFuZ2UuY29uc3VtZVdoaXRl
c3BhY2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIoY29udGV4dCwgbnVsbHB0cik7
CisKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTYzNQorICAgIC8vIFVua25vd24gY3NzIHNlbGVjdG9yIGNvbWJpbmF0b3IgaXMgbm90IGFk
ZHJlc3NlZCBjb3JyZWN0bHkgaW4gfENTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lQ29tcGxleFNl
bGVjdG9yfC4KKyAgICBhdXRvIHBhcnNlclNlbGVjdG9yID0gcGFyc2VyLmNvbnN1bWVDb21wbGV4
U2VsZWN0b3IocmFuZ2UpOworICAgIGlmIChwYXJzZXIubV9mYWlsZWRQYXJzaW5nIHx8ICFyYW5n
ZS5hdEVuZCgpIHx8ICFwYXJzZXJTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBjb21wbGV4U2VsZWN0b3IgPSBwYXJzZXJTZWxlY3Rvci0+cmVsZWFzZVNlbGVjdG9y
KCk7CisgICAgQVNTRVJUKGNvbXBsZXhTZWxlY3Rvcik7CisKKyAgICByZXR1cm4gIWNvbnRhaW5z
VW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKCpjb21wbGV4U2VsZWN0b3IpID8gdHJ1ZSA6IGZh
bHNlOworfQorCiBDU1NTZWxlY3Rvckxpc3QgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVDb21w
b3VuZFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4gc2VsZWN0b3JMaXN0OwpAQCAt
OTUyLDQgKzk3MiwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1Nl
bGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYQogICAgIHJldHVybiBzZWNv
bmRDb21wb3VuZDsKIH0KIAorYm9vbCBDU1NTZWxlY3RvclBhcnNlcjo6Y29udGFpbnNVbmtub3du
V2ViS2l0UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3ImIGNvbXBsZXhTZWxlY3RvcikK
K3sKKyAgICBmb3IgKGF1dG8gY3VycmVudCA9ICZjb21wbGV4U2VsZWN0b3I7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0b3J5KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPnBz
ZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0
b20pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAKaW5kZXggZGYwYWQwNjE4NGM0YzQyNGY5ZjM3ZGVm
ZWM0MzY1MzkzOTBkYjcyNi4uMjJkZWI2ZWU3YWQ0OTZiMTVlOGRiNThkMTY2ZDljN2M5NmUxMjRl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5j
cHAKQEAgLTQwLDI5ICs0MCwzMyBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQg
Q1NTU3VwcG9ydHNQYXJzZXI6OnN1cHBvcnRzQ29uZGl0aW9uKENTU1BhcnNlcgogICAgIC8vIGJ1
dCBtYWpvciBicm93c2VyIHZlbmRvcnMgYWxsb3cgaXQgaW4gQ1NTLnN1cHBvcnRzIGFsc28uCiAg
ICAgcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKICAgICBDU1NTdXBwb3J0c1BhcnNlciBzdXBw
b3J0c1BhcnNlcihwYXJzZXIpOworCiAgICAgYXV0byByZXN1bHQgPSBzdXBwb3J0c1BhcnNlci5j
b25zdW1lQ29uZGl0aW9uKHJhbmdlKTsKICAgICBpZiAobW9kZSAhPSBGb3JXaW5kb3dDU1MgfHwg
cmVzdWx0ICE9IEludmFsaWQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CisKICAgICAvLyB3aW5k
b3cuQ1NTLnN1cHBvcnRzIHJlcXVpcmVzIHBhcnNpbmcgYXMtaWYgdGhlIGNvbmRpdGlvbiB3YXMg
d3JhcHBlZCBpbgogICAgIC8vIHBhcmVudGhlc2lzLiBUaGUgb25seSBwcm9kdWN0aW9ucyB0aGF0
IHdvdWxkbid0IGhhdmUgcGFyc2VkIGFib3ZlIGFyZSB0aGUKICAgICAvLyBkZWNsYXJhdGlvbiBj
b25kaXRpb24gb3IgdGhlIGdlbmVyYWwgZW5jbG9zZWQgcHJvZHVjdGlvbnMuCi0gICAgcmV0dXJu
IHN1cHBvcnRzUGFyc2VyLmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xv
c2VkKHJhbmdlKTsKKyAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZVN1cHBvcnRzRmVh
dHVyZU9yR2VuZXJhbEVuY2xvc2VkKHJhbmdlKTsKIH0KIAogZW51bSBDbGF1c2VUeXBlIHsgVW5y
ZXNvbHZlZCwgQ29uanVuY3Rpb24sIERpc2p1bmN0aW9uIH07CiAKIENTU1N1cHBvcnRzUGFyc2Vy
OjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihDU1NQ
YXJzZXJUb2tlblJhbmdlIHJhbmdlKQogewotICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09
IElkZW50VG9rZW4gfHwgcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKQotICAg
ICAgICByZXR1cm4gY29uc3VtZU5lZ2F0aW9uKHJhbmdlKTsKKyAgICBpZiAocmFuZ2UucGVlaygp
LnR5cGUoKSA9PSBJZGVudFRva2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25U
b2tlbikgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShyYW5nZS5wZWVrKCku
dmFsdWUoKSwgIm5vdCIpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVOZWdhdGlvbihyYW5n
ZSk7CisgICAgfQogCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBDbGF1c2VUeXBlIGNs
YXVzZVR5cGUgPSBVbnJlc29sdmVkOwotICAgIAorCiAgICAgYXV0byBwcmV2aW91c1Rva2VuVHlw
ZSA9IElkZW50VG9rZW47CiAKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICBTdXBwb3J0c1Jl
c3VsdCBuZXh0UmVzdWx0ID0gY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMocmFuZ2UsIHBy
ZXZpb3VzVG9rZW5UeXBlKTsKKyAgICAgICAgYXV0byBuZXh0UmVzdWx0ID0gY29uc3VtZUNvbmRp
dGlvbkluUGFyZW50aGVzaXMocmFuZ2UsIHByZXZpb3VzVG9rZW5UeXBlKTsKICAgICAgICAgaWYg
KG5leHRSZXN1bHQgPT0gSW52YWxpZCkKICAgICAgICAgICAgIHJldHVybiBJbnZhbGlkOwogICAg
ICAgICBib29sIG5leHRTdXBwb3J0ZWQgPSBuZXh0UmVzdWx0OwpAQCAtODMsOCArODcsNiBAQCBD
U1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1
bWVDb25kaXRpb24oQ1NTUGFyc2VyVAogICAgICAgICBpZiAodG9rZW4udHlwZSgpICE9IElkZW50
VG9rZW4gJiYgdG9rZW4udHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCiAgICAgICAgICAgICByZXR1
cm4gSW52YWxpZDsKICAgICAgICAgCi0gICAgICAgIHByZXZpb3VzVG9rZW5UeXBlID0gdG9rZW4u
dHlwZSgpOwotICAgICAgICAKICAgICAgICAgaWYgKGNsYXVzZVR5cGUgPT0gVW5yZXNvbHZlZCkK
ICAgICAgICAgICAgIGNsYXVzZVR5cGUgPSB0b2tlbi52YWx1ZSgpLmxlbmd0aCgpID09IDMgPyBD
b25qdW5jdGlvbiA6IERpc2p1bmN0aW9uOwogICAgICAgICBpZiAoKGNsYXVzZVR5cGUgPT0gQ29u
anVuY3Rpb24gJiYgIWVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4udmFsdWUoKSwgImFuZCIp
KQpAQCAtMTAxLDIwICsxMDMsMjMgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0
IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG8KIHsKICAgICBB
U1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuIHx8IHJhbmdlLnBlZWsoKS50
eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbik7CiAgICAgYXV0byB0b2tlblR5cGUgPSByYW5nZS5wZWVr
KCkudHlwZSgpOwotICAgIGlmICghZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShyYW5nZS5wZWVrKCku
dmFsdWUoKSwgIm5vdCIpKQotICAgICAgICByZXR1cm4gSW52YWxpZDsKKwogICAgIGlmIChyYW5n
ZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4pCiAgICAgICAgIHJhbmdlLmNvbnN1bWVJbmNs
dWRpbmdXaGl0ZXNwYWNlKCk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgcmVzdWx0ID0gY29uc3VtZUNv
bmRpdGlvbkluUGFyZW50aGVzaXMocmFuZ2UsIHRva2VuVHlwZSk7CisgICAgYXV0byByZXN1bHQg
PSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSwgdG9rZW5UeXBlKTsKICAgICBy
YW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOwogICAgIGlmICghcmFuZ2UuYXRFbmQoKSB8fCByZXN1
bHQgPT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIEludmFsaWQ7CisKICAgICByZXR1cm4gcmVz
dWx0ID8gVW5zdXBwb3J0ZWQgOiBTdXBwb3J0ZWQ7CiB9CiAKLUNTU1N1cHBvcnRzUGFyc2VyOjpT
dXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZURlY2xhcmF0aW9uQ29uZGl0
aW9uT3JHZW5lcmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitDU1NTdXBw
b3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVTdXBw
b3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
IHsKICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7CisgICAg
ICAgIGlmIChyYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlU2VsZWN0b3IpCisg
ICAgICAgICAgICByZXR1cm4gY29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbihyYW5nZSk7CisKICAg
ICAgICAgcmFuZ2UuY29uc3VtZUNvbXBvbmVudFZhbHVlKCk7CiAgICAgICAgIHJldHVybiBVbnN1
cHBvcnRlZDsKICAgICB9CkBAIC0xMjIsMTcgKzEyNywzNyBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6
U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRp
dGlvbgogICAgIHJldHVybiByYW5nZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gJiYgbV9w
YXJzZXIuc3VwcG9ydHNEZWNsYXJhdGlvbihyYW5nZSkgPyBTdXBwb3J0ZWQgOiBVbnN1cHBvcnRl
ZDsKIH0KIAotQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgQ1NTUGFyc2VyVG9rZW5UeXBlIHN0YXJ0VG9rZW5UeXBlKQorQ1NTU3VwcG9ydHNQYXJz
ZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNTZWxl
Y3RvckZuKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChzdGFydFRva2Vu
VHlwZSA9PSBJZGVudFRva2VuICYmIHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gTGVmdFBhcmVudGhl
c2lzVG9rZW4pCisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gRnVuY3Rpb25Ub2tlbiB8
fCByYW5nZS5wZWVrKCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlU2VsZWN0b3IpCiAgICAgICAg
IHJldHVybiBJbnZhbGlkOwogCi0gICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBpbm5lclJhbmdlID0g
cmFuZ2UuY29uc3VtZUJsb2NrKCk7CisgICAgYXV0byBibG9jayA9IHJhbmdlLmNvbnN1bWVCbG9j
aygpOworICAgIGJsb2NrLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisKKyAgICByZXR1cm4gQ1NTU2Vs
ZWN0b3JQYXJzZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKGJsb2NrLCBtX3BhcnNlci5jb250
ZXh0KCkpID8gU3VwcG9ydGVkIDogVW5zdXBwb3J0ZWQ7Cit9CisKK0NTU1N1cHBvcnRzUGFyc2Vy
OjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFy
ZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsICBDU1NQYXJzZXJUb2tlblR5cGUg
c3RhcnRUb2tlblR5cGUpCit7CisgICAgLy8gPHN1cHBvcnRzLWluLXBhcmVucz4gPSAoIDxzdXBw
b3J0cy1jb25kaXRpb24+ICkgfCA8c3VwcG9ydHMtZmVhdHVyZT4gfCA8Z2VuZXJhbC1lbmNsb3Nl
ZD4KKyAgICBpZiAoc3RhcnRUb2tlblR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCku
dHlwZSgpICE9IExlZnRQYXJlbnRoZXNpc1Rva2VuKSB7CisgICAgICAgIGlmIChyYW5nZS5wZWVr
KCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4gJiYgcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9
PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c1Nl
bGVjdG9yRm4ocmFuZ2UpOworCisgICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIH0KKworICAg
IGF1dG8gaW5uZXJSYW5nZSA9IHJhbmdlLmNvbnN1bWVCbG9jaygpOwogICAgIGlubmVyUmFuZ2Uu
Y29uc3VtZVdoaXRlc3BhY2UoKTsKLSAgICBTdXBwb3J0c1Jlc3VsdCByZXN1bHQgPSBjb25zdW1l
Q29uZGl0aW9uKGlubmVyUmFuZ2UpOworCisgICAgYXV0byByZXN1bHQgPSBjb25zdW1lQ29uZGl0
aW9uKGlubmVyUmFuZ2UpOwogICAgIGlmIChyZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICByZXR1cm4gY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5l
cmFsRW5jbG9zZWQoaW5uZXJSYW5nZSk7CisKKyAgICAvLyA8c3VwcG9ydHMtZmVhdHVyZT4gPSA8
c3VwcG9ydHMtc2VsZWN0b3ItZm4+IHwgPHN1cHBvcnRzLWRlY2w+CisgICAgLy8gPGdlbmVyYWwt
ZW5jbG9zZWQ+CisgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNs
b3NlZChpbm5lclJhbmdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCmluZGV4IDViMzk0MGQ0Y2M4
OTJjMGRhYTBiYzA4ZjQyNzIyM2M1Y2JhMmNmYzAuLjY0YzFiYTMzOWRhOWRjMTA5N2FmZmQ2ZWVi
ZTc5MDIxYWUyODM5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
U3VwcG9ydHNQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBv
cnRzUGFyc2VyLmgKQEAgLTU3LDcgKzU3LDEwIEBAIHByaXZhdGU6CiAKICAgICBTdXBwb3J0c1Jl
c3VsdCBjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UpOwogICAgIFN1cHBvcnRz
UmVzdWx0IGNvbnN1bWVOZWdhdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlKTsKLSAgICBTdXBwb3J0
c1Jlc3VsdCBjb25zdW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3NlZChDU1NQ
YXJzZXJUb2tlblJhbmdlJik7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBvcnRzRmVh
dHVyZU9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICAvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3VwcG9ydHMt
c2VsZWN0b3ItZm4KKyAgICAvLyA8c3VwcG9ydHMtc2VsZXRvci1mbj4gPSBzZWxlY3RvciggPGNv
bXBsZXgtc2VsZWN0b3I+ICk7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBvcnRzU2Vs
ZWN0b3JGbihDU1NQYXJzZXJUb2tlblJhbmdlJik7CiAKICAgICBTdXBwb3J0c1Jlc3VsdCBjb25z
dW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2Vy
VG9rZW5UeXBlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY1ZjJhZWU4YjlhYTU1Y2Q2OWIwOTUzYTRlNTBlM2NiM2Iw
NzhlYTYuLjI4MDA2Mjk5MDI0ZDU2NWU0MjUwMzBlNTAwNTU3NmU2ZDM2YTU1NjggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAyMC0wOC0yNiAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEBzdXBwb3J0cyBzZWxlY3RvcigpLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2NvbmRp
dGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEu
aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQyLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNj
L2F0LXN1cHBvcnRzLTA0Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3N1cHBvcnRzLWRv
bS1hcGktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMvc3VwcG9ydHMtZG9tLWFwaS5odG1s
OgorICAgICAgICAqIGNzczMvc3VwcG9ydHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMv
c3VwcG9ydHMuaHRtbDoKKwogMjAyMC0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0
cHV0IGRldmljZXMgdGhhdCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDRmNzFmYzQyMjk4YmQzNDg5ZWY2MDA1ZjkxNWIy
OTRmOGY2ZTc3ODUuLmFiNTJmMDkwZmMyMTNlZmMxMjk5MGYxYmQ0YTY3YzI4ZTgyNjc3NWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA4LTI2
ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgQHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4
cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgZW51bWVyYXRlRGV2aWNlcyBzaG91bGQgZXhwb3NlIGF1ZGlvb3V0cHV0
IGRldmljZXMgdGhhdCBhcmUgdGllZCB0byBhbiBhdWRpbyBpbnB1dCBkZXZpY2UKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQwLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiODlmYzZkZWNhZmIyZjA0ZGUxOGI0NDE4
NmExZjIyZmZmODMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0
aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5DU1MgUmVmdGVzdCBS
ZWZlcmVuY2U8L3RpdGxlPgorCQk8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZsb3JpYW4gUml2
b2FsIiBocmVmPSJtYWlsdG86ZmxvcmlhbnJAb3BlcmEuY29tIj4KKwkJPHN0eWxlPgorCQkJZGl2
IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOworCQkJCWhlaWdodDoxMDBweDsKKwkJCQl3
aWR0aDoxMDBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRl
c3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJv
bmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+CisJCTxkaXY+PC9kaXY+CisJPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93
M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3cz
Yy9hdC1zdXBwb3J0cy0wNDAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzRhNThmMzQ2YmFhN2I3Nzg4ZGQ2
YmU1ZTU5MjY3NTljMjc5YTgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9j
b25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8dGl0bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6IEBzdXBwb3J0cyBzZWxl
Y3RvcigpIHdpdGggcHNldWRvLWVsZW1lbnRzLjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwu
aW8iPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96aWxsYS5vcmciIHRpdGxl
PSJNb3ppbGxhIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzcy1jb25kaXRpb25hbC8jYXQtc3VwcG9ydHMiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJl
Zj0iYXQtc3VwcG9ydHMtMDAxLXJlZi5odG1sIj4KKzxzdHlsZT4KKyAgZGl2IHsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOnJlZDsKKyAgICBoZWlnaHQ6MTAwcHg7CisgICAgd2lkdGg6MTAwcHg7Cisg
IH0KKyAgQHN1cHBvcnRzIHNlbGVjdG9yKDo6YmVmb3JlKSB7CisgICAgZGl2IHsgYmFja2dyb3Vu
ZDogZ3JlZW4gfTsKKyAgfQorPC9zdHlsZT4KKzxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEg
PHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwv
c3Ryb25nPi48L3A+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9j
b25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQxLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44N2UxODkzMTI0ZDY4YjA1ODBlOWM1NmM2MjRhYjlhMWU5YzM4MDMwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQxLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPkNTUyBSZWZ0ZXN0IFJlZmVyZW5jZTwvdGl0
bGU+CisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRmxvcmlhbiBSaXZvYWwiIGhy
ZWY9Im1haWx0bzpmbG9yaWFuckBvcGVyYS5jb20iPgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICAgICBkaXYgeworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6Z3JlZW47CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OjEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOjEwMHB4Owor
ICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4K
KyAgICAgICAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxlZCBncmVl
biBzcXVhcmU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKyAgICAg
ICAgPGRpdj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM2OTIzNmEyYTI3MGNlMGU3NTllMzJmYzkyY2IwYjc3NTRlOGU0ZmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5DU1MgQ29uZGl0aW9u
YWwgVGVzdDogQHN1cHBvcnRzIHNlbGVjdG9yKCkgd2l0aCAtd2Via2l0LSB1bmtub3duIHBzZXVk
by1lbGVtZW50cyBhbmQgbmVnYXRpb24uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iRW1pbGlvIENvYm9zIMOBbHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+
Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0iaHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1v
emlsbGEiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3NzLWNvbmRpdGlvbmFsLyNhdC1zdXBwb3J0cyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJh
dC1zdXBwb3J0cy0wMDEtcmVmLmh0bWwiPgorPHN0eWxlPgorICBkaXYgeworICAgIGJhY2tncm91
bmQtY29sb3I6cmVkOworICAgIGhlaWdodDoxMDBweDsKKyAgICB3aWR0aDoxMDBweDsKKyAgfQor
ICBAc3VwcG9ydHMgbm90IChzZWxlY3Rvcig6Oi13ZWJraXQtdW5rbm93bi1wc2V1ZG8pKSB7Cisg
ICAgZGl2IHsgYmFja2dyb3VuZDogZ3JlZW4gfTsKKyAgfQorPC9zdHlsZT4KKzxwPlRlc3QgcGFz
c2VzIGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFu
ZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDIt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2I4OWZjNmRlY2FmYjJmMDRkZTE4YjQ0MTg2YTFm
MjJmZmY4MzFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25h
bC93M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKwk8aGVhZD4KKwkJPHRpdGxlPkNTUyBSZWZ0ZXN0IFJlZmVy
ZW5jZTwvdGl0bGU+CisJCTxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRmxvcmlhbiBSaXZvYWwi
IGhyZWY9Im1haWx0bzpmbG9yaWFuckBvcGVyYS5jb20iPgorCQk8c3R5bGU+CisJCQlkaXYgewor
CQkJCWJhY2tncm91bmQtY29sb3I6Z3JlZW47CisJCQkJaGVpZ2h0OjEwMHB4OworCQkJCXdpZHRo
OjEwMHB4OworCQkJfQorCQk8L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBw
YXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxlZCBncmVlbiBzcXVhcmU8L3N0cm9uZz4g
YW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKwkJPGRpdj48L2Rpdj4KKwk8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9h
dC1zdXBwb3J0cy0wNDIuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0
LXN1cHBvcnRzLTA0Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MjQxZjM3YTM1NzkyYzU1NDU0NWIzZjhm
NjM2NWFmYzgzNWIwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRp
dGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5
cGUgaHRtbD4KKzx0aXRsZT5DU1MgQ29uZGl0aW9uYWwgVGVzdDogQHN1cHBvcnRzIHNlbGVjdG9y
KCkgd2l0aCBtdWx0aXBsZSBzZWxlY3RvcnMgZG9lc24ndCB3b3JrLjwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVt
aWxpb0BjcmlzYWwuaW8iPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96aWxs
YS5vcmciIHRpdGxlPSJNb3ppbGxhIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC8jYXQtc3VwcG9ydHMiPgorPGxpbmsgcmVs
PSJtYXRjaCIgaHJlZj0iYXQtc3VwcG9ydHMtMDAxLXJlZi5odG1sIj4KKzxzdHlsZT4KKyAgZGl2
IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAg
IHdpZHRoOiAxMDBweDsKKyAgfQorICBAc3VwcG9ydHMgc2VsZWN0b3IoZGl2LCBkaXYpIHsKKyAg
ICBkaXYgeyBiYWNrZ3JvdW5kOiByZWQgfTsKKyAgfQorPC9zdHlsZT4KKzxwPlRlc3QgcGFzc2Vz
IGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8
c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1kb20tYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvc3VwcG9ydHMtZG9tLWFwaS1leHBlY3RlZC50eHQKaW5kZXggZmMwNGUxODRkNjBkZGY2
Y2UwYjczNjdhMTdiNDVmYzE3MGIxMDg3YS4uMzdmNWQ1MjFmNmNjY2Q3YzE3MzE5MmI0YjY0MzU3
NGE4YmUyZDM2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1kb20tYXBp
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLWRvbS1hcGktZXhw
ZWN0ZWQudHh0CkBAIC0zNSw4ICszNSw4IEBAIFBBU1MgQ1NTLnN1cHBvcnRzKCIoZGlzcGxheTog
YmxvY2sgIWltcG9ydGFudCkgYW5kICgoZGlzcGxheTogaW5saW5lKSBvciAoZGlzcGxhCiBQQVNT
IENTUy5zdXBwb3J0cygibm90ICgobm90IChkaXNwbGF5OiBibG9jaykpIG9yICgoZGlzcGxheTog
bm9uZSkgYW5kIChkZWFkYmVlZjogMXB4KSkpIikgaXMgdHJ1ZQogUEFTUyBDU1Muc3VwcG9ydHMo
Im5vdCggZGlzcGxheTogZGVhZGJlZWYpIikgaXMgdHJ1ZQogUEFTUyBDU1Muc3VwcG9ydHMoIihk
aXNwbGF5OiBub25lKWFuZCAoICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMgKSIpIGlzIHRy
dWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCIoZGlzcGxheTogbm9uZSlvcigtd2Via2l0LXRyYW5zaXRp
b246IGFsbCAxcykiKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygiKGRpc3BsYXk6IG5vbmUp
IG9yKC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzICAgICkiKSBpcyB0cnVlCitQQVNTIENTUy5z
dXBwb3J0cygiKGRpc3BsYXk6IG5vbmUpb3IoLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMpIikg
aXMgZmFsc2UKK1BBU1MgQ1NTLnN1cHBvcnRzKCIoZGlzcGxheTogbm9uZSkgb3IoLXdlYmtpdC10
cmFuc2l0aW9uOiBhbGwgMXMgICAgKSIpIGlzIGZhbHNlCiBQQVNTIENTUy5zdXBwb3J0cygiKCgo
KCgoKGRpc3BsYXk6IG5vbmUpKSkpKSkpIikgaXMgdHJ1ZQogUEFTUyBDU1Muc3VwcG9ydHMoIigh
aW1wb3J0YW50KSIpIGlzIGZhbHNlCiBQQVNTIENTUy5zdXBwb3J0cygiIWltcG9ydGFudCIpIGlz
IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLWRvbS1hcGkuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMtZG9tLWFwaS5odG1sCmluZGV4IDQzMjQ4NTFl
MTMwYTJjYzY0NmU4NDI2YzJmMzVhY2FiYWE0NDE1YjUuLmY0NzRiN2E3NzUxNWYwZGU1MjNhMjgw
NDAzMmRkNTRkNTcyOGVjYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMt
ZG9tLWFwaS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMtZG9tLWFwaS5odG1s
CkBAIC01Miw4ICs1Miw4IEBACiAgICAgLy8gV2hpdGVzcGFjZS9TeW50YXguCiAgICAgc2hvdWxk
QmVUcnVlKCdDU1Muc3VwcG9ydHMoIm5vdCggZGlzcGxheTogZGVhZGJlZWYpIiknKTsKICAgICBz
aG91bGRCZVRydWUoJ0NTUy5zdXBwb3J0cygiKGRpc3BsYXk6IG5vbmUpYW5kICggICAtd2Via2l0
LXRyYW5zaXRpb246IGFsbCAxcyApIiknKTsKLSAgICBzaG91bGRCZVRydWUoJ0NTUy5zdXBwb3J0
cygiKGRpc3BsYXk6IG5vbmUpb3IoLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMpIiknKTsKLSAg
ICBzaG91bGRCZVRydWUoJ0NTUy5zdXBwb3J0cygiKGRpc3BsYXk6IG5vbmUpIG9yKC13ZWJraXQt
dHJhbnNpdGlvbjogYWxsIDFzICAgICkiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ0NTUy5zdXBw
b3J0cygiKGRpc3BsYXk6IG5vbmUpb3IoLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMpIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCdDU1Muc3VwcG9ydHMoIihkaXNwbGF5OiBub25lKSBvcigtd2Vi
a2l0LXRyYW5zaXRpb246IGFsbCAxcyAgICApIiknKTsKICAgICBzaG91bGRCZVRydWUoJ0NTUy5z
dXBwb3J0cygiKCgoKCgoKGRpc3BsYXk6IG5vbmUpKSkpKSkpIiknKTsKICAgICBzaG91bGRCZUZh
bHNlKCdDU1Muc3VwcG9ydHMoIighaW1wb3J0YW50KSIpJyk7CiAgICAgc2hvdWxkQmVGYWxzZSgn
Q1NTLnN1cHBvcnRzKCIhaW1wb3J0YW50IiknKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvc3VwcG9ydHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1leHBl
Y3RlZC50eHQKaW5kZXggYjE4MmFjMThlYzc1OTIwNjVkMzBiNDI4YzAyMmE5MGU5MGYzNWM5Zi4u
YjQ0ZmExYjNjZmVjZDdkZmEzYWJiNzNmNjc5YjI4MmI2NDk2Yjc4OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvY3NzMy9zdXBwb3J0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9zdXBwb3J0cy1leHBlY3RlZC50eHQKQEAgLTI3LDggKzI3LDggQEAgUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0MjAnKSkuY29udGVudCBpcyAiQVBQTElF
RCIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndDIxJykp
LmNvbnRlbnQgaXMgIkFQUExJRUQiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3QyMicpKS5jb250ZW50IGlzICJBUFBMSUVEIgogUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0MjMnKSkuY29udGVudCBpcyAiQVBQTElF
RCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndDI0Jykp
LmNvbnRlbnQgaXMgIkFQUExJRUQiCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3QyNScpKS5jb250ZW50IGlzICJBUFBMSUVEIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0MjQnKSkuY29udGVudCBpcyAiVU5UT1VD
SEVEIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0MjUn
KSkuY29udGVudCBpcyAiVU5UT1VDSEVEIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0MjYnKSkuY29udGVudCBpcyAiQVBQTElFRCIKIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndDI3JykpLmNvbnRlbnQgaXMgIkFQ
UExJRUQiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Qy
OCcpKS5jb250ZW50IGlzICJVTlRPVUNIRUQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L3N1cHBvcnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3N1cHBvcnRzLmh0bWwKaW5kZXggNjBh
ZTI1NmFiNTk2NTY4YzJkZDgwMzgzOTYyY2M4Njg4ODMyYTU5Zi4uMTE5YjkwMWY4ZWNjNjU3MTQw
MjJjOTVkNjFlNjYzOGJhMDllM2I1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9zdXBw
b3J0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvc3VwcG9ydHMuaHRtbApAQCAtMjMxLDcg
KzIzMSw3IEBACiA8c2NyaXB0PgogICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBAc3VwcG9ydHMg
cnVsZS4iKTsKICAgICB2YXIgbnVtVGVzdHMgPSA0NTsKLSAgICB2YXIgdW50b3VjaGVkVGVzdHMg
PSBbMSwgMywgNSwgOCwgMTIsIDEzLCAxNCwgMTgsIDI4LCAyOSwgMzQsIDM2LCA0MywgNDRdOyAv
LyBUZXN0cyB3aG9zZSBjb250ZW50IHNob3VsZG4ndCBjaGFuZ2UgZnJvbSB0aGUgVU5UT1VDSEVE
IGRlZmF1bHQuCisgICAgdmFyIHVudG91Y2hlZFRlc3RzID0gWzEsIDMsIDUsIDgsIDEyLCAxMywg
MTQsIDE4LCAyNCwgMjUsIDI4LCAyOSwgMzQsIDM2LCA0MywgNDRdOyAvLyBUZXN0cyB3aG9zZSBj
b250ZW50IHNob3VsZG4ndCBjaGFuZ2UgZnJvbSB0aGUgVU5UT1VDSEVEIGRlZmF1bHQuCiAKICAg
ICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RfY29udGFpbmVy
Iik7CiAgICAgZm9yICh2YXIgaT0wOyBpIDwgbnVtVGVzdHM7IGkrKykgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NT
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQKaW5kZXggMDU4ZjZkMTgwN2MwOGIwMDZmZjlk
M2NlZDE4YjgxYzVkNjIyMDVkNi4uYjU4NDNmZmZjN2VhOWI4ZWNmNGY5MTg0OTU5NmVlY2U1Yzc5
M2QxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0CkBAIC0y
LDUgKzIsNSBAQAogUEFTUyBDU1MuZXNjYXBlIAogUEFTUyBDU1Muc3VwcG9ydHMsIG9uZSBhcmd1
bWVudCBmb3JtIAogRkFJTCBDU1Muc3VwcG9ydHMsIHR3byBhcmd1bWVudCBmb3JtIGFzc2VydF9l
cXVhbHM6IENTUy5zdXBwb3J0czogdHdvIGFyZ3VtZW50IGZvcm0gc3VjY2VlZHMgZm9yIGN1c3Rv
bSBwcm9wZXJ0eSBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgQ1NTLnN1cHBvcnRz
LCBzZWxlY3RvciBmdW5jdGlvbiBhc3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHNlbGVjdG9y
KCkgZnVuY3Rpb24gYWNjZXB0cyBhIHNlbGVjdG9yIGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxz
ZQorRkFJTCBDU1Muc3VwcG9ydHMsIHNlbGVjdG9yIGZ1bmN0aW9uIGFzc2VydF9lcXVhbHM6IENT
Uy5zdXBwb3J0czogc2VsZWN0b3IoKSB3aXRoIHVua25vd24gY29tYmluYXRvcnMgZXhwZWN0ZWQg
ZmFsc2UgYnV0IGdvdCB0cnVlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407366</attachid>
            <date>2020-08-26 18:52:06 -0700</date>
            <delta_ts>2020-08-26 23:16:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199237-20200827105204.patch</filename>
            <type>text/plain</type>
            <size>19950</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEzYmU3MDI2MTI3ZmY1
YzE2ODIxYzg5NjFmYjYzMmI2OGQyZDEzMi4uYzNlODFkMTEzZmNlNTdjYWVmNjBiYzZmYWJkM2Fh
YjM1MWYwYjVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA4LTI2ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQw
Lmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0
MS5odG1sCisgICAgICAgICAgICAgICBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0w
NDIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICog
Y3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJJ
bXBsOjpjb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yUGFyc2VyOjpzdXBwb3J0c0Nv
bXBsZXhTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29u
dGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMpOgorICAgICAgICAqIGNzcy9wYXJzZXIv
Q1NTU3VwcG9ydHNQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OnN1cHBvcnRzQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lTmVnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OmNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFy
ZW50aGVzaXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVE
ZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmg6CisKIDIwMjAtMDgtMjYgIEFuZHJlcyBH
b256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1dHRvbnMgd2l0aCBh
cmlhLWhhc3BvcHVwIGF0dHJpYnV0ZSBhcmUgbm90IGV4cG9zZWQgdG8gYWNjZXNzaWJpbGl0eSBj
bGllbnRzIGFzIGZvcm0gY29udHJvbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCmluZGV4IGFiMGRmN2M4ZGQyZTg3OTcyOWQ3MWMyYTRmMzM3YTg4NzA5MTU5NTkuLjZiYWMw
MDMyNjZjYmQzYzBlZTU4NzQyMDM4Mzg2ZDUyNTgwMTFjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xNDUxLDMgKzE0NTEsNyBAQCBmcm9tLWZvbnQKIC8vIGR5
bmFtaWMtcmFuZ2UKIHN0YW5kYXJkCiBoaWdoCisKKy8vIEBzdXBwb3J0cyBzZWxlY3RvcigpCisv
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3Vw
cG9ydHMtc2VsZWN0b3ItZm4KK3NlbGVjdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuaAppbmRleCBmMGRhZWEyYWUx
ZmJiOTNlYTY5OTNiY2NkMTQxYjI5YWIwNDRjM2E3Li42MTNmODVmNGYyYWFiODkwOTM3OTEyMzVh
M2ZkMDc3MDk4NDZjNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlcklt
cGwuaApAQCAtOTMsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rvcjxkb3VibGU+
IHBhcnNlS2V5ZnJhbWVLZXlMaXN0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgYm9vbCBzdXBwb3J0
c0RlY2xhcmF0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBjb25zdCBDU1NQYXJzZXJD
b250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBzdGF0
aWMgdm9pZCBwYXJzZURlY2xhcmF0aW9uTGlzdEZvckluc3BlY3Rvcihjb25zdCBTdHJpbmcmLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKICAgICBzdGF0aWMg
dm9pZCBwYXJzZVN0eWxlU2hlZXRGb3JJbnNwZWN0b3IoY29uc3QgU3RyaW5nJiwgY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYsIFN0eWxlU2hlZXRDb250ZW50cyosIENTU1BhcnNlck9ic2VydmVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCmlu
ZGV4IDM4ZDE3MTJkM2YxZjkwNjFhYzIyYjliOGZjZTczYmMzNTUyNDlhYTAuLmIzZTZkY2QzZGJm
ZDZiNzY4NWIwOTBhNTY0ZTEwMWZlNmI2MDk4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoK
IAogICAgIENTU1NlbGVjdG9yTGlzdCBjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChDU1NQYXJz
ZXJUb2tlblJhbmdlJik7CiAKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbXBsZXhTZWxlY3Rv
cihDU1NQYXJzZXJUb2tlblJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisKIHByaXZh
dGU6CiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlzdChDU1NQ
YXJzZXJUb2tlblJhbmdlJik7CiAKQEAgLTcxLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBjb25z
dCBBdG9tU3RyaW5nJiBkZXRlcm1pbmVOYW1lc3BhY2UoY29uc3QgQXRvbVN0cmluZyYgcHJlZml4
KTsKICAgICB2b2lkIHByZXBlbmRUeXBlU2VsZWN0b3JJZk5lZWRlZChjb25zdCBBdG9tU3RyaW5n
JiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21TdHJpbmcmIGVsZW1lbnROYW1lLCBDU1NQYXJz
ZXJTZWxlY3RvciYpOwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+IHNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9yKHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gY29tcG91bmRTZWxlY3RvciwgY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYpOworICAgIHN0YXRpYyBib29sIGNvbnRhaW5zVW5rbm93bldlYktpdFBz
ZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpOwogCiAgICAg
Y2xhc3MgRGlzYWxsb3dQc2V1ZG9FbGVtZW50c1Njb3BlOwogCkBAIC0xMzUsNiArMTM4LDIzIEBA
IENTU1NlbGVjdG9yTGlzdCBDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3Rv
ckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nCiAgICAgcmV0dXJuIENTU1NlbGVjdG9yTGlzdCB7IFdU
Rk1vdmUoc2VsZWN0b3JMaXN0KSB9OwogfQogCitib29sIENTU1NlbGVjdG9yUGFyc2VyOjpzdXBw
b3J0c0NvbXBsZXhTZWxlY3RvcihDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlLCBjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBjb250ZXh0KQoreworICAgIHJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7
CisgICAgQ1NTU2VsZWN0b3JQYXJzZXIgcGFyc2VyKGNvbnRleHQsIG51bGxwdHIpOworCisgICAg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU2MzUK
KyAgICAvLyBVbmtub3duIGNzcyBzZWxlY3RvciBjb21iaW5hdG9yIGlzIG5vdCBhZGRyZXNzZWQg
Y29ycmVjdGx5IGluIHxDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZUNvbXBsZXhTZWxlY3Rvcnwu
CisgICAgYXV0byBwYXJzZXJTZWxlY3RvciA9IHBhcnNlci5jb25zdW1lQ29tcGxleFNlbGVjdG9y
KHJhbmdlKTsKKyAgICBpZiAocGFyc2VyLm1fZmFpbGVkUGFyc2luZyB8fCAhcmFuZ2UuYXRFbmQo
KSB8fCAhcGFyc2VyU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8g
Y29tcGxleFNlbGVjdG9yID0gcGFyc2VyU2VsZWN0b3ItPnJlbGVhc2VTZWxlY3RvcigpOworICAg
IEFTU0VSVChjb21wbGV4U2VsZWN0b3IpOworCisgICAgcmV0dXJuICFjb250YWluc1Vua25vd25X
ZWJLaXRQc2V1ZG9FbGVtZW50cygqY29tcGxleFNlbGVjdG9yKSA/IHRydWUgOiBmYWxzZTsKK30K
KwogQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1lQ29tcG91bmRTZWxl
Y3Rvckxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+IHNlbGVjdG9yTGlzdDsKQEAgLTk1Miw0ICs5
NzIsMTQgQEAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBDU1NTZWxlY3RvclBh
cnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGEKICAgICByZXR1cm4gc2Vjb25kQ29tcG91
bmQ7CiB9CiAKK2Jvb2wgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5zVW5rbm93bldlYktpdFBz
ZXVkb0VsZW1lbnRzKGNvbnN0IENTU1NlbGVjdG9yJiBjb21wbGV4U2VsZWN0b3IpCit7CisgICAg
Zm9yIChhdXRvIGN1cnJlbnQgPSAmY29tcGxleFNlbGVjdG9yOyBjdXJyZW50OyBjdXJyZW50ID0g
Y3VycmVudC0+dGFnSGlzdG9yeSgpKSB7CisgICAgICAgIGlmIChjdXJyZW50LT5wc2V1ZG9FbGVt
ZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50V2ViS2l0Q3VzdG9tKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
U3VwcG9ydHNQYXJzZXIuY3BwCmluZGV4IGRmMGFkMDYxODRjNGM0MjRmOWYzN2RlZmVjNDM2NTM5
MzkwZGI3MjYuLmJlMGJmNjgzNGJjNDM2ZTE4ZWFmYTQ3OTdjNThlZmUyZjM0ZGIyNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuY3BwCkBAIC00
MCwyOSArNDAsMzMgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBv
cnRzUGFyc2VyOjpzdXBwb3J0c0NvbmRpdGlvbihDU1NQYXJzZXIKICAgICAvLyBidXQgbWFqb3Ig
YnJvd3NlciB2ZW5kb3JzIGFsbG93IGl0IGluIENTUy5zdXBwb3J0cyBhbHNvLgogICAgIHJhbmdl
LmNvbnN1bWVXaGl0ZXNwYWNlKCk7CiAgICAgQ1NTU3VwcG9ydHNQYXJzZXIgc3VwcG9ydHNQYXJz
ZXIocGFyc2VyKTsKKwogICAgIGF1dG8gcmVzdWx0ID0gc3VwcG9ydHNQYXJzZXIuY29uc3VtZUNv
bmRpdGlvbihyYW5nZSk7CiAgICAgaWYgKG1vZGUgIT0gRm9yV2luZG93Q1NTIHx8IHJlc3VsdCAh
PSBJbnZhbGlkKQogICAgICAgICByZXR1cm4gcmVzdWx0OworCiAgICAgLy8gd2luZG93LkNTUy5z
dXBwb3J0cyByZXF1aXJlcyBwYXJzaW5nIGFzLWlmIHRoZSBjb25kaXRpb24gd2FzIHdyYXBwZWQg
aW4KICAgICAvLyBwYXJlbnRoZXNpcy4gVGhlIG9ubHkgcHJvZHVjdGlvbnMgdGhhdCB3b3VsZG4n
dCBoYXZlIHBhcnNlZCBhYm92ZSBhcmUgdGhlCiAgICAgLy8gZGVjbGFyYXRpb24gY29uZGl0aW9u
IG9yIHRoZSBnZW5lcmFsIGVuY2xvc2VkIHByb2R1Y3Rpb25zLgotICAgIHJldHVybiBzdXBwb3J0
c1BhcnNlci5jb25zdW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3NlZChyYW5n
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRzUGFyc2VyLmNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdl
bmVyYWxFbmNsb3NlZChyYW5nZSk7CiB9CiAKIGVudW0gQ2xhdXNlVHlwZSB7IFVucmVzb2x2ZWQs
IENvbmp1bmN0aW9uLCBEaXNqdW5jdGlvbiB9OwogCiBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9y
dHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9r
ZW5SYW5nZSByYW5nZSkKIHsKLSAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRv
a2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikKLSAgICAgICAgcmV0
dXJuIGNvbnN1bWVOZWdhdGlvbihyYW5nZSk7CisgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkg
PT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UocmFuZ2UucGVlaygpLnZhbHVlKCks
ICJub3QiKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lTmVnYXRpb24ocmFuZ2UpOworICAg
IH0KIAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAgICAgQ2xhdXNlVHlwZSBjbGF1c2VUeXBl
ID0gVW5yZXNvbHZlZDsKLSAgICAKKwogICAgIGF1dG8gcHJldmlvdXNUb2tlblR5cGUgPSBJZGVu
dFRva2VuOwogCiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgU3VwcG9ydHNSZXN1bHQgbmV4
dFJlc3VsdCA9IGNvbnN1bWVDb25kaXRpb25JblBhcmVudGhlc2lzKHJhbmdlLCBwcmV2aW91c1Rv
a2VuVHlwZSk7CisgICAgICAgIGF1dG8gbmV4dFJlc3VsdCA9IGNvbnN1bWVDb25kaXRpb25JblBh
cmVudGhlc2lzKHJhbmdlLCBwcmV2aW91c1Rva2VuVHlwZSk7CiAgICAgICAgIGlmIChuZXh0UmVz
dWx0ID09IEludmFsaWQpCiAgICAgICAgICAgICByZXR1cm4gSW52YWxpZDsKICAgICAgICAgYm9v
bCBuZXh0U3VwcG9ydGVkID0gbmV4dFJlc3VsdDsKQEAgLTgyLDcgKzg2LDcgQEAgQ1NTU3VwcG9y
dHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0
aW9uKENTU1BhcnNlclQKICAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFu
Z2UucGVlaygpOwogICAgICAgICBpZiAodG9rZW4udHlwZSgpICE9IElkZW50VG9rZW4gJiYgdG9r
ZW4udHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4pCiAgICAgICAgICAgICByZXR1cm4gSW52YWxpZDsK
LSAgICAgICAgCisKICAgICAgICAgcHJldmlvdXNUb2tlblR5cGUgPSB0b2tlbi50eXBlKCk7CiAg
ICAgICAgIAogICAgICAgICBpZiAoY2xhdXNlVHlwZSA9PSBVbnJlc29sdmVkKQpAQCAtMTAxLDIw
ICsxMDUsMjMgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRz
UGFyc2VyOjpjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG8KIHsKICAgICBBU1NFUlQocmFuZ2Uu
cGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVu
Y3Rpb25Ub2tlbik7CiAgICAgYXV0byB0b2tlblR5cGUgPSByYW5nZS5wZWVrKCkudHlwZSgpOwot
ICAgIGlmICghZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShyYW5nZS5wZWVrKCkudmFsdWUoKSwgIm5v
dCIpKQotICAgICAgICByZXR1cm4gSW52YWxpZDsKKwogICAgIGlmIChyYW5nZS5wZWVrKCkudHlw
ZSgpID09IElkZW50VG9rZW4pCiAgICAgICAgIHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNw
YWNlKCk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgcmVzdWx0ID0gY29uc3VtZUNvbmRpdGlvbkluUGFy
ZW50aGVzaXMocmFuZ2UsIHRva2VuVHlwZSk7CisgICAgYXV0byByZXN1bHQgPSBjb25zdW1lQ29u
ZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSwgdG9rZW5UeXBlKTsKICAgICByYW5nZS5jb25zdW1l
V2hpdGVzcGFjZSgpOwogICAgIGlmICghcmFuZ2UuYXRFbmQoKSB8fCByZXN1bHQgPT0gSW52YWxp
ZCkKICAgICAgICAgcmV0dXJuIEludmFsaWQ7CisKICAgICByZXR1cm4gcmVzdWx0ID8gVW5zdXBw
b3J0ZWQgOiBTdXBwb3J0ZWQ7CiB9CiAKLUNTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3Vs
dCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFs
RW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitDU1NTdXBwb3J0c1BhcnNlcjo6
U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVP
ckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAo
cmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7CisgICAgICAgIGlmIChyYW5n
ZS5wZWVrKCkuZnVuY3Rpb25JZCgpID09IENTU1ZhbHVlU2VsZWN0b3IpCisgICAgICAgICAgICBy
ZXR1cm4gY29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbihyYW5nZSk7CisKICAgICAgICAgcmFuZ2Uu
Y29uc3VtZUNvbXBvbmVudFZhbHVlKCk7CiAgICAgICAgIHJldHVybiBVbnN1cHBvcnRlZDsKICAg
ICB9CkBAIC0xMjIsMTcgKzEyOSwzNyBAQCBDU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1
bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbgogICAgIHJl
dHVybiByYW5nZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gJiYgbV9wYXJzZXIuc3VwcG9y
dHNEZWNsYXJhdGlvbihyYW5nZSkgPyBTdXBwb3J0ZWQgOiBVbnN1cHBvcnRlZDsKIH0KIAotQ1NT
U3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1l
Q29uZGl0aW9uSW5QYXJlbnRoZXNpcyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFy
c2VyVG9rZW5UeXBlIHN0YXJ0VG9rZW5UeXBlKQorQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRz
UmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNTZWxlY3RvckZuKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChzdGFydFRva2VuVHlwZSA9PSBJZGVu
dFRva2VuICYmIHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gTGVmdFBhcmVudGhlc2lzVG9rZW4pCisg
ICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgIT0gRnVuY3Rpb25Ub2tlbiB8fCByYW5nZS5wZWVr
KCkuZnVuY3Rpb25JZCgpICE9IENTU1ZhbHVlU2VsZWN0b3IpCiAgICAgICAgIHJldHVybiBJbnZh
bGlkOwogCi0gICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBpbm5lclJhbmdlID0gcmFuZ2UuY29uc3Vt
ZUJsb2NrKCk7CisgICAgYXV0byBibG9jayA9IHJhbmdlLmNvbnN1bWVCbG9jaygpOworICAgIGJs
b2NrLmNvbnN1bWVXaGl0ZXNwYWNlKCk7CisKKyAgICByZXR1cm4gQ1NTU2VsZWN0b3JQYXJzZXI6
OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKGJsb2NrLCBtX3BhcnNlci5jb250ZXh0KCkpID8gU3Vw
cG9ydGVkIDogVW5zdXBwb3J0ZWQ7Cit9CisKK0NTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jl
c3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsICBDU1NQYXJzZXJUb2tlblR5cGUgc3RhcnRUb2tlblR5
cGUpCit7CisgICAgLy8gPHN1cHBvcnRzLWluLXBhcmVucz4gPSAoIDxzdXBwb3J0cy1jb25kaXRp
b24+ICkgfCA8c3VwcG9ydHMtZmVhdHVyZT4gfCA8Z2VuZXJhbC1lbmNsb3NlZD4KKyAgICBpZiAo
c3RhcnRUb2tlblR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExl
ZnRQYXJlbnRoZXNpc1Rva2VuKSB7CisgICAgICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09
IEZ1bmN0aW9uVG9rZW4gJiYgcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNl
bGVjdG9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4ocmFu
Z2UpOworCisgICAgICAgIHJldHVybiBJbnZhbGlkOworICAgIH0KKworICAgIGF1dG8gaW5uZXJS
YW5nZSA9IHJhbmdlLmNvbnN1bWVCbG9jaygpOwogICAgIGlubmVyUmFuZ2UuY29uc3VtZVdoaXRl
c3BhY2UoKTsKLSAgICBTdXBwb3J0c1Jlc3VsdCByZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uKGlu
bmVyUmFuZ2UpOworCisgICAgYXV0byByZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uKGlubmVyUmFu
Z2UpOwogICAgIGlmIChyZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICByZXR1cm4gY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQo
aW5uZXJSYW5nZSk7CisKKyAgICAvLyA8c3VwcG9ydHMtZmVhdHVyZT4gPSA8c3VwcG9ydHMtc2Vs
ZWN0b3ItZm4+IHwgPHN1cHBvcnRzLWRlY2w+CisgICAgLy8gPGdlbmVyYWwtZW5jbG9zZWQ+Cisg
ICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZChpbm5lclJh
bmdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5oCmluZGV4IDViMzk0MGQ0Y2M4OTJjMGRhYTBiYzA4
ZjQyNzIyM2M1Y2JhMmNmYzAuLjY0YzFiYTMzOWRhOWRjMTA5N2FmZmQ2ZWViZTc5MDIxYWUyODM5
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmgK
QEAgLTU3LDcgKzU3LDEwIEBAIHByaXZhdGU6CiAKICAgICBTdXBwb3J0c1Jlc3VsdCBjb25zdW1l
Q29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UpOwogICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1
bWVOZWdhdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlKTsKLSAgICBTdXBwb3J0c1Jlc3VsdCBjb25z
dW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJh
bmdlJik7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBvcnRzRmVhdHVyZU9yR2VuZXJh
bEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICAvLyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3R5cGVkZWYtc3VwcG9ydHMtc2VsZWN0b3ItZm4K
KyAgICAvLyA8c3VwcG9ydHMtc2VsZXRvci1mbj4gPSBzZWxlY3RvciggPGNvbXBsZXgtc2VsZWN0
b3I+ICk7CisgICAgU3VwcG9ydHNSZXN1bHQgY29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbihDU1NQ
YXJzZXJUb2tlblJhbmdlJik7CiAKICAgICBTdXBwb3J0c1Jlc3VsdCBjb25zdW1lQ29uZGl0aW9u
SW5QYXJlbnRoZXNpcyhDU1NQYXJzZXJUb2tlblJhbmdlJiwgQ1NTUGFyc2VyVG9rZW5UeXBlKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDgwNmE1Yjg3ZjJlMzViNTM4OTJlMGQzOWU0MWU3NTdhYjVjYWVjYzYuLjk0ZGVh
YmNjNjcyNTVkNTU4MTU3MTIwOWUyMTI1NGNmZjM0YWE1ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOC0yNiAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IEBzdXBwb3J0cyBzZWxlY3RvcigpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MjM3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2NvbmRpdGlvbmFsL3czYy9h
dC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9jb25k
aXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMv
Y29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEuaHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRz
LTA0Mi5odG1sOiBBZGRlZC4KKwogMjAyMC0wOC0yNiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVz
Z18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQnV0dG9ucyB3aXRoIGFyaWEtaGFzcG9wdXAgYXR0
cmlidXRlIGFyZSBub3QgZXhwb3NlZCB0byBhY2Nlc3NpYmlsaXR5IGNsaWVudHMgYXMgZm9ybSBj
b250cm9scy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDdhMTRkMGQ5ZGZiZGJh
ZDc0Mjk5ZDQ1OGQ3YzZmY2YyMTExMzJkY2QuLjIwZDExMGMzMjUwYTk4MDAzNDk0M2VjNmMyZTM5
MTVmNGY4NWFiN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDIwLTA4LTI2ICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgQHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20vQ1NTLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOC0yNiAgS2FybCBSYWNrbGVyICA8
cmFja2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmViYXNlbGluZSBjb25z
dGFudCBjc3MtY2FzY2FkZSB0ZXN0IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmNiODlmYzZkZWNhZmIyZjA0ZGUxOGI0NDE4NmExZjIyZmZmODMxYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBv
cnRzLTA0MC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisJPGhlYWQ+CisJCTx0aXRsZT5DU1MgUmVmdGVzdCBSZWZlcmVuY2U8L3RpdGxlPgor
CQk8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkZsb3JpYW4gUml2b2FsIiBocmVmPSJtYWlsdG86
ZmxvcmlhbnJAb3BlcmEuY29tIj4KKwkJPHN0eWxlPgorCQkJZGl2IHsKKwkJCQliYWNrZ3JvdW5k
LWNvbG9yOmdyZWVuOworCQkJCWhlaWdodDoxMDBweDsKKwkJCQl3aWR0aDoxMDBweDsKKwkJCX0K
KwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJPGJvZHk+CisJCTxwPlRlc3QgcGFzc2VzIGlmIHRoZXJl
IGlzIGEgPHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5v
IHJlZDwvc3Ryb25nPi48L3A+CisJCTxkaXY+PC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQw
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YzRhNThmMzQ2YmFhN2I3Nzg4ZGQ2YmU1ZTU5MjY3NTljMjc5YTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQt
c3VwcG9ydHMtMDQwLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0
bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6IEBzdXBwb3J0cyBzZWxlY3RvcigpIHdpdGggcHNldWRv
LWVsZW1lbnRzLjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2Jv
cyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Imh0dHBzOi8vbW96aWxsYS5vcmciIHRpdGxlPSJNb3ppbGxhIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25h
bC8jYXQtc3VwcG9ydHMiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYXQtc3VwcG9ydHMtMDAx
LXJlZi5odG1sIj4KKzxzdHlsZT4KKyAgZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsK
KyAgICBoZWlnaHQ6MTAwcHg7CisgICAgd2lkdGg6MTAwcHg7CisgIH0KKyAgQHN1cHBvcnRzIHNl
bGVjdG9yKDo6YmVmb3JlKSB7CisgICAgZGl2IHsgYmFja2dyb3VuZDogZ3JlZW4gfTsKKyAgfQor
PC9zdHlsZT4KKzxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3Jl
ZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+Cis8ZGl2
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQt
c3VwcG9ydHMtMDQxLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFs
L3czYy9hdC1zdXBwb3J0cy0wNDEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2UxODkzMTI0
ZDY4YjA1ODBlOWM1NmM2MjRhYjlhMWU5YzM4MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQxLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHRpdGxlPkNTUyBSZWZ0ZXN0IFJlZmVyZW5jZTwvdGl0bGU+CisgICAgICAgIDxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iRmxvcmlhbiBSaXZvYWwiIGhyZWY9Im1haWx0bzpmbG9yaWFu
ckBvcGVyYS5jb20iPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBkaXYgeworICAgICAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6Z3JlZW47CisgICAgICAgICAgICAgICAgaGVpZ2h0
OjEwMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOjEwMHB4OworICAgICAgICAgICAgfQorICAg
ICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+VGVzdCBw
YXNzZXMgaWYgdGhlcmUgaXMgYSA8c3Ryb25nPmZpbGxlZCBncmVlbiBzcXVhcmU8L3N0cm9uZz4g
YW5kIDxzdHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlv
bmFsL3czYy9hdC1zdXBwb3J0cy0wNDEuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2OTIzNmEyYTI3MGNlMGU3
NTllMzJmYzkyY2IwYjc3NTRlOGU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5DU1MgQ29uZGl0aW9uYWwgVGVzdDogQHN1cHBvcnRz
IHNlbGVjdG9yKCkgd2l0aCAtd2Via2l0LSB1bmtub3duIHBzZXVkby1lbGVtZW50cyBhbmQgbmVn
YXRpb24uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRW1pbGlvIENvYm9zIMOB
bHZhcmV6IiBocmVmPSJtYWlsdG86ZW1pbGlvQGNyaXNhbC5pbyI+Cis8bGluayByZWw9ImF1dGhv
ciIgaHJlZj0iaHR0cHM6Ly9tb3ppbGxhLm9yZyIgdGl0bGU9Ik1vemlsbGEiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLyNh
dC1zdXBwb3J0cyI+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJhdC1zdXBwb3J0cy0wMDEtcmVm
Lmh0bWwiPgorPHN0eWxlPgorICBkaXYgeworICAgIGJhY2tncm91bmQtY29sb3I6cmVkOworICAg
IGhlaWdodDoxMDBweDsKKyAgICB3aWR0aDoxMDBweDsKKyAgfQorICBAc3VwcG9ydHMgbm90IChz
ZWxlY3Rvcig6Oi13ZWJraXQtdW5rbm93bi1wc2V1ZG8pKSB7CisgICAgZGl2IHsgYmFja2dyb3Vu
ZDogZ3JlZW4gfTsKKyAgfQorPC9zdHlsZT4KKzxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEg
PHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwv
c3Ryb25nPi48L3A+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9j
b25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDItZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iY2I4OWZjNmRlY2FmYjJmMDRkZTE4YjQ0MTg2YTFmMjJmZmY4MzFjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKwk8aGVhZD4KKwkJPHRpdGxlPkNTUyBSZWZ0ZXN0IFJlZmVyZW5jZTwvdGl0bGU+CisJCTxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iRmxvcmlhbiBSaXZvYWwiIGhyZWY9Im1haWx0bzpmbG9y
aWFuckBvcGVyYS5jb20iPgorCQk8c3R5bGU+CisJCQlkaXYgeworCQkJCWJhY2tncm91bmQtY29s
b3I6Z3JlZW47CisJCQkJaGVpZ2h0OjEwMHB4OworCQkJCXdpZHRoOjEwMHB4OworCQkJfQorCQk8
L3N0eWxlPgorCTwvaGVhZD4KKwk8Ym9keT4KKwkJPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMg
YSA8c3Ryb25nPmZpbGxlZCBncmVlbiBzcXVhcmU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+bm8gcmVk
PC9zdHJvbmc+LjwvcD4KKwkJPGRpdj48L2Rpdj4KKwk8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDIuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ3MjQxZjM3YTM1NzkyYzU1NDU0NWIzZjhmNjM2NWFmYzgzNWIwN2QKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBw
b3J0cy0wNDIuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5D
U1MgQ29uZGl0aW9uYWwgVGVzdDogQHN1cHBvcnRzIHNlbGVjdG9yKCkgd2l0aCBtdWx0aXBsZSBz
ZWxlY3RvcnMgZG9lc24ndCB3b3JrLjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96aWxsYS5vcmciIHRpdGxlPSJNb3pp
bGxhIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1jb25kaXRpb25hbC8jYXQtc3VwcG9ydHMiPgorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iYXQt
c3VwcG9ydHMtMDAxLXJlZi5odG1sIj4KKzxzdHlsZT4KKyAgZGl2IHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAxMDBweDsKKyAg
fQorICBAc3VwcG9ydHMgc2VsZWN0b3IoZGl2LCBkaXYpIHsKKyAgICBkaXYgeyBiYWNrZ3JvdW5k
OiByZWQgfTsKKyAgfQorPC9zdHlsZT4KKzxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEgPHN0
cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ry
b25nPi48L3A+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1leHBl
Y3RlZC50eHQKaW5kZXggMDU4ZjZkMTgwN2MwOGIwMDZmZjlkM2NlZDE4YjgxYzVkNjIyMDVkNi4u
YjU4NDNmZmZjN2VhOWI4ZWNmNGY5MTg0OTU5NmVlY2U1Yzc5M2QxYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0CkBAIC0yLDUgKzIsNSBAQAogUEFTUyBDU1Mu
ZXNjYXBlIAogUEFTUyBDU1Muc3VwcG9ydHMsIG9uZSBhcmd1bWVudCBmb3JtIAogRkFJTCBDU1Mu
c3VwcG9ydHMsIHR3byBhcmd1bWVudCBmb3JtIGFzc2VydF9lcXVhbHM6IENTUy5zdXBwb3J0czog
dHdvIGFyZ3VtZW50IGZvcm0gc3VjY2VlZHMgZm9yIGN1c3RvbSBwcm9wZXJ0eSBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKLUZBSUwgQ1NTLnN1cHBvcnRzLCBzZWxlY3RvciBmdW5jdGlvbiBh
c3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHNlbGVjdG9yKCkgZnVuY3Rpb24gYWNjZXB0cyBh
IHNlbGVjdG9yIGV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZQorRkFJTCBDU1Muc3VwcG9ydHMs
IHNlbGVjdG9yIGZ1bmN0aW9uIGFzc2VydF9lcXVhbHM6IENTUy5zdXBwb3J0czogc2VsZWN0b3Io
KSB3aXRoIHVua25vd24gY29tYmluYXRvcnMgZXhwZWN0ZWQgZmFsc2UgYnV0IGdvdCB0cnVlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407378</attachid>
            <date>2020-08-26 23:16:09 -0700</date>
            <delta_ts>2020-08-27 13:08:24 -0700</delta_ts>
            <desc>Fix the debug layout test crash by adding CSSSelector match check in containsUnknownWebKitPseudoElements</desc>
            <filename>bug-199237-20200827151607.patch</filename>
            <type>text/plain</type>
            <size>19930</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I2ZmZlOTEwOTZiZTIy
MGNkZmVlODY0YmRkOWY2NjMxMzJkMzI5MC4uYWI2NjM4NTg1OTk2NzA0ZGMzZDU1NDcxZjFlMzc1
OTU2MTFjMTY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA4LTI2ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQw
Lmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0
MS5odG1sCisgICAgICAgICAgICAgICBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0w
NDIuaHRtbAorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICog
Y3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJJ
bXBsOjpjb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yUGFyc2VyOjpzdXBwb3J0c0Nv
bXBsZXhTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29u
dGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMpOgorICAgICAgICAqIGNzcy9wYXJzZXIv
Q1NTU3VwcG9ydHNQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OnN1cHBvcnRzQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1cHBvcnRzUGFy
c2VyOjpjb25zdW1lTmVnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OmNvbnN1bWVTdXBwb3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFy
ZW50aGVzaXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVE
ZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBjc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmg6CisKIDIwMjAtMDgtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgRHluYW1pY3NDb21wcmVz
c29yTm9kZTo6cHJvY2VzcygpIHRvIHVzZSBBdWRpb1BhcmFtOjpmaW5hbFZhbHVlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggYWIwZGY3YzhkZDJlODc5NzI5ZDcx
YzJhNGYzMzdhODg3MDkxNTk1OS4uNmJhYzAwMzI2NmNiZDNjMGVlNTg3NDIwMzgzODZkNTI1ODAx
MWMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTE0NTEsMyAr
MTQ1MSw3IEBAIGZyb20tZm9udAogLy8gZHluYW1pYy1yYW5nZQogc3RhbmRhcmQKIGhpZ2gKKwor
Ly8gQHN1cHBvcnRzIHNlbGVjdG9yKCkKKy8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mt
Y29uZGl0aW9uYWwtNC8jdHlwZWRlZi1zdXBwb3J0cy1zZWxlY3Rvci1mbgorc2VsZWN0b3IKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1BhcnNlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VySW1wbC5oCmluZGV4IGYwZGFlYTJhZTFmYmI5M2VhNjk5M2JjY2QxNDFiMjlhYjA0NGMzYTcu
LjYxM2Y4NWY0ZjJhYWI4OTA5Mzc5MTIzNWEzZmQwNzcwOTg0NmM0YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gcGFyc2VLZXlmcmFtZUtleUxpc3QoY29uc3QgU3Ry
aW5nJik7CiAKICAgICBib29sIHN1cHBvcnRzRGVjbGFyYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYpOworICAgIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHQ7IH0KIAogICAgIHN0YXRpYyB2b2lkIHBhcnNlRGVjbGFyYXRpb25MaXN0Rm9y
SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmLCBDU1NQYXJz
ZXJPYnNlcnZlciYpOwogICAgIHN0YXRpYyB2b2lkIHBhcnNlU3R5bGVTaGVldEZvckluc3BlY3Rv
cihjb25zdCBTdHJpbmcmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiwgU3R5bGVTaGVldENvbnRl
bnRzKiwgQ1NTUGFyc2VyT2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NTZWxlY3RvclBhcnNlci5jcHAKaW5kZXggMzhkMTcxMmQzZjFmOTA2MWFjMjJiOWI4ZmNl
NzNiYzM1NTI0OWFhMC4uZTdhYzM2MTBjMDVkOTUzNjExMjU2OGIzNjVmMDVlZGQyZjNjYTY4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAK
QEAgLTQ2LDYgKzQ2LDggQEAgcHVibGljOgogCiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVD
b21wbGV4U2VsZWN0b3JMaXN0KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIAorICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UsIGNvbnN0IENT
U1BhcnNlckNvbnRleHQmKTsKKwogcHJpdmF0ZToKICAgICBDU1NTZWxlY3Rvckxpc3QgY29uc3Vt
ZUNvbXBvdW5kU2VsZWN0b3JMaXN0KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIApAQCAtNzEsNiAr
NzMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRldGVybWluZU5hbWVzcGFj
ZShjb25zdCBBdG9tU3RyaW5nJiBwcmVmaXgpOwogICAgIHZvaWQgcHJlcGVuZFR5cGVTZWxlY3Rv
cklmTmVlZGVkKGNvbnN0IEF0b21TdHJpbmcmIG5hbWVzcGFjZVByZWZpeCwgY29uc3QgQXRvbVN0
cmluZyYgZWxlbWVudE5hbWUsIENTU1BhcnNlclNlbGVjdG9yJik7CiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGFk
b3dDcm9zc2luZ0NvbWJpbmF0b3Ioc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBj
b21wb3VuZFNlbGVjdG9yLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisgICAgc3RhdGljIGJv
b2wgY29udGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3Im
IGNvbXBsZXhTZWxlY3Rvcik7CiAKICAgICBjbGFzcyBEaXNhbGxvd1BzZXVkb0VsZW1lbnRzU2Nv
cGU7CiAKQEAgLTEzNSw2ICsxMzgsMjMgQEAgQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9yUGFy
c2VyOjpjb25zdW1lQ29tcGxleFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmcKICAgICBy
ZXR1cm4gQ1NTU2VsZWN0b3JMaXN0IHsgV1RGTW92ZShzZWxlY3Rvckxpc3QpIH07CiB9CiAKK2Jv
b2wgQ1NTU2VsZWN0b3JQYXJzZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRv
a2VuUmFuZ2UgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAg
cmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIo
Y29udGV4dCwgbnVsbHB0cik7CisKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTYzNQorICAgIC8vIFVua25vd24gY3NzIHNlbGVjdG9yIGNv
bWJpbmF0b3IgaXMgbm90IGFkZHJlc3NlZCBjb3JyZWN0bHkgaW4gfENTU1NlbGVjdG9yUGFyc2Vy
Ojpjb25zdW1lQ29tcGxleFNlbGVjdG9yfC4KKyAgICBhdXRvIHBhcnNlclNlbGVjdG9yID0gcGFy
c2VyLmNvbnN1bWVDb21wbGV4U2VsZWN0b3IocmFuZ2UpOworICAgIGlmIChwYXJzZXIubV9mYWls
ZWRQYXJzaW5nIHx8ICFyYW5nZS5hdEVuZCgpIHx8ICFwYXJzZXJTZWxlY3RvcikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgYXV0byBjb21wbGV4U2VsZWN0b3IgPSBwYXJzZXJTZWxlY3Rv
ci0+cmVsZWFzZVNlbGVjdG9yKCk7CisgICAgQVNTRVJUKGNvbXBsZXhTZWxlY3Rvcik7CisKKyAg
ICByZXR1cm4gIWNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKCpjb21wbGV4U2Vs
ZWN0b3IpID8gdHJ1ZSA6IGZhbHNlOworfQorCiBDU1NTZWxlY3Rvckxpc3QgQ1NTU2VsZWN0b3JQ
YXJzZXI6OmNvbnN1bWVDb21wb3VuZFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIHsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4g
c2VsZWN0b3JMaXN0OwpAQCAtOTUyLDQgKzk3MiwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+IENTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNo
YQogICAgIHJldHVybiBzZWNvbmRDb21wb3VuZDsKIH0KIAorYm9vbCBDU1NTZWxlY3RvclBhcnNl
cjo6Y29udGFpbnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3Im
IGNvbXBsZXhTZWxlY3RvcikKK3sKKyAgICBmb3IgKGF1dG8gY3VycmVudCA9ICZjb21wbGV4U2Vs
ZWN0b3I7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0b3J5KCkpIHsKKyAgICAg
ICAgaWYgKGN1cnJlbnQtPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYg
Y3VycmVudC0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVu
dFdlYktpdEN1c3RvbSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcAppbmRleCBkZjBhZDA2MTg0YzRj
NDI0ZjlmMzdkZWZlYzQzNjUzOTM5MGRiNzI2Li5iZTBiZjY4MzRiYzQzNmUxOGVhZmE0Nzk3YzU4
ZWZlMmYzNGRiMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1
cHBvcnRzUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBv
cnRzUGFyc2VyLmNwcApAQCAtNDAsMjkgKzQwLDMzIEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBw
b3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6c3VwcG9ydHNDb25kaXRpb24oQ1NTUGFyc2Vy
CiAgICAgLy8gYnV0IG1ham9yIGJyb3dzZXIgdmVuZG9ycyBhbGxvdyBpdCBpbiBDU1Muc3VwcG9y
dHMgYWxzby4KICAgICByYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOwogICAgIENTU1N1cHBvcnRz
UGFyc2VyIHN1cHBvcnRzUGFyc2VyKHBhcnNlcik7CisKICAgICBhdXRvIHJlc3VsdCA9IHN1cHBv
cnRzUGFyc2VyLmNvbnN1bWVDb25kaXRpb24ocmFuZ2UpOwogICAgIGlmIChtb2RlICE9IEZvcldp
bmRvd0NTUyB8fCByZXN1bHQgIT0gSW52YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwog
ICAgIC8vIHdpbmRvdy5DU1Muc3VwcG9ydHMgcmVxdWlyZXMgcGFyc2luZyBhcy1pZiB0aGUgY29u
ZGl0aW9uIHdhcyB3cmFwcGVkIGluCiAgICAgLy8gcGFyZW50aGVzaXMuIFRoZSBvbmx5IHByb2R1
Y3Rpb25zIHRoYXQgd291bGRuJ3QgaGF2ZSBwYXJzZWQgYWJvdmUgYXJlIHRoZQogICAgIC8vIGRl
Y2xhcmF0aW9uIGNvbmRpdGlvbiBvciB0aGUgZ2VuZXJhbCBlbmNsb3NlZCBwcm9kdWN0aW9ucy4K
LSAgICByZXR1cm4gc3VwcG9ydHNQYXJzZXIuY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JH
ZW5lcmFsRW5jbG9zZWQocmFuZ2UpOworICAgIHJldHVybiBzdXBwb3J0c1BhcnNlci5jb25zdW1l
U3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQocmFuZ2UpOwogfQogCiBlbnVtIENsYXVz
ZVR5cGUgeyBVbnJlc29sdmVkLCBDb25qdW5jdGlvbiwgRGlzanVuY3Rpb24gfTsKIAogQ1NTU3Vw
cG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29u
ZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCiB7Ci0gICAgaWYgKHJhbmdlLnBlZWso
KS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9u
VG9rZW4pCi0gICAgICAgIHJldHVybiBjb25zdW1lTmVnYXRpb24ocmFuZ2UpOworICAgIGlmIChy
YW5nZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4gfHwgcmFuZ2UucGVlaygpLnR5cGUoKSA9
PSBGdW5jdGlvblRva2VuKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHJh
bmdlLnBlZWsoKS52YWx1ZSgpLCAibm90IikpCisgICAgICAgICAgICByZXR1cm4gY29uc3VtZU5l
Z2F0aW9uKHJhbmdlKTsKKyAgICB9CiAKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIENs
YXVzZVR5cGUgY2xhdXNlVHlwZSA9IFVucmVzb2x2ZWQ7Ci0gICAgCisKICAgICBhdXRvIHByZXZp
b3VzVG9rZW5UeXBlID0gSWRlbnRUb2tlbjsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IFN1cHBvcnRzUmVzdWx0IG5leHRSZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNp
cyhyYW5nZSwgcHJldmlvdXNUb2tlblR5cGUpOworICAgICAgICBhdXRvIG5leHRSZXN1bHQgPSBj
b25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSwgcHJldmlvdXNUb2tlblR5cGUpOwog
ICAgICAgICBpZiAobmV4dFJlc3VsdCA9PSBJbnZhbGlkKQogICAgICAgICAgICAgcmV0dXJuIElu
dmFsaWQ7CiAgICAgICAgIGJvb2wgbmV4dFN1cHBvcnRlZCA9IG5leHRSZXN1bHQ7CkBAIC04Miw3
ICs4Niw3IEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1Bh
cnNlcjo6Y29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUCiAgICAgICAgIGNvbnN0IENTU1BhcnNl
clRva2VuJiB0b2tlbiA9IHJhbmdlLnBlZWsoKTsKICAgICAgICAgaWYgKHRva2VuLnR5cGUoKSAh
PSBJZGVudFRva2VuICYmIHRva2VuLnR5cGUoKSAhPSBGdW5jdGlvblRva2VuKQogICAgICAgICAg
ICAgcmV0dXJuIEludmFsaWQ7Ci0gICAgICAgIAorCiAgICAgICAgIHByZXZpb3VzVG9rZW5UeXBl
ID0gdG9rZW4udHlwZSgpOwogICAgICAgICAKICAgICAgICAgaWYgKGNsYXVzZVR5cGUgPT0gVW5y
ZXNvbHZlZCkKQEAgLTEwMSwyMCArMTA1LDIzIEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0
c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZU5lZ2F0aW9uKENTU1BhcnNlclRvCiB7
CiAgICAgQVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5w
ZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pOwogICAgIGF1dG8gdG9rZW5UeXBlID0gcmFu
Z2UucGVlaygpLnR5cGUoKTsKLSAgICBpZiAoIWVxdWFsSWdub3JpbmdBU0NJSUNhc2UocmFuZ2Uu
cGVlaygpLnZhbHVlKCksICJub3QiKSkKLSAgICAgICAgcmV0dXJuIEludmFsaWQ7CisKICAgICBp
ZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuKQogICAgICAgICByYW5nZS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpOwotICAgIFN1cHBvcnRzUmVzdWx0IHJlc3VsdCA9IGNv
bnN1bWVDb25kaXRpb25JblBhcmVudGhlc2lzKHJhbmdlLCB0b2tlblR5cGUpOworICAgIGF1dG8g
cmVzdWx0ID0gY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMocmFuZ2UsIHRva2VuVHlwZSk7
CiAgICAgcmFuZ2UuY29uc3VtZVdoaXRlc3BhY2UoKTsKICAgICBpZiAoIXJhbmdlLmF0RW5kKCkg
fHwgcmVzdWx0ID09IEludmFsaWQpCiAgICAgICAgIHJldHVybiBJbnZhbGlkOworCiAgICAgcmV0
dXJuIHJlc3VsdCA/IFVuc3VwcG9ydGVkIDogU3VwcG9ydGVkOwogfQogCi1DU1NTdXBwb3J0c1Bh
cnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlv
bkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xvc2VkKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
Q1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25z
dW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UpCiB7CiAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikg
eworICAgICAgICBpZiAocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNlbGVj
dG9yKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRm4ocmFuZ2Up
OworCiAgICAgICAgIHJhbmdlLmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpOwogICAgICAgICByZXR1
cm4gVW5zdXBwb3J0ZWQ7CiAgICAgfQpAQCAtMTIyLDE3ICsxMjksMzcgQEAgQ1NTU3VwcG9ydHNQ
YXJzZXI6OlN1cHBvcnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lRGVjbGFyYXRp
b25Db25kaXRpb24KICAgICByZXR1cm4gcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2Vu
ICYmIG1fcGFyc2VyLnN1cHBvcnRzRGVjbGFyYXRpb24ocmFuZ2UpID8gU3VwcG9ydGVkIDogVW5z
dXBwb3J0ZWQ7CiB9CiAKLUNTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBw
b3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UsIENTU1BhcnNlclRva2VuVHlwZSBzdGFydFRva2VuVHlwZSkKK0NTU1N1cHBv
cnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBv
cnRzU2VsZWN0b3JGbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKLSAgICBpZiAoc3Rh
cnRUb2tlblR5cGUgPT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExlZnRQ
YXJlbnRoZXNpc1Rva2VuKQorICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9u
VG9rZW4gfHwgcmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSAhPSBDU1NWYWx1ZVNlbGVjdG9yKQog
ICAgICAgICByZXR1cm4gSW52YWxpZDsKIAotICAgIENTU1BhcnNlclRva2VuUmFuZ2UgaW5uZXJS
YW5nZSA9IHJhbmdlLmNvbnN1bWVCbG9jaygpOworICAgIGF1dG8gYmxvY2sgPSByYW5nZS5jb25z
dW1lQmxvY2soKTsKKyAgICBibG9jay5jb25zdW1lV2hpdGVzcGFjZSgpOworCisgICAgcmV0dXJu
IENTU1NlbGVjdG9yUGFyc2VyOjpzdXBwb3J0c0NvbXBsZXhTZWxlY3RvcihibG9jaywgbV9wYXJz
ZXIuY29udGV4dCgpKSA/IFN1cHBvcnRlZCA6IFVuc3VwcG9ydGVkOworfQorCitDU1NTdXBwb3J0
c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVDb25kaXRp
b25JblBhcmVudGhlc2lzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCAgQ1NTUGFyc2VyVG9r
ZW5UeXBlIHN0YXJ0VG9rZW5UeXBlKQoreworICAgIC8vIDxzdXBwb3J0cy1pbi1wYXJlbnM+ID0g
KCA8c3VwcG9ydHMtY29uZGl0aW9uPiApIHwgPHN1cHBvcnRzLWZlYXR1cmU+IHwgPGdlbmVyYWwt
ZW5jbG9zZWQ+CisgICAgaWYgKHN0YXJ0VG9rZW5UeXBlID09IElkZW50VG9rZW4gJiYgcmFuZ2Uu
cGVlaygpLnR5cGUoKSAhPSBMZWZ0UGFyZW50aGVzaXNUb2tlbikgeworICAgICAgICBpZiAocmFu
Z2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuICYmIHJhbmdlLnBlZWsoKS5mdW5jdGlv
bklkKCkgPT0gQ1NTVmFsdWVTZWxlY3RvcikKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lU3Vw
cG9ydHNTZWxlY3RvckZuKHJhbmdlKTsKKworICAgICAgICByZXR1cm4gSW52YWxpZDsKKyAgICB9
CisKKyAgICBhdXRvIGlubmVyUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKICAgICBpbm5l
clJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNlKCk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgcmVzdWx0ID0g
Y29uc3VtZUNvbmRpdGlvbihpbm5lclJhbmdlKTsKKworICAgIGF1dG8gcmVzdWx0ID0gY29uc3Vt
ZUNvbmRpdGlvbihpbm5lclJhbmdlKTsKICAgICBpZiAocmVzdWx0ICE9IEludmFsaWQpCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgcmV0dXJuIGNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlv
bk9yR2VuZXJhbEVuY2xvc2VkKGlubmVyUmFuZ2UpOworCisgICAgLy8gPHN1cHBvcnRzLWZlYXR1
cmU+ID0gPHN1cHBvcnRzLXNlbGVjdG9yLWZuPiB8IDxzdXBwb3J0cy1kZWNsPgorICAgIC8vIDxn
ZW5lcmFsLWVuY2xvc2VkPgorICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5l
cmFsRW5jbG9zZWQoaW5uZXJSYW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaAppbmRleCA1YjM5
NDBkNGNjODkyYzBkYWEwYmMwOGY0MjcyMjNjNWNiYTJjZmMwLi42NGMxYmEzMzlkYTlkYzEwOTdh
ZmZkNmVlYmU3OTAyMWFlMjgzOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1N1cHBvcnRzUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NTdXBwb3J0c1BhcnNlci5oCkBAIC01Nyw3ICs1NywxMCBAQCBwcml2YXRlOgogCiAgICAgU3Vw
cG9ydHNSZXN1bHQgY29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlKTsKICAgICBT
dXBwb3J0c1Jlc3VsdCBjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSk7Ci0gICAg
U3VwcG9ydHNSZXN1bHQgY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9z
ZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVTdXBw
b3J0c0ZlYXR1cmVPckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJhbmdlJik7CisgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC00LyN0eXBlZGVmLXN1
cHBvcnRzLXNlbGVjdG9yLWZuCisgICAgLy8gPHN1cHBvcnRzLXNlbGV0b3ItZm4+ID0gc2VsZWN0
b3IoIDxjb21wbGV4LXNlbGVjdG9yPiApOworICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVTdXBw
b3J0c1NlbGVjdG9yRm4oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiAgICAgU3VwcG9ydHNSZXN1
bHQgY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENT
U1BhcnNlclRva2VuVHlwZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMjAwZjg1M2U5NjgzNTI3ZTMzNTExY2ZiZjcz
ZDNhZmRjZmRkYTAwLi5iM2U4MzcxZmI0MTg5NTZlMGY0Y2E3NWFlNjU0NjNhYjJiYTAwYTI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDgtMjYgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5w
YXJrQHNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCBAc3VwcG9ydHMgc2VsZWN0b3Io
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTIz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nz
My9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDEtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9y
dHMtMDQxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1
cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2NvbmRpdGlv
bmFsL3czYy9hdC1zdXBwb3J0cy0wNDIuaHRtbDogQWRkZWQuCisKIDIwMjAtMDgtMjYgIExhdXJv
IE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIEdhcmRlbmluZyBz
b21lIGFjY2Vzc2liaWxpdHkgZGVidWcgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggODc0Y2FiMzM0ZTI5M2U4NmZkYzQ4Yjk0MjcwMDQ3OWMzZGMwNDIxZS4uOGUyMmEy
MDEzMzhiMWUyNGE3N2I2OWJjYjQwZjA4ODhlOWYyMTM3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDgtMjYgIEpvb25naHVuIFBhcmsgIDxq
aDcxOC5wYXJrQHNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCBAc3VwcG9ydHMgc2Vs
ZWN0b3IoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0OgorCiAyMDIw
LTA4LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGU6OnByb2Nlc3MoKSB0byB1c2UgQXVkaW9QYXJhbTo6Zmlu
YWxWYWx1ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9h
dC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjYjg5ZmM2
ZGVjYWZiMmYwNGRlMThiNDQxODZhMWYyMmZmZjgzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorCTxoZWFkPgorCQk8
dGl0bGU+Q1NTIFJlZnRlc3QgUmVmZXJlbmNlPC90aXRsZT4KKwkJPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJGbG9yaWFuIFJpdm9hbCIgaHJlZj0ibWFpbHRvOmZsb3JpYW5yQG9wZXJhLmNvbSI+
CisJCTxzdHlsZT4KKwkJCWRpdiB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpncmVlbjsKKwkJCQlo
ZWlnaHQ6MTAwcHg7CisJCQkJd2lkdGg6MTAwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVk
IGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgor
CQk8ZGl2PjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM0
YTU4ZjM0NmJhYTdiNzc4OGRkNmJlNWU1OTI2NzU5YzI3OWE4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPkNTUyBDb25kaXRpb25hbCBU
ZXN0OiBAc3VwcG9ydHMgc2VsZWN0b3IoKSB3aXRoIHBzZXVkby1lbGVtZW50cy48L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1h
aWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJodHRwczov
L21vemlsbGEub3JnIiB0aXRsZT0iTW96aWxsYSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwvI2F0LXN1cHBvcnRzIj4KKzxs
aW5rIHJlbD0ibWF0Y2giIGhyZWY9ImF0LXN1cHBvcnRzLTAwMS1yZWYuaHRtbCI+Cis8c3R5bGU+
CisgIGRpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZWQ7CisgICAgaGVpZ2h0OjEwMHB4Owor
ICAgIHdpZHRoOjEwMHB4OworICB9CisgIEBzdXBwb3J0cyBzZWxlY3Rvcig6OmJlZm9yZSkgewor
ICAgIGRpdiB7IGJhY2tncm91bmQ6IGdyZWVuIH07CisgIH0KKzwvc3R5bGU+Cis8cD5UZXN0IHBh
c3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBh
bmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQx
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlMTg5MzEyNGQ2OGIwNTgwZTljNTZjNjI0YWI5
YTFlOWMzODAzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5DU1MgUmVm
dGVzdCBSZWZlcmVuY2U8L3RpdGxlPgorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZsb3JpYW4gUml2b2FsIiBocmVmPSJtYWlsdG86ZmxvcmlhbnJAb3BlcmEuY29tIj4KKyAgICAg
ICAgPHN0eWxlPgorICAgICAgICAgICAgZGl2IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOmdyZWVuOworICAgICAgICAgICAgICAgIGhlaWdodDoxMDBweDsKKyAgICAgICAgICAg
ICAgICB3aWR0aDoxMDBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEg
PHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwv
c3Ryb25nPi48L3A+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQxLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0w
NDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNjkyMzZhMmEyNzBjZTBlNzU5ZTMyZmM5MmNiMGI3NzU0ZThl
NGZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2Mv
YXQtc3VwcG9ydHMtMDQxLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
dGl0bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6IEBzdXBwb3J0cyBzZWxlY3RvcigpIHdpdGggLXdl
YmtpdC0gdW5rbm93biBwc2V1ZG8tZWxlbWVudHMgYW5kIG5lZ2F0aW9uLjwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRv
OmVtaWxpb0BjcmlzYWwuaW8iPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96
aWxsYS5vcmciIHRpdGxlPSJNb3ppbGxhIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC8jYXQtc3VwcG9ydHMiPgorPGxpbmsg
cmVsPSJtYXRjaCIgaHJlZj0iYXQtc3VwcG9ydHMtMDAxLXJlZi5odG1sIj4KKzxzdHlsZT4KKyAg
ZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsKKyAgICBoZWlnaHQ6MTAwcHg7CisgICAg
d2lkdGg6MTAwcHg7CisgIH0KKyAgQHN1cHBvcnRzIG5vdCAoc2VsZWN0b3IoOjotd2Via2l0LXVu
a25vd24tcHNldWRvKSkgeworICAgIGRpdiB7IGJhY2tncm91bmQ6IGdyZWVuIH07CisgIH0KKzwv
c3R5bGU+Cis8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVu
IHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1
cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93
M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiODlmYzZkZWNh
ZmIyZjA0ZGUxOGI0NDE4NmExZjIyZmZmODMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRs
ZT5DU1MgUmVmdGVzdCBSZWZlcmVuY2U8L3RpdGxlPgorCQk8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkZsb3JpYW4gUml2b2FsIiBocmVmPSJtYWlsdG86ZmxvcmlhbnJAb3BlcmEuY29tIj4KKwkJ
PHN0eWxlPgorCQkJZGl2IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOworCQkJCWhlaWdo
dDoxMDBweDsKKwkJCQl3aWR0aDoxMDBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3Jl
ZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+CisJCTxk
aXY+PC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzI0MWYz
N2EzNTc5MmM1NTQ1NDViM2Y4ZjYzNjVhZmM4MzViMDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6
IEBzdXBwb3J0cyBzZWxlY3RvcigpIHdpdGggbXVsdGlwbGUgc2VsZWN0b3JzIGRvZXNuJ3Qgd29y
ay48L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFy
ZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJodHRwczovL21vemlsbGEub3JnIiB0aXRsZT0iTW96aWxsYSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwvI2F0LXN1
cHBvcnRzIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImF0LXN1cHBvcnRzLTAwMS1yZWYuaHRt
bCI+Cis8c3R5bGU+CisgIGRpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMTAwcHg7CisgIH0KKyAgQHN1cHBvcnRzIHNlbGVj
dG9yKGRpdiwgZGl2KSB7CisgICAgZGl2IHsgYmFja2dyb3VuZDogcmVkIH07CisgIH0KKzwvc3R5
bGU+Cis8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVuIHNx
dWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0CmluZGV4IDA1OGY2
ZDE4MDdjMDhiMDA2ZmY5ZDNjZWQxOGI4MWM1ZDYyMjA1ZDYuLmI1ODQzZmZmYzdlYTliOGVjZjRm
OTE4NDk1OTZlZWNlNWM3OTNkMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4
cGVjdGVkLnR4dApAQCAtMiw1ICsyLDUgQEAKIFBBU1MgQ1NTLmVzY2FwZSAKIFBBU1MgQ1NTLnN1
cHBvcnRzLCBvbmUgYXJndW1lbnQgZm9ybSAKIEZBSUwgQ1NTLnN1cHBvcnRzLCB0d28gYXJndW1l
bnQgZm9ybSBhc3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHR3byBhcmd1bWVudCBmb3JtIHN1
Y2NlZWRzIGZvciBjdXN0b20gcHJvcGVydHkgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1G
QUlMIENTUy5zdXBwb3J0cywgc2VsZWN0b3IgZnVuY3Rpb24gYXNzZXJ0X2VxdWFsczogQ1NTLnN1
cHBvcnRzOiBzZWxlY3RvcigpIGZ1bmN0aW9uIGFjY2VwdHMgYSBzZWxlY3RvciBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKK0ZBSUwgQ1NTLnN1cHBvcnRzLCBzZWxlY3RvciBmdW5jdGlvbiBh
c3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHNlbGVjdG9yKCkgd2l0aCB1bmtub3duIGNvbWJp
bmF0b3JzIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407424</attachid>
            <date>2020-08-27 13:12:43 -0700</date>
            <delta_ts>2020-08-27 14:10:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-199237-20200828051242.patch</filename>
            <type>text/plain</type>
            <size>21070</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiNWVhYWVjYjlmZWU2
NTYzNGU0NmNlNjk0MzY1YmYwMzRhMzJlMi4uMDc3NDY3YzE3OGM2ZTkzYWVjYTNmNGNhMTkxYTE3
M2MxNjc2MTA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA4LTI3ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
QHN1cHBvcnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0
by4KKworICAgICAgICBUaGlzIGZlYXR1cmUgYWxsb3dzIGF1dGhvcnMgdG8gdGVzdCBpZiB0aGUg
YnJvd3NlciBzdXBwb3J0cyB0aGUgdGVzdGVkIHNlbGVjdG9yIHN5bnRheC4KKyAgICAgICAgVGhl
IGNvcnJlc3BvbmRpbmcgc3BlYyBpcyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRp
dGlvbmFsLTQvI2F0LXN1cHBvcnRzLWV4dC4KKworICAgICAgICBBbmQgdW5rbm93biAtd2Via2l0
LSBwc2V1ZG8gZWxlbWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVj
LAorICAgICAgICBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3N1
cHBvcnQtZGVmaW5pdGlvbi1leHQuCisKKyAgICAgICAgVGVzdHM6IGNzczMvY29uZGl0aW9uYWwv
dzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sCisgICAgICAgICAgICAgICBjc3MzL2NvbmRpdGlvbmFs
L3czYy9hdC1zdXBwb3J0cy0wNDEuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jb25kaXRpb25h
bC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdv
cmRzLmluOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VySW1wbDo6Y29udGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL3Bh
cnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rv
clBhcnNlcjo6c3VwcG9ydHNDb21wbGV4U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U2VsZWN0b3JQYXJzZXI6OmNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKToKKyAg
ICAgICAgKiBjc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpzdXBwb3J0c0NvbmRpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZU5lZ2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5j
bG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVTdXBw
b3J0c1NlbGVjdG9yRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3VwcG9ydHNQYXJz
ZXI6OmNvbnN1bWVDb25kaXRpb25JblBhcmVudGhlc2lzKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lRGVjbGFyYXRpb25Db25kaXRpb25PckdlbmVyYWxFbmNs
b3NlZCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL3BhcnNlci9DU1NTdXBwb3J0c1BhcnNlci5o
OgorCiAyMDIwLTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIE9jY2FzaW9uYWwgY3Jhc2hlcyB3aGVuIHJlc3RvcmluZyByZXBsYWNlZCB0ZXh0
IHVuZGVyIEVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggYWIwZGY3YzhkZDJlODc5NzI5ZDcxYzJhNGYzMzdh
ODg3MDkxNTk1OS4uNmJhYzAwMzI2NmNiZDNjMGVlNTg3NDIwMzgzODZkNTI1ODAxMWMwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTE0NTEsMyArMTQ1MSw3IEBA
IGZyb20tZm9udAogLy8gZHluYW1pYy1yYW5nZQogc3RhbmRhcmQKIGhpZ2gKKworLy8gQHN1cHBv
cnRzIHNlbGVjdG9yKCkKKy8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9u
YWwtNC8jdHlwZWRlZi1zdXBwb3J0cy1zZWxlY3Rvci1mbgorc2VsZWN0b3IKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5o
CmluZGV4IGYwZGFlYTJhZTFmYmI5M2VhNjk5M2JjY2QxNDFiMjlhYjA0NGMzYTcuLjYxM2Y4NWY0
ZjJhYWI4OTA5Mzc5MTIzNWEzZmQwNzcwOTg0NmM0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VySW1wbC5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgVmVjdG9yPGRvdWJsZT4gcGFyc2VLZXlmcmFtZUtleUxpc3QoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBib29sIHN1cHBvcnRzRGVjbGFyYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAg
IGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRl
eHQ7IH0KIAogICAgIHN0YXRpYyB2b2lkIHBhcnNlRGVjbGFyYXRpb25MaXN0Rm9ySW5zcGVjdG9y
KGNvbnN0IFN0cmluZyYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmLCBDU1NQYXJzZXJPYnNlcnZl
ciYpOwogICAgIHN0YXRpYyB2b2lkIHBhcnNlU3R5bGVTaGVldEZvckluc3BlY3Rvcihjb25zdCBT
dHJpbmcmLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiwgU3R5bGVTaGVldENvbnRlbnRzKiwgQ1NT
UGFyc2VyT2JzZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTU2VsZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxl
Y3RvclBhcnNlci5jcHAKaW5kZXggMzhkMTcxMmQzZjFmOTA2MWFjMjJiOWI4ZmNlNzNiYzM1NTI0
OWFhMC4uMTcwNzdmZTQ0NWQyZjlkYTZmYTIwMzFiOWExN2VkMWUxOWNhMGU0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTQ2LDYg
KzQ2LDggQEAgcHVibGljOgogCiAgICAgQ1NTU2VsZWN0b3JMaXN0IGNvbnN1bWVDb21wbGV4U2Vs
ZWN0b3JMaXN0KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIAorICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2UsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmKTsKKwogcHJpdmF0ZToKICAgICBDU1NTZWxlY3Rvckxpc3QgY29uc3VtZUNvbXBvdW5k
U2VsZWN0b3JMaXN0KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIApAQCAtNzEsNiArNzMsNyBAQCBw
cml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGRldGVybWluZU5hbWVzcGFjZShjb25zdCBB
dG9tU3RyaW5nJiBwcmVmaXgpOwogICAgIHZvaWQgcHJlcGVuZFR5cGVTZWxlY3RvcklmTmVlZGVk
KGNvbnN0IEF0b21TdHJpbmcmIG5hbWVzcGFjZVByZWZpeCwgY29uc3QgQXRvbVN0cmluZyYgZWxl
bWVudE5hbWUsIENTU1BhcnNlclNlbGVjdG9yJik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGFkb3dDcm9zc2lu
Z0NvbWJpbmF0b3Ioc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBjb21wb3VuZFNl
bGVjdG9yLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisgICAgc3RhdGljIGJvb2wgY29udGFp
bnNVbmtub3duV2ViS2l0UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3ImIGNvbXBsZXhT
ZWxlY3Rvcik7CiAKICAgICBjbGFzcyBEaXNhbGxvd1BzZXVkb0VsZW1lbnRzU2NvcGU7CiAKQEAg
LTEzNSw2ICsxMzgsMjMgQEAgQ1NTU2VsZWN0b3JMaXN0IENTU1NlbGVjdG9yUGFyc2VyOjpjb25z
dW1lQ29tcGxleFNlbGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmcKICAgICByZXR1cm4gQ1NT
U2VsZWN0b3JMaXN0IHsgV1RGTW92ZShzZWxlY3Rvckxpc3QpIH07CiB9CiAKK2Jvb2wgQ1NTU2Vs
ZWN0b3JQYXJzZXI6OnN1cHBvcnRzQ29tcGxleFNlbGVjdG9yKENTU1BhcnNlclRva2VuUmFuZ2Ug
cmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCit7CisgICAgcmFuZ2UuY29u
c3VtZVdoaXRlc3BhY2UoKTsKKyAgICBDU1NTZWxlY3RvclBhcnNlciBwYXJzZXIoY29udGV4dCwg
bnVsbHB0cik7CisKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNTYzNQorICAgIC8vIFVua25vd24gY3NzIHNlbGVjdG9yIGNvbWJpbmF0b3Ig
aXMgbm90IGFkZHJlc3NlZCBjb3JyZWN0bHkgaW4gfENTU1NlbGVjdG9yUGFyc2VyOjpjb25zdW1l
Q29tcGxleFNlbGVjdG9yfC4KKyAgICBhdXRvIHBhcnNlclNlbGVjdG9yID0gcGFyc2VyLmNvbnN1
bWVDb21wbGV4U2VsZWN0b3IocmFuZ2UpOworICAgIGlmIChwYXJzZXIubV9mYWlsZWRQYXJzaW5n
IHx8ICFyYW5nZS5hdEVuZCgpIHx8ICFwYXJzZXJTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYXV0byBjb21wbGV4U2VsZWN0b3IgPSBwYXJzZXJTZWxlY3Rvci0+cmVsZWFz
ZVNlbGVjdG9yKCk7CisgICAgQVNTRVJUKGNvbXBsZXhTZWxlY3Rvcik7CisKKyAgICByZXR1cm4g
IWNvbnRhaW5zVW5rbm93bldlYktpdFBzZXVkb0VsZW1lbnRzKCpjb21wbGV4U2VsZWN0b3IpOwor
fQorCiBDU1NTZWxlY3Rvckxpc3QgQ1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1bWVDb21wb3VuZFNl
bGVjdG9yTGlzdChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4gc2VsZWN0b3JMaXN0OwpAQCAtOTUyLDQg
Kzk3MiwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1NlbGVjdG9y
UGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYQogICAgIHJldHVybiBzZWNvbmRDb21w
b3VuZDsKIH0KIAorYm9vbCBDU1NTZWxlY3RvclBhcnNlcjo6Y29udGFpbnNVbmtub3duV2ViS2l0
UHNldWRvRWxlbWVudHMoY29uc3QgQ1NTU2VsZWN0b3ImIGNvbXBsZXhTZWxlY3RvcikKK3sKKyAg
ICBmb3IgKGF1dG8gY3VycmVudCA9ICZjb21wbGV4U2VsZWN0b3I7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBjdXJyZW50LT50YWdIaXN0b3J5KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYgY3VycmVudC0+cHNldWRvRWxlbWVudFR5
cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFdlYktpdEN1c3RvbSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NTdXBwb3J0c1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBv
cnRzUGFyc2VyLmNwcAppbmRleCBkZjBhZDA2MTg0YzRjNDI0ZjlmMzdkZWZlYzQzNjUzOTM5MGRi
NzI2Li4wOTkzNGVhYzgwMGE0NTUxMTFkMDEwYmFhMGVmNmM5ZGI1MjM3YWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1N1cHBvcnRzUGFyc2VyLmNwcApAQCAtNDAsMjkg
KzQwLDMzIEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1Bh
cnNlcjo6c3VwcG9ydHNDb25kaXRpb24oQ1NTUGFyc2VyCiAgICAgLy8gYnV0IG1ham9yIGJyb3dz
ZXIgdmVuZG9ycyBhbGxvdyBpdCBpbiBDU1Muc3VwcG9ydHMgYWxzby4KICAgICByYW5nZS5jb25z
dW1lV2hpdGVzcGFjZSgpOwogICAgIENTU1N1cHBvcnRzUGFyc2VyIHN1cHBvcnRzUGFyc2VyKHBh
cnNlcik7CisKICAgICBhdXRvIHJlc3VsdCA9IHN1cHBvcnRzUGFyc2VyLmNvbnN1bWVDb25kaXRp
b24ocmFuZ2UpOwogICAgIGlmIChtb2RlICE9IEZvcldpbmRvd0NTUyB8fCByZXN1bHQgIT0gSW52
YWxpZCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIC8vIHdpbmRvdy5DU1Muc3VwcG9y
dHMgcmVxdWlyZXMgcGFyc2luZyBhcy1pZiB0aGUgY29uZGl0aW9uIHdhcyB3cmFwcGVkIGluCiAg
ICAgLy8gcGFyZW50aGVzaXMuIFRoZSBvbmx5IHByb2R1Y3Rpb25zIHRoYXQgd291bGRuJ3QgaGF2
ZSBwYXJzZWQgYWJvdmUgYXJlIHRoZQogICAgIC8vIGRlY2xhcmF0aW9uIGNvbmRpdGlvbiBvciB0
aGUgZ2VuZXJhbCBlbmNsb3NlZCBwcm9kdWN0aW9ucy4KLSAgICByZXR1cm4gc3VwcG9ydHNQYXJz
ZXIuY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQocmFuZ2UpOwor
ICAgIHJldHVybiBzdXBwb3J0c1BhcnNlci5jb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFs
RW5jbG9zZWQocmFuZ2UpOwogfQogCiBlbnVtIENsYXVzZVR5cGUgeyBVbnJlc29sdmVkLCBDb25q
dW5jdGlvbiwgRGlzanVuY3Rpb24gfTsKIAogQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVz
dWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFu
Z2UgcmFuZ2UpCiB7Ci0gICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8
fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pCi0gICAgICAgIHJldHVybiBj
b25zdW1lTmVnYXRpb24ocmFuZ2UpOworICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IElk
ZW50VG9rZW4gfHwgcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKSB7CisgICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHJhbmdlLnBlZWsoKS52YWx1ZSgpLCAibm90
IikpCisgICAgICAgICAgICByZXR1cm4gY29uc3VtZU5lZ2F0aW9uKHJhbmdlKTsKKyAgICB9CiAK
ICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIENsYXVzZVR5cGUgY2xhdXNlVHlwZSA9IFVu
cmVzb2x2ZWQ7Ci0gICAgCisKICAgICBhdXRvIHByZXZpb3VzVG9rZW5UeXBlID0gSWRlbnRUb2tl
bjsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIFN1cHBvcnRzUmVzdWx0IG5leHRSZXN1
bHQgPSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRoZXNpcyhyYW5nZSwgcHJldmlvdXNUb2tlblR5
cGUpOworICAgICAgICBhdXRvIG5leHRSZXN1bHQgPSBjb25zdW1lQ29uZGl0aW9uSW5QYXJlbnRo
ZXNpcyhyYW5nZSwgcHJldmlvdXNUb2tlblR5cGUpOwogICAgICAgICBpZiAobmV4dFJlc3VsdCA9
PSBJbnZhbGlkKQogICAgICAgICAgICAgcmV0dXJuIEludmFsaWQ7CiAgICAgICAgIGJvb2wgbmV4
dFN1cHBvcnRlZCA9IG5leHRSZXN1bHQ7CkBAIC04Miw3ICs4Niw3IEBAIENTU1N1cHBvcnRzUGFy
c2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihD
U1NQYXJzZXJUCiAgICAgICAgIGNvbnN0IENTU1BhcnNlclRva2VuJiB0b2tlbiA9IHJhbmdlLnBl
ZWsoKTsKICAgICAgICAgaWYgKHRva2VuLnR5cGUoKSAhPSBJZGVudFRva2VuICYmIHRva2VuLnR5
cGUoKSAhPSBGdW5jdGlvblRva2VuKQogICAgICAgICAgICAgcmV0dXJuIEludmFsaWQ7Ci0gICAg
ICAgIAorCiAgICAgICAgIHByZXZpb3VzVG9rZW5UeXBlID0gdG9rZW4udHlwZSgpOwogICAgICAg
ICAKICAgICAgICAgaWYgKGNsYXVzZVR5cGUgPT0gVW5yZXNvbHZlZCkKQEAgLTEwMSwyMCArMTA1
LDIzIEBAIENTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNl
cjo6Y29uc3VtZU5lZ2F0aW9uKENTU1BhcnNlclRvCiB7CiAgICAgQVNTRVJUKHJhbmdlLnBlZWso
KS50eXBlKCkgPT0gSWRlbnRUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9u
VG9rZW4pOwogICAgIGF1dG8gdG9rZW5UeXBlID0gcmFuZ2UucGVlaygpLnR5cGUoKTsKLSAgICBp
ZiAoIWVxdWFsSWdub3JpbmdBU0NJSUNhc2UocmFuZ2UucGVlaygpLnZhbHVlKCksICJub3QiKSkK
LSAgICAgICAgcmV0dXJuIEludmFsaWQ7CisKICAgICBpZiAocmFuZ2UucGVlaygpLnR5cGUoKSA9
PSBJZGVudFRva2VuKQogICAgICAgICByYW5nZS5jb25zdW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgp
OwotICAgIFN1cHBvcnRzUmVzdWx0IHJlc3VsdCA9IGNvbnN1bWVDb25kaXRpb25JblBhcmVudGhl
c2lzKHJhbmdlLCB0b2tlblR5cGUpOworICAgIGF1dG8gcmVzdWx0ID0gY29uc3VtZUNvbmRpdGlv
bkluUGFyZW50aGVzaXMocmFuZ2UsIHRva2VuVHlwZSk7CiAgICAgcmFuZ2UuY29uc3VtZVdoaXRl
c3BhY2UoKTsKICAgICBpZiAoIXJhbmdlLmF0RW5kKCkgfHwgcmVzdWx0ID09IEludmFsaWQpCiAg
ICAgICAgIHJldHVybiBJbnZhbGlkOworCiAgICAgcmV0dXJuIHJlc3VsdCA/IFVuc3VwcG9ydGVk
IDogU3VwcG9ydGVkOwogfQogCi1DU1NTdXBwb3J0c1BhcnNlcjo6U3VwcG9ydHNSZXN1bHQgQ1NT
U3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2VuZXJhbEVuY2xv
c2VkKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQorQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBv
cnRzUmVzdWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5l
cmFsRW5jbG9zZWQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKHJhbmdl
LnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgeworICAgICAgICBpZiAocmFuZ2UucGVl
aygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVNlbGVjdG9yKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnN1bWVTdXBwb3J0c1NlbGVjdG9yRnVuY3Rpb24ocmFuZ2UpOworCiAgICAgICAgIHJhbmdl
LmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpOwogICAgICAgICByZXR1cm4gVW5zdXBwb3J0ZWQ7CiAg
ICAgfQpAQCAtMTIyLDE3ICsxMjksMzcgQEAgQ1NTU3VwcG9ydHNQYXJzZXI6OlN1cHBvcnRzUmVz
dWx0IENTU1N1cHBvcnRzUGFyc2VyOjpjb25zdW1lRGVjbGFyYXRpb25Db25kaXRpb24KICAgICBy
ZXR1cm4gcmFuZ2UucGVlaygpLnR5cGUoKSA9PSBJZGVudFRva2VuICYmIG1fcGFyc2VyLnN1cHBv
cnRzRGVjbGFyYXRpb24ocmFuZ2UpID8gU3VwcG9ydGVkIDogVW5zdXBwb3J0ZWQ7CiB9CiAKLUNT
U1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3Vt
ZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1Bh
cnNlclRva2VuVHlwZSBzdGFydFRva2VuVHlwZSkKK0NTU1N1cHBvcnRzUGFyc2VyOjpTdXBwb3J0
c1Jlc3VsdCBDU1NTdXBwb3J0c1BhcnNlcjo6Y29uc3VtZVN1cHBvcnRzU2VsZWN0b3JGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKLSAgICBpZiAoc3RhcnRUb2tlblR5cGUg
PT0gSWRlbnRUb2tlbiAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IExlZnRQYXJlbnRoZXNpc1Rv
a2VuKQorICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpICE9IEZ1bmN0aW9uVG9rZW4gfHwgcmFu
Z2UucGVlaygpLmZ1bmN0aW9uSWQoKSAhPSBDU1NWYWx1ZVNlbGVjdG9yKQogICAgICAgICByZXR1
cm4gSW52YWxpZDsKIAotICAgIENTU1BhcnNlclRva2VuUmFuZ2UgaW5uZXJSYW5nZSA9IHJhbmdl
LmNvbnN1bWVCbG9jaygpOworICAgIGF1dG8gYmxvY2sgPSByYW5nZS5jb25zdW1lQmxvY2soKTsK
KyAgICBibG9jay5jb25zdW1lV2hpdGVzcGFjZSgpOworCisgICAgcmV0dXJuIENTU1NlbGVjdG9y
UGFyc2VyOjpzdXBwb3J0c0NvbXBsZXhTZWxlY3RvcihibG9jaywgbV9wYXJzZXIuY29udGV4dCgp
KSA/IFN1cHBvcnRlZCA6IFVuc3VwcG9ydGVkOworfQorCitDU1NTdXBwb3J0c1BhcnNlcjo6U3Vw
cG9ydHNSZXN1bHQgQ1NTU3VwcG9ydHNQYXJzZXI6OmNvbnN1bWVDb25kaXRpb25JblBhcmVudGhl
c2lzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCAgQ1NTUGFyc2VyVG9rZW5UeXBlIHN0YXJ0
VG9rZW5UeXBlKQoreworICAgIC8vIDxzdXBwb3J0cy1pbi1wYXJlbnM+ID0gKCA8c3VwcG9ydHMt
Y29uZGl0aW9uPiApIHwgPHN1cHBvcnRzLWZlYXR1cmU+IHwgPGdlbmVyYWwtZW5jbG9zZWQ+Cisg
ICAgaWYgKHN0YXJ0VG9rZW5UeXBlID09IElkZW50VG9rZW4gJiYgcmFuZ2UucGVlaygpLnR5cGUo
KSAhPSBMZWZ0UGFyZW50aGVzaXNUb2tlbikgeworICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5
cGUoKSA9PSBGdW5jdGlvblRva2VuICYmIHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NT
VmFsdWVTZWxlY3RvcikKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNTZWxlY3Rv
ckZ1bmN0aW9uKHJhbmdlKTsKKworICAgICAgICByZXR1cm4gSW52YWxpZDsKKyAgICB9CisKKyAg
ICBhdXRvIGlubmVyUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKICAgICBpbm5lclJhbmdl
LmNvbnN1bWVXaGl0ZXNwYWNlKCk7Ci0gICAgU3VwcG9ydHNSZXN1bHQgcmVzdWx0ID0gY29uc3Vt
ZUNvbmRpdGlvbihpbm5lclJhbmdlKTsKKworICAgIGF1dG8gcmVzdWx0ID0gY29uc3VtZUNvbmRp
dGlvbihpbm5lclJhbmdlKTsKICAgICBpZiAocmVzdWx0ICE9IEludmFsaWQpCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgcmV0dXJuIGNvbnN1bWVEZWNsYXJhdGlvbkNvbmRpdGlvbk9yR2Vu
ZXJhbEVuY2xvc2VkKGlubmVyUmFuZ2UpOworCisgICAgLy8gPHN1cHBvcnRzLWZlYXR1cmU+ID0g
PHN1cHBvcnRzLXNlbGVjdG9yLWZuPiB8IDxzdXBwb3J0cy1kZWNsPgorICAgIC8vIDxnZW5lcmFs
LWVuY2xvc2VkPgorICAgIHJldHVybiBjb25zdW1lU3VwcG9ydHNGZWF0dXJlT3JHZW5lcmFsRW5j
bG9zZWQoaW5uZXJSYW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJzZXIuaAppbmRleCA1YjM5NDBkNGNj
ODkyYzBkYWEwYmMwOGY0MjcyMjNjNWNiYTJjZmMwLi5mNDA0ZWE4MTMzNjc0NGUyODk3YTg4YjM3
NDRmNWNkZTFlOTQ1MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1N1cHBvcnRzUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTdXBw
b3J0c1BhcnNlci5oCkBAIC01Nyw3ICs1NywxMCBAQCBwcml2YXRlOgogCiAgICAgU3VwcG9ydHNS
ZXN1bHQgY29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlKTsKICAgICBTdXBwb3J0
c1Jlc3VsdCBjb25zdW1lTmVnYXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSk7Ci0gICAgU3VwcG9y
dHNSZXN1bHQgY29uc3VtZURlY2xhcmF0aW9uQ29uZGl0aW9uT3JHZW5lcmFsRW5jbG9zZWQoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYpOworICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVTdXBwb3J0c0Zl
YXR1cmVPckdlbmVyYWxFbmNsb3NlZChDU1NQYXJzZXJUb2tlblJhbmdlJik7CisgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC00LyN0eXBlZGVmLXN1cHBvcnRz
LXNlbGVjdG9yLWZuCisgICAgLy8gPHN1cHBvcnRzLXNlbGV0b3ItZm4+ID0gc2VsZWN0b3IoIDxj
b21wbGV4LXNlbGVjdG9yPiApOworICAgIFN1cHBvcnRzUmVzdWx0IGNvbnN1bWVTdXBwb3J0c1Nl
bGVjdG9yRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogCiAgICAgU3VwcG9ydHNSZXN1
bHQgY29uc3VtZUNvbmRpdGlvbkluUGFyZW50aGVzaXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIENT
U1BhcnNlclRva2VuVHlwZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MjI1MTFhMzc3NjJkYTYxOGNlY2Q2MzQ2NDhl
OWE4NDFmOTVmYTlhLi45YzljZWQxMmM3YjcwZjRjNTgyMWE2ZmFjNTg5ZjA1OGEwMjU2Zjc3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDgtMjcgIEpvb25naHVuIFBhcmsgIDxqaDcxOC5w
YXJrQHNhbXN1bmcuY29tPgorCisgICAgICAgIEltcGxlbWVudCBAc3VwcG9ydHMgc2VsZWN0b3Io
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTIz
NworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFRoaXMg
ZmVhdHVyZSBhbGxvd3MgYXV0aG9ycyB0byB0ZXN0IGlmIHRoZSBicm93c2VyIHN1cHBvcnRzIHRo
ZSB0ZXN0ZWQgc2VsZWN0b3Igc3ludGF4LgorICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBzcGVj
IGlzIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwtNC8jYXQtc3VwcG9y
dHMtZXh0LgorCisgICAgICAgIEFuZCB1bmtub3duIC13ZWJraXQtIHBzZXVkbyBlbGVtZW50cyBh
cmUgbm90IHN1cHBvcnRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWMsCisgICAgICAgIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwtNC8jc3VwcG9ydC1kZWZpbml0aW9uLWV4
dC4KKworICAgICAgICAqIGNzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBw
b3J0cy0wNDAuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQt
c3VwcG9ydHMtMDQxLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY29uZGl0
aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Nv
bmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWw6IEFkZGVkLgor
CiAyMDIwLTA4LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIE9jY2FzaW9uYWwgY3Jhc2hlcyB3aGVuIHJlc3RvcmluZyByZXBsYWNlZCB0ZXh0IHVu
ZGVyIEVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IGIyODExN2ZlYWRmNDBiNzQ1NWY3NmNiYmIxYWQxZmI5YjYwYzk4NjAu
LmIxN2E1NmZkZjM4MWNmODllNmIwNTk5YzhmODA2NjZjYzQwOTQwYTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA4LTI3ICBKb29uZ2h1biBQ
YXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQHN1cHBv
cnRzIHNlbGVjdG9yKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTkyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKwor
ICAgICAgICBUaGlzIGZlYXR1cmUgYWxsb3dzIGF1dGhvcnMgdG8gdGVzdCBpZiB0aGUgYnJvd3Nl
ciBzdXBwb3J0cyB0aGUgdGVzdGVkIHNlbGVjdG9yIHN5bnRheC4KKyAgICAgICAgVGhlIGNvcnJl
c3BvbmRpbmcgc3BlYyBpcyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFs
LTQvI2F0LXN1cHBvcnRzLWV4dC4KKworICAgICAgICBBbmQgdW5rbm93biAtd2Via2l0LSBwc2V1
ZG8gZWxlbWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjLAorICAg
ICAgICBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbmRpdGlvbmFsLTQvI3N1cHBvcnQt
ZGVmaW5pdGlvbi1leHQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
L0NTUy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDgtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwcm9wYWdhdGlvbiBvZiBlcnJvcnMgaW4gVHJhbnNm
b3JtU3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9h
dC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjYjg5ZmM2
ZGVjYWZiMmYwNGRlMThiNDQxODZhMWYyMmZmZjgzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDAtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorCTxoZWFkPgorCQk8
dGl0bGU+Q1NTIFJlZnRlc3QgUmVmZXJlbmNlPC90aXRsZT4KKwkJPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJGbG9yaWFuIFJpdm9hbCIgaHJlZj0ibWFpbHRvOmZsb3JpYW5yQG9wZXJhLmNvbSI+
CisJCTxzdHlsZT4KKwkJCWRpdiB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjpncmVlbjsKKwkJCQlo
ZWlnaHQ6MTAwcHg7CisJCQkJd2lkdGg6MTAwcHg7CisJCQl9CisJCTwvc3R5bGU+CisJPC9oZWFk
PgorCTxib2R5PgorCQk8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVk
IGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgor
CQk8ZGl2PjwvZGl2PgorCTwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM0
YTU4ZjM0NmJhYTdiNzc4OGRkNmJlNWU1OTI2NzU5YzI3OWE4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPkNTUyBDb25kaXRpb25hbCBU
ZXN0OiBAc3VwcG9ydHMgc2VsZWN0b3IoKSB3aXRoIHBzZXVkby1lbGVtZW50cy48L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1h
aWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJodHRwczov
L21vemlsbGEub3JnIiB0aXRsZT0iTW96aWxsYSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwvI2F0LXN1cHBvcnRzIj4KKzxs
aW5rIHJlbD0ibWF0Y2giIGhyZWY9ImF0LXN1cHBvcnRzLTAwMS1yZWYuaHRtbCI+Cis8c3R5bGU+
CisgIGRpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpyZWQ7CisgICAgaGVpZ2h0OjEwMHB4Owor
ICAgIHdpZHRoOjEwMHB4OworICB9CisgIEBzdXBwb3J0cyBzZWxlY3Rvcig6OmJlZm9yZSkgewor
ICAgIGRpdiB7IGJhY2tncm91bmQ6IGdyZWVuIH07CisgIH0KKzwvc3R5bGU+Cis8cD5UZXN0IHBh
c3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVuIHNxdWFyZTwvc3Ryb25nPiBh
bmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQx
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlMTg5MzEyNGQ2OGIwNTgwZTljNTZjNjI0YWI5
YTFlOWMzODAzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9u
YWwvdzNjL2F0LXN1cHBvcnRzLTA0MS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5DU1MgUmVm
dGVzdCBSZWZlcmVuY2U8L3RpdGxlPgorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkZsb3JpYW4gUml2b2FsIiBocmVmPSJtYWlsdG86ZmxvcmlhbnJAb3BlcmEuY29tIj4KKyAgICAg
ICAgPHN0eWxlPgorICAgICAgICAgICAgZGl2IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOmdyZWVuOworICAgICAgICAgICAgICAgIGhlaWdodDoxMDBweDsKKyAgICAgICAgICAg
ICAgICB3aWR0aDoxMDBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEg
PHN0cm9uZz5maWxsZWQgZ3JlZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwv
c3Ryb25nPi48L3A+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMt
MDQxLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0w
NDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNjkyMzZhMmEyNzBjZTBlNzU5ZTMyZmM5MmNiMGI3NzU0ZThl
NGZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2Mv
YXQtc3VwcG9ydHMtMDQxLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
dGl0bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6IEBzdXBwb3J0cyBzZWxlY3RvcigpIHdpdGggLXdl
YmtpdC0gdW5rbm93biBwc2V1ZG8tZWxlbWVudHMgYW5kIG5lZ2F0aW9uLjwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRv
OmVtaWxpb0BjcmlzYWwuaW8iPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Imh0dHBzOi8vbW96
aWxsYS5vcmciIHRpdGxlPSJNb3ppbGxhIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC8jYXQtc3VwcG9ydHMiPgorPGxpbmsg
cmVsPSJtYXRjaCIgaHJlZj0iYXQtc3VwcG9ydHMtMDAxLXJlZi5odG1sIj4KKzxzdHlsZT4KKyAg
ZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsKKyAgICBoZWlnaHQ6MTAwcHg7CisgICAg
d2lkdGg6MTAwcHg7CisgIH0KKyAgQHN1cHBvcnRzIG5vdCAoc2VsZWN0b3IoOjotd2Via2l0LXVu
a25vd24tcHNldWRvKSkgeworICAgIGRpdiB7IGJhY2tncm91bmQ6IGdyZWVuIH07CisgIH0KKzwv
c3R5bGU+Cis8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVu
IHNxdWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1
cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93
M2MvYXQtc3VwcG9ydHMtMDQyLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiODlmYzZkZWNh
ZmIyZjA0ZGUxOGI0NDE4NmExZjIyZmZmODMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvY29uZGl0aW9uYWwvdzNjL2F0LXN1cHBvcnRzLTA0Mi1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTx0aXRs
ZT5DU1MgUmVmdGVzdCBSZWZlcmVuY2U8L3RpdGxlPgorCQk8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkZsb3JpYW4gUml2b2FsIiBocmVmPSJtYWlsdG86ZmxvcmlhbnJAb3BlcmEuY29tIj4KKwkJ
PHN0eWxlPgorCQkJZGl2IHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOmdyZWVuOworCQkJCWhlaWdo
dDoxMDBweDsKKwkJCQl3aWR0aDoxMDBweDsKKwkJCX0KKwkJPC9zdHlsZT4KKwk8L2hlYWQ+CisJ
PGJvZHk+CisJCTxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIGEgPHN0cm9uZz5maWxsZWQgZ3Jl
ZW4gc3F1YXJlPC9zdHJvbmc+IGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+CisJCTxk
aXY+PC9kaXY+CisJPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2NvbmRpdGlvbmFsL3czYy9hdC1zdXBwb3J0cy0wNDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzI0MWYz
N2EzNTc5MmM1NTQ1NDViM2Y4ZjYzNjVhZmM4MzViMDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9jb25kaXRpb25hbC93M2MvYXQtc3VwcG9ydHMtMDQyLmh0bWwKQEAgLTAs
MCArMSwxOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+Q1NTIENvbmRpdGlvbmFsIFRlc3Q6
IEBzdXBwb3J0cyBzZWxlY3RvcigpIHdpdGggbXVsdGlwbGUgc2VsZWN0b3JzIGRvZXNuJ3Qgd29y
ay48L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFy
ZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiBo
cmVmPSJodHRwczovL21vemlsbGEub3JnIiB0aXRsZT0iTW96aWxsYSI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29uZGl0aW9uYWwvI2F0LXN1
cHBvcnRzIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImF0LXN1cHBvcnRzLTAwMS1yZWYuaHRt
bCI+Cis8c3R5bGU+CisgIGRpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMTAwcHg7CisgIH0KKyAgQHN1cHBvcnRzIHNlbGVj
dG9yKGRpdiwgZGl2KSB7CisgICAgZGl2IHsgYmFja2dyb3VuZDogcmVkIH07CisgIH0KKzwvc3R5
bGU+Cis8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIDxzdHJvbmc+ZmlsbGVkIGdyZWVuIHNx
dWFyZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5ubyByZWQ8L3N0cm9uZz4uPC9wPgorPGRpdj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtZXhwZWN0ZWQudHh0CmluZGV4IDA1OGY2
ZDE4MDdjMDhiMDA2ZmY5ZDNjZWQxOGI4MWM1ZDYyMjA1ZDYuLmI1ODQzZmZmYzdlYTliOGVjZjRm
OTE4NDk1OTZlZWNlNWM3OTNkMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLWV4
cGVjdGVkLnR4dApAQCAtMiw1ICsyLDUgQEAKIFBBU1MgQ1NTLmVzY2FwZSAKIFBBU1MgQ1NTLnN1
cHBvcnRzLCBvbmUgYXJndW1lbnQgZm9ybSAKIEZBSUwgQ1NTLnN1cHBvcnRzLCB0d28gYXJndW1l
bnQgZm9ybSBhc3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHR3byBhcmd1bWVudCBmb3JtIHN1
Y2NlZWRzIGZvciBjdXN0b20gcHJvcGVydHkgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCi1G
QUlMIENTUy5zdXBwb3J0cywgc2VsZWN0b3IgZnVuY3Rpb24gYXNzZXJ0X2VxdWFsczogQ1NTLnN1
cHBvcnRzOiBzZWxlY3RvcigpIGZ1bmN0aW9uIGFjY2VwdHMgYSBzZWxlY3RvciBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKK0ZBSUwgQ1NTLnN1cHBvcnRzLCBzZWxlY3RvciBmdW5jdGlvbiBh
c3NlcnRfZXF1YWxzOiBDU1Muc3VwcG9ydHM6IHNlbGVjdG9yKCkgd2l0aCB1bmtub3duIGNvbWJp
bmF0b3JzIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>