<?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>109021</bug_id>
          
          <creation_ts>2013-02-06 00:24:01 -0800</creation_ts>
          <short_desc>[css3-text] Parsing -webkit-each-line value for text-indent from css3-text</short_desc>
          <delta_ts>2013-03-25 18:22:29 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112755</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jaehun Lim">ljaehun.lim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826163</commentid>
    <comment_count>0</comment_count>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-06 00:24:01 -0800</bug_when>
    <thetext>The CSS text-indent property accepts the &quot;each-line&quot; values in CSS3.
The text indentation could be applied for all lines with each-line.

Please refer:
http://dev.w3.org/csswg/css3-text/#each-line

‘each-line’ means
&quot;Indentation affects the first line of the block container as well as each line
after a forced line break, but does not affect lines after a soft wrap break.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830556</commentid>
    <comment_count>1</comment_count>
      <attachid>187771</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-11 22:00:37 -0800</bug_when>
    <thetext>Created attachment 187771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830559</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 22:05:20 -0800</bug_when>
    <thetext>Attachment 187771 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/css/text-indent-each-line-expected.html&apos;, u&apos;LayoutTests/fast/css/text-indent-each-line.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.h&apos;, u&apos;Source/WebCore/css/CSSValueKeywords.in&apos;, u&apos;Source/WebCore/css/StyleBuilder.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBlockLineLayout.cpp&apos;, u&apos;Source/WebCore/rendering/style/RenderStyle.cpp&apos;, u&apos;Source/WebCore/rendering/style/RenderStyle.h&apos;, u&apos;Source/WebCore/rendering/style/RenderStyleConstants.h&apos;, u&apos;Source/WebCore/rendering/style/StyleRareInheritedData.cpp&apos;, u&apos;Source/WebCore/rendering/style/StyleRareInheritedData.h&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSParser.cpp:2102:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830565</commentid>
    <comment_count>3</comment_count>
      <attachid>187774</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-11 22:20:52 -0800</bug_when>
    <thetext>Created attachment 187774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835814</commentid>
    <comment_count>4</comment_count>
      <attachid>187774</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-18 16:13:39 -0800</bug_when>
    <thetext>Comment on attachment 187774
Patch

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

The change should be guarded by ENABLE(CSS3_TEXT).

As mentioned on IRC, the testing is inadequate and I would rather see the style parsing, application and getComputedStyle part done first (with good testing) *before* attacking the rendering. Good testing mean that you do validate that we can set the style and get it back from getComputedStyle, including the wrong cases (that obviously shouldn&apos;t update our style) and &apos;inherit&apos;. Obviously if this is already covered by existing tests, you should mention it in the ChangeLog and only add the missing pieces.

&gt; Source/WebCore/css/CSSParser.cpp:2103
&gt; +        // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; [ hanging || each-line ]?

This line is wrong and it confused me. You are adding parsing for a subset of that and this should reflect what we *do* support. Also inherit is supported and should still be.

&gt; Source/WebCore/css/CSSParser.cpp:9019
&gt; +    bool haveTextIndent = false;
&gt; +    bool haveEachLine = false;

have (first it should be &apos;has&apos;) is a bit too generic here. Also I don&apos;t see why you seperate text-indent from each-line as each-line *is part of text-indent*. How about:

hasSeenFixedOrPercentage, hasParsedFixedPercentage, hasEncounteredFixedOrPercentage

(slight preference for hasParsedTextIndent)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838980</commentid>
    <comment_count>5</comment_count>
      <attachid>187774</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-21 16:20:37 -0800</bug_when>
    <thetext>Comment on attachment 187774
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2103
&gt;&gt; +        // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; [ hanging || each-line ]?
&gt; 
&gt; This line is wrong and it confused me. You are adding parsing for a subset of that and this should reflect what we *do* support. Also inherit is supported and should still be.

I have a plan to support &quot;hanging&quot; value. I&apos;ll do it after &quot;each-line&quot;.

&quot;hanging&quot; is removed, &quot;inherit&quot; is added.
[ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; each-line? | inherit
is it right ?

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9019
&gt;&gt; +    bool haveEachLine = false;
&gt; 
&gt; have (first it should be &apos;has&apos;) is a bit too generic here. Also I don&apos;t see why you seperate text-indent from each-line as each-line *is part of text-indent*. How about:
&gt; 
&gt; hasSeenFixedOrPercentage, hasParsedFixedPercentage, hasEncounteredFixedOrPercentage
&gt; 
&gt; (slight preference for hasParsedTextIndent)

I like hasParsedTextIndent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838986</commentid>
    <comment_count>6</comment_count>
      <attachid>189632</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-21 16:27:51 -0800</bug_when>
    <thetext>Created attachment 189632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839010</commentid>
    <comment_count>7</comment_count>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-21 16:44:25 -0800</bug_when>
    <thetext>Thanks, jchaffraix.

I split previous patch into parsing and rendering parts as you said.
This bug is for parsing.

I use ENABLE_CSS3_TEXT guard. And add some testcases. I referred &quot;text-align-last&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839237</commentid>
    <comment_count>8</comment_count>
      <attachid>189632</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 22:18:21 -0800</bug_when>
    <thetext>Comment on attachment 189632
Patch

Attachment 189632 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16689618

New failing tests:
svg/custom/empty-className-baseVal-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840673</commentid>
    <comment_count>9</comment_count>
      <attachid>189991</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-02-24 17:33:30 -0800</bug_when>
    <thetext>Created attachment 189991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846107</commentid>
    <comment_count>10</comment_count>
      <attachid>191150</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-03 16:04:12 -0800</bug_when>
    <thetext>Created attachment 191150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847079</commentid>
    <comment_count>11</comment_count>
      <attachid>191150</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-04 17:28:40 -0800</bug_when>
    <thetext>Comment on attachment 191150
Patch

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

This will need another round, preferably let&apos;s try to keep one code path, adding #if&apos;defs around the new syntax.

&gt; Source/WebCore/css/CSSParser.cpp:2177
&gt; +#if ENABLE(CSS3_TEXT)
&gt; +    case CSSPropertyTextIndent: // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; each-line? | inherit
&gt; +        parsedValue = parseTextIndent();
&gt; +        if (!parsedValue)
&gt; +            return false;
&gt; +        break;
&gt; +#else
&gt;      case CSSPropertyTextIndent:          // &lt;length&gt; | &lt;percentage&gt; | inherit
&gt;          validPrimitive = (!id &amp;&amp; validUnit(value, FLength | FPercent));
&gt;          break;
&gt; +#endif

This is not a good way of handling the new value. Ideally we want the code path to be as shared as possible instead of splitting the code. Here it&apos;s a lot easier to do:

case CSSPropertyTextIndent:
    parsedValue = parseTextIndent();
    break;

PassRefPtr&lt;CSSValueList&gt; CSSParser::parseTextIndent()
{
    CSSParserValue* value = m_valueList-&gt;current();
    if (!value-&gt;id || validUnit(value, FLength | FPercent))
        return createPrimitiveNumericValue(value);

#if ENABLE(CSS3_TEXT)
    // Handle the extended grammar, namely [ each-line &amp;&amp; &lt;length&gt; | &lt;percentage&gt; ]
#else
    return 0;
#endif
}

&gt; Source/WebCore/css/CSSParser.cpp:9162
&gt; +    for (CSSParserValue* value = m_valueList-&gt;current(); value; value = m_valueList-&gt;next()) {

I don&apos;t think having a for loop for 2 values is really good. I would rather see 2 checks as:
* they really depend on the condition in which you parse (did I see CSSValueEachLine? A &lt;length&gt; | &lt;percentage&gt;?)
* you are allowing more than 2 values (see below)

&gt; Source/WebCore/css/CSSParser.cpp:9165
&gt; +        else if (!hasParsedTextIndent &amp;&amp; !value-&gt;id &amp;&amp; validUnit(value, FLength | FPercent)) {

Do you know if the !value-&gt;id is required? It seems like an overkill to me.

&gt; Source/WebCore/css/CSSParser.cpp:9170
&gt; +    }

Your parsing allows the following:
* text-indent: each-line each-line;
* text-indent: each-line 10px each-line;

&gt; Source/WebCore/css/CSSValueKeywords.in:1004
&gt; +each-line

You are not prefixing text-indent (which is fine as it is an existing property). However this is new thus it should be prefixed.

&gt; Source/WebCore/css/StyleBuilder.cpp:1819
&gt; +        for (size_t i = 0; i &lt; valueList-&gt;length(); i++) {

Again think about what you are parsing: you don&apos;t expect length() to be 15 so you should probably ASSERT it and have your code following the fact that we are probably get at most 2 values.

&gt; Source/WebCore/css/StyleBuilder.cpp:1834
&gt; +            else if (primitiveValue-&gt;isCalculatedPercentageWithLength())
&gt; +                textIndent = Length(primitiveValue-&gt;cssCalcValue()-&gt;toCalcValue(styleResolver-&gt;style(), styleResolver-&gt;rootElementStyle(), styleResolver-&gt;style()-&gt;effectiveZoom()));

calc() is not allowed during parsing so I wouldn&apos;t expect it to show up here.

&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:27
&gt; +

Missing some cases here or at least you should try different &lt;length&gt; values (how about viewport as you do have custom code for it?). Also how about &lt;percentage&gt;?

&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:39
&gt; +PASS computedStyle.getPropertyValue(&apos;text-indent&apos;) is &apos;0px&apos;

Good test that you check invalid values but you should be a bit more extensive: how about 2 values? 3 values (including and not including each-line)? ...

&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:40
&gt; +

How about inheritance which wasn&apos;t tested AFAICT?

&gt; LayoutTests/platform/wincairo/TestExpectations:2989
&gt; +fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html

We should just skip the whole *directory* instead of touching every platforms everytime some new feature / test case is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849585</commentid>
    <comment_count>12</comment_count>
      <attachid>191150</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-06 18:32:01 -0800</bug_when>
    <thetext>Comment on attachment 191150
Patch

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2177
&gt;&gt; +#endif
&gt; 
&gt; This is not a good way of handling the new value. Ideally we want the code path to be as shared as possible instead of splitting the code. Here it&apos;s a lot easier to do:
&gt; 
&gt; case CSSPropertyTextIndent:
&gt;     parsedValue = parseTextIndent();
&gt;     break;
&gt; 
&gt; PassRefPtr&lt;CSSValueList&gt; CSSParser::parseTextIndent()
&gt; {
&gt;     CSSParserValue* value = m_valueList-&gt;current();
&gt;     if (!value-&gt;id || validUnit(value, FLength | FPercent))
&gt;         return createPrimitiveNumericValue(value);
&gt; 
&gt; #if ENABLE(CSS3_TEXT)
&gt;     // Handle the extended grammar, namely [ each-line &amp;&amp; &lt;length&gt; | &lt;percentage&gt; ]
&gt; #else
&gt;     return 0;
&gt; #endif
&gt; }

parseTextIndent() returns 2 types. &quot;return createPrimitiveNumericValue(value);&quot; return CSSValue and &quot;// Handle the extended grammar, namely [ each-line &amp;&amp; &lt;length&gt; | &lt;percentage&gt; ]&quot; returns CSSValueList.
There is no problem in parseTextIndent() because CSSValueList is CSSValue, but other part like StyleBuilder needs to check whether CSSValue is list or not.
I think it&apos;s better that parseTextIndent() returns CSSvalueList when CSS3_TEXT in enabled and returns CSSValue when CSS3_TEXT is disabled.
How about ?

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9162
&gt;&gt; +    for (CSSParserValue* value = m_valueList-&gt;current(); value; value = m_valueList-&gt;next()) {
&gt; 
&gt; I don&apos;t think having a for loop for 2 values is really good. I would rather see 2 checks as:
&gt; * they really depend on the condition in which you parse (did I see CSSValueEachLine? A &lt;length&gt; | &lt;percentage&gt;?)
&gt; * you are allowing more than 2 values (see below)

I remove for loop and make 2 if statements

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9165
&gt;&gt; +        else if (!hasParsedTextIndent &amp;&amp; !value-&gt;id &amp;&amp; validUnit(value, FLength | FPercent)) {
&gt; 
&gt; Do you know if the !value-&gt;id is required? It seems like an overkill to me.

Fixed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9170
&gt;&gt; +    }
&gt; 
&gt; Your parsing allows the following:
&gt; * text-indent: each-line each-line;
&gt; * text-indent: each-line 10px each-line;

Fixed.

&gt;&gt; Source/WebCore/css/CSSValueKeywords.in:1004
&gt;&gt; +each-line
&gt; 
&gt; You are not prefixing text-indent (which is fine as it is an existing property). However this is new thus it should be prefixed.

Use -webkit-each-line and CSSValueWebkitEachLine.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1819
&gt;&gt; +        for (size_t i = 0; i &lt; valueList-&gt;length(); i++) {
&gt; 
&gt; Again think about what you are parsing: you don&apos;t expect length() to be 15 so you should probably ASSERT it and have your code following the fact that we are probably get at most 2 values.

Fixed.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1834
&gt;&gt; +                textIndent = Length(primitiveValue-&gt;cssCalcValue()-&gt;toCalcValue(styleResolver-&gt;style(), styleResolver-&gt;rootElementStyle(), styleResolver-&gt;style()-&gt;effectiveZoom()));
&gt; 
&gt; calc() is not allowed during parsing so I wouldn&apos;t expect it to show up here.

Remove this line.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:27
&gt;&gt; +
&gt; 
&gt; Missing some cases here or at least you should try different &lt;length&gt; values (how about viewport as you do have custom code for it?). Also how about &lt;percentage&gt;?

Add 20ex and &lt;Percentage&gt;. viewport values are tested another testcase, css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-getStyle.html.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:39
&gt;&gt; +PASS computedStyle.getPropertyValue(&apos;text-indent&apos;) is &apos;0px&apos;
&gt; 
&gt; Good test that you check invalid values but you should be a bit more extensive: how about 2 values? 3 values (including and not including each-line)? ...

Add 2 and 3 values cases with/without -webkit-each-line.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-expected.txt:40
&gt;&gt; +
&gt; 
&gt; How about inheritance which wasn&apos;t tested AFAICT?

Inheritance is tested another test case, getComputedStyle-text-indent-inherited.js

&gt;&gt; LayoutTests/platform/wincairo/TestExpectations:2989
&gt;&gt; +fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html
&gt; 
&gt; We should just skip the whole *directory* instead of touching every platforms everytime some new feature / test case is added.

CSS3_TEXT is enabled only for EFL, GTK ports. So I should edit each platform TestExpectations file.
And some other CSS3_TEXT test cases are registered like that. is it wrong ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849588</commentid>
    <comment_count>13</comment_count>
      <attachid>191884</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-06 18:32:46 -0800</bug_when>
    <thetext>Created attachment 191884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849788</commentid>
    <comment_count>14</comment_count>
      <attachid>191931</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-06 23:29:52 -0800</bug_when>
    <thetext>Created attachment 191931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850893</commentid>
    <comment_count>15</comment_count>
      <attachid>192151</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-07 23:03:12 -0800</bug_when>
    <thetext>Created attachment 192151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851197</commentid>
    <comment_count>16</comment_count>
      <attachid>191931</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-08 07:55:32 -0800</bug_when>
    <thetext>Comment on attachment 191931
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        It is implemented under ENABLE_CSS3_TEXT with &quot;-webkit&quot; prefix.

&apos;&quot;-webkit&quot; prefix&apos; is what is usually called &apos;prefixed&apos; (see all the threads on prefixing / unprefixing on the internets).

&gt; Source/WebCore/css/CSSParser.cpp:2188
&gt; +        if (!parsedValue)
&gt; +            return false;

This is unneeded and will be handled after the switch.

&gt; Source/WebCore/css/CSSParser.cpp:9184
&gt; +    // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; -webkit-each-line? | inherit
&gt; +    RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSpaceSeparated();

To answer your question, you are trying to keep the existing behavior of returning a numeric value here if !ENABLE(CSS3_TEXT). I think it&apos;s artificial as this representation is not exposed and you can do the massaging when we return it in CSSComputedStyleDeclaration.

Furthermore, you expect at most 2 values so you could actually use a Pair to get the values.

&gt; Source/WebCore/css/CSSParser.cpp:9193
&gt; +            return list;

You need to call release on your RefPtr to convert it to a PassRefPtr. While this is semantically equivalent, it actually touches m_refCount twice (create a new PassRefPtr (+1) and destroying the RefPtr (-1)) instead of just transferring m_refCount untouched. See http://www.webkit.org/coding/RefPtr.html as a good intro on RefPtr / PassRefPtr.

&gt; Source/WebCore/css/CSSParser.cpp:9215
&gt; +        list-&gt;append(cssValuePool().createIdentifierValue(CSSValueWebkitEachLine));
&gt; +        list-&gt;append(createPrimitiveNumericValue(secondValue));

I would keep the ordering in which you have the values constant as it would simplify the StyleBuilder code (you can ASSERT it to catch offenders).

&gt; Source/WebCore/css/CSSParser.cpp:9230
&gt; +#endif

As mentioned, forking the code is not nice as now we have code duplication and different code being stressed differently based on CSS3_TEXT.

Here you can easily parse the first value, store it into a variable and for the CSS3_TEXT case handle the extra grammar. A way to achieve that is to do:

PassRefPtr&lt;CSSPrimitiveValue&gt; textIndentLength = 0;
PassRefPtr&lt;CSSPrimitiveValue&gt; eachLine = 0;
if (!parseEachLine(textIndendLength, eachLine))
   return 0;
#if ENABLE(CSS3_TEXT)
if (!parseEachLine(textIndendLength, eachLine))
   return 0;

// We shouldn&apos;t accept more than 2 arguments.
if (m_value-&gt;current)
   return false;
#endif
return createPrimitiveValuePair(textIndendLength, eachLine);

with parseEachLine (you can find a better naming) taking the PassRefPtr as reference so that you can fill them and check if one was already set (to handle the duplicated case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854064</commentid>
    <comment_count>17</comment_count>
      <attachid>192870</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-12 22:51:41 -0700</bug_when>
    <thetext>Created attachment 192870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854068</commentid>
    <comment_count>18</comment_count>
      <attachid>191931</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-12 22:57:32 -0700</bug_when>
    <thetext>Comment on attachment 191931
Patch

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

Thanks for your comments.

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +        It is implemented under ENABLE_CSS3_TEXT with &quot;-webkit&quot; prefix.
&gt; 
&gt; &apos;&quot;-webkit&quot; prefix&apos; is what is usually called &apos;prefixed&apos; (see all the threads on prefixing / unprefixing on the internets).

Fixed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:2188
&gt;&gt; +            return false;
&gt; 
&gt; This is unneeded and will be handled after the switch.

if, return statements are removed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9193
&gt;&gt; +            return list;
&gt; 
&gt; You need to call release on your RefPtr to convert it to a PassRefPtr. While this is semantically equivalent, it actually touches m_refCount twice (create a new PassRefPtr (+1) and destroying the RefPtr (-1)) instead of just transferring m_refCount untouched. See http://www.webkit.org/coding/RefPtr.html as a good intro on RefPtr / PassRefPtr.

Oops. I fixed.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9230
&gt;&gt; +#endif
&gt; 
&gt; As mentioned, forking the code is not nice as now we have code duplication and different code being stressed differently based on CSS3_TEXT.
&gt; 
&gt; Here you can easily parse the first value, store it into a variable and for the CSS3_TEXT case handle the extra grammar. A way to achieve that is to do:
&gt; 
&gt; PassRefPtr&lt;CSSPrimitiveValue&gt; textIndentLength = 0;
&gt; PassRefPtr&lt;CSSPrimitiveValue&gt; eachLine = 0;
&gt; if (!parseEachLine(textIndendLength, eachLine))
&gt;    return 0;
&gt; #if ENABLE(CSS3_TEXT)
&gt; if (!parseEachLine(textIndendLength, eachLine))
&gt;    return 0;
&gt; 
&gt; // We shouldn&apos;t accept more than 2 arguments.
&gt; if (m_value-&gt;current)
&gt;    return false;
&gt; #endif
&gt; return createPrimitiveValuePair(textIndendLength, eachLine);
&gt; 
&gt; with parseEachLine (you can find a better naming) taking the PassRefPtr as reference so that you can fill them and check if one was already set (to handle the duplicated case).

As I said on irc, Pair is not proper when text-indent has only one value.
I used CSSValueList, Please review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854094</commentid>
    <comment_count>19</comment_count>
      <attachid>192870</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 00:30:40 -0700</bug_when>
    <thetext>Comment on attachment 192870
Patch

Attachment 192870 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17074424

New failing tests:
svg/css/getComputedStyle-basic.xhtml
transitions/text-indent-transition.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854104</commentid>
    <comment_count>20</comment_count>
      <attachid>192870</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-13 00:53:34 -0700</bug_when>
    <thetext>Comment on attachment 192870
Patch

Attachment 192870 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17128084

New failing tests:
svg/css/getComputedStyle-basic.xhtml
transitions/text-indent-transition.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854109</commentid>
    <comment_count>21</comment_count>
      <attachid>192870</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 01:01:20 -0700</bug_when>
    <thetext>Comment on attachment 192870
Patch

Attachment 192870 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17202032

New failing tests:
svg/css/getComputedStyle-basic.xhtml
transitions/text-indent-transition.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854176</commentid>
    <comment_count>22</comment_count>
      <attachid>192870</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-13 03:39:00 -0700</bug_when>
    <thetext>Comment on attachment 192870
Patch

Attachment 192870 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17197064

New failing tests:
svg/css/getComputedStyle-basic.xhtml
transitions/text-indent-transition.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854226</commentid>
    <comment_count>23</comment_count>
      <attachid>192870</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-13 05:37:22 -0700</bug_when>
    <thetext>Comment on attachment 192870
Patch

Attachment 192870 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17131294

New failing tests:
svg/css/getComputedStyle-basic.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854827</commentid>
    <comment_count>24</comment_count>
      <attachid>193032</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-13 18:00:04 -0700</bug_when>
    <thetext>Created attachment 193032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854876</commentid>
    <comment_count>25</comment_count>
      <attachid>193032</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 19:39:40 -0700</bug_when>
    <thetext>Comment on attachment 193032
Patch

Attachment 193032 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17015459

New failing tests:
transitions/svg-transitions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854914</commentid>
    <comment_count>26</comment_count>
      <attachid>193032</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 20:37:11 -0700</bug_when>
    <thetext>Comment on attachment 193032
Patch

Attachment 193032 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17008907

New failing tests:
transitions/svg-transitions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854944</commentid>
    <comment_count>27</comment_count>
      <attachid>193032</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-13 21:40:41 -0700</bug_when>
    <thetext>Comment on attachment 193032
Patch

Attachment 193032 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17133136

New failing tests:
transitions/svg-transitions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854954</commentid>
    <comment_count>28</comment_count>
      <attachid>193032</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-13 22:02:12 -0700</bug_when>
    <thetext>Comment on attachment 193032
Patch

Attachment 193032 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17138265

New failing tests:
transitions/svg-transitions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854986</commentid>
    <comment_count>29</comment_count>
      <attachid>193071</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-13 23:21:50 -0700</bug_when>
    <thetext>Created attachment 193071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857731</commentid>
    <comment_count>30</comment_count>
      <attachid>193071</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-18 16:55:02 -0700</bug_when>
    <thetext>Comment on attachment 193071
Patch

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

r- for regressing calc() and some polish in StyleBuilder but the parsing code looks good.

&gt; Source/WebCore/ChangeLog:17
&gt; +        It&apos;s prefixed with &apos;-webkit-&apos; and guarded by CSS3_TEXT flag.

As said, prefixed with &apos;-webkit-&apos; is just called prefixed (we don&apos;t use other type of prefixing).

&gt; Source/WebCore/ChangeLog:28
&gt; +        (WebCore):

These are meaningless entries that should be removed (unfortunately our tools generate them for no good reason).

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2201
&gt; +        }

I think we would rather keep the existing behavior if you only specified only the &lt;length&gt; | &lt;percentage&gt;. This contradicts what I said about sharing code across call sites, but this is exposed to web-sites so it would be better to keep backwards-compatibility, especially since it&apos;s easy.

&gt; Source/WebCore/css/CSSParser.cpp:9246
&gt; +    // &lt;length&gt; | &lt;percentage&gt;

No inherit here?

&gt; Source/WebCore/css/CSSParser.cpp:9257
&gt; +    // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; -webkit-each-line | inherit

You should probably mention that the case where -webkit-each-line is not provided is handled above.

&gt; Source/WebCore/css/CSSParser.cpp:9263
&gt; +    CSSParserValue* value = 0;

I would renamed that to lengthOrPercentageValue to make it explicit that this stores &lt;length&gt; | &lt;percentage&gt;.

&gt; Source/WebCore/css/StyleBuilder.cpp:1835
&gt; +

This is regressing the calc() case: &lt;length&gt; allows calc() per CSS 3 value. The old code would allow it but not the new one. Btw, this now has to be tested.

&gt; Source/WebCore/css/StyleBuilder.cpp:1836
&gt; +        return Length();

FWIW, you control the code coming here so you should have some kind of ASSERT_NOT_REACHED() here.

&gt; Source/WebCore/css/StyleBuilder.cpp:1837
&gt; +    }

StyleBuilder is crazy to allow such rampant duplication but let&apos;s not add more. See below about a better way than re-inventing the wheel :-/

&gt; Source/WebCore/css/StyleBuilder.cpp:1861
&gt; +        Length textIndent = RenderStyle::initialTextIndent();

That&apos;s a bad idea (TM): RenderStyle should be already filled with initialTextIdent and you *know* you must have a text indent. On top of that, we prefer to define variable when they are needed, not in some random places (here it gives you nothing to define |textIndent| here apart from making the intent less understandable).

&gt; Source/WebCore/css/StyleBuilder.cpp:1872
&gt; +#if ENABLE(CSS3_TEXT)
&gt; +            styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentFirstLine);
&gt; +#endif

I don&apos;t think you need this code, it should default to the &quot;initial&quot; value in this case.

&gt; Source/WebCore/css/StyleBuilder.cpp:1879
&gt; +        if (valueList-&gt;length() != 2)
&gt; +            return;

Defense in depth is fine but I wouldn&apos;t expect this code to be hit ever so this doesn&apos;t buy us much. If someone refactored the code in a bad way, this ASSERT would hit it.

&gt; Source/WebCore/css/StyleBuilder.cpp:1888
&gt; +        if (firstValue-&gt;isLength() || firstValue-&gt;isPercentage() || firstValue-&gt;isViewportPercentageLength())
&gt; +            textIndent = computeLength(styleResolver, firstValue);
&gt; +        else if (secondValue-&gt;isLength() || secondValue-&gt;isPercentage() || secondValue-&gt;isViewportPercentageLength())
&gt; +            textIndent = computeLength(styleResolver, secondValue);

This is stale. Now you are guaranteed to have firstValue as the Length so the code should be just be:

textIndent = primitiveValue-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | ViewportPercentageConversion&gt;(...).
ASSERT(!textIdent.isUndefined());

&gt; LayoutTests/ChangeLog:34
&gt; +        * transitions/svg-transitions-expected.txt: Modify line number.

I don&apos;t understand this change. How is your changing text-indent syntax affecting this?

&apos;Why&apos; explanations are always better than &apos;what&apos; and you should concentrate your ChangeLog to explain as much why you do is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858031</commentid>
    <comment_count>31</comment_count>
      <attachid>193071</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-19 01:21:48 -0700</bug_when>
    <thetext>Comment on attachment 193071
Patch

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

Thanks for your comments.

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +        It&apos;s prefixed with &apos;-webkit-&apos; and guarded by CSS3_TEXT flag.
&gt; 
&gt; As said, prefixed with &apos;-webkit-&apos; is just called prefixed (we don&apos;t use other type of prefixing).

I misunderstood your previous comments. I fixed.

&gt;&gt; Source/WebCore/ChangeLog:28
&gt;&gt; +        (WebCore):
&gt; 
&gt; These are meaningless entries that should be removed (unfortunately our tools generate them for no good reason).

Removed manually.

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2201
&gt;&gt; +        }
&gt; 
&gt; I think we would rather keep the existing behavior if you only specified only the &lt;length&gt; | &lt;percentage&gt;. This contradicts what I said about sharing code across call sites, but this is exposed to web-sites so it would be better to keep backwards-compatibility, especially since it&apos;s easy.

Fixed. New patch returns CSSValue when only &lt;length&gt;(or &lt;percentage&gt;) value, CSSValueList when -webkit-each-line exists.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9257
&gt;&gt; +    // [ &lt;length&gt; | &lt;percentage&gt; ] &amp;&amp; -webkit-each-line | inherit
&gt; 
&gt; You should probably mention that the case where -webkit-each-line is not provided is handled above.

I added some comments.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:9263
&gt;&gt; +    CSSParserValue* value = 0;
&gt; 
&gt; I would renamed that to lengthOrPercentageValue to make it explicit that this stores &lt;length&gt; | &lt;percentage&gt;.

Renamed.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1837
&gt;&gt; +    }
&gt; 
&gt; StyleBuilder is crazy to allow such rampant duplication but let&apos;s not add more. See below about a better way than re-inventing the wheel :-/

computeLength() is removed.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1872
&gt;&gt; +#endif
&gt; 
&gt; I don&apos;t think you need this code, it should default to the &quot;initial&quot; value in this case.

This line is required when -webkit-each-line is removed dynamically.
For example, text-indent is changed from &quot;4em -webkit-each-line&quot; to &quot;2em&quot;.
In this case, we need to initialize textIndentLine value of RenderStyle.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1888
&gt;&gt; +            textIndent = computeLength(styleResolver, secondValue);
&gt; 
&gt; This is stale. Now you are guaranteed to have firstValue as the Length so the code should be just be:
&gt; 
&gt; textIndent = primitiveValue-&gt;convertToLength&lt;FixedIntegerConversion | PercentConversion | ViewportPercentageConversion&gt;(...).
&gt; ASSERT(!textIdent.isUndefined());

I fixed to use convertToLength() instead of computeLength().

&gt;&gt; LayoutTests/ChangeLog:34
&gt;&gt; +        * transitions/svg-transitions-expected.txt: Modify line number.
&gt; 
&gt; I don&apos;t understand this change. How is your changing text-indent syntax affecting this?
&gt; 
&gt; &apos;Why&apos; explanations are always better than &apos;what&apos; and you should concentrate your ChangeLog to explain as much why you do is correct.

After changes to return CSSValue instead of CSSValueList, no need to change the expected results.
svg/css/getComputedStyle-basic-expected.txt, transitions/resources/transition-test-helpers.js, transitions/svg-transitions-expected.txt are recovered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858037</commentid>
    <comment_count>32</comment_count>
      <attachid>193754</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-19 01:29:00 -0700</bug_when>
    <thetext>Created attachment 193754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858836</commentid>
    <comment_count>33</comment_count>
      <attachid>193754</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-19 16:04:11 -0700</bug_when>
    <thetext>Comment on attachment 193754
Patch

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

r=me but the requested changes should be done prior to landing.

&gt; Source/WebCore/ChangeLog:45
&gt; +        (StyleRareInheritedData):

You should file these entries now that the change is good.

&gt; Source/WebCore/css/StyleBuilder.cpp:1960
&gt; +        // The value order is guaranteed. See CSSParser::parseTextIndent.

Nit: &apos;value&apos; doesn&apos;t add much in the previous sentence and could be removed.

&gt; Source/WebCore/css/StyleBuilder.cpp:1978
&gt; +        if (valueList-&gt;length() == 1) {
&gt; +            styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentFirstLine);
&gt; +            return;
&gt; +        }
&gt; +
&gt; +        ASSERT(valueList-&gt;length() == 2);
&gt; +        CSSPrimitiveValue* eachLineValue = static_cast&lt;CSSPrimitiveValue*&gt;(valueList-&gt;itemWithoutBoundsCheck(1));
&gt; +        if (eachLineValue-&gt;getIdent() == CSSValueWebkitEachLine)
&gt; +            styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentEachLine);

This could be written (more readable IMO):

ASSERT(valueList-&gt;length() &lt;= 2);
CSSPrimitiveValue* eachLineValue = static_cast&lt;CSSPrimitiveValue*&gt;(valueList-&gt;item(1);
if (eachLineValue) {
    ASSERT(eachLineValue-&gt;getIndent() == CSSValueWebkitEachLine);
    styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentEachLine);
} else
    styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentFirstLine);

&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/script-tests/getComputedStyle-text-indent-inherited.js:8
&gt; +function ownValueTest(a_value, c_value)

a_value / c_value are not very readable (I had a hard time understand why a / c and not a / b).

How about: ancestorValue / childValue (also this should be camelCased to match WebKit&apos;s coding style).

&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/script-tests/getComputedStyle-text-indent.js:49
&gt; +debug(&apos;&apos;);

This is missing some calc() values that you broke yesterday and asked about adding some coverage. An example would be calc(20px + 30px) but feel free to be creative.

&gt; LayoutTests/platform/chromium/TestExpectations:236
&gt; +webkit.org/b/109021 fast/css3-text/css3-text-indent

This entry is not totally correct:
* The default action is SKIPPED which won&apos;t catch crashers, it should be FAIL
* This bug will be closed the moment this patch land. The reference bug here should be something that will be closed when the feature is considered complete.

You should have a meta bug that covers adding all the pieces needed for text-indent or what you are targeting and make all the patches block the meta bug. See for example, bug 60731 (CSS Grid Layout meta bug - shameless plug btw) for how it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859062</commentid>
    <comment_count>34</comment_count>
      <attachid>193754</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-19 22:01:07 -0700</bug_when>
    <thetext>Comment on attachment 193754
Patch

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

Thanks for r+. I fixed as your comments.

&gt;&gt; Source/WebCore/ChangeLog:45
&gt;&gt; +        (StyleRareInheritedData):
&gt; 
&gt; You should file these entries now that the change is good.

Added comments.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1960
&gt;&gt; +        // The value order is guaranteed. See CSSParser::parseTextIndent.
&gt; 
&gt; Nit: &apos;value&apos; doesn&apos;t add much in the previous sentence and could be removed.

Removed &apos;value&apos;.

&gt;&gt; Source/WebCore/css/StyleBuilder.cpp:1978
&gt;&gt; +            styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentEachLine);
&gt; 
&gt; This could be written (more readable IMO):
&gt; 
&gt; ASSERT(valueList-&gt;length() &lt;= 2);
&gt; CSSPrimitiveValue* eachLineValue = static_cast&lt;CSSPrimitiveValue*&gt;(valueList-&gt;item(1);
&gt; if (eachLineValue) {
&gt;     ASSERT(eachLineValue-&gt;getIndent() == CSSValueWebkitEachLine);
&gt;     styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentEachLine);
&gt; } else
&gt;     styleResolver-&gt;style()-&gt;setTextIndentLine(TextIndentFirstLine);

Fixed. It looks more readable. Thanks.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/script-tests/getComputedStyle-text-indent-inherited.js:8
&gt;&gt; +function ownValueTest(a_value, c_value)
&gt; 
&gt; a_value / c_value are not very readable (I had a hard time understand why a / c and not a / b).
&gt; 
&gt; How about: ancestorValue / childValue (also this should be camelCased to match WebKit&apos;s coding style).

Changed to ancestorValue and childValue.

&gt;&gt; LayoutTests/fast/css3-text/css3-text-indent/getComputedStyle/script-tests/getComputedStyle-text-indent.js:49
&gt;&gt; +debug(&apos;&apos;);
&gt; 
&gt; This is missing some calc() values that you broke yesterday and asked about adding some coverage. An example would be calc(20px + 30px) but feel free to be creative.

Added calc(10px + 20px) cases.

&gt;&gt; LayoutTests/platform/chromium/TestExpectations:236
&gt;&gt; +webkit.org/b/109021 fast/css3-text/css3-text-indent
&gt; 
&gt; This entry is not totally correct:
&gt; * The default action is SKIPPED which won&apos;t catch crashers, it should be FAIL
&gt; * This bug will be closed the moment this patch land. The reference bug here should be something that will be closed when the feature is considered complete.
&gt; 
&gt; You should have a meta bug that covers adding all the pieces needed for text-indent or what you are targeting and make all the patches block the meta bug. See for example, bug 60731 (CSS Grid Layout meta bug - shameless plug btw) for how it works.

* Add [ Failure ].
* I filed https://bugs.webkit.org/show_bug.cgi?id=112755 as meta bug for text-indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859077</commentid>
    <comment_count>35</comment_count>
      <attachid>193986</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-19 22:33:04 -0700</bug_when>
    <thetext>Created attachment 193986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859487</commentid>
    <comment_count>36</comment_count>
      <attachid>193986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 09:24:01 -0700</bug_when>
    <thetext>Comment on attachment 193986
Patch

Rejecting attachment 193986 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 193986, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 13971 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
55&gt;At revision 13971.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://webkit-commit-queue.appspot.com/results/17155729</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859820</commentid>
    <comment_count>37</comment_count>
      <attachid>194140</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-20 15:44:34 -0700</bug_when>
    <thetext>Created attachment 194140
Patch

Fixed a conflict</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859844</commentid>
    <comment_count>38</comment_count>
      <attachid>194140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 16:22:56 -0700</bug_when>
    <thetext>Comment on attachment 194140
Patch

Clearing flags on attachment: 194140

Committed r146408: &lt;http://trac.webkit.org/changeset/146408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859845</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-20 16:23:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187771</attachid>
            <date>2013-02-11 22:00:37 -0800</date>
            <delta_ts>2013-02-11 22:20:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130212145706.patch</filename>
            <type>text/plain</type>
            <size>27624</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI3NjMxMjQxZjA5YmRl
NmI4MjI2MzJiNjEwNmQwNGJkNjNiYzVhZS4uMDM0ZWM3ODRkMjQxNjJkOWE3NDg0N2Y0Y2QwNDdk
MWQ2MTZlYjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTAyLTExICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
U3VwcG9ydCB0ZXh0LWluZGVudDplYWNoLWxpbmUgZnJvbSBjc3MzLXRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAyMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJlYWNoLWxpbmUiIGlzIGFkZGVk
IGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIEl0IG1lYW5zICJJbmRlbnRhdGlvbiBh
ZmZlY3RzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBibG9jaworICAgICAgICBjb250YWluZXIgYXMg
d2VsbCBhcyBlYWNoIGxpbmUgYWZ0ZXIgYSBmb3JjZWQgbGluZSBicmVhaywKKyAgICAgICAgYnV0
IGRvZXMgbm90IGFmZmVjdCBsaW5lcyBhZnRlciBhIHNvZnQgd3JhcCBicmVhay4iCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sIAorCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1NpbXBsZUxlbmd0aFBy
b3BlcnR5SUQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KEFwcGx5UHJvcGVydHlUZXh0SW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlUZXh0SW5kZW50OjphcHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6CisgICAgICAgIChMaW5lV2lkdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6
Om5lZWRzVGV4dEluZGVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OnVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKwogMjAxMy0w
Mi0xMSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CiAKICAg
ICAgICAgQnVpbGQgZml4OiByMTQyNTQ5IGJyb2tlIEVGTCBidWlsZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCAyMDk4YjFlMzE1N2Y3MjAxMWE3MjU2NWMzYmNmZTI0NzI3MDIyYTJlLi4z
YzM4YTZmZTBmYjNhMjY1NGFiNGI0YmIxNjMxZWZiMDdjYzIxM2VlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtNTI3LDcgKzUyNyw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBs
ZUxlbmd0aFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBib29sJiBhY2NlCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJn
aW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0SW5kZW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hcmdpbkFmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5CZWZv
cmU6CkBAIC0yMTAwLDggKzIwOTksMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgpOwogICAgICAgICBicmVhazsKIAotICAg
IGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJj
ZW50YWdlPiB8IGluaGVyaXQKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlk
VW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRl
eHRJbmRlbnQ6ICAgICAgICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAmJiBbIGhh
bmdpbmcgfHwgZWFjaC1saW5lIF0/CisgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VUZXh0SW5k
ZW50KCk7CisgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6ICAg
ICAgICAgIC8vLy8gPHBhZGRpbmctd2lkdGg+IHwgaW5oZXJpdApAQCAtOTAxMCw2ICs5MDExLDI5
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZVRleHRJbmRlbnQoKQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgYm9vbCBoYXZlVGV4dElu
ZGVudCA9IGZhbHNlOworICAgIGJvb2wgaGF2ZUVhY2hMaW5lID0gZmFsc2U7CisKKyAgICBmb3Ig
KENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7IHZhbHVlOyB2
YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKCFoYXZlRWFjaExpbmUg
JiYgdmFsdWUtPmlkID09IENTU1ZhbHVlRWFjaExpbmUpIHsKKyAgICAgICAgICAgIGxpc3QtPmFw
cGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7Cisg
ICAgICAgICAgICBoYXZlRWFjaExpbmUgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKCFoYXZl
VGV4dEluZGVudCAmJiAhdmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQ
ZXJjZW50KSkgeworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVy
aWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAgaGF2ZVRleHRJbmRlbnQgPSB0cnVlOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghbGlz
dC0+bGVuZ3RoKCkgfHwgIWhhdmVUZXh0SW5kZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBsaXN0OworfQorCiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihi
b29sIGltcG9ydGFudCkKIHsKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExp
bmVCb3hDb250YWluTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkYjllYTk4MTU1NmQx
MzRjNjAxZGI3NjRlZmNkNjljZjA0ZTRhOWJhLi42YjlkYTdkZGM0Yjk5ZmU5MWI1MjBjMzIxYzc2
ZjA2NGU0MTYxYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNTUsNiArMjU1LDggQEAg
cHVibGljOgogICAgIHZvaWQgYWRkVGV4dERlY29yYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiwgYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VU
ZXh0RGVjb3JhdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogCisg
ICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VUZXh0SW5kZW50KCk7CisKICAgICBib29sIHBh
cnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VDYWxjdWxh
dGlvbihDU1NQYXJzZXJWYWx1ZSosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNzU5MjZmNjI3YTM3ZjIw
NmYxMTRmMTZhNzc3MjllOGZkOTM2ZTgwYi4uYzVkY2VlNTU2OWQwYWJjNzAwZGQzZGQ3YzRiYjM2
NmUwMzU2N2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTk5
OCwzICs5OTgsNiBAQCBzbmFwCiBkcmFnCiBuby1kcmFnCiAjZW5kaWYKKworLy8gdGV4dC1pbmRl
bnQKK2VhY2gtbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA0ZDg3OGIy
ZTliMzI1ZTI1ZWUzNmFkOGNiZjJiMjAwZjJmMzgyMTBhLi5iOTQxZTUwNjM0NDAwNWViNjA1YjQy
ZTU2NmJhY2RiYWQyNTE4NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAt
MTc5Miw2ICsxNzkyLDU5IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorY2xhc3MgQXBwbHlQcm9w
ZXJ0eVRleHRJbmRlbnQgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZh
bHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgewor
ICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShzdHlsZVJl
c29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHls
ZSgpLT50ZXh0SW5kZW50KCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlh
bFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAg
eworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpOworICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CisgICAgICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRlbnRMaW5lID0gUmVuZGVy
U3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpOworICAgICAgICBMZW5ndGggdGV4dEluZGVu
dCA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgpOworCisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LT5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBD
U1NWYWx1ZSogaXRlbSA9IHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAg
ICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRWFjaExpbmUpCisgICAg
ICAgICAgICAgICAgdGV4dEluZGVudExpbmUgPSBUZXh0SW5kZW50RWFjaExpbmU7CisgICAgICAg
ICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkgeworICAgICAgICAgICAg
ICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUo
KSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgICAg
ICAgICBsZW5ndGguc2V0UXVpcmsocHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKTsKKyAg
ICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gbGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCisgICAgICAgICAgICAgICAgdGV4dElu
ZGVudCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7
CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNDYWxjdWxhdGVkUGVyY2Vu
dGFnZVdpdGhMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gTGVuZ3RoKHBy
aW1pdGl2ZVZhbHVlLT5jc3NDYWxjVmFsdWUoKS0+dG9DYWxjVmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpKQorICAgICAgICAgICAgICAg
IHRleHRJbmRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCk7
CisgICAgICAgIH0KKworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5k
ZW50TGluZSh0ZXh0SW5kZW50TGluZSk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldFRleHRJbmRlbnQodGV4dEluZGVudCk7CisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5
SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhh
bmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVl
KTsKKyAgICB9Cit9OworCiBjb25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6c2hhcmVk
U3R5bGVCdWlsZGVyKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVpbGRlciwg
c3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKQEAgLTE5MjQsNyArMTk3Nyw3IEBAIFN0eWxlQnVp
bGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RGVjb3JhdGlvblN0eWxlLCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0RGVjb3Jh
dGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OnRleHREZWNvcmF0aW9uU3R5bGUsIFRleHREZWNvcmF0
aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6c2V0VGV4dERlY29yYXRpb25TdHlsZSwgVGV4dERlY29y
YXRpb25TdHlsZSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dERlY29yYXRpb25TdHlsZT46OmNy
ZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
VGV4dEFsaWduTGFzdCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEFsaWduTGFzdCwgJlJlbmRl
clN0eWxlOjp0ZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OnNldFRl
eHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRBbGln
bkxhc3Q+OjpjcmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAotICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8
JlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlUZXh0
SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVu
ZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRl
eHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZs
b3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9u
dERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4
dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3Bl
cnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBF
VGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5z
Zm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCmluZGV4IDI0ODg3NGM4ZjFjYjJiMTE5ZWFkMDFmMTllNDk3MzFmZWI1ODY3ODIuLjk4
MTcyY2ZhODA4NzI2YzJlMTcxMDg2MDU3YzE4NGRkYmE0ZWMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC03Miw3ICs3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8oY29uc3QgUmVuCiAKIGNsYXNzIExpbmVXaWR0aCB7CiBwdWJs
aWM6Ci0gICAgTGluZVdpZHRoKFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSkK
KyAgICBMaW5lV2lkdGgoUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5lLCBib29s
IGlzSW5kZW50ZWRMaW5lKQogICAgICAgICA6IG1fYmxvY2soYmxvY2spCiAgICAgICAgICwgbV91
bmNvbW1pdHRlZFdpZHRoKDApCiAgICAgICAgICwgbV9jb21taXR0ZWRXaWR0aCgwKQpAQCAtODQs
NiArODQsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9zZWdtZW50KDApCiAjZW5kaWYKICAgICAg
ICAgLCBtX2lzRmlyc3RMaW5lKGlzRmlyc3RMaW5lKQorICAgICAgICAsIG1faXNJbmRlbnRlZExp
bmUoaXNJbmRlbnRlZExpbmUpCiAgICAgewogICAgICAgICBBU1NFUlQoYmxvY2spOwogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKQEAgLTEzMSw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIGNv
bnN0IExpbmVTZWdtZW50KiBtX3NlZ21lbnQ7CiAjZW5kaWYKICAgICBib29sIG1faXNGaXJzdExp
bmU7CisgICAgYm9vbCBtX2lzSW5kZW50ZWRMaW5lOwogfTsKIAogc3RhdGljIExheW91dFVuaXQg
bG9naWNhbEhlaWdodEZvckxpbmUoUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5l
LCBMYXlvdXRVbml0IHJlcGxhY2VkSGVpZ2h0ID0gMCkKQEAgLTE0OCw4ICsxNTAsOCBAQCBpbmxp
bmUgdm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKExheW91dFVuaXQgcmVwbGFj
ZWRIZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsSGVp
Z2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodEZvckxp
bmUobV9ibG9jaywgbV9pc0ZpcnN0TGluZSwgcmVwbGFjZWRIZWlnaHQpOwotICAgIG1fbGVmdCA9
IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShoZWlnaHQsIG1faXNGaXJzdExpbmUs
IGxvZ2ljYWxIZWlnaHQpOwotICAgIG1fcmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKGhlaWdodCwgbV9pc0ZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9s
ZWZ0ID0gbV9ibG9jay0+bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbV9pc0luZGVu
dGVkTGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9yaWdodCA9IG1fYmxvY2stPmxvZ2ljYWxS
aWdodE9mZnNldEZvckxpbmUoaGVpZ2h0LCBtX2lzSW5kZW50ZWRMaW5lLCBsb2dpY2FsSGVpZ2h0
KTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAobV9zZWdtZW50KSB7CkBA
IC0yMTEsOCArMjEzLDggQEAgdm9pZCBMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKCkKICAgICAg
ICAgaWYgKGZsb2F0TG9naWNhbEJvdHRvbSA8PSBsYXN0RmxvYXRMb2dpY2FsQm90dG9tKQogICAg
ICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgbmV3TGluZUxlZnQgPSBtX2Jsb2NrLT5sb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUoZmxvYXRMb2dpY2FsQm90dG9tLCBtX2lzRmlyc3RMaW5lKTsKLSAg
ICAgICAgbmV3TGluZVJpZ2h0ID0gbV9ibG9jay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShm
bG9hdExvZ2ljYWxCb3R0b20sIG1faXNGaXJzdExpbmUpOworICAgICAgICBuZXdMaW5lTGVmdCA9
IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1f
aXNJbmRlbnRlZExpbmUpOworICAgICAgICBuZXdMaW5lUmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKGZsb2F0TG9naWNhbEJvdHRvbSwgbV9pc0luZGVudGVkTGluZSk7
CiAgICAgICAgIG5ld0xpbmVXaWR0aCA9IG1heCgwLjBmLCBuZXdMaW5lUmlnaHQgLSBuZXdMaW5l
TGVmdCk7CiAgICAgICAgIGxhc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBmbG9hdExvZ2ljYWxCb3R0
b207CiAgICAgICAgIGlmIChuZXdMaW5lV2lkdGggPj0gbV91bmNvbW1pdHRlZFdpZHRoKQpAQCAt
ODgyLDExICs4ODQsMjEgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlTG9naWNhbFdpZHRoRm9y
QWxpZ25tZW50KGNvbnN0IEVUZXh0QWxpZ24mIHRleHRBbGlnbiwgQmkKICAgICB9CiB9CiAKLXN0
YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMoUmVuZGVyQmxvY2sqIGJsb2Nr
LCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYgbGluZUxvZ2ljYWxSaWdodCwgZmxvYXQm
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJzdExpbmUsIExheW91dFVuaXQgYm94TG9n
aWNhbEhlaWdodCkKK3N0YXRpYyBib29sIG5lZWRzVGV4dEluZGVudChib29sIGZpcnN0TGluZSwg
Ym9vbCBhZnRlckZvcmNlZExpbmVCcmVhaywgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlm
IChmaXJzdExpbmUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhZnRlckZvcmNlZExp
bmVCcmVhayAmJiBzdHlsZSAmJiBzdHlsZS0+dGV4dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50
RWFjaExpbmUpIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kworc3RhdGljIHZvaWQgdXBkYXRlTG9naWNhbElubGluZVBvc2l0aW9ucyhSZW5kZXJCbG9jayog
YmxvY2ssIGZsb2F0JiBsaW5lTG9naWNhbExlZnQsIGZsb2F0JiBsaW5lTG9naWNhbFJpZ2h0LCBm
bG9hdCYgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBib29sIGZpcnN0TGluZSwgYm9vbCBpbmRlbnRl
ZExpbmUsIExheW91dFVuaXQgYm94TG9naWNhbEhlaWdodCkKIHsKICAgICBMYXlvdXRVbml0IGxp
bmVMb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodEZvckxpbmUoYmxvY2ssIGZpcnN0TGluZSwg
Ym94TG9naWNhbEhlaWdodCk7Ci0gICAgbGluZUxvZ2ljYWxMZWZ0ID0gYmxvY2stPnBpeGVsU25h
cHBlZExvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9naWNhbEhlaWdodCgpLCBmaXJz
dExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKLSAgICBsaW5lTG9naWNhbFJpZ2h0ID0gYmxvY2st
PnBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoYmxvY2stPmxvZ2ljYWxIZWln
aHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CisgICAgbGluZUxvZ2ljYWxMZWZ0
ID0gYmxvY2stPnBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9n
aWNhbEhlaWdodCgpLCBpbmRlbnRlZExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKKyAgICBsaW5l
TG9naWNhbFJpZ2h0ID0gYmxvY2stPnBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxp
bmUoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgaW5kZW50ZWRMaW5lLCBsaW5lTG9naWNhbEhlaWdo
dCk7CiAgICAgYXZhaWxhYmxlTG9naWNhbFdpZHRoID0gbGluZUxvZ2ljYWxSaWdodCAtIGxpbmVM
b2dpY2FsTGVmdDsKIH0KIApAQCAtODk4LDEwICs5MTAsMTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6
Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGlu
ZUJveCwKICAgICAvLyBDU1MgMi4xOiAiJ1RleHQtaW5kZW50JyBvbmx5IGFmZmVjdHMgYSBsaW5l
IGlmIGl0IGlzIHRoZSBmaXJzdCBmb3JtYXR0ZWQgbGluZSBvZiBhbiBlbGVtZW50LiBGb3IgZXhh
bXBsZSwgdGhlIGZpcnN0IGxpbmUgb2YgYW4gYW5vbnltb3VzIGJsb2NrIAogICAgIC8vIGJveCBp
cyBvbmx5IGFmZmVjdGVkIGlmIGl0IGlzIHRoZSBmaXJzdCBjaGlsZCBvZiBpdHMgcGFyZW50IGVs
ZW1lbnQuIgogICAgIGJvb2wgZmlyc3RMaW5lID0gbGluZUluZm8uaXNGaXJzdExpbmUoKSAmJiAh
KGlzQW5vbnltb3VzQmxvY2soKSAmJiBwYXJlbnQoKS0+Zmlyc3RDaGlsZCgpICE9IHRoaXMpOwor
ICAgIGJvb2wgYWZ0ZXJGb3JjZWRMaW5lQnJlYWsgPSBsaW5lQm94LT5wcmV2Um9vdEJveCgpICYm
IGxpbmVCb3gtPnByZXZSb290Qm94KCktPmVuZHNXaXRoQnJlYWsoKTsKKyAgICBib29sIGluZGVu
dGVkTGluZSA9IG5lZWRzVGV4dEluZGVudChmaXJzdExpbmUsIGFmdGVyRm9yY2VkTGluZUJyZWFr
LCBzdHlsZSgpKTsKICAgICBmbG9hdCBsaW5lTG9naWNhbExlZnQ7CiAgICAgZmxvYXQgbGluZUxv
Z2ljYWxSaWdodDsKICAgICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGg7Ci0gICAgdXBkYXRl
TG9naWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2Fs
UmlnaHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKKyAgICB1cGRhdGVM
b2dpY2FsSW5saW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxS
aWdodCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBmaXJzdExpbmUsIGluZGVudGVkTGluZSwgMCk7
CiAgICAgYm9vbCBuZWVkc1dvcmRTcGFjaW5nOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9
IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0aGlzKTsKQEAgLTkzNyw3ICs5NTEsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGlu
ZShSb290SW5saW5lQm94KiBsaW5lQm94LAogCiAgICAgaWYgKGZpcnN0UnVuICYmIGZpcnN0UnVu
LT5tX29iamVjdC0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94
ID0gdG9SZW5kZXJCb3goZmlyc3RSdW4tPm1fb2JqZWN0KTsKLSAgICAgICAgdXBkYXRlTG9naWNh
bElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQs
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWln
aHQoKSk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnModGhpcywgbGluZUxv
Z2ljYWxMZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGZpcnN0
TGluZSwgaW5kZW50ZWRMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgfQog
CiAgICAgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQobGluZUJveCwg
bGluZUluZm8sIHRleHRBbGlnbiwgbGluZUxvZ2ljYWxMZWZ0LCBhdmFpbGFibGVMb2dpY2FsV2lk
dGgsIGZpcnN0UnVuLCB0cmFpbGluZ1NwYWNlUnVuLCB0ZXh0Qm94RGF0YU1hcCwgdmVydGljYWxQ
b3NpdGlvbkNhY2hlLCB3b3JkTWVhc3VyZW1lbnRzKTsKQEAgLTI1NDMsNyArMjU1Nyw3IEBAIElu
bGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImIHJlCiAgICAgYm9vbCBpbmNsdWRlRW5kV2lkdGggPSB0cnVlOwog
ICAgIExpbmVNaWRwb2ludFN0YXRlJiBsaW5lTWlkcG9pbnRTdGF0ZSA9IHJlc29sdmVyLm1pZHBv
aW50U3RhdGUoKTsKIAotICAgIExpbmVXaWR0aCB3aWR0aChtX2Jsb2NrLCBsaW5lSW5mby5pc0Zp
cnN0TGluZSgpKTsKKyAgICBMaW5lV2lkdGggd2lkdGgobV9ibG9jaywgbGluZUluZm8uaXNGaXJz
dExpbmUoKSwgbmVlZHNUZXh0SW5kZW50KGxpbmVJbmZvLmlzRmlyc3RMaW5lKCksIGxpbmVJbmZv
LnByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSgpLCBtX2Jsb2NrLT5zdHlsZSgpKSk7CiAKICAgICBz
a2lwTGVhZGluZ1doaXRlc3BhY2UocmVzb2x2ZXIsIGxpbmVJbmZvLCBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lLCB3aWR0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCmluZGV4IGNlZmMzYzEyMGUxOTg4ZGViYWE3MjE2ZTEzY2E3YzA3YTk5
MzRiMjEuLmQ1Mjk5YTA3NTNjYTg3OGVlYzU2NzIwNzMzYjU1ODNkZjFlYzViNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDY2LDcg
KzQ2Niw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAKICAgICBpZiAocmFyZUluaGVyaXRl
ZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLmdldCgpKSB7CiAgICAgICAg
IGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVk
RGF0YS0+aGlnaGxpZ2h0Ci0gICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50
ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50CisgICAgICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
bV90ZXh0SW5kZW50CisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5k
ZW50TGluZSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUKICAg
ICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0gb3RoZXIt
PnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8IHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
PnRleHRTaXplQWRqdXN0CiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJy
ZWFrICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDhjMjUzMmZlM2RlYmY1YzFl
MDA2NGE0ODIyNGZjOTQyYTQ4MmUxMTkuLjhlNTVkMzRlYmMyMTNjNjllN2FlODFiOWQ0Zjk2MzMx
N2Y0NTM0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC01NjcsNyArNTY3LDggQEAgcHVibGljOgogICAgIGZsb2F0IHRleHRBdXRvc2l6aW5n
TXVsdGlwbGllcigpIGNvbnN0IHsgcmV0dXJuIHZpc3VhbC0+bV90ZXh0QXV0b3NpemluZ011bHRp
cGxpZXI7IH0KICNlbmRpZgogCi0gICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50OyB9CisgICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBj
b25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50OyB9CisgICAgVGV4
dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxU
ZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUpOyB9CiAg
ICAgRVRleHRBbGlnbiB0ZXh0QWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4
dEFsaWduPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24pOyB9CiAgICAgRVRleHRUcmFuc2Zv
cm0gdGV4dFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0VHJhbnNm
b3JtPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtKTsgfQogICAgIEVUZXh0RGVjb3Jh
dGlvbiB0ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEVUZXh0RGVjb3JhdGlvbj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zKTsgfQpA
QCAtMTEwNiw3ICsxMTA3LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNldENvbG9y
KGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0aCB2KSB7IFNFVF9W
QVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0KKyAgICB2b2lkIHNldFRleHRJbmRl
bnQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90ZXh0SW5kZW50LCB2
KTsgfQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudExpbmUgdikgeyBTRVRf
VkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5lLCB2KTsgfQogICAgIHZvaWQg
c2V0VGV4dEFsaWduKEVUZXh0QWxpZ24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24g
PSB2OyB9CiAgICAgdm9pZCBzZXRUZXh0VHJhbnNmb3JtKEVUZXh0VHJhbnNmb3JtIHYpIHsgaW5o
ZXJpdGVkX2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSA9IHY7IH0KICAgICB2b2lkIGFkZFRvVGV4dERl
Y29yYXRpb25zSW5FZmZlY3QoRVRleHREZWNvcmF0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90
ZXh0X2RlY29yYXRpb25zIHw9IHY7IH0KQEAgLTE1NjUsNiArMTU2Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxNYXJnaW4oKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9
CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsUGFkZGluZygpIHsgcmV0dXJuIExlbmd0aChGaXhl
ZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUZXh0SW5kZW50KCkgeyByZXR1cm4gTGVu
Z3RoKEZpeGVkKTsgfQorICAgIHN0YXRpYyBUZXh0SW5kZW50TGluZSBpbml0aWFsVGV4dEluZGVu
dExpbmUoKSB7IHJldHVybiBUZXh0SW5kZW50Rmlyc3RMaW5lOyB9CiAgICAgc3RhdGljIEVWZXJ0
aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAg
ICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMg
c2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDhjMmMw
YjU4NmY0YjQ4ZWE5YWQ0MmQwMmFjYmMyNDQyNWUxZDcxMzYuLmU4NzFhMDdjNzM1ZDJmMjVlMjYz
NzY5YTcxNjFkOWIxNDkxZDllZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00OTYsNiArNDk2LDggQEAgZW51
bSBEcmFnZ2FibGVSZWdpb25Nb2RlIHsgRHJhZ2dhYmxlUmVnaW9uTm9uZSwgRHJhZ2dhYmxlUmVn
aW9uRHJhZywgRHJhZ2dhYmxlUmUKIC8vIFJlYXNvbmFibGUgbWF4aW11bSB0byBwcmV2ZW50IGlu
c2FuZSBmb250IHNpemVzIGZyb20gY2F1c2luZyBjcmFzaGVzIG9uIHNvbWUgcGxhdGZvcm1zIChz
dWNoIGFzIFdpbmRvd3MpLgogc3RhdGljIGNvbnN0IGZsb2F0IG1heGltdW1BbGxvd2VkRm9udFNp
emUgPSAxMDAwMDAwLjBmOwogCitlbnVtIFRleHRJbmRlbnRMaW5lIHsgVGV4dEluZGVudEZpcnN0
TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBi
MjE1YWIzNTg3ZTFiZjA2OTdhNTA1ZDdjOGY0ODRjM2E2YzBjMjFlLi5lZTc0Yzk5YzU4ZmJhYWQx
NjA1MmJjZTg0Y2VmZmZjYWUxMTMyYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIENPTVBJTEVfQVNTRVJUKHNpemVvZihTdHlsZVJhcmVJbmhlcml0ZWREYXRhKSA9PSBz
aXplb2YoU2FtZVNpemVBc1N0eWxlUmFyZUluaGVyCiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAgICA6IGxpc3RTdHlsZUltYWdlKFJlbmRlclN0eWxl
Ojppbml0aWFsTGlzdFN0eWxlSW1hZ2UoKSkKICAgICAsIHRleHRTdHJva2VXaWR0aChSZW5kZXJT
dHlsZTo6aW5pdGlhbFRleHRTdHJva2VXaWR0aCgpKQotICAgICwgaW5kZW50KFJlbmRlclN0eWxl
Ojppbml0aWFsVGV4dEluZGVudCgpKQorICAgICwgbV90ZXh0SW5kZW50KFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEluZGVudCgpKQogICAgICwgbV9lZmZlY3RpdmVab29tKFJlbmRlclN0eWxlOjpp
bml0aWFsWm9vbSgpKQogICAgICwgd2lkb3dzKFJlbmRlclN0eWxlOjppbml0aWFsV2lkb3dzKCkp
CiAgICAgLCBvcnBoYW5zKFJlbmRlclN0eWxlOjppbml0aWFsT3JwaGFucygpKQpAQCAtODgsNiAr
ODgsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkK
ICAgICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0
RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAgICAgLCBtX3RleHRP
cmllbnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorICAgICwgbV90ZXh0SW5k
ZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCiAgICAgLCBtX2xp
bmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJveENvbnRhaW4oKSkKICNpZiBF
TkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICwgbV9pbWFnZU9yaWVudGF0aW9uKFJl
bmRlclN0eWxlOjppbml0aWFsSW1hZ2VPcmllbnRhdGlvbigpKQpAQCAtMTM2LDcgKzEzNyw3IEBA
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIHRleHRTaGFkb3coby50ZXh0U2hhZG93ID8g
YWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoKm8udGV4dFNoYWRvdykpIDogbnVsbHB0cikKICAgICAs
IGhpZ2hsaWdodChvLmhpZ2hsaWdodCkKICAgICAsIGN1cnNvckRhdGEoby5jdXJzb3JEYXRhKQot
ICAgICwgaW5kZW50KG8uaW5kZW50KQorICAgICwgbV90ZXh0SW5kZW50KG8ubV90ZXh0SW5kZW50
KQogICAgICwgbV9lZmZlY3RpdmVab29tKG8ubV9lZmZlY3RpdmVab29tKQogICAgICwgd2lkb3dz
KG8ud2lkb3dzKQogICAgICwgb3JwaGFucyhvLm9ycGhhbnMpCkBAIC0xNTgsNiArMTU5LDcgQEAg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBo
YXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0
aW9uKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikKKyAgICAs
IG1fdGV4dEluZGVudExpbmUoby5tX3RleHRJbmRlbnRMaW5lKQogICAgICwgbV9saW5lQm94Q29u
dGFpbihvLm1fbGluZUJveENvbnRhaW4pCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElP
TikKICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihvLm1faW1hZ2VPcmllbnRhdGlvbikKQEAgLTIy
NCw3ICsyMjYsNyBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgc2hhZG93RGF0
YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgaGlnaGxpZ2h0ID09IG8uaGlnaGxpZ2h0CiAgICAg
ICAgICYmIGN1cnNvckRhdGFFcXVpdmFsZW50KGN1cnNvckRhdGEuZ2V0KCksIG8uY3Vyc29yRGF0
YS5nZXQoKSkKLSAgICAgICAgJiYgaW5kZW50ID09IG8uaW5kZW50CisgICAgICAgICYmIG1fdGV4
dEluZGVudCA9PSBvLm1fdGV4dEluZGVudAogICAgICAgICAmJiBtX2VmZmVjdGl2ZVpvb20gPT0g
by5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgJiYgd2lkb3dzID09IG8ud2lkb3dzCiAgICAgICAg
ICYmIG9ycGhhbnMgPT0gby5vcnBoYW5zCkBAIC0yNTIsNiArMjU0LDcgQEAgYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEm
IG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1waGFzaXNN
YXJrCiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9z
aXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmllbnRhdGlv
bgorICAgICAgICAmJiBtX3RleHRJbmRlbnRMaW5lID09IG8ubV90ZXh0SW5kZW50TGluZQogICAg
ICAgICAmJiBtX2xpbmVCb3hDb250YWluID09IG8ubV9saW5lQm94Q29udGFpbgogICAgICAgICAm
JiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5nCiAgICAgICAgICYmIGxv
Y2FsZSA9PSBvLmxvY2FsZQpAQCAtMjkzLDcgKzI5Niw3IEBAIHZvaWQgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mCiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKGxpc3RTdHlsZUlt
YWdlLCAibGlzdFN0eWxlSW1hZ2UiKTsKLSAgICBpbmZvLmFkZE1lbWJlcihpbmRlbnQsICJpbmRl
bnQiKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RleHRJbmRlbnQsICJ0ZXh0SW5kZW50Iik7CiAg
ICAgaW5mby5hZGRNZW1iZXIodGV4dFNoYWRvdywgInRleHRTaGFkb3ciKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihoaWdobGlnaHQsICJoaWdobGlnaHQiKTsKICAgICBpbmZvLmFkZE1lbWJlcihjdXJz
b3JEYXRhLCAiY3Vyc29yRGF0YSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjIyODFmNzcyOTcwN2Y3
YzEzYjQ1OTlhYTc2ZGYwYjU5ZTllNzNhYy4uYTllYmIzODM5ZmVhMDViNzc1ZmVkZGQxMDI1NWJl
Y2RiYjc4OWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAg
ICBBdG9taWNTdHJpbmcgaGlnaGxpZ2h0OyAvLyBBcHBsZS1zcGVjaWZpYyBleHRlbnNpb24gZm9y
IGN1c3RvbSBoaWdobGlnaHQgcmVuZGVyaW5nLgogICAgIAogICAgIFJlZlB0cjxDdXJzb3JMaXN0
PiBjdXJzb3JEYXRhOwotICAgIExlbmd0aCBpbmRlbnQ7CisgICAgTGVuZ3RoIG1fdGV4dEluZGVu
dDsKICAgICBmbG9hdCBtX2VmZmVjdGl2ZVpvb207CiAKICAgICAvLyBQYWdlZCBtZWRpYSBwcm9w
ZXJ0aWVzLgpAQCAtMTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1w
aGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBo
YXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBt
X3RleHRPcmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorICAgIHVuc2lnbmVkIG1f
dGV4dEluZGVudExpbmUgOiAxOyAvLyBUZXh0SW5kZW50TGluZQogICAgIHVuc2lnbmVkIG1fbGlu
ZUJveENvbnRhaW46IDc7IC8vIExpbmVCb3hDb250YWluCiAgICAgLy8gQ1NTIEltYWdlIFZhbHVl
cyBMZXZlbCAzCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODdk
YTgwZjgwODQ1ZDkzZjEyMGMxNGUxMGUwYWIxOWQxMTFlNDQzLi42MGE2OTZkYzgxOTdiNWI3MTMx
NzRkZDIxOWJhZmUwNWE3MGUzMzUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMTEg
IEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbY3NzMy10
ZXh0XSBTdXBwb3J0IHRleHQtaW5kZW50OmVhY2gtbGluZSBmcm9tIGNzczMtdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB0
ZXh0LWluZGVudDplYWNoLWxpbmUuCisKKyAgICAgICAgKiBmYXN0L2Nzcy90ZXh0LWluZGVudC1l
YWNoLWxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvdGV4dC1p
bmRlbnQtZWFjaC1saW5lLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgZGVsZXRpb25VSSB0ZXN0cyBpbnRv
IHBsYXRmb3JtL21hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdGV4dC1pbmRl
bnQtZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy90ZXh0LWlu
ZGVudC1lYWNoLWxpbmUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWM3OGI4ODYwNTA5MzJh
M2NjNGMwNWViNzZhZjQwNDExZTE2Y2E1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdGV4dC1pbmRlbnQtZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5bY3NzMy10ZXh0XSB0ZXh0LWluZGVu
dDogZWFjaC1saW5lOzwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgIGRpdiB7IGZvbnQ6IDEwcHgg
QWhlbSB9CisgICAgLm5vcm1hbCB7IHdpZHRoOjgwcHg7IGJhY2tncm91bmQtY29sb3I6cmVkOyB0
ZXh0LWluZGVudDogNGVtOyB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
ICA8ZGl2IGNsYXNzPSJub3JtYWwiPgorICAgIHh4eHg8YnI+eHh4eDxicj54eHh4CisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9Im5vcm1hbCI+CisgICAgeHh4eDxicj54eHh4
PGJyPnh4eHgKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0ibm9ybWFsIj4K
KyAgICB4eHh4PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3h4eHg8YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7eHh4eAorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJu
b3JtYWwiPgorICAgIHh4eHggeHh4eDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt4eHh4Cisg
ICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
dGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzcyNjIyNTYxZjhjODc5YjFm
MGQ1OTFkODVlNjA3NTk2ZTE0ZDEzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+W2NzczMtdGV4dF0gdGV4dC1pbmRlbnQ6IGVhY2gtbGlu
ZTs8L3RpdGxlPgorICAgIDxzdHlsZT4KKyAgICBkaXYgeyBmb250OiAxMHB4IEFoZW0gfQorICAg
IC5ub3JtYWwgeyB3aWR0aDo4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgdGV4dC1pbmRlbnQ6
IDRlbTsgfQorICAgIC5lYWNobGluZSB7IHdpZHRoOjgwcHg7IGJhY2tncm91bmQtY29sb3I6cmVk
OyB0ZXh0LWluZGVudDogNGVtIGVhY2gtbGluZTsgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPCEtLSBub3JtYWwgdGV4dC1pbmRlbnQgLS0+CisgICAgPGRpdiBjbGFz
cz0ibm9ybWFsIj4KKyAgICB4eHh4PGJyPnh4eHg8YnI+eHh4eAorICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8IS0tIHRleHQtaW5kZW50OmVhY2gtbGluZSB3aXRoIGEgc29mdCB3cmFwIGJyZWFr
IC0tPgorICAgIDxkaXYgY2xhc3M9ImVhY2hsaW5lIj4KKyAgICB4eHh4IHh4eHggeHh4eAorICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8IS0tIHRleHQtaW5kZW50OmVhY2gtbGluZSB3aXRoIGEg
Zm9yY2VkIGxpbmUgYnJlYWsgLS0+CisgICAgPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorICAgIHh4
eHg8YnI+eHh4eDxicj54eHh4CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDwhLS0gdGV4dC1p
bmRlbnQ6ZWFjaC1saW5lIHdpdGggYSBzb2Z0IHdyYXAgYnJlYWsgYW5kIGEgZm9yY2VkIGxpbmUg
YnJlYWsgLS0+CisgICAgPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorICAgIHh4eHggeHh4eDxicj54
eHh4CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187774</attachid>
            <date>2013-02-11 22:20:52 -0800</date>
            <delta_ts>2013-02-21 16:27:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130212151720.patch</filename>
            <type>text/plain</type>
            <size>27624</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI3NjMxMjQxZjA5YmRl
NmI4MjI2MzJiNjEwNmQwNGJkNjNiYzVhZS4uMDM0ZWM3ODRkMjQxNjJkOWE3NDg0N2Y0Y2QwNDdk
MWQ2MTZlYjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTAyLTExICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
U3VwcG9ydCB0ZXh0LWluZGVudDplYWNoLWxpbmUgZnJvbSBjc3MzLXRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAyMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJlYWNoLWxpbmUiIGlzIGFkZGVk
IGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy9jc3N3
Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIEl0IG1lYW5zICJJbmRlbnRhdGlvbiBh
ZmZlY3RzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBibG9jaworICAgICAgICBjb250YWluZXIgYXMg
d2VsbCBhcyBlYWNoIGxpbmUgYWZ0ZXIgYSBmb3JjZWQgbGluZSBicmVhaywKKyAgICAgICAgYnV0
IGRvZXMgbm90IGFmZmVjdCBsaW5lcyBhZnRlciBhIHNvZnQgd3JhcCBicmVhay4iCisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sIAorCisgICAgICAg
ICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1NpbXBsZUxlbmd0aFBy
b3BlcnR5SUQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KEFwcGx5UHJvcGVydHlUZXh0SW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVy
dHlUZXh0SW5kZW50OjphcHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6CisgICAgICAgIChMaW5lV2lkdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6
Om5lZWRzVGV4dEluZGVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OnVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKwogMjAxMy0w
Mi0xMSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxjYXZhbGNhbnRpaUBnbWFpbC5jb20+CiAKICAg
ICAgICAgQnVpbGQgZml4OiByMTQyNTQ5IGJyb2tlIEVGTCBidWlsZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCAyMDk4YjFlMzE1N2Y3MjAxMWE3MjU2NWMzYmNmZTI0NzI3MDIyYTJlLi5h
ZTA2MmEyMzBiYWViNzExZWMzYjQ4NmZjNGZkMTE2NzRhZWVkYWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtNTI3LDcgKzUyNyw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBs
ZUxlbmd0aFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBib29sJiBhY2NlCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJn
aW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0SW5kZW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hcmdpbkFmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5CZWZv
cmU6CkBAIC0yMTAwLDggKzIwOTksMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgpOwogICAgICAgICBicmVhazsKIAotICAg
IGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJj
ZW50YWdlPiB8IGluaGVyaXQKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlk
VW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRl
eHRJbmRlbnQ6CisgICAgICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAmJiBbIGhh
bmdpbmcgfHwgZWFjaC1saW5lIF0/CisgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VUZXh0SW5k
ZW50KCk7CisgICAgICAgIGlmICghcGFyc2VkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6ICAg
ICAgICAgIC8vLy8gPHBhZGRpbmctd2lkdGg+IHwgaW5oZXJpdApAQCAtOTAxMCw2ICs5MDEyLDI5
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZVRleHRJbmRlbnQoKQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgYm9vbCBoYXZlVGV4dElu
ZGVudCA9IGZhbHNlOworICAgIGJvb2wgaGF2ZUVhY2hMaW5lID0gZmFsc2U7CisKKyAgICBmb3Ig
KENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7IHZhbHVlOyB2
YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKCFoYXZlRWFjaExpbmUg
JiYgdmFsdWUtPmlkID09IENTU1ZhbHVlRWFjaExpbmUpIHsKKyAgICAgICAgICAgIGxpc3QtPmFw
cGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7Cisg
ICAgICAgICAgICBoYXZlRWFjaExpbmUgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKCFoYXZl
VGV4dEluZGVudCAmJiAhdmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQ
ZXJjZW50KSkgeworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVy
aWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAgaGF2ZVRleHRJbmRlbnQgPSB0cnVlOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghbGlz
dC0+bGVuZ3RoKCkgfHwgIWhhdmVUZXh0SW5kZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBsaXN0OworfQorCiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihi
b29sIGltcG9ydGFudCkKIHsKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExp
bmVCb3hDb250YWluTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkYjllYTk4MTU1NmQx
MzRjNjAxZGI3NjRlZmNkNjljZjA0ZTRhOWJhLi42YjlkYTdkZGM0Yjk5ZmU5MWI1MjBjMzIxYzc2
ZjA2NGU0MTYxYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNTUsNiArMjU1LDggQEAg
cHVibGljOgogICAgIHZvaWQgYWRkVGV4dERlY29yYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiwgYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VU
ZXh0RGVjb3JhdGlvbihDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogCisg
ICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VUZXh0SW5kZW50KCk7CisKICAgICBib29sIHBh
cnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VDYWxjdWxh
dGlvbihDU1NQYXJzZXJWYWx1ZSosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNzU5MjZmNjI3YTM3ZjIw
NmYxMTRmMTZhNzc3MjllOGZkOTM2ZTgwYi4uYzVkY2VlNTU2OWQwYWJjNzAwZGQzZGQ3YzRiYjM2
NmUwMzU2N2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTk5
OCwzICs5OTgsNiBAQCBzbmFwCiBkcmFnCiBuby1kcmFnCiAjZW5kaWYKKworLy8gdGV4dC1pbmRl
bnQKK2VhY2gtbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA0ZDg3OGIy
ZTliMzI1ZTI1ZWUzNmFkOGNiZjJiMjAwZjJmMzgyMTBhLi5iOTQxZTUwNjM0NDAwNWViNjA1YjQy
ZTU2NmJhY2RiYWQyNTE4NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAt
MTc5Miw2ICsxNzkyLDU5IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorY2xhc3MgQXBwbHlQcm9w
ZXJ0eVRleHRJbmRlbnQgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZh
bHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgewor
ICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShzdHlsZVJl
c29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHls
ZSgpLT50ZXh0SW5kZW50KCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlh
bFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAg
eworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpOworICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0
eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAg
ICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSk7CisgICAgICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRlbnRMaW5lID0gUmVuZGVy
U3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpOworICAgICAgICBMZW5ndGggdGV4dEluZGVu
dCA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgpOworCisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LT5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBD
U1NWYWx1ZSogaXRlbSA9IHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAg
ICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFs
dWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRWFjaExpbmUpCisgICAg
ICAgICAgICAgICAgdGV4dEluZGVudExpbmUgPSBUZXh0SW5kZW50RWFjaExpbmU7CisgICAgICAg
ICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkgeworICAgICAgICAgICAg
ICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUo
KSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgICAg
ICAgICBsZW5ndGguc2V0UXVpcmsocHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKTsKKyAg
ICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gbGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCisgICAgICAgICAgICAgICAgdGV4dElu
ZGVudCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7
CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNDYWxjdWxhdGVkUGVyY2Vu
dGFnZVdpdGhMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gTGVuZ3RoKHBy
aW1pdGl2ZVZhbHVlLT5jc3NDYWxjVmFsdWUoKS0+dG9DYWxjVmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpKQorICAgICAgICAgICAgICAg
IHRleHRJbmRlbnQgPSBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCk7
CisgICAgICAgIH0KKworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5k
ZW50TGluZSh0ZXh0SW5kZW50TGluZSk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldFRleHRJbmRlbnQodGV4dEluZGVudCk7CisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5
SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhh
bmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVl
KTsKKyAgICB9Cit9OworCiBjb25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6c2hhcmVk
U3R5bGVCdWlsZGVyKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVpbGRlciwg
c3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKQEAgLTE5MjQsNyArMTk3Nyw3IEBAIFN0eWxlQnVp
bGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RGVjb3JhdGlvblN0eWxlLCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0RGVjb3Jh
dGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OnRleHREZWNvcmF0aW9uU3R5bGUsIFRleHREZWNvcmF0
aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6c2V0VGV4dERlY29yYXRpb25TdHlsZSwgVGV4dERlY29y
YXRpb25TdHlsZSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dERlY29yYXRpb25TdHlsZT46OmNy
ZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
VGV4dEFsaWduTGFzdCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEFsaWduTGFzdCwgJlJlbmRl
clN0eWxlOjp0ZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OnNldFRl
eHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRBbGln
bkxhc3Q+OjpjcmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAotICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8
JlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlUZXh0
SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVu
ZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRl
eHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZs
b3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9u
dERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4
dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3Bl
cnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBF
VGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5z
Zm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCmluZGV4IDI0ODg3NGM4ZjFjYjJiMTE5ZWFkMDFmMTllNDk3MzFmZWI1ODY3ODIuLjk4
MTcyY2ZhODA4NzI2YzJlMTcxMDg2MDU3YzE4NGRkYmE0ZWMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC03Miw3ICs3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8oY29uc3QgUmVuCiAKIGNsYXNzIExpbmVXaWR0aCB7CiBwdWJs
aWM6Ci0gICAgTGluZVdpZHRoKFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSkK
KyAgICBMaW5lV2lkdGgoUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5lLCBib29s
IGlzSW5kZW50ZWRMaW5lKQogICAgICAgICA6IG1fYmxvY2soYmxvY2spCiAgICAgICAgICwgbV91
bmNvbW1pdHRlZFdpZHRoKDApCiAgICAgICAgICwgbV9jb21taXR0ZWRXaWR0aCgwKQpAQCAtODQs
NiArODQsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9zZWdtZW50KDApCiAjZW5kaWYKICAgICAg
ICAgLCBtX2lzRmlyc3RMaW5lKGlzRmlyc3RMaW5lKQorICAgICAgICAsIG1faXNJbmRlbnRlZExp
bmUoaXNJbmRlbnRlZExpbmUpCiAgICAgewogICAgICAgICBBU1NFUlQoYmxvY2spOwogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKQEAgLTEzMSw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIGNv
bnN0IExpbmVTZWdtZW50KiBtX3NlZ21lbnQ7CiAjZW5kaWYKICAgICBib29sIG1faXNGaXJzdExp
bmU7CisgICAgYm9vbCBtX2lzSW5kZW50ZWRMaW5lOwogfTsKIAogc3RhdGljIExheW91dFVuaXQg
bG9naWNhbEhlaWdodEZvckxpbmUoUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5l
LCBMYXlvdXRVbml0IHJlcGxhY2VkSGVpZ2h0ID0gMCkKQEAgLTE0OCw4ICsxNTAsOCBAQCBpbmxp
bmUgdm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdpZHRoKExheW91dFVuaXQgcmVwbGFj
ZWRIZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsSGVp
Z2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodEZvckxp
bmUobV9ibG9jaywgbV9pc0ZpcnN0TGluZSwgcmVwbGFjZWRIZWlnaHQpOwotICAgIG1fbGVmdCA9
IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShoZWlnaHQsIG1faXNGaXJzdExpbmUs
IGxvZ2ljYWxIZWlnaHQpOwotICAgIG1fcmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKGhlaWdodCwgbV9pc0ZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9s
ZWZ0ID0gbV9ibG9jay0+bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbV9pc0luZGVu
dGVkTGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9yaWdodCA9IG1fYmxvY2stPmxvZ2ljYWxS
aWdodE9mZnNldEZvckxpbmUoaGVpZ2h0LCBtX2lzSW5kZW50ZWRMaW5lLCBsb2dpY2FsSGVpZ2h0
KTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAobV9zZWdtZW50KSB7CkBA
IC0yMTEsOCArMjEzLDggQEAgdm9pZCBMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKCkKICAgICAg
ICAgaWYgKGZsb2F0TG9naWNhbEJvdHRvbSA8PSBsYXN0RmxvYXRMb2dpY2FsQm90dG9tKQogICAg
ICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgbmV3TGluZUxlZnQgPSBtX2Jsb2NrLT5sb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUoZmxvYXRMb2dpY2FsQm90dG9tLCBtX2lzRmlyc3RMaW5lKTsKLSAg
ICAgICAgbmV3TGluZVJpZ2h0ID0gbV9ibG9jay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShm
bG9hdExvZ2ljYWxCb3R0b20sIG1faXNGaXJzdExpbmUpOworICAgICAgICBuZXdMaW5lTGVmdCA9
IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1f
aXNJbmRlbnRlZExpbmUpOworICAgICAgICBuZXdMaW5lUmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKGZsb2F0TG9naWNhbEJvdHRvbSwgbV9pc0luZGVudGVkTGluZSk7
CiAgICAgICAgIG5ld0xpbmVXaWR0aCA9IG1heCgwLjBmLCBuZXdMaW5lUmlnaHQgLSBuZXdMaW5l
TGVmdCk7CiAgICAgICAgIGxhc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBmbG9hdExvZ2ljYWxCb3R0
b207CiAgICAgICAgIGlmIChuZXdMaW5lV2lkdGggPj0gbV91bmNvbW1pdHRlZFdpZHRoKQpAQCAt
ODgyLDExICs4ODQsMjEgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlTG9naWNhbFdpZHRoRm9y
QWxpZ25tZW50KGNvbnN0IEVUZXh0QWxpZ24mIHRleHRBbGlnbiwgQmkKICAgICB9CiB9CiAKLXN0
YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMoUmVuZGVyQmxvY2sqIGJsb2Nr
LCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYgbGluZUxvZ2ljYWxSaWdodCwgZmxvYXQm
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJzdExpbmUsIExheW91dFVuaXQgYm94TG9n
aWNhbEhlaWdodCkKK3N0YXRpYyBib29sIG5lZWRzVGV4dEluZGVudChib29sIGZpcnN0TGluZSwg
Ym9vbCBhZnRlckZvcmNlZExpbmVCcmVhaywgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlm
IChmaXJzdExpbmUpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhZnRlckZvcmNlZExp
bmVCcmVhayAmJiBzdHlsZSAmJiBzdHlsZS0+dGV4dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50
RWFjaExpbmUpIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30K
Kworc3RhdGljIHZvaWQgdXBkYXRlTG9naWNhbElubGluZVBvc2l0aW9ucyhSZW5kZXJCbG9jayog
YmxvY2ssIGZsb2F0JiBsaW5lTG9naWNhbExlZnQsIGZsb2F0JiBsaW5lTG9naWNhbFJpZ2h0LCBm
bG9hdCYgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBib29sIGZpcnN0TGluZSwgYm9vbCBpbmRlbnRl
ZExpbmUsIExheW91dFVuaXQgYm94TG9naWNhbEhlaWdodCkKIHsKICAgICBMYXlvdXRVbml0IGxp
bmVMb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodEZvckxpbmUoYmxvY2ssIGZpcnN0TGluZSwg
Ym94TG9naWNhbEhlaWdodCk7Ci0gICAgbGluZUxvZ2ljYWxMZWZ0ID0gYmxvY2stPnBpeGVsU25h
cHBlZExvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9naWNhbEhlaWdodCgpLCBmaXJz
dExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKLSAgICBsaW5lTG9naWNhbFJpZ2h0ID0gYmxvY2st
PnBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoYmxvY2stPmxvZ2ljYWxIZWln
aHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CisgICAgbGluZUxvZ2ljYWxMZWZ0
ID0gYmxvY2stPnBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9n
aWNhbEhlaWdodCgpLCBpbmRlbnRlZExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKKyAgICBsaW5l
TG9naWNhbFJpZ2h0ID0gYmxvY2stPnBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxp
bmUoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgaW5kZW50ZWRMaW5lLCBsaW5lTG9naWNhbEhlaWdo
dCk7CiAgICAgYXZhaWxhYmxlTG9naWNhbFdpZHRoID0gbGluZUxvZ2ljYWxSaWdodCAtIGxpbmVM
b2dpY2FsTGVmdDsKIH0KIApAQCAtODk4LDEwICs5MTAsMTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6
Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGlu
ZUJveCwKICAgICAvLyBDU1MgMi4xOiAiJ1RleHQtaW5kZW50JyBvbmx5IGFmZmVjdHMgYSBsaW5l
IGlmIGl0IGlzIHRoZSBmaXJzdCBmb3JtYXR0ZWQgbGluZSBvZiBhbiBlbGVtZW50LiBGb3IgZXhh
bXBsZSwgdGhlIGZpcnN0IGxpbmUgb2YgYW4gYW5vbnltb3VzIGJsb2NrIAogICAgIC8vIGJveCBp
cyBvbmx5IGFmZmVjdGVkIGlmIGl0IGlzIHRoZSBmaXJzdCBjaGlsZCBvZiBpdHMgcGFyZW50IGVs
ZW1lbnQuIgogICAgIGJvb2wgZmlyc3RMaW5lID0gbGluZUluZm8uaXNGaXJzdExpbmUoKSAmJiAh
KGlzQW5vbnltb3VzQmxvY2soKSAmJiBwYXJlbnQoKS0+Zmlyc3RDaGlsZCgpICE9IHRoaXMpOwor
ICAgIGJvb2wgYWZ0ZXJGb3JjZWRMaW5lQnJlYWsgPSBsaW5lQm94LT5wcmV2Um9vdEJveCgpICYm
IGxpbmVCb3gtPnByZXZSb290Qm94KCktPmVuZHNXaXRoQnJlYWsoKTsKKyAgICBib29sIGluZGVu
dGVkTGluZSA9IG5lZWRzVGV4dEluZGVudChmaXJzdExpbmUsIGFmdGVyRm9yY2VkTGluZUJyZWFr
LCBzdHlsZSgpKTsKICAgICBmbG9hdCBsaW5lTG9naWNhbExlZnQ7CiAgICAgZmxvYXQgbGluZUxv
Z2ljYWxSaWdodDsKICAgICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGg7Ci0gICAgdXBkYXRl
TG9naWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2Fs
UmlnaHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKKyAgICB1cGRhdGVM
b2dpY2FsSW5saW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxS
aWdodCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBmaXJzdExpbmUsIGluZGVudGVkTGluZSwgMCk7
CiAgICAgYm9vbCBuZWVkc1dvcmRTcGFjaW5nOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9
IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0aGlzKTsKQEAgLTkzNyw3ICs5NTEsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGlu
ZShSb290SW5saW5lQm94KiBsaW5lQm94LAogCiAgICAgaWYgKGZpcnN0UnVuICYmIGZpcnN0UnVu
LT5tX29iamVjdC0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94
ID0gdG9SZW5kZXJCb3goZmlyc3RSdW4tPm1fb2JqZWN0KTsKLSAgICAgICAgdXBkYXRlTG9naWNh
bElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQs
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWln
aHQoKSk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnModGhpcywgbGluZUxv
Z2ljYWxMZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGZpcnN0
TGluZSwgaW5kZW50ZWRMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgfQog
CiAgICAgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQobGluZUJveCwg
bGluZUluZm8sIHRleHRBbGlnbiwgbGluZUxvZ2ljYWxMZWZ0LCBhdmFpbGFibGVMb2dpY2FsV2lk
dGgsIGZpcnN0UnVuLCB0cmFpbGluZ1NwYWNlUnVuLCB0ZXh0Qm94RGF0YU1hcCwgdmVydGljYWxQ
b3NpdGlvbkNhY2hlLCB3b3JkTWVhc3VyZW1lbnRzKTsKQEAgLTI1NDMsNyArMjU1Nyw3IEBAIElu
bGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImIHJlCiAgICAgYm9vbCBpbmNsdWRlRW5kV2lkdGggPSB0cnVlOwog
ICAgIExpbmVNaWRwb2ludFN0YXRlJiBsaW5lTWlkcG9pbnRTdGF0ZSA9IHJlc29sdmVyLm1pZHBv
aW50U3RhdGUoKTsKIAotICAgIExpbmVXaWR0aCB3aWR0aChtX2Jsb2NrLCBsaW5lSW5mby5pc0Zp
cnN0TGluZSgpKTsKKyAgICBMaW5lV2lkdGggd2lkdGgobV9ibG9jaywgbGluZUluZm8uaXNGaXJz
dExpbmUoKSwgbmVlZHNUZXh0SW5kZW50KGxpbmVJbmZvLmlzRmlyc3RMaW5lKCksIGxpbmVJbmZv
LnByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSgpLCBtX2Jsb2NrLT5zdHlsZSgpKSk7CiAKICAgICBz
a2lwTGVhZGluZ1doaXRlc3BhY2UocmVzb2x2ZXIsIGxpbmVJbmZvLCBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lLCB3aWR0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCmluZGV4IGNlZmMzYzEyMGUxOTg4ZGViYWE3MjE2ZTEzY2E3YzA3YTk5
MzRiMjEuLmQ1Mjk5YTA3NTNjYTg3OGVlYzU2NzIwNzMzYjU1ODNkZjFlYzViNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDY2LDcg
KzQ2Niw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAKICAgICBpZiAocmFyZUluaGVyaXRl
ZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLmdldCgpKSB7CiAgICAgICAg
IGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVk
RGF0YS0+aGlnaGxpZ2h0Ci0gICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50
ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50CisgICAgICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
bV90ZXh0SW5kZW50CisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5k
ZW50TGluZSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUKICAg
ICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0gb3RoZXIt
PnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8IHJhcmVJ
bmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
PnRleHRTaXplQWRqdXN0CiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJy
ZWFrICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDhjMjUzMmZlM2RlYmY1YzFl
MDA2NGE0ODIyNGZjOTQyYTQ4MmUxMTkuLjhlNTVkMzRlYmMyMTNjNjllN2FlODFiOWQ0Zjk2MzMx
N2Y0NTM0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC01NjcsNyArNTY3LDggQEAgcHVibGljOgogICAgIGZsb2F0IHRleHRBdXRvc2l6aW5n
TXVsdGlwbGllcigpIGNvbnN0IHsgcmV0dXJuIHZpc3VhbC0+bV90ZXh0QXV0b3NpemluZ011bHRp
cGxpZXI7IH0KICNlbmRpZgogCi0gICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50OyB9CisgICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBj
b25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50OyB9CisgICAgVGV4
dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxU
ZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUpOyB9CiAg
ICAgRVRleHRBbGlnbiB0ZXh0QWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4
dEFsaWduPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24pOyB9CiAgICAgRVRleHRUcmFuc2Zv
cm0gdGV4dFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0VHJhbnNm
b3JtPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtKTsgfQogICAgIEVUZXh0RGVjb3Jh
dGlvbiB0ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEVUZXh0RGVjb3JhdGlvbj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zKTsgfQpA
QCAtMTEwNiw3ICsxMTA3LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNldENvbG9y
KGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0aCB2KSB7IFNFVF9W
QVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0KKyAgICB2b2lkIHNldFRleHRJbmRl
bnQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90ZXh0SW5kZW50LCB2
KTsgfQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudExpbmUgdikgeyBTRVRf
VkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5lLCB2KTsgfQogICAgIHZvaWQg
c2V0VGV4dEFsaWduKEVUZXh0QWxpZ24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24g
PSB2OyB9CiAgICAgdm9pZCBzZXRUZXh0VHJhbnNmb3JtKEVUZXh0VHJhbnNmb3JtIHYpIHsgaW5o
ZXJpdGVkX2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSA9IHY7IH0KICAgICB2b2lkIGFkZFRvVGV4dERl
Y29yYXRpb25zSW5FZmZlY3QoRVRleHREZWNvcmF0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90
ZXh0X2RlY29yYXRpb25zIHw9IHY7IH0KQEAgLTE1NjUsNiArMTU2Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxNYXJnaW4oKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9
CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsUGFkZGluZygpIHsgcmV0dXJuIExlbmd0aChGaXhl
ZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUZXh0SW5kZW50KCkgeyByZXR1cm4gTGVu
Z3RoKEZpeGVkKTsgfQorICAgIHN0YXRpYyBUZXh0SW5kZW50TGluZSBpbml0aWFsVGV4dEluZGVu
dExpbmUoKSB7IHJldHVybiBUZXh0SW5kZW50Rmlyc3RMaW5lOyB9CiAgICAgc3RhdGljIEVWZXJ0
aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAg
ICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMg
c2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDhjMmMw
YjU4NmY0YjQ4ZWE5YWQ0MmQwMmFjYmMyNDQyNWUxZDcxMzYuLmU4NzFhMDdjNzM1ZDJmMjVlMjYz
NzY5YTcxNjFkOWIxNDkxZDllZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00OTYsNiArNDk2LDggQEAgZW51
bSBEcmFnZ2FibGVSZWdpb25Nb2RlIHsgRHJhZ2dhYmxlUmVnaW9uTm9uZSwgRHJhZ2dhYmxlUmVn
aW9uRHJhZywgRHJhZ2dhYmxlUmUKIC8vIFJlYXNvbmFibGUgbWF4aW11bSB0byBwcmV2ZW50IGlu
c2FuZSBmb250IHNpemVzIGZyb20gY2F1c2luZyBjcmFzaGVzIG9uIHNvbWUgcGxhdGZvcm1zIChz
dWNoIGFzIFdpbmRvd3MpLgogc3RhdGljIGNvbnN0IGZsb2F0IG1heGltdW1BbGxvd2VkRm9udFNp
emUgPSAxMDAwMDAwLjBmOwogCitlbnVtIFRleHRJbmRlbnRMaW5lIHsgVGV4dEluZGVudEZpcnN0
TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBi
MjE1YWIzNTg3ZTFiZjA2OTdhNTA1ZDdjOGY0ODRjM2E2YzBjMjFlLi5lZTc0Yzk5YzU4ZmJhYWQx
NjA1MmJjZTg0Y2VmZmZjYWUxMTMyYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIENPTVBJTEVfQVNTRVJUKHNpemVvZihTdHlsZVJhcmVJbmhlcml0ZWREYXRhKSA9PSBz
aXplb2YoU2FtZVNpemVBc1N0eWxlUmFyZUluaGVyCiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAgICA6IGxpc3RTdHlsZUltYWdlKFJlbmRlclN0eWxl
Ojppbml0aWFsTGlzdFN0eWxlSW1hZ2UoKSkKICAgICAsIHRleHRTdHJva2VXaWR0aChSZW5kZXJT
dHlsZTo6aW5pdGlhbFRleHRTdHJva2VXaWR0aCgpKQotICAgICwgaW5kZW50KFJlbmRlclN0eWxl
Ojppbml0aWFsVGV4dEluZGVudCgpKQorICAgICwgbV90ZXh0SW5kZW50KFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEluZGVudCgpKQogICAgICwgbV9lZmZlY3RpdmVab29tKFJlbmRlclN0eWxlOjpp
bml0aWFsWm9vbSgpKQogICAgICwgd2lkb3dzKFJlbmRlclN0eWxlOjppbml0aWFsV2lkb3dzKCkp
CiAgICAgLCBvcnBoYW5zKFJlbmRlclN0eWxlOjppbml0aWFsT3JwaGFucygpKQpAQCAtODgsNiAr
ODgsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkK
ICAgICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0
RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAgICAgLCBtX3RleHRP
cmllbnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorICAgICwgbV90ZXh0SW5k
ZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCiAgICAgLCBtX2xp
bmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJveENvbnRhaW4oKSkKICNpZiBF
TkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICwgbV9pbWFnZU9yaWVudGF0aW9uKFJl
bmRlclN0eWxlOjppbml0aWFsSW1hZ2VPcmllbnRhdGlvbigpKQpAQCAtMTM2LDcgKzEzNyw3IEBA
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIHRleHRTaGFkb3coby50ZXh0U2hhZG93ID8g
YWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoKm8udGV4dFNoYWRvdykpIDogbnVsbHB0cikKICAgICAs
IGhpZ2hsaWdodChvLmhpZ2hsaWdodCkKICAgICAsIGN1cnNvckRhdGEoby5jdXJzb3JEYXRhKQot
ICAgICwgaW5kZW50KG8uaW5kZW50KQorICAgICwgbV90ZXh0SW5kZW50KG8ubV90ZXh0SW5kZW50
KQogICAgICwgbV9lZmZlY3RpdmVab29tKG8ubV9lZmZlY3RpdmVab29tKQogICAgICwgd2lkb3dz
KG8ud2lkb3dzKQogICAgICwgb3JwaGFucyhvLm9ycGhhbnMpCkBAIC0xNTgsNiArMTU5LDcgQEAg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBo
YXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0
aW9uKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikKKyAgICAs
IG1fdGV4dEluZGVudExpbmUoby5tX3RleHRJbmRlbnRMaW5lKQogICAgICwgbV9saW5lQm94Q29u
dGFpbihvLm1fbGluZUJveENvbnRhaW4pCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElP
TikKICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihvLm1faW1hZ2VPcmllbnRhdGlvbikKQEAgLTIy
NCw3ICsyMjYsNyBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgc2hhZG93RGF0
YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgaGlnaGxpZ2h0ID09IG8uaGlnaGxpZ2h0CiAgICAg
ICAgICYmIGN1cnNvckRhdGFFcXVpdmFsZW50KGN1cnNvckRhdGEuZ2V0KCksIG8uY3Vyc29yRGF0
YS5nZXQoKSkKLSAgICAgICAgJiYgaW5kZW50ID09IG8uaW5kZW50CisgICAgICAgICYmIG1fdGV4
dEluZGVudCA9PSBvLm1fdGV4dEluZGVudAogICAgICAgICAmJiBtX2VmZmVjdGl2ZVpvb20gPT0g
by5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgJiYgd2lkb3dzID09IG8ud2lkb3dzCiAgICAgICAg
ICYmIG9ycGhhbnMgPT0gby5vcnBoYW5zCkBAIC0yNTIsNiArMjU0LDcgQEAgYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEm
IG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1waGFzaXNN
YXJrCiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9z
aXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmllbnRhdGlv
bgorICAgICAgICAmJiBtX3RleHRJbmRlbnRMaW5lID09IG8ubV90ZXh0SW5kZW50TGluZQogICAg
ICAgICAmJiBtX2xpbmVCb3hDb250YWluID09IG8ubV9saW5lQm94Q29udGFpbgogICAgICAgICAm
JiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5nCiAgICAgICAgICYmIGxv
Y2FsZSA9PSBvLmxvY2FsZQpAQCAtMjkzLDcgKzI5Niw3IEBAIHZvaWQgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mCiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKGxpc3RTdHlsZUlt
YWdlLCAibGlzdFN0eWxlSW1hZ2UiKTsKLSAgICBpbmZvLmFkZE1lbWJlcihpbmRlbnQsICJpbmRl
bnQiKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RleHRJbmRlbnQsICJ0ZXh0SW5kZW50Iik7CiAg
ICAgaW5mby5hZGRNZW1iZXIodGV4dFNoYWRvdywgInRleHRTaGFkb3ciKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihoaWdobGlnaHQsICJoaWdobGlnaHQiKTsKICAgICBpbmZvLmFkZE1lbWJlcihjdXJz
b3JEYXRhLCAiY3Vyc29yRGF0YSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjIyODFmNzcyOTcwN2Y3
YzEzYjQ1OTlhYTc2ZGYwYjU5ZTllNzNhYy4uYTllYmIzODM5ZmVhMDViNzc1ZmVkZGQxMDI1NWJl
Y2RiYjc4OWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAg
ICBBdG9taWNTdHJpbmcgaGlnaGxpZ2h0OyAvLyBBcHBsZS1zcGVjaWZpYyBleHRlbnNpb24gZm9y
IGN1c3RvbSBoaWdobGlnaHQgcmVuZGVyaW5nLgogICAgIAogICAgIFJlZlB0cjxDdXJzb3JMaXN0
PiBjdXJzb3JEYXRhOwotICAgIExlbmd0aCBpbmRlbnQ7CisgICAgTGVuZ3RoIG1fdGV4dEluZGVu
dDsKICAgICBmbG9hdCBtX2VmZmVjdGl2ZVpvb207CiAKICAgICAvLyBQYWdlZCBtZWRpYSBwcm9w
ZXJ0aWVzLgpAQCAtMTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1w
aGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBo
YXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBt
X3RleHRPcmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorICAgIHVuc2lnbmVkIG1f
dGV4dEluZGVudExpbmUgOiAxOyAvLyBUZXh0SW5kZW50TGluZQogICAgIHVuc2lnbmVkIG1fbGlu
ZUJveENvbnRhaW46IDc7IC8vIExpbmVCb3hDb250YWluCiAgICAgLy8gQ1NTIEltYWdlIFZhbHVl
cyBMZXZlbCAzCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODdk
YTgwZjgwODQ1ZDkzZjEyMGMxNGUxMGUwYWIxOWQxMTFlNDQzLi42MGE2OTZkYzgxOTdiNWI3MTMx
NzRkZDIxOWJhZmUwNWE3MGUzMzUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMTEg
IEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbY3NzMy10
ZXh0XSBTdXBwb3J0IHRleHQtaW5kZW50OmVhY2gtbGluZSBmcm9tIGNzczMtdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciB0
ZXh0LWluZGVudDplYWNoLWxpbmUuCisKKyAgICAgICAgKiBmYXN0L2Nzcy90ZXh0LWluZGVudC1l
YWNoLWxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvdGV4dC1p
bmRlbnQtZWFjaC1saW5lLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgZGVsZXRpb25VSSB0ZXN0cyBpbnRv
IHBsYXRmb3JtL21hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdGV4dC1pbmRl
bnQtZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy90ZXh0LWlu
ZGVudC1lYWNoLWxpbmUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWM3OGI4ODYwNTA5MzJh
M2NjNGMwNWViNzZhZjQwNDExZTE2Y2E1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdGV4dC1pbmRlbnQtZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5bY3NzMy10ZXh0XSB0ZXh0LWluZGVu
dDogZWFjaC1saW5lOzwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgIGRpdiB7IGZvbnQ6IDEwcHgg
QWhlbSB9CisgICAgLm5vcm1hbCB7IHdpZHRoOjgwcHg7IGJhY2tncm91bmQtY29sb3I6cmVkOyB0
ZXh0LWluZGVudDogNGVtOyB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
ICA8ZGl2IGNsYXNzPSJub3JtYWwiPgorICAgIHh4eHg8YnI+eHh4eDxicj54eHh4CisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9Im5vcm1hbCI+CisgICAgeHh4eDxicj54eHh4
PGJyPnh4eHgKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0ibm9ybWFsIj4K
KyAgICB4eHh4PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3h4eHg8YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7eHh4eAorICAgIDwvZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzPSJu
b3JtYWwiPgorICAgIHh4eHggeHh4eDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt4eHh4Cisg
ICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
dGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzcyNjIyNTYxZjhjODc5YjFm
MGQ1OTFkODVlNjA3NTk2ZTE0ZDEzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+W2NzczMtdGV4dF0gdGV4dC1pbmRlbnQ6IGVhY2gtbGlu
ZTs8L3RpdGxlPgorICAgIDxzdHlsZT4KKyAgICBkaXYgeyBmb250OiAxMHB4IEFoZW0gfQorICAg
IC5ub3JtYWwgeyB3aWR0aDo4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsgdGV4dC1pbmRlbnQ6
IDRlbTsgfQorICAgIC5lYWNobGluZSB7IHdpZHRoOjgwcHg7IGJhY2tncm91bmQtY29sb3I6cmVk
OyB0ZXh0LWluZGVudDogNGVtIGVhY2gtbGluZTsgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPCEtLSBub3JtYWwgdGV4dC1pbmRlbnQgLS0+CisgICAgPGRpdiBjbGFz
cz0ibm9ybWFsIj4KKyAgICB4eHh4PGJyPnh4eHg8YnI+eHh4eAorICAgIDwvZGl2PgorICAgIDxi
cj4KKyAgICA8IS0tIHRleHQtaW5kZW50OmVhY2gtbGluZSB3aXRoIGEgc29mdCB3cmFwIGJyZWFr
IC0tPgorICAgIDxkaXYgY2xhc3M9ImVhY2hsaW5lIj4KKyAgICB4eHh4IHh4eHggeHh4eAorICAg
IDwvZGl2PgorICAgIDxicj4KKyAgICA8IS0tIHRleHQtaW5kZW50OmVhY2gtbGluZSB3aXRoIGEg
Zm9yY2VkIGxpbmUgYnJlYWsgLS0+CisgICAgPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorICAgIHh4
eHg8YnI+eHh4eDxicj54eHh4CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDwhLS0gdGV4dC1p
bmRlbnQ6ZWFjaC1saW5lIHdpdGggYSBzb2Z0IHdyYXAgYnJlYWsgYW5kIGEgZm9yY2VkIGxpbmUg
YnJlYWsgLS0+CisgICAgPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorICAgIHh4eHggeHh4eDxicj54
eHh4CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189632</attachid>
            <date>2013-02-21 16:27:51 -0800</date>
            <delta_ts>2013-02-24 17:33:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130222092409.patch</filename>
            <type>text/plain</type>
            <size>33900</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWJlYzVlMmIyNDI3M2Iy
ODgwZDE3ZDQxYzUwNTcxOTkxYTU4NjdlYi4uZGFmYmI0NmI1NWUwYTNhM2YyZDY2NjVlZDkxZDA2
MTVjZTBmYjJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTIxICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyBlYWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAiZWFjaC1saW5l
IiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBUaGlzIHBhdGNoIGlz
IHRoZSBwYXJzaW5nIHBhcnQgdG8gc3VwcG9ydCB0ZXh0LWluZGVudDplYWNoLWxpbmUuCisKKyAg
ICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxp
bmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZSBh
ZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAgICAgICBub3QgYWZmZWN0IGxp
bmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAgICBJdCBpcyBpbXBsZW1lbnRl
ZCB1bmRlciBFTkFCTEVfQ1NTM19URVhULgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlU
ZXh0SW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6YXBwbHlJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWls
ZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSk6CisKIDIwMTMtMDItMjEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBdXRvZ2VuZXJhdGUgU2V0dGluZ3MgdGhhdCBjYWxsIHNldE5lZWRzUmVjYWxjU3R5
bGVJbkFsbEZyYW1lcyB3aGVuIHNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAzMWFkNzM2M2FiY2YyZjg4NGUxMWQwNDgy
NmM1ODA2NDA4ZTA4ZDdkLi42OTg1YzRhNmVmYjE1MmQyZGVkZDZjMTgwY2E1ZjYxZjIxNGMyMWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcApAQCAtMjE2Myw4ICsyMTYzLDE4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlUZXh0SW5kZW50OiB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0g
Q1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICAgICAgbGlzdC0+
YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnRleHRJbmRlbnQo
KSwgc3R5bGUuZ2V0KCkpKTsKKyAgICAgICAgICAgIGlmIChzdHlsZS0+dGV4dEluZGVudExpbmUo
KSA9PSBUZXh0SW5kZW50RWFjaExpbmUpCisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUVhY2hMaW5lKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KKyNlbHNlCiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OgogICAgICAgICAgICAgcmV0dXJuIHpvb21B
ZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUuZ2V0
KCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OgogICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlRm9yU2hhZG93KHN0eWxlLT50ZXh0U2hhZG93KCksIHByb3BlcnR5
SUQsIHN0eWxlLmdldCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmc6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDAxNGE2NmJjY2Q4ZmFhMzVkNGUzMzllNjAy
OGQ5YjAzM2E3MzFiYWUuLjY5MjdlZmRhYzkzZmQ0OGMxODg1Mjk4NTUxZGU3NGM4ZGRiZTE2Nzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01ODgsNyArNTg4LDkgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SWQsIGJvb2wmIGFjY2UKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKICAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6CisjaWYg
IUVOQUJMRShDU1MzX1RFWFQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6CisjZW5k
aWYKICAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJnaW5BZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpAQCAt
MjE2Miw5ICsyMTY0LDE4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoKTsKICAgICAgICAgYnJlYWs7CiAKKyNpZiBFTkFCTEUo
Q1NTM19URVhUKQorICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OgorICAgICAgICAvLyBb
IDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gJiYgZWFjaC1saW5lPyB8IGluaGVyaXQKKyAgICAg
ICAgcGFyc2VkVmFsdWUgPSBwYXJzZVRleHRJbmRlbnQoKTsKKyAgICAgICAgaWYgKCFwYXJzZWRW
YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisjZWxzZQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxw
ZXJjZW50YWdlPiB8IGluaGVyaXQKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSk7CiAgICAgICAgIGJyZWFrOworI2Vu
ZGlmCiAKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDogICAgICAgICAgLy8vLyA8cGFk
ZGluZy13aWR0aD4gfCBpbmhlcml0CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdSaWdodDog
ICAgICAgIC8vICAgV2hpY2ggaXMgZGVmaW5lZCBhcwpAQCAtOTE0NCw2ICs5MTU1LDI5IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50KQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitQYXNzUmVmUHRyPENT
U1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQoKQoreworICAgIFJlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7
CisKKyAgICBib29sIGhhc1BhcnNlZFRleHRJbmRlbnQgPSBmYWxzZTsKKyAgICBmb3IgKENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7IHZhbHVlOyB2YWx1ZSA9
IG1fdmFsdWVMaXN0LT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1
ZUVhY2hMaW5lKQorICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUVhY2hMaW5lKSk7CisgICAgICAgIGVsc2UgaWYgKCFo
YXNQYXJzZWRUZXh0SW5kZW50ICYmICF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0
aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAgICBoYXNQYXJzZWRUZXh0SW5kZW50
ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICBpZiAoIWhhc1BhcnNlZFRleHRJbmRlbnQgfHwgIWxpc3QtPmxlbmd0aCgpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiBsaXN0OworfQorI2VuZGlmCisKIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KQogewogICAgIExpbmVCb3hD
b250YWluIGxpbmVCb3hDb250YWluID0gTGluZUJveENvbnRhaW5Ob25lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCmluZGV4IGRjYmEwMzM3NzMyZTI1NjY0M2I0MTM5NTQ2OWYxNjlhYTEwMzRkZTIuLmQ1
MjExMDM1OTJmZTAwYjJkYmZlOTkyZmJiMTI5M2FjZTk4MWUwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKQEAgLTI2Miw2ICsyNjIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVGV4dERlY29y
YXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBQYXNzUmVmUHRyPENTU1ZhbHVlPiwgYm9vbCBp
bXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VUZXh0RGVjb3JhdGlvbihDU1NQcm9wZXJ0eUlEIHBy
b3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBQYXNz
UmVmUHRyPENTU1ZhbHVlTGlzdD4gcGFyc2VUZXh0SW5kZW50KCk7CisjZW5kaWYKKyAgICAKICAg
ICBib29sIHBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFy
c2VDYWxjdWxhdGlvbihDU1NQYXJzZXJWYWx1ZSosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVS
YW5nZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNzU5MjZm
NjI3YTM3ZjIwNmYxMTRmMTZhNzc3MjllOGZkOTM2ZTgwYi4uYTU0Y2QwNmY1MDE0NDJjY2Y2MmQ0
OGU0OGQ0OTFkN2U4ZjdlZTM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KQEAgLTk5OCwzICs5OTgsOSBAQCBzbmFwCiBkcmFnCiBuby1kcmFnCiAjZW5kaWYKKworI2lm
IGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkgJiYgRU5BQkxFX0NTUzNfVEVYVAorLy8gdGV4dC1p
bmRlbnQKK2VhY2gtbGluZQorI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAK
aW5kZXggMWJiNjEwNGVmOWUyYTY4ZTM3YWFlMmQxY2M4MGRkMjFiYjQyMjgxZi4uNmY0YzlkOTU0
YzM2NWM4MTU5ZTg4MjVmNjE5MDBmYTI3Y2M3ZjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlci5jcHAKQEAgLTE3OTgsNiArMTc5OCw2MSBAQCBwdWJsaWM6CiB9OwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoQ1NTM19URVhUKQorY2xhc3MgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQgeworcHVi
bGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0
eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSkKKyAgICB7CisgICAgICAgIHN0YXRlLnN0eWxlKCkt
PnNldFRleHRJbmRlbnRMaW5lKHN0YXRlLnBhcmVudFN0eWxlKCktPnRleHRJbmRlbnRMaW5lKCkp
OworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHN0YXRlLnBhcmVudFN0eWxl
KCktPnRleHRJbmRlbnQoKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFs
VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlcjo6U3RhdGUmIHN0YXRlKQorICAgIHsK
KyAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6Omlu
aXRpYWxUZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VGV4dElu
ZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKSk7CisgICAgfQorCisgICAgc3Rh
dGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYg
c3RhdGUsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlzVmFs
dWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiB2
YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgIFRl
eHRJbmRlbnRMaW5lIHRleHRJbmRlbnRMaW5lID0gUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5k
ZW50TGluZSgpOworICAgICAgICBMZW5ndGggdGV4dEluZGVudCA9IFJlbmRlclN0eWxlOjppbml0
aWFsVGV4dEluZGVudCgpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVM
aXN0LT5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IHZhbHVl
TGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAgICAgICAgICAgIGlmICghaXRlbS0+
aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlRWFjaExpbmUpCisgICAgICAgICAgICAgICAgdGV4dEluZGVu
dExpbmUgPSBUZXh0SW5kZW50RWFjaExpbmU7CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+aXNMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBw
cmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0YXRlLnN0eWxlKCksIHN0YXRl
LnJvb3RFbGVtZW50U3R5bGUoKSwgc3RhdGUuc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAg
ICAgICAgICAgICAgICBsZW5ndGguc2V0UXVpcmsocHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1
ZSgpKTsKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gbGVuZ3RoOworICAgICAgICAgICAg
fSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpCisgICAgICAgICAgICAg
ICAgdGV4dEluZGVudCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwg
UGVyY2VudCk7CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNDYWxjdWxh
dGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0g
TGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jc3NDYWxjVmFsdWUoKS0+dG9DYWxjVmFsdWUoc3RhdGUu
c3R5bGUoKSwgc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCBzdGF0ZS5zdHlsZSgpLT5lZmZlY3Rp
dmVab29tKCkpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZpZXdw
b3J0UGVyY2VudGFnZUxlbmd0aCgpKQorICAgICAgICAgICAgICAgIHRleHRJbmRlbnQgPSBwcmlt
aXRpdmVWYWx1ZS0+dmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCk7CisgICAgICAgIH0KKworICAg
ICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZSh0ZXh0SW5kZW50TGluZSk7Cisg
ICAgICAgIHN0YXRlLnN0eWxlKCktPnNldFRleHRJbmRlbnQodGV4dEluZGVudCk7CisgICAgfQor
CisgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0
aWFsVmFsdWUsICZhcHBseVZhbHVlKTsKKyAgICB9Cit9OworI2VuZGlmCisKIGNvbnN0IFN0eWxl
QnVpbGRlciYgU3R5bGVCdWlsZGVyOjpzaGFyZWRTdHlsZUJ1aWxkZXIoKQogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3R5bGVCdWlsZGVyLCBzdHlsZUJ1aWxkZXJJbnN0YW5jZSwgKCkpOwpA
QCAtMTkyOSw4ICsxOTg0LDEwIEBAIFN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBz
ZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbkxpbmUsIEFw
cGx5UHJvcGVydHlUZXh0RGVjb3JhdGlvbjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9w
ZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvblN0eWxlLCBBcHBseVBy
b3BlcnR5RGVmYXVsdDxUZXh0RGVjb3JhdGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OnRleHREZWNv
cmF0aW9uU3R5bGUsIFRleHREZWNvcmF0aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6c2V0VGV4dERl
Y29yYXRpb25TdHlsZSwgVGV4dERlY29yYXRpb25TdHlsZSwgJlJlbmRlclN0eWxlOjppbml0aWFs
VGV4dERlY29yYXRpb25TdHlsZT46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dEFsaWduTGFzdCwgQXBwbHlQcm9wZXJ0eURlZmF1
bHQ8VGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjp0ZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25M
YXN0LCAmUmVuZGVyU3R5bGU6OnNldFRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRleHRBbGlnbkxhc3Q+OjpjcmVhdGVIYW5kbGVyKCkpOwotI2VuZGlm
IC8vIENTUzNfVEVYVAorICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRl
bnQsIEFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOworI2Vsc2UKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5
TGVuZ3RoPCZSZW5kZXJTdHlsZTo6dGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0SW5k
ZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50Pjo6Y3JlYXRlSGFuZGxlcigpKTsK
KyNlbmRpZiAvLyBDU1MzX1RFWFQKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlU
ZXh0T3ZlcmZsb3csIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRPdmVyZmxvdywgJlJlbmRlclN0
eWxlOjp0ZXh0T3ZlcmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjpzZXRUZXh0T3Zl
cmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93Pjo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0
UmVuZGVyaW5nLCBBcHBseVByb3BlcnR5Rm9udDxUZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNj
cmlwdGlvbjo6dGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRSZW5k
ZXJpbmdNb2RlLCBBdXRvVGV4dFJlbmRlcmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybSwgQXBwbHlQcm9wZXJ0eURl
ZmF1bHQ8RVRleHRUcmFuc2Zvcm0sICZSZW5kZXJTdHlsZTo6dGV4dFRyYW5zZm9ybSwgRVRleHRU
cmFuc2Zvcm0sICZSZW5kZXJTdHlsZTo6c2V0VGV4dFRyYW5zZm9ybSwgRVRleHRUcmFuc2Zvcm0s
ICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRUcmFuc2Zvcm0+OjpjcmVhdGVIYW5kbGVyKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXgg
YmE1ZDY2MDNkNmFmODE3NWY4MjcyYjAwNGUwN2ZiYTk2NjYzNmU0Ny4uYTAwZTRmNjIwYzY5MmEy
M2FjZTYxMThmYTI3YTg5Zjc0OTk1Mjc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00ODEsNiArNDgxLDkgQEAgU3R5bGVEaWZmZXJl
bmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQm
IGNoYW5nZWRDb24KICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJh
cmVJbmhlcml0ZWREYXRhLmdldCgpKSB7CiAgICAgICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+
aGlnaGxpZ2h0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0CiAgICAgICAg
ICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVk
RGF0YS0+aW5kZW50CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgICAgIHx8IHJhcmVJ
bmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0
YS0+bV90ZXh0SW5kZW50TGluZQorI2VuZGlmCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVk
RGF0YS0+bV9lZmZlY3RpdmVab29tICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9lZmZl
Y3RpdmVab29tCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1
c3QgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdAogICAgICAgICAg
ICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPndvcmRCcmVhayAhPSBvdGhlci0+cmFyZUluaGVyaXRl
ZERhdGEtPndvcmRCcmVhawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaAppbmRleCA3NmQ4YjhkOGMzMmUyZjRjZGYwMjU4MDZlMDEwZWNkMWMwMTdhZmFjLi41
OTY3ZmViYTM4MDc4YjY1ZDg4M2NkNzM2YjBjZTdkZTAxNjgzYjM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNTU5LDYgKzU1OSw5IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiBy
YXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50OyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBU
ZXh0SW5kZW50TGluZSB0ZXh0SW5kZW50TGluZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PFRleHRJbmRlbnRMaW5lPihyYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50TGluZSk7IH0K
KyNlbmRpZgogICAgIEVUZXh0QWxpZ24gdGV4dEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RVRleHRBbGlnbj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2FsaWduKTsgfQogICAgIEVU
ZXh0VHJhbnNmb3JtIHRleHRUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxF
VGV4dFRyYW5zZm9ybT4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSk7IH0KICAgICBF
VGV4dERlY29yYXRpb24gdGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxFVGV4dERlY29yYXRpb24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0
aW9ucyk7IH0KQEAgLTEwOTgsNiArMTEwMSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q29s
b3IoY29uc3QgQ29sb3ImKTsKICAgICB2b2lkIHNldFRleHRJbmRlbnQoTGVuZ3RoIHYpIHsgU0VU
X1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgaW5kZW50LCB2KTsgfQorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgdm9pZCBzZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50TGluZSB2KSB7IFNFVF9W
QVIocmFyZUluaGVyaXRlZERhdGEsIG1fdGV4dEluZGVudExpbmUsIHYpOyB9CisjZW5kaWYKICAg
ICB2b2lkIHNldFRleHRBbGlnbihFVGV4dEFsaWduIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0
X2FsaWduID0gdjsgfQogICAgIHZvaWQgc2V0VGV4dFRyYW5zZm9ybShFVGV4dFRyYW5zZm9ybSB2
KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF90cmFuc2Zvcm0gPSB2OyB9CiAgICAgdm9pZCBhZGRU
b1RleHREZWNvcmF0aW9uc0luRWZmZWN0KEVUZXh0RGVjb3JhdGlvbiB2KSB7IGluaGVyaXRlZF9m
bGFncy5fdGV4dF9kZWNvcmF0aW9ucyB8PSB2OyB9CkBAIC0xNTYzLDYgKzE1NjksOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsTWFyZ2luKCkgeyByZXR1cm4gTGVuZ3RoKEZp
eGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFBhZGRpbmcoKSB7IHJldHVybiBMZW5n
dGgoRml4ZWQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVGV4dEluZGVudCgpIHsgcmV0
dXJuIExlbmd0aChGaXhlZCk7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHN0YXRpYyBU
ZXh0SW5kZW50TGluZSBpbml0aWFsVGV4dEluZGVudExpbmUoKSB7IHJldHVybiBUZXh0SW5kZW50
Rmlyc3RMaW5lOyB9CisjZW5kaWYKICAgICBzdGF0aWMgRVZlcnRpY2FsQWxpZ24gaW5pdGlhbFZl
cnRpY2FsQWxpZ24oKSB7IHJldHVybiBCQVNFTElORTsgfQogICAgIHN0YXRpYyBzaG9ydCBpbml0
aWFsV2lkb3dzKCkgeyByZXR1cm4gMjsgfQogICAgIHN0YXRpYyBzaG9ydCBpbml0aWFsT3JwaGFu
cygpIHsgcmV0dXJuIDI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggOGMyYzBiNTg2ZjRiNDhlYTlhZDQyZDAy
YWNiYzI0NDI1ZTFkNzEzNi4uY2YzZjljMGNjMWU3Y2FjOGVmMmE2OTU5ZDE2YjY3NGViODU2ZGEy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgKQEAgLTQ5Niw2ICs0OTYsMTAgQEAgZW51bSBEcmFnZ2FibGVSZWdpb25N
b2RlIHsgRHJhZ2dhYmxlUmVnaW9uTm9uZSwgRHJhZ2dhYmxlUmVnaW9uRHJhZywgRHJhZ2dhYmxl
UmUKIC8vIFJlYXNvbmFibGUgbWF4aW11bSB0byBwcmV2ZW50IGluc2FuZSBmb250IHNpemVzIGZy
b20gY2F1c2luZyBjcmFzaGVzIG9uIHNvbWUgcGxhdGZvcm1zIChzdWNoIGFzIFdpbmRvd3MpLgog
c3RhdGljIGNvbnN0IGZsb2F0IG1heGltdW1BbGxvd2VkRm9udFNpemUgPSAxMDAwMDAwLjBmOwog
CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKK2VudW0gVGV4dEluZGVudExpbmUgeyBUZXh0SW5kZW50
Rmlyc3RMaW5lLCBUZXh0SW5kZW50RWFjaExpbmUgfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZW5kZXJTdHlsZUNvbnN0YW50c19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAKaW5kZXggYjIxNWFiMzU4N2UxYmYwNjk3YTUwNWQ3YzhmNDg0YzNhNmMwYzIxZS4uOTg5
YWIxOTk0ODE3YTY3NDFiNzhhMTZmYmRjYWQ1M2ZmZWMwMzU1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNw
cApAQCAtODgsNiArODgsOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKCkKICAgICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUp
CiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAg
ICAgLCBtX3RleHRPcmllbnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgLCBtX3RleHRJbmRlbnRMaW5lKFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEluZGVudExpbmUoKSkKKyNlbmRpZgogICAgICwgbV9saW5lQm94Q29udGFpbihS
ZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVCb3hDb250YWluKCkpCiAjaWYgRU5BQkxFKENTU19JTUFH
RV9PUklFTlRBVElPTikKICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihSZW5kZXJTdHlsZTo6aW5p
dGlhbEltYWdlT3JpZW50YXRpb24oKSkKQEAgLTE1OCw2ICsxNjEsOSBAQCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRl
ZERhdGEmIG8pCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKG8udGV4dEVtcGhhc2lzTWFyaykKICAg
ICAsIHRleHRFbXBoYXNpc1Bvc2l0aW9uKG8udGV4dEVtcGhhc2lzUG9zaXRpb24pCiAgICAgLCBt
X3RleHRPcmllbnRhdGlvbihvLm1fdGV4dE9yaWVudGF0aW9uKQorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgLCBtX3RleHRJbmRlbnRMaW5lKG8ubV90ZXh0SW5kZW50TGluZSkKKyNlbmRpZgog
ICAgICwgbV9saW5lQm94Q29udGFpbihvLm1fbGluZUJveENvbnRhaW4pCiAjaWYgRU5BQkxFKENT
U19JTUFHRV9PUklFTlRBVElPTikKICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihvLm1faW1hZ2VP
cmllbnRhdGlvbikKQEAgLTI1Miw2ICsyNTgsOSBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAg
ICAgICAgJiYgdGV4dEVtcGhhc2lzTWFyayA9PSBvLnRleHRFbXBoYXNpc01hcmsKICAgICAgICAg
JiYgdGV4dEVtcGhhc2lzUG9zaXRpb24gPT0gby50ZXh0RW1waGFzaXNQb3NpdGlvbgogICAgICAg
ICAmJiBtX3RleHRPcmllbnRhdGlvbiA9PSBvLm1fdGV4dE9yaWVudGF0aW9uCisjaWYgRU5BQkxF
KENTUzNfVEVYVCkKKyAgICAgICAgJiYgbV90ZXh0SW5kZW50TGluZSA9PSBvLm1fdGV4dEluZGVu
dExpbmUKKyNlbmRpZgogICAgICAgICAmJiBtX2xpbmVCb3hDb250YWluID09IG8ubV9saW5lQm94
Q29udGFpbgogICAgICAgICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3Ry
aW5nCiAgICAgICAgICYmIGxvY2FsZSA9PSBvLmxvY2FsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjIy
ODFmNzcyOTcwN2Y3YzEzYjQ1OTlhYTc2ZGYwYjU5ZTllNzNhYy4uNjc4NWEyMDkxNWIxZmQ5YWEy
OGFhODNkN2JmNTE4OTcyZjE3M2QxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0xMDEsNiArMTAxLDkg
QEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc01hcmsgOiAzOyAvLyBUZXh0RW1w
aGFzaXNNYXJrCiAgICAgdW5zaWduZWQgdGV4dEVtcGhhc2lzUG9zaXRpb24gOiAxOyAvLyBUZXh0
RW1waGFzaXNQb3NpdGlvbgogICAgIHVuc2lnbmVkIG1fdGV4dE9yaWVudGF0aW9uIDogMjsgLy8g
VGV4dE9yaWVudGF0aW9uCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICB1bnNpZ25lZCBtX3Rl
eHRJbmRlbnRMaW5lIDogMTsgLy8gVGV4dEluZGVudEVhY2hMaW5lCisjZW5kaWYKICAgICB1bnNp
Z25lZCBtX2xpbmVCb3hDb250YWluOiA3OyAvLyBMaW5lQm94Q29udGFpbgogICAgIC8vIENTUyBJ
bWFnZSBWYWx1ZXMgTGV2ZWwgMwogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjg4ZGY5NzAxZDQzYjIzMTdiZTk2YjdhMWU1N2UxZjkzNTQyZjg0My4uZDU3Yjg0NDJh
ZmNjMmUxMzE2NmU0MzFlMzQ0OWIzZWZlOTEyNWRjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisy
MDEzLTAyLTIxICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW2NzczMtdGV4dF0gUGFyc2luZyBlYWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZy
b20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDkwMjEKKworICAgICAgICAiZWFjaC1saW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRl
bnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNl
YWNoLWxpbmUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAob3duVmFsdWVUZXN0KToKKyAgICAgICAgKGlu
aGVyaXRhbmNlVGVzdCk6CisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RFbGVtZW50U3R5bGUpOgorICAgICAgICAodGVz
dENvbXB1dGVkU3R5bGUpOgorICAgICAgICAodmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgIChp
bnZhbGlkVmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMt
MDItMjEgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZWJhc2Vs
aW5lIDQgU1ZHIHRlc3RzIGFmdGVyIGFuIGFzcGVjdCByYXRpbyBjaGFuZ2UgaW4gcjE0MzM4OQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk2MjBiZGYzNmQzMWNmNjgxYjZlODZmMzY3OTIxYTFmMDA4ODIyZmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0NCBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBw
cm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWU6CitQQVNTIGNvbXB1dGVkU3R5
bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworVmFsdWUgJzEwZW0nOgorUEFTUyBlLnN0eWxl
LnRleHRJbmRlbnQgaXMgJzEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcx
MDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcxMDBweCcKKworVmFsdWUgJzEwZW0gZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0
SW5kZW50IGlzICcxMGVtIGVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcxMGVtIGVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcxMDBweCBlYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHggZWFjaC1saW5lJworCitWYWx1ZSAn
ZWFjaC1saW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJ2VhY2gtbGluZSAx
MGVtJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJ2Vh
Y2gtbGluZSAxMGVtJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IGVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcxMDBweCBlYWNoLWxpbmUnCisKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwbSc6
CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0
SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnZWFjaC1saW5lJzoK
K1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJ
bmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1p
bmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmE4NTZmZWJiNjU5ZThi
MTIzOTIyZDEwZmUzYzc3OTg1ZDE2MTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50IGlzIHBy
b3Blcmx5IGluaGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcx
MHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEwcHgg
ZWFjaC1saW5lJzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggZWFjaC1saW5lJworUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSBpcyAnMTBweCBlYWNoLWxpbmUnCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4IGVhY2gt
bGluZScsIHdoaWxlIGNoaWxkIGlzICcxMHB4JzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggZWFj
aC1saW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQxYjk2NDcxMDc4ZDI3ZTE2MmQ4
MzBhMzkwYmViYTM2NThjOWI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBp
ZD0iYW5jZXN0b3IiPjxkaXYgaWQ9ImNoaWxkIj48L2Rpdj48L2Rpdj4KKyAgPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcyI+
PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmUyMTVhOGNlYjZiOGViMGUxN2FmOTQxNDZiY2M1
N2ViMDA5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCIgc3R5bGU9ImZvbnQ6
IDEwcHggQWhlbSI+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtaW5oZXJpdGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMWVlMWU5ODMzMGNkYzFiYmFiNmFk
YjAyOGUzMjk3M2JmYzBlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCkBAIC0wLDAgKzEsMzEgQEAK
K2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUsIGNfdmFsdWUpCit7CisgICAgc2hv
dWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIiwgICInIiArIGFfdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSIsICAiJyIgKyBjX3ZhbHVlICsgIiciKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0
aW9uIG93blZhbHVlVGVzdChhX3ZhbHVlLCBjX3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBv
ZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAiJywgd2hpbGUgY2hpbGQgaXMgJyIgKyBjX3Zh
bHVlICsgIic6Iik7CisgICAgYW5jZXN0b3Iuc3R5bGUudGV4dEluZGVudCA9IGFfdmFsdWU7Cisg
ICAgY2hpbGQuc3R5bGUudGV4dEluZGVudCA9IGNfdmFsdWU7CisgICAgdGVzdENvbXB1dGVkU3R5
bGUoYV92YWx1ZSwgY192YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIGluaGVyaXRhbmNlVGVzdChhX3Zh
bHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAi
JzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICB0ZXN0
Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBhX3ZhbHVlKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMg
dGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFsdWUgb2YgdGV4dC1pbmRlbnQgaXMgcHJvcGVybHkgaW5o
ZXJpdGVkIHRvIHRoZSBjaGlsZC4iKTsKKworYW5jZXN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYW5jZXN0b3InKTsKK2NoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoaWxk
Jyk7CisKK2luaGVyaXRhbmNlVGVzdCgiMTBweCIpOworaW5oZXJpdGFuY2VUZXN0KCIxMHB4IGVh
Y2gtbGluZSIpOworCitvd25WYWx1ZVRlc3QoIjEwcHggZWFjaC1saW5lIiwgIjEwcHgiKTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUyY2I0MmE3NjE3NTcwZGU4NjVj
MTAyYjRjMGIzYTlkNzgxZjMxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpAQCAtMCwwICsxLDQ4IEBACitmdW5jdGlv
biB0ZXN0RWxlbWVudFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5Q1NTLCB2YWx1ZSkKK3sKKyAg
ICBzaG91bGRCZSgiZS5zdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIpOwor
ICAgIHNob3VsZEJlKCJlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyAr
ICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5
bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAgIGNvbXB1dGVkU3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLCBudWxsKTsKKyAgICBzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJl
KCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyArICInKSIs
ICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdmFsdWVTZXR0aW5nVGVzdCh2YWx1
ZSwgZXhwZWN0ZWRWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgJyIgKyB2YWx1ZSArICInOiIp
OworICAgIGUuc3R5bGUudGV4dEluZGVudCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUo
InRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCB2YWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5
bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBleHBlY3RlZFZhbHVlKTsKKyAgICBkZWJ1
ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBkZWZh
dWx0VmFsdWUpCit7CisgICAgZGVidWcoIkludmFsaWQgdmFsdWUgdGVzdCAtICciICsgdmFsdWUg
KyAiJzoiKTsKKyAgICBlLnN0eWxlLndlYmtpdFRleHRBbGlnbkxhc3QgPSB2YWx1ZTsKKyAgICB0
ZXN0RWxlbWVudFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVl
KTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRl
ZmF1bHRWYWx1ZSk7CisgICAgZGVidWcoJycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBm
cm9tIENTUzMgVGV4dC4iKTsKKworZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7
CisKK2RlYnVnKCJUZXN0IHRoZSBpbml0aWFsIHZhbHVlOiIpOwordGVzdENvbXB1dGVkU3R5bGUo
InRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCAnMHB4Jyk7CitkZWJ1ZygnJyk7CisKK3ZhbHVl
U2V0dGluZ1Rlc3QoJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gZWFj
aC1saW5lJywgJzEwMHB4IGVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnZWFjaC1saW5l
IDEwZW0nLCAnMTAwcHggZWFjaC1saW5lJyk7CitkZWJ1ZygnJyk7CisKK2RlZmF1bHRWYWx1ZSA9
ICcwcHgnCitlLnN0eWxlLnRleHRJbmRlbnQgPSBkZWZhdWx0VmFsdWU7CitpbnZhbGlkVmFsdWVT
ZXR0aW5nVGVzdCgnMTBtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0
KCdlYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjNiZTc5MjljNmY5YThmOWFkOThmNjk4OGI0
YTEwOTdiOWM1OWI5Yi4uNzI0ZDc5OGZjNDM4M2Y0MGZjYjdiODk1M2FmYTZmMTQ5NmIzNWNkZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yMjUsNiArMjI1LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVu
dGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5B
QkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50CiAKICMgQ2hyb21pdW0gZG9lcyBub3Qgc3VwcG9ydCBzbWFydCBwYXN0aW5nIGlu
IHRleHQgY29udHJvbHMgeWV0Lgogd2Via2l0Lm9yZy9iLzYwODMwIGVkaXRpbmcvcGFzdGVib2Fy
ZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNmYyN2M4Y2IxNDE3NjM5ZTlmYzU5NDhmOTgzOTQ5
NDFlYWZjOGQzLi5iZjFkZjQ3MDNkNzljZGI4MzkyZmI4ZThmYWFlZGM5YWM4YjcxMmZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEzMiw2ICsxMTMy
LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENT
UzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVY
VCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRp
b24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFz
dAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAK
ICMgT3VyIHNsb3cgdGVzdHMsIGluIGFscGhhYmV0aWNhbCBvcmRlci4KIHdlYmtpdC5vcmcvYi81
NzY3MiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0
bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQt
NC44L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA5MzY0YzUxYWMzZjA4ZmY1ZDBkOGM4ZjY5MTc0YmU4MjdhMDBjMjMx
Li42MzljZTJmNjhiMjk5ZWM4MTMzOTBmYTdiZmVkMzhmMzc1MGJkYTcxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjk5LDYgKzY5OSw3IEBA
IHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRl
eHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgog
d2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3
ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dl
YmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIE5l
ZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5ZWM3MjBi
ODBjNDc4ODljOWQ1YjkwMzM2MWVkYWYxMmViNTRiZmQuLmI0NDM2MzZiODY4ZDUwYmI4YTQ2Mzdk
YmMwNDYxZTQ0Y2I4ZWM4ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1h
Yy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0
RXhwZWN0YXRpb25zCkBAIC01Nzk2LDYgKzU3OTYsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFz
dC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBl
bmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJ1
ZyA4NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNGNmZTg2ZTEwYzVjYTg3MTM3NWJmNTI1MmFhODBjNjdhZWY3NjAy
Ny4uNTk2NjY0ZDIzNThhYmNiNTU3YjA1NjBiNTZmZDc5MDkzNGNiYjU4OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNjUsNiArMzY1LDcgQEAgd2Via2l0
Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBw
b3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQu
b3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5v
cmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9y
Zy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZp
Y2VNZXRyaWNzKCkgaW4gcGxhdGZvcm1zIG90aGVyIHRoYW4gQ2hyb21pdW0KICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODg2CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU4ZjNiM2M3YzI4ODRmNzExMGJlOWM1NDJlMTFi
Yjg3YzdkNTMwN2UuLjZiYjc1MjQ2ZGIzYTQ4MDYxYmQwZTZhMDExNDhmNGU1ZmVhNGU0YTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDgyLDYgKzI0
ODIsOCBAQCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5j
LWV2ZW50Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1
dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwK
IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVj
b3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMgQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HIGlzIGRpc2FibGVkIG9uIFdpbmRvd3MKIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGlu
Zy13aXRob3V0LXBhaW50aW5nLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWly
by9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY5YTYxZmE1N2YzYTk5ODZhOTUxNzlkZjk2OGYwOGIz
ZDYwNWEyYTAuLjlmMGRkYzM0M2RiZTYyNDcxMzVlZWFlYWUzMjgxN2U4Mzk1MjZkYTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk4
NCw2ICsyOTg0LDggQEAgd2Via2l0Lm9yZy9iLzM5NzI1IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRy
b3AtYXV0b3Njcm9sbC5odG1sIFsgU2tpcCBdCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxp
Z24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0
LWluaGVyaXRlZC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRD
b21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0Lmh0bWwKIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tbGluZS5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1p
bmhlcml0ZWQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbAogCiAjIFNwZWxsY2hlY2tl
ciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189991</attachid>
            <date>2013-02-24 17:33:30 -0800</date>
            <delta_ts>2013-03-03 16:04:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130225102943.patch</filename>
            <type>text/plain</type>
            <size>33866</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRmYjA0NDY2MTUy
ZjI0NGY4YjMyMjg5N2YzN2MxMmUyNDhjZS4uZWU3Y2NjMDcxM2I2MDQyYmRjOWEwMGQ2ZjFhYjFm
MDMxMjY3NWY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAyLTI0ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyBlYWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAiZWFjaC1saW5l
IiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBUaGlzIHBhdGNoIGlz
IHRoZSBwYXJzaW5nIHBhcnQgdG8gc3VwcG9ydCB0ZXh0LWluZGVudDplYWNoLWxpbmUuCisKKyAg
ICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxp
bmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZSBh
ZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAgICAgICBub3QgYWZmZWN0IGxp
bmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAgICBJdCBpcyBpbXBsZW1lbnRl
ZCB1bmRlciBFTkFCTEVfQ1NTM19URVhULgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlU
ZXh0SW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6YXBwbHlJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWls
ZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSk6CisKIDIwMTMtMDItMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVwZGF0aW5nIEdPYmplY3QgYmluZGluZ3MgYmFzZWxpbmVzIGFmdGVyIHIx
NDM4NjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCmluZGV4IDMxYWQ3MzYzYWJjZjJmODg0ZTExZDA0ODI2YzU4MDY0MDhlMDhkN2Qu
LjY5ODVjNGE2ZWZiMTUyZDJkZWRkNmMxODBjYTVmNjFmMjE0YzIxYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMTYz
LDggKzIxNjMsMTggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisjaWYg
RU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6IHsK
KyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNy
ZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHlsZS5nZXQoKSkp
OworICAgICAgICAgICAgaWYgKHN0eWxlLT50ZXh0SW5kZW50TGluZSgpID09IFRleHRJbmRlbnRF
YWNoTGluZSkKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3Jl
YXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlRWFjaExpbmUpKTsKKyAgICAgICAgICAgIHJldHVy
biBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRJbmRlbnQ6CiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1
ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHlsZS5nZXQoKSk7CisjZW5kaWYKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRTaGFkb3c6CiAgICAgICAgICAgICByZXR1cm4gdmFs
dWVGb3JTaGFkb3coc3R5bGUtPnRleHRTaGFkb3coKSwgcHJvcGVydHlJRCwgc3R5bGUuZ2V0KCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMDE0YTY2YmNjZDhmYWEzNWQ0ZTMzOWU2MDI4ZDliMDMzYTczMWJhZS4u
M2I5OTU5MzhjYmEyMWIwNjhjZjA0ZThmMjc4MDYxZDYxMzMyNjFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTU4OCw3ICs1ODgsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaW1w
bGVMZW5ndGhQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgYm9vbCYgYWNjZQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5SaWdodDoKICAgICBjYXNlIENTU1Byb3BlcnR5TWFy
Z2luVG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdodDoKKyNpZiAhRU5BQkxFKENTUzNfVEVY
VCkKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKKyNlbmRpZgogICAgIGNhc2UgQ1NT
UHJvcGVydHlUb3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkFmdGVyOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5CZWZvcmU6CkBAIC0yMTYyLDkgKzIxNjQsMTcg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUs
IEZMZW5ndGgpOwogICAgICAgICBicmVhazsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6IC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4g
XSAmJiBlYWNoLWxpbmU/IHwgaW5oZXJpdAorICAgICAgICBwYXJzZWRWYWx1ZSA9IHBhcnNlVGV4
dEluZGVudCgpOworICAgICAgICBpZiAoIXBhcnNlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBicmVhazsKKyNlbHNlCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJ
bmRlbnQ6ICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAogICAg
ICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwg
RlBlcmNlbnQpKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKIAogICAgIGNhc2UgQ1NTUHJvcGVy
dHlQYWRkaW5nVG9wOiAgICAgICAgICAvLy8vIDxwYWRkaW5nLXdpZHRoPiB8IGluaGVyaXQKICAg
ICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1JpZ2h0OiAgICAgICAgLy8gICBXaGljaCBpcyBkZWZp
bmVkIGFzCkBAIC05MTQ0LDYgKzkxNTQsMjkgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVGV4dEVt
cGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYg
RU5BQkxFKENTUzNfVEVYVCkKK1Bhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NQYXJzZXI6OnBh
cnNlVGV4dEluZGVudCgpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKworICAgIGJvb2wgaGFzUGFyc2VkVGV4
dEluZGVudCA9IGZhbHNlOworICAgIGZvciAoQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1
ZUxpc3QtPmN1cnJlbnQoKTsgdmFsdWU7IHZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKSkgewor
ICAgICAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlRWFjaExpbmUpCisgICAgICAgICAgICBs
aXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
RWFjaExpbmUpKTsKKyAgICAgICAgZWxzZSBpZiAoIWhhc1BhcnNlZFRleHRJbmRlbnQgJiYgIXZh
bHVlLT5pZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCkpIHsKKyAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUpKTsK
KyAgICAgICAgICAgIGhhc1BhcnNlZFRleHRJbmRlbnQgPSB0cnVlOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghaGFzUGFyc2VkVGV4dElu
ZGVudCB8fCAhbGlzdC0+bGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu
IGxpc3Q7Cit9CisjZW5kaWYKKwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZUJveENvbnRhaW4o
Ym9vbCBpbXBvcnRhbnQpCiB7CiAgICAgTGluZUJveENvbnRhaW4gbGluZUJveENvbnRhaW4gPSBM
aW5lQm94Q29udGFpbk5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggZGNiYTAzMzc3MzJl
MjU2NjQzYjQxMzk1NDY5ZjE2OWFhMTAzNGRlMi4uZDUyMTEwMzU5MmZlMDBiMmRiZmU5OTJmYmIx
MjkzYWNlOTgxZTA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjYyLDYgKzI2MiwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRUZXh0RGVjb3JhdGlvblByb3BlcnR5KENTU1Byb3BlcnR5
SUQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+LCBib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJz
ZVRleHREZWNvcmF0aW9uKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAK
KyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBwYXJz
ZVRleHRJbmRlbnQoKTsKKyNlbmRpZgorICAgIAogICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFp
bihib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZh
bHVlKiwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA3NTkyNmY2MjdhMzdmMjA2ZjExNGYxNmE3NzcyOWU4
ZmQ5MzZlODBiLi5hNTRjZDA2ZjUwMTQ0MmNjZjYyZDQ4ZTQ4ZDQ5MWQ3ZThmN2VlMzg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtOTk4LDMgKzk5OCw5IEBAIHNu
YXAKIGRyYWcKIG5vLWRyYWcKICNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTM19URVhU
KSAmJiBFTkFCTEVfQ1NTM19URVhUCisvLyB0ZXh0LWluZGVudAorZWFjaC1saW5lCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCAxYmI2MTA0ZWY5ZTJhNjhlMzdh
YWUyZDFjYzgwZGQyMWJiNDIyODFmLi42ZjRjOWQ5NTRjMzY1YzgxNTllODgyNWY2MTkwMGZhMjdj
YzdmMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTc5OCw2ICsxNzk4
LDYxIEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitjbGFz
cyBBcHBseVByb3BlcnR5VGV4dEluZGVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgYXBw
bHlJbmhlcml0VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlcjo6U3RhdGUmIHN0YXRl
KQorICAgIHsKKyAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoc3RhdGUu
cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7CisgICAgICAgIHN0YXRlLnN0eWxlKCkt
PnNldFRleHRJbmRlbnQoc3RhdGUucGFyZW50U3R5bGUoKS0+dGV4dEluZGVudCgpKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHls
ZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUpCisgICAgeworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5z
ZXRUZXh0SW5kZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpOwor
ICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KFJlbmRlclN0eWxlOjppbml0aWFs
VGV4dEluZGVudCgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1By
b3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXI6OlN0YXRlJiBzdGF0ZSwgQ1NTVmFsdWUqIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBDU1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENT
U1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVudExp
bmUgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCk7CisgICAgICAgIExlbmd0
aCB0ZXh0SW5kZW50ID0gUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50KCk7CisKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZUxpc3QtPmxlbmd0aCgpOyBpKyspIHsKKyAg
ICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gdmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0No
ZWNrKGkpOworICAgICAgICAgICAgaWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Cisg
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVFYWNo
TGluZSkKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50TGluZSA9IFRleHRJbmRlbnRFYWNoTGlu
ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7Cisg
ICAgICAgICAgICAgICAgTGVuZ3RoIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVu
Z3RoPExlbmd0aD4oc3RhdGUuc3R5bGUoKSwgc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpLCBzdGF0
ZS5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOworICAgICAgICAgICAgICAgIGxlbmd0aC5zZXRR
dWlyayhwcmltaXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOworICAgICAgICAgICAgICAgIHRl
eHRJbmRlbnQgPSBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVl
LT5pc1BlcmNlbnRhZ2UoKSkKKyAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gTGVuZ3RoKHBy
aW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgICAgIGVs
c2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0NhbGN1bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgp
KQorICAgICAgICAgICAgICAgIHRleHRJbmRlbnQgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNz
c0NhbGNWYWx1ZSgpLT50b0NhbGNWYWx1ZShzdGF0ZS5zdHlsZSgpLCBzdGF0ZS5yb290RWxlbWVu
dFN0eWxlKCksIHN0YXRlLnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkpOworICAgICAgICAgICAg
ZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkpCisg
ICAgICAgICAgICAgICAgdGV4dEluZGVudCA9IHByaW1pdGl2ZVZhbHVlLT52aWV3cG9ydFBlcmNl
bnRhZ2VMZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRlLnN0eWxlKCktPnNldFRl
eHRJbmRlbnRMaW5lKHRleHRJbmRlbnRMaW5lKTsKKyAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0
VGV4dEluZGVudCh0ZXh0SW5kZW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5k
bGVyIGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxl
cigmYXBwbHlJbmhlcml0VmFsdWUsICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOwor
ICAgIH0KK307CisjZW5kaWYKKwogY29uc3QgU3R5bGVCdWlsZGVyJiBTdHlsZUJ1aWxkZXI6OnNo
YXJlZFN0eWxlQnVpbGRlcigpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUJ1aWxk
ZXIsIHN0eWxlQnVpbGRlckluc3RhbmNlLCAoKSk7CkBAIC0xOTI5LDggKzE5ODQsMTAgQEAgU3R5
bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uTGluZSwgQXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9u
OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uU3R5bGUsIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHREZWNvcmF0
aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25TdHlsZSwgVGV4dERlY29yYXRp
b25TdHlsZSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RGVjb3JhdGlvblN0eWxlLCBUZXh0RGVjb3Jh
dGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlPjo6Y3Jl
YXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRU
ZXh0QWxpZ25MYXN0LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxpZ25MYXN0LCAmUmVuZGVy
U3R5bGU6OnRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6c2V0VGV4
dEFsaWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEFsaWdu
TGFzdD46OmNyZWF0ZUhhbmRsZXIoKSk7Ci0jZW5kaWYgLy8gQ1NTM19URVhUCisgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRl
bnQ6OmNyZWF0ZUhhbmRsZXIoKSk7CisjZWxzZQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQ
cm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjp0ZXh0
SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworI2VuZGlmIC8vIENTUzNfVEVYVAogICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0
eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92
ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlG
b250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9k
ZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVy
aW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJl
bmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpz
ZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4
dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBiYTVkNjYwM2Q2YWY4MTc1ZjgyNzJiMDA0
ZTA3ZmJhOTY2NjM2ZTQ3Li5hMDBlNGY2MjBjNjkyYTIzYWNlNjExOGZhMjdhODlmNzQ5OTUyNzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
QEAgLTQ4MSw2ICs0ODEsOSBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29u
c3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgIGlmIChyYXJl
SW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpIHsK
ICAgICAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT5oaWdobGlnaHQKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT5pbmRlbnQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQKKyNpZiBFTkFCTEUo
Q1NTM19URVhUKQorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVu
dExpbmUgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lCisjZW5k
aWYKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0g
b3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8
IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdCAhPSBvdGhlci0+cmFyZUluaGVyaXRl
ZERhdGEtPnRleHRTaXplQWRqdXN0CiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+
d29yZEJyZWFrICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDc2ZDhiOGQ4YzMy
ZTJmNGNkZjAyNTgwNmUwMTBlY2QxYzAxN2FmYWMuLjU5NjdmZWJhMzgwNzhiNjVkODgzY2Q3MzZi
MGNlN2RlMDE2ODNiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC01NTksNiArNTU5LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBMZW5n
dGggdGV4dEluZGVudCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQ7
IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRlbnRM
aW5lKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEluZGVudExpbmU+KHJhcmVJbmhl
cml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lKTsgfQorI2VuZGlmCiAgICAgRVRleHRBbGlnbiB0
ZXh0QWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dEFsaWduPihpbmhlcml0
ZWRfZmxhZ3MuX3RleHRfYWxpZ24pOyB9CiAgICAgRVRleHRUcmFuc2Zvcm0gdGV4dFRyYW5zZm9y
bSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0VHJhbnNmb3JtPihpbmhlcml0ZWRf
ZmxhZ3MuX3RleHRfdHJhbnNmb3JtKTsgfQogICAgIEVUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3Jh
dGlvbnNJbkVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0RGVjb3JhdGlv
bj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zKTsgfQpAQCAtMTA5OCw2ICsxMTAx
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZv
aWQgc2V0VGV4dEluZGVudChMZW5ndGggdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBp
bmRlbnQsIHYpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICB2b2lkIHNldFRleHRJbmRl
bnRMaW5lKFRleHRJbmRlbnRMaW5lIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90
ZXh0SW5kZW50TGluZSwgdik7IH0KKyNlbmRpZgogICAgIHZvaWQgc2V0VGV4dEFsaWduKEVUZXh0
QWxpZ24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24gPSB2OyB9CiAgICAgdm9pZCBz
ZXRUZXh0VHJhbnNmb3JtKEVUZXh0VHJhbnNmb3JtIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0
X3RyYW5zZm9ybSA9IHY7IH0KICAgICB2b2lkIGFkZFRvVGV4dERlY29yYXRpb25zSW5FZmZlY3Qo
RVRleHREZWNvcmF0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zIHw9
IHY7IH0KQEAgLTE1NjMsNiArMTU2OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGVuZ3RoIGlu
aXRpYWxNYXJnaW4oKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CiAgICAgc3RhdGljIExlbmd0
aCBpbml0aWFsUGFkZGluZygpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMg
TGVuZ3RoIGluaXRpYWxUZXh0SW5kZW50KCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQorI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgc3RhdGljIFRleHRJbmRlbnRMaW5lIGluaXRpYWxUZXh0
SW5kZW50TGluZSgpIHsgcmV0dXJuIFRleHRJbmRlbnRGaXJzdExpbmU7IH0KKyNlbmRpZgogICAg
IHN0YXRpYyBFVmVydGljYWxBbGlnbiBpbml0aWFsVmVydGljYWxBbGlnbigpIHsgcmV0dXJuIEJB
U0VMSU5FOyB9CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxXaWRvd3MoKSB7IHJldHVybiAyOyB9
CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxPcnBoYW5zKCkgeyByZXR1cm4gMjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAppbmRleCA4YzJjMGI1ODZmNGI0OGVhOWFkNDJkMDJhY2JjMjQ0MjVlMWQ3MTM2Li5jZjNmOWMw
Y2MxZTdjYWM4ZWYyYTY5NTlkMTZiNjc0ZWI4NTZkYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDk2LDYg
KzQ5NiwxMCBAQCBlbnVtIERyYWdnYWJsZVJlZ2lvbk1vZGUgeyBEcmFnZ2FibGVSZWdpb25Ob25l
LCBEcmFnZ2FibGVSZWdpb25EcmFnLCBEcmFnZ2FibGVSZQogLy8gUmVhc29uYWJsZSBtYXhpbXVt
IHRvIHByZXZlbnQgaW5zYW5lIGZvbnQgc2l6ZXMgZnJvbSBjYXVzaW5nIGNyYXNoZXMgb24gc29t
ZSBwbGF0Zm9ybXMgKHN1Y2ggYXMgV2luZG93cykuCiBzdGF0aWMgY29uc3QgZmxvYXQgbWF4aW11
bUFsbG93ZWRGb250U2l6ZSA9IDEwMDAwMDAuMGY7CiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQor
ZW51bSBUZXh0SW5kZW50TGluZSB7IFRleHRJbmRlbnRGaXJzdExpbmUsIFRleHRJbmRlbnRFYWNo
TGluZSB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJl
bmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBiMjE1YWIzNTg3ZTFi
ZjA2OTdhNTA1ZDdjOGY0ODRjM2E2YzBjMjFlLi45ODlhYjE5OTQ4MTdhNjc0MWI3OGExNmZiZGNh
ZDUzZmZlYzAzNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC04OCw2ICs4OCw5IEBAIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwgdGV4dEVt
cGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrTm9uZSkKICAgICAsIHRleHRFbXBoYXNpc1Bvc2l0
aW9uKFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKICAgICAsIG1fdGV4dE9yaWVudGF0aW9uKFRl
eHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAs
IG1fdGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpKQor
I2VuZGlmCiAgICAgLCBtX2xpbmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJv
eENvbnRhaW4oKSkKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICwgbV9p
bWFnZU9yaWVudGF0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VPcmllbnRhdGlvbigpKQpA
QCAtMTU4LDYgKzE2MSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIHRleHRFbXBo
YXNpc01hcmsoby50ZXh0RW1waGFzaXNNYXJrKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24o
by50ZXh0RW1waGFzaXNQb3NpdGlvbikKICAgICAsIG1fdGV4dE9yaWVudGF0aW9uKG8ubV90ZXh0
T3JpZW50YXRpb24pCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAsIG1fdGV4dEluZGVudExp
bmUoby5tX3RleHRJbmRlbnRMaW5lKQorI2VuZGlmCiAgICAgLCBtX2xpbmVCb3hDb250YWluKG8u
bV9saW5lQm94Q29udGFpbikKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAg
ICwgbV9pbWFnZU9yaWVudGF0aW9uKG8ubV9pbWFnZU9yaWVudGF0aW9uKQpAQCAtMjUyLDYgKzI1
OCw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiB0ZXh0RW1waGFzaXNNYXJr
ID09IG8udGV4dEVtcGhhc2lzTWFyawogICAgICAgICAmJiB0ZXh0RW1waGFzaXNQb3NpdGlvbiA9
PSBvLnRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgICAgICYmIG1fdGV4dE9yaWVudGF0aW9uID09
IG8ubV90ZXh0T3JpZW50YXRpb24KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICAmJiBt
X3RleHRJbmRlbnRMaW5lID09IG8ubV90ZXh0SW5kZW50TGluZQorI2VuZGlmCiAgICAgICAgICYm
IG1fbGluZUJveENvbnRhaW4gPT0gby5tX2xpbmVCb3hDb250YWluCiAgICAgICAgICYmIGh5cGhl
bmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJpbmcKICAgICAgICAgJiYgbG9jYWxlID09
IG8ubG9jYWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMjI4MWY3NzI5NzA3ZjdjMTNiNDU5OWFhNzZk
ZjBiNTllOWU3M2FjLi42Nzg1YTIwOTE1YjFmZDlhYTI4YWE4M2Q3YmY1MTg5NzJmMTczZDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
dGV4dEVtcGhhc2lzTWFyayA6IDM7IC8vIFRleHRFbXBoYXNpc01hcmsKICAgICB1bnNpZ25lZCB0
ZXh0RW1waGFzaXNQb3NpdGlvbiA6IDE7IC8vIFRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgdW5z
aWduZWQgbV90ZXh0T3JpZW50YXRpb24gOiAyOyAvLyBUZXh0T3JpZW50YXRpb24KKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgIHVuc2lnbmVkIG1fdGV4dEluZGVudExpbmUgOiAxOyAvLyBUZXh0
SW5kZW50RWFjaExpbmUKKyNlbmRpZgogICAgIHVuc2lnbmVkIG1fbGluZUJveENvbnRhaW46IDc7
IC8vIExpbmVCb3hDb250YWluCiAgICAgLy8gQ1NTIEltYWdlIFZhbHVlcyBMZXZlbCAzCiAjaWYg
RU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OGVkYTc4NjVmNTI0YjNjYjM4
MjhjNDQwZThkYjY2MGFlMzc2Y2VmLi5iMmEzMDJjNmMzZmIwMjcyYjUwNDA5Y2ZkMjNkNWY2MjI5
ZDIxMmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDItMjQgIEphZWh1biBMaW0gIDxs
amFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbY3NzMy10ZXh0XSBQYXJzaW5nIGVh
Y2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3MzLXRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAyMQorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhl
cml0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LWluaGVyaXRlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Q29tcHV0ZWRTdHlsZSk6CisgICAg
ICAgIChvd25WYWx1ZVRlc3QpOgorICAgICAgICAoaW5oZXJpdGFuY2VUZXN0KToKKyAgICAgICAg
KiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0
LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdEVsZW1lbnRTdHlsZSk6CisgICAgICAgICh0ZXN0Q29tcHV0ZWRTdHlsZSk6CisgICAgICAg
ICh2YWx1ZVNldHRpbmdUZXN0KToKKyAgICAgICAgKGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTQu
OC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2lu
Y2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMi0yNCAgS2Vpc2hpIEhhdHRvcmkgIDxr
ZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgbWV0aG9kcyB0byBkYXRlIHR5cGVzIGZv
ciBuZXcgY2FsZW5kYXIgcGlja2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYyMGJkZjM2ZDMxY2Y2ODFiNmU4NmYzNjc5MjFh
MWYwMDg4MjJmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ0IEBACitUaGlzIHRlc3RzIGNoZWNrIHRo
YXQgdGV4dC1pbmRlbnQgcGFyc2VzIHByb3Blcmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBU
ZXh0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCB0aGUgaW5pdGlhbCB2
YWx1ZToKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitWYWx1
ZSAnMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbScKK1BBU1MgZS5zdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVtJworUEFTUyBjb21wdXRl
ZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4JworCitWYWx1ZSAnMTBlbSBlYWNoLWxp
bmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gZWFjaC1saW5lJworUEFTUyBl
LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwZW0gZWFjaC1saW5l
JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IGVhY2gtbGluZScKK1BB
U1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBw
eCBlYWNoLWxpbmUnCisKK1ZhbHVlICdlYWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4
dEluZGVudCBpcyAnZWFjaC1saW5lIDEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnZWFjaC1saW5lIDEwZW0nCitQQVNTIGNvbXB1dGVkU3R5bGUu
dGV4dEluZGVudCBpcyAnMTAwcHggZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IGVhY2gtbGluZScKKworCitJbnZh
bGlkIHZhbHVlIHRlc3QgLSAnMTBtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgn
CitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4Jwor
UEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFs
dWUgdGVzdCAtICdlYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcK
K1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQ
QVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRmYTg1NmZlYmI2NTllOGIxMjM5MjJkMTBmZTNjNzc5ODVkMTYxM2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFs
dWUgb2YgdGV4dC1pbmRlbnQgaXMgcHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4
JzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworCitWYWx1
ZSBvZiBhbmNlc3RvciBpcyAnMTBweCBlYWNoLWxpbmUnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBw
eCBlYWNoLWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IGVhY2gtbGluZScKKworVmFsdWUgb2Yg
YW5jZXN0b3IgaXMgJzEwcHggZWFjaC1saW5lJywgd2hpbGUgY2hpbGQgaXMgJzEwcHgnOgorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMTBweCBlYWNoLWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNDFiOTY0NzEwNzhkMjdlMTYyZDgzMGEzOTBiZWJhMzY1OGM5YjRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJhbmNlc3RvciI+PGRpdiBpZD0iY2hpbGQiPjwvZGl2
PjwvZGl2PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtaW5oZXJpdGVkLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2ZTIxNWE4
Y2ViNmI4ZWIwZTE3YWY5NDE0NmJjYzU3ZWIwMDk2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0IiBzdHlsZT0iZm9udDogMTBweCBBaGVtIj48L2Rpdj4KKyAgPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVz
dHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjExZWUxZTk4MzMwY2RjMWJiYWI2YWRiMDI4ZTMyOTczYmZjMGVhNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0
ZWQuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5bGUoYV92YWx1
ZSwgY192YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5j
ZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykiLCAgIiciICsgYV92YWx1ZSAr
ICInIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiArIGNfdmFsdWUgKyAiJyIpOworICAg
IGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gb3duVmFsdWVUZXN0KGFfdmFsdWUsIGNfdmFsdWUp
Cit7CisgICAgZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9yIGlzICciICsgYV92YWx1ZSArICInLCB3
aGlsZSBjaGlsZCBpcyAnIiArIGNfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50
ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICBjaGlsZC5zdHlsZS50ZXh0SW5kZW50ID0gY192YWx1
ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBjX3ZhbHVlKTsKK30KKworZnVuY3Rp
b24gaW5oZXJpdGFuY2VUZXN0KGFfdmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVlIG9mIGFuY2Vz
dG9yIGlzICciICsgYV92YWx1ZSArICInOiIpOworICAgIGFuY2VzdG9yLnN0eWxlLnRleHRJbmRl
bnQgPSBhX3ZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUsIGFfdmFsdWUpOwor
fQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0
LWluZGVudCBpcyBwcm9wZXJseSBpbmhlcml0ZWQgdG8gdGhlIGNoaWxkLiIpOworCithbmNlc3Rv
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNlc3RvcicpOworY2hpbGQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKKworaW5oZXJpdGFuY2VUZXN0KCIxMHB4Iik7Citp
bmhlcml0YW5jZVRlc3QoIjEwcHggZWFjaC1saW5lIik7CisKK293blZhbHVlVGVzdCgiMTBweCBl
YWNoLWxpbmUiLCAiMTBweCIpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNTJjYjQyYTc2MTc1NzBkZTg2NWMxMDJiNGMwYjNhOWQ3ODFmMzE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzCkBA
IC0wLDAgKzEsNDggQEAKK2Z1bmN0aW9uIHRlc3RFbGVtZW50U3R5bGUocHJvcGVydHlKUywgcHJv
cGVydHlDU1MsIHZhbHVlKQoreworICAgIHNob3VsZEJlKCJlLnN0eWxlLiIgKyBwcm9wZXJ0eUpT
LCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImUuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOworfQorCitm
dW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShwcm9wZXJ0eUpTLCBwcm9wZXJ0eUNTUywgdmFsdWUp
Cit7CisgICAgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsIG51bGwp
OworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLiIgKyBwcm9wZXJ0eUpTLCAiJyIgKyB2YWx1
ZSArICInIik7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
IiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOworfQorCitmdW5jdGlv
biB2YWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBleHBlY3RlZFZhbHVlKQoreworICAgIGRlYnVnKCJW
YWx1ZSAnIiArIHZhbHVlICsgIic6Iik7CisgICAgZS5zdHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7
CisgICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIHZhbHVl
KTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGV4
cGVjdGVkVmFsdWUpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gaW52YWxpZFZhbHVl
U2V0dGluZ1Rlc3QodmFsdWUsIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiSW52YWxpZCB2
YWx1ZSB0ZXN0IC0gJyIgKyB2YWx1ZSArICInOiIpOworICAgIGUuc3R5bGUud2Via2l0VGV4dEFs
aWduTGFzdCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUoInRleHRJbmRlbnQiLCAidGV4
dC1pbmRlbnQiLCBkZWZhdWx0VmFsdWUpOworICAgIHRlc3RDb21wdXRlZFN0eWxlKCJ0ZXh0SW5k
ZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGV4dC1pbmRlbnQgcGFyc2VzIHBy
b3Blcmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBUZXh0LiIpOworCitlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFsdWU6
Iik7Cit0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsICcwcHgn
KTsKK2RlYnVnKCcnKTsKKwordmFsdWVTZXR0aW5nVGVzdCgnMTBlbScsICcxMDBweCcpOwordmFs
dWVTZXR0aW5nVGVzdCgnMTBlbSBlYWNoLWxpbmUnLCAnMTAwcHggZWFjaC1saW5lJyk7Cit2YWx1
ZVNldHRpbmdUZXN0KCdlYWNoLWxpbmUgMTBlbScsICcxMDBweCBlYWNoLWxpbmUnKTsKK2RlYnVn
KCcnKTsKKworZGVmYXVsdFZhbHVlID0gJzBweCcKK2Uuc3R5bGUudGV4dEluZGVudCA9IGRlZmF1
bHRWYWx1ZTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMG0nLCBkZWZhdWx0VmFsdWUpOwor
aW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJ2VhY2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjODFk
YTg5NjQ2ZDc5ZTNiZWMwZWMzMjczZjZhNDQ5OGFlMWExN2E1Li4xNjE1NTEzODRkYTU1ZWI1YTVl
OTFlMmVmZTZmNzQ2NWFmM2FkODJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyNSw2ICsyMjUsNyBAQCB3ZWJraXQub3JnL2IvODkw
NTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90
IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5
MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTcz
IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIx
IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBDaHJvbWl1bSBkb2VzIG5vdCBz
dXBwb3J0IHNtYXJ0IHBhc3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQuCiB3ZWJraXQub3JnL2Iv
NjA4MzAgZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVmZjkyZjdm
MDM0MzgyMjU3ZTliOGE1NjBmZTViNDk4MTRjMjU0M2EuLjBiY2YzNTdkYWU0OTc3Y2VkOGU2YTc5
OTFjOGQ1YWE4NjNiZDZlNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xMTMyLDYgKzExMzIsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3Mv
aW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVk
IChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBPdXIgc2xvdyB0ZXN0cywgaW4gYWxwaGFiZXRpY2Fs
IG9yZGVyLgogd2Via2l0Lm9yZy9iLzU3NjcyIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zZW5k
LXNsaWNlZC1kcmFnZ2VkLWZpbGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDkzNjRjNTFhYzNmMDhmZjVk
MGQ4YzhmNjkxNzRiZTgyN2EwMGMyMzEuLjYzOWNlMmY2OGIyOTllYzgxMzM5MGZhN2JmZWQzOGYz
NzUwYmRhNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRp
b25zCkBAIC02OTksNiArNjk5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdl
LW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVl
ZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50CiAKICMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBidWcgODY0NDEKICMg
ZmFpbGluZyBuZXcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1h
Yy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMDllYzcyMGI4MGM0Nzg4OWM5ZDViOTAzMzYxZWRhZjEyZWI1NGJmZC4u
YjQ0MzYzNmI4NjhkNTBiYjhhNDYzN2RiYzA0NjFlNDRjYjhlYzhmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU3OTYsNiArNTc5Niw3IEBA
IHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRl
eHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgog
d2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3
ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dl
YmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIE5l
ZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzQzZGJhOThiYzQyMjdm
NmZiNGE2MTI1NGQ3NjlmODVlYzk1ZjAwLi43MGJjMWY0YzFjMjc2OGU3NmVlNmFlMDhhZDcxNzEz
NDQzNGU5NWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM2NSw2ICszNjUsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50
YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFC
TEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQKIAogIyBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSW5zcGVj
dG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKSBpbiBwbGF0Zm9ybXMgb3RoZXIgdGhh
biBDaHJvbWl1bQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI4
ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZThmM2Iz
YzdjMjg4NGY3MTEwYmU5YzU0MmUxMWJiODdjN2Q1MzA3ZS4uNmJiNzUyNDZkYjNhNDgwNjFiZDBl
NmEwMTE0OGY0ZTVmZWE0ZTRhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTI0ODIsNiArMjQ4Miw4IEBAIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtcmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWFsaWduLWxhc3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxp
Z24tbGFzdC1pbmhlcml0ZWQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxh
c3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxpZ24tbGFzdC5odG1s
CiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAorZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1p
bmRlbnQtaW5oZXJpdGVkLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKIAogIyBBQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgaXMgZGlzYWJsZWQgb24gV2luZG93cwogY29tcG9z
aXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjlhNjFmYTU3
ZjNhOTk4NmE5NTE3OWRmOTY4ZjA4YjNkNjA1YTJhMC4uOWYwZGRjMzQzZGJlNjI0NzEzNWVlYWVh
ZTMyODE3ZTgzOTUyNmRhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0yOTg0LDYgKzI5ODQsOCBAQCB3ZWJraXQub3JnL2IvMzk3MjUg
ZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1hdXRvc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWFsaWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwK
K2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21w
dXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC5odG1sCiAKICMgU3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0Lm9yZy9iLzEw
ODM3MCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBb
IFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191150</attachid>
            <date>2013-03-03 16:04:12 -0800</date>
            <delta_ts>2013-03-06 18:32:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130304090019.patch</filename>
            <type>text/plain</type>
            <size>33972</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNlOTk3ZWVkYTZkZjI2
NzQ5Mjg1YTQ3OThmOTAzZGM1NjRkM2I0Zi4uYTBiMTJlZTI2ZjYxZTdiMGJlNWQxYzQyMDkzNDFh
NmQ5YmNmOTUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEzLTAzLTAzICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyBlYWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAiZWFjaC1saW5l
IiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBUaGlzIHBhdGNoIGlz
IHRoZSBwYXJzaW5nIHBhcnQgdG8gc3VwcG9ydCB0ZXh0LWluZGVudDplYWNoLWxpbmUuCisKKyAg
ICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxp
bmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZSBh
ZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAgICAgICBub3QgYWZmZWN0IGxp
bmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAgICBJdCBpcyBpbXBsZW1lbnRl
ZCB1bmRlciBFTkFCTEVfQ1NTM19URVhULgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEFwcGx5UHJvcGVydHlU
ZXh0SW5kZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6YXBwbHlJbml0aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWls
ZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSk6CisKIDIwMTMtMDMtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE0NDU2NS4gUmV2ZXJ0ZWQgcjE0NDUzMy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5k
ZXggNzg2YzVmMTQwYjhmZTJhYTk5YmI4NzBlNTY2OTA5MzIyN2QyNTgxNS4uYjA5ZWE1MWRhN2Qx
N2U0NjkwM2IyNzE3NjY5YTAyYjllMWQ3YWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTIxNjMsOCArMjE2MywxOCBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFBy
b3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICAgICAgICAgIHJldHVybiBsaXN0LnJl
bGVhc2UoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTM19U
RVhUKQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDogeworICAgICAgICAgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBh
cmF0ZWQoKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVl
Rm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKSk7CisgICAgICAgICAg
ICBpZiAoc3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dEluZGVudEVhY2hMaW5lKQorICAg
ICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVFYWNoTGluZSkpOworICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFz
ZSgpOworICAgICAgICB9CisjZWxzZQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVu
dDoKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0
eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKTsKKyNlbmRpZgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5VGV4dFNoYWRvdzoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvclNoYWRvdyhz
dHlsZS0+dGV4dFNoYWRvdygpLCBwcm9wZXJ0eUlELCBzdHlsZS5nZXQoKSk7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCBlMDAyZTEwMmVhMDMwNzcxMDdjNDljMjI5OTAxMmY3MDVkMmM4MGE2Li45MTIwM2U5NDRiMDRm
MTM3NjkwYjg2YzVjMTQzZDMxNTk0YWMwNTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtNTg4LDcgKzU4OCw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBsZUxlbmd0aFByb3Bl
cnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBib29sJiBhY2NlCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eU1hcmdpblJpZ2h0OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgorI2lmICFFTkFCTEUoQ1NTM19URVhUKQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlUZXh0SW5kZW50OgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRvcDoK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQWZ0ZXI6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hcmdpbkJlZm9yZToKQEAgLTIxNjIsOSArMjE2NCwxNyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCk7CiAg
ICAgICAgIGJyZWFrOwogCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBjYXNlIENTU1Byb3Bl
cnR5VGV4dEluZGVudDogLy8gWyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdICYmIGVhY2gtbGlu
ZT8gfCBpbmhlcml0CisgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VUZXh0SW5kZW50KCk7Cisg
ICAgICAgIGlmICghcGFyc2VkVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGJyZWFrOworI2Vsc2UKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDogICAgICAg
ICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0CiAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCkpOwog
ICAgICAgICBicmVhazsKKyNlbmRpZgogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6
ICAgICAgICAgIC8vLy8gPHBhZGRpbmctd2lkdGg+IHwgaW5oZXJpdAogICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nUmlnaHQ6ICAgICAgICAvLyAgIFdoaWNoIGlzIGRlZmluZWQgYXMKQEAgLTkx
NDMsNiArOTE1MywyOSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShi
b29sIGltcG9ydGFudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTM19U
RVhUKQorUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IENTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50
KCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVTcGFjZVNlcGFyYXRlZCgpOworCisgICAgYm9vbCBoYXNQYXJzZWRUZXh0SW5kZW50ID0gZmFs
c2U7CisgICAgZm9yIChDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVu
dCgpOyB2YWx1ZTsgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpKSB7CisgICAgICAgIGlmICh2
YWx1ZS0+aWQgPT0gQ1NTVmFsdWVFYWNoTGluZSkKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVFYWNoTGluZSkpOwor
ICAgICAgICBlbHNlIGlmICghaGFzUGFyc2VkVGV4dEluZGVudCAmJiAhdmFsdWUtPmlkICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkgeworICAgICAgICAgICAgbGlzdC0+
YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAg
aGFzUGFyc2VkVGV4dEluZGVudCA9IHRydWU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKCFoYXNQYXJzZWRUZXh0SW5kZW50IHx8ICFsaXN0
LT5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbGlzdDsKK30KKyNl
bmRpZgorCiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFu
dCkKIHsKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExpbmVCb3hDb250YWlu
Tm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkY2JhMDMzNzczMmUyNTY2NDNiNDEzOTU0
NjlmMTY5YWExMDM0ZGUyLi5kNTIxMTAzNTkyZmUwMGIyZGJmZTk5MmZiYjEyOTNhY2U5ODFlMDVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjIsNiArMjYyLDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFkZFRleHREZWNvcmF0aW9uUHJvcGVydHkoQ1NTUHJvcGVydHlJRCwgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlVGV4dERlY29yYXRp
b24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAorI2lmIEVOQUJMRShD
U1MzX1RFWFQpCisgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNlVGV4dEluZGVudCgp
OworI2VuZGlmCisgICAgCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0
YW50KTsKICAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqLCBDYWxjdWxh
dGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCmluZGV4IDc1OTI2ZjYyN2EzN2YyMDZmMTE0ZjE2YTc3NzI5ZThmZDkzNmU4MGIuLmE1
NGNkMDZmNTAxNDQyY2NmNjJkNDhlNDhkNDkxZDdlOGY3ZWUzODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC05OTgsMyArOTk4LDkgQEAgc25hcAogZHJhZwogbm8t
ZHJhZwogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9D
U1MzX1RFWFQKKy8vIHRleHQtaW5kZW50CitlYWNoLWxpbmUKKyNlbmRpZgorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDRkODc4YjJlOWIzMjVlMjVlZTM2YWQ4Y2JmMmIyMDBm
MmYzODIxMGEuLmQ0MjYwNjBlZTkyNWZhZjIxOTdkOTZiODVlNzM0ZjhiOWNjMDE5YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0xNzkyLDYgKzE3OTIsNjEgQEAgcHVibGlj
OgogfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKK2NsYXNzIEFwcGx5UHJvcGVy
dHlUZXh0SW5kZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1
ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsKKyAg
ICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoc3R5bGVSZXNv
bHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7CisgICAgICAgIHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnQoc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUo
KS0+dGV4dEluZGVudCgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxW
YWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsK
KyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoUmVuZGVy
U3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0VGV4dEluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKSk7
CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHls
ZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAg
ICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4o
dmFsdWUpOworICAgICAgICBUZXh0SW5kZW50TGluZSB0ZXh0SW5kZW50TGluZSA9IFJlbmRlclN0
eWxlOjppbml0aWFsVGV4dEluZGVudExpbmUoKTsKKyAgICAgICAgTGVuZ3RoIHRleHRJbmRlbnQg
PSBSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKTsKKworICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHZhbHVlTGlzdC0+bGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgQ1NT
VmFsdWUqIGl0ZW0gPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CisgICAg
ICAgICAgICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
ID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKKyAgICAgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUVhY2hMaW5lKQorICAgICAg
ICAgICAgICAgIHRleHRJbmRlbnRMaW5lID0gVGV4dEluZGVudEVhY2hMaW5lOworICAgICAgICAg
ICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAg
ICBMZW5ndGggbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCks
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgICAgICAg
ICAgbGVuZ3RoLnNldFF1aXJrKHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgdGV4dEluZGVudCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
cHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQorICAgICAgICAgICAgICAgIHRleHRJbmRl
bnQgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwor
ICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzQ2FsY3VsYXRlZFBlcmNlbnRh
Z2VXaXRoTGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgdGV4dEluZGVudCA9IExlbmd0aChwcmlt
aXRpdmVWYWx1ZS0+Y3NzQ2FsY1ZhbHVlKCktPnRvQ2FsY1ZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSk7CisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZS0+aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB0
ZXh0SW5kZW50ID0gcHJpbWl0aXZlVmFsdWUtPnZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVu
dExpbmUodGV4dEluZGVudExpbmUpOworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRUZXh0SW5kZW50KHRleHRJbmRlbnQpOworICAgIH0KKworICAgIHN0YXRpYyBQcm9wZXJ0eUhh
bmRsZXIgY3JlYXRlSGFuZGxlcigpCisgICAgeworICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5k
bGVyKCZhcHBseUluaGVyaXRWYWx1ZSwgJmFwcGx5SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7
CisgICAgfQorfTsKKyNlbmRpZgorCiBjb25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6
c2hhcmVkU3R5bGVCdWlsZGVyKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVp
bGRlciwgc3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKQEAgLTE5MjMsOCArMTk3OCwxMCBAQCBT
dHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25MaW5lLCBBcHBseVByb3BlcnR5VGV4dERlY29yYXRp
b246OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
V2Via2l0VGV4dERlY29yYXRpb25TdHlsZSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dERlY29y
YXRpb25TdHlsZSwgJlJlbmRlclN0eWxlOjp0ZXh0RGVjb3JhdGlvblN0eWxlLCBUZXh0RGVjb3Jh
dGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OnNldFRleHREZWNvcmF0aW9uU3R5bGUsIFRleHREZWNv
cmF0aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU3R5bGU+Ojpj
cmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtp
dFRleHRBbGlnbkxhc3QsIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRBbGlnbkxhc3QsICZSZW5k
ZXJTdHlsZTo6dGV4dEFsaWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjpzZXRU
ZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0QWxp
Z25MYXN0Pjo6Y3JlYXRlSGFuZGxlcigpKTsKLSNlbmRpZiAvLyBDU1MzX1RFWFQKKyAgICBzZXRQ
cm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dElu
ZGVudDo6Y3JlYXRlSGFuZGxlcigpKTsKKyNlbHNlCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OnRl
eHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjppbml0
aWFsVGV4dEluZGVudD46OmNyZWF0ZUhhbmRsZXIoKSk7CisjZW5kaWYgLy8gQ1NTM19URVhUCiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dE92ZXJmbG93LCBBcHBseVByb3Bl
cnR5RGVmYXVsdDxUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6dGV4dE92ZXJmbG93LCBUZXh0
T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6c2V0VGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRPdmVyZmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9wZXJ0
eUZvbnQ8VGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdN
b2RlLCAmRm9udERlc2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5k
ZXJpbmc+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVRleHRUcmFuc2Zvcm0sIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVUZXh0VHJhbnNmb3JtLCAm
UmVuZGVyU3R5bGU6OnRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6
OnNldFRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0VHJhbnNmb3JtPjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGJhNWQ2NjAzZDZhZjgxNzVmODI3MmIw
MDRlMDdmYmE5NjY2MzZlNDcuLmEwMGU0ZjYyMGM2OTJhMjNhY2U2MTE4ZmEyN2E4OWY3NDk5NTI3
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtNDgxLDYgKzQ4MSw5IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihj
b25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgaWYgKHJh
cmVJbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS5nZXQoKSkg
ewogICAgICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodCAhPSBvdGhlci0+cmFy
ZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodAogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERh
dGEtPmluZGVudCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPmluZGVudAorI2lmIEVOQUJM
RShDU1MzX1RFWFQpCisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5k
ZW50TGluZSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUKKyNl
bmRpZgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbSAh
PSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbQogICAgICAgICAgICAg
fHwgcmFyZUluaGVyaXRlZERhdGEtPnRleHRTaXplQWRqdXN0ICE9IG90aGVyLT5yYXJlSW5oZXJp
dGVkRGF0YS0+dGV4dFNpemVBZGp1c3QKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT53b3JkQnJlYWsgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMmFlNGQ3OTA2
MjlkYzdmM2JmMDFmNWNhNDEzMGE2ZjI4YWZmODBmNC4uOTE2Y2FhOTc4Yzc2NzU4MDJhZTg5MjU0
ZjZiY2I0OTZhYWFlY2MwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKQEAgLTU1OSw2ICs1NTksOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIExl
bmd0aCB0ZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmluZGVu
dDsgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVu
dExpbmUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0SW5kZW50TGluZT4ocmFyZUlu
aGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUpOyB9CisjZW5kaWYKICAgICBFVGV4dEFsaWdu
IHRleHRBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KGluaGVy
aXRlZF9mbGFncy5fdGV4dF9hbGlnbik7IH0KICAgICBFVGV4dFRyYW5zZm9ybSB0ZXh0VHJhbnNm
b3JtKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRUcmFuc2Zvcm0+KGluaGVyaXRl
ZF9mbGFncy5fdGV4dF90cmFuc2Zvcm0pOyB9CiAgICAgRVRleHREZWNvcmF0aW9uIHRleHREZWNv
cmF0aW9uc0luRWZmZWN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHREZWNvcmF0
aW9uPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMpOyB9CkBAIC0xMDk4LDYgKzEx
MDEsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAg
dm9pZCBzZXRUZXh0SW5kZW50KExlbmd0aCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEs
IGluZGVudCwgdik7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHZvaWQgc2V0VGV4dElu
ZGVudExpbmUoVGV4dEluZGVudExpbmUgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBt
X3RleHRJbmRlbnRMaW5lLCB2KTsgfQorI2VuZGlmCiAgICAgdm9pZCBzZXRUZXh0QWxpZ24oRVRl
eHRBbGlnbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbiA9IHY7IH0KICAgICB2b2lk
IHNldFRleHRUcmFuc2Zvcm0oRVRleHRUcmFuc2Zvcm0gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3Rl
eHRfdHJhbnNmb3JtID0gdjsgfQogICAgIHZvaWQgYWRkVG9UZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dChFVGV4dERlY29yYXRpb24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMg
fD0gdjsgfQpAQCAtMTU2Myw2ICsxNTY5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGgg
aW5pdGlhbE1hcmdpbigpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMgTGVu
Z3RoIGluaXRpYWxQYWRkaW5nKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRp
YyBMZW5ndGggaW5pdGlhbFRleHRJbmRlbnQoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9Cisj
aWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBzdGF0aWMgVGV4dEluZGVudExpbmUgaW5pdGlhbFRl
eHRJbmRlbnRMaW5lKCkgeyByZXR1cm4gVGV4dEluZGVudEZpcnN0TGluZTsgfQorI2VuZGlmCiAg
ICAgc3RhdGljIEVWZXJ0aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4g
QkFTRUxJTkU7IH0KICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7
IH0KICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCmluZGV4IDhjMmMwYjU4NmY0YjQ4ZWE5YWQ0MmQwMmFjYmMyNDQyNWUxZDcxMzYuLmNmM2Y5
YzBjYzFlN2NhYzhlZjJhNjk1OWQxNmI2NzRlYjg1NmRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00OTYs
NiArNDk2LDEwIEBAIGVudW0gRHJhZ2dhYmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5v
bmUsIERyYWdnYWJsZVJlZ2lvbkRyYWcsIERyYWdnYWJsZVJlCiAvLyBSZWFzb25hYmxlIG1heGlt
dW0gdG8gcHJldmVudCBpbnNhbmUgZm9udCBzaXplcyBmcm9tIGNhdXNpbmcgY3Jhc2hlcyBvbiBz
b21lIHBsYXRmb3JtcyAoc3VjaCBhcyBXaW5kb3dzKS4KIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhp
bXVtQWxsb3dlZEZvbnRTaXplID0gMTAwMDAwMC4wZjsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQp
CitlbnVtIFRleHRJbmRlbnRMaW5lIHsgVGV4dEluZGVudEZpcnN0TGluZSwgVGV4dEluZGVudEVh
Y2hMaW5lIH07CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
UmVuZGVyU3R5bGVDb25zdGFudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IGIyMTVhYjM1ODdl
MWJmMDY5N2E1MDVkN2M4ZjQ4NGMzYTZjMGMyMWUuLjk4OWFiMTk5NDgxN2E2NzQxYjc4YTE2ZmJk
Y2FkNTNmZmVjMDM1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg4LDYgKzg4LDkgQEAgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0
RW1waGFzaXNNYXJrKFRleHRFbXBoYXNpc01hcmtOb25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9z
aXRpb24oVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24o
VGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCkKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAg
ICwgbV90ZXh0SW5kZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkp
CisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5l
Qm94Q29udGFpbigpKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBt
X2ltYWdlT3JpZW50YXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZU9yaWVudGF0aW9uKCkp
CkBAIC0xNTgsNiArMTYxLDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVt
cGhhc2lzTWFyayhvLnRleHRFbXBoYXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlv
bihvLnRleHRFbXBoYXNpc1Bvc2l0aW9uKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3Rl
eHRPcmllbnRhdGlvbikKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50
TGluZShvLm1fdGV4dEluZGVudExpbmUpCisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4o
by5tX2xpbmVCb3hDb250YWluKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAg
ICAgLCBtX2ltYWdlT3JpZW50YXRpb24oby5tX2ltYWdlT3JpZW50YXRpb24pCkBAIC0yNTIsNiAr
MjU4LDkgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0
eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01h
cmsgPT0gby50ZXh0RW1waGFzaXNNYXJrCiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9u
ID09IG8udGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24g
PT0gby5tX3RleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICYm
IG1fdGV4dEluZGVudExpbmUgPT0gby5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAg
JiYgbV9saW5lQm94Q29udGFpbiA9PSBvLm1fbGluZUJveENvbnRhaW4KICAgICAgICAgJiYgaHlw
aGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUg
PT0gby5sb2NhbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGIyMjgxZjc3Mjk3MDdmN2MxM2I0NTk5YWE3
NmRmMGI1OWU5ZTczYWMuLjY3ODVhMjA5MTViMWZkOWFhMjhhYTgzZDdiZjUxODk3MmYxNzNkMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCB0ZXh0RW1waGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVk
IHRleHRFbXBoYXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1
bnNpZ25lZCBtX3RleHRPcmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorI2lmIEVO
QUJMRShDU1MzX1RFWFQpCisgICAgdW5zaWduZWQgbV90ZXh0SW5kZW50TGluZSA6IDE7IC8vIFRl
eHRJbmRlbnRFYWNoTGluZQorI2VuZGlmCiAgICAgdW5zaWduZWQgbV9saW5lQm94Q29udGFpbjog
NzsgLy8gTGluZUJveENvbnRhaW4KICAgICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKICNp
ZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI1MzQ4MThlMjgwMzBlOTQ0
ZDAyMGFjZThmNTQxZGQ0MDc3Yzk3NzIuLjdmZjU1YTI3YTA5YjZkYzg0YzE4YzFjMTcxYjc1YTgy
Y2Y1MDM3N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMy0wMy0wMyAgSmFlaHVuIExpbSAg
PGxqYWVodW4ubGltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtjc3MzLXRleHRdIFBhcnNpbmcg
ZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNzczMtdGV4dAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDIxCisKKyAgICAgICAg
ImVhY2gtbGluZSIgaXMgYWRkZWQgZm9yIHRleHQtaW5kZW50IGluIENTUzMuCisgICAgICAgIGh0
dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdGV4dC8jZWFjaC1saW5lCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWlu
aGVyaXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LWluaGVyaXRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQtaW5oZXJpdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RDb21wdXRlZFN0eWxlKToKKyAg
ICAgICAgKG93blZhbHVlVGVzdCk6CisgICAgICAgIChpbmhlcml0YW5jZVRlc3QpOgorICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3Jp
cHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0RWxlbWVudFN0eWxlKToKKyAgICAgICAgKHRlc3RDb21wdXRlZFN0eWxlKToKKyAgICAg
ICAgKHZhbHVlU2V0dGluZ1Rlc3QpOgorICAgICAgICAoaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQt
NC44L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAzLTAzICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTQ0NTY3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk2MjBiZGYzNmQzMWNmNjgxYjZlODZmMzY3OTIxYTFmMDA4ODIy
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NCBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQt
aW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWU6CitQ
QVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworVmFsdWUgJzEwZW0n
OgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcxMDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCcKKworVmFsdWUgJzEwZW0gZWFjaC1saW5lJzoKK1BB
U1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcxMGVtIGVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVtIGVhY2gtbGluZScKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCBlYWNoLWxpbmUnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHggZWFjaC1s
aW5lJworCitWYWx1ZSAnZWFjaC1saW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQg
aXMgJ2VhY2gtbGluZSAxMGVtJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJ2VhY2gtbGluZSAxMGVtJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRl
bnQgaXMgJzEwMHB4IGVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCBlYWNoLWxpbmUnCisKKworSW52YWxpZCB2YWx1
ZSB0ZXN0IC0gJzEwbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBl
LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3Qg
LSAnZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUu
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21w
dXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZmE4NTZmZWJiNjU5ZThiMTIzOTIyZDEwZmUzYzc3OTg1ZDE2MTNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRl
eHQtaW5kZW50IGlzIHByb3Blcmx5IGluaGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcxMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCku
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5j
ZXN0b3IgaXMgJzEwcHggZWFjaC1saW5lJzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
YW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggZWFjaC1s
aW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCBlYWNoLWxpbmUnCisKK1ZhbHVlIG9mIGFuY2VzdG9y
IGlzICcxMHB4IGVhY2gtbGluZScsIHdoaWxlIGNoaWxkIGlzICcxMHB4JzoKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykgaXMgJzEwcHggZWFjaC1saW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGls
ZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENv
bXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQxYjk2
NDcxMDc4ZDI3ZTE2MmQ4MzBhMzkwYmViYTM2NThjOWI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCkBAIC0wLDAgKzEs
MTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBpZD0iYW5jZXN0b3IiPjxkaXYgaWQ9ImNoaWxkIj48L2Rpdj48L2Rpdj4K
KyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LWluaGVyaXRlZC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNmUyMTVhOGNlYjZiOGVi
MGUxN2FmOTQxNDZiY2M1N2ViMDA5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0idGVz
dCIgc3R5bGU9ImZvbnQ6IDEwcHggQWhlbSI+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcyI+PC9zY3JpcHQ+CisgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENv
bXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMWVlMWU5
ODMzMGNkYzFiYmFiNmFkYjAyOGUzMjk3M2JmYzBlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUv
c2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCkBA
IC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUsIGNfdmFs
dWUpCit7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiArIGFfdmFsdWUgKyAiJyIpOwor
ICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSIsICAiJyIgKyBjX3ZhbHVlICsgIiciKTsKKyAgICBkZWJ1Zygn
Jyk7Cit9CisKK2Z1bmN0aW9uIG93blZhbHVlVGVzdChhX3ZhbHVlLCBjX3ZhbHVlKQoreworICAg
IGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAiJywgd2hpbGUgY2hp
bGQgaXMgJyIgKyBjX3ZhbHVlICsgIic6Iik7CisgICAgYW5jZXN0b3Iuc3R5bGUudGV4dEluZGVu
dCA9IGFfdmFsdWU7CisgICAgY2hpbGQuc3R5bGUudGV4dEluZGVudCA9IGNfdmFsdWU7CisgICAg
dGVzdENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIGluaGVy
aXRhbmNlVGVzdChhX3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAn
IiArIGFfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92
YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBhX3ZhbHVlKTsKK30KKworZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFsdWUgb2YgdGV4dC1pbmRlbnQg
aXMgcHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4iKTsKKworYW5jZXN0b3IgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYW5jZXN0b3InKTsKK2NoaWxkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NoaWxkJyk7CisKK2luaGVyaXRhbmNlVGVzdCgiMTBweCIpOworaW5oZXJpdGFu
Y2VUZXN0KCIxMHB4IGVhY2gtbGluZSIpOworCitvd25WYWx1ZVRlc3QoIjEwcHggZWFjaC1saW5l
IiwgIjEwcHgiKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUv
c2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0
LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUyY2I0
MmE3NjE3NTcwZGU4NjVjMTAyYjRjMGIzYTlkNzgxZjMxOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpAQCAtMCwwICsx
LDQ4IEBACitmdW5jdGlvbiB0ZXN0RWxlbWVudFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5Q1NT
LCB2YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgiZS5zdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsg
dmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIg
KyBwcm9wZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24g
dGVzdENvbXB1dGVkU3R5bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAg
IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLCBudWxsKTsKKyAgICBz
aG91bGRCZSgiY29tcHV0ZWRTdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIp
OworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBwcm9w
ZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdmFsdWVT
ZXR0aW5nVGVzdCh2YWx1ZSwgZXhwZWN0ZWRWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgJyIg
KyB2YWx1ZSArICInOiIpOworICAgIGUuc3R5bGUudGV4dEluZGVudCA9IHZhbHVlOworICAgIHRl
c3RFbGVtZW50U3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCB2YWx1ZSk7CisgICAg
dGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBleHBlY3RlZFZh
bHVlKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGludmFsaWRWYWx1ZVNldHRpbmdU
ZXN0KHZhbHVlLCBkZWZhdWx0VmFsdWUpCit7CisgICAgZGVidWcoIkludmFsaWQgdmFsdWUgdGVz
dCAtICciICsgdmFsdWUgKyAiJzoiKTsKKyAgICBlLnN0eWxlLndlYmtpdFRleHRBbGlnbkxhc3Qg
PSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50
IiwgZGVmYXVsdFZhbHVlKTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0
ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7CisgICAgZGVidWcoJycpOworfQorCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0
aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4iKTsKKworZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0Jyk7CisKK2RlYnVnKCJUZXN0IHRoZSBpbml0aWFsIHZhbHVlOiIpOwordGVz
dENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCAnMHB4Jyk7CitkZWJ1
ZygnJyk7CisKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGlu
Z1Rlc3QoJzEwZW0gZWFjaC1saW5lJywgJzEwMHB4IGVhY2gtbGluZScpOwordmFsdWVTZXR0aW5n
VGVzdCgnZWFjaC1saW5lIDEwZW0nLCAnMTAwcHggZWFjaC1saW5lJyk7CitkZWJ1ZygnJyk7CisK
K2RlZmF1bHRWYWx1ZSA9ICcwcHgnCitlLnN0eWxlLnRleHRJbmRlbnQgPSBkZWZhdWx0VmFsdWU7
CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRW
YWx1ZVNldHRpbmdUZXN0KCdlYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjk1ZDE4YmIyOGI3
YzA2NzFhNjJiMzllMmMxZGNmYzU3NTAyZTk1Yi4uNTJjN2RiODgwYmFjZTY4OTVhYTdkZjk1OGU0
YTAwYWEzYmMxN2Y0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yNDgsNiArMjQ4LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3Qv
Y3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5h
YmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgQ2hyb21pdW0gZG9lcyBub3Qgc3VwcG9ydCBz
bWFydCBwYXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0Lgogd2Via2l0Lm9yZy9iLzYwODMwIGVk
aXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYmVmYWZkNGM4YjRkMjg4
NDNkM2YxYmMwMDdkNWU0YTcyZGY5NDM4Li41YTdmMDY4ZmYyNTQwZGI5NjQ2MjQ4NDc2YzcwZTdh
NDQ5MGY2ZDI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTEzOSw2ICsxMTM5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9y
aWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMg
RU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50CiAKICMgT3VyIHNsb3cgdGVzdHMsIGluIGFscGhhYmV0aWNhbCBvcmRlci4K
IHdlYmtpdC5vcmcvYi81NzY3MiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2VuZC1zbGljZWQt
ZHJhZ2dlZC1maWxlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MWQ5MjQ3MzY5ZWIwYjNlOWFiMDJmMGZj
N2M3NmEzMzI2ZDY4NzVhLi5iNTA3MmRmZDA0ZTdiNjUxOTdmZTU1NGViYWUxMzZkOTNhNDQwOGI5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
Njk5LDYgKzY5OSw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRh
dGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJM
RV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudAogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcg
bmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDNkMWUwOTc3OGFlMDk3ODY0NzU1MmYzYWJkN2NjYWQzYmE1MGJlYjIuLmI0N2M1NzA3
YWQ3NjgzNzJiYzBjZDZlNTAyOGQ4YTc5ZGMyNmQ1OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nzk2LDYgKzU3OTYsNyBAQCB3ZWJraXQu
b3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBv
cnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5v
cmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9y
Zy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3Jn
L2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBOZWVkcyByZWJh
c2VsaW5lIGFmdGVyIGJ1ZyA4NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzkwYjFjZTczYTlkM2Q2MWM1NmFiNmQ2
ZDU3NWZiYmJhZjljMDUwZS4uNDRlMWE0MjljNmE5ODU3M2ZmMzRjZDNmMjI0YWI2MDU3YTQzYTlh
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDksNiAr
MzQ5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAj
IENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNf
VEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29y
YXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24t
bGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
CiAKICMgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIEluc3BlY3RvckNsaWVu
dDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkgaW4gcGxhdGZvcm1zIG90aGVyIHRoYW4gQ2hyb21p
dW0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODg2CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM1ZmZkM2Y0NWM5NWFh
YzUwZWZjNDM3MDhhZjMzNWEyOTNkZGM0MjcuLjIwZmE3YWE5MmI0ODUwYjk2NzI5NzMyODhjN2Zl
MzlmMmU2ZjUyZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yNDgwLDYgKzI0ODAsOCBAQCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGln
bi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3Qt
aW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRtbAogZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWlu
aGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMgQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HIGlzIGRpc2FibGVkIG9uIFdpbmRvd3MKIGNvbXBvc2l0aW5nL292
ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZlN2Q2MTYxMDFjZWJiNjFl
YjA2NGJmNGEyZThjYzM2YmVmYjA5NmIuLmRmZDc5ZWQ1ODMxZjBhOGIyMmNhOWExYTg0NTc5M2I1
YzA1M2MzNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjk4NSw2ICsyOTg1LDggQEAgd2Via2l0Lm9yZy9iLzM5NzI1IGZhc3QvZXZl
bnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsgU2tpcCBdCiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
YWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1s
YXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tbGluZS5odG1sCitmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbAog
CiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191884</attachid>
            <date>2013-03-06 18:32:46 -0800</date>
            <delta_ts>2013-03-06 23:29:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130307112848.patch</filename>
            <type>text/plain</type>
            <size>38952</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg3NTIwZThmMDc2Mzdh
NWUwZWZkNDRlZjUxN2VkY2I2OWNkZmM0Ni4uNjE1ZjMzNzc2NzVlMTgyNzQ2ZTZhZTdiMjNiODc1
OTI1ZDFhOWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA2ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAg
ICBJdCBpcyBpbXBsZW1lbnRlZCB1bmRlciBFTkFCTEVfQ1NTM19URVhUIHdpdGggIi13ZWJraXQi
IHByZWZpeC4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlTGVu
Z3RoUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojpj
cmVhdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlcjo6U3R5bGVCdWls
ZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorCiAyMDEz
LTAzLTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
YWNdIFN5bnRoZXRpYyBSZXNvdXJjZVJlc3BvbnNlcyBjYW5ub3QgYmUgc2VudCBvdmVyIElQQyB3
aXRob3V0IGxvc2luZyBtb3N0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGE2NTViM2E4NDliZTJlMGEz
NGZjMmVkMGQ0NjA2OWI0ZmUzMDg4NTUuLmVmNjQ2MDBjMWI2NDFiOTNmN2E0MTYxYTdhNTEwNmZj
N2ZkNDU1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0yMTg1LDcgKzIxODUsMTcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRJbmRlbnQ6CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgeworICAgICAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3Bh
Y2VTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhl
bFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKSk7CisgICAg
ICAgICAgICBpZiAoc3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dEluZGVudEVhY2hMaW5l
KQorICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOworICAgICAgICAgICAgcmV0dXJu
IGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CisjZWxzZQogICAgICAgICAgICAgcmV0dXJuIHpv
b21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUu
Z2V0KCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OgogICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yU2hhZG93KHN0eWxlLT50ZXh0U2hhZG93KCksIHByb3Bl
cnR5SUQsIHN0eWxlLmdldCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJp
bmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGM2ODNiMzM3NmVlOWUwYTQ0MjM5MjEx
Y2ZiZTRmNjUyMWNiNzAxYjYuLmExYzg0NGFhZWRkNjcxMTBkYjA4ZjQ4Y2RlOWMxYTU3OTRlZjQx
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01ODgsNyArNTg4LDkgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SWQsIGJvb2wmIGFjY2UKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKICAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6Cisj
aWYgIUVOQUJMRShDU1MzX1RFWFQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6Cisj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXJnaW5BZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpA
QCAtMjE4MCw4ICsyMTgyLDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNl
IENTU1Byb3BlcnR5VGV4dEluZGVudDogICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFn
ZT4gfCBpbmhlcml0Ci0gICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQo
dmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5k
ZW50OgorICAgICAgICBwYXJzZWRWYWx1ZSA9IHBhcnNlVGV4dEluZGVudCgpOworICAgICAgICBp
ZiAoIXBhcnNlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOiAgICAgICAgICAvLy8vIDxwYWRk
aW5nLXdpZHRoPiB8IGluaGVyaXQKQEAgLTkxNzMsNiArOTE3Nyw1NCBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50
KCkKK3sKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2Vu
dGFnZT4gXSAmJiAtd2Via2l0LWVhY2gtbGluZT8gfCBpbmhlcml0CisgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKwor
ICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpID09IDEpIHsKKyAgICAgICAgQ1NTUGFyc2VyVmFs
dWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+
aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAg
ICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAg
ICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIGxpc3Q7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV92YWx1ZUxpc3QtPnNpemUoKSAhPSAyKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICAKKyAgICBDU1NQYXJzZXJWYWx1ZSogZmlyc3RWYWx1ZSA9IG1f
dmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIHNlY29uZFZhbHVlID0g
bV92YWx1ZUxpc3QtPm5leHQoKTsKKworICAgIGlmICh2YWxpZFVuaXQoZmlyc3RWYWx1ZSwgRkxl
bmd0aCB8IEZQZXJjZW50KSAmJiBzZWNvbmRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNo
TGluZSkgeworICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVl
KGZpcnN0VmFsdWUpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgIG1fdmFs
dWVMaXN0LT5uZXh0KCk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIGlmIChm
aXJzdFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lICYmIHZhbGlkVW5pdChzZWNv
bmRWYWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkgeworICAgICAgICBsaXN0LT5hcHBlbmQoY3Nz
VmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlV2Via2l0RWFjaExpbmUp
KTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShzZWNv
bmRWYWx1ZSkpOworICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICByZXR1cm4g
bGlzdDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgLy8gPGxlbmd0aD4gfCA8
cGVyY2VudGFnZT4gfCBpbmhlcml0CisgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1
ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBpZiAoIXZhbHVlLT5pZCAmJiB2YWxpZFVuaXQodmFsdWUs
IEZMZW5ndGggfCBGUGVyY2VudCkpIHsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSk7CisgICAgfQor
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZUJv
eENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgTGluZUJveENvbnRhaW4gbGluZUJveENv
bnRhaW4gPSBMaW5lQm94Q29udGFpbk5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggYTk5
ZDI4NWI1NmM3MTU1YjRjMDFlMjMzMjllMTAxZTkzYjNlOGNkNC4uZjQ4MDc4MjNiOTQ3MTBmMGQ4
OTIzMTcxZWE1NjY4N2NiZTUzMGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjY0LDYg
KzI2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRleHREZWNvcmF0aW9uUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4sIGJvb2wgaW1wb3J0YW50KTsKICAgICBi
b29sIHBhcnNlVGV4dERlY29yYXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KTsKIAorICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlVGV4dEluZGVudCgpOworICAg
IAogICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAgICAgYm9v
bCBwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRW
YWx1ZVJhbmdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBm
ODQwMmM1YzZiMDBiOGVmODQ4YmQxNTQwYzk4YWVhN2RhNjM4NDMyLi4zNGViY2I4YWZmNGVlZjI1
MGRmZWQ5MmNlMWUzNTM5Njc0NDdhMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgpAQCAtMTAwMiwzICsxMDAyLDkgQEAgc25hcAogZHJhZwogbm8tZHJhZwogI2VuZGlm
CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RFWFQKKy8v
IHRleHQtaW5kZW50Cistd2Via2l0LWVhY2gtbGluZQorI2VuZGlmCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQnVpbGRlci5jcHAKaW5kZXggN2Q3ZWU5ZjljYjE1MTA0ZmQ3MTlkZTJhOTU0NTYzZDIwYzBm
NzczYy4uZWYxODU2NWEwNzM3Y2VhOTQ5NzVjYzMzNzE3Y2M0ZTE2NmFmNWQwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE3OTIsNiArMTc5Miw4MSBAQCBwdWJsaWM6CiB9
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorY2xhc3MgQXBwbHlQcm9wZXJ0eVRl
eHRJbmRlbnQgeworcHJpdmF0ZToKKyAgICBzdGF0aWMgTGVuZ3RoIGNvbXB1dGVMZW5ndGgoU3R5
bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlKQorICAgIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7Cisg
ICAgICAgICAgICBMZW5ndGggbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8
TGVuZ3RoPihzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVu
dFN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAg
ICAgICAgICBsZW5ndGguc2V0UXVpcmsocHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKTsK
KyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlLT5pc1BlcmNlbnRhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBMZW5ndGgocHJp
bWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOworICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcHJpbWl0aXZlVmFsdWUtPnZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpOworCisgICAg
ICAgIHJldHVybiBMZW5ndGgoKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBh
cHBseUluaGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29s
dmVyKQorICAgIHsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVu
dExpbmUoc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7Cisg
ICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnQoc3R5bGVSZXNvbHZl
ci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudCgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9p
ZCBhcHBseUluaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJl
c29sdmVyKQorICAgIHsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dElu
ZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRJbmRlbnQoKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQ
cm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUp
CisgICAgeworICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIExlbmd0aCB0ZXh0SW5kZW50ID0gUmVuZGVyU3R5bGU6OmluaXRp
YWxUZXh0SW5kZW50KCk7CisgICAgICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRlbnRMaW5lID0g
UmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpOworCisgICAgICAgIENTU1ZhbHVl
TGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAg
ICAgICBpZiAodmFsdWVMaXN0LT5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CisgICAgICAgICAgICB0
ZXh0SW5kZW50ID0gY29tcHV0ZUxlbmd0aChzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZSk7
CisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHRleHRJ
bmRlbnQpOworICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVu
dExpbmUodGV4dEluZGVudExpbmUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHZhbHVlTGlzdC0+bGVuZ3RoKCkgIT0gMikKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogZmlyc3RWYWx1ZSA9IHN0YXRpY19jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDAp
KTsKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHNlY29uZFZhbHVlID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMSkp
OworCisgICAgICAgIGlmICghZmlyc3RWYWx1ZS0+Z2V0SWRlbnQoKSAmJiBzZWNvbmRWYWx1ZS0+
Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSB7CisgICAgICAgICAgICB0ZXh0
SW5kZW50ID0gY29tcHV0ZUxlbmd0aChzdHlsZVJlc29sdmVyLCBmaXJzdFZhbHVlKTsKKyAgICAg
ICAgICAgIHRleHRJbmRlbnRMaW5lID0gVGV4dEluZGVudEVhY2hMaW5lOworICAgICAgICB9IGVs
c2UgaWYgKGZpcnN0VmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSAm
JiAhc2Vjb25kVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgIHRleHRJbmRlbnQgPSBj
b21wdXRlTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHNlY29uZFZhbHVlKTsKKyAgICAgICAgICAgIHRl
eHRJbmRlbnRMaW5lID0gVGV4dEluZGVudEVhY2hMaW5lOworICAgICAgICB9CisKKyAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudCh0ZXh0SW5kZW50KTsKKyAgICAg
ICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUodGV4dEluZGVudExp
bmUpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5k
bGVyIGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxl
cigmYXBwbHlJbmhlcml0VmFsdWUsICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOwor
ICAgIH0KK307CisjZW5kaWYKKwogY29uc3QgU3R5bGVCdWlsZGVyJiBTdHlsZUJ1aWxkZXI6OnNo
YXJlZFN0eWxlQnVpbGRlcigpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUJ1aWxk
ZXIsIHN0eWxlQnVpbGRlckluc3RhbmNlLCAoKSk7CkBAIC0xOTA1LDggKzE5ODAsMTAgQEAgU3R5
bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uTGluZSwgQXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9u
OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uU3R5bGUsIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHREZWNvcmF0
aW9uU3R5bGUsICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25TdHlsZSwgVGV4dERlY29yYXRp
b25TdHlsZSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RGVjb3JhdGlvblN0eWxlLCBUZXh0RGVjb3Jh
dGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlPjo6Y3Jl
YXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRU
ZXh0QWxpZ25MYXN0LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxpZ25MYXN0LCAmUmVuZGVy
U3R5bGU6OnRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6c2V0VGV4
dEFsaWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEFsaWdu
TGFzdD46OmNyZWF0ZUhhbmRsZXIoKSk7Ci0jZW5kaWYgLy8gQ1NTM19URVhUCisgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRl
bnQ6OmNyZWF0ZUhhbmRsZXIoKSk7CisjZWxzZQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQ
cm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjp0ZXh0
SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworI2VuZGlmIC8vIENTUzNfVEVYVAogICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0
eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92
ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlG
b250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9k
ZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVy
aW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJl
bmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpz
ZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4
dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBiYTVkNjYwM2Q2YWY4MTc1ZjgyNzJiMDA0
ZTA3ZmJhOTY2NjM2ZTQ3Li5hMDBlNGY2MjBjNjkyYTIzYWNlNjExOGZhMjdhODlmNzQ5OTUyNzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
QEAgLTQ4MSw2ICs0ODEsOSBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29u
c3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgIGlmIChyYXJl
SW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpIHsK
ICAgICAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT5oaWdobGlnaHQKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT5pbmRlbnQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQKKyNpZiBFTkFCTEUo
Q1NTM19URVhUKQorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVu
dExpbmUgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lCisjZW5k
aWYKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0g
b3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8
IHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0U2l6ZUFkanVzdCAhPSBvdGhlci0+cmFyZUluaGVyaXRl
ZERhdGEtPnRleHRTaXplQWRqdXN0CiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+
d29yZEJyZWFrICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDMyODE5YWQ2N2M0
MjgyMTc0NWEzNzZiOTg0ZmQyNWNlYzZkNjZiY2UuLjA3ZjdmYjU5MWUwNzQ5OTZjM2E4OTA1NjNj
ODA4YmZkNDgwMjU4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC01NjgsNiArNTY4LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBMZW5n
dGggdGV4dEluZGVudCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQ7
IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIFRleHRJbmRlbnRMaW5lIHRleHRJbmRlbnRM
aW5lKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dEluZGVudExpbmU+KHJhcmVJbmhl
cml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lKTsgfQorI2VuZGlmCiAgICAgRVRleHRBbGlnbiB0
ZXh0QWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dEFsaWduPihpbmhlcml0
ZWRfZmxhZ3MuX3RleHRfYWxpZ24pOyB9CiAgICAgRVRleHRUcmFuc2Zvcm0gdGV4dFRyYW5zZm9y
bSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0VHJhbnNmb3JtPihpbmhlcml0ZWRf
ZmxhZ3MuX3RleHRfdHJhbnNmb3JtKTsgfQogICAgIEVUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3Jh
dGlvbnNJbkVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0RGVjb3JhdGlv
bj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zKTsgfQpAQCAtMTExMiw2ICsxMTE1
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZv
aWQgc2V0VGV4dEluZGVudChMZW5ndGggdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBp
bmRlbnQsIHYpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICB2b2lkIHNldFRleHRJbmRl
bnRMaW5lKFRleHRJbmRlbnRMaW5lIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV90
ZXh0SW5kZW50TGluZSwgdik7IH0KKyNlbmRpZgogICAgIHZvaWQgc2V0VGV4dEFsaWduKEVUZXh0
QWxpZ24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24gPSB2OyB9CiAgICAgdm9pZCBz
ZXRUZXh0VHJhbnNmb3JtKEVUZXh0VHJhbnNmb3JtIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0
X3RyYW5zZm9ybSA9IHY7IH0KICAgICB2b2lkIGFkZFRvVGV4dERlY29yYXRpb25zSW5FZmZlY3Qo
RVRleHREZWNvcmF0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zIHw9
IHY7IH0KQEAgLTE1ODYsNiArMTU5Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTGVuZ3RoIGlu
aXRpYWxNYXJnaW4oKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CiAgICAgc3RhdGljIExlbmd0
aCBpbml0aWFsUGFkZGluZygpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMg
TGVuZ3RoIGluaXRpYWxUZXh0SW5kZW50KCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQorI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgc3RhdGljIFRleHRJbmRlbnRMaW5lIGluaXRpYWxUZXh0
SW5kZW50TGluZSgpIHsgcmV0dXJuIFRleHRJbmRlbnRGaXJzdExpbmU7IH0KKyNlbmRpZgogICAg
IHN0YXRpYyBFVmVydGljYWxBbGlnbiBpbml0aWFsVmVydGljYWxBbGlnbigpIHsgcmV0dXJuIEJB
U0VMSU5FOyB9CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxXaWRvd3MoKSB7IHJldHVybiAyOyB9
CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxPcnBoYW5zKCkgeyByZXR1cm4gMjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAppbmRleCBkYTk1ODYwN2M5YmFkYTdjMjg4ZWFlNGE0NzI4ZjZhMTI2YjUxZWEwLi5iZWUyN2Iz
ZDQ0OGRkODU2NGNlNGVmMDViZGRhNmM1NDMxY2VmMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNTAzLDYg
KzUwMywxMCBAQCBlbnVtIERyYWdnYWJsZVJlZ2lvbk1vZGUgeyBEcmFnZ2FibGVSZWdpb25Ob25l
LCBEcmFnZ2FibGVSZWdpb25EcmFnLCBEcmFnZ2FibGVSZQogLy8gUmVhc29uYWJsZSBtYXhpbXVt
IHRvIHByZXZlbnQgaW5zYW5lIGZvbnQgc2l6ZXMgZnJvbSBjYXVzaW5nIGNyYXNoZXMgb24gc29t
ZSBwbGF0Zm9ybXMgKHN1Y2ggYXMgV2luZG93cykuCiBzdGF0aWMgY29uc3QgZmxvYXQgbWF4aW11
bUFsbG93ZWRGb250U2l6ZSA9IDEwMDAwMDAuMGY7CiAKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQor
ZW51bSBUZXh0SW5kZW50TGluZSB7IFRleHRJbmRlbnRGaXJzdExpbmUsIFRleHRJbmRlbnRFYWNo
TGluZSB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJl
bmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBiMjE1YWIzNTg3ZTFi
ZjA2OTdhNTA1ZDdjOGY0ODRjM2E2YzBjMjFlLi45ODlhYjE5OTQ4MTdhNjc0MWI3OGExNmZiZGNh
ZDUzZmZlYzAzNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC04OCw2ICs4OCw5IEBAIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoKQogICAgICwgdGV4dEVt
cGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrTm9uZSkKICAgICAsIHRleHRFbXBoYXNpc1Bvc2l0
aW9uKFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKICAgICAsIG1fdGV4dE9yaWVudGF0aW9uKFRl
eHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAs
IG1fdGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpKQor
I2VuZGlmCiAgICAgLCBtX2xpbmVCb3hDb250YWluKFJlbmRlclN0eWxlOjppbml0aWFsTGluZUJv
eENvbnRhaW4oKSkKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICwgbV9p
bWFnZU9yaWVudGF0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VPcmllbnRhdGlvbigpKQpA
QCAtMTU4LDYgKzE2MSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICAgICAsIHRleHRFbXBo
YXNpc01hcmsoby50ZXh0RW1waGFzaXNNYXJrKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24o
by50ZXh0RW1waGFzaXNQb3NpdGlvbikKICAgICAsIG1fdGV4dE9yaWVudGF0aW9uKG8ubV90ZXh0
T3JpZW50YXRpb24pCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAsIG1fdGV4dEluZGVudExp
bmUoby5tX3RleHRJbmRlbnRMaW5lKQorI2VuZGlmCiAgICAgLCBtX2xpbmVCb3hDb250YWluKG8u
bV9saW5lQm94Q29udGFpbikKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAg
ICwgbV9pbWFnZU9yaWVudGF0aW9uKG8ubV9pbWFnZU9yaWVudGF0aW9uKQpAQCAtMjUyLDYgKzI1
OCw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiB0ZXh0RW1waGFzaXNNYXJr
ID09IG8udGV4dEVtcGhhc2lzTWFyawogICAgICAgICAmJiB0ZXh0RW1waGFzaXNQb3NpdGlvbiA9
PSBvLnRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgICAgICYmIG1fdGV4dE9yaWVudGF0aW9uID09
IG8ubV90ZXh0T3JpZW50YXRpb24KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICAmJiBt
X3RleHRJbmRlbnRMaW5lID09IG8ubV90ZXh0SW5kZW50TGluZQorI2VuZGlmCiAgICAgICAgICYm
IG1fbGluZUJveENvbnRhaW4gPT0gby5tX2xpbmVCb3hDb250YWluCiAgICAgICAgICYmIGh5cGhl
bmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJpbmcKICAgICAgICAgJiYgbG9jYWxlID09
IG8ubG9jYWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMjI4MWY3NzI5NzA3ZjdjMTNiNDU5OWFhNzZk
ZjBiNTllOWU3M2FjLi42Nzg1YTIwOTE1YjFmZDlhYTI4YWE4M2Q3YmY1MTg5NzJmMTczZDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
dGV4dEVtcGhhc2lzTWFyayA6IDM7IC8vIFRleHRFbXBoYXNpc01hcmsKICAgICB1bnNpZ25lZCB0
ZXh0RW1waGFzaXNQb3NpdGlvbiA6IDE7IC8vIFRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgdW5z
aWduZWQgbV90ZXh0T3JpZW50YXRpb24gOiAyOyAvLyBUZXh0T3JpZW50YXRpb24KKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgIHVuc2lnbmVkIG1fdGV4dEluZGVudExpbmUgOiAxOyAvLyBUZXh0
SW5kZW50RWFjaExpbmUKKyNlbmRpZgogICAgIHVuc2lnbmVkIG1fbGluZUJveENvbnRhaW46IDc7
IC8vIExpbmVCb3hDb250YWluCiAgICAgLy8gQ1NTIEltYWdlIFZhbHVlcyBMZXZlbCAzCiAjaWYg
RU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NDUwNzhhMDY4ZjFjMWUxOGM3
YzBkZTQwOTRjYzQzMWNjNzZjMDE2Li44OGMxYTU0M2Y5YzBjZTI5NTU2MjM3YTdjMzE2NGI2MjBm
NGNlODNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDMtMDYgIEphZWh1biBMaW0gIDxs
amFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbY3NzMy10ZXh0XSBQYXJzaW5nIC13
ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNzczMtdGV4dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDIxCisKKyAg
ICAgICAgImVhY2gtbGluZSIgaXMgYWRkZWQgZm9yIHRleHQtaW5kZW50IGluIENTUzMuCisgICAg
ICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdGV4dC8jZWFjaC1saW5lCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtaW5kZW50LWluaGVyaXRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtaW5oZXJpdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RDb21wdXRlZFN0eWxl
KToKKyAgICAgICAgKG93blZhbHVlVGVzdCk6CisgICAgICAgIChpbmhlcml0YW5jZVRlc3QpOgor
ICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0RWxlbWVudFN0eWxlKToKKyAgICAgICAgKHRlc3RDb21wdXRlZFN0eWxlKToK
KyAgICAgICAgKHZhbHVlU2V0dGluZ1Rlc3QpOgorICAgICAgICAoaW52YWxpZFZhbHVlU2V0dGlu
Z1Rlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQtbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAzLTA2ICBSYWZhZWwgV2Vp
bnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJk
ZW5pbmc6IHJlYmFzZWxpbmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNTMyZGVkOTBkMmFlM2RjY2NjZTk0ZDRiYTQ1ODVk
NTczYzE4ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTAgQEAKK1RoaXMgdGVzdHMgY2hlY2sgdGhh
dCB0ZXh0LWluZGVudCBwYXJzZXMgcHJvcGVybHkgdGhlIHByb3BlcnRpZXMgZnJvbSBDU1MzIFRl
eHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IHRoZSBpbml0aWFsIHZh
bHVlOgorUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK1ZhbHVl
ICcxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcxMGVtJworUEFTUyBlLnN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwZW0nCitQQVNTIGNvbXB1dGVk
U3R5bGUudGV4dEluZGVudCBpcyAnMTAwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHgnCisKK1ZhbHVlICcyMGV4JzoKK1BBU1Mg
ZS5zdHlsZS50ZXh0SW5kZW50IGlzICcyMGV4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzIwZXgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVu
dCBpcyAnMjAwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMjAwcHgnCisKK1ZhbHVlICc1MCUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRl
bnQgaXMgJzUwJScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnNTAlJworUEFTUyBj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzUwJScKKwor
VmFsdWUgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQg
aXMgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0
ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29t
cHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCAtd2Vi
a2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQtZWFjaC1saW5lIDEwZW0nOgorUEFTUyBl
LnN0eWxlLnRleHRJbmRlbnQgaXMgJy13ZWJraXQtZWFjaC1saW5lIDEwZW0nCitQQVNTIGUuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnLXdlYmtpdC1lYWNoLWxpbmUg
MTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJzIwZXggLXdlYmtpdC1l
YWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzIwZXggLXdlYmtpdC1lYWNo
LWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlz
ICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFs
dWUgJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
Jy13ZWJraXQtZWFjaC1saW5lIDIwZXgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCcKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCAtd2Via2l0
LWVhY2gtbGluZScKKworVmFsdWUgJzMwJSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5
bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBlLnN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScK
K1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUn
CitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MzAlIC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMzAlJzoK
K1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICctd2Via2l0LWVhY2gtbGluZSAzMCUnCitQQVNT
IGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnLXdlYmtpdC1lYWNo
LWxpbmUgMzAlJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0
LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCisKKworSW52YWxpZCB2YWx1ZSB0ZXN0
IC0gJzEwbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBt
IC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQ
QVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFT
UyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUg
dGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAxMG0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQg
aXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52
YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwZW0gMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBp
cyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZh
bGlkIHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJ
bmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFT
UyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcK
KworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSc6CitQ
QVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5k
ZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1lYWNoLWxp
bmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAn
MHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBw
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGZkNGUwOTRkMDRlYTM3MDU1YThlMjFlYjRhZmUzNDI0YmMxMzljZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRo
ZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBpbmhlcml0ZWQgdG8gdGhlIGNoaWxk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMg
JzEwcHgnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHgnCisK
K1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IC13
ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCAtd2Via2l0LWVh
Y2gtbGluZScsIHdoaWxlIGNoaWxkIGlzICcxMHB4JzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHgg
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDFiOTY0NzEw
NzhkMjdlMTYyZDgzMGEzOTBiZWJhMzY1OGM5YjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IGlkPSJhbmNlc3RvciI+PGRpdiBpZD0iY2hpbGQiPjwvZGl2PjwvZGl2PgorICA8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5o
ZXJpdGVkLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQyODBhMjBlMTgwYzI2ZjcwMjZl
NWMyNzkxNWFkNmQwZTdiMTRjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtaW5kZW50Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0IiBz
dHlsZT0iZm9udDogMTBweCBBaGVtOyI+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMzdjZjk1ZTQ3
NGY1MDllNjJkMGEyNmI1NTVkMDc5N2ZlY2QxMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2Ny
aXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCkBAIC0w
LDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUsIGNfdmFsdWUp
Cit7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiArIGFfdmFsdWUgKyAiJyIpOworICAg
IHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSIsICAiJyIgKyBjX3ZhbHVlICsgIiciKTsKKyAgICBkZWJ1ZygnJyk7
Cit9CisKK2Z1bmN0aW9uIG93blZhbHVlVGVzdChhX3ZhbHVlLCBjX3ZhbHVlKQoreworICAgIGRl
YnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAiJywgd2hpbGUgY2hpbGQg
aXMgJyIgKyBjX3ZhbHVlICsgIic6Iik7CisgICAgYW5jZXN0b3Iuc3R5bGUudGV4dEluZGVudCA9
IGFfdmFsdWU7CisgICAgY2hpbGQuc3R5bGUudGV4dEluZGVudCA9IGNfdmFsdWU7CisgICAgdGVz
dENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIGluaGVyaXRh
bmNlVGVzdChhX3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiAr
IGFfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1
ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBhX3ZhbHVlKTsKK30KKworZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFsdWUgb2YgdGV4dC1pbmRlbnQgaXMg
cHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4iKTsKKworYW5jZXN0b3IgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYW5jZXN0b3InKTsKK2NoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NoaWxkJyk7CisKK2luaGVyaXRhbmNlVGVzdCgiMTBweCIpOworaW5oZXJpdGFuY2VU
ZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5lIik7CisKK293blZhbHVlVGVzdCgiMTBweCAtd2Vi
a2l0LWVhY2gtbGluZSIsICIxMHB4Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGExYTAwYmZhMmY1MjgxZTQxOWQ4
OTk5NTFlZDY4NjRjODY4MzE1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpAQCAtMCwwICsxLDU5IEBACitmdW5jdGlv
biB0ZXN0RWxlbWVudFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5Q1NTLCB2YWx1ZSkKK3sKKyAg
ICBzaG91bGRCZSgiZS5zdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIpOwor
ICAgIHNob3VsZEJlKCJlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyAr
ICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5
bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAgIGNvbXB1dGVkU3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLCBudWxsKTsKKyAgICBzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJl
KCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyArICInKSIs
ICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdmFsdWVTZXR0aW5nVGVzdCh2YWx1
ZSwgZXhwZWN0ZWRWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgJyIgKyB2YWx1ZSArICInOiIp
OworICAgIGUuc3R5bGUudGV4dEluZGVudCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUo
InRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCB2YWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5
bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBleHBlY3RlZFZhbHVlKTsKKyAgICBkZWJ1
ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBkZWZh
dWx0VmFsdWUpCit7CisgICAgZGVidWcoIkludmFsaWQgdmFsdWUgdGVzdCAtICciICsgdmFsdWUg
KyAiJzoiKTsKKyAgICBlLnN0eWxlLnRleHRJbmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVu
dFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICB0
ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1
ZSk7CisgICAgZGVidWcoJycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0
aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMg
VGV4dC4iKTsKKworZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK2RlYnVn
KCJUZXN0IHRoZSBpbml0aWFsIHZhbHVlOiIpOwordGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRl
bnQiLCAidGV4dC1pbmRlbnQiLCAnMHB4Jyk7CitkZWJ1ZygnJyk7CisKK3ZhbHVlU2V0dGluZ1Rl
c3QoJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXgnLCAnMjAwcHgnKTsK
K3ZhbHVlU2V0dGluZ1Rlc3QoJzUwJScsICc1MCUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0g
LXdlYmtpdC1lYWNoLWxpbmUnLCAnMTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0
dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDEwZW0nLCAnMTAwcHggLXdlYmtpdC1lYWNoLWxp
bmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnLCAnMjAwcHgg
LXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5l
IDIwZXgnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzMw
JSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0
dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDMwJScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUn
KTsKK2RlYnVnKCcnKTsKKworZGVmYXVsdFZhbHVlID0gJzBweCcKK2Uuc3R5bGUudGV4dEluZGVu
dCA9IGRlZmF1bHRWYWx1ZTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMG0nLCBkZWZhdWx0
VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwbSAtd2Via2l0LWVhY2gtbGluZScs
IGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxp
bmUgMTBtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIDEw
ZW0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFj
aC1saW5lJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIC13
ZWJraXQtZWFjaC1saW5lIDEwZW0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGlu
Z1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0
VmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMmVlMjJjMTUxYWE4MDU3ZGNkYmE1YjRhMDM0MjljYmU2MzQ3MGJmNS4uOTA2NzMy
MDdjM2E1MTNmMzliMGNiZmY4MTQ3ZDc5MmExN2ZiZTBhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjksNiArMjI5LDcgQEAgd2Vi
a2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBz
dXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJr
aXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtp
dC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0
Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgQ2hyb21p
dW0gZG9lcyBub3Qgc3VwcG9ydCBzbWFydCBwYXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0Lgog
d2Via2l0Lm9yZy9iLzYwODMwIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0
LWNvbnRyb2wuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxMGJhNTk2OWM3NzRlMWFhNzY5YjI0ZDE5MzEwOGVkYzA0ZDYxYjY4Li5jYWExMDczNzNi
M2I5NDA1MWMyM2YzNzQwNGRlODZjZTRkMTQ0NGExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEzNiw2ICsxMTM2LDcgQEAgd2Via2l0Lm9yZy9iLzg5
MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5v
dCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0
OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3
MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAy
MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgT3VyIHNsb3cgdGVzdHMsIGlu
IGFscGhhYmV0aWNhbCBvcmRlci4KIHdlYmtpdC5vcmcvYi81NzY3MiBodHRwL3Rlc3RzL2xvY2Fs
L2ZpbGVhcGkvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MWQ5
MjQ3MzY5ZWIwYjNlOWFiMDJmMGZjN2M3NmEzMzI2ZDY4NzVhLi5iNTA3MmRmZDA0ZTdiNjUxOTdm
ZTU1NGViYWUxMzZkOTNhNDQwOGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC00LjgvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00Ljgv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNjk5LDYgKzY5OSw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBm
YXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0
IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIg
YnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LW1hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNkMWUwOTc3OGFlMDk3ODY0NzU1MmYzYWJkN2Nj
YWQzYmE1MGJlYjIuLmI0N2M1NzA3YWQ3NjgzNzJiYzBjZDZlNTAyOGQ4YTc5ZGMyNmQ1OTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nzk2
LDYgKzU3OTYsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRp
b24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVf
Q1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
ZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1h
bGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1p
bmRlbnQKIAogIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJ1ZyA4NjQ0MQogIyBmYWlsaW5nIG5l
dyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGM3
YTYyMDkzYWRmNzZjNGRlZjZhODRlNmVmMzU2MGIxOTk0Mzg4Mi4uZTI1ZmM0MDY4YjI1ZTc0ZmUx
NjNhMDdlNTc5ZTVkOGU0ODFkN2RkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zNDksNiArMzQ5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3Nz
L2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxl
ZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1cHBv
cnQgZm9yIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkgaW4gcGxhdGZv
cm1zIG90aGVyIHRoYW4gQ2hyb21pdW0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgyODg2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDMyOGVhNjBjYzdlMjI1NmE4MDQwOWE4ZGNmNDI3YTg2NTBhYjQzMjkuLmYyNDQ2MDE1
YjhhYjAxZjgxMzAxYjA3ODgxMzg5ZDBiOTE4NDIyZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNDg1LDYgKzI0ODUsOCBAQCBmYXN0L3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwKIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFs
aWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5o
dG1sCiAKICMgQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGRpc2FibGVkIG9uIFdp
bmRvd3MKIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDJmNWJkOGU4NTM2YzI2YTY5NzUyOTgxY2IyYTVhZjE3MjM4NTIyNDkuLjgxNmViNDU4YjE5
MzNjM2UzZjRkNjM0MTk4N2Q3OGU2MGQzODU4ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk3NSw2ICsyOTc1LDggQEAgd2Via2l0
Lm9yZy9iLzM5NzI1IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsg
U2tpcCBdCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRp
b24tbGluZS5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5
bGUtdGV4dC1pbmRlbnQuaHRtbAogCiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdl
YmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tl
ZC13b3JkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191931</attachid>
            <date>2013-03-06 23:29:52 -0800</date>
            <delta_ts>2013-03-12 22:57:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130307162553.patch</filename>
            <type>text/plain</type>
            <size>39101</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg3NTIwZThmMDc2Mzdh
NWUwZWZkNDRlZjUxN2VkY2I2OWNkZmM0Ni4uNjE1ZjMzNzc2NzVlMTgyNzQ2ZTZhZTdiMjNiODc1
OTI1ZDFhOWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA2ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAg
ICBJdCBpcyBpbXBsZW1lbnRlZCB1bmRlciBFTkFCTEVfQ1NTM19URVhUIHdpdGggIi13ZWJraXQi
IHByZWZpeC4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlTGVu
Z3RoUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojpj
cmVhdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlcjo6U3R5bGVCdWls
ZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorCiAyMDEz
LTAzLTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
YWNdIFN5bnRoZXRpYyBSZXNvdXJjZVJlc3BvbnNlcyBjYW5ub3QgYmUgc2VudCBvdmVyIElQQyB3
aXRob3V0IGxvc2luZyBtb3N0IGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGE2NTViM2E4NDliZTJlMGEz
NGZjMmVkMGQ0NjA2OWI0ZmUzMDg4NTUuLmVmNjQ2MDBjMWI2NDFiOTNmN2E0MTYxYTdhNTEwNmZj
N2ZkNDU1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0yMTg1LDcgKzIxODUsMTcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRJbmRlbnQ6CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgeworICAgICAg
ICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3Bh
Y2VTZXBhcmF0ZWQoKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhl
bFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKSk7CisgICAg
ICAgICAgICBpZiAoc3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dEluZGVudEVhY2hMaW5l
KQorICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOworICAgICAgICAgICAgcmV0dXJu
IGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CisjZWxzZQogICAgICAgICAgICAgcmV0dXJuIHpv
b21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUu
Z2V0KCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hhZG93OgogICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yU2hhZG93KHN0eWxlLT50ZXh0U2hhZG93KCksIHByb3Bl
cnR5SUQsIHN0eWxlLmdldCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJp
bmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGM2ODNiMzM3NmVlOWUwYTQ0MjM5MjEx
Y2ZiZTRmNjUyMWNiNzAxYjYuLjE0ZDdmMjUxOWFmYjdiY2IxNWM1OWU5YmIyOWE5YmZkYTk4Yzli
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01ODgsNyArNTg4LDkgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SWQsIGJvb2wmIGFjY2UKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmlnaHQ6CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKICAgICBjYXNlIENTU1Byb3BlcnR5UmlnaHQ6Cisj
aWYgIUVOQUJMRShDU1MzX1RFWFQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6Cisj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXJnaW5BZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpA
QCAtMjE4MCw4ICsyMTgyLDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNl
IENTU1Byb3BlcnR5VGV4dEluZGVudDogICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFn
ZT4gfCBpbmhlcml0Ci0gICAgICAgIHZhbGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQo
dmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5k
ZW50OgorICAgICAgICBwYXJzZWRWYWx1ZSA9IHBhcnNlVGV4dEluZGVudCgpOworICAgICAgICBp
ZiAoIXBhcnNlZFZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9wOiAgICAgICAgICAvLy8vIDxwYWRk
aW5nLXdpZHRoPiB8IGluaGVyaXQKQEAgLTkxNzMsNiArOTE3Nyw1OSBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VUZXh0RW1waGFzaXNTdHlsZShib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50
KCkKK3sKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2Vu
dGFnZT4gXSAmJiAtd2Via2l0LWVhY2gtbGluZT8gfCBpbmhlcml0CisgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKwor
ICAgIC8vIG9ubHkgMSB2YWx1ZSwgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+CisgICAgLy8gPGxl
bmd0aD4gfCA8cGVyY2VudGFnZT4KKyAgICBpZiAobV92YWx1ZUxpc3QtPnNpemUoKSA9PSAxKSB7
CisgICAgICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7
CisgICAgICAgIGlmICghdmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQ
ZXJjZW50KSkgeworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVy
aWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAg
ICAgICAgIHJldHVybiBsaXN0OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1fdmFsdWVM
aXN0LT5zaXplKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyAyIHZhbHVlcywg
PGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHdpdGggLXdlYmtpdC1lYWNoLWxpbmUgaW4gYW55IG9y
ZGVyICAgIAorICAgIENTU1BhcnNlclZhbHVlKiBmaXJzdFZhbHVlID0gbV92YWx1ZUxpc3QtPmN1
cnJlbnQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZSogc2Vjb25kVmFsdWUgPSBtX3ZhbHVlTGlzdC0+
bmV4dCgpOworCisgICAgLy8gWzxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+XSAtd2Via2l0LWVhY2gt
bGluZQorICAgIGlmICh2YWxpZFVuaXQoZmlyc3RWYWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSAm
JiBzZWNvbmRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkgeworICAgICAgICBs
aXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGZpcnN0VmFsdWUpKTsKKyAg
ICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7Cisg
ICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIC8vIC13ZWJraXQtZWFjaC1saW5lIFs8
bGVuZ3RoPiB8IDxwZXJjZW50YWdlPl0KKyAgICBpZiAoZmlyc3RWYWx1ZS0+aWQgPT0gQ1NTVmFs
dWVXZWJraXRFYWNoTGluZSAmJiB2YWxpZFVuaXQoc2Vjb25kVmFsdWUsIEZMZW5ndGggfCBGUGVy
Y2VudCkpIHsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgIGxpc3QtPmFwcGVu
ZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoc2Vjb25kVmFsdWUpKTsKKyAgICAgICAgbV92
YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgfQorCisgICAgcmV0
dXJuIDA7CisjZWxzZQorICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAor
ICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAg
aWYgKCF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKSB7
CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIHJldHVybiBjcmVhdGVQcmlt
aXRpdmVOdW1lcmljVmFsdWUodmFsdWUpOworICAgIH0KKworICAgIHJldHVybiAwOworI2VuZGlm
Cit9CisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50
KQogewogICAgIExpbmVCb3hDb250YWluIGxpbmVCb3hDb250YWluID0gTGluZUJveENvbnRhaW5O
b25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGE5OWQyODViNTZjNzE1NWI0YzAxZTIzMzI5
ZTEwMWU5M2IzZThjZDQuLmY0ODA3ODIzYjk0NzEwZjBkODkyMzE3MWVhNTY2ODdjYmU1MzBjNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI2NCw2ICsyNjQsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhZGRUZXh0RGVjb3JhdGlvblByb3BlcnR5KENTU1Byb3BlcnR5SUQsIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+LCBib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJzZVRleHREZWNvcmF0aW9u
KENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAKKyAgICBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsKKyAgICAKICAgICBib29sIHBhcnNlTGluZUJv
eENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VDYWxjdWxhdGlvbihDU1NQ
YXJzZXJWYWx1ZSosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggZjg0MDJjNWM2YjAwYjhlZjg0OGJkMTU0
MGM5OGFlYTdkYTYzODQzMi4uMzRlYmNiOGFmZjRlZWYyNTBkZmVkOTJjZTFlMzUzOTY3NDQ3YTI2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEwMDIsMyArMTAw
Miw5IEBAIHNuYXAKIGRyYWcKIG5vLWRyYWcKICNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVf
Q1NTM19URVhUKSAmJiBFTkFCTEVfQ1NTM19URVhUCisvLyB0ZXh0LWluZGVudAorLXdlYmtpdC1l
YWNoLWxpbmUKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDdk
N2VlOWY5Y2IxNTEwNGZkNzE5ZGUyYTk1NDU2M2QyMGMwZjc3M2MuLjA1YjIzMTg4NjQ3M2IxODRh
NTljYTAwZTcyOGZkOTY1ZjRmMzAzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3Bw
CkBAIC0xNzkyLDYgKzE3OTIsODEgQEAgcHVibGljOgogfTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KENTUzNfVEVYVCkKK2NsYXNzIEFwcGx5UHJvcGVydHlUZXh0SW5kZW50IHsKK3ByaXZhdGU6Cisg
ICAgc3RhdGljIExlbmd0aCBjb21wdXRlTGVuZ3RoKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIsIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSkKKyAgICB7CisgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNMZW5ndGgoKSkgeworICAgICAgICAgICAgTGVuZ3RoIGxlbmd0
aCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpOworICAgICAgICAgICAgbGVuZ3RoLnNldFF1aXJr
KHByaW1pdGl2ZVZhbHVlLT5pc1F1aXJrVmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm4gbGVu
Z3RoOworICAgICAgICB9CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdl
KCkpCisgICAgICAgICAgICByZXR1cm4gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVW
YWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1ZpZXdwb3J0
UGVyY2VudGFnZUxlbmd0aCgpKQorICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLT52
aWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKTsKKworICAgICAgICByZXR1cm4gTGVuZ3RoKCk7Cisg
ICAgfQorCitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoQ1NTUHJv
cGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikKKyAgICB7CisgICAgICAgIHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKHN0eWxlUmVzb2x2ZXItPnBh
cmVudFN0eWxlKCktPnRleHRJbmRlbnRMaW5lKCkpOworICAgICAgICBzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLT5zZXRUZXh0SW5kZW50KHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRJ
bmRlbnQoKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoQ1NT
UHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikKKyAgICB7CisgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEluZGVudExpbmUoKSk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldFRleHRJbmRlbnQoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50KCkpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZl
ciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCF2
YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBMZW5n
dGggdGV4dEluZGVudCA9IFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgpOworCisgICAg
ICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4o
dmFsdWUpOworCisgICAgICAgIC8vIG9ubHkgMSB2YWx1ZSwgPGxlbmd0aD4gb3IgPHBlcmNlbnRh
Z2U+CisgICAgICAgIGlmICh2YWx1ZUxpc3QtPmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDApKTsKKyAgICAg
ICAgICAgIHRleHRJbmRlbnQgPSBjb21wdXRlTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHByaW1pdGl2
ZVZhbHVlKTsKKyAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRl
bnQodGV4dEluZGVudCk7CisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRU
ZXh0SW5kZW50TGluZShUZXh0SW5kZW50Rmlyc3RMaW5lKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVCh2YWx1ZUxpc3QtPmxlbmd0aCgpID09IDIpOwor
ICAgICAgICBpZiAodmFsdWVMaXN0LT5sZW5ndGgoKSAhPSAyKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIC8vIDIgdmFsdWVzLCA8bGVuZ3RoPiBvciA8cGVyY2VudGFnZT4gd2l0aCAt
d2Via2l0LWVhY2gtbGluZSBpbiBhbnkgb3JkZXIKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUq
IGZpcnN0VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+
aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBz
ZWNvbmRWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5p
dGVtV2l0aG91dEJvdW5kc0NoZWNrKDEpKTsKKworICAgICAgICBpZiAoIWZpcnN0VmFsdWUtPmdl
dElkZW50KCkpCisgICAgICAgICAgICB0ZXh0SW5kZW50ID0gY29tcHV0ZUxlbmd0aChzdHlsZVJl
c29sdmVyLCBmaXJzdFZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIXNlY29uZFZhbHVlLT5nZXRJ
ZGVudCgpKQorICAgICAgICAgICAgdGV4dEluZGVudCA9IGNvbXB1dGVMZW5ndGgoc3R5bGVSZXNv
bHZlciwgc2Vjb25kVmFsdWUpOworCisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNl
dFRleHRJbmRlbnQodGV4dEluZGVudCk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCkt
PnNldFRleHRJbmRlbnRMaW5lKFRleHRJbmRlbnRFYWNoTGluZSk7CisKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCisg
ICAgeworICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKCZhcHBseUluaGVyaXRWYWx1ZSwg
JmFwcGx5SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7CisgICAgfQorfTsKKyNlbmRpZgorCiBj
b25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6c2hhcmVkU3R5bGVCdWlsZGVyKCkKIHsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVpbGRlciwgc3R5bGVCdWlsZGVySW5zdGFu
Y2UsICgpKTsKQEAgLTE5MDUsOCArMTk4MCwxMCBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRp
b25MaW5lLCBBcHBseVByb3BlcnR5VGV4dERlY29yYXRpb246OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25TdHls
ZSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dERlY29yYXRpb25TdHlsZSwgJlJlbmRlclN0eWxl
Ojp0ZXh0RGVjb3JhdGlvblN0eWxlLCBUZXh0RGVjb3JhdGlvblN0eWxlLCAmUmVuZGVyU3R5bGU6
OnNldFRleHREZWNvcmF0aW9uU3R5bGUsIFRleHREZWNvcmF0aW9uU3R5bGUsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbFRleHREZWNvcmF0aW9uU3R5bGU+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRBbGlnbkxhc3QsIEFwcGx5UHJv
cGVydHlEZWZhdWx0PFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6dGV4dEFsaWduTGFzdCwg
VGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25M
YXN0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0QWxpZ25MYXN0Pjo6Y3JlYXRlSGFuZGxlcigp
KTsKLSNlbmRpZiAvLyBDU1MzX1RFWFQKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y3JlYXRlSGFuZGxlcigpKTsK
KyNlbHNlCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dEluZGVudCwgQXBw
bHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OnRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6
c2V0VGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudD46OmNyZWF0ZUhh
bmRsZXIoKSk7CisjZW5kaWYgLy8gQ1NTM19URVhUCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5VGV4dE92ZXJmbG93LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0T3ZlcmZsb3cs
ICZSZW5kZXJTdHlsZTo6dGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6
c2V0VGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRP
dmVyZmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1By
b3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9wZXJ0eUZvbnQ8VGV4dFJlbmRlcmluZ01vZGUs
ICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjpz
ZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRSZW5kZXJpbmc+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRUcmFuc2Zvcm0sIEFwcGx5
UHJvcGVydHlEZWZhdWx0PEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OnRleHRUcmFuc2Zv
cm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OnNldFRleHRUcmFuc2Zvcm0sIEVUZXh0
VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0VHJhbnNmb3JtPjo6Y3JlYXRlSGFu
ZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCmluZGV4IGJhNWQ2NjAzZDZhZjgxNzVmODI3MmIwMDRlMDdmYmE5NjY2MzZlNDcuLmEwMGU0
ZjYyMGM2OTJhMjNhY2U2MTE4ZmEyN2E4OWY3NDk5NTI3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDgxLDYgKzQ4MSw5IEBAIFN0
eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIs
IHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLmdldCgpICE9
IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS5nZXQoKSkgewogICAgICAgICBpZiAocmFyZUluaGVy
aXRlZERhdGEtPmhpZ2hsaWdodCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdo
dAogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPmluZGVudCAhPSBvdGhlci0+cmFy
ZUluaGVyaXRlZERhdGEtPmluZGVudAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICAg
ICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50TGluZSAhPSBvdGhlci0+cmFyZUlu
aGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUKKyNlbmRpZgogICAgICAgICAgICAgfHwgcmFy
ZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERh
dGEtPm1fZWZmZWN0aXZlWm9vbQogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPnRl
eHRTaXplQWRqdXN0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dFNpemVBZGp1c3QK
ICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsgIT0gb3RoZXItPnJh
cmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMzI4MTlhZDY3YzQyODIxNzQ1YTM3NmI5ODRmZDI1Y2Vj
NmQ2NmJjZS4uMDdmN2ZiNTkxZTA3NDk5NmMzYTg5MDU2M2M4MDhiZmQ0ODAyNTg1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTU2OCw2ICs1
NjgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIExlbmd0aCB0ZXh0SW5kZW50KCkgY29uc3Qg
eyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmluZGVudDsgfQorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVu
dExpbmUpOyB9CisjZW5kaWYKICAgICBFVGV4dEFsaWduIHRleHRBbGlnbigpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbik7
IH0KICAgICBFVGV4dFRyYW5zZm9ybSB0ZXh0VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RVRleHRUcmFuc2Zvcm0+KGluaGVyaXRlZF9mbGFncy5fdGV4dF90cmFuc2Zvcm0p
OyB9CiAgICAgRVRleHREZWNvcmF0aW9uIHRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHREZWNvcmF0aW9uPihpbmhlcml0ZWRfZmxhZ3MuX3Rl
eHRfZGVjb3JhdGlvbnMpOyB9CkBAIC0xMTEyLDYgKzExMTUsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0
aCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0KKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudExpbmUg
dikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5lLCB2KTsgfQor
I2VuZGlmCiAgICAgdm9pZCBzZXRUZXh0QWxpZ24oRVRleHRBbGlnbiB2KSB7IGluaGVyaXRlZF9m
bGFncy5fdGV4dF9hbGlnbiA9IHY7IH0KICAgICB2b2lkIHNldFRleHRUcmFuc2Zvcm0oRVRleHRU
cmFuc2Zvcm0gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtID0gdjsgfQogICAg
IHZvaWQgYWRkVG9UZXh0RGVjb3JhdGlvbnNJbkVmZmVjdChFVGV4dERlY29yYXRpb24gdikgeyBp
bmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMgfD0gdjsgfQpAQCAtMTU4Niw2ICsxNTky
LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbE1hcmdpbigpIHsgcmV0dXJu
IExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxQYWRkaW5nKCkgeyBy
ZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRleHRJbmRl
bnQoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAg
ICBzdGF0aWMgVGV4dEluZGVudExpbmUgaW5pdGlhbFRleHRJbmRlbnRMaW5lKCkgeyByZXR1cm4g
VGV4dEluZGVudEZpcnN0TGluZTsgfQorI2VuZGlmCiAgICAgc3RhdGljIEVWZXJ0aWNhbEFsaWdu
IGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAgICBzdGF0aWMg
c2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMgc2hvcnQgaW5p
dGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGRhOTU4NjA3YzliYWRh
N2MyODhlYWU0YTQ3MjhmNmExMjZiNTFlYTAuLmJlZTI3YjNkNDQ4ZGQ4NTY0Y2U0ZWYwNWJkZGE2
YzU0MzFjZWYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01MDMsNiArNTAzLDEwIEBAIGVudW0gRHJhZ2dh
YmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdnYWJsZVJlZ2lvbkRyYWcs
IERyYWdnYWJsZVJlCiAvLyBSZWFzb25hYmxlIG1heGltdW0gdG8gcHJldmVudCBpbnNhbmUgZm9u
dCBzaXplcyBmcm9tIGNhdXNpbmcgY3Jhc2hlcyBvbiBzb21lIHBsYXRmb3JtcyAoc3VjaCBhcyBX
aW5kb3dzKS4KIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhpbXVtQWxsb3dlZEZvbnRTaXplID0gMTAw
MDAwMC4wZjsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitlbnVtIFRleHRJbmRlbnRMaW5lIHsg
VGV4dEluZGVudEZpcnN0TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25zdGFudHNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCmluZGV4IGIyMTVhYjM1ODdlMWJmMDY5N2E1MDVkN2M4ZjQ4NGMzYTZj
MGMyMWUuLjk4OWFiMTk5NDgxN2E2NzQxYjc4YTE2ZmJkY2FkNTNmZmVjMDM1NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAKQEAgLTg4LDYgKzg4LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKFRleHRFbXBoYXNp
c01hcmtOb25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRp
b25PdmVyKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uVmVydGljYWxS
aWdodCkKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCisjZW5kaWYKICAgICAsIG1fbGluZUJv
eENvbnRhaW4oUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lQm94Q29udGFpbigpKQogI2lmIEVOQUJM
RShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24oUmVuZGVy
U3R5bGU6OmluaXRpYWxJbWFnZU9yaWVudGF0aW9uKCkpCkBAIC0xNTgsNiArMTYxLDkgQEAgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNp
c01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9u
KQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikKKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShvLm1fdGV4dEluZGVudExpbmUp
CisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oby5tX2xpbmVCb3hDb250YWluKQogI2lm
IEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24o
by5tX2ltYWdlT3JpZW50YXRpb24pCkBAIC0yNTIsNiArMjU4LDkgQEAgYm9vbCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8p
IGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1waGFzaXNNYXJr
CiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9zaXRp
b24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmllbnRhdGlvbgor
I2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICYmIG1fdGV4dEluZGVudExpbmUgPT0gby5t
X3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgJiYgbV9saW5lQm94Q29udGFpbiA9PSBv
Lm1fbGluZUJveENvbnRhaW4KICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBo
ZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
CmluZGV4IGIyMjgxZjc3Mjk3MDdmN2MxM2I0NTk5YWE3NmRmMGI1OWU5ZTczYWMuLjY3ODVhMjA5
MTViMWZkOWFhMjhhYTgzZDdiZjUxODk3MmYxNzNkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTAx
LDYgKzEwMSw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1waGFzaXNNYXJrIDogMzsg
Ly8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc1Bvc2l0aW9uIDog
MTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBtX3RleHRPcmllbnRhdGlv
biA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgdW5z
aWduZWQgbV90ZXh0SW5kZW50TGluZSA6IDE7IC8vIFRleHRJbmRlbnRFYWNoTGluZQorI2VuZGlm
CiAgICAgdW5zaWduZWQgbV9saW5lQm94Q29udGFpbjogNzsgLy8gTGluZUJveENvbnRhaW4KICAg
ICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDk0NTA3OGEwNjhmMWMxZTE4YzdjMGRlNDA5NGNjNDMxY2M3NmMwMTYu
Ljg4YzFhNTQzZjljMGNlMjk1NTYyMzdhN2MzMTY0YjYyMGY0Y2U4M2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNCBAQAorMjAxMy0wMy0wNiAgSmFlaHVuIExpbSAgPGxqYWVodW4ubGltQHNhbXN1bmcuY29t
PgorCisgICAgICAgIFtjc3MzLXRleHRdIFBhcnNpbmcgLXdlYmtpdC1lYWNoLWxpbmUgdmFsdWUg
Zm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKworICAgICAgICAiZWFjaC1saW5lIiBpcyBh
ZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanM6
IEFkZGVkLgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAob3duVmFsdWVU
ZXN0KToKKyAgICAgICAgKGluaGVyaXRhbmNlVGVzdCk6CisgICAgICAgICogZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21w
dXRlZFN0eWxlLXRleHQtaW5kZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RFbGVtZW50U3R5
bGUpOgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAodmFsdWVTZXR0aW5n
VGVzdCk6CisgICAgICAgIChpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTMtMDMtMDYgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZhZWx3QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZzogcmViYXNlbGluZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzE1MzJkZWQ5MGQyYWUzZGNjY2NlOTRkNGJhNDU4NWQ1NzNjMTg4NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExMCBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBw
cm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWU6CitQQVNTIGNvbXB1dGVkU3R5
bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworVmFsdWUgJzEwZW0nOgorUEFTUyBlLnN0eWxl
LnRleHRJbmRlbnQgaXMgJzEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcx
MDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcxMDBweCcKKworVmFsdWUgJzIwZXgnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
JzIwZXgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MjBleCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCcKKwor
VmFsdWUgJzUwJSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnNTAlJworUEFTUyBlLnN0
eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzUwJScKK1BBU1MgY29tcHV0
ZWRTdHlsZS50ZXh0SW5kZW50IGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnNTAlJworCitWYWx1ZSAnMTBlbSAtd2Via2l0LWVh
Y2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbSAtd2Via2l0LWVhY2gt
bGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcx
MGVtIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMg
JzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1
ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAn
LXdlYmtpdC1lYWNoLWxpbmUgMTBlbScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWluZGVudCcpIGlzICctd2Via2l0LWVhY2gtbGluZSAxMGVtJworUEFTUyBjb21wdXRlZFN0
eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRl
ZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQt
ZWFjaC1saW5lJworCitWYWx1ZSAnMjBleCAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5
bGUudGV4dEluZGVudCBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5l
JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1s
aW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50Jykg
aXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUg
MjBleCc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnLXdlYmtpdC1lYWNoLWxpbmUgMjBl
eCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICctd2Vi
a2l0LWVhY2gtbGluZSAyMGV4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIw
MHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAn
MzAlIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICczMCUg
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRl
eHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUn
CisKK1ZhbHVlICctd2Via2l0LWVhY2gtbGluZSAzMCUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRl
bnQgaXMgJy13ZWJraXQtZWFjaC1saW5lIDMwJScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICctd2Via2l0LWVhY2gtbGluZSAzMCUnCitQQVNTIGNvbXB1
dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0
LWVhY2gtbGluZScKKworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBtJzoKK1BBU1MgZS5zdHls
ZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBw
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICcxMG0gLXdlYmtpdC1lYWNoLWxpbmUnOgor
UEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dElu
ZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1s
aW5lIDEwbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBl
bSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0
eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Vi
a2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBl
LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3Qg
LSAnMTBlbSAtd2Via2l0LWVhY2gtbGluZSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50
IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBp
cyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0lu
dmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1s
aW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxl
LnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmQ0ZTA5NGQw
NGVhMzcwNTVhOGUyMWViNGFmZTM0MjRiYzEzOWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIxIEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50
IGlzIHByb3Blcmx5IGluaGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcxMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMg
JzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShh
bmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0
LWVhY2gtbGluZScKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1Zh
bHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJywgd2hpbGUgY2hpbGQg
aXMgJzEwcHgnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzEwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWlu
aGVyaXRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MWI5NjQ3MTA3OGQyN2UxNjJkODMwYTM5MGJlYmEz
NjU4YzliNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImFuY2VzdG9y
Ij48ZGl2IGlkPSJjaGlsZCI+PC9kaXY+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMiPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWluZGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDI4MGEyMGUxODBjMjZmNzAyNmU1YzI3OTE1YWQ2ZDBlN2IxNGMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApA
QCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiIHN0eWxlPSJmb250OiAxMHB4IEFoZW07
Ij48L2Rpdj4KKyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtaW5kZW50LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVy
aXRlZC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1p
bmhlcml0ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzN2NmOTVlNDc0ZjUwOWU2MmQwYTI2YjU1NWQwNzk3
ZmVjZDEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24g
dGVzdENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgid2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykiLCAgIiciICsgYV92YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICIn
IiArIGNfdmFsdWUgKyAiJyIpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gb3duVmFs
dWVUZXN0KGFfdmFsdWUsIGNfdmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9y
IGlzICciICsgYV92YWx1ZSArICInLCB3aGlsZSBjaGlsZCBpcyAnIiArIGNfdmFsdWUgKyAiJzoi
KTsKKyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICBjaGlsZC5z
dHlsZS50ZXh0SW5kZW50ID0gY192YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVl
LCBjX3ZhbHVlKTsKK30KKworZnVuY3Rpb24gaW5oZXJpdGFuY2VUZXN0KGFfdmFsdWUpCit7Cisg
ICAgZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9yIGlzICciICsgYV92YWx1ZSArICInOiIpOworICAg
IGFuY2VzdG9yLnN0eWxlLnRleHRJbmRlbnQgPSBhX3ZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0
eWxlKGFfdmFsdWUsIGFfdmFsdWUpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVj
ayB0aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBpbmhlcml0ZWQgdG8g
dGhlIGNoaWxkLiIpOworCithbmNlc3RvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNl
c3RvcicpOworY2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKKworaW5o
ZXJpdGFuY2VUZXN0KCIxMHB4Iik7Citpbmhlcml0YW5jZVRlc3QoIjEwcHggLXdlYmtpdC1lYWNo
LWxpbmUiKTsKKworb3duVmFsdWVUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5lIiwgIjEwcHgi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YTFhMDBiZmEyZjUyODFlNDE5ZDg5OTk1MWVkNjg2NGM4NjgzMTVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LmpzCkBAIC0wLDAgKzEsNTkgQEAKK2Z1bmN0aW9uIHRlc3RFbGVtZW50U3R5bGUocHJv
cGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAgIHNob3VsZEJlKCJlLnN0eWxlLiIg
KyBwcm9wZXJ0eUpTLCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImUuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAi
JyIpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShwcm9wZXJ0eUpTLCBwcm9wZXJ0
eUNTUywgdmFsdWUpCit7CisgICAgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGUsIG51bGwpOworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLiIgKyBwcm9wZXJ0eUpT
LCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOwor
fQorCitmdW5jdGlvbiB2YWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBleHBlY3RlZFZhbHVlKQorewor
ICAgIGRlYnVnKCJWYWx1ZSAnIiArIHZhbHVlICsgIic6Iik7CisgICAgZS5zdHlsZS50ZXh0SW5k
ZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWlu
ZGVudCIsIHZhbHVlKTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0
LWluZGVudCIsIGV4cGVjdGVkVmFsdWUpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24g
aW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QodmFsdWUsIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBkZWJ1
ZygiSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJyIgKyB2YWx1ZSArICInOiIpOworICAgIGUuc3R5bGUu
dGV4dEluZGVudCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUoInRleHRJbmRlbnQiLCAi
dGV4dC1pbmRlbnQiLCBkZWZhdWx0VmFsdWUpOworICAgIHRlc3RDb21wdXRlZFN0eWxlKCJ0ZXh0
SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICBkZWJ1ZygnJyk7Cit9
CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGV4dC1pbmRlbnQgcGFyc2Vz
IHByb3Blcmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBUZXh0LiIpOworCitlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFs
dWU6Iik7Cit0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsICcw
cHgnKTsKK2RlYnVnKCcnKTsKKwordmFsdWVTZXR0aW5nVGVzdCgnMTBlbScsICcxMDBweCcpOwor
dmFsdWVTZXR0aW5nVGVzdCgnMjBleCcsICcyMDBweCcpOwordmFsdWVTZXR0aW5nVGVzdCgnNTAl
JywgJzUwJScpOwordmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcx
MDBweCAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNo
LWxpbmUgMTBlbScsICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVz
dCgnMjBleCAtd2Via2l0LWVhY2gtbGluZScsICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScpOwor
dmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCcsICcyMDBweCAtd2Via2l0
LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnMzAlIC13ZWJraXQtZWFjaC1saW5lJywg
JzMwJSAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNo
LWxpbmUgMzAlJywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScpOworZGVidWcoJycpOworCitkZWZh
dWx0VmFsdWUgPSAnMHB4JworZS5zdHlsZS50ZXh0SW5kZW50ID0gZGVmYXVsdFZhbHVlOworaW52
YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwbScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVT
ZXR0aW5nVGVzdCgnMTBtIC13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVsdFZhbHVlKTsKK2ludmFs
aWRWYWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAxMG0nLCBkZWZhdWx0VmFsdWUp
OworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gMTBlbScsIGRlZmF1bHRWYWx1ZSk7Citp
bnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUp
OworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUgMTBlbScs
IGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxp
bmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZWUyMmMxNTFhYTgw
NTdkY2RiYTViNGEwMzQyOWNiZTYzNDcwYmY1Li45MDY3MzIwN2MzYTUxM2YzOWIwY2JmZjgxNDdk
NzkyYTE3ZmJlMGE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTIyOSw2ICsyMjksNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9j
c3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFi
bGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBDaHJvbWl1bSBkb2VzIG5vdCBzdXBwb3J0IHNt
YXJ0IHBhc3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQuCiB3ZWJraXQub3JnL2IvNjA4MzAgZWRp
dGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEwYmE1OTY5Yzc3NGUxYWE3
NjliMjRkMTkzMTA4ZWRjMDRkNjFiNjguLmNhYTEwNzM3M2IzYjk0MDUxYzIzZjM3NDA0ZGU4NmNl
NGQxNDQ0YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMTM2LDYgKzExMzYsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3Jp
ZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBF
TkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQKIAogIyBPdXIgc2xvdyB0ZXN0cywgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLgog
d2Via2l0Lm9yZy9iLzU3NjcyIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zZW5kLXNsaWNlZC1k
cmFnZ2VkLWZpbGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgxZDkyNDczNjllYjBiM2U5YWIwMmYwZmM3
Yzc2YTMzMjZkNjg3NWEuLmI1MDcyZGZkMDRlN2I2NTE5N2ZlNTU0ZWJhZTEzNmQ5M2E0NDA4Yjkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCkBAIC02
OTksNiArNjk5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0
aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxF
X0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
YWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50CiAKICMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBidWcgODY0NDEKICMgZmFpbGluZyBu
ZXcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggM2QxZTA5Nzc4YWUwOTc4NjQ3NTUyZjNhYmQ3Y2NhZDNiYTUwYmViMi4uYjQ3YzU3MDdh
ZDc2ODM3MmJjMGNkNmU1MDI4ZDhhNzlkYzI2ZDU5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU3OTYsNiArNTc5Niw3IEBAIHdlYmtpdC5v
cmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9y
dCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9y
Zy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3Jn
L2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcv
Yi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIE5lZWRzIHJlYmFz
ZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4YzdhNjIwOTNhZGY3NmM0ZGVmNmE4NGU2
ZWYzNTYwYjE5OTQzODgyLi5lMjVmYzQwNjhiMjVlNzRmZTE2M2EwN2U1NzllNWQ4ZTQ4MWQ3ZGQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0OSw2ICsz
NDksNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMg
Q1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19U
RVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3Jh
dGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1s
YXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQK
IAogIyBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSW5zcGVjdG9yQ2xpZW50
OjpvdmVycmlkZURldmljZU1ldHJpY3MoKSBpbiBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBDaHJvbWl1
bQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI4ODYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzI4ZWE2MGNjN2UyMjU2
YTgwNDA5YThkY2Y0MjdhODY1MGFiNDMyOS4uZjI0NDYwMTViOGFiMDFmODEzMDFiMDc4ODEzODlk
MGI5MTg0MjJlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTI0ODUsNiArMjQ4NSw4IEBAIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
cmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWdu
LWxhc3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxpZ24tbGFzdC1p
bmhlcml0ZWQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxpZ24tbGFzdC5odG1sCiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5o
ZXJpdGVkLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKIAogIyBBQ0NFTEVSQVRFRF9P
VkVSRkxPV19TQ1JPTExJTkcgaXMgZGlzYWJsZWQgb24gV2luZG93cwogY29tcG9zaXRpbmcvb3Zl
cmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmY1YmQ4ZTg1MzZjMjZhNjk3
NTI5ODFjYjJhNWFmMTcyMzg1MjI0OS4uODE2ZWI0NThiMTkzM2MzZTNmNGQ2MzQxOTg3ZDc4ZTYw
ZDM4NThmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yOTc1LDYgKzI5NzUsOCBAQCB3ZWJraXQub3JnL2IvMzk3MjUgZmFzdC9ldmVu
dHMvZHJhZy1hbmQtZHJvcC1hdXRvc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1h
bGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxh
c3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxl
LXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAK
ICMgU3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0Lm9yZy9iLzEwODM3MCBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192151</attachid>
            <date>2013-03-07 23:03:12 -0800</date>
            <delta_ts>2013-03-12 22:34:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130308155914.patch</filename>
            <type>text/plain</type>
            <size>38868</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M4ZTM1MGVhNDg5NWE1
YzE3YzcwZGI1MDY3NjlmNTQ5MGJlYjZjZi4uMzhiNTJlZjlmNDRmNTA1NGQ0N2RlNjk5YThmOTBi
ODA1YjFlNzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTA3ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAg
ICBJdCBpcyBpbXBsZW1lbnRlZCB1bmRlciBFTkFCTEVfQ1NTM19URVhUIHdpdGggIi13ZWJraXQi
IHByZWZpeC4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlTGVu
Z3RoUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9D
U1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5p
dGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojph
cHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojpj
cmVhdGVIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQnVpbGRlcjo6U3R5bGVCdWls
ZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxl
UmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorCiAyMDEz
LTAzLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ1MTY2LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA1OGIyMjkzNWRh
MmVjMDNiZjNlYzNiNDQzYmZlNTgwMjYwZGUyNWRjLi5iNTU4MmQ0MmJiZWRlZDgyZGZhNWZmZDAw
MDQ2OTQyOWMzMjA4NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjE4NSw3ICsyMTg1LDE3IEBAIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1
ZShDU1NQcm9wZXJ0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlUZXh0SW5kZW50OgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNy
ZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHlsZS5nZXQoKSkp
OworICAgICAgICAgICAgaWYgKHN0eWxlLT50ZXh0SW5kZW50TGluZSgpID09IFRleHRJbmRlbnRF
YWNoTGluZSkKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3Jl
YXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlV2Via2l0RWFjaExpbmUpKTsKKyAgICAgICAgICAg
IHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgICAgIHJl
dHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5kZW50KCks
IHN0eWxlLmdldCgpKTsKKyNlbmRpZgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFNoYWRv
dzoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvclNoYWRvdyhzdHlsZS0+dGV4dFNoYWRvdygp
LCBwcm9wZXJ0eUlELCBzdHlsZS5nZXQoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
UmVuZGVyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBkNDhmNjFmNzFjYWU5NGVm
MTRkNjBhYTg4MDc1OGU0ZDgzNWIyMmU3Li44N2I1YzgwYmUzNDQ5MWZkNTQyNmM3MGJhOTY1NjFj
NWFlYTlkMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTg4LDcgKzU4OCw5IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBsZUxlbmd0aFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlkLCBib29sJiBhY2NlCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJp
Z2h0OgorI2lmICFFTkFCTEUoQ1NTM19URVhUKQogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5k
ZW50OgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRvcDoKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFyZ2luQWZ0ZXI6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkJl
Zm9yZToKQEAgLTIxNzUsOCArMjE3NywxMCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCk7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAgICAgICAgIC8vIDxsZW5ndGg+IHwgPHBl
cmNlbnRhZ2U+IHwgaW5oZXJpdAotICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFs
aWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dEluZGVudDoKKyAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVRleHRJbmRlbnQoKTsKKyAg
ICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDogICAgICAgICAgLy8v
LyA8cGFkZGluZy13aWR0aD4gfCBpbmhlcml0CkBAIC05MTk4LDYgKzkyMDIsNTcgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVGV4dEVtcGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlVGV4
dEluZGVudCgpCit7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAvLyBbIDxsZW5ndGg+IHwg
PHBlcmNlbnRhZ2U+IF0gJiYgLXdlYmtpdC1lYWNoLWxpbmU/IHwgaW5oZXJpdAorICAgIFJlZlB0
cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVk
KCk7CisKKyAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPgorICAgIGlmIChtX3ZhbHVlTGlz
dC0+c2l6ZSgpID09IDEpIHsKKyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1
ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0KHZh
bHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3Jl
YXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAgICBtX3ZhbHVlTGlz
dC0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAobV92YWx1ZUxpc3QtPnNpemUoKSAhPSAyKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIENTU1BhcnNlclZhbHVlKiBmaXJzdFZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsK
KyAgICBDU1NQYXJzZXJWYWx1ZSogc2Vjb25kVmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwor
CisgICAgLy8gWyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdIC13ZWJraXQtZWFjaC1saW5lCisg
ICAgaWYgKHZhbGlkVW5pdChmaXJzdFZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpICYmIHNlY29u
ZFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSB7CisgICAgICAgIGxpc3QtPmFw
cGVuZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoZmlyc3RWYWx1ZSkpOworICAgICAgICBs
aXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
V2Via2l0RWFjaExpbmUpKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAg
cmV0dXJuIGxpc3Q7CisgICAgfQorCisgICAgLy8gLXdlYmtpdC1lYWNoLWxpbmUgWyA8bGVuZ3Ro
PiB8IDxwZXJjZW50YWdlPiBdCisgICAgaWYgKGZpcnN0VmFsdWUtPmlkID09IENTU1ZhbHVlV2Vi
a2l0RWFjaExpbmUgJiYgdmFsaWRVbml0KHNlY29uZFZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQp
KSB7CisgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVy
VmFsdWUoQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOworICAgICAgICBsaXN0LT5hcHBlbmQoY3Jl
YXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHNlY29uZFZhbHVlKSk7CisgICAgICAgIG1fdmFsdWVM
aXN0LT5uZXh0KCk7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIHJldHVybiAw
OworI2Vsc2UKKyAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGluaGVyaXQKKyAgICBD
U1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIGlmICgh
dmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkgeworICAg
ICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICByZXR1cm4gY3JlYXRlUHJpbWl0aXZl
TnVtZXJpY1ZhbHVlKHZhbHVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
CiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCkKIHsK
ICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExpbmVCb3hDb250YWluTm9uZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwYWIwNjE3ODhmOGM5YWNmZDczZjkxNDY3YmViYmY4
ZTkzYWFmNTc3Li4yNzlmNjAyMzk5YmIxMTY2YjQwMDAzNGM5NWI3NzcyM2JkZDMzZTQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjUsNiArMjY1LDggQEAgcHVibGljOgogICAgIHZvaWQg
YWRkVGV4dERlY29yYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiwgYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VUZXh0RGVjb3JhdGlvbihDU1NQ
cm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogCisgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VUZXh0SW5kZW50KCk7CisgICAgCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250
YWluKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2Vy
VmFsdWUqLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGY4NDAyYzVjNmIwMGI4ZWY4NDhiZDE1NDBjOThh
ZWE3ZGE2Mzg0MzIuLjM0ZWJjYjhhZmY0ZWVmMjUwZGZlZDkyY2UxZTM1Mzk2NzQ0N2EyNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMDAyLDMgKzEwMDIsOSBA
QCBzbmFwCiBkcmFnCiBuby1kcmFnCiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX0NTUzNf
VEVYVCkgJiYgRU5BQkxFX0NTUzNfVEVYVAorLy8gdGV4dC1pbmRlbnQKKy13ZWJraXQtZWFjaC1s
aW5lCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBkNjJkNmUw
MDViY2Y5MjRiZGFlMzg0YmNiMGFlNWI3MzNjMmY0NzM5Li5iZWY3YjY2MzQxOTVjYTc4ZTAwNGUy
MWY4OWEzNmRkMjc4NTNjM2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAt
MTc5MCw2ICsxNzkwLDgxIEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1Mz
X1RFWFQpCitjbGFzcyBBcHBseVByb3BlcnR5VGV4dEluZGVudCB7Citwcml2YXRlOgorICAgIHN0
YXRpYyBMZW5ndGggY29tcHV0ZUxlbmd0aChTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBD
U1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUpCisgICAgeworICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBw
cmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5
bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgICAgIGxlbmd0aC5zZXRRdWlyayhwcmlt
aXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsK
KyAgICAgICAgfQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUo
KSwgUGVyY2VudCk7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNWaWV3cG9ydFBlcmNl
bnRhZ2VMZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS0+dmlld3Bv
cnRQZXJjZW50YWdlTGVuZ3RoKCk7CisKKyAgICAgICAgcmV0dXJuIExlbmd0aCgpOworICAgIH0K
KworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5
SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShzdHlsZVJlc29sdmVyLT5wYXJlbnRT
dHlsZSgpLT50ZXh0SW5kZW50TGluZSgpKTsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0VGV4dEluZGVudChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0SW5kZW50
KCkpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENTU1Byb3Bl
cnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRJbmRlbnRMaW5lKCkpOworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRU
ZXh0SW5kZW50KFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgpKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0
eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUt
PmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgTGVuZ3RoIHRl
eHRJbmRlbnQgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKTsKKworICAgICAgICBD
U1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVl
KTsKKworICAgICAgICAvLyBbIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0KKyAgICAgICAgaWYg
KHZhbHVlTGlzdC0+bGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCkpOworICAgICAgICAgICAgdGV4dEluZGVu
dCA9IGNvbXB1dGVMZW5ndGgoc3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUpOworICAgICAg
ICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudCh0ZXh0SW5kZW50KTsK
KyAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFRl
eHRJbmRlbnRGaXJzdExpbmUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgQVNTRVJUKHZhbHVlTGlzdC0+bGVuZ3RoKCkgPT0gMik7CisgICAgICAgIGlmICh2YWx1
ZUxpc3QtPmxlbmd0aCgpICE9IDIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8g
WyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdIHx8IC13ZWJraXQtZWFjaC1saW5lCisgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBmaXJzdFZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCkpOworICAgICAgICBD
U1NQcmltaXRpdmVWYWx1ZSogc2Vjb25kVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygxKSk7CisKKyAgICAgICAg
aWYgKCFmaXJzdFZhbHVlLT5nZXRJZGVudCgpKQorICAgICAgICAgICAgdGV4dEluZGVudCA9IGNv
bXB1dGVMZW5ndGgoc3R5bGVSZXNvbHZlciwgZmlyc3RWYWx1ZSk7CisgICAgICAgIGVsc2UgaWYg
KCFzZWNvbmRWYWx1ZS0+Z2V0SWRlbnQoKSkKKyAgICAgICAgICAgIHRleHRJbmRlbnQgPSBjb21w
dXRlTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHNlY29uZFZhbHVlKTsKKworICAgICAgICBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHRleHRJbmRlbnQpOworICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50RWFjaExpbmUp
OworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVy
IGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcigm
YXBwbHlJbmhlcml0VmFsdWUsICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOworICAg
IH0KK307CisjZW5kaWYKKwogY29uc3QgU3R5bGVCdWlsZGVyJiBTdHlsZUJ1aWxkZXI6OnNoYXJl
ZFN0eWxlQnVpbGRlcigpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUJ1aWxkZXIs
IHN0eWxlQnVpbGRlckluc3RhbmNlLCAoKSk7CkBAIC0xOTAzLDggKzE5NzgsMTAgQEAgU3R5bGVC
dWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVdlYmtpdFRleHREZWNvcmF0aW9uTGluZSwgQXBwbHlQcm9wZXJ0eVRleHREZWNvcmF0aW9uOjpj
cmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtp
dFRleHREZWNvcmF0aW9uU3R5bGUsIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHREZWNvcmF0aW9u
U3R5bGUsICZSZW5kZXJTdHlsZTo6dGV4dERlY29yYXRpb25TdHlsZSwgVGV4dERlY29yYXRpb25T
dHlsZSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0RGVjb3JhdGlvblN0eWxlLCBUZXh0RGVjb3JhdGlv
blN0eWxlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlPjo6Y3JlYXRl
SGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0
QWxpZ25MYXN0LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5
bGU6OnRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEFs
aWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEFsaWduTGFz
dD46OmNyZWF0ZUhhbmRsZXIoKSk7Ci0jZW5kaWYgLy8gQ1NTM19URVhUCisgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6
OmNyZWF0ZUhhbmRsZXIoKSk7CisjZWxzZQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjp0ZXh0SW5k
ZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRl
eHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworI2VuZGlmIC8vIENTUzNfVEVYVAogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURl
ZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJm
bG93LCAmUmVuZGVyU3R5bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250
PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwg
JkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5n
Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlU
ZXh0VHJhbnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRl
clN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRU
ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dFRy
YW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAxZTI0OWI3ZTQ5ODI5NWY0MzUwNjU1Y2YwZjg1
ZjQ0Y2NjYjRlNWE5Li44NTQyYjc3YTk4YjU3ZWY0YTk5MmJmZmZhOGUxMjEwMDYwNjQzMDM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTQ4MSw2ICs0ODEsOSBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3Qg
UmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgIGlmIChyYXJlSW5o
ZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAg
ICAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJbmhl
cml0ZWREYXRhLT5oaWdobGlnaHQKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5p
bmRlbnQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQKKyNpZiBFTkFCTEUoQ1NT
M19URVhUKQorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExp
bmUgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYK
ICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8IHJh
cmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT53
b3JkQnJlYWsKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAg
IT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMjNhYzc5MmRhZDMzYTI0NDFj
ZjM0ZGYzYTUwOTAwM2FiYzU0ZGI2OC4uYjQzM2YzOWI5NGMyYTdlNTMwZDExM2MxZDE2MDgyZmM4
MGYxODdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKQEAgLTU2OCw2ICs1NjgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIExlbmd0aCB0ZXh0
SW5kZW50KCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmluZGVudDsgfQorI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERh
dGEtPm1fdGV4dEluZGVudExpbmUpOyB9CisjZW5kaWYKICAgICBFVGV4dEFsaWduIHRleHRBbGln
bigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KGluaGVyaXRlZF9mbGFn
cy5fdGV4dF9hbGlnbik7IH0KICAgICBFVGV4dFRyYW5zZm9ybSB0ZXh0VHJhbnNmb3JtKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRUcmFuc2Zvcm0+KGluaGVyaXRlZF9mbGFncy5f
dGV4dF90cmFuc2Zvcm0pOyB9CiAgICAgRVRleHREZWNvcmF0aW9uIHRleHREZWNvcmF0aW9uc0lu
RWZmZWN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHREZWNvcmF0aW9uPihpbmhl
cml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMpOyB9CkBAIC0xMTExLDYgKzExMTQsOSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRU
ZXh0SW5kZW50KExlbmd0aCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwg
dik7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUo
VGV4dEluZGVudExpbmUgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRl
bnRMaW5lLCB2KTsgfQorI2VuZGlmCiAgICAgdm9pZCBzZXRUZXh0QWxpZ24oRVRleHRBbGlnbiB2
KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbiA9IHY7IH0KICAgICB2b2lkIHNldFRleHRU
cmFuc2Zvcm0oRVRleHRUcmFuc2Zvcm0gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNm
b3JtID0gdjsgfQogICAgIHZvaWQgYWRkVG9UZXh0RGVjb3JhdGlvbnNJbkVmZmVjdChFVGV4dERl
Y29yYXRpb24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMgfD0gdjsgfQpA
QCAtMTU4NCw2ICsxNTkwLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbE1h
cmdpbigpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRp
YWxQYWRkaW5nKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGgg
aW5pdGlhbFRleHRJbmRlbnQoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CisjaWYgRU5BQkxF
KENTUzNfVEVYVCkKKyAgICBzdGF0aWMgVGV4dEluZGVudExpbmUgaW5pdGlhbFRleHRJbmRlbnRM
aW5lKCkgeyByZXR1cm4gVGV4dEluZGVudEZpcnN0TGluZTsgfQorI2VuZGlmCiAgICAgc3RhdGlj
IEVWZXJ0aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7
IH0KICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBz
dGF0aWMgc2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4
IGRhOTU4NjA3YzliYWRhN2MyODhlYWU0YTQ3MjhmNmExMjZiNTFlYTAuLmJlZTI3YjNkNDQ4ZGQ4
NTY0Y2U0ZWYwNWJkZGE2YzU0MzFjZWYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01MDMsNiArNTAzLDEw
IEBAIGVudW0gRHJhZ2dhYmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdn
YWJsZVJlZ2lvbkRyYWcsIERyYWdnYWJsZVJlCiAvLyBSZWFzb25hYmxlIG1heGltdW0gdG8gcHJl
dmVudCBpbnNhbmUgZm9udCBzaXplcyBmcm9tIGNhdXNpbmcgY3Jhc2hlcyBvbiBzb21lIHBsYXRm
b3JtcyAoc3VjaCBhcyBXaW5kb3dzKS4KIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhpbXVtQWxsb3dl
ZEZvbnRTaXplID0gMTAwMDAwMC4wZjsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitlbnVtIFRl
eHRJbmRlbnRMaW5lIHsgVGV4dEluZGVudEZpcnN0TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5
bGVDb25zdGFudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDE4MWFhYjMwNGU4ZGY2YmZiMDNh
ZTEzNGIxZTIzYzIxYTA1ODRmNDUuLjU2NDk4Yzk4MjE3YzJkZDJkYTU2YTNmNWFmMmE0OTIyMTgx
ZmQyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDkgQEAgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNN
YXJrKFRleHRFbXBoYXNpc01hcmtOb25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4
dEVtcGhhc2lzUG9zaXRpb25PdmVyKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVu
dGF0aW9uVmVydGljYWxSaWdodCkKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0
SW5kZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCisjZW5kaWYK
ICAgICAsIG1fbGluZUJveENvbnRhaW4oUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lQm94Q29udGFp
bigpKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3Jp
ZW50YXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZU9yaWVudGF0aW9uKCkpCkBAIC0xNTYs
NiArMTU5LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFy
ayhvLnRleHRFbXBoYXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRF
bXBoYXNpc1Bvc2l0aW9uKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRh
dGlvbikKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShvLm1f
dGV4dEluZGVudExpbmUpCisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oby5tX2xpbmVC
b3hDb250YWluKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2lt
YWdlT3JpZW50YXRpb24oby5tX2ltYWdlT3JpZW50YXRpb24pCkBAIC0yNDksNiArMjU1LDkgQEAg
Ym9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUlu
aGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50
ZXh0RW1waGFzaXNNYXJrCiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4
dEVtcGhhc2lzUG9zaXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3Rl
eHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICYmIG1fdGV4dElu
ZGVudExpbmUgPT0gby5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgJiYgbV9saW5l
Qm94Q29udGFpbiA9PSBvLm1fbGluZUJveENvbnRhaW4KICAgICAgICAgJiYgaHlwaGVuYXRpb25T
dHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2Nh
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5oCmluZGV4IGU0M2FmMzk1MzUzNmMwODIzM2E0MDc0ZjI4MGQxZjE5ZGYz
Y2VjZTMuLjU3ZGU3Yzc2MTcxOGU2ZTJiOTk2YWFmYTk3Mzc5OTdkZjYyZjAyM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1w
aGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBo
YXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBt
X3RleHRPcmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1Mz
X1RFWFQpCisgICAgdW5zaWduZWQgbV90ZXh0SW5kZW50TGluZSA6IDE7IC8vIFRleHRJbmRlbnRF
YWNoTGluZQorI2VuZGlmCiAgICAgdW5zaWduZWQgbV9saW5lQm94Q29udGFpbjogNzsgLy8gTGlu
ZUJveENvbnRhaW4KICAgICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKICNpZiBFTkFCTEUo
Q1NTX0lNQUdFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAwY2JhZWNkNTZhMTgxODExNzkyN2MwZTRj
ZGExYWQ0YmViMDZmNGIuLjBkYmZkM2VjZWNkMmRmMTlhZmIzMTgwNmZkZDNmZTY3NWY1NzcyYWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMy0wMy0wNyAgSmFlaHVuIExpbSAgPGxqYWVodW4u
bGltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtjc3MzLXRleHRdIFBhcnNpbmcgLXdlYmtpdC1l
YWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKworICAgICAgICAi
ZWFjaC1saW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5o
ZXJpdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQtaW5oZXJpdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuanM6IEFkZGVkLgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAg
ICAgICAob3duVmFsdWVUZXN0KToKKyAgICAgICAgKGluaGVyaXRhbmNlVGVzdCk6CisgICAgICAg
ICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3Njcmlw
dC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3RFbGVtZW50U3R5bGUpOgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAg
ICAodmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgIChpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCk6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC00
LjgvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDMtMDcgIEhheWF0byBJdG8gIDxoYXlh
dG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxl
L2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMx
NTMyZGVkOTBkMmFlM2RjY2NjZTk0ZDRiYTQ1ODVkNTczYzE4ODQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMTAgQEAKK1RoaXMgdGVzdHMgY2hlY2sgdGhhdCB0ZXh0LWluZGVudCBwYXJzZXMgcHJvcGVy
bHkgdGhlIHByb3BlcnRpZXMgZnJvbSBDU1MzIFRleHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitUZXN0IHRoZSBpbml0aWFsIHZhbHVlOgorUEFTUyBjb21wdXRlZFN0eWxlLnRl
eHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK1ZhbHVlICcxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0
SW5kZW50IGlzICcxMGVtJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzEwZW0nCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMTAwcHgn
CitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MTAwcHgnCisKK1ZhbHVlICcyMGV4JzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcyMGV4
JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwZXgn
CitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMjAwcHgnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjAwcHgnCisKK1ZhbHVl
ICc1MCUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzUwJScKK1BBU1MgZS5zdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5
bGUudGV4dEluZGVudCBpcyAnNTAlJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzUwJScKKworVmFsdWUgJzEwZW0gLXdlYmtpdC1lYWNoLWxp
bmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUn
CitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbSAt
d2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBw
eCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13
ZWJraXQtZWFjaC1saW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJy13ZWJr
aXQtZWFjaC1saW5lIDEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gt
bGluZScKKworVmFsdWUgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRl
eHRJbmRlbnQgaXMgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BB
U1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScK
K1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcy
MDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQtZWFjaC1saW5lIDIwZXgn
OgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnCitQ
QVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnLXdlYmtpdC1l
YWNoLWxpbmUgMjBleCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAt
d2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWluZGVudCcpIGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJzMwJSAt
d2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJr
aXQtZWFjaC1saW5lJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5k
ZW50IGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworCitW
YWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMzAlJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlz
ICctd2Via2l0LWVhY2gtbGluZSAzMCUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnLXdlYmtpdC1lYWNoLWxpbmUgMzAlJworUEFTUyBjb21wdXRlZFN0
eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRT
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNo
LWxpbmUnCisKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwbSc6CitQQVNTIGUuc3R5bGUudGV4
dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQ
QVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4
JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBtIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1Mg
ZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQg
aXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAx
MG0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUu
dGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwZW0gMTBl
bSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1l
YWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVk
U3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEw
ZW0gLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAn
MHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBw
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlk
IHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZSc6
CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0
SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMHB4JworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1p
bmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkNGUwOTRkMDRlYTM3
MDU1YThlMjFlYjRhZmUzNDI0YmMxMzljZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21w
dXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MSBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBw
cm9wZXJseSBpbmhlcml0ZWQgdG8gdGhlIGNoaWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEwcHgnOgorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MTBweCcKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHgnCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4
IC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0
b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNo
LWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSBv
ZiBhbmNlc3RvciBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScsIHdoaWxlIGNoaWxkIGlzICcx
MHB4JzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcxMHB4JworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
aW5oZXJpdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNDFiOTY0NzEwNzhkMjdlMTYyZDgzMGEzOTBiZWJhMzY1OGM5
YjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
aW5oZXJpdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJhbmNlc3RvciI+PGRp
diBpZD0iY2hpbGQiPjwvZGl2PjwvZGl2PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzQyODBhMjBlMTgwYzI2ZjcwMjZlNWMyNzkxNWFkNmQwZTdiMTRjMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKQEAgLTAs
MCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0IiBzdHlsZT0iZm9udDogMTBweCBBaGVtOyI+PC9k
aXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1
dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJp
dGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQzMzdjZjk1ZTQ3NGY1MDllNjJkMGEyNmI1NTVkMDc5N2ZlY2Qx
MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RD
b21wdXRlZFN0eWxlKGFfdmFsdWUsIGNfdmFsdWUpCit7CisgICAgc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IiwgICInIiArIGFfdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSIsICAiJyIgKyBj
X3ZhbHVlICsgIiciKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIG93blZhbHVlVGVz
dChhX3ZhbHVlLCBjX3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAn
IiArIGFfdmFsdWUgKyAiJywgd2hpbGUgY2hpbGQgaXMgJyIgKyBjX3ZhbHVlICsgIic6Iik7Cisg
ICAgYW5jZXN0b3Iuc3R5bGUudGV4dEluZGVudCA9IGFfdmFsdWU7CisgICAgY2hpbGQuc3R5bGUu
dGV4dEluZGVudCA9IGNfdmFsdWU7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192
YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIGluaGVyaXRhbmNlVGVzdChhX3ZhbHVlKQoreworICAgIGRl
YnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNl
c3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShh
X3ZhbHVlLCBhX3ZhbHVlKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhh
dCB0aGUgdmFsdWUgb2YgdGV4dC1pbmRlbnQgaXMgcHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBj
aGlsZC4iKTsKKworYW5jZXN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5jZXN0b3In
KTsKK2NoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoaWxkJyk7CisKK2luaGVyaXRh
bmNlVGVzdCgiMTBweCIpOworaW5oZXJpdGFuY2VUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5l
Iik7CisKK293blZhbHVlVGVzdCgiMTBweCAtd2Via2l0LWVhY2gtbGluZSIsICIxMHB4Iik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dl
dENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1
dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGExYTAwYmZhMmY1MjgxZTQxOWQ4OTk5NTFlZDY4NjRjODY4MzE1YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC5qcwpAQCAtMCwwICsxLDU5IEBACitmdW5jdGlvbiB0ZXN0RWxlbWVudFN0eWxlKHByb3BlcnR5
SlMsIHByb3BlcnR5Q1NTLCB2YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgiZS5zdHlsZS4iICsgcHJv
cGVydHlKUywgIiciICsgdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJlLnN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsK
K30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1Ms
IHZhbHVlKQoreworICAgIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
LCBudWxsKTsKKyAgICBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS4iICsgcHJvcGVydHlKUywgIici
ICsgdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJyIgKyBwcm9wZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKwor
ZnVuY3Rpb24gdmFsdWVTZXR0aW5nVGVzdCh2YWx1ZSwgZXhwZWN0ZWRWYWx1ZSkKK3sKKyAgICBk
ZWJ1ZygiVmFsdWUgJyIgKyB2YWx1ZSArICInOiIpOworICAgIGUuc3R5bGUudGV4dEluZGVudCA9
IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQi
LCB2YWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRl
bnQiLCBleHBlY3RlZFZhbHVlKTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIGludmFs
aWRWYWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBkZWZhdWx0VmFsdWUpCit7CisgICAgZGVidWcoIklu
dmFsaWQgdmFsdWUgdGVzdCAtICciICsgdmFsdWUgKyAiJzoiKTsKKyAgICBlLnN0eWxlLnRleHRJ
bmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQt
aW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVu
dCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7CisgICAgZGVidWcoJycpOworfQorCitk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9w
ZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4iKTsKKworZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK2RlYnVnKCJUZXN0IHRoZSBpbml0aWFsIHZhbHVlOiIp
OwordGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCAnMHB4Jyk7
CitkZWJ1ZygnJyk7CisKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVl
U2V0dGluZ1Rlc3QoJzIwZXgnLCAnMjAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzUwJScsICc1
MCUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCAnMTAwcHgg
LXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5l
IDEwZW0nLCAnMTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIw
ZXggLXdlYmtpdC1lYWNoLWxpbmUnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVl
U2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnLCAnMjAwcHggLXdlYmtpdC1lYWNo
LWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzMwJSAtd2Via2l0LWVhY2gtbGluZScsICczMCUg
LXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5l
IDMwJScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnKTsKK2RlYnVnKCcnKTsKKworZGVmYXVsdFZh
bHVlID0gJzBweCcKK2Uuc3R5bGUudGV4dEluZGVudCA9IGRlZmF1bHRWYWx1ZTsKK2ludmFsaWRW
YWx1ZVNldHRpbmdUZXN0KCcxMG0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGlu
Z1Rlc3QoJzEwbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFs
dWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMTBtJywgZGVmYXVsdFZhbHVlKTsKK2lu
dmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIDEwZW0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxp
ZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVsdFZhbHVlKTsKK2lu
dmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIC13ZWJraXQtZWFjaC1saW5lIDEwZW0nLCBkZWZh
dWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDEw
ZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjdlOTk3NTgwN2FmZTE2OGM4
ZThjZTYwNTEzZDQwYzA5M2QzNjY5MC4uZTBjMjE3OTczNjFkODFhZjdmNGVhYWNkZjMxMTFhNjk5
NjllOGE1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMzEsNiArMjMxLDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2lt
YWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAo
bmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50CiAKICMgQ2hyb21pdW0gZG9lcyBub3Qgc3VwcG9ydCBzbWFydCBw
YXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0Lgogd2Via2l0Lm9yZy9iLzYwODMwIGVkaXRpbmcv
cGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYWU1OGNjZDE3NTVmOTk3Y2E4MjYz
ZDRlZDE1OGZiYzNiNzRiMjk5Li5kNmU5ODUyZGZiYmE5ZTQzMWRjNDQ1MjEyMzViZjI1OGIwYTg4
OWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE0
NCw2ICsxMTQ0LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0
aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxF
X0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
YWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50CiAKICMgT3VyIHNsb3cgdGVzdHMsIGluIGFscGhhYmV0aWNhbCBvcmRlci4KIHdlYmtp
dC5vcmcvYi81NzY3MiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2VuZC1zbGljZWQtZHJhZ2dl
ZC1maWxlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00
LjgvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MWQ5MjQ3MzY5ZWIwYjNlOWFiMDJmMGZjN2M3NmEz
MzI2ZDY4NzVhLi5iNTA3MmRmZDA0ZTdiNjUxOTdmZTU1NGViYWUxMzZkOTNhNDQwOGI5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjk5LDYg
KzY5OSw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgog
IyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1Mz
X1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWdu
LWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dAogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRl
c3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDNkMWUwOTc3OGFlMDk3ODY0NzU1MmYzYWJkN2NjYWQzYmE1MGJlYjIuLmI0N2M1NzA3YWQ3Njgz
NzJiYzBjZDZlNTAyOGQ4YTc5ZGMyNmQ1OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
LW1hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nzk2LDYgKzU3OTYsNyBAQCB3ZWJraXQub3JnL2Iv
ODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMg
bm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81
ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2
MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5
MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBOZWVkcyByZWJhc2VsaW5l
IGFmdGVyIGJ1ZyA4NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzNiNmUxMjAwNjE3NzM5OGE2ZDg2NGU0YTdkYTVi
Yjc3NWUzNmFiYy4uODUyMzhkZTdiNzM0ZWVlNTU1ZWQ4ZDc1ZmJhOWM1ZWUwOTAyNTdiMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDksNiArMzQ5LDcg
QEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMg
VGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCku
CiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24K
IHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAor
d2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMg
V2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIEluc3BlY3RvckNsaWVudDo6b3Zl
cnJpZGVEZXZpY2VNZXRyaWNzKCkgaW4gcGxhdGZvcm1zIG90aGVyIHRoYW4gQ2hyb21pdW0KICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODg2CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDZlNTAyNTI3YmNmZmUzODFhYWM1
YThkZWQ4NGNmMzllNTQzMzlkOWUuLmExMGQ2ODBkNGYyZDNlZDI0NWFlY2E5NDI0YzUzMmI1YTMw
ZmE1ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
NDg1LDYgKzI0ODUsOCBAQCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJlY3Vy
c2l2ZS1zeW5jLWV2ZW50Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJp
dGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxl
LXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRl
ZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMgQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HIGlzIGRpc2FibGVkIG9uIFdpbmRvd3MKIGNvbXBvc2l0aW5nL292ZXJmbG93
L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJmNWJkOGU4NTM2YzI2YTY5NzUyOTgx
Y2IyYTVhZjE3MjM4NTIyNDkuLjgxNmViNDU4YjE5MzNjM2UzZjRkNjM0MTk4N2Q3OGU2MGQzODU4
ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMjk3NSw2ICsyOTc1LDggQEAgd2Via2l0Lm9yZy9iLzM5NzI1IGZhc3QvZXZlbnRzL2Ry
YWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsgU2tpcCBdCiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1h
bGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24t
bGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0Lmh0
bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tbGluZS5odG1sCitmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbAogCiAjIFNw
ZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtpdC5vcmcvYi8xMDgzNzAgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192870</attachid>
            <date>2013-03-12 22:51:41 -0700</date>
            <delta_ts>2013-03-13 17:59:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130313144734.patch</filename>
            <type>text/plain</type>
            <size>38598</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Njc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlOTk5ZDQ5OTgwMjIz
MjljMzJiZjAzNTJkNjI5MjdjN2ZlYjhjNC4uNDY5ZjU3NmIyMDlkYjRkNzM2ZWY4NzJlMzA3MzY5
MDQ5NjhlMjQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTEyICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKyAgICAgICAg
ICAgICAgICAgCisgICAgICAgIEl0J3MgcHJlZml4ZWQgd2l0aCAnLXdlYmtpdC0nIGFuZCBndWFy
ZGVkIGJ5IENTUzNfVEVYVCBmbGFnLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQu
aHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNl
cjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dElu
ZGVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6Cisg
ICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVp
bGRlci5jcHA6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5pdGlhbFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjpjcmVhdGVI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWls
ZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSk6CisKIDIwMTMtMDMtMTIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtDcmFzaF0gVG91Y2ggRXZlbnRzIHJldGFyZ2V0aW5nIGNhdXNlcyBjcmFzaGVz
IG9uIGNocm9tZSBvbiBhbmRyb2lkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxYzA0OGE1OTg3YTljMmQxOWQ1Njk3MGI3
YmVlZjQ3NzA4NGFlOGY0Li45ZjhiNzc3YzAyMDVmZGI0NTY3ZGI2MjczNzIyZTFkZGIzYjdkYmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcApAQCAtMjE4Nyw4ICsyMTg3LDE1IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKLSAgICAgICAg
ICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5k
ZW50KCksIHN0eWxlLmdldCgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6
IHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9vbUFk
anVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHlsZS5nZXQo
KSkpOworI2lmIEVOQUJMRShDU1MzX1RFWFQpICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
c3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dEluZGVudEVhY2hMaW5lKQorICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOworI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gbGlz
dC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRTaGFk
b3c6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JTaGFkb3coc3R5bGUtPnRleHRTaGFkb3co
KSwgcHJvcGVydHlJRCwgc3R5bGUuZ2V0KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dFJlbmRlcmluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZDFiODk3NTUxMGMzZTBh
YzY0ZTY5MmM3NmZlMjRhNzM3YmI5Yzc2MS4uNjIzOGU3MDEyZDNlNjg2ZmNhY2U2ZjRhODY4NjUz
NDRhNGIyYWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTU4OCw3ICs1ODgsNiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJZCwgYm9vbCYgYWNjZQogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5SaWdo
dDoKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlS
aWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKICAgICBjYXNlIENTU1Byb3Bl
cnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5BZnRlcjoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpAQCAtMjE3NSw4ICsyMTc0LDggQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZMZW5n
dGgpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiAg
ICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGluaGVyaXQKLSAgICAgICAgdmFs
aWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50
KSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6CisgICAgICAgIHBhcnNlZFZhbHVl
ID0gcGFyc2VUZXh0SW5kZW50KCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVBhZGRpbmdUb3A6ICAgICAgICAgIC8vLy8gPHBhZGRpbmctd2lkdGg+IHwgaW5oZXJpdApA
QCAtOTIyMyw2ICs5MjIyLDQ3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVRleHRFbXBoYXNpc1N0
eWxlKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQoKQoreworICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisK
KyAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPgorICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6
ZSgpID09IDEpIHsKKyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3Qt
PmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBG
TGVuZ3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJp
bWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4
dCgpOworICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CisgICAg
fQorCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAvLyBbIDxsZW5ndGg+IHwgPHBlcmNlbnRh
Z2U+IF0gJiYgLXdlYmtpdC1lYWNoLWxpbmUgfCBpbmhlcml0CisgICAgaWYgKG1fdmFsdWVMaXN0
LT5zaXplKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBDU1NQYXJzZXJWYWx1ZSog
Zmlyc3RWYWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUq
IHNlY29uZFZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUgPSAwOworCisgICAgLy8gWyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdIC13ZWJraXQt
ZWFjaC1saW5lCisgICAgaWYgKHZhbGlkVW5pdChmaXJzdFZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNl
bnQpICYmIHNlY29uZFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKQorICAgICAg
ICB2YWx1ZSA9IGZpcnN0VmFsdWU7CisgICAgLy8gLXdlYmtpdC1lYWNoLWxpbmUgWyA8bGVuZ3Ro
PiB8IDxwZXJjZW50YWdlPiBdCisgICAgZWxzZSBpZiAoZmlyc3RWYWx1ZS0+aWQgPT0gQ1NTVmFs
dWVXZWJraXRFYWNoTGluZSAmJiB2YWxpZFVuaXQoc2Vjb25kVmFsdWUsIEZMZW5ndGggfCBGUGVy
Y2VudCkpCisgICAgICAgIHZhbHVlID0gc2Vjb25kVmFsdWU7CisKKyAgICBpZiAodmFsdWUpIHsK
KyAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSkp
OworICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlV2Via2l0RWFjaExpbmUpKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQo
KTsKKyAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgIH0KKyNlbmRpZgorCisgICAg
cmV0dXJuIDA7Cit9CisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxpbmVCb3hDb250YWluKGJvb2wg
aW1wb3J0YW50KQogewogICAgIExpbmVCb3hDb250YWluIGxpbmVCb3hDb250YWluID0gTGluZUJv
eENvbnRhaW5Ob25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDE1OTk3ZTk2M2MzYzAyMmYy
Y2E0ODc1MmYwYjk2YzA4MjExYzQwMzkuLjRlMTQyMzFjMDk5YzgyY2Q3NWIzMDA4YjkxZjdhNDkw
YzFkZjhmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI2OCw2ICsyNjgsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlvbihib29sIGltcG9ydGFudCk7
CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAKKyAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVRl
eHRJbmRlbnQoKTsKKyAgICAKICAgICBib29sIHBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBv
cnRhbnQpOwogICAgIGJvb2wgcGFyc2VDYWxjdWxhdGlvbihDU1NQYXJzZXJWYWx1ZSosIENhbGN1
bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KaW5kZXggZjFlNmI0NzM1MzBhNmNmYmU4ZjNmMzRkNDJkZDk4NmU1MTRmNGIzYS4u
ZGU4OTMwZjVhOTJkYzEzZGZjOTk0MTU1MjdlMzMyMjQ2YmE1YzRjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEwMDksMyArMTAwOSw5IEBAIHNuYXAKIGRyYWcK
IG5vLWRyYWcKICNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKSAmJiBFTkFC
TEVfQ1NTM19URVhUCisvLyB0ZXh0LWluZGVudAorLXdlYmtpdC1lYWNoLWxpbmUKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDgyNzQ4MTdmZGE4OTY3OWY0YjJi
NjBjNmZjNWIxOWI2YWYwNzA4MzMuLmQ1MjdhYjc0NDBmMWNiYWQyNzVlNjJiNjIxNmQyYzFlMmZh
M2Y5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0xODE5LDYgKzE4MTks
ODUgQEAgcHVibGljOgogfTsKICNlbmRpZgogCitjbGFzcyBBcHBseVByb3BlcnR5VGV4dEluZGVu
dCB7Citwcml2YXRlOgorICAgIHN0YXRpYyBMZW5ndGggY29tcHV0ZUxlbmd0aChTdHlsZVJlc29s
dmVyKiBzdHlsZVJlc29sdmVyLCBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUpCisg
ICAgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTGVuZ3RoKCkpIHsKKyAgICAgICAg
ICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUo
KSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgICAg
IGxlbmd0aC5zZXRRdWlyayhwcmltaXRpdmVWYWx1ZS0+aXNRdWlya1ZhbHVlKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUtPmlzUGVyY2VudGFnZSgpKQorICAgICAgICAgICAgcmV0dXJuIExlbmd0aChwcmltaXRpdmVW
YWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CisgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZS0+aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiBw
cmltaXRpdmVWYWx1ZS0+dmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCk7CisKKyAgICAgICAgcmV0
dXJuIExlbmd0aCgpOworICAgIH0KKworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5o
ZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisg
ICAgeworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHN0eWxl
UmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRJbmRlbnQoKSk7CisjaWYgRU5BQkxFKENTUzNf
VEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUo
c3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7CisjZW5kaWYK
KyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlE
LCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsKKyAgICAgICAgc3R5bGVSZXNv
bHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRl
bnQoKSk7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5
bGUoKS0+c2V0VGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGlu
ZSgpKTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJv
cGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBMZW5ndGggdGV4dEluZGVudCA9IFJlbmRlclN0eWxlOjppbml0aWFs
VGV4dEluZGVudCgpOworCisgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGlj
X2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworCisgICAgICAgIC8vIFsgPGxlbmd0aD4gfCA8
cGVyY2VudGFnZT4gXQorICAgICAgICBpZiAodmFsdWVMaXN0LT5sZW5ndGgoKSA9PSAxKSB7Cisg
ICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygw
KSk7CisgICAgICAgICAgICB0ZXh0SW5kZW50ID0gY29tcHV0ZUxlbmd0aChzdHlsZVJlc29sdmVy
LCBwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRUZXh0SW5kZW50KHRleHRJbmRlbnQpOworI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50
Rmlyc3RMaW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyNp
ZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICBBU1NFUlQodmFsdWVMaXN0LT5sZW5ndGgoKSA9
PSAyKTsKKyAgICAgICAgaWYgKHZhbHVlTGlzdC0+bGVuZ3RoKCkgIT0gMikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAvLyBbIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gfHwgLXdl
YmtpdC1lYWNoLWxpbmUKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGZpcnN0VmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3Vu
ZHNDaGVjaygwKSk7CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBzZWNvbmRWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5k
c0NoZWNrKDEpKTsKKworICAgICAgICBpZiAoZmlyc3RWYWx1ZS0+aXNMZW5ndGgoKSB8fCBmaXJz
dFZhbHVlLT5pc1BlcmNlbnRhZ2UoKSB8fCBmaXJzdFZhbHVlLT5pc1ZpZXdwb3J0UGVyY2VudGFn
ZUxlbmd0aCgpKQorICAgICAgICAgICAgdGV4dEluZGVudCA9IGNvbXB1dGVMZW5ndGgoc3R5bGVS
ZXNvbHZlciwgZmlyc3RWYWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHNlY29uZFZhbHVlLT5pc0xl
bmd0aCgpIHx8IHNlY29uZFZhbHVlLT5pc1BlcmNlbnRhZ2UoKSB8fCBzZWNvbmRWYWx1ZS0+aXNW
aWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSkKKyAgICAgICAgICAgIHRleHRJbmRlbnQgPSBjb21w
dXRlTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHNlY29uZFZhbHVlKTsKKworICAgICAgICBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHRleHRJbmRlbnQpOworICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50RWFjaExpbmUp
OworI2VuZGlmCisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5k
bGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJp
dFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVlKTsKKyAgICB9Cit9OworCiBj
b25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6c2hhcmVkU3R5bGVCdWlsZGVyKCkKIHsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVpbGRlciwgc3R5bGVCdWlsZGVySW5zdGFu
Y2UsICgpKTsKQEAgLTE5MzQsNyArMjAxMyw3IEBAIFN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVy
KCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0QWxpZ25MYXN0
LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OnRleHRB
bGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEFsaWduTGFzdCwg
VGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEFsaWduTGFzdD46OmNyZWF0
ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4
dFVuZGVybGluZVBvc2l0aW9uLCBBcHBseVByb3BlcnR5VGV4dFVuZGVybGluZVBvc2l0aW9uOjpj
cmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAotICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0
eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkpOworICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVydHlUZXh0SW5kZW50Ojpj
cmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRP
dmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6
OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnNldFRleHRPdmVyZmxv
dywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0T3ZlcmZsb3c+OjpjcmVh
dGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5k
ZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0
aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRlcmlu
Z01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9w
ZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVs
dDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5z
Zm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJl
bmRlclN0eWxlOjppbml0aWFsVGV4dFRyYW5zZm9ybT46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCAxZTI0
OWI3ZTQ5ODI5NWY0MzUwNjU1Y2YwZjg1ZjQ0Y2NjYjRlNWE5Li44NTQyYjc3YTk4YjU3ZWY0YTk5
MmJmZmZhOGUxMjEwMDYwNjQzMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQ4MSw2ICs0ODEsOSBAQCBTdHlsZURpZmZlcmVuY2Ug
UmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hh
bmdlZENvbgogICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZUlu
aGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdo
bGlnaHQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQKICAgICAgICAgICAg
IHx8IHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRh
LT5pbmRlbnQKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICAgICAgfHwgcmFyZUluaGVy
aXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5t
X3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT5tX2VmZmVjdGl2ZVpvb20gIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2
ZVpvb20KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsgIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsKICAgICAgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT5vdmVyZmxvd1dyYXAgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5vdmVy
Zmxvd1dyYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
aW5kZXggMTI5MmE0NjUyNDQzZmQxN2E3ZmQyYzIzODMxNWZjZjI2OGFiNDhiYy4uODRiMjI3YjA5
ZTYyYzRjMWQyNmI5NjU2MGM5NGNiNTFkN2IyMmQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTU2OCw2ICs1NjgsOSBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogICAgIExlbmd0aCB0ZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVy
aXRlZERhdGEtPmluZGVudDsgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgVGV4dEluZGVu
dExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0SW5k
ZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUpOyB9CisjZW5kaWYK
ICAgICBFVGV4dEFsaWduIHRleHRBbGlnbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVU
ZXh0QWxpZ24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbik7IH0KICAgICBFVGV4dFRyYW5z
Zm9ybSB0ZXh0VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRUcmFu
c2Zvcm0+KGluaGVyaXRlZF9mbGFncy5fdGV4dF90cmFuc2Zvcm0pOyB9CiAgICAgRVRleHREZWNv
cmF0aW9uIHRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RVRleHREZWNvcmF0aW9uPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMpOyB9
CkBAIC0xMTMwLDYgKzExMzMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0
IENvbG9yJik7CiAgICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0aCB2KSB7IFNFVF9WQVIocmFy
ZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAg
IHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudExpbmUgdikgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5lLCB2KTsgfQorI2VuZGlmCiAgICAgdm9pZCBz
ZXRUZXh0QWxpZ24oRVRleHRBbGlnbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbiA9
IHY7IH0KICAgICB2b2lkIHNldFRleHRUcmFuc2Zvcm0oRVRleHRUcmFuc2Zvcm0gdikgeyBpbmhl
cml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtID0gdjsgfQogICAgIHZvaWQgYWRkVG9UZXh0RGVj
b3JhdGlvbnNJbkVmZmVjdChFVGV4dERlY29yYXRpb24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3Rl
eHRfZGVjb3JhdGlvbnMgfD0gdjsgfQpAQCAtMTYwNCw2ICsxNjEwLDkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBMZW5ndGggaW5pdGlhbE1hcmdpbigpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0K
ICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxQYWRkaW5nKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVk
KTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRleHRJbmRlbnQoKSB7IHJldHVybiBMZW5n
dGgoRml4ZWQpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBzdGF0aWMgVGV4dEluZGVu
dExpbmUgaW5pdGlhbFRleHRJbmRlbnRMaW5lKCkgeyByZXR1cm4gVGV4dEluZGVudEZpcnN0TGlu
ZTsgfQorI2VuZGlmCiAgICAgc3RhdGljIEVWZXJ0aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFs
aWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93
cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMgc2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJl
dHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGUzZGI0MzE2MDhjNGZjOGJlY2RjY2I1YzQ4ZmM5M2I0
NDlhNGZmMDcuLmVhZjc1MTE5N2E2YjE1M2U0Y2VlZmVmMzhlZDQ2ZGJlMmRkYWJhMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCkBAIC01MDgsNiArNTA4LDEwIEBAIGVudW0gRHJhZ2dhYmxlUmVnaW9uTW9kZSB7IERy
YWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdnYWJsZVJlZ2lvbkRyYWcsIERyYWdnYWJsZVJlCiAvLyBS
ZWFzb25hYmxlIG1heGltdW0gdG8gcHJldmVudCBpbnNhbmUgZm9udCBzaXplcyBmcm9tIGNhdXNp
bmcgY3Jhc2hlcyBvbiBzb21lIHBsYXRmb3JtcyAoc3VjaCBhcyBXaW5kb3dzKS4KIHN0YXRpYyBj
b25zdCBmbG9hdCBtYXhpbXVtQWxsb3dlZEZvbnRTaXplID0gMTAwMDAwMC4wZjsKIAorI2lmIEVO
QUJMRShDU1MzX1RFWFQpCitlbnVtIFRleHRJbmRlbnRMaW5lIHsgVGV4dEluZGVudEZpcnN0TGlu
ZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25zdGFudHNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmlu
ZGV4IDMyM2JiOWQ3ZDI3NGIyZjYwYjVlYTgzOTc5MmJjNGU4YWY1Y2U4NDQuLjgzMTA4NDQxMjNi
ZTQyY2JlOTRhNmFjNDEzZDAwN2U3ZDE2NjFhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3
LDYgKzg3LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKFRleHRFbXBoYXNpc01hcmtOb25lKQogICAgICwg
dGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyKQogICAgICwgbV90
ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uVmVydGljYWxSaWdodCkKKyNpZiBFTkFCTEUo
Q1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRl
eHRJbmRlbnRMaW5lKCkpCisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oUmVuZGVyU3R5
bGU6OmluaXRpYWxMaW5lQm94Q29udGFpbigpKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5U
QVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFn
ZU9yaWVudGF0aW9uKCkpCkBAIC0xNTcsNiArMTYwLDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBv
KQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNpc01hcmspCiAgICAgLCB0ZXh0
RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9uKQogICAgICwgbV90ZXh0T3Jp
ZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAg
ICwgbV90ZXh0SW5kZW50TGluZShvLm1fdGV4dEluZGVudExpbmUpCisjZW5kaWYKICAgICAsIG1f
bGluZUJveENvbnRhaW4oby5tX2xpbmVCb3hDb250YWluKQogI2lmIEVOQUJMRShDU1NfSU1BR0Vf
T1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24oby5tX2ltYWdlT3JpZW50YXRp
b24pCkBAIC0yNTEsNiArMjU3LDkgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYm
IHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1waGFzaXNNYXJrCiAgICAgICAgICYmIHRleHRF
bXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICAgICAgJiYgbV90
ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgICAgICYmIG1fdGV4dEluZGVudExpbmUgPT0gby5tX3RleHRJbmRlbnRMaW5lCisj
ZW5kaWYKICAgICAgICAgJiYgbV9saW5lQm94Q29udGFpbiA9PSBvLm1fbGluZUJveENvbnRhaW4K
ICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAg
ICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDUxNDk1ZmU3ZmZl
ZjNkODdiOWY2NTZlMDZiMTMyNzVkZmViMzU0MTYuLjI1NjZkZTk4MTQwYTYyYTY4MGVjZDhlOWI5
MGQ4YzM2MWRiYWRjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCB0ZXh0RW1waGFzaXNNYXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFy
awogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc1Bvc2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lz
UG9zaXRpb24KICAgICB1bnNpZ25lZCBtX3RleHRPcmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmll
bnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgdW5zaWduZWQgbV90ZXh0SW5kZW50
TGluZSA6IDE7IC8vIFRleHRJbmRlbnRFYWNoTGluZQorI2VuZGlmCiAgICAgdW5zaWduZWQgbV9s
aW5lQm94Q29udGFpbjogNzsgLy8gTGluZUJveENvbnRhaW4KICAgICAvLyBDU1MgSW1hZ2UgVmFs
dWVzIExldmVsIDMKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQz
ZDdkYzIzYWEyOGI0MTNhYzE0ZDIyMDhlZGI2NzZmYWY3OTRhNjkuLmQ4NzUyYjgwYzVlNWVlYmY2
NGMzMjVlOGJmMTg0MTA1YjUzNjI2NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMy0wMy0x
MiAgSmFlaHVuIExpbSAgPGxqYWVodW4ubGltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtjc3Mz
LXRleHRdIFBhcnNpbmcgLXdlYmtpdC1lYWNoLWxpbmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZy
b20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDkwMjEKKworICAgICAgICAiZWFjaC1saW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRl
bnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNl
YWNoLWxpbmUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAob3duVmFsdWVUZXN0KToKKyAgICAgICAgKGlu
aGVyaXRhbmNlVGVzdCk6CisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RFbGVtZW50U3R5bGUpOgorICAgICAgICAodGVz
dENvbXB1dGVkU3R5bGUpOgorICAgICAgICAodmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgIChp
bnZhbGlkVmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMt
MDMtMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRl
IHRlc3QgZXhwZWN0YXRpb24gZm9yIHRoZSBidWcgMTExNTIxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNmNhODQzZDExMjRl
MDhhZmRlNjgxZjYyZGExYzNkYTFiNDI4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTAgQEAKK1Ro
aXMgdGVzdHMgY2hlY2sgdGhhdCB0ZXh0LWluZGVudCBwYXJzZXMgcHJvcGVybHkgdGhlIHByb3Bl
cnRpZXMgZnJvbSBDU1MzIFRleHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitU
ZXN0IHRoZSBpbml0aWFsIHZhbHVlOgorUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMg
JzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcwcHgnCisKK1ZhbHVlICcxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcx
MGVtJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEw
ZW0nCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMTAwcHgnCitQQVNTIGNvbXB1
dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHgnCisKK1Zh
bHVlICcyMGV4JzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcyMGV4JworUEFTUyBlLnN0
eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwZXgnCitQQVNTIGNvbXB1
dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMjAwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjAwcHgnCisKK1ZhbHVlICc1MCUnOgorUEFT
UyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzUwJScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVu
dCBpcyAnNTAlJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzUwJScKKworVmFsdWUgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBl
LnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbSAtd2Via2l0LWVhY2gt
bGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQtZWFjaC1s
aW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gLXdlYmtpdC1lYWNo
LWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlz
ICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFs
dWUgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
JzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCAtd2Via2l0
LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnOgorUEFTUyBlLnN0
eWxlLnRleHRJbmRlbnQgaXMgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGlu
ZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0LWVhY2gt
bGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJzMwJSAtd2Via2l0LWVhY2gt
bGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5l
JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAt
d2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICczMCUg
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtp
dC1lYWNoLWxpbmUgMzAlJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdlYmtp
dC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRl
bnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCisKKwor
SW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAn
MHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBw
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlk
IHZhbHVlIHRlc3QgLSAnMTBtIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0
SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BB
U1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgn
CisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAxMG0nOgorUEFTUyBl
LnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBp
cyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwZW0gMTBlbSc6CitQQVNTIGUu
c3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlz
ICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1lYWNoLWxpbmUnOgor
UEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dElu
ZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwZW0gLXdlYmtpdC1l
YWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBl
LnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3Qg
LSAnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5
bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3Rl
eHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcw
cHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBp
cyAnMHB4JworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJp
dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1p
bmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVy
aXRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkNGUwOTRkMDRlYTM3MDU1YThlMjFlYjRh
ZmUzNDI0YmMxMzljZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhpcyB0
ZXN0cyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBpbmhl
cml0ZWQgdG8gdGhlIGNoaWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVmFs
dWUgb2YgYW5jZXN0b3IgaXMgJzEwcHgnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShh
bmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzEwcHgnCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4IC13ZWJraXQtZWFj
aC1saW5lJzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSBvZiBhbmNlc3RvciBp
cyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScsIHdoaWxlIGNoaWxkIGlzICcxMHB4JzoKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4
JworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1
dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNDFiOTY0NzEwNzhkMjdlMTYyZDgzMGEzOTBiZWJhMzY1OGM5YjRhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0
bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJhbmNlc3RvciI+PGRpdiBpZD0iY2hpbGQi
PjwvZGl2PjwvZGl2PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5
bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQy
ODBhMjBlMTgwYzI2ZjcwMjZlNWMyNzkxNWFkNmQwZTdiMTRjMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0IiBzdHlsZT0iZm9udDogMTBweCBBaGVtOyI+PC9kaXY+CisgIDxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcyI+PC9z
Y3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQt
dGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2Ny
aXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQzMzdjZjk1ZTQ3NGY1MDllNjJkMGEyNmI1NTVkMDc5N2ZlY2QxMmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dl
dENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
aW5oZXJpdGVkLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxl
KGFfdmFsdWUsIGNfdmFsdWUpCit7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiArIGFf
dmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGls
ZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSIsICAiJyIgKyBjX3ZhbHVlICsgIici
KTsKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2Z1bmN0aW9uIG93blZhbHVlVGVzdChhX3ZhbHVlLCBj
X3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBvZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUg
KyAiJywgd2hpbGUgY2hpbGQgaXMgJyIgKyBjX3ZhbHVlICsgIic6Iik7CisgICAgYW5jZXN0b3Iu
c3R5bGUudGV4dEluZGVudCA9IGFfdmFsdWU7CisgICAgY2hpbGQuc3R5bGUudGV4dEluZGVudCA9
IGNfdmFsdWU7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192YWx1ZSk7Cit9CisK
K2Z1bmN0aW9uIGluaGVyaXRhbmNlVGVzdChhX3ZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSBv
ZiBhbmNlc3RvciBpcyAnIiArIGFfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50
ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBhX3Zh
bHVlKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFsdWUg
b2YgdGV4dC1pbmRlbnQgaXMgcHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4iKTsKKwor
YW5jZXN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5jZXN0b3InKTsKK2NoaWxkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoaWxkJyk7CisKK2luaGVyaXRhbmNlVGVzdCgiMTBw
eCIpOworaW5oZXJpdGFuY2VUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5lIik7CisKK293blZh
bHVlVGVzdCgiMTBweCAtd2Via2l0LWVhY2gtbGluZSIsICIxMHB4Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2Ny
aXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I0
MzE5NTdkZmZhZjZiZDlkYjczOWFlMDUzNWQ3NDVjYTFkM2M0MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpAQCAtMCww
ICsxLDU5IEBACitmdW5jdGlvbiB0ZXN0RWxlbWVudFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5
Q1NTLCB2YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgiZS5zdHlsZS4iICsgcHJvcGVydHlKUywgIici
ICsgdmFsdWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUo
JyIgKyBwcm9wZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rp
b24gdGVzdENvbXB1dGVkU3R5bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQorewor
ICAgIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLCBudWxsKTsKKyAg
ICBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS4iICsgcHJvcGVydHlKUywgIiciICsgdmFsdWUgKyAi
JyIpOworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJyIgKyBw
cm9wZXJ0eUNTUyArICInKSIsICInIiArIHZhbHVlICsgIiciKTsKK30KKworZnVuY3Rpb24gdmFs
dWVTZXR0aW5nVGVzdCh2YWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgY29tcHV0ZWRWYWx1ZSkKK3sKKyAg
ICBkZWJ1ZygiVmFsdWUgJyIgKyB2YWx1ZSArICInOiIpOworICAgIGUuc3R5bGUudGV4dEluZGVu
dCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRl
bnQiLCBleHBlY3RlZFZhbHVlKTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIs
ICJ0ZXh0LWluZGVudCIsIGNvbXB1dGVkVmFsdWUpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVu
Y3Rpb24gaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QodmFsdWUsIGRlZmF1bHRWYWx1ZSkKK3sKKyAg
ICBkZWJ1ZygiSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJyIgKyB2YWx1ZSArICInOiIpOworICAgIGUu
c3R5bGUudGV4dEluZGVudCA9IHZhbHVlOworICAgIHRlc3RFbGVtZW50U3R5bGUoInRleHRJbmRl
bnQiLCAidGV4dC1pbmRlbnQiLCBkZWZhdWx0VmFsdWUpOworICAgIHRlc3RDb21wdXRlZFN0eWxl
KCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICBkZWJ1Zygn
Jyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGV4dC1pbmRlbnQg
cGFyc2VzIHByb3Blcmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBUZXh0LiIpOworCitlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKworZGVidWcoIlRlc3QgdGhlIGluaXRp
YWwgdmFsdWU6Iik7Cit0ZXN0Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVu
dCIsICcwcHgnKTsKK2RlYnVnKCcnKTsKKwordmFsdWVTZXR0aW5nVGVzdCgnMTBlbScsICcxMGVt
JywgJzEwMHB4Jyk7Cit2YWx1ZVNldHRpbmdUZXN0KCcyMGV4JywgJzIwZXgnLCcyMDBweCcpOwor
dmFsdWVTZXR0aW5nVGVzdCgnNTAlJywgJzUwJScsJzUwJScpOwordmFsdWVTZXR0aW5nVGVzdCgn
MTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgJzEwMHB4
IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGlu
ZSAxMGVtJywgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCAnMTAwcHggLXdlYmtpdC1lYWNoLWxp
bmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnLCAnMjBleCAt
d2Via2l0LWVhY2gtbGluZScsICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0
aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCcsICcyMGV4IC13ZWJraXQtZWFjaC1saW5l
JywgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCczMCUgLXdl
YmtpdC1lYWNoLWxpbmUnLCAnMzAlIC13ZWJraXQtZWFjaC1saW5lJywgJzMwJSAtd2Via2l0LWVh
Y2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMzAlJywgJzMw
JSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnKTsKK2RlYnVnKCcn
KTsKKworZGVmYXVsdFZhbHVlID0gJzBweCcKK2Uuc3R5bGUudGV4dEluZGVudCA9IGRlZmF1bHRW
YWx1ZTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMG0nLCBkZWZhdWx0VmFsdWUpOworaW52
YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1bHRWYWx1
ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMTBtJywgZGVm
YXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIDEwZW0nLCBkZWZhdWx0
VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lJywgZGVm
YXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIC13ZWJraXQtZWFjaC1s
aW5lIDEwZW0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJr
aXQtZWFjaC1saW5lIDEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTFi
YmM1ODk0YTc5MGU3YmZkZjQ2MDYzNjk0OWQzMjYzMzE4YTM2Zi4uOWMwYmY0YzkzNjAwMDYzNTli
MDIzYzhkZmJkNjFkYWYzM2MxZjNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzEsNiArMjMxLDcgQEAgd2Via2l0Lm9yZy9iLzg5
MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5v
dCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0
OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3
MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAy
MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgQ2hyb21pdW0gZG9lcyBub3Qg
c3VwcG9ydCBzbWFydCBwYXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0Lgogd2Via2l0Lm9yZy9i
LzYwODMwIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzNmY3MTE5
NzBlOTdiZDcwZGU4NTg3NGY5MjIwNDcyNDE2OTA0YmNlLi5mOTNhODY5YjZlMGUwMjM4OGE2ZTMz
YTY0ZDBkNDhjNmM4ZGM2ZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTE0NSw2ICsxMTQ1LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3Nz
L2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxl
ZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgT3VyIHNsb3cgdGVzdHMsIGluIGFscGhhYmV0aWNh
bCBvcmRlci4KIHdlYmtpdC5vcmcvYi81NzY3MiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2Vu
ZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MWQ5MjQ3MzY5ZWIwYjNl
OWFiMDJmMGZjN2M3NmEzMzI2ZDY4NzVhLi5iNTA3MmRmZDA0ZTdiNjUxOTdmZTU1NGViYWUxMzZk
OTNhNDQwOGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNjk5LDYgKzY5OSw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFn
ZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5l
ZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudAogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAj
IGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDNkMWUwOTc3OGFlMDk3ODY0NzU1MmYzYWJkN2NjYWQzYmE1MGJlYjIu
LmI0N2M1NzA3YWQ3NjgzNzJiYzBjZDZlNTAyOGQ4YTc5ZGMyNmQ1OTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC01Nzk2LDYgKzU3OTYsNyBA
QCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBU
ZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4K
IHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgog
d2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3
ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBO
ZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJ1ZyA4NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDM3YTYzMmVmY2MzMTk4
ZWNmOGMyMGNkNjBlODM4ODI0NWZjNzlkOS4uNmUzN2M0MTVlN2E5YWYyZWUzMzc3OTIzMWY2Njhk
NjMyZGIyZTJkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNDYsNiArMzQ2LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVu
dGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5B
QkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50CiAKICMgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIEluc3Bl
Y3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkgaW4gcGxhdGZvcm1zIG90aGVyIHRo
YW4gQ2hyb21pdW0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgy
ODg2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI2ZjY4
ODVmNjFjOTNmZjk5ZWU4Mjc0YTNhMmI0NGEwN2EyNTZiMmEuLjJhY2ZhOTM2YjA5NzViNjE2NDQ2
ZDMwMTIzMGNmMjdkZTkzMTIyYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0yNDg5LDYgKzI0ODksOCBAQCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0
dHByZXF1ZXN0LXJlY3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFs
aWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1s
YXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRt
bAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMgQUND
RUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGRpc2FibGVkIG9uIFdpbmRvd3MKIGNvbXBv
c2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJmNWJkOGU4
NTM2YzI2YTY5NzUyOTgxY2IyYTVhZjE3MjM4NTIyNDkuLjgxNmViNDU4YjE5MzNjM2UzZjRkNjM0
MTk4N2Q3OGU2MGQzODU4ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8v
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk3NSw2ICsyOTc1LDggQEAgd2Via2l0Lm9yZy9iLzM5NzI1
IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsgU2tpcCBdCiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1hbGlnbi1sYXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tbGluZS5odG1s
CitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuaHRtbAogCiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtpdC5vcmcvYi8x
MDgzNzAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwg
WyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193032</attachid>
            <date>2013-03-13 18:00:04 -0700</date>
            <delta_ts>2013-03-13 23:21:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130314095558.patch</filename>
            <type>text/plain</type>
            <size>41485</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdkNzc2NjljODFmYTc1
Y2JjM2JhYjNjNDY3ZTNlMjBhODJhNGQyNi4uNGE4NTk4OTdhYTViZWE5YWI2Y2UzNGEzNGYxMWVj
NDc4ZGJjYThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTEzICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKyAgICAgICAg
ICAgICAgCisgICAgICAgIEl0J3MgcHJlZml4ZWQgd2l0aCAnLXdlYmtpdC0nIGFuZCBndWFyZGVk
IGJ5IENTUzNfVEVYVCBmbGFnLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRt
bAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NT
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dEluZGVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRl
ci5jcHA6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5pdGlhbFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVy
OjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSk6CisKIDIwMTMtMDMtMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVGhyZWFkZWQgSFRNTCBQYXJzZXIgaXMgbWlzc2luZyBmZWF0dXJlIGRlZmluZSBmbGFn
cyBpbiBhbGwgYnV0IENocm9taXVtIHBvcnQncyBidWlsZCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxYzA0OGE1
OTg3YTljMmQxOWQ1Njk3MGI3YmVlZjQ3NzA4NGFlOGY0Li45ZjhiNzc3YzAyMDVmZGI0NTY3ZGI2
MjczNzIyZTFkZGIzYjdkYmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjE4Nyw4ICsyMTg3LDE1IEBAIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NW
YWx1ZShDU1NQcm9wZXJ0CiAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dEluZGVudDoKLSAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVu
Z3RoKHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKTsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVRleHRJbmRlbnQ6IHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxp
c3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBs
aXN0LT5hcHBlbmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dElu
ZGVudCgpLCBzdHlsZS5nZXQoKSkpOworI2lmIEVOQUJMRShDU1MzX1RFWFQpICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoc3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dEluZGVudEVh
Y2hMaW5lKQorICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOworI2VuZGlmCisgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRleHRTaGFkb3c6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JTaGFkb3co
c3R5bGUtPnRleHRTaGFkb3coKSwgcHJvcGVydHlJRCwgc3R5bGUuZ2V0KCkpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggZDFiODk3NTUxMGMzZTBhYzY0ZTY5MmM3NmZlMjRhNzM3YmI5Yzc2MS4uNjIzOGU3MDEyZDNl
Njg2ZmNhY2U2ZjRhODY4NjUzNDRhNGIyYWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTU4OCw3ICs1ODgsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaW1wbGVMZW5ndGhQcm9w
ZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgYm9vbCYgYWNjZQogICAgIGNhc2UgQ1NT
UHJvcGVydHlNYXJnaW5SaWdodDoKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlSaWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoK
ICAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJn
aW5BZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpAQCAtMjE3
NSw4ICsyMTc0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxp
ZFVuaXQodmFsdWUsIEZMZW5ndGgpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGlu
aGVyaXQKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aCB8IEZQZXJjZW50KSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6Cisg
ICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VUZXh0SW5kZW50KCk7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6ICAgICAgICAgIC8vLy8gPHBhZGRpbmct
d2lkdGg+IHwgaW5oZXJpdApAQCAtOTIyMyw2ICs5MjIyLDQ3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQoKQor
eworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNw
YWNlU2VwYXJhdGVkKCk7CisKKyAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPgorICAgIGlm
IChtX3ZhbHVlTGlzdC0+c2l6ZSgpID09IDEpIHsKKyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZh
bHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aWQgJiYg
dmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0
LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAg
ICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgp
OworICAgICAgICB9CisgICAgfQorCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAvLyBbIDxs
ZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gJiYgLXdlYmtpdC1lYWNoLWxpbmUgfCBpbmhlcml0Cisg
ICAgaWYgKG1fdmFsdWVMaXN0LT5zaXplKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICBDU1NQYXJzZXJWYWx1ZSogZmlyc3RWYWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7Cisg
ICAgQ1NTUGFyc2VyVmFsdWUqIHNlY29uZFZhbHVlID0gbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAg
ICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSAwOworCisgICAgLy8gWyA8bGVuZ3RoPiB8IDxwZXJj
ZW50YWdlPiBdIC13ZWJraXQtZWFjaC1saW5lCisgICAgaWYgKHZhbGlkVW5pdChmaXJzdFZhbHVl
LCBGTGVuZ3RoIHwgRlBlcmNlbnQpICYmIHNlY29uZFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVdlYmtp
dEVhY2hMaW5lKQorICAgICAgICB2YWx1ZSA9IGZpcnN0VmFsdWU7CisgICAgLy8gLXdlYmtpdC1l
YWNoLWxpbmUgWyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdCisgICAgZWxzZSBpZiAoZmlyc3RW
YWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSAmJiB2YWxpZFVuaXQoc2Vjb25kVmFs
dWUsIEZMZW5ndGggfCBGUGVyY2VudCkpCisgICAgICAgIHZhbHVlID0gc2Vjb25kVmFsdWU7CisK
KyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlV2Via2l0RWFjaExpbmUpKTsKKyAgICAgICAg
bV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAg
IH0KKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUxp
bmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KQogewogICAgIExpbmVCb3hDb250YWluIGxpbmVC
b3hDb250YWluID0gTGluZUJveENvbnRhaW5Ob25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4
IDE1OTk3ZTk2M2MzYzAyMmYyY2E0ODc1MmYwYjk2YzA4MjExYzQwMzkuLjRlMTQyMzFjMDk5Yzgy
Y2Q3NWIzMDA4YjkxZjdhNDkwYzFkZjhmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI2
OCw2ICsyNjgsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZVRleHRVbmRlcmxpbmVQb3NpdGlv
bihib29sIGltcG9ydGFudCk7CiAjZW5kaWYgLy8gQ1NTM19URVhUCiAKKyAgICBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZVRleHRJbmRlbnQoKTsKKyAgICAKICAgICBib29sIHBhcnNlTGluZUJv
eENvbnRhaW4oYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VDYWxjdWxhdGlvbihDU1NQ
YXJzZXJWYWx1ZSosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggZjFlNmI0NzM1MzBhNmNmYmU4ZjNmMzRk
NDJkZDk4NmU1MTRmNGIzYS4uZGU4OTMwZjVhOTJkYzEzZGZjOTk0MTU1MjdlMzMyMjQ2YmE1YzRj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEwMDksMyArMTAw
OSw5IEBAIHNuYXAKIGRyYWcKIG5vLWRyYWcKICNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVf
Q1NTM19URVhUKSAmJiBFTkFCTEVfQ1NTM19URVhUCisvLyB0ZXh0LWluZGVudAorLXdlYmtpdC1l
YWNoLWxpbmUKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDgy
NzQ4MTdmZGE4OTY3OWY0YjJiNjBjNmZjNWIxOWI2YWYwNzA4MzMuLmQ1MjdhYjc0NDBmMWNiYWQy
NzVlNjJiNjIxNmQyYzFlMmZhM2Y5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3Bw
CkBAIC0xODE5LDYgKzE4MTksODUgQEAgcHVibGljOgogfTsKICNlbmRpZgogCitjbGFzcyBBcHBs
eVByb3BlcnR5VGV4dEluZGVudCB7Citwcml2YXRlOgorICAgIHN0YXRpYyBMZW5ndGggY29tcHV0
ZUxlbmd0aChTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUpCisgICAgeworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzTGVu
Z3RoKCkpIHsKKyAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29t
cHV0ZUxlbmd0aDxMZW5ndGg+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXIt
PnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9v
bSgpKTsKKyAgICAgICAgICAgIGxlbmd0aC5zZXRRdWlyayhwcmltaXRpdmVWYWx1ZS0+aXNRdWly
a1ZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQorICAgICAgICAgICAgcmV0dXJu
IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CisgICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSkKKyAg
ICAgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRQZXJjZW50YWdlTGVuZ3Ro
KCk7CisKKyAgICAgICAgcmV0dXJuIExlbmd0aCgpOworICAgIH0KKworcHVibGljOgorICAgIHN0
YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIq
IHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRUZXh0SW5kZW50KHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRJbmRlbnQoKSk7
CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+
c2V0VGV4dEluZGVudExpbmUoc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVu
dExpbmUoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxW
YWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsK
KyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChSZW5kZXJTdHls
ZTo6aW5pdGlhbFRleHRJbmRlbnQoKSk7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6Omlu
aXRpYWxUZXh0SW5kZW50TGluZSgpKTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwg
Q1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3Qo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBMZW5ndGggdGV4dEluZGVudCA9IFJl
bmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCgpOworCisgICAgICAgIENTU1ZhbHVlTGlzdCog
dmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworCisgICAgICAg
IC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXQorICAgICAgICBpZiAodmFsdWVMaXN0LT5s
ZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbVdp
dGhvdXRCb3VuZHNDaGVjaygwKSk7CisgICAgICAgICAgICB0ZXh0SW5kZW50ID0gY29tcHV0ZUxl
bmd0aChzdHlsZVJlc29sdmVyLCBwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICBzdHlsZVJl
c29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHRleHRJbmRlbnQpOworI2lmIEVOQUJMRShD
U1MzX1RFWFQpCisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5k
ZW50TGluZShUZXh0SW5kZW50Rmlyc3RMaW5lKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICBBU1NFUlQodmFs
dWVMaXN0LT5sZW5ndGgoKSA9PSAyKTsKKyAgICAgICAgaWYgKHZhbHVlTGlzdC0+bGVuZ3RoKCkg
IT0gMikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBbIDxsZW5ndGg+IHwgPHBl
cmNlbnRhZ2U+IF0gfHwgLXdlYmtpdC1lYWNoLWxpbmUKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIGZpcnN0VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlz
dC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBzZWNvbmRWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0
LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDEpKTsKKworICAgICAgICBpZiAoZmlyc3RWYWx1ZS0+
aXNMZW5ndGgoKSB8fCBmaXJzdFZhbHVlLT5pc1BlcmNlbnRhZ2UoKSB8fCBmaXJzdFZhbHVlLT5p
c1ZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpKQorICAgICAgICAgICAgdGV4dEluZGVudCA9IGNv
bXB1dGVMZW5ndGgoc3R5bGVSZXNvbHZlciwgZmlyc3RWYWx1ZSk7CisgICAgICAgIGVsc2UgaWYg
KHNlY29uZFZhbHVlLT5pc0xlbmd0aCgpIHx8IHNlY29uZFZhbHVlLT5pc1BlcmNlbnRhZ2UoKSB8
fCBzZWNvbmRWYWx1ZS0+aXNWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGgoKSkKKyAgICAgICAgICAg
IHRleHRJbmRlbnQgPSBjb21wdXRlTGVuZ3RoKHN0eWxlUmVzb2x2ZXIsIHNlY29uZFZhbHVlKTsK
KworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHRleHRJbmRl
bnQpOworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShU
ZXh0SW5kZW50RWFjaExpbmUpOworI2VuZGlmCisgICAgfQorCisgICAgc3RhdGljIFByb3BlcnR5
SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQcm9wZXJ0eUhh
bmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZhcHBseVZhbHVl
KTsKKyAgICB9Cit9OworCiBjb25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRlcjo6c2hhcmVk
U3R5bGVCdWlsZGVyKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxlQnVpbGRlciwg
c3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKQEAgLTE5MzQsNyArMjAxMyw3IEBAIFN0eWxlQnVp
bGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlX
ZWJraXRUZXh0QWxpZ25MYXN0LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxpZ25MYXN0LCAm
UmVuZGVyU3R5bGU6OnRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6
c2V0VGV4dEFsaWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4
dEFsaWduTGFzdD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uLCBBcHBseVByb3BlcnR5VGV4dFVu
ZGVybGluZVBvc2l0aW9uOjpjcmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENTUzNfVEVYVAot
ICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJvcGVy
dHlMZW5ndGg8JlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnNldFRleHRJ
bmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQ+OjpjcmVhdGVIYW5kbGVyKCkp
OworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFwcGx5UHJv
cGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dE92ZXJm
bG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5
bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihD
U1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRSZW5kZXJpbmdN
b2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlwdGlv
bjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3JlYXRlSGFuZGxl
cigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0VHJhbnNmb3JtLCBB
cHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjp0ZXh0VHJh
bnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0VHJhbnNmb3JtLCBF
VGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dFRyYW5zZm9ybT46OmNyZWF0
ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAppbmRleCAxZTI0OWI3ZTQ5ODI5NWY0MzUwNjU1Y2YwZjg1ZjQ0Y2NjYjRlNWE5Li44
NTQyYjc3YTk4YjU3ZWY0YTk5MmJmZmZhOGUxMjEwMDYwNjQzMDM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQ4MSw2ICs0ODEsOSBA
QCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90
aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS5nZXQo
KSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgaWYgKHJhcmVJ
bmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5oaWdo
bGlnaHQKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQgIT0gb3RoZXIt
PnJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAg
ICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUgIT0gb3RoZXItPnJh
cmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgICAgIHx8
IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0gb3RoZXItPnJhcmVJbmhlcml0
ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRh
LT53b3JkQnJlYWsgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJlYWsKICAgICAg
ICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMTI5MmE0NjUyNDQzZmQxN2E3ZmQyYzIzODMxNWZjZjI2
OGFiNDhiYy4uODRiMjI3YjA5ZTYyYzRjMWQyNmI5NjU2MGM5NGNiNTFkN2IyMmQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTU2OCw2ICs1
NjgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIExlbmd0aCB0ZXh0SW5kZW50KCkgY29uc3Qg
eyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmluZGVudDsgfQorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVu
dExpbmUpOyB9CisjZW5kaWYKICAgICBFVGV4dEFsaWduIHRleHRBbGlnbigpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbik7
IH0KICAgICBFVGV4dFRyYW5zZm9ybSB0ZXh0VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RVRleHRUcmFuc2Zvcm0+KGluaGVyaXRlZF9mbGFncy5fdGV4dF90cmFuc2Zvcm0p
OyB9CiAgICAgRVRleHREZWNvcmF0aW9uIHRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHREZWNvcmF0aW9uPihpbmhlcml0ZWRfZmxhZ3MuX3Rl
eHRfZGVjb3JhdGlvbnMpOyB9CkBAIC0xMTMwLDYgKzExMzMsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRUZXh0SW5kZW50KExlbmd0
aCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0KKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudExpbmUg
dikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5lLCB2KTsgfQor
I2VuZGlmCiAgICAgdm9pZCBzZXRUZXh0QWxpZ24oRVRleHRBbGlnbiB2KSB7IGluaGVyaXRlZF9m
bGFncy5fdGV4dF9hbGlnbiA9IHY7IH0KICAgICB2b2lkIHNldFRleHRUcmFuc2Zvcm0oRVRleHRU
cmFuc2Zvcm0gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtID0gdjsgfQogICAg
IHZvaWQgYWRkVG9UZXh0RGVjb3JhdGlvbnNJbkVmZmVjdChFVGV4dERlY29yYXRpb24gdikgeyBp
bmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMgfD0gdjsgfQpAQCAtMTYwNCw2ICsxNjEw
LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbE1hcmdpbigpIHsgcmV0dXJu
IExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxQYWRkaW5nKCkgeyBy
ZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRleHRJbmRl
bnQoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAg
ICBzdGF0aWMgVGV4dEluZGVudExpbmUgaW5pdGlhbFRleHRJbmRlbnRMaW5lKCkgeyByZXR1cm4g
VGV4dEluZGVudEZpcnN0TGluZTsgfQorI2VuZGlmCiAgICAgc3RhdGljIEVWZXJ0aWNhbEFsaWdu
IGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAgICBzdGF0aWMg
c2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMgc2hvcnQgaW5p
dGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGUzZGI0MzE2MDhjNGZj
OGJlY2RjY2I1YzQ4ZmM5M2I0NDlhNGZmMDcuLmVhZjc1MTE5N2E2YjE1M2U0Y2VlZmVmMzhlZDQ2
ZGJlMmRkYWJhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01MDgsNiArNTA4LDEwIEBAIGVudW0gRHJhZ2dh
YmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdnYWJsZVJlZ2lvbkRyYWcs
IERyYWdnYWJsZVJlCiAvLyBSZWFzb25hYmxlIG1heGltdW0gdG8gcHJldmVudCBpbnNhbmUgZm9u
dCBzaXplcyBmcm9tIGNhdXNpbmcgY3Jhc2hlcyBvbiBzb21lIHBsYXRmb3JtcyAoc3VjaCBhcyBX
aW5kb3dzKS4KIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhpbXVtQWxsb3dlZEZvbnRTaXplID0gMTAw
MDAwMC4wZjsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitlbnVtIFRleHRJbmRlbnRMaW5lIHsg
VGV4dEluZGVudEZpcnN0TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25zdGFudHNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCmluZGV4IDMyM2JiOWQ3ZDI3NGIyZjYwYjVlYTgzOTc5MmJjNGU4YWY1
Y2U4NDQuLjgzMTA4NDQxMjNiZTQyY2JlOTRhNmFjNDEzZDAwN2U3ZDE2NjFhZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKFRleHRFbXBoYXNp
c01hcmtOb25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRp
b25PdmVyKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9uVmVydGljYWxS
aWdodCkKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCisjZW5kaWYKICAgICAsIG1fbGluZUJv
eENvbnRhaW4oUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lQm94Q29udGFpbigpKQogI2lmIEVOQUJM
RShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24oUmVuZGVy
U3R5bGU6OmluaXRpYWxJbWFnZU9yaWVudGF0aW9uKCkpCkBAIC0xNTcsNiArMTYwLDkgQEAgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRleHRFbXBoYXNp
c01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNpc1Bvc2l0aW9u
KQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikKKyNpZiBFTkFC
TEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShvLm1fdGV4dEluZGVudExpbmUp
CisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oby5tX2xpbmVCb3hDb250YWluKQogI2lm
IEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRpb24o
by5tX2ltYWdlT3JpZW50YXRpb24pCkBAIC0yNTEsNiArMjU3LDkgQEAgYm9vbCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8p
IGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1waGFzaXNNYXJr
CiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9zaXRp
b24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmllbnRhdGlvbgor
I2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICYmIG1fdGV4dEluZGVudExpbmUgPT0gby5t
X3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgJiYgbV9saW5lQm94Q29udGFpbiA9PSBv
Lm1fbGluZUJveENvbnRhaW4KICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBo
ZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
CmluZGV4IDUxNDk1ZmU3ZmZlZjNkODdiOWY2NTZlMDZiMTMyNzVkZmViMzU0MTYuLjI1NjZkZTk4
MTQwYTYyYTY4MGVjZDhlOWI5MGQ4YzM2MWRiYWRjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTAw
LDYgKzEwMCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1waGFzaXNNYXJrIDogMzsg
Ly8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc1Bvc2l0aW9uIDog
MTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBtX3RleHRPcmllbnRhdGlv
biA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgdW5z
aWduZWQgbV90ZXh0SW5kZW50TGluZSA6IDE7IC8vIFRleHRJbmRlbnRFYWNoTGluZQorI2VuZGlm
CiAgICAgdW5zaWduZWQgbV9saW5lQm94Q29udGFpbjogNzsgLy8gTGluZUJveENvbnRhaW4KICAg
ICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDgyMzRiZTAxMWRhNGM2MmNhOTFlYmU2NGZlMGEzYjRlMTU1ODA1YzIu
LmIwMTlhN2Q3ODc3YWIwMDc2MjIxMWNiNzE5MzFkYzVjMjZhZWQxOTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAxMy0wMy0xMyAgSmFlaHVuIExpbSAgPGxqYWVodW4ubGltQHNhbXN1bmcuY29t
PgorCisgICAgICAgIFtjc3MzLXRleHRdIFBhcnNpbmcgLXdlYmtpdC1lYWNoLWxpbmUgdmFsdWUg
Zm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKworICAgICAgICAiZWFjaC1saW5lIiBpcyBh
ZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rldi53My5vcmcv
Y3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanM6
IEFkZGVkLgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAob3duVmFsdWVU
ZXN0KToKKyAgICAgICAgKGluaGVyaXRhbmNlVGVzdCk6CisgICAgICAgICogZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21w
dXRlZFN0eWxlLXRleHQtaW5kZW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RFbGVtZW50U3R5
bGUpOgorICAgICAgICAodGVzdENvbXB1dGVkU3R5bGUpOgorICAgICAgICAodmFsdWVTZXR0aW5n
VGVzdCk6CisgICAgICAgIChpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVj
dGVkLnR4dDogQ1NTMyB0ZXh0LWluZGVudCBpcyBjaGFuZ2VkIENTU1ByaW1pdGl2ZVZhbHVlIHRv
IENTU1ZhbHVlTGlzdC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNpdGlv
bi10ZXN0LWhlbHBlcnMuanM6IEdldCB0ZXh0LWluZGVudCB2YWx1ZSBmcm9tIENTU1ZhbHVlTGlz
dC4KKyAgICAgICAgKGV4cGVjdGVkKToKKwogMjAxMy0wMy0xMyAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhIHRlc3QgY2FzZSBmb3IgZmxleGJveCB3aXRo
IG5lZ2F0aXZlIG92ZXJmbG93IGhhdmluZyBhbiBvdXQgb2YgZmxvdyBmbGV4IGl0ZW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZTZjYTg0M2QxMTI0ZTA4YWZkZTY4MWY2MmRhMWMzZGExYjQyOGI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEwIEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGV4dC1pbmRlbnQgcGFyc2VzIHByb3Bl
cmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBUZXh0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZToKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitWYWx1ZSAnMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4
dEluZGVudCBpcyAnMTBlbScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcxMGVtJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4
JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzEwMHB4JworCitWYWx1ZSAnMjBleCc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMjBl
eCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4
JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4JworUEFTUyBjb21wdXRl
ZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4JworCitWYWx1
ZSAnNTAlJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICc1MCUnCitQQVNTIGUuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnNTAlJworUEFTUyBjb21wdXRlZFN0
eWxlLnRleHRJbmRlbnQgaXMgJzUwJScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICc1MCUnCisKK1ZhbHVlICcxMGVtIC13ZWJraXQtZWFjaC1s
aW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcxMGVtIC13ZWJraXQtZWFjaC1saW5l
JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwZW0g
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMTAw
cHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICct
d2Via2l0LWVhY2gtbGluZSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcxMGVt
IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUu
dGV4dEluZGVudCBpcyAnMTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTAwcHggLXdlYmtpdC1lYWNo
LWxpbmUnCisKK1ZhbHVlICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50
ZXh0SW5kZW50IGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBlLnN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQ
QVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUn
CitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICctd2Via2l0LWVhY2gtbGluZSAyMGV4
JzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJwor
UEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwZXggLXdl
YmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMjAwcHgg
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICczMCUg
LXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAtd2Vi
a2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dElu
ZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKKwor
VmFsdWUgJy13ZWJraXQtZWFjaC1saW5lIDMwJSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBp
cyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFj
aC1saW5lJworCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICcxMG0nOgorUEFTUyBlLnN0eWxlLnRl
eHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4Jwor
UEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBw
eCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwbSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNT
IGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50
IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnLXdlYmtpdC1lYWNoLWxpbmUg
MTBtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxl
LnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICcxMGVtIDEw
ZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUu
dGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQt
ZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRl
ZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICcx
MGVtIC13ZWJraXQtZWFjaC1saW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
JzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcw
cHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRl
ZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxp
ZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5lIDEwZW0gLXdlYmtpdC1lYWNoLWxpbmUn
OgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4
dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3Rl
eHQtaW5kZW50JykgaXMgJzBweCcKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZDRlMDk0ZDA0ZWEz
NzA1NWE4ZTIxZWI0YWZlMzQyNGJjMTM5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjEgQEAKK1RoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUgdmFsdWUgb2YgdGV4dC1pbmRlbnQgaXMg
cHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcxMHB4JzoKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzEwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBw
eCAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2Vz
dG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IC13ZWJraXQtZWFj
aC1saW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUg
b2YgYW5jZXN0b3IgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnLCB3aGlsZSBjaGlsZCBpcyAn
MTBweCc6CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0
eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSBpcyAnMTBweCcKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LWluaGVyaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJp
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQxYjk2NDcxMDc4ZDI3ZTE2MmQ4MzBhMzkwYmViYTM2NThj
OWI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LWluaGVyaXRlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iYW5jZXN0b3IiPjxk
aXYgaWQ9ImNoaWxkIj48L2Rpdj48L2Rpdj4KKyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcyI+PC9zY3JpcHQ+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtaW5kZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM0MjgwYTIwZTE4MGMyNmY3MDI2ZTVjMjc5MTVhZDZkMGU3YjE0YzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCIgc3R5bGU9ImZvbnQ6IDEwcHggQWhlbTsiPjwv
ZGl2PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1p
bmRlbnQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVk
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVy
aXRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMzM3Y2Y5NWU0NzRmNTA5ZTYyZDBhMjZiNTU1ZDA3OTdmZWNk
MTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxl
LXRleHQtaW5kZW50LWluaGVyaXRlZC5qcwpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiB0ZXN0
Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBjX3ZhbHVlKQoreworICAgIHNob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSIsICAiJyIgKyBhX3ZhbHVlICsgIiciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1
dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykiLCAgIiciICsg
Y192YWx1ZSArICInIik7CisgICAgZGVidWcoJycpOworfQorCitmdW5jdGlvbiBvd25WYWx1ZVRl
c3QoYV92YWx1ZSwgY192YWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgb2YgYW5jZXN0b3IgaXMg
JyIgKyBhX3ZhbHVlICsgIicsIHdoaWxlIGNoaWxkIGlzICciICsgY192YWx1ZSArICInOiIpOwor
ICAgIGFuY2VzdG9yLnN0eWxlLnRleHRJbmRlbnQgPSBhX3ZhbHVlOworICAgIGNoaWxkLnN0eWxl
LnRleHRJbmRlbnQgPSBjX3ZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUsIGNf
dmFsdWUpOworfQorCitmdW5jdGlvbiBpbmhlcml0YW5jZVRlc3QoYV92YWx1ZSkKK3sKKyAgICBk
ZWJ1ZygiVmFsdWUgb2YgYW5jZXN0b3IgaXMgJyIgKyBhX3ZhbHVlICsgIic6Iik7CisgICAgYW5j
ZXN0b3Iuc3R5bGUudGV4dEluZGVudCA9IGFfdmFsdWU7CisgICAgdGVzdENvbXB1dGVkU3R5bGUo
YV92YWx1ZSwgYV92YWx1ZSk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNoZWNrIHRo
YXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50IGlzIHByb3Blcmx5IGluaGVyaXRlZCB0byB0aGUg
Y2hpbGQuIik7CisKK2FuY2VzdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FuY2VzdG9y
Jyk7CitjaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGlsZCcpOworCitpbmhlcml0
YW5jZVRlc3QoIjEwcHgiKTsKK2luaGVyaXRhbmNlVGVzdCgiMTBweCAtd2Via2l0LWVhY2gtbGlu
ZSIpOworCitvd25WYWx1ZVRlc3QoIjEwcHggLXdlYmtpdC1lYWNoLWxpbmUiLCAiMTBweCIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNiNDMxOTU3ZGZmYWY2YmQ5ZGI3MzlhZTA1MzVkNzQ1Y2ExZDNjNDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuanMKQEAgLTAsMCArMSw1OSBAQAorZnVuY3Rpb24gdGVzdEVsZW1lbnRTdHlsZShwcm9wZXJ0
eUpTLCBwcm9wZXJ0eUNTUywgdmFsdWUpCit7CisgICAgc2hvdWxkQmUoImUuc3R5bGUuIiArIHBy
b3BlcnR5SlMsICInIiArIHZhbHVlICsgIiciKTsKKyAgICBzaG91bGRCZSgiZS5zdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCciICsgcHJvcGVydHlDU1MgKyAiJykiLCAiJyIgKyB2YWx1ZSArICInIik7
Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5Q1NT
LCB2YWx1ZSkKK3sKKyAgICBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZSwgbnVsbCk7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuIiArIHByb3BlcnR5SlMsICIn
IiArIHZhbHVlICsgIiciKTsKKyAgICBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCciICsgcHJvcGVydHlDU1MgKyAiJykiLCAiJyIgKyB2YWx1ZSArICInIik7Cit9CisK
K2Z1bmN0aW9uIHZhbHVlU2V0dGluZ1Rlc3QodmFsdWUsIGV4cGVjdGVkVmFsdWUsIGNvbXB1dGVk
VmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVlICciICsgdmFsdWUgKyAiJzoiKTsKKyAgICBlLnN0
eWxlLnRleHRJbmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0eWxlKCJ0ZXh0SW5kZW50
IiwgInRleHQtaW5kZW50IiwgZXhwZWN0ZWRWYWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5bGUo
InRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBjb21wdXRlZFZhbHVlKTsKKyAgICBkZWJ1Zygn
Jyk7Cit9CisKK2Z1bmN0aW9uIGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBkZWZhdWx0
VmFsdWUpCit7CisgICAgZGVidWcoIkludmFsaWQgdmFsdWUgdGVzdCAtICciICsgdmFsdWUgKyAi
JzoiKTsKKyAgICBlLnN0eWxlLnRleHRJbmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0
eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICB0ZXN0
Q29tcHV0ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7
CisgICAgZGVidWcoJycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0
IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4
dC4iKTsKKworZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK2RlYnVnKCJU
ZXN0IHRoZSBpbml0aWFsIHZhbHVlOiIpOwordGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQi
LCAidGV4dC1pbmRlbnQiLCAnMHB4Jyk7CitkZWJ1ZygnJyk7CisKK3ZhbHVlU2V0dGluZ1Rlc3Qo
JzEwZW0nLCAnMTBlbScsICcxMDBweCcpOwordmFsdWVTZXR0aW5nVGVzdCgnMjBleCcsICcyMGV4
JywnMjAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzUwJScsICc1MCUnLCc1MCUnKTsKK3ZhbHVl
U2V0dGluZ1Rlc3QoJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCAnMTBlbSAtd2Via2l0LWVhY2gt
bGluZScsICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdl
YmtpdC1lYWNoLWxpbmUgMTBlbScsICcxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgJzEwMHB4IC13
ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCcyMGV4IC13ZWJraXQtZWFjaC1s
aW5lJywgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUn
KTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnLCAnMjBleCAtd2Vi
a2l0LWVhY2gtbGluZScsICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5n
VGVzdCgnMzAlIC13ZWJraXQtZWFjaC1saW5lJywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScsICcz
MCUgLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1s
aW5lIDMwJScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnLCAnMzAlIC13ZWJraXQtZWFjaC1saW5l
Jyk7CitkZWJ1ZygnJyk7CisKK2RlZmF1bHRWYWx1ZSA9ICcwcHgnCitlLnN0eWxlLnRleHRJbmRl
bnQgPSBkZWZhdWx0VmFsdWU7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBtJywgZGVmYXVs
dFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMG0gLXdlYmtpdC1lYWNoLWxpbmUn
LCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1s
aW5lIDEwbScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAx
MGVtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVh
Y2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAt
d2Via2l0LWVhY2gtbGluZSAxMGVtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRp
bmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVs
dFZhbHVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDU2ZTJjZWM2MGY5ODVhMjA4Y2NhMGY5MjAxOWM0MWUwNzlhMmQ4YjUuLmU3MDNh
OGFhZmRmM2Y4OGRiYjFiYmE2NzgyM2Y0ODIwM2FhZmRkZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMxLDYgKzIzMSw3IEBAIHdl
YmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQg
c3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Vi
a2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJr
aXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtp
dC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIENocm9t
aXVtIGRvZXMgbm90IHN1cHBvcnQgc21hcnQgcGFzdGluZyBpbiB0ZXh0IGNvbnRyb2xzIHlldC4K
IHdlYmtpdC5vcmcvYi82MDgzMCBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4tdGV4
dC1jb250cm9sLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNDE2ZmJkNmFlNmY3MWZhZWVmZTVlOTU1YjJhOWQ0YWRiNjFiNjk3Yy4uNTNiZmI3YTYz
NjdiZjgxNjc2ZjQ0MmU1MTY0YWJlY2Q5ZmJkYWY1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNDQsNiArMTE0NCw3IEBAIHdlYmtpdC5vcmcvYi84
OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBu
b3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4
NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYx
NzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkw
MjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIE91ciBzbG93IHRlc3RzLCBp
biBhbHBoYWJldGljYWwgb3JkZXIuCiB3ZWJraXQub3JnL2IvNTc2NzIgaHR0cC90ZXN0cy9sb2Nh
bC9maWxlYXBpL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODFk
OTI0NzM2OWViMGIzZTlhYjAyZjBmYzdjNzZhMzMyNmQ2ODc1YS4uYjUwNzJkZmQwNGU3YjY1MTk3
ZmU1NTRlYmFlMTM2ZDkzYTQ0MDhiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY5OSw2ICs2OTksNyBAQCB3ZWJraXQub3JnL2IvODkwNTIg
ZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHll
dCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVy
IGJ1ZyA4NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC1tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZDFlMDk3NzhhZTA5Nzg2NDc1NTJmM2FiZDdj
Y2FkM2JhNTBiZWIyLi5iNDdjNTcwN2FkNzY4MzcyYmMwY2Q2ZTUwMjhkOGE3OWRjMjZkNTkwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTc5
Niw2ICs1Nzk2LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0
aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxF
X0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
YWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50CiAKICMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBidWcgODY0NDEKICMgZmFpbGluZyBu
ZXcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVm
OGNmYjAyM2JkZmViM2QwYjc5ZjQ2MTY0YTFmYTBjYTdmNzU4MTYuLjIzZWFjYzYyMDEyMzJjZDAx
YmNlNzZiNzhhMzE4YTM1MmYxNjM3YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzQ2LDYgKzM0Niw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nz
cy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJs
ZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudAogCiAjIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBzdXBw
b3J0IGZvciBJbnNwZWN0b3JDbGllbnQ6Om92ZXJyaWRlRGV2aWNlTWV0cmljcygpIGluIHBsYXRm
b3JtcyBvdGhlciB0aGFuIENocm9taXVtCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04Mjg4NgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAxNzE1MjM1MTE5N2FkZmQzODkzY2VmZTI2ZGM1ZmY5MGY1MjQxMTU2Li4yNmFlMTg5
M2Q3NjBlY2ZhOWM5ZWM0ODljNDkwNjNjODQzYjg1N2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ4Nyw2ICsyNDg3LDggQEAgZmFzdC94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC5odG1sCiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1h
bGlnbi1sYXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tbGluZS5odG1sCitm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQu
aHRtbAogCiAjIEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBkaXNhYmxlZCBvbiBX
aW5kb3dzCiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAyZjViZDhlODUzNmMyNmE2OTc1Mjk4MWNiMmE1YWYxNzIzODUyMjQ5Li44MTZlYjQ1OGIx
OTMzYzNlM2Y0ZDYzNDE5ODdkNzhlNjBkMzg1OGY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5NzUsNiArMjk3NSw4IEBAIHdlYmtp
dC5vcmcvYi8zOTcyNSBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWF1dG9zY3JvbGwuaHRtbCBb
IFNraXAgXQogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QvZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxpZ24tbGFzdC1pbmhlcml0ZWQuaHRtbAogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21w
dXRlZFN0eWxlLXRleHQtYWxpZ24tbGFzdC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
ZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0
aW9uLWxpbmUuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKK2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtaW5kZW50Lmh0bWwKIAogIyBTcGVsbGNoZWNrZXIgYmVoYXZpb3IgdGVzdHMuCiB3
ZWJraXQub3JnL2IvMTA4MzcwIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNr
ZWQtd29yZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2dl
dENvbXB1dGVkU3R5bGUtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9n
ZXRDb21wdXRlZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCBkMzFkMzBlZTk2YTU0Nzli
NjczZTJmN2IyNDRjMDRlODE5M2MzY2IzLi43ODAxNDEwZWE4NmEyODNiZDU2NDg0ZjM5Nzc5OGQy
MDJhM2E0ZWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5
bGUtYmFzaWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0
ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTE2OSw3ICsxNjksNyBAQCByZWN0OiBzdHls
ZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtYWxpZ24pIDogW29iamVjdCBDU1NQcmltaXRpdmVW
YWx1ZV0KIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1kZWNvcmF0aW9uKSA6IG5v
bmUKIHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1kZWNvcmF0aW9uKSA6IFtv
YmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiByZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRl
eHQtaW5kZW50KSA6IDBweAotcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LWlu
ZGVudCkgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQorcmVjdDogc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZSh0ZXh0LWluZGVudCkgOiBbb2JqZWN0IENTU1ZhbHVlTGlzdF0KIHJlY3Q6IHN0
eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1yZW5kZXJpbmcpIDogYXV0bwogcmVjdDogc3R5bGUu
Z2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LXJlbmRlcmluZykgOiBbb2JqZWN0IENTU1ByaW1pdGl2
ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LXNoYWRvdykgOiBub25l
CkBAIC02NjUsNyArNjY1LDcgQEAgZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LWFs
aWduKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKHRleHQtZGVjb3JhdGlvbikgOiBub25lCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHRleHQtZGVjb3JhdGlvbikgOiBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSh0ZXh0LWluZGVudCkgOiAwcHgKLWc6IHN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUodGV4dC1pbmRlbnQpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK2c6IHN0
eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1pbmRlbnQpIDogW29iamVjdCBDU1NWYWx1ZUxp
c3RdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtcmVuZGVyaW5nKSA6IGF1dG8KIGc6
IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1yZW5kZXJpbmcpIDogW29iamVjdCBDU1NQ
cmltaXRpdmVWYWx1ZV0KIGc6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1zaGFkb3cpIDog
bm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5z
aXRpb24tdGVzdC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2Vz
L3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCmluZGV4IDc5MzQ2MGU1ODk0NTYwZTU1MDkwZjQz
ODJjYjMzNWMzMWZmNmYzMGMuLjk3NTY4ZDMwY2VjYzExNDhhMGYzZTAwN2ZiZjlkNzE3NzU2ZGQy
OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0
aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXNvdXJj
ZXMvdHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMuanMKQEAgLTExOSw2ICsxMTksOSBAQCBmdW5jdGlv
biBjaGVja0V4cGVjdGVkVmFsdWUoZXhwZWN0ZWQsIGluZGV4KQogICAgIH0gZWxzZSBpZiAocHJv
cGVydHkgPT0gImxpbmVIZWlnaHQiKSB7CiAgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBwYXJzZUlu
dCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SWQpKS5saW5lSGVpZ2h0KTsKICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRW
YWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKKyAgICB9IGVsc2UgaWYgKHByb3BlcnR5
ID09ICJ0ZXh0LWluZGVudCIpIHsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZSA9IHBhcnNlRmxvYXQo
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KSkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgndGV4dC1pbmRlbnQnKS5pdGVtKDApLmNzc1RleHQpOwor
ICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVl
LCB0b2xlcmFuY2UpOwogICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT0gImJhY2tncm91bmQtaW1h
Z2UiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAiYm9yZGVyLWltYWdlLXNvdXJjZSIK
ICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJib3JkZXItaW1hZ2UiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193071</attachid>
            <date>2013-03-13 23:21:50 -0700</date>
            <delta_ts>2013-03-19 01:28:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130314151744.patch</filename>
            <type>text/plain</type>
            <size>42226</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVjMGI4MjAzZDQyYWFi
Y2M1NDJmM2M1N2FmYjI2N2Y3NmM1ZTYxOS4uYTY0Y2FjNGE1ODQ3NTE3ZGY0MzQ5YzRiNzljMGI1
Y2IwN2Q2YTY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAzLTEzICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKyAgICAgICAg
ICAgICAgCisgICAgICAgIEl0J3MgcHJlZml4ZWQgd2l0aCAnLXdlYmtpdC0nIGFuZCBndWFyZGVk
IGJ5IENTUzNfVEVYVCBmbGFnLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRt
bAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NT
VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVGV4dEluZGVu
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAg
ICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRl
ci5jcHA6CisgICAgICAgIChBcHBseVByb3BlcnR5VGV4dEluZGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y29tcHV0ZUxlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbmhlcml0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5pdGlhbFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVy
OjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSk6CisKIDIwMTMtMDMtMTMgIEJydW5vIGRlIE9saXZlaXJhIEFiaW5hZGVyICA8YnJ1bm8uYWJp
bmFkZXJAYmFzeXNrb20uY29tPgogCiAgICAgICAgIFtjc3MzLXRleHRdIEFkZCBzdXBwb3J0IGZv
ciB0ZXh0LWRlY29yYXRpb24tY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggODgxMzVkMTc1MjZiMTM1ZDIyMGNiZjE5
OTZmNjZkZTg4YzEwZGZmNC4uNTAwZGQwNDUyMjFjOTA1N2E5NDgyNDg0YmNjNWYwODg4MmU1MmFk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTIxOTAsOCArMjE5MCwxNSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAog
ICAgICAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6Ci0gICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dElu
ZGVudCgpLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50
OiB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHpvb21B
ZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUuZ2V0
KCkpKTsKKyNpZiBFTkFCTEUoQ1NTM19URVhUKSAgICAgICAgICAgIAorICAgICAgICAgICAgaWYg
KHN0eWxlLT50ZXh0SW5kZW50TGluZSgpID09IFRleHRJbmRlbnRFYWNoTGluZSkKKyAgICAgICAg
ICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlV2Via2l0RWFjaExpbmUpKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIGxp
c3QucmVsZWFzZSgpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0U2hh
ZG93OgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yU2hhZG93KHN0eWxlLT50ZXh0U2hhZG93
KCksIHByb3BlcnR5SUQsIHN0eWxlLmdldCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRl
eHRSZW5kZXJpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDIxNTc2ZjI4YTA5Mjk0
N2U4MmViZDgxZWExYTQzODFkZDhiZjhiYWYuLmJlMjY1MmJkYjI2ODM5ZmIwY2M5ZTUyODdlNmE0
OGQxYjkxNjI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01OTQsNyArNTk0LDYg
QEAgc3RhdGljIGlubGluZSBib29sIGlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRChDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5SWQsIGJvb2wmIGFjY2UKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luUmln
aHQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblRvcDoKICAgICBjYXNlIENTU1Byb3BlcnR5
UmlnaHQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRvcDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQWZ0ZXI6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkJlZm9yZToKQEAgLTIxODUsOCArMjE4NCw4IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9y
dGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGTGVu
Z3RoKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDog
ICAgICAgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gfCBpbmhlcml0Ci0gICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gKCFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5ndGggfCBGUGVyY2Vu
dCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OgorICAgICAgICBwYXJzZWRWYWx1
ZSA9IHBhcnNlVGV4dEluZGVudCgpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJv
cGVydHlQYWRkaW5nVG9wOiAgICAgICAgICAvLy8vIDxwYWRkaW5nLXdpZHRoPiB8IGluaGVyaXQK
QEAgLTkyNDAsNiArOTIzOSw0NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNT
dHlsZShib29sIGltcG9ydGFudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1Bhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VUZXh0SW5kZW50KCkKK3sKKyAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwor
CisgICAgLy8gPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4KKyAgICBpZiAobV92YWx1ZUxpc3QtPnNp
emUoKSA9PSAxKSB7CisgICAgICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0
LT5jdXJyZW50KCk7CisgICAgICAgIGlmICghdmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwg
Rkxlbmd0aCB8IEZQZXJjZW50KSkgeworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVBy
aW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSkpOworICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAg
IH0KKworI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgLy8gWyA8bGVuZ3RoPiB8IDxwZXJjZW50
YWdlPiBdICYmIC13ZWJraXQtZWFjaC1saW5lIHwgaW5oZXJpdAorICAgIGlmIChtX3ZhbHVlTGlz
dC0+c2l6ZSgpICE9IDIpCisgICAgICAgIHJldHVybiAwOworCisgICAgQ1NTUGFyc2VyVmFsdWUq
IGZpcnN0VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIENTU1BhcnNlclZhbHVl
KiBzZWNvbmRWYWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlID0gMDsKKworICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAtd2Via2l0
LWVhY2gtbGluZQorICAgIGlmICh2YWxpZFVuaXQoZmlyc3RWYWx1ZSwgRkxlbmd0aCB8IEZQZXJj
ZW50KSAmJiBzZWNvbmRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkKKyAgICAg
ICAgdmFsdWUgPSBmaXJzdFZhbHVlOworICAgIC8vIC13ZWJraXQtZWFjaC1saW5lIFsgPGxlbmd0
aD4gfCA8cGVyY2VudGFnZT4gXQorICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPmlkID09IENTU1Zh
bHVlV2Via2l0RWFjaExpbmUgJiYgdmFsaWRVbml0KHNlY29uZFZhbHVlLCBGTGVuZ3RoIHwgRlBl
cmNlbnQpKQorICAgICAgICB2YWx1ZSA9IHNlY29uZFZhbHVlOworCisgICAgaWYgKHZhbHVlKSB7
CisgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUp
KTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0
KCk7CisgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICB9CisjZW5kaWYKKworICAg
IHJldHVybiAwOworfQorCiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihib29s
IGltcG9ydGFudCkKIHsKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExpbmVC
b3hDb250YWluTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwMTk3M2JlNjJmNGQxMGYw
YWFiOTc0YmFmYTRiN2VmZDVjMDRhZTE1Li40YTA3YTgzNmVhNmU1NDg2Y2U3OTkyMTU3YjA2NTcw
MzhkNGYxMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjgsNiArMjY4LDggQEAgcHVi
bGljOgogICAgIGJvb2wgcGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRhbnQp
OwogI2VuZGlmIC8vIENTUzNfVEVYVAogCisgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VU
ZXh0SW5kZW50KCk7CisgICAgCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1w
b3J0YW50KTsKICAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqLCBDYWxj
dWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCmluZGV4IGYxZTZiNDczNTMwYTZjZmJlOGYzZjM0ZDQyZGQ5ODZlNTE0ZjRiM2Eu
LmRlODkzMGY1YTkyZGMxM2RmYzk5NDE1NTI3ZTMzMjI0NmJhNWM0Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMDA5LDMgKzEwMDksOSBAQCBzbmFwCiBkcmFn
CiBuby1kcmFnCiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkgJiYgRU5B
QkxFX0NTUzNfVEVYVAorLy8gdGV4dC1pbmRlbnQKKy13ZWJraXQtZWFjaC1saW5lCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA3NWI2Y2EwM2VlZmNlNjYzZmVk
MjhhOTAxNWIyMjllNDNjOTI0MmZlLi5kZWE0NWIxYzE5MWIxNzhhNWNmMWU2ZjhhYjE2NDY5Mjk0
ZjI1ZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTgxOSw2ICsxODE5
LDg1IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorY2xhc3MgQXBwbHlQcm9wZXJ0eVRleHRJbmRl
bnQgeworcHJpdmF0ZToKKyAgICBzdGF0aWMgTGVuZ3RoIGNvbXB1dGVMZW5ndGgoU3R5bGVSZXNv
bHZlciogc3R5bGVSZXNvbHZlciwgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0xlbmd0aCgpKSB7CisgICAgICAg
ICAgICBMZW5ndGggbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVuZ3Ro
PihzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxl
KCksIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgICAg
ICBsZW5ndGguc2V0UXVpcmsocHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW1pdGl2ZVZh
bHVlLT5pc1BlcmNlbnRhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBMZW5ndGgocHJpbWl0aXZl
VmFsdWUtPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOworICAgICAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkpCisgICAgICAgICAgICByZXR1cm4g
cHJpbWl0aXZlVmFsdWUtPnZpZXdwb3J0UGVyY2VudGFnZUxlbmd0aCgpOworCisgICAgICAgIHJl
dHVybiBMZW5ndGgoKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhcHBseUlu
aGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQor
ICAgIHsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChzdHls
ZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0SW5kZW50KCkpOworI2lmIEVOQUJMRShDU1Mz
X1RFWFQpCisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5l
KHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRJbmRlbnRMaW5lKCkpOworI2VuZGlm
CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJ
RCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikKKyAgICB7CisgICAgICAgIHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnQoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5k
ZW50KCkpOworI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudExp
bmUoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1By
b3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkK
KyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgTGVuZ3RoIHRleHRJbmRlbnQgPSBSZW5kZXJTdHlsZTo6aW5pdGlh
bFRleHRJbmRlbnQoKTsKKworICAgICAgICBDU1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRp
Y19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKworICAgICAgICAvLyBbIDxsZW5ndGg+IHwg
PHBlcmNlbnRhZ2U+IF0KKyAgICAgICAgaWYgKHZhbHVlTGlzdC0+bGVuZ3RoKCkgPT0gMSkgewor
ICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2so
MCkpOworICAgICAgICAgICAgdGV4dEluZGVudCA9IGNvbXB1dGVMZW5ndGgoc3R5bGVSZXNvbHZl
ciwgcHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+
c2V0VGV4dEluZGVudCh0ZXh0SW5kZW50KTsKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAg
ICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVu
dEZpcnN0TGluZSk7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisj
aWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgQVNTRVJUKHZhbHVlTGlzdC0+bGVuZ3RoKCkg
PT0gMik7CisgICAgICAgIGlmICh2YWx1ZUxpc3QtPmxlbmd0aCgpICE9IDIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgLy8gWyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiBdIHx8IC13
ZWJraXQtZWFjaC1saW5lCisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBmaXJzdFZhbHVlID0g
c3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91
bmRzQ2hlY2soMCkpOworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogc2Vjb25kVmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3Vu
ZHNDaGVjaygxKSk7CisKKyAgICAgICAgaWYgKGZpcnN0VmFsdWUtPmlzTGVuZ3RoKCkgfHwgZmly
c3RWYWx1ZS0+aXNQZXJjZW50YWdlKCkgfHwgZmlyc3RWYWx1ZS0+aXNWaWV3cG9ydFBlcmNlbnRh
Z2VMZW5ndGgoKSkKKyAgICAgICAgICAgIHRleHRJbmRlbnQgPSBjb21wdXRlTGVuZ3RoKHN0eWxl
UmVzb2x2ZXIsIGZpcnN0VmFsdWUpOworICAgICAgICBlbHNlIGlmIChzZWNvbmRWYWx1ZS0+aXNM
ZW5ndGgoKSB8fCBzZWNvbmRWYWx1ZS0+aXNQZXJjZW50YWdlKCkgfHwgc2Vjb25kVmFsdWUtPmlz
Vmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoKCkpCisgICAgICAgICAgICB0ZXh0SW5kZW50ID0gY29t
cHV0ZUxlbmd0aChzdHlsZVJlc29sdmVyLCBzZWNvbmRWYWx1ZSk7CisKKyAgICAgICAgc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudCh0ZXh0SW5kZW50KTsKKyAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudEVhY2hMaW5l
KTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFu
ZGxlcigpCisgICAgeworICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKCZhcHBseUluaGVy
aXRWYWx1ZSwgJmFwcGx5SW5pdGlhbFZhbHVlLCAmYXBwbHlWYWx1ZSk7CisgICAgfQorfTsKKwog
Y29uc3QgU3R5bGVCdWlsZGVyJiBTdHlsZUJ1aWxkZXI6OnNoYXJlZFN0eWxlQnVpbGRlcigpCiB7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHlsZUJ1aWxkZXIsIHN0eWxlQnVpbGRlckluc3Rh
bmNlLCAoKSk7CkBAIC0xOTM1LDcgKzIwMTQsNyBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dEFsaWduTGFz
dCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8VGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjp0ZXh0
QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAmUmVuZGVyU3R5bGU6OnNldFRleHRBbGlnbkxhc3Qs
IFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRBbGlnbkxhc3Q+OjpjcmVh
dGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRl
eHRVbmRlcmxpbmVQb3NpdGlvbiwgQXBwbHlQcm9wZXJ0eVRleHRVbmRlcmxpbmVQb3NpdGlvbjo6
Y3JlYXRlSGFuZGxlcigpKTsKICNlbmRpZiAvLyBDU1MzX1RFWFQKLSAgICBzZXRQcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJT
dHlsZTo6dGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0SW5kZW50LCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxUZXh0SW5kZW50Pjo6Y3JlYXRlSGFuZGxlcigpKTsKKyAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0SW5kZW50LCBBcHBseVByb3BlcnR5VGV4dEluZGVudDo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0
T3ZlcmZsb3csIEFwcGx5UHJvcGVydHlEZWZhdWx0PFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxl
Ojp0ZXh0T3ZlcmZsb3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjpzZXRUZXh0T3ZlcmZs
b3csIFRleHRPdmVyZmxvdywgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dE92ZXJmbG93Pjo6Y3Jl
YXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0UmVu
ZGVyaW5nLCBBcHBseVByb3BlcnR5Rm9udDxUZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnREZXNjcmlw
dGlvbjo6dGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnNldFRleHRSZW5kZXJp
bmdNb2RlLCBBdXRvVGV4dFJlbmRlcmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFRyYW5zZm9ybSwgQXBwbHlQcm9wZXJ0eURlZmF1
bHQ8RVRleHRUcmFuc2Zvcm0sICZSZW5kZXJTdHlsZTo6dGV4dFRyYW5zZm9ybSwgRVRleHRUcmFu
c2Zvcm0sICZSZW5kZXJTdHlsZTo6c2V0VGV4dFRyYW5zZm9ybSwgRVRleHRUcmFuc2Zvcm0sICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRUcmFuc2Zvcm0+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNWI2
NzZlZTc2MjJmOGE0NTQyZmVjYmY1MTYxOWE0Y2ZmZTkwOTVhNS4uOTA5YjQ3ZTk5MDA3Y2U0MWUx
Y2QxM2Q0MDM5NTk4YzU5Mjg1OTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00ODEsNiArNDgxLDkgQEAgU3R5bGVEaWZmZXJlbmNl
IFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNo
YW5nZWRDb24KICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLmdldCgpKSB7CiAgICAgICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+aGln
aGxpZ2h0ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+aGlnaGxpZ2h0CiAgICAgICAgICAg
ICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0
YS0+aW5kZW50CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+
bV90ZXh0SW5kZW50TGluZQorI2VuZGlmCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0
YS0+bV9lZmZlY3RpdmVab29tICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3Rp
dmVab29tCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrICE9IG90
aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+d29yZEJyZWFrCiAgICAgICAgICAgICB8fCByYXJlSW5o
ZXJpdGVkRGF0YS0+b3ZlcmZsb3dXcmFwICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+b3Zl
cmZsb3dXcmFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CmluZGV4IGQ0ZWUyY2I3MDEyMDQ3YjM3MjU3ZTY3NTAzN2ExYWQwOTU4OThhNzAuLjY3NGZlNjM5
YTg2NDc4ZWExMjUwNDI3Yjc5NmEzZDZiYzM2ZWMxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01NjgsNiArNTY4LDkgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBMZW5ndGggdGV4dEluZGVudCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhl
cml0ZWREYXRhLT5pbmRlbnQ7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIFRleHRJbmRl
bnRMaW5lIHRleHRJbmRlbnRMaW5lKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VGV4dElu
ZGVudExpbmU+KHJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lKTsgfQorI2VuZGlm
CiAgICAgRVRleHRBbGlnbiB0ZXh0QWxpZ24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxF
VGV4dEFsaWduPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24pOyB9CiAgICAgRVRleHRUcmFu
c2Zvcm0gdGV4dFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0VHJh
bnNmb3JtPihpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtKTsgfQogICAgIEVUZXh0RGVj
b3JhdGlvbiB0ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PEVUZXh0RGVjb3JhdGlvbj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2RlY29yYXRpb25zKTsg
fQpAQCAtMTEzMCw2ICsxMTMzLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDb2xvcihjb25z
dCBDb2xvciYpOwogICAgIHZvaWQgc2V0VGV4dEluZGVudChMZW5ndGggdikgeyBTRVRfVkFSKHJh
cmVJbmhlcml0ZWREYXRhLCBpbmRlbnQsIHYpOyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAg
ICB2b2lkIHNldFRleHRJbmRlbnRMaW5lKFRleHRJbmRlbnRMaW5lIHYpIHsgU0VUX1ZBUihyYXJl
SW5oZXJpdGVkRGF0YSwgbV90ZXh0SW5kZW50TGluZSwgdik7IH0KKyNlbmRpZgogICAgIHZvaWQg
c2V0VGV4dEFsaWduKEVUZXh0QWxpZ24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfYWxpZ24g
PSB2OyB9CiAgICAgdm9pZCBzZXRUZXh0VHJhbnNmb3JtKEVUZXh0VHJhbnNmb3JtIHYpIHsgaW5o
ZXJpdGVkX2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSA9IHY7IH0KICAgICB2b2lkIGFkZFRvVGV4dERl
Y29yYXRpb25zSW5FZmZlY3QoRVRleHREZWNvcmF0aW9uIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90
ZXh0X2RlY29yYXRpb25zIHw9IHY7IH0KQEAgLTE2MDcsNiArMTYxMyw5IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxNYXJnaW4oKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9
CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsUGFkZGluZygpIHsgcmV0dXJuIExlbmd0aChGaXhl
ZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUZXh0SW5kZW50KCkgeyByZXR1cm4gTGVu
Z3RoKEZpeGVkKTsgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgc3RhdGljIFRleHRJbmRl
bnRMaW5lIGluaXRpYWxUZXh0SW5kZW50TGluZSgpIHsgcmV0dXJuIFRleHRJbmRlbnRGaXJzdExp
bmU7IH0KKyNlbmRpZgogICAgIHN0YXRpYyBFVmVydGljYWxBbGlnbiBpbml0aWFsVmVydGljYWxB
bGlnbigpIHsgcmV0dXJuIEJBU0VMSU5FOyB9CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxXaWRv
d3MoKSB7IHJldHVybiAyOyB9CiAgICAgc3RhdGljIHNob3J0IGluaXRpYWxPcnBoYW5zKCkgeyBy
ZXR1cm4gMjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBlM2RiNDMxNjA4YzRmYzhiZWNkY2NiNWM0OGZjOTNi
NDQ5YTRmZjA3Li5lYWY3NTExOTdhNmIxNTNlNGNlZWZlZjM4ZWQ0NmRiZTJkZGFiYTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaApAQCAtNTA4LDYgKzUwOCwxMCBAQCBlbnVtIERyYWdnYWJsZVJlZ2lvbk1vZGUgeyBE
cmFnZ2FibGVSZWdpb25Ob25lLCBEcmFnZ2FibGVSZWdpb25EcmFnLCBEcmFnZ2FibGVSZQogLy8g
UmVhc29uYWJsZSBtYXhpbXVtIHRvIHByZXZlbnQgaW5zYW5lIGZvbnQgc2l6ZXMgZnJvbSBjYXVz
aW5nIGNyYXNoZXMgb24gc29tZSBwbGF0Zm9ybXMgKHN1Y2ggYXMgV2luZG93cykuCiBzdGF0aWMg
Y29uc3QgZmxvYXQgbWF4aW11bUFsbG93ZWRGb250U2l6ZSA9IDEwMDAwMDAuMGY7CiAKKyNpZiBF
TkFCTEUoQ1NTM19URVhUKQorZW51bSBUZXh0SW5kZW50TGluZSB7IFRleHRJbmRlbnRGaXJzdExp
bmUsIFRleHRJbmRlbnRFYWNoTGluZSB9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApp
bmRleCAzMjNiYjlkN2QyNzRiMmY2MGI1ZWE4Mzk3OTJiYzRlOGFmNWNlODQ0Li44MzEwODQ0MTIz
YmU0MmNiZTk0YTZhYzQxM2QwMDdlN2QxNjYxYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC04
Nyw2ICs4Nyw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERh
dGEoKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrTm9uZSkKICAgICAs
IHRleHRFbXBoYXNpc1Bvc2l0aW9uKFRleHRFbXBoYXNpc1Bvc2l0aW9uT3ZlcikKICAgICAsIG1f
dGV4dE9yaWVudGF0aW9uKFRleHRPcmllbnRhdGlvblZlcnRpY2FsUmlnaHQpCisjaWYgRU5BQkxF
KENTUzNfVEVYVCkKKyAgICAsIG1fdGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0SW5kZW50TGluZSgpKQorI2VuZGlmCiAgICAgLCBtX2xpbmVCb3hDb250YWluKFJlbmRlclN0
eWxlOjppbml0aWFsTGluZUJveENvbnRhaW4oKSkKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKQogICAgICwgbV9pbWFnZU9yaWVudGF0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsSW1h
Z2VPcmllbnRhdGlvbigpKQpAQCAtMTU3LDYgKzE2MCw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYg
bykKICAgICAsIHRleHRFbXBoYXNpc01hcmsoby50ZXh0RW1waGFzaXNNYXJrKQogICAgICwgdGV4
dEVtcGhhc2lzUG9zaXRpb24oby50ZXh0RW1waGFzaXNQb3NpdGlvbikKICAgICAsIG1fdGV4dE9y
aWVudGF0aW9uKG8ubV90ZXh0T3JpZW50YXRpb24pCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAg
ICAsIG1fdGV4dEluZGVudExpbmUoby5tX3RleHRJbmRlbnRMaW5lKQorI2VuZGlmCiAgICAgLCBt
X2xpbmVCb3hDb250YWluKG8ubV9saW5lQm94Q29udGFpbikKICNpZiBFTkFCTEUoQ1NTX0lNQUdF
X09SSUVOVEFUSU9OKQogICAgICwgbV9pbWFnZU9yaWVudGF0aW9uKG8ubV9pbWFnZU9yaWVudGF0
aW9uKQpAQCAtMjUxLDYgKzI1Nyw5IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3Bl
cmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAm
JiB0ZXh0RW1waGFzaXNNYXJrID09IG8udGV4dEVtcGhhc2lzTWFyawogICAgICAgICAmJiB0ZXh0
RW1waGFzaXNQb3NpdGlvbiA9PSBvLnRleHRFbXBoYXNpc1Bvc2l0aW9uCiAgICAgICAgICYmIG1f
dGV4dE9yaWVudGF0aW9uID09IG8ubV90ZXh0T3JpZW50YXRpb24KKyNpZiBFTkFCTEUoQ1NTM19U
RVhUKQorICAgICAgICAmJiBtX3RleHRJbmRlbnRMaW5lID09IG8ubV90ZXh0SW5kZW50TGluZQor
I2VuZGlmCiAgICAgICAgICYmIG1fbGluZUJveENvbnRhaW4gPT0gby5tX2xpbmVCb3hDb250YWlu
CiAgICAgICAgICYmIGh5cGhlbmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJpbmcKICAg
ICAgICAgJiYgbG9jYWxlID09IG8ubG9jYWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCA1MTQ5NWZlN2Zm
ZWYzZDg3YjlmNjU2ZTA2YjEzMjc1ZGZlYjM1NDE2Li4yNTY2ZGU5ODE0MGE2MmE2ODBlY2Q4ZTli
OTBkOGMzNjFkYmFkY2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTEwMCw2ICsxMDAsOSBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgdGV4dEVtcGhhc2lzTWFyayA6IDM7IC8vIFRleHRFbXBoYXNpc01h
cmsKICAgICB1bnNpZ25lZCB0ZXh0RW1waGFzaXNQb3NpdGlvbiA6IDE7IC8vIFRleHRFbXBoYXNp
c1Bvc2l0aW9uCiAgICAgdW5zaWduZWQgbV90ZXh0T3JpZW50YXRpb24gOiAyOyAvLyBUZXh0T3Jp
ZW50YXRpb24KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHVuc2lnbmVkIG1fdGV4dEluZGVu
dExpbmUgOiAxOyAvLyBUZXh0SW5kZW50RWFjaExpbmUKKyNlbmRpZgogICAgIHVuc2lnbmVkIG1f
bGluZUJveENvbnRhaW46IDc7IC8vIExpbmVCb3hDb250YWluCiAgICAgLy8gQ1NTIEltYWdlIFZh
bHVlcyBMZXZlbCAzCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2
OGMxZTRmYWQyNjUyMmI2MGMzNWZmZDA5YzUwZTJkYzI4MDM5ZDllLi5iNjUzNGJmOGYzZmNjZWRl
MWQwMWZhZjE4NzQ4ZGVjMDljNWUwNzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTMtMDMt
MTMgIEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbY3Nz
My10ZXh0XSBQYXJzaW5nIC13ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBm
cm9tIGNzczMtdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MDIxCisKKyAgICAgICAgImVhY2gtbGluZSIgaXMgYWRkZWQgZm9yIHRleHQtaW5k
ZW50IGluIENTUzMuCisgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdGV4dC8j
ZWFjaC1saW5lCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21w
dXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3RDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKG93blZhbHVlVGVzdCk6CisgICAgICAgIChp
bmhlcml0YW5jZVRlc3QpOgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0RWxlbWVudFN0eWxlKToKKyAgICAgICAgKHRl
c3RDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKHZhbHVlU2V0dGluZ1Rlc3QpOgorICAgICAgICAo
aW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHN2Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQ6IENTUzMgdGV4
dC1pbmRlbnQgaXMgY2hhbmdlZCBDU1NQcmltaXRpdmVWYWx1ZSB0byBDU1NWYWx1ZUxpc3QuCisg
ICAgICAgICogdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpz
OiBHZXQgdGV4dC1pbmRlbnQgdmFsdWUgZnJvbSBDU1NWYWx1ZUxpc3QuCisgICAgICAgIChleHBl
Y3RlZCk6CisgICAgICAgICogdHJhbnNpdGlvbnMvc3ZnLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4
dDogTW9kaWZ5IGxpbmUgbnVtYmVyLgorCiAyMDEzLTAzLTEzICBCcnVubyBkZSBPbGl2ZWlyYSBB
YmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAogICAgICAgICBbY3NzMy10
ZXh0XSBBZGQgc3VwcG9ydCBmb3IgdGV4dC1kZWNvcmF0aW9uLWNvbG9yCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2Y2E4NDNk
MTEyNGUwOGFmZGU2ODFmNjJkYTFjM2RhMWI0MjhiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExMCBA
QAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUg
cHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWU6CitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVu
dCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzBweCcKKworVmFsdWUgJzEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQg
aXMgJzEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBp
cyAnMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCcKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCcK
KworVmFsdWUgJzIwZXgnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzIwZXgnCitQQVNT
IGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCcKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCcKKworVmFsdWUgJzUwJSc6
CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnNTAlJworUEFTUyBlLnN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzUwJScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0
SW5kZW50IGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnNTAlJworCitWYWx1ZSAnMTBlbSAtd2Via2l0LWVhY2gtbGluZSc6CitQ
QVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1Mg
ZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVtIC13ZWJraXQt
ZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IC13ZWJr
aXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1l
YWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbSAtd2Via2l0
LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcxMGVtIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRl
bnQgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJwor
CitWYWx1ZSAnMjBleCAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVu
dCBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21w
dXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4IC13
ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCc6CitQQVNT
IGUuc3R5bGUudGV4dEluZGVudCBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5z
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13ZWJraXQtZWFj
aC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4IC13ZWJraXQt
ZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnMzAlIC13ZWJraXQt
ZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdlYmtpdC1lYWNo
LWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMg
JzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICct
d2Via2l0LWVhY2gtbGluZSAzMCUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAt
d2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4
dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScK
KworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50
IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBp
cyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29t
cHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0lu
dmFsaWQgdmFsdWUgdGVzdCAtICcxMG0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxl
LnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4
JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5lIDEwbSc6CitQ
QVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5k
ZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBlbSAxMGVtJzoKK1BB
U1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRl
bnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGlu
ZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFBy
b3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50
ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBlbSAtd2Vi
a2l0LWVhY2gtbGluZSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQ
QVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFT
UyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUg
dGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1Mg
ZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQg
aXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1p
bmhlcml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQt
aW5oZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmQ0ZTA5NGQwNGVhMzcwNTVhOGUy
MWViNGFmZTM0MjRiYzEzOWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5
bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitU
aGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50IGlzIHByb3Blcmx5
IGluaGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4Jwor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEwcHggLXdlYmtp
dC1lYWNoLWxpbmUnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScK
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3Rl
eHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlIG9mIGFuY2Vz
dG9yIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJywgd2hpbGUgY2hpbGQgaXMgJzEwcHgnOgor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzEwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY0MWI5NjQ3MTA3OGQyN2UxNjJkODMwYTM5MGJlYmEzNjU4YzliNGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0
ZWQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImFuY2VzdG9yIj48ZGl2IGlkPSJj
aGlsZCI+PC9kaXY+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRD
b21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNDI4MGEyMGUxODBjMjZmNzAyNmU1YzI3OTE1YWQ2ZDBlN2IxNGMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApAQCAtMCwwICsxLDEx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgIDxkaXYgaWQ9InRlc3QiIHN0eWxlPSJmb250OiAxMHB4IEFoZW07Ij48L2Rpdj4KKyAg
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3Nj
cmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDMzN2NmOTVlNDc0ZjUwOWU2MmQwYTI2YjU1NWQwNzk3ZmVjZDEyYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWlu
ZGVudC1pbmhlcml0ZWQuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gdGVzdENvbXB1dGVk
U3R5bGUoYV92YWx1ZSwgY192YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1
dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykiLCAgIici
ICsgYV92YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiArIGNfdmFsdWUg
KyAiJyIpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gb3duVmFsdWVUZXN0KGFfdmFs
dWUsIGNfdmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9yIGlzICciICsgYV92
YWx1ZSArICInLCB3aGlsZSBjaGlsZCBpcyAnIiArIGNfdmFsdWUgKyAiJzoiKTsKKyAgICBhbmNl
c3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICBjaGlsZC5zdHlsZS50ZXh0SW5k
ZW50ID0gY192YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBjX3ZhbHVlKTsK
K30KKworZnVuY3Rpb24gaW5oZXJpdGFuY2VUZXN0KGFfdmFsdWUpCit7CisgICAgZGVidWcoIlZh
bHVlIG9mIGFuY2VzdG9yIGlzICciICsgYV92YWx1ZSArICInOiIpOworICAgIGFuY2VzdG9yLnN0
eWxlLnRleHRJbmRlbnQgPSBhX3ZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0eWxlKGFfdmFsdWUs
IGFfdmFsdWUpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRoZSB2
YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBpbmhlcml0ZWQgdG8gdGhlIGNoaWxkLiIp
OworCithbmNlc3RvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNlc3RvcicpOworY2hp
bGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKKworaW5oZXJpdGFuY2VUZXN0
KCIxMHB4Iik7Citpbmhlcml0YW5jZVRlc3QoIjEwcHggLXdlYmtpdC1lYWNoLWxpbmUiKTsKKwor
b3duVmFsdWVUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5lIiwgIjEwcHgiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYjQzMTk1N2RmZmFmNmJkOWRiNzM5YWUwNTM1ZDc0NWNhMWQzYzQwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzCkBA
IC0wLDAgKzEsNTkgQEAKK2Z1bmN0aW9uIHRlc3RFbGVtZW50U3R5bGUocHJvcGVydHlKUywgcHJv
cGVydHlDU1MsIHZhbHVlKQoreworICAgIHNob3VsZEJlKCJlLnN0eWxlLiIgKyBwcm9wZXJ0eUpT
LCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImUuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOworfQorCitm
dW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShwcm9wZXJ0eUpTLCBwcm9wZXJ0eUNTUywgdmFsdWUp
Cit7CisgICAgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsIG51bGwp
OworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLiIgKyBwcm9wZXJ0eUpTLCAiJyIgKyB2YWx1
ZSArICInIik7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
IiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOworfQorCitmdW5jdGlv
biB2YWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBleHBlY3RlZFZhbHVlLCBjb21wdXRlZFZhbHVlKQor
eworICAgIGRlYnVnKCJWYWx1ZSAnIiArIHZhbHVlICsgIic6Iik7CisgICAgZS5zdHlsZS50ZXh0
SW5kZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0
LWluZGVudCIsIGV4cGVjdGVkVmFsdWUpOworICAgIHRlc3RDb21wdXRlZFN0eWxlKCJ0ZXh0SW5k
ZW50IiwgInRleHQtaW5kZW50IiwgY29tcHV0ZWRWYWx1ZSk7CisgICAgZGVidWcoJycpOworfQor
CitmdW5jdGlvbiBpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCh2YWx1ZSwgZGVmYXVsdFZhbHVlKQor
eworICAgIGRlYnVnKCJJbnZhbGlkIHZhbHVlIHRlc3QgLSAnIiArIHZhbHVlICsgIic6Iik7Cisg
ICAgZS5zdHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4
dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7CisgICAgdGVzdENvbXB1dGVk
U3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBkZWZhdWx0VmFsdWUpOworICAgIGRl
YnVnKCcnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhhdCB0ZXh0LWlu
ZGVudCBwYXJzZXMgcHJvcGVybHkgdGhlIHByb3BlcnRpZXMgZnJvbSBDU1MzIFRleHQuIik7CisK
K2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworCitkZWJ1ZygiVGVzdCB0aGUg
aW5pdGlhbCB2YWx1ZToiKTsKK3Rlc3RDb21wdXRlZFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQt
aW5kZW50IiwgJzBweCcpOworZGVidWcoJycpOworCit2YWx1ZVNldHRpbmdUZXN0KCcxMGVtJywg
JzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXgnLCAnMjBleCcsJzIwMHB4
Jyk7Cit2YWx1ZVNldHRpbmdUZXN0KCc1MCUnLCAnNTAlJywnNTAlJyk7Cit2YWx1ZVNldHRpbmdU
ZXN0KCcxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCAn
MTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFj
aC1saW5lIDEwZW0nLCAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcxMDBweCAtd2Via2l0LWVh
Y2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnMjBleCAtd2Via2l0LWVhY2gtbGluZScsICcy
MGV4IC13ZWJraXQtZWFjaC1saW5lJywgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1
ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAyMGV4JywgJzIwZXggLXdlYmtpdC1lYWNo
LWxpbmUnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzMw
JSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnLCAnMzAlIC13ZWJr
aXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAzMCUn
LCAnMzAlIC13ZWJraXQtZWFjaC1saW5lJywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScpOworZGVi
dWcoJycpOworCitkZWZhdWx0VmFsdWUgPSAnMHB4JworZS5zdHlsZS50ZXh0SW5kZW50ID0gZGVm
YXVsdFZhbHVlOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwbScsIGRlZmF1bHRWYWx1ZSk7
CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBtIC13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVs
dFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAxMG0n
LCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gMTBlbScsIGRl
ZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUn
LCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gLXdlYmtpdC1l
YWNoLWxpbmUgMTBlbScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgn
LXdlYmtpdC1lYWNoLWxpbmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyYjQyOWMzMzA0NTRjNzA1MDE1M2EwYzU1N2E1MzBmZjFjZjYxOWI4Li40YmQ1NjQ2MmFiMDhm
NzI2YTQyNTE1NTIwNzJiZTc2NmU3ZGE2OTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMyw2ICsyMzMsNyBAQCB3ZWJraXQub3Jn
L2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQg
aXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcv
Yi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9i
Lzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2Iv
MTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBDaHJvbWl1bSBkb2Vz
IG5vdCBzdXBwb3J0IHNtYXJ0IHBhc3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQuCiB3ZWJraXQu
b3JnL2IvNjA4MzAgZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJv
bC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFi
NjRiYzYyYTFlNjkyMjdiYTZiZTdhZTdkYTg2NDA2NGI4MGM4ZGIuLjYwNDE2OWYzODhhYzdmNTlh
N2Y3Zjk5YzQ4MDg0M2U2MTY1OTc2NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMTQ2LDYgKzExNDYsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFz
dC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBl
bmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBPdXIgc2xvdyB0ZXN0cywgaW4gYWxwaGFi
ZXRpY2FsIG9yZGVyLgogd2Via2l0Lm9yZy9iLzU3NjcyIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFw
aS9zZW5kLXNsaWNlZC1kcmFnZ2VkLWZpbGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgxZDkyNDczNjll
YjBiM2U5YWIwMmYwZmM3Yzc2YTMzMjZkNjg3NWEuLmI1MDcyZGZkMDRlN2I2NTE5N2ZlNTU0ZWJh
ZTEzNmQ5M2E0NDA4YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC02OTksNiArNjk5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3Nz
L2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxl
ZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBidWcgODY0
NDEKICMgZmFpbGluZyBuZXcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggM2QxZTA5Nzc4YWUwOTc4NjQ3NTUyZjNhYmQ3Y2NhZDNiYTUw
YmViMi4uYjQ3YzU3MDdhZDc2ODM3MmJjMGNkNmU1MDI4ZDhhNzlkYzI2ZDU5MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU3OTYsNiArNTc5
Niw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBD
U1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RF
WFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxh
c3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudAog
CiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3Rz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZDk0MjU2MGFm
ZGFiYTg4MGYxNThjNDllMzg1OGNmYjNmNzA3MjcwLi4zZDlhOTMxMDFkYTI5ZDA1ZTZkOWUzODcy
OWFhZDJlYWEwNDgxZTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTM0OCw2ICszNDgsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Ut
b3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVk
cyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQKIAogIyBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig
SW5zcGVjdG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKSBpbiBwbGF0Zm9ybXMgb3Ro
ZXIgdGhhbiBDaHJvbWl1bQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODI4ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ZWEzOGJiNGM3Y2Y4MGFkM2E1M2UzMGY0MmZkMGM0MjhhYTU1NzcyYS4uMzcyMjU2OTAxYmNiYWY3
MTYwNDYwNDI0ODE4YjVjNWQ5ZGFjODU2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTI0ODgsNiArMjQ4OCw4IEBAIGZhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtcmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRtbAogZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWFsaWduLWxhc3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtYWxpZ24tbGFzdC1pbmhlcml0ZWQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFs
aWduLWxhc3QvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtYWxpZ24tbGFz
dC5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAorZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRl
bnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKIAog
IyBBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgaXMgZGlzYWJsZWQgb24gV2luZG93cwog
Y29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjYw
MWViYTYyNjI4YmJkMDFhZDk4NTlkYThmOTFjMTkzNjZhYzIzOC4uODgzZjE1NWU1NDMyNDJlY2Ez
NzVmMjk3YmU1ZmFhMDA3NTgzOWUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTc3LDYgKzI5NzcsOCBAQCB3ZWJraXQub3JnL2Iv
Mzk3MjUgZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1hdXRvc2Nyb2xsLmh0bWwgWyBTa2lwIF0K
IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0
Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWFsaWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRp
b24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5l
Lmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC5odG1sCiAKICMgU3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0Lm9y
Zy9iLzEwODM3MCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRl
ZFN0eWxlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvZ2V0Q29tcHV0
ZWRTdHlsZS1iYXNpYy1leHBlY3RlZC50eHQKaW5kZXggZDMxZDMwZWU5NmE1NDc5YjY3M2UyZjdi
MjQ0YzA0ZTgxOTNjM2NiMy4uNzgwMTQxMGVhODZhMjgzYmQ1NjQ4NGYzOTc3OThkMjAyYTNhNGVi
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2lj
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2dldENvbXB1dGVkU3R5bGUt
YmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xNjksNyArMTY5LDcgQEAgcmVjdDogc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSh0ZXh0LWFsaWduKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCiBy
ZWN0OiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtZGVjb3JhdGlvbikgOiBub25lCiByZWN0
OiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtZGVjb3JhdGlvbikgOiBbb2JqZWN0IENT
U1ByaW1pdGl2ZVZhbHVlXQogcmVjdDogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LWluZGVu
dCkgOiAwcHgKLXJlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1pbmRlbnQpIDog
W29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KK3JlY3Q6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUodGV4dC1pbmRlbnQpIDogW29iamVjdCBDU1NWYWx1ZUxpc3RdCiByZWN0OiBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKHRleHQtcmVuZGVyaW5nKSA6IGF1dG8KIHJlY3Q6IHN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUodGV4dC1yZW5kZXJpbmcpIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0K
IHJlY3Q6IHN0eWxlLmdldFByb3BlcnR5VmFsdWUodGV4dC1zaGFkb3cpIDogbm9uZQpAQCAtNjY1
LDcgKzY2NSw3IEBAIGc6IHN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUodGV4dC1hbGlnbikgOiBb
b2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVlXQogZzogc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0
LWRlY29yYXRpb24pIDogbm9uZQogZzogc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSh0ZXh0LWRl
Y29yYXRpb24pIDogW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZV0KIGc6IHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUodGV4dC1pbmRlbnQpIDogMHB4Ci1nOiBzdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHRleHQtaW5kZW50KSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVdCitnOiBzdHlsZS5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlKHRleHQtaW5kZW50KSA6IFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogZzog
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh0ZXh0LXJlbmRlcmluZykgOiBhdXRvCiBnOiBzdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtcmVuZGVyaW5nKSA6IFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVdCiBnOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHRleHQtc2hhZG93KSA6IG5vbmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0aW9uLXRl
c3QtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0
aW9uLXRlc3QtaGVscGVycy5qcwppbmRleCA3OTM0NjBlNTg5NDU2MGU1NTA5MGY0MzgyY2IzMzVj
MzFmZjZmMzBjLi45NzU2OGQzMGNlY2MxMTQ4YTBmM2UwMDdmYmY5ZDcxNzc1NmRkMjk1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNpdGlvbi10ZXN0
LWhlbHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5z
aXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0xMTksNiArMTE5LDkgQEAgZnVuY3Rpb24gY2hlY2tF
eHBlY3RlZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09
ICJsaW5lSGVpZ2h0IikgewogICAgICAgICBjb21wdXRlZFZhbHVlID0gcGFyc2VJbnQod2luZG93
LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkubGlu
ZUhlaWdodCk7CiAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGV4
cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSAidGV4
dC1pbmRlbnQiKSB7CisgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBwYXJzZUZsb2F0KHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkpLmdldFBy
b3BlcnR5Q1NTVmFsdWUoJ3RleHQtaW5kZW50JykuaXRlbSgwKS5jc3NUZXh0KTsKKyAgICAgICAg
cGFzcyA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJh
bmNlKTsKICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09ICJiYWNrZ3JvdW5kLWltYWdlIgogICAg
ICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gImJvcmRlci1pbWFnZS1zb3VyY2UiCiAgICAgICAg
ICAgICAgICB8fCBwcm9wZXJ0eSA9PSAiYm9yZGVyLWltYWdlIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvc3ZnLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3N2Zy10cmFuc2l0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggMjRlMDRl
MTNhNTc1YTkwNDViZWJjNzc4M2IyNjAyM2MwMjBjMTAwYy4uOGRlMjU0NTdhOGI3NTc3YWNhYzdj
MjJmNTlhMTkyZDY5ZTFjMTJjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
c3ZnLXRyYW5zaXRpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy9zdmctdHJhbnNpdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDI0MDogRmFpbGVkIHRvIHBhdXNlICdmaWxsJyB0cmFuc2l0aW9uIG9uIGVs
ZW1lbnQgJ3JlY3Q3JworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0MzogRmFpbGVkIHRvIHBhdXNl
ICdmaWxsJyB0cmFuc2l0aW9uIG9uIGVsZW1lbnQgJ3JlY3Q3JwogRXhhbXBsZQogUEFTUyAtICJm
aWxsLW9wYWNpdHkiIHByb3BlcnR5IGZvciAicmVjdDEiIGVsZW1lbnQgYXQgMXMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMC42CiBQQVNTIC0gInN0cm9rZS13aWR0aCIgcHJvcGVydHkgZm9yICJy
ZWN0MSIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193754</attachid>
            <date>2013-03-19 01:29:00 -0700</date>
            <delta_ts>2013-03-19 22:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130319172449.patch</filename>
            <type>text/plain</type>
            <size>37952</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlmYzkyZmYwMjc4YTg1
MTQzM2FiYzIwMDU0YTg4OWMyNTQ1Y2E3NS4uZWM1NjNmNzhmYTM0M2UxMWM3MTE3YzNjNDI0Mjll
MWFiZDk1YTQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTAzLTE4ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICJl
YWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAgICAgICBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAgICAgIFRoaXMg
cGF0Y2ggaXMgdGhlIHBhcnNpbmcgcGFydCB0byBzdXBwb3J0IGVhY2gtbGluZSB2YWx1ZSBmb3Ig
dGV4dC1pbmRlbnQuCisKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0aW9uIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5lciBhcyB3
ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcworICAg
ICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKworICAgICAg
ICBJdCdzIHByZWZpeGVkIGFuZCBndWFyZGVkIGJ5IENTUzNfVEVYVCBmbGFnLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENv
bXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNTaW1wbGVMZW5ndGhQcm9wZXJ0eUlEKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlVGV4dEluZGVudCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5o
OgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9TdHls
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFwcGx5SW5oZXJpdFZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseUluaXRpYWxW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6Y3JlYXRl
SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKwogMjAxMy0wMy0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJVSUxEIEZJ
WCAocjE0NjA4OCk6IFJlc291cmNlUmVxdWVzdDo6Y2ZVUkxSZXF1ZXN0KCkgaXMgZGVmaW5lZCB0
d2ljZSBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggODgxMzVkMTc1MjZiMTM1ZDIyMGNiZjE5OTZmNjZkZTg4YzEw
ZGZmNC4uYmViYjhkMmU2MzQ2M2M4NDBmN2I5Y2I4OTBiNmI3NDMyOWIzYTY2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTIxOTAsOCArMjE5MCwxOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICAgICAg
ICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
LSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6Ci0gICAgICAgICAgICByZXR1cm4g
em9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHls
ZS5nZXQoKSk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiB7CisgICAgICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHRleHRJbmRlbnQgPSB6b29tQWRqdXN0ZWRQaXhlbFZhbHVl
Rm9yTGVuZ3RoKHN0eWxlLT50ZXh0SW5kZW50KCksIHN0eWxlLmdldCgpKTsKKyNpZiBFTkFCTEUo
Q1NTM19URVhUKQorICAgICAgICAgICAgaWYgKHN0eWxlLT50ZXh0SW5kZW50TGluZSgpID09IFRl
eHRJbmRlbnRFYWNoTGluZSkgeworICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+
IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAg
ICAgICAgbGlzdC0+YXBwZW5kKHRleHRJbmRlbnQucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAg
ICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlV2Via2l0RWFjaExpbmUpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNl
KCk7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVybiB0ZXh0SW5kZW50
LnJlbGVhc2UoKTsKKyAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFNoYWRv
dzoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvclNoYWRvdyhzdHlsZS0+dGV4dFNoYWRvdygp
LCBwcm9wZXJ0eUlELCBzdHlsZS5nZXQoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
UmVuZGVyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxMDIzNTM5MDMyZmQ2MTE2
MTQ2NmIwOWI3MTE1MjUyMWJiOGUwZDg2Li44Njk2MDE3YTM0ZjI5ZjVkNTg0YTFlODAyZTE5YWJl
ODViODE1ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTk0LDcgKzU5NCw2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NpbXBsZUxlbmd0aFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlkLCBib29sJiBhY2NlCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlNYXJnaW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJp
Z2h0OgotICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlUb3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkFmdGVyOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJnaW5CZWZvcmU6CkBAIC0yMTg1LDggKzIxODQsOCBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0
aCk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAg
ICAgICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAotICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9ICghaWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQp
KTsKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVudDoKKyAgICAgICAgcGFyc2VkVmFsdWUg
PSBwYXJzZVRleHRJbmRlbnQoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3Bl
cnR5UGFkZGluZ1RvcDogICAgICAgICAgLy8vLyA8cGFkZGluZy13aWR0aD4gfCBpbmhlcml0CkBA
IC05MjQwLDYgKzkyMzksNTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVGV4dEVtcGhhc2lzU3R5
bGUoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlVGV4dEluZGVudCgpCit7CisgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKwor
ICAgIC8vIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAorICAgIGlmIChtX3ZhbHVl
TGlzdC0+c2l6ZSgpID09IDEpIHsKKyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92
YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0
KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQo
Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAgICBtX3ZhbHVl
TGlzdC0+bmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAg
ICB9CisgICAgfQorCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAvLyBUaGUgY2FzZSB3aGVy
ZSB0ZXh0LWluZGVudCBoYXMgb25seSA8bGVuZ3RoPihvciA8cGVyY2VudGFnZT4pIHZhbHVlCisg
ICAgLy8gaXMgaGFuZGxlZCBhYm92ZSBpZiBzdGF0ZW1lbnQgZXZlbiB0aG91Z2ggQ1NTM19URVhU
IGlzIGVuYWJsZWQuCisKKyAgICAvLyBbIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAmJiAt
d2Via2l0LWVhY2gtbGluZSBdIHwgaW5oZXJpdAorICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgp
ICE9IDIpCisgICAgICAgIHJldHVybiAwOworCisgICAgQ1NTUGFyc2VyVmFsdWUqIGZpcnN0VmFs
dWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOworICAgIENTU1BhcnNlclZhbHVlKiBzZWNvbmRW
YWx1ZSA9IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIGxlbmd0aE9y
UGVyY2VudGFnZVZhbHVlID0gMDsKKworICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4g
XSAtd2Via2l0LWVhY2gtbGluZQorICAgIGlmICh2YWxpZFVuaXQoZmlyc3RWYWx1ZSwgRkxlbmd0
aCB8IEZQZXJjZW50KSAmJiBzZWNvbmRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGlu
ZSkKKyAgICAgICAgbGVuZ3RoT3JQZXJjZW50YWdlVmFsdWUgPSBmaXJzdFZhbHVlOworICAgIC8v
IC13ZWJraXQtZWFjaC1saW5lIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXQorICAgIGVsc2Ug
aWYgKGZpcnN0VmFsdWUtPmlkID09IENTU1ZhbHVlV2Via2l0RWFjaExpbmUgJiYgdmFsaWRVbml0
KHNlY29uZFZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKQorICAgICAgICBsZW5ndGhPclBlcmNl
bnRhZ2VWYWx1ZSA9IHNlY29uZFZhbHVlOworCisgICAgaWYgKGxlbmd0aE9yUGVyY2VudGFnZVZh
bHVlKSB7CisgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUo
bGVuZ3RoT3JQZXJjZW50YWdlVmFsdWUpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7Cisg
ICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2Uo
KTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiAwOworfQorCiBib29sIENTU1BhcnNlcjo6
cGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCkKIHsKICAgICBMaW5lQm94Q29udGFp
biBsaW5lQm94Q29udGFpbiA9IExpbmVCb3hDb250YWluTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAppbmRleCA4NDMwMzgxMGI5OWIwOWU0OWQwOTExMTc4MDZiYTk3MjU5YjlhOThmLi4yZmY0Mjg1
ZGE4ZjZkYWJiYTA1YTcyYzc2YzQwYTliNzI3MTA0YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CkBAIC0yNjgsNiArMjY4LDggQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VUZXh0VW5kZXJsaW5l
UG9zaXRpb24oYm9vbCBpbXBvcnRhbnQpOwogI2VuZGlmIC8vIENTUzNfVEVYVAogCisgICAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VUZXh0SW5kZW50KCk7CisgICAgCiAgICAgYm9vbCBwYXJz
ZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlQ2FsY3VsYXRp
b24oQ1NTUGFyc2VyVmFsdWUqLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IGYxZTZiNDczNTMwYTZjZmJl
OGYzZjM0ZDQyZGQ5ODZlNTE0ZjRiM2EuLmRlODkzMGY1YTkyZGMxM2RmYzk5NDE1NTI3ZTMzMjI0
NmJhNWM0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMDA5
LDMgKzEwMDksOSBAQCBzbmFwCiBkcmFnCiBuby1kcmFnCiAjZW5kaWYKKworI2lmIGRlZmluZWQo
RU5BQkxFX0NTUzNfVEVYVCkgJiYgRU5BQkxFX0NTUzNfVEVYVAorLy8gdGV4dC1pbmRlbnQKKy13
ZWJraXQtZWFjaC1saW5lCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApp
bmRleCBmNWMwMDYzMGRlNmU3NzA4MGQwNDc2MWE2NGY5NDIwYjhmNDNlNzRmLi4xMDE0NzFjZTA4
ZWVjZDVhZmU3OGI3ZWI4ZjAyYTIwZjg5NDM1YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyLmNwcApAQCAtMTkzMyw2ICsxOTMzLDU4IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorY2xh
c3MgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFw
cGx5SW5oZXJpdFZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIpCisgICAgeworICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50
KHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCktPnRleHRJbmRlbnQoKSk7CisjaWYgRU5BQkxF
KENTUzNfVEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVu
dExpbmUoc3R5bGVSZXNvbHZlci0+cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShDU1NQcm9w
ZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsKKyAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRl
eHRJbmRlbnQoKSk7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5k
ZW50TGluZSgpKTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUo
Q1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZh
bHVlKQorICAgIHsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAvLyBbIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gLXdl
YmtpdC1lYWNoLWxpbmUKKyAgICAgICAgLy8gVGhlIHZhbHVlIG9yZGVyIGlzIGd1YXJhbnRlZWQu
IFNlZSBDU1NQYXJzZXI6OnBhcnNlVGV4dEluZGVudC4KKyAgICAgICAgLy8gVGhlIHNlY29uZCB2
YWx1ZSwgLXdlYmtpdC1lYWNoLWxpbmUgaXMgaGFuZGxlZCBvbmx5IHdoZW4gQ1NTM19URVhUIGlz
IGVuYWJsZWQuCisKKyAgICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2Fz
dDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmlt
aXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5p
dGVtV2l0aG91dEJvdW5kc0NoZWNrKDApKTsKKyAgICAgICAgTGVuZ3RoIGxlbmd0aE9yUGVyY2Vu
dGFnZVZhbHVlID0gcHJpbWl0aXZlVmFsdWUtPmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJD
b252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbiB8IFZp
ZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxl
UmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUoKSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZm
ZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgQVNTRVJUKCFsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZS5p
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dElu
ZGVudChsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSk7CisKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQor
ICAgICAgICBpZiAodmFsdWVMaXN0LT5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50Rmlyc3RMaW5l
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVCh2YWx1
ZUxpc3QtPmxlbmd0aCgpID09IDIpOworICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogZWFjaExp
bmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVt
V2l0aG91dEJvdW5kc0NoZWNrKDEpKTsKKyAgICAgICAgaWYgKGVhY2hMaW5lVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkKKyAgICAgICAgICAgIHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFRleHRJbmRlbnRFYWNoTGluZSk7CisjZW5k
aWYKKyAgICB9CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcigmYXBwbHlJbmhlcml0VmFsdWUs
ICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307CisKIGNvbnN0IFN0
eWxlQnVpbGRlciYgU3R5bGVCdWlsZGVyOjpzaGFyZWRTdHlsZUJ1aWxkZXIoKQogewogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3R5bGVCdWlsZGVyLCBzdHlsZUJ1aWxkZXJJbnN0YW5jZSwgKCkp
OwpAQCAtMjA1MCw3ICsyMTAyLDcgQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAg
IHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRBbGlnbkxhc3QsIEFwcGx5
UHJvcGVydHlEZWZhdWx0PFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6dGV4dEFsaWduTGFz
dCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0QWxpZ25MYXN0LCBUZXh0QWxp
Z25MYXN0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0QWxpZ25MYXN0Pjo6Y3JlYXRlSGFuZGxl
cigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJs
aW5lUG9zaXRpb24sIEFwcGx5UHJvcGVydHlUZXh0VW5kZXJsaW5lUG9zaXRpb246OmNyZWF0ZUhh
bmRsZXIoKSk7CiAjZW5kaWYgLy8gQ1NTM19URVhUCi0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OnRl
eHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjppbml0
aWFsVGV4dEluZGVudD46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVy
KENTU1Byb3BlcnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhh
bmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dE92ZXJmbG93
LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6dGV4dE92
ZXJmbG93LCBUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6c2V0VGV4dE92ZXJmbG93LCBUZXh0
T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRPdmVyZmxvdz46OmNyZWF0ZUhhbmRs
ZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywg
QXBwbHlQcm9wZXJ0eUZvbnQ8VGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRl
eHRSZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwg
QXV0b1RleHRSZW5kZXJpbmc+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFu
ZGxlcihDU1NQcm9wZXJ0eVRleHRUcmFuc2Zvcm0sIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVUZXh0
VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OnRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAm
UmVuZGVyU3R5bGU6OnNldFRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxUZXh0VHJhbnNmb3JtPjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDViNjc2ZWU3NjIy
ZjhhNDU0MmZlY2JmNTE2MTlhNGNmZmU5MDk1YTUuLjkwOWI0N2U5OTAwN2NlNDFlMWNkMTNkNDAz
OTU5OGM1OTI4NTk5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcApAQCAtNDgxLDYgKzQ4MSw5IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJT
dHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29u
CiAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlSW5oZXJpdGVk
RGF0YS5nZXQoKSkgewogICAgICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodCAh
PSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodAogICAgICAgICAgICAgfHwgcmFy
ZUluaGVyaXRlZERhdGEtPmluZGVudCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPmluZGVu
dAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0
YS0+bV90ZXh0SW5kZW50TGluZSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dElu
ZGVudExpbmUKKyNlbmRpZgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fZWZm
ZWN0aXZlWm9vbSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbQog
ICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPndvcmRCcmVhayAhPSBvdGhlci0+cmFy
ZUluaGVyaXRlZERhdGEtPndvcmRCcmVhawogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERh
dGEtPm92ZXJmbG93V3JhcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm92ZXJmbG93V3Jh
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBk
NGVlMmNiNzAxMjA0N2IzNzI1N2U2NzUwMzdhMWFkMDk1ODk4YTcwLi42NzRmZTYzOWE4NjQ3OGVh
MTI1MDQyN2I3OTZhM2Q2YmMzNmVjMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNTY4LDYgKzU2OCw5IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgTGVuZ3RoIHRleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0
YS0+aW5kZW50OyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBUZXh0SW5kZW50TGluZSB0
ZXh0SW5kZW50TGluZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRJbmRlbnRMaW5l
PihyYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50TGluZSk7IH0KKyNlbmRpZgogICAgIEVU
ZXh0QWxpZ24gdGV4dEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRBbGln
bj4oaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2FsaWduKTsgfQogICAgIEVUZXh0VHJhbnNmb3JtIHRl
eHRUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dFRyYW5zZm9ybT4o
aW5oZXJpdGVkX2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSk7IH0KICAgICBFVGV4dERlY29yYXRpb24g
dGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4
dERlY29yYXRpb24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0aW9ucyk7IH0KQEAgLTEx
MzAsNiArMTEzMyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q29sb3IoY29uc3QgQ29sb3Im
KTsKICAgICB2b2lkIHNldFRleHRJbmRlbnQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJp
dGVkRGF0YSwgaW5kZW50LCB2KTsgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgdm9pZCBz
ZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50TGluZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRl
ZERhdGEsIG1fdGV4dEluZGVudExpbmUsIHYpOyB9CisjZW5kaWYKICAgICB2b2lkIHNldFRleHRB
bGlnbihFVGV4dEFsaWduIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2FsaWduID0gdjsgfQog
ICAgIHZvaWQgc2V0VGV4dFRyYW5zZm9ybShFVGV4dFRyYW5zZm9ybSB2KSB7IGluaGVyaXRlZF9m
bGFncy5fdGV4dF90cmFuc2Zvcm0gPSB2OyB9CiAgICAgdm9pZCBhZGRUb1RleHREZWNvcmF0aW9u
c0luRWZmZWN0KEVUZXh0RGVjb3JhdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNv
cmF0aW9ucyB8PSB2OyB9CkBAIC0xNjA3LDYgKzE2MTMsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IExlbmd0aCBpbml0aWFsTWFyZ2luKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0
YXRpYyBMZW5ndGggaW5pdGlhbFBhZGRpbmcoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CiAg
ICAgc3RhdGljIExlbmd0aCBpbml0aWFsVGV4dEluZGVudCgpIHsgcmV0dXJuIExlbmd0aChGaXhl
ZCk7IH0KKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHN0YXRpYyBUZXh0SW5kZW50TGluZSBp
bml0aWFsVGV4dEluZGVudExpbmUoKSB7IHJldHVybiBUZXh0SW5kZW50Rmlyc3RMaW5lOyB9Cisj
ZW5kaWYKICAgICBzdGF0aWMgRVZlcnRpY2FsQWxpZ24gaW5pdGlhbFZlcnRpY2FsQWxpZ24oKSB7
IHJldHVybiBCQVNFTElORTsgfQogICAgIHN0YXRpYyBzaG9ydCBpbml0aWFsV2lkb3dzKCkgeyBy
ZXR1cm4gMjsgfQogICAgIHN0YXRpYyBzaG9ydCBpbml0aWFsT3JwaGFucygpIHsgcmV0dXJuIDI7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKaW5kZXggZTNkYjQzMTYwOGM0ZmM4YmVjZGNjYjVjNDhmYzkzYjQ0OWE0ZmYw
Ny4uZWFmNzUxMTk3YTZiMTUzZTRjZWVmZWYzOGVkNDZkYmUyZGRhYmEyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgK
QEAgLTUwOCw2ICs1MDgsMTAgQEAgZW51bSBEcmFnZ2FibGVSZWdpb25Nb2RlIHsgRHJhZ2dhYmxl
UmVnaW9uTm9uZSwgRHJhZ2dhYmxlUmVnaW9uRHJhZywgRHJhZ2dhYmxlUmUKIC8vIFJlYXNvbmFi
bGUgbWF4aW11bSB0byBwcmV2ZW50IGluc2FuZSBmb250IHNpemVzIGZyb20gY2F1c2luZyBjcmFz
aGVzIG9uIHNvbWUgcGxhdGZvcm1zIChzdWNoIGFzIFdpbmRvd3MpLgogc3RhdGljIGNvbnN0IGZs
b2F0IG1heGltdW1BbGxvd2VkRm9udFNpemUgPSAxMDAwMDAwLjBmOwogCisjaWYgRU5BQkxFKENT
UzNfVEVYVCkKK2VudW0gVGV4dEluZGVudExpbmUgeyBUZXh0SW5kZW50Rmlyc3RMaW5lLCBUZXh0
SW5kZW50RWFjaExpbmUgfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBSZW5kZXJTdHlsZUNvbnN0YW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMzIz
YmI5ZDdkMjc0YjJmNjBiNWVhODM5NzkyYmM0ZThhZjVjZTg0NC4uODMxMDg0NDEyM2JlNDJjYmU5
NGE2YWM0MTNkMDA3ZTdkMTY2MWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtODcsNiArODcs
OSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAg
ICAsIHRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0RW1w
aGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAgICAgLCBtX3RleHRPcmll
bnRhdGlvbihUZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorI2lmIEVOQUJMRShDU1MzX1RF
WFQpCisgICAgLCBtX3RleHRJbmRlbnRMaW5lKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVu
dExpbmUoKSkKKyNlbmRpZgogICAgICwgbV9saW5lQm94Q29udGFpbihSZW5kZXJTdHlsZTo6aW5p
dGlhbExpbmVCb3hDb250YWluKCkpCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikK
ICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlT3JpZW50
YXRpb24oKSkKQEAgLTE1Nyw2ICsxNjAsOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHls
ZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAgICAg
LCB0ZXh0RW1waGFzaXNNYXJrKG8udGV4dEVtcGhhc2lzTWFyaykKICAgICAsIHRleHRFbXBoYXNp
c1Bvc2l0aW9uKG8udGV4dEVtcGhhc2lzUG9zaXRpb24pCiAgICAgLCBtX3RleHRPcmllbnRhdGlv
bihvLm1fdGV4dE9yaWVudGF0aW9uKQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgLCBtX3Rl
eHRJbmRlbnRMaW5lKG8ubV90ZXh0SW5kZW50TGluZSkKKyNlbmRpZgogICAgICwgbV9saW5lQm94
Q29udGFpbihvLm1fbGluZUJveENvbnRhaW4pCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRB
VElPTikKICAgICAsIG1faW1hZ2VPcmllbnRhdGlvbihvLm1faW1hZ2VPcmllbnRhdGlvbikKQEAg
LTI1MSw2ICsyNTcsOSBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0o
Y29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgdGV4dEVt
cGhhc2lzTWFyayA9PSBvLnRleHRFbXBoYXNpc01hcmsKICAgICAgICAgJiYgdGV4dEVtcGhhc2lz
UG9zaXRpb24gPT0gby50ZXh0RW1waGFzaXNQb3NpdGlvbgogICAgICAgICAmJiBtX3RleHRPcmll
bnRhdGlvbiA9PSBvLm1fdGV4dE9yaWVudGF0aW9uCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAg
ICAgICAgJiYgbV90ZXh0SW5kZW50TGluZSA9PSBvLm1fdGV4dEluZGVudExpbmUKKyNlbmRpZgog
ICAgICAgICAmJiBtX2xpbmVCb3hDb250YWluID09IG8ubV9saW5lQm94Q29udGFpbgogICAgICAg
ICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5nCiAgICAgICAgICYm
IGxvY2FsZSA9PSBvLmxvY2FsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggNTE0OTVmZTdmZmVmM2Q4N2I5
ZjY1NmUwNmIxMzI3NWRmZWIzNTQxNi4uMjU2NmRlOTgxNDBhNjJhNjgwZWNkOGU5YjkwZDhjMzYx
ZGJhZGNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIHRleHRFbXBoYXNpc01hcmsgOiAzOyAvLyBUZXh0RW1waGFzaXNNYXJrCiAgICAg
dW5zaWduZWQgdGV4dEVtcGhhc2lzUG9zaXRpb24gOiAxOyAvLyBUZXh0RW1waGFzaXNQb3NpdGlv
bgogICAgIHVuc2lnbmVkIG1fdGV4dE9yaWVudGF0aW9uIDogMjsgLy8gVGV4dE9yaWVudGF0aW9u
CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICB1bnNpZ25lZCBtX3RleHRJbmRlbnRMaW5lIDog
MTsgLy8gVGV4dEluZGVudEVhY2hMaW5lCisjZW5kaWYKICAgICB1bnNpZ25lZCBtX2xpbmVCb3hD
b250YWluOiA3OyAvLyBMaW5lQm94Q29udGFpbgogICAgIC8vIENTUyBJbWFnZSBWYWx1ZXMgTGV2
ZWwgMwogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzgyZTc2YjYz
NjRlNzUxNTM0ZDNkNTA2MTg3OTA5YTAwMWNlOGVlZC4uZWU5MDQ4Y2RkNmY5Mjk4YjJjYjgwZTUx
ZjI1MzExNWY3MTFlYTExMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTE4ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorCisgICAgICAgICJlYWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBD
U1MzLgorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGlu
ZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1pbmRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Q29t
cHV0ZWRTdHlsZSk6CisgICAgICAgIChvd25WYWx1ZVRlc3QpOgorICAgICAgICAoaW5oZXJpdGFu
Y2VUZXN0KToKKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENv
bXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanM6
IEFkZGVkLgorICAgICAgICAodGVzdEVsZW1lbnRTdHlsZSk6CisgICAgICAgICh0ZXN0Q29tcHV0
ZWRTdHlsZSk6CisgICAgICAgICh2YWx1ZVNldHRpbmdUZXN0KToKKyAgICAgICAgKGludmFsaWRW
YWx1ZVNldHRpbmdUZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMy0xOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBmYXN0L2Rv
bS9pY29uLXVybC1wcm9wZXJ0eS5odG1sIGZhaWxzIG9uIE1hYyBhZnRlciByMTQ2MTczCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U2Y2E4NDNkMTEyNGUwOGFmZGU2ODFmNjJkYTFjM2RhMWI0MjhiOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExMCBAQAorVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9w
ZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWU6CitQQVNTIGNvbXB1dGVkU3R5bGUu
dGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzBweCcKKworVmFsdWUgJzEwZW0nOgorUEFTUyBlLnN0eWxlLnRl
eHRJbmRlbnQgaXMgJzEwZW0nCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMTBlbScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBw
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcxMDBweCcKKworVmFsdWUgJzIwZXgnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzIw
ZXgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBl
eCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCcKKworVmFs
dWUgJzUwJSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnNTAlJworUEFTUyBlLnN0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzUwJScKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICc1MCUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnNTAlJworCitWYWx1ZSAnMTBlbSAtd2Via2l0LWVhY2gt
bGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGlu
ZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVt
IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEw
MHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAn
LXdlYmtpdC1lYWNoLWxpbmUgMTBlbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBl
bSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcxMGVtIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxl
LnRleHRJbmRlbnQgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0
eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFj
aC1saW5lJworCitWYWx1ZSAnMjBleCAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUu
dGV4dEluZGVudCBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJwor
UEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5l
JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMjBl
eCc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScK
K1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13
ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4
IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUo
J3RleHQtaW5kZW50JykgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnMzAl
IC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdl
YmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJ
bmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCisK
K1ZhbHVlICctd2Via2l0LWVhY2gtbGluZSAzMCUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQg
aXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVk
U3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRl
ZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVh
Y2gtbGluZScKKworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBtJzoKK1BBU1MgZS5zdHlsZS50
ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcK
K1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcw
cHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICcxMG0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFT
UyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVu
dCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5l
IDEwbSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdl
dFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHls
ZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBlbSAx
MGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxl
LnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0
LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0
eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAn
MTBlbSAtd2Via2l0LWVhY2gtbGluZSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlz
ICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFs
aWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1saW5l
JzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRl
eHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRl
eHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4
dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmQ0ZTA5NGQwNGVh
MzcwNTVhOGUyMWViNGFmZTM0MjRiYzEzOWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENv
bXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIxIEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50IGlz
IHByb3Blcmx5IGluaGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitWYWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcxMHB4JworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEw
cHggLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNl
c3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVl
IG9mIGFuY2VzdG9yIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJywgd2hpbGUgY2hpbGQgaXMg
JzEwcHgnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzEwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1p
bmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVy
aXRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0MWI5NjQ3MTA3OGQyN2UxNjJkODMwYTM5MGJlYmEzNjU4
YzliNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImFuY2VzdG9yIj48
ZGl2IGlkPSJjaGlsZCI+PC9kaXY+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMiPjwvc2NyaXB0PgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNDI4MGEyMGUxODBjMjZmNzAyNmU1YzI3OTE1YWQ2ZDBlN2IxNGMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApAQCAt
MCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiIHN0eWxlPSJmb250OiAxMHB4IEFoZW07Ij48
L2Rpdj4KKyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRl
ZC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhl
cml0ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzN2NmOTVlNDc0ZjUwOWU2MmQwYTI2YjU1NWQwNzk3ZmVj
ZDEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gdGVz
dENvbXB1dGVkU3R5bGUoYV92YWx1ZSwgY192YWx1ZSkKK3sKKyAgICBzaG91bGRCZSgid2luZG93
LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykiLCAgIiciICsgYV92YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICInIiAr
IGNfdmFsdWUgKyAiJyIpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gb3duVmFsdWVU
ZXN0KGFfdmFsdWUsIGNfdmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9yIGlz
ICciICsgYV92YWx1ZSArICInLCB3aGlsZSBjaGlsZCBpcyAnIiArIGNfdmFsdWUgKyAiJzoiKTsK
KyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0gYV92YWx1ZTsKKyAgICBjaGlsZC5zdHls
ZS50ZXh0SW5kZW50ID0gY192YWx1ZTsKKyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhX3ZhbHVlLCBj
X3ZhbHVlKTsKK30KKworZnVuY3Rpb24gaW5oZXJpdGFuY2VUZXN0KGFfdmFsdWUpCit7CisgICAg
ZGVidWcoIlZhbHVlIG9mIGFuY2VzdG9yIGlzICciICsgYV92YWx1ZSArICInOiIpOworICAgIGFu
Y2VzdG9yLnN0eWxlLnRleHRJbmRlbnQgPSBhX3ZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0eWxl
KGFfdmFsdWUsIGFfdmFsdWUpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0
aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBpbmhlcml0ZWQgdG8gdGhl
IGNoaWxkLiIpOworCithbmNlc3RvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbmNlc3Rv
cicpOworY2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQnKTsKKworaW5oZXJp
dGFuY2VUZXN0KCIxMHB4Iik7Citpbmhlcml0YW5jZVRlc3QoIjEwcHggLXdlYmtpdC1lYWNoLWxp
bmUiKTsKKworb3duVmFsdWVUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1saW5lIiwgIjEwcHgiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYjQzMTk1N2RmZmFmNmJkOWRiNzM5YWUwNTM1ZDc0NWNhMWQzYzQwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LmpzCkBAIC0wLDAgKzEsNTkgQEAKK2Z1bmN0aW9uIHRlc3RFbGVtZW50U3R5bGUocHJvcGVy
dHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAgIHNob3VsZEJlKCJlLnN0eWxlLiIgKyBw
cm9wZXJ0eUpTLCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImUuc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIp
OworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShwcm9wZXJ0eUpTLCBwcm9wZXJ0eUNT
UywgdmFsdWUpCit7CisgICAgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGUsIG51bGwpOworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLiIgKyBwcm9wZXJ0eUpTLCAi
JyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFsdWUgKyAiJyIpOworfQor
CitmdW5jdGlvbiB2YWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBleHBlY3RlZFZhbHVlLCBjb21wdXRl
ZFZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSAnIiArIHZhbHVlICsgIic6Iik7CisgICAgZS5z
dHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4dEluZGVu
dCIsICJ0ZXh0LWluZGVudCIsIGV4cGVjdGVkVmFsdWUpOworICAgIHRlc3RDb21wdXRlZFN0eWxl
KCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgY29tcHV0ZWRWYWx1ZSk7CisgICAgZGVidWco
JycpOworfQorCitmdW5jdGlvbiBpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCh2YWx1ZSwgZGVmYXVs
dFZhbHVlKQoreworICAgIGRlYnVnKCJJbnZhbGlkIHZhbHVlIHRlc3QgLSAnIiArIHZhbHVlICsg
Iic6Iik7CisgICAgZS5zdHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRT
dHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7CisgICAgdGVz
dENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQiLCBkZWZhdWx0VmFsdWUp
OworICAgIGRlYnVnKCcnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2hlY2sgdGhh
dCB0ZXh0LWluZGVudCBwYXJzZXMgcHJvcGVybHkgdGhlIHByb3BlcnRpZXMgZnJvbSBDU1MzIFRl
eHQuIik7CisKK2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworCitkZWJ1Zygi
VGVzdCB0aGUgaW5pdGlhbCB2YWx1ZToiKTsKK3Rlc3RDb21wdXRlZFN0eWxlKCJ0ZXh0SW5kZW50
IiwgInRleHQtaW5kZW50IiwgJzBweCcpOworZGVidWcoJycpOworCit2YWx1ZVNldHRpbmdUZXN0
KCcxMGVtJywgJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXgnLCAnMjBl
eCcsJzIwMHB4Jyk7Cit2YWx1ZVNldHRpbmdUZXN0KCc1MCUnLCAnNTAlJywnNTAlJyk7Cit2YWx1
ZVNldHRpbmdUZXN0KCcxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgJzEwZW0gLXdlYmtpdC1lYWNo
LWxpbmUnLCAnMTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13
ZWJraXQtZWFjaC1saW5lIDEwZW0nLCAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcxMDBweCAt
d2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnMjBleCAtd2Via2l0LWVhY2gt
bGluZScsICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJywgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5l
Jyk7Cit2YWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZSAyMGV4JywgJzIwZXggLXdl
YmtpdC1lYWNoLWxpbmUnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGlu
Z1Rlc3QoJzMwJSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnLCAn
MzAlIC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gt
bGluZSAzMCUnLCAnMzAlIC13ZWJraXQtZWFjaC1saW5lJywgJzMwJSAtd2Via2l0LWVhY2gtbGlu
ZScpOworZGVidWcoJycpOworCitkZWZhdWx0VmFsdWUgPSAnMHB4JworZS5zdHlsZS50ZXh0SW5k
ZW50ID0gZGVmYXVsdFZhbHVlOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwbScsIGRlZmF1
bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBtIC13ZWJraXQtZWFjaC1saW5l
JywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gt
bGluZSAxMG0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0g
MTBlbScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1l
YWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0g
LXdlYmtpdC1lYWNoLWxpbmUgMTBlbScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0
aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1
bHRWYWx1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA3MDk2ODc5NGFhZTg4OTFlMjlkOGU3NjJmODNmMGVjZmRkZWY4OGZkLi4zZGNj
YjlhM2QzYWVmZDE5NjVmNzRmYjAyZjA2ODhlNGJhMGQ4YjQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMyw2ICsyMzMsNyBAQCB3
ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0
IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdl
YmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Vi
a2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJr
aXQub3JnL2IvMTA5MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBDaHJv
bWl1bSBkb2VzIG5vdCBzdXBwb3J0IHNtYXJ0IHBhc3RpbmcgaW4gdGV4dCBjb250cm9scyB5ZXQu
CiB3ZWJraXQub3JnL2IvNjA4MzAgZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRl
eHQtY29udHJvbC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGE4YmNjM2QwMTFmODlhMzk3OWZjZmFiYWRiZWQ5ZjllMzg4NDFiNWUuLjBjN2JjMjEx
ZDkwNjE2NzI1N2Q4NzQwNjQzNGY3YjkyMmQ0YTMxYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTUyLDYgKzExNTIsNyBAQCB3ZWJraXQub3JnL2Iv
ODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMg
bm90IHlldCBlbmFibGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81
ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2
MTczIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5
MDIxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBPdXIgc2xvdyB0ZXN0cywg
aW4gYWxwaGFiZXRpY2FsIG9yZGVyLgogd2Via2l0Lm9yZy9iLzU3NjcyIGh0dHAvdGVzdHMvbG9j
YWwvZmlsZWFwaS9zZW5kLXNsaWNlZC1kcmFnZ2VkLWZpbGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgx
ZDkyNDczNjllYjBiM2U5YWIwMmYwZmM3Yzc2YTMzMjZkNjg3NWEuLmI1MDcyZGZkMDRlN2I2NTE5
N2ZlNTU0ZWJhZTEzNmQ5M2E0NDA4YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0LTQuOC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTQu
OC9UZXN0RXhwZWN0YXRpb25zCkBAIC02OTksNiArNjk5LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUy
IGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5
ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEg
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzEwOTAyMSBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50CiAKICMgTmVlZHMgcmViYXNlbGluZSBhZnRl
ciBidWcgODY0NDEKICMgZmFpbGluZyBuZXcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2QxZTA5Nzc4YWUwOTc4NjQ3NTUyZjNhYmQ3
Y2NhZDNiYTUwYmViMi4uYjQ3YzU3MDdhZDc2ODM3MmJjMGNkNmU1MDI4ZDhhNzlkYzI2ZDU5MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU3
OTYsNiArNTc5Niw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRh
dGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJM
RV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMDkwMjEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudAogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcg
bmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBk
OThkNTNmMTNiZjFkNzBjNDM1ZGM5ZDZjOTg0ZjdiODY0ODNiYjU2Li4yMDNmMDk2YzBhNTZkZmQy
NTc5MzY4ZDlmYjg0MjQ1NDM0YTFkYjBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTM0OSw2ICszNDksNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9j
c3MvaW1hZ2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFi
bGVkIChuZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTA5MDIxIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQKIAogIyBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc3Vw
cG9ydCBmb3IgSW5zcGVjdG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKSBpbiBwbGF0
Zm9ybXMgb3RoZXIgdGhhbiBDaHJvbWl1bQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODI4ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNTAyMDViMjY1MjdlNmUyOGJmNWE1YzdlODk4YmViMGNjMTJjNWVkZS4uZjNhMWY5
YmQyNWM4YzcwODRjOWQ1ZjM5MDYyNDIzMThiMGQyN2MwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0OTAsNiArMjQ5MCw4IEBAIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWFsaWduCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21w
dXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1jb2xvci5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC11
bmRlcmxpbmUtcG9zaXRpb24uaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0
bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKIAogIyBBQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcgaXMgZGlzYWJsZWQgb24gV2luZG93cwogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Ny
b2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjYwMWViYTYyNjI4YmJkMDFhZDk4NTlkYThm
OTFjMTkzNjZhYzIzOC4uODgzZjE1NWU1NDMyNDJlY2EzNzVmMjk3YmU1ZmFhMDA3NTgzOWUyNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yOTc3LDYgKzI5NzcsOCBAQCB3ZWJraXQub3JnL2IvMzk3MjUgZmFzdC9ldmVudHMvZHJhZy1h
bmQtZHJvcC1hdXRvc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWdu
LWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRtbAog
ZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5k
ZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMgU3BlbGxj
aGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0Lm9yZy9iLzEwODM3MCBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193986</attachid>
            <date>2013-03-19 22:33:04 -0700</date>
            <delta_ts>2013-03-20 15:44:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130320142848.patch</filename>
            <type>text/plain</type>
            <size>39918</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTczZjk2MzkyZTNjYmQw
MTAxZjA3Yjc1ZTVjNDczMjVlMzY3YmYxZC4uNjZjN2E3MDRmNThmYmJkM2YxYWNjMjVhNjA5NGY5
OTI4MGJhZmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAzLTE5ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorIAorICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorIAorICAgICAg
ICAiZWFjaC1saW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAg
aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKyAKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyB0aGUgcGFyc2luZyBwYXJ0IHRvIHN1cHBvcnQgZWFjaC1saW5lIHZhbHVl
IGZvciB0ZXh0LWluZGVudC4KKyAKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0
aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5l
ciBhcyB3ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9l
cworICAgICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKyAK
KyAgICAgICAgSXQncyBwcmVmaXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKyAK
KyAgICAgICAgVGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICAgICBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtaW5kZW50KSByZXR1cm5zIENTU1ByaW1pdGl2
ZVZhbHVlIHdoZW4gdGV4dC1pbmRlbnQgaGFzIG9ubHkgPGxlbmd0aD4KKyAgICAgICAgICAgIG9y
IDxwZXJjZW50YWdlPiB2YWx1ZSwgYnV0IHJldHVybnMgQ1NTVmFsdWVMaXN0IHdoZW4gdGV4dC1p
bmRlbnQgYWxzbyBoYXMgLXdlYmtpdC1lYWNoLWxpbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRCk6IFJl
bW92ZWQgQ1NTUHJvcGVydHlUZXh0SW5kZW50IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRl
eHRJbmRlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICAg
ICBQYXJzZWQgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHdpdGggLXdlYmtpdC1lYWNoLWxpbmUg
Zm9yIHRleHQtaW5kZW50LgorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFk
ZGVkIG5ldyAtd2Via2l0LWVhY2gtbGluZSBrZXl3b3JkLgorICAgICAgICAqIGNzcy9TdHlsZUJ1
aWxkZXIuY3BwOgorICAgICAgICAoQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseUluaGVyaXRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbml0
aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFw
cGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNy
ZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxk
ZXIpOgorICAgICAgICAgICAgQWRkZWQgY29kZXMgdG8gaGFuZGxlIGFwcGx5aW5nIHRleHQtaW5k
ZW50IG9mZnNldCBhbmQgLXdlYmtpdC1lYWNoLWxpbmUgb3B0aW9uIHRvIG91ciBzdHlsZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6IEFkZGVkIGVudW0gVGV4dEluZGVudExpbmUuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOiBBZGRlZCBtX3RleHRJbmRlbnRMaW5l
LgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICAgICBBZGRlZCB0
aGUgdXN1YWwgZ2V0dGVyIC8gc2V0dGVyIC8gaW5pdGlhbCBtZXRob2RzIGZvciBtX3RleHRJbmRl
bnRMaW5lLgorCiAyMDEzLTAzLTE5ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Eu
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgZG8gbm90IHVzZSBzdHJpbmcgcmVmZXJlbmNlIGZvciBl
bnVtIHN1cHBvcnQgaW4gQ29kZUdlbmVyYXRvckpTLnBtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDU5YjkzMGRkZGM1MjMy
N2M0Yjc3ZGJmYzI2NWZiZmYxZmUyMjRmNGQuLjY1MTQwZjc1ZTIzY2VjYWJmYjU4ZmVhMGJkNDdm
ODllNzMwYzY3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMTkxLDggKzIxOTEsMTggQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnQKICAgICAgICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50
OgotICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5
bGUtPnRleHRJbmRlbnQoKSwgc3R5bGUuZ2V0KCkpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dEluZGVudDogeworICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB0ZXh0SW5kZW50ID0g
em9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHls
ZS5nZXQoKSk7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgICAgIGlmIChzdHlsZS0+
dGV4dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50RWFjaExpbmUpIHsKKyAgICAgICAgICAgICAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNl
cGFyYXRlZCgpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh0ZXh0SW5kZW50LnJlbGVh
c2UoKSk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAg
ICAgICByZXR1cm4gdGV4dEluZGVudC5yZWxlYXNlKCk7CisgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVRleHRTaGFkb3c6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JTaGFk
b3coc3R5bGUtPnRleHRTaGFkb3coKSwgcHJvcGVydHlJRCwgc3R5bGUuZ2V0KCkpOwogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
aW5kZXggMGFhZDI1NTAwOTMwN2FjMjg3OTJhMWUwMzk1ZjVkMDNmMjUwMTczNC4uZjU0Zjg4ODVi
MDJmMjA3YmRhMWFmNzc5MzZmYTk0NzYzMTRlZWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTU5NCw3ICs1OTQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTaW1wbGVMZW5ndGhQ
cm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgYm9vbCYgYWNjZQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlNYXJnaW5SaWdodDoKICAgICBjYXNlIENTU1Byb3BlcnR5TWFyZ2luVG9wOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlSaWdodDoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEluZGVu
dDoKICAgICBjYXNlIENTU1Byb3BlcnR5VG9wOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJnaW5BZnRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlOgpAQCAt
MjE4NSw4ICsyMTg0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2
YWxpZFVuaXQodmFsdWUsIEZMZW5ndGgpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ1NT
UHJvcGVydHlUZXh0SW5kZW50OiAgICAgICAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8
IGluaGVyaXQKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoIWlkICYmIHZhbGlkVW5pdCh2YWx1
ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6
CisgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VUZXh0SW5kZW50KCk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6ICAgICAgICAgIC8vLy8gPHBhZGRp
bmctd2lkdGg+IHwgaW5oZXJpdApAQCAtOTI0MCw2ICs5MjM5LDUwIEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQo
KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZVNwYWNlU2VwYXJhdGVkKCk7CisKKyAgICAvLyA8bGVuZ3RoPiB8IDxwZXJjZW50YWdlPiB8IGlu
aGVyaXQKKyAgICBpZiAobV92YWx1ZUxpc3QtPnNpemUoKSA9PSAxKSB7CisgICAgICAgIENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgICAgIGlmICgh
dmFsdWUtPmlkICYmIHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkgeworICAg
ICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSkp
OworICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgIHJldHVybiBs
aXN0LnJlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworI2lmIEVOQUJMRShDU1MzX1RFWFQp
CisgICAgLy8gVGhlIGNhc2Ugd2hlcmUgdGV4dC1pbmRlbnQgaGFzIG9ubHkgPGxlbmd0aD4ob3Ig
PHBlcmNlbnRhZ2U+KSB2YWx1ZQorICAgIC8vIGlzIGhhbmRsZWQgYWJvdmUgaWYgc3RhdGVtZW50
IGV2ZW4gdGhvdWdoIENTUzNfVEVYVCBpcyBlbmFibGVkLgorCisgICAgLy8gWyBbIDxsZW5ndGg+
IHwgPHBlcmNlbnRhZ2U+IF0gJiYgLXdlYmtpdC1lYWNoLWxpbmUgXSB8IGluaGVyaXQKKyAgICBp
ZiAobV92YWx1ZUxpc3QtPnNpemUoKSAhPSAyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIENT
U1BhcnNlclZhbHVlKiBmaXJzdFZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKKyAgICBD
U1NQYXJzZXJWYWx1ZSogc2Vjb25kVmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgIENT
U1BhcnNlclZhbHVlKiBsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSA9IDA7CisKKyAgICAvLyBbIDxs
ZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gLXdlYmtpdC1lYWNoLWxpbmUKKyAgICBpZiAodmFsaWRV
bml0KGZpcnN0VmFsdWUsIEZMZW5ndGggfCBGUGVyY2VudCkgJiYgc2Vjb25kVmFsdWUtPmlkID09
IENTU1ZhbHVlV2Via2l0RWFjaExpbmUpCisgICAgICAgIGxlbmd0aE9yUGVyY2VudGFnZVZhbHVl
ID0gZmlyc3RWYWx1ZTsKKyAgICAvLyAtd2Via2l0LWVhY2gtbGluZSBbIDxsZW5ndGg+IHwgPHBl
cmNlbnRhZ2U+IF0KKyAgICBlbHNlIGlmIChmaXJzdFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVdlYmtp
dEVhY2hMaW5lICYmIHZhbGlkVW5pdChzZWNvbmRWYWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSkK
KyAgICAgICAgbGVuZ3RoT3JQZXJjZW50YWdlVmFsdWUgPSBzZWNvbmRWYWx1ZTsKKworICAgIGlm
IChsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSkgeworICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRl
UHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGxlbmd0aE9yUGVyY2VudGFnZVZhbHVlKSk7CisgICAgICAg
IGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFs
dWVXZWJraXRFYWNoTGluZSkpOworICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAg
ICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gMDsK
K30KKwogYm9vbCBDU1NQYXJzZXI6OnBhcnNlTGluZUJveENvbnRhaW4oYm9vbCBpbXBvcnRhbnQp
CiB7CiAgICAgTGluZUJveENvbnRhaW4gbGluZUJveENvbnRhaW4gPSBMaW5lQm94Q29udGFpbk5v
bmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggYzM4ZTdmOTNmNjUzYTY4ZWIzZDRlNjgxYjhl
ZTY0N2FjMDdhZTVhMS4uYmU2MWE0MWZiMGMwMDBjMTVmN2E0ZjQxY2UzZjZiMGJkY2M0YzgxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjY3LDYgKzI2Nyw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHBhcnNlVGV4dFVuZGVybGluZVBvc2l0aW9uKGJvb2wgaW1wb3J0YW50KTsKICNlbmRpZiAv
LyBDU1MzX1RFWFQKIAorICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlVGV4dEluZGVudCgp
OworICAgIAogICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7CiAg
ICAgYm9vbCBwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiwgQ2FsY3VsYXRpb25QZXJt
aXR0ZWRWYWx1ZVJhbmdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpp
bmRleCBmMWU2YjQ3MzUzMGE2Y2ZiZThmM2YzNGQ0MmRkOTg2ZTUxNGY0YjNhLi5kZTg5MzBmNWE5
MmRjMTNkZmM5OTQxNTUyN2UzMzIyNDZiYTVjNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbgpAQCAtMTAwOSwzICsxMDA5LDkgQEAgc25hcAogZHJhZwogbm8tZHJhZwog
I2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpICYmIEVOQUJMRV9DU1MzX1RF
WFQKKy8vIHRleHQtaW5kZW50Cistd2Via2l0LWVhY2gtbGluZQorI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggZjVjMDA2MzBkZTZlNzcwODBkMDQ3NjFhNjRmOTQy
MGI4ZjQzZTc0Zi4uZDJiNDc2NDZjY2NkOGEyMzYyNjE3ZGY4MWZkYjI2MDkzYTVmYTE2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE5MzMsNiArMTkzMyw1NiBAQCBwdWJs
aWM6CiB9OwogI2VuZGlmCiAKK2NsYXNzIEFwcGx5UHJvcGVydHlUZXh0SW5kZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHls
ZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQorICAgIHsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+
c3R5bGUoKS0+c2V0VGV4dEluZGVudChzdHlsZVJlc29sdmVyLT5wYXJlbnRTdHlsZSgpLT50ZXh0
SW5kZW50KCkpOworI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKHN0eWxlUmVzb2x2ZXItPnBhcmVudFN0eWxlKCkt
PnRleHRJbmRlbnRMaW5lKCkpOworI2VuZGlmCisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYXBw
bHlJbml0aWFsVmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZl
cikKKyAgICB7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnQo
UmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50KCkpOworI2lmIEVOQUJMRShDU1MzX1RFWFQp
CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFJlbmRl
clN0eWxlOjppbml0aWFsVGV4dEluZGVudExpbmUoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBz
dGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxl
UmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUtPmlz
VmFsdWVMaXN0KCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gWyA8bGVuZ3Ro
PiB8IDxwZXJjZW50YWdlPiBdIC13ZWJraXQtZWFjaC1saW5lCisgICAgICAgIC8vIFRoZSBvcmRl
ciBpcyBndWFyYW50ZWVkLiBTZWUgQ1NTUGFyc2VyOjpwYXJzZVRleHRJbmRlbnQuCisgICAgICAg
IC8vIFRoZSBzZWNvbmQgdmFsdWUsIC13ZWJraXQtZWFjaC1saW5lIGlzIGhhbmRsZWQgb25seSB3
aGVuIENTUzNfVEVYVCBpcyBlbmFibGVkLgorCisgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVM
aXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKSk7CisgICAgICAgIExlbmd0
aCBsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5jb252ZXJ0VG9MZW5n
dGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgQ2FsY3VsYXRl
ZENvbnZlcnNpb24gfCBWaWV3cG9ydFBlcmNlbnRhZ2VDb252ZXJzaW9uPihzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0eWxlKCksIHN0eWxlUmVzb2x2
ZXItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgICAgIEFTU0VSVCghbGVuZ3RoT3JQ
ZXJjZW50YWdlVmFsdWUuaXNVbmRlZmluZWQoKSk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCktPnNldFRleHRJbmRlbnQobGVuZ3RoT3JQZXJjZW50YWdlVmFsdWUpOworCisjaWYgRU5B
QkxFKENTUzNfVEVYVCkKKyAgICAgICAgQVNTRVJUKHZhbHVlTGlzdC0+bGVuZ3RoKCkgPD0gMik7
CisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBlYWNoTGluZVZhbHVlID0gc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZUxpc3QtPml0ZW0oMSkpOworICAgICAgICBpZiAoZWFj
aExpbmVWYWx1ZSkgeworICAgICAgICAgICAgQVNTRVJUKGVhY2hMaW5lVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSk7CisgICAgICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50TGluZShUZXh0SW5kZW50RWFjaExpbmUpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRl
bnRMaW5lKFRleHRJbmRlbnRGaXJzdExpbmUpOworI2VuZGlmCisgICAgfQorCisgICAgc3RhdGlj
IFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQ
cm9wZXJ0eUhhbmRsZXIoJmFwcGx5SW5oZXJpdFZhbHVlLCAmYXBwbHlJbml0aWFsVmFsdWUsICZh
cHBseVZhbHVlKTsKKyAgICB9Cit9OworCiBjb25zdCBTdHlsZUJ1aWxkZXImIFN0eWxlQnVpbGRl
cjo6c2hhcmVkU3R5bGVCdWlsZGVyKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0eWxl
QnVpbGRlciwgc3R5bGVCdWlsZGVySW5zdGFuY2UsICgpKTsKQEAgLTIwNTAsNyArMjEwMCw3IEBA
IFN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlXZWJraXRUZXh0QWxpZ25MYXN0LCBBcHBseVByb3BlcnR5RGVmYXVsdDxUZXh0QWxp
Z25MYXN0LCAmUmVuZGVyU3R5bGU6OnRleHRBbGlnbkxhc3QsIFRleHRBbGlnbkxhc3QsICZSZW5k
ZXJTdHlsZTo6c2V0VGV4dEFsaWduTGFzdCwgVGV4dEFsaWduTGFzdCwgJlJlbmRlclN0eWxlOjpp
bml0aWFsVGV4dEFsaWduTGFzdD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uLCBBcHBseVByb3Bl
cnR5VGV4dFVuZGVybGluZVBvc2l0aW9uOjpjcmVhdGVIYW5kbGVyKCkpOwogI2VuZGlmIC8vIENT
UzNfVEVYVAotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIEFw
cGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6
OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQ+OjpjcmVhdGVI
YW5kbGVyKCkpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQs
IEFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8
VGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6OnRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAm
UmVuZGVyU3R5bGU6OnNldFRleHRPdmVyZmxvdywgVGV4dE92ZXJmbG93LCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxUZXh0T3ZlcmZsb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmcsIEFwcGx5UHJvcGVydHlGb250PFRleHRS
ZW5kZXJpbmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjp0ZXh0UmVuZGVyaW5nTW9kZSwgJkZvbnRE
ZXNjcmlwdGlvbjo6c2V0VGV4dFJlbmRlcmluZ01vZGUsIEF1dG9UZXh0UmVuZGVyaW5nPjo6Y3Jl
YXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlUZXh0VHJh
bnNmb3JtLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxl
Ojp0ZXh0VHJhbnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUZXh0VHJh
bnNmb3JtLCBFVGV4dFRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dFRyYW5zZm9y
bT46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAppbmRleCA1YjY3NmVlNzYyMmY4YTQ1NDJmZWNiZjUxNjE5YTRjZmZl
OTA5NWE1Li45MDliNDdlOTkwMDdjZTQxZTFjZDEzZDQwMzk1OThjNTkyODU5OTRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQ4MSw2
ICs0ODEsOSBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgIGlmIChyYXJlSW5oZXJpdGVk
RGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAg
aWYgKHJhcmVJbmhlcml0ZWREYXRhLT5oaWdobGlnaHQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWRE
YXRhLT5oaWdobGlnaHQKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQg
IT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5pbmRlbnQKKyNpZiBFTkFCTEUoQ1NTM19URVhU
KQorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUgIT0g
b3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAg
ICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20gIT0gb3RoZXItPnJh
cmVJbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZVpvb20KICAgICAgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT53b3JkQnJlYWsgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT53b3JkQnJl
YWsKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAgIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5vdmVyZmxvd1dyYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZjRjOTY5OWQ5NmE0ZDM2NjVjODQ4MWJk
YmU2MGU1Zjg4NTM2NTNmMy4uM2FmZmEzZGZlNzNjODA0ZmNmYTJhY2ZhYTE1MzUzNDBiZThiNmFh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAg
LTU2OCw2ICs1NjgsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIExlbmd0aCB0ZXh0SW5kZW50
KCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPmluZGVudDsgfQorI2lmIEVOQUJM
RShDU1MzX1RFWFQpCisgICAgVGV4dEluZGVudExpbmUgdGV4dEluZGVudExpbmUoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxUZXh0SW5kZW50TGluZT4ocmFyZUluaGVyaXRlZERhdGEtPm1f
dGV4dEluZGVudExpbmUpOyB9CisjZW5kaWYKICAgICBFVGV4dEFsaWduIHRleHRBbGlnbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVUZXh0QWxpZ24+KGluaGVyaXRlZF9mbGFncy5fdGV4
dF9hbGlnbik7IH0KICAgICBFVGV4dFRyYW5zZm9ybSB0ZXh0VHJhbnNmb3JtKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRUcmFuc2Zvcm0+KGluaGVyaXRlZF9mbGFncy5fdGV4dF90
cmFuc2Zvcm0pOyB9CiAgICAgRVRleHREZWNvcmF0aW9uIHRleHREZWNvcmF0aW9uc0luRWZmZWN0
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHREZWNvcmF0aW9uPihpbmhlcml0ZWRf
ZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMpOyB9CkBAIC0xMTMyLDYgKzExMzUsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRUZXh0SW5k
ZW50KExlbmd0aCB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGluZGVudCwgdik7IH0K
KyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHZvaWQgc2V0VGV4dEluZGVudExpbmUoVGV4dElu
ZGVudExpbmUgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX3RleHRJbmRlbnRMaW5l
LCB2KTsgfQorI2VuZGlmCiAgICAgdm9pZCBzZXRUZXh0QWxpZ24oRVRleHRBbGlnbiB2KSB7IGlu
aGVyaXRlZF9mbGFncy5fdGV4dF9hbGlnbiA9IHY7IH0KICAgICB2b2lkIHNldFRleHRUcmFuc2Zv
cm0oRVRleHRUcmFuc2Zvcm0gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfdHJhbnNmb3JtID0g
djsgfQogICAgIHZvaWQgYWRkVG9UZXh0RGVjb3JhdGlvbnNJbkVmZmVjdChFVGV4dERlY29yYXRp
b24gdikgeyBpbmhlcml0ZWRfZmxhZ3MuX3RleHRfZGVjb3JhdGlvbnMgfD0gdjsgfQpAQCAtMTYx
MSw2ICsxNjE3LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbE1hcmdpbigp
IHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxQYWRk
aW5nKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlh
bFRleHRJbmRlbnQoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CisjaWYgRU5BQkxFKENTUzNf
VEVYVCkKKyAgICBzdGF0aWMgVGV4dEluZGVudExpbmUgaW5pdGlhbFRleHRJbmRlbnRMaW5lKCkg
eyByZXR1cm4gVGV4dEluZGVudEZpcnN0TGluZTsgfQorI2VuZGlmCiAgICAgc3RhdGljIEVWZXJ0
aWNhbEFsaWduIGluaXRpYWxWZXJ0aWNhbEFsaWduKCkgeyByZXR1cm4gQkFTRUxJTkU7IH0KICAg
ICBzdGF0aWMgc2hvcnQgaW5pdGlhbFdpZG93cygpIHsgcmV0dXJuIDI7IH0KICAgICBzdGF0aWMg
c2hvcnQgaW5pdGlhbE9ycGhhbnMoKSB7IHJldHVybiAyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGUzZGI0
MzE2MDhjNGZjOGJlY2RjY2I1YzQ4ZmM5M2I0NDlhNGZmMDcuLmVhZjc1MTE5N2E2YjE1M2U0Y2Vl
ZmVmMzhlZDQ2ZGJlMmRkYWJhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01MDgsNiArNTA4LDEwIEBAIGVu
dW0gRHJhZ2dhYmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdnYWJsZVJl
Z2lvbkRyYWcsIERyYWdnYWJsZVJlCiAvLyBSZWFzb25hYmxlIG1heGltdW0gdG8gcHJldmVudCBp
bnNhbmUgZm9udCBzaXplcyBmcm9tIGNhdXNpbmcgY3Jhc2hlcyBvbiBzb21lIHBsYXRmb3JtcyAo
c3VjaCBhcyBXaW5kb3dzKS4KIHN0YXRpYyBjb25zdCBmbG9hdCBtYXhpbXVtQWxsb3dlZEZvbnRT
aXplID0gMTAwMDAwMC4wZjsKIAorI2lmIEVOQUJMRShDU1MzX1RFWFQpCitlbnVtIFRleHRJbmRl
bnRMaW5lIHsgVGV4dEluZGVudEZpcnN0TGluZSwgVGV4dEluZGVudEVhY2hMaW5lIH07CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25z
dGFudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDMyM2JiOWQ3ZDI3NGIyZjYwYjVlYTgzOTc5
MmJjNGU4YWY1Y2U4NDQuLjgzMTA4NDQxMjNiZTQyY2JlOTRhNmFjNDEzZDAwN2U3ZDE2NjFhZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3LDYgKzg3LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAgICAgLCB0ZXh0RW1waGFzaXNNYXJrKFRl
eHRFbXBoYXNpc01hcmtOb25lKQogICAgICwgdGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhh
c2lzUG9zaXRpb25PdmVyKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oVGV4dE9yaWVudGF0aW9u
VmVydGljYWxSaWdodCkKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50
TGluZShSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnRMaW5lKCkpCisjZW5kaWYKICAgICAs
IG1fbGluZUJveENvbnRhaW4oUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lQm94Q29udGFpbigpKQog
I2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3JpZW50YXRp
b24oUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZU9yaWVudGF0aW9uKCkpCkBAIC0xNTcsNiArMTYw
LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25z
dCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dEVtcGhhc2lzTWFyayhvLnRl
eHRFbXBoYXNpc01hcmspCiAgICAgLCB0ZXh0RW1waGFzaXNQb3NpdGlvbihvLnRleHRFbXBoYXNp
c1Bvc2l0aW9uKQogICAgICwgbV90ZXh0T3JpZW50YXRpb24oby5tX3RleHRPcmllbnRhdGlvbikK
KyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICwgbV90ZXh0SW5kZW50TGluZShvLm1fdGV4dElu
ZGVudExpbmUpCisjZW5kaWYKICAgICAsIG1fbGluZUJveENvbnRhaW4oby5tX2xpbmVCb3hDb250
YWluKQogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2ltYWdlT3Jp
ZW50YXRpb24oby5tX2ltYWdlT3JpZW50YXRpb24pCkBAIC0yNTEsNiArMjU3LDkgQEAgYm9vbCBT
dHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRl
ZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc01hcmsgPT0gby50ZXh0RW1w
aGFzaXNNYXJrCiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhh
c2lzUG9zaXRpb24KICAgICAgICAgJiYgbV90ZXh0T3JpZW50YXRpb24gPT0gby5tX3RleHRPcmll
bnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgICAgICYmIG1fdGV4dEluZGVudExp
bmUgPT0gby5tX3RleHRJbmRlbnRMaW5lCisjZW5kaWYKICAgICAgICAgJiYgbV9saW5lQm94Q29u
dGFpbiA9PSBvLm1fbGluZUJveENvbnRhaW4KICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcg
PT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBsb2NhbGUgPT0gby5sb2NhbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5oCmluZGV4IDUxNDk1ZmU3ZmZlZjNkODdiOWY2NTZlMDZiMTMyNzVkZmViMzU0MTYu
LjI1NjZkZTk4MTQwYTYyYTY4MGVjZDhlOWI5MGQ4YzM2MWRiYWRjZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aApAQCAtMTAwLDYgKzEwMCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0ZXh0RW1waGFzaXNN
YXJrIDogMzsgLy8gVGV4dEVtcGhhc2lzTWFyawogICAgIHVuc2lnbmVkIHRleHRFbXBoYXNpc1Bv
c2l0aW9uIDogMTsgLy8gVGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICB1bnNpZ25lZCBtX3RleHRP
cmllbnRhdGlvbiA6IDI7IC8vIFRleHRPcmllbnRhdGlvbgorI2lmIEVOQUJMRShDU1MzX1RFWFQp
CisgICAgdW5zaWduZWQgbV90ZXh0SW5kZW50TGluZSA6IDE7IC8vIFRleHRJbmRlbnRFYWNoTGlu
ZQorI2VuZGlmCiAgICAgdW5zaWduZWQgbV9saW5lQm94Q29udGFpbjogNzsgLy8gTGluZUJveENv
bnRhaW4KICAgICAvLyBDU1MgSW1hZ2UgVmFsdWVzIExldmVsIDMKICNpZiBFTkFCTEUoQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE0MTIwMDVjOGE2MTgwNjBhMTlkZTlkZDY0ZDI0MGZh
MWU2NzczZmIuLjUzNTUxNzRiNDRkNTU3OWE2Mzk3NzcxN2U0M2ZhNmViODA0YzExYjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxMy0wMy0xOSAgSmFlaHVuIExpbSAgPGxqYWVodW4ubGltQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtjc3MzLXRleHRdIFBhcnNpbmcgLXdlYmtpdC1lYWNoLWxp
bmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwMjEKKworICAgICAgICAiZWFjaC1s
aW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKworICAgICAgICBSZXZpZXdlZCBi
eSBKdWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1p
bmhlcml0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRD
b21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWlu
aGVyaXRlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Q29tcHV0ZWRTdHlsZSk6CisgICAgICAg
IChvd25WYWx1ZVRlc3QpOgorICAgICAgICAoaW5oZXJpdGFuY2VUZXN0KToKKyAgICAgICAgKiBm
YXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRl
c3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanM6IEFkZGVkLgorICAgICAgICAodGVz
dEVsZW1lbnRTdHlsZSk6CisgICAgICAgICh0ZXN0Q29tcHV0ZWRTdHlsZSk6CisgICAgICAgICh2
YWx1ZVNldHRpbmdUZXN0KToKKyAgICAgICAgKGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTQuOC9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMy0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIHJlYmFzZWxpbmUgYWZ0ZXIgcjE0NjI4NC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZDUwNGVkYTZhNjRmZWMxNmMxMGNiNDE4NTkzOWUzNzMwNWFkMjFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRD
b21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTI4IEBACitUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGV4dC1pbmRlbnQgcGFyc2Vz
IHByb3Blcmx5IHRoZSBwcm9wZXJ0aWVzIGZyb20gQ1NTMyBUZXh0LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZToKK1BBU1MgY29tcHV0ZWRT
dHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitWYWx1ZSAnMTBlbSc6CitQQVNTIGUuc3R5
bGUudGV4dEluZGVudCBpcyAnMTBlbScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0
ZXh0LWluZGVudCcpIGlzICcxMGVtJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMg
JzEwMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykgaXMgJzEwMHB4JworCitWYWx1ZSAnMjBleCc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBp
cyAnMjBleCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcyMGV4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4JworUEFTUyBj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4Jwor
CitWYWx1ZSAnNTAlJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICc1MCUnCitQQVNTIGUu
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnNTAlJworUEFTUyBjb21w
dXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzUwJScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICc1MCUnCisKK1ZhbHVlICdjYWxjKDEwcHggKyAy
MHB4KSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnY2FsYygxMHB4ICsgMjBweCknCitQ
QVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnY2FsYygxMHB4
ICsgMjBweCknCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMzBweCcKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMHB4Jwor
CitWYWx1ZSAnMTBlbSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVu
dCBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVtIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21w
dXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBj
b21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwMHB4IC13
ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbSc6CitQQVNT
IGUuc3R5bGUudGV4dEluZGVudCBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5z
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMGVtIC13ZWJraXQtZWFj
aC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzEwMHB4IC13ZWJraXQt
ZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAnMjBleCAtd2Via2l0
LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMjBleCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQg
aXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworCitW
YWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBp
cyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCd0ZXh0LWluZGVudCcpIGlzICcyMGV4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRl
ZFN0eWxlLnRleHRJbmRlbnQgaXMgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzIwMHB4IC13ZWJr
aXQtZWFjaC1saW5lJworCitWYWx1ZSAnMzAlIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5z
dHlsZS50ZXh0SW5kZW50IGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5l
JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGlu
ZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlz
ICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICctd2Via2l0LWVhY2gtbGluZSAzMCUn
OgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BB
U1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtp
dC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJr
aXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJ2NhbGMoMTBweCAr
IDIwcHgpIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICdj
YWxjKDEwcHggKyAyMHB4KSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgZS5zdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICdjYWxjKDEwcHggKyAyMHB4KSAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICczMHB4IC13ZWJraXQt
ZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzMwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlICctd2Via2l0LWVhY2gt
bGluZSBjYWxjKDEwcHggKyAyMHB4KSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnY2Fs
YygxMHB4ICsgMjBweCkgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnY2FsYygxMHB4ICsgMjBweCkgLXdlYmtpdC1lYWNo
LWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMzBweCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICczMHB4IC13ZWJraXQtZWFjaC1saW5lJworCisKK0ludmFsaWQgdmFsdWUgdGVzdCAt
ICcxMG0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5
bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJzEwbSAt
d2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFT
UyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRl
c3QgLSAnLXdlYmtpdC1lYWNoLWxpbmUgMTBtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlz
ICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFs
aWQgdmFsdWUgdGVzdCAtICcxMGVtIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
JzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcw
cHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRl
ZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworSW52YWxp
ZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5k
ZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisK
K0ludmFsaWQgdmFsdWUgdGVzdCAtICcxMGVtIC13ZWJraXQtZWFjaC1saW5lIDEwZW0nOgorUEFT
UyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVu
dCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5k
ZW50JykgaXMgJzBweCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5l
IDEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzBw
eCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgn
CitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0
eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRmZDRlMDk0ZDA0ZWEzNzA1NWE4ZTIxZWI0YWZlMzQyNGJjMTM5Y2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMgdGVzdHMgY2hlY2sgdGhhdCB0aGUg
dmFsdWUgb2YgdGV4dC1pbmRlbnQgaXMgcHJvcGVybHkgaW5oZXJpdGVkIHRvIHRoZSBjaGlsZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1ZhbHVlIG9mIGFuY2VzdG9yIGlzICcx
MHB4JzoKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5
VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEwcHgnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworCitW
YWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Vi
a2l0LWVhY2gtbGluZScKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEwcHggLXdlYmtpdC1lYWNo
LWxpbmUnLCB3aGlsZSBjaGlsZCBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4IC13
ZWJraXQtZWFjaC1saW5lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0
UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCcKKworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQxYjk2NDcxMDc4
ZDI3ZTE2MmQ4MzBhMzkwYmViYTM2NThjOWI0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRD
b21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgPGRpdiBpZD0iYW5jZXN0b3IiPjxkaXYgaWQ9ImNoaWxkIj48L2Rpdj48L2Rpdj4KKyAgPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVy
aXRlZC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWluZGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MjgwYTIwZTE4MGMyNmY3MDI2ZTVj
Mjc5MTVhZDZkMGU3YjE0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWluZGVudC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCIgc3R5
bGU9ImZvbnQ6IDEwcHggQWhlbTsiPjwvZGl2PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5
bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2E3ZjAwMGIwMWVh
YTc0MWEwNGE2OGZiMWRlOGYxODZhNGNiMTA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3Njcmlw
dC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcwpAQCAtMCww
ICsxLDMxIEBACitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShhbmNlc3RvclZhbHVlLCBjaGls
ZFZhbHVlKQoreworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3Rv
cikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSIsICAiJyIgKyBhbmNlc3RvclZhbHVl
ICsgIiciKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdl
dFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykiLCAgIiciICsgY2hpbGRWYWx1ZSArICInIik7
CisgICAgZGVidWcoJycpOworfQorCitmdW5jdGlvbiBvd25WYWx1ZVRlc3QoYW5jZXN0b3JWYWx1
ZSwgY2hpbGRWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgb2YgYW5jZXN0b3IgaXMgJyIgKyBh
bmNlc3RvclZhbHVlICsgIicsIHdoaWxlIGNoaWxkIGlzICciICsgY2hpbGRWYWx1ZSArICInOiIp
OworICAgIGFuY2VzdG9yLnN0eWxlLnRleHRJbmRlbnQgPSBhbmNlc3RvclZhbHVlOworICAgIGNo
aWxkLnN0eWxlLnRleHRJbmRlbnQgPSBjaGlsZFZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0eWxl
KGFuY2VzdG9yVmFsdWUsIGNoaWxkVmFsdWUpOworfQorCitmdW5jdGlvbiBpbmhlcml0YW5jZVRl
c3QoYW5jZXN0b3JWYWx1ZSkKK3sKKyAgICBkZWJ1ZygiVmFsdWUgb2YgYW5jZXN0b3IgaXMgJyIg
KyBhbmNlc3RvclZhbHVlICsgIic6Iik7CisgICAgYW5jZXN0b3Iuc3R5bGUudGV4dEluZGVudCA9
IGFuY2VzdG9yVmFsdWU7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoYW5jZXN0b3JWYWx1ZSwgYW5j
ZXN0b3JWYWx1ZSk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNoZWNrIHRoYXQgdGhl
IHZhbHVlIG9mIHRleHQtaW5kZW50IGlzIHByb3Blcmx5IGluaGVyaXRlZCB0byB0aGUgY2hpbGQu
Iik7CisKK2FuY2VzdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FuY2VzdG9yJyk7Citj
aGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGlsZCcpOworCitpbmhlcml0YW5jZVRl
c3QoIjEwcHgiKTsKK2luaGVyaXRhbmNlVGVzdCgiMTBweCAtd2Via2l0LWVhY2gtbGluZSIpOwor
Citvd25WYWx1ZVRlc3QoIjEwcHggLXdlYmtpdC1lYWNoLWxpbmUiLCAiMTBweCIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0
eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4MzM2MzQ4OTBkNDYyNDdhODM4NDU2YThmZDRjZjhlZjk3YjA3MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENv
bXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuanMK
QEAgLTAsMCArMSw2MiBAQAorZnVuY3Rpb24gdGVzdEVsZW1lbnRTdHlsZShwcm9wZXJ0eUpTLCBw
cm9wZXJ0eUNTUywgdmFsdWUpCit7CisgICAgc2hvdWxkQmUoImUuc3R5bGUuIiArIHByb3BlcnR5
SlMsICInIiArIHZhbHVlICsgIiciKTsKKyAgICBzaG91bGRCZSgiZS5zdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCciICsgcHJvcGVydHlDU1MgKyAiJykiLCAiJyIgKyB2YWx1ZSArICInIik7Cit9CisK
K2Z1bmN0aW9uIHRlc3RDb21wdXRlZFN0eWxlKHByb3BlcnR5SlMsIHByb3BlcnR5Q1NTLCB2YWx1
ZSkKK3sKKyAgICBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSwgbnVs
bCk7CisgICAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUuIiArIHByb3BlcnR5SlMsICInIiArIHZh
bHVlICsgIiciKTsKKyAgICBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCciICsgcHJvcGVydHlDU1MgKyAiJykiLCAiJyIgKyB2YWx1ZSArICInIik7Cit9CisKK2Z1bmN0
aW9uIHZhbHVlU2V0dGluZ1Rlc3QodmFsdWUsIGV4cGVjdGVkVmFsdWUsIGNvbXB1dGVkVmFsdWUp
Cit7CisgICAgZGVidWcoIlZhbHVlICciICsgdmFsdWUgKyAiJzoiKTsKKyAgICBlLnN0eWxlLnRl
eHRJbmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRl
eHQtaW5kZW50IiwgZXhwZWN0ZWRWYWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoInRleHRJ
bmRlbnQiLCAidGV4dC1pbmRlbnQiLCBjb21wdXRlZFZhbHVlKTsKKyAgICBkZWJ1ZygnJyk7Cit9
CisKK2Z1bmN0aW9uIGludmFsaWRWYWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBkZWZhdWx0VmFsdWUp
Cit7CisgICAgZGVidWcoIkludmFsaWQgdmFsdWUgdGVzdCAtICciICsgdmFsdWUgKyAiJzoiKTsK
KyAgICBlLnN0eWxlLnRleHRJbmRlbnQgPSB2YWx1ZTsKKyAgICB0ZXN0RWxlbWVudFN0eWxlKCJ0
ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgZGVmYXVsdFZhbHVlKTsKKyAgICB0ZXN0Q29tcHV0
ZWRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRWYWx1ZSk7CisgICAg
ZGVidWcoJycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjaGVjayB0aGF0IHRleHQt
aW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMgVGV4dC4iKTsK
KworZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK2RlYnVnKCJUZXN0IHRo
ZSBpbml0aWFsIHZhbHVlOiIpOwordGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4
dC1pbmRlbnQiLCAnMHB4Jyk7CitkZWJ1ZygnJyk7CisKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0n
LCAnMTBlbScsICcxMDBweCcpOwordmFsdWVTZXR0aW5nVGVzdCgnMjBleCcsICcyMGV4JywgJzIw
MHB4Jyk7Cit2YWx1ZVNldHRpbmdUZXN0KCc1MCUnLCAnNTAlJywgJzUwJScpOwordmFsdWVTZXR0
aW5nVGVzdCgnY2FsYygxMHB4ICsgMjBweCknLCAnY2FsYygxMHB4ICsgMjBweCknLCAnMzBweCcp
OwordmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcxMGVtIC13ZWJr
aXQtZWFjaC1saW5lJywgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdU
ZXN0KCctd2Via2l0LWVhY2gtbGluZSAxMGVtJywgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnLCAn
MTAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzIwZXggLXdlYmtp
dC1lYWNoLWxpbmUnLCAnMjBleCAtd2Via2l0LWVhY2gtbGluZScsICcyMDBweCAtd2Via2l0LWVh
Y2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMjBleCcsICcy
MGV4IC13ZWJraXQtZWFjaC1saW5lJywgJzIwMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1
ZVNldHRpbmdUZXN0KCczMCUgLXdlYmtpdC1lYWNoLWxpbmUnLCAnMzAlIC13ZWJraXQtZWFjaC1s
aW5lJywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtp
dC1lYWNoLWxpbmUgMzAlJywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1l
YWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJ2NhbGMoMTBweCArIDIwcHgpIC13ZWJraXQt
ZWFjaC1saW5lJywgJ2NhbGMoMTBweCArIDIwcHgpIC13ZWJraXQtZWFjaC1saW5lJywgJzMwcHgg
LXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5l
IGNhbGMoMTBweCArIDIwcHgpJywgJ2NhbGMoMTBweCArIDIwcHgpIC13ZWJraXQtZWFjaC1saW5l
JywgJzMwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK2RlYnVnKCcnKTsKKworZGVmYXVsdFZhbHVl
ID0gJzBweCcKK2Uuc3R5bGUudGV4dEluZGVudCA9IGRlZmF1bHRWYWx1ZTsKK2ludmFsaWRWYWx1
ZVNldHRpbmdUZXN0KCcxMG0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rl
c3QoJzEwbSAtd2Via2l0LWVhY2gtbGluZScsIGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVT
ZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMTBtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFs
aWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIDEwZW0nLCBkZWZhdWx0VmFsdWUpOworaW52YWxpZFZh
bHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVsdFZhbHVlKTsKK2ludmFs
aWRWYWx1ZVNldHRpbmdUZXN0KCcxMGVtIC13ZWJraXQtZWFjaC1saW5lIDEwZW0nLCBkZWZhdWx0
VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDEwZW0g
LXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0VmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWM2OWM2NDA5YzI0ZjdhZmMxNjlm
MjVkMmE2ZWNlNmFhMmVmYjRmMS4uNTU2MzkxNWUzOGZlZDFjZTU4ZmIxYjVhYjk0YzBlNGU4YjFh
NDNhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0yMzMsNiArMjMzLDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdl
LW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVl
ZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzExMjc1NSBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50IFsgRmFpbHVyZSBdCiAKICMgQ2hyb21pdW0gZG9lcyBub3Qgc3VwcG9y
dCBzbWFydCBwYXN0aW5nIGluIHRleHQgY29udHJvbHMgeWV0Lgogd2Via2l0Lm9yZy9iLzYwODMw
IGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS1pbi10ZXh0LWNvbnRyb2wuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYWRkZDg1MjBiN2M0
ZjU2YjU3M2MyMjRhNWYxM2I1ZWZjY2Y3NTY0Li4zYmIxMTRmMjM4NzA5ODQzODc0OWM5NGNkMjRh
YjExNjIxZjk3YjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTE1NCw2ICsxMTU0LDcgQEAgd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdl
LW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVl
ZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3JnL2IvNTg0OTEgZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcvYi83NjE3MyBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9iLzExMjc1NSBmYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50IFsgRmFpbHVyZSBdCiAKICMgT3VyIHNsb3cgdGVzdHMsIGluIGFscGhh
YmV0aWNhbCBvcmRlci4KIHdlYmtpdC5vcmcvYi81NzY3MiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVh
cGkvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNC44L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MWQ5MjQ3MzY5
ZWIwYjNlOWFiMDJmMGZjN2M3NmEzMzI2ZDY4NzVhLi5iOWU2NTU5YmJhOTY0MzRkNDhiMGIxMWQw
MzE2YTA5ZWQ1N2MwNDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00Ljgv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC00LjgvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNjk5LDYgKzY5OSw3IEBAIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nz
cy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJs
ZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2IvNzYxNzMgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8xMTI3NTUgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUgXQogCiAjIE5lZWRzIHJlYmFzZWxpbmUg
YWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC1tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDNkMWUwOTc3OGFlMDk3ODY0NzU1MmYz
YWJkN2NjYWQzYmE1MGJlYjIuLmVmYWNiMzllMzhhNjBkYzhiYmZlY2I3MmFjMGJjYWZkMTdkNjVk
NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC01Nzk2LDYgKzU3OTYsNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3Jp
ZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChuZWVkcyBF
TkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTEyNzU1IGZhc3QvY3NzMy10ZXh0L2NzczMt
dGV4dC1pbmRlbnQgWyBGYWlsdXJlIF0KIAogIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJ1ZyA4
NjQ0MQogIyBmYWlsaW5nIG5ldyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggODQxMzNjM2I1OTFjMzJhYWRlZjQyYTliZjA4ODA1Y2ZlMzgxOWE2ZS4u
YWE2MDUwNzhiZjNhZjM2ZGJlNzU5NmRlNWIxYmE0ZGVkY2NlMmI2NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDksNiArMzQ5LDcgQEAgd2Via2l0Lm9y
Zy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAjIENTUzMgVGV4dCBzdXBwb3J0
IGlzIG5vdCB5ZXQgZW5hYmxlZCAobmVlZHMgRU5BQkxFX0NTUzNfVEVYVCkuCiB3ZWJraXQub3Jn
L2IvNTg0OTEgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24KIHdlYmtpdC5vcmcv
Yi83NjE3MyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdAord2Via2l0Lm9yZy9i
LzExMjc1NSBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50IFsgRmFpbHVyZSBdCiAKICMg
V2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1cHBvcnQgZm9yIEluc3BlY3RvckNsaWVudDo6b3Zl
cnJpZGVEZXZpY2VNZXRyaWNzKCkgaW4gcGxhdGZvcm1zIG90aGVyIHRoYW4gQ2hyb21pdW0KICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODg2CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM5NjIyY2Y5OThmNDc2NWI5Mjg3
YTM4MTk0MzMxOTI0MjYwNTBlZTIuLjg2OWE0MzRiODMwNjJjMDgxMjE0YzM3M2ExNDFhZTRhNGZk
ZTdmODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
NDkwLDYgKzI0OTAsOCBAQCBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRD
b21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbgogZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0
aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tY29s
b3IuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRT
dHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uLmh0bWwKK2Zhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1s
CiAKICMgQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIGlzIGRpc2FibGVkIG9uIFdpbmRv
d3MKIGNvbXBvc2l0aW5nL292ZXJmbG93L3Njcm9sbGluZy13aXRob3V0LXBhaW50aW5nLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDI2MDFlYmE2MjYyOGJiZDAxYWQ5ODU5ZGE4ZjkxYzE5MzY2YWMyMzguLjg4M2YxNTVlNTQzMjQy
ZWNhMzc1ZjI5N2JlNWZhYTAwNzU4MzllMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk3Nyw2ICsyOTc3LDggQEAgd2Via2l0Lm9y
Zy9iLzM5NzI1IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsgU2tp
cCBdCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxl
L2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0L2Nz
czMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1hbGlnbi1sYXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNv
cmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24t
bGluZS5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAorZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQuaHRtbAogCiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtp
dC5vcmcvYi8xMDgzNzAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13
b3JkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194140</attachid>
            <date>2013-03-20 15:44:34 -0700</date>
            <delta_ts>2013-03-20 16:22:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109021-20130321074020.patch</filename>
            <type>text/plain</type>
            <size>39212</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EyZDA2YzVjNTgwYmUz
ZDY4Yzg3OGI1NWRlZDkzOWNhMDI1ZWNjNS4uZjZkZjE4N2ViYWFmMjAzYTlkMGM3ODJjMzQxODNl
MTZlOTgxZWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAzLTIwICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UGFyc2luZyAtd2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3Mz
LXRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTAyMQorIAorICAgICAgICBSZXZpZXdlZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorIAorICAgICAg
ICAiZWFjaC1saW5lIiBpcyBhZGRlZCBmb3IgdGV4dC1pbmRlbnQgaW4gQ1NTMy4KKyAgICAgICAg
aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy10ZXh0LyNlYWNoLWxpbmUKKyAKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyB0aGUgcGFyc2luZyBwYXJ0IHRvIHN1cHBvcnQgZWFjaC1saW5lIHZhbHVl
IGZvciB0ZXh0LWluZGVudC4KKyAKKyAgICAgICAgImVhY2gtbGluZSIgbWVhbnMgIkluZGVudGF0
aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrCisgICAgICAgIGNvbnRhaW5l
ciBhcyB3ZWxsIGFzIGVhY2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9l
cworICAgICAgICBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLiIKKyAK
KyAgICAgICAgSXQncyBwcmVmaXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKyAK
KyAgICAgICAgVGVzdHM6IGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICAgICBz
dHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHRleHQtaW5kZW50KSByZXR1cm5zIENTU1ByaW1pdGl2
ZVZhbHVlIHdoZW4gdGV4dC1pbmRlbnQgaGFzIG9ubHkgPGxlbmd0aD4KKyAgICAgICAgICAgIG9y
IDxwZXJjZW50YWdlPiB2YWx1ZSwgYnV0IHJldHVybnMgQ1NTVmFsdWVMaXN0IHdoZW4gdGV4dC1p
bmRlbnQgYWxzbyBoYXMgLXdlYmtpdC1lYWNoLWxpbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRCk6IFJl
bW92ZWQgQ1NTUHJvcGVydHlUZXh0SW5kZW50IGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVRl
eHRJbmRlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICAg
ICBQYXJzZWQgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHdpdGggLXdlYmtpdC1lYWNoLWxpbmUg
Zm9yIHRleHQtaW5kZW50LgorCisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFk
ZGVkIG5ldyAtd2Via2l0LWVhY2gtbGluZSBrZXl3b3JkLgorICAgICAgICAqIGNzcy9TdHlsZUJ1
aWxkZXIuY3BwOgorICAgICAgICAoQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlUZXh0SW5kZW50OjphcHBseUluaGVyaXRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5VGV4dEluZGVudDo6YXBwbHlJbml0
aWFsVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmFw
cGx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNy
ZWF0ZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxk
ZXIpOgorICAgICAgICAgICAgQWRkZWQgY29kZXMgdG8gaGFuZGxlIGFwcGx5aW5nIHRleHQtaW5k
ZW50IG9mZnNldCBhbmQgLXdlYmtpdC1lYWNoLWxpbmUgb3B0aW9uIHRvIG91ciBzdHlsZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6IEFkZGVkIGVudW0gVGV4dEluZGVudExpbmUuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOiBBZGRlZCBtX3RleHRJbmRlbnRMaW5l
LgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICAgICBBZGRlZCB0
aGUgdXN1YWwgZ2V0dGVyIC8gc2V0dGVyIC8gaW5pdGlhbCBtZXRob2RzIGZvciBtX3RleHRJbmRl
bnRMaW5lLgorCiAyMDEzLTAzLTIwICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTQ1NTkyKTogQXV0b2RyYWluZWRQb29sLmguIFJ1bkxv
b3BUaW1lci5oLCBTY2hlZHVsZVBhaXIuaCBhcmUgYmVpbmcgY29waWVkIGludG8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXgg
NTliOTMwZGRkYzUyMzI3YzRiNzdkYmZjMjY1ZmJmZjFmZTIyNGY0ZC4uNjUxNDBmNzVlMjNjZWNh
YmZiNThmZWEwYmQ0N2Y4OWU3MzBjNjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTIxOTEsOCArMjE5MSwxOCBAQCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVh
c2UoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVRleHRJbmRlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1
ZUZvckxlbmd0aChzdHlsZS0+dGV4dEluZGVudCgpLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0SW5kZW50OiB7CisgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+
IHRleHRJbmRlbnQgPSB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT50ZXh0
SW5kZW50KCksIHN0eWxlLmdldCgpKTsKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICAg
ICAgaWYgKHN0eWxlLT50ZXh0SW5kZW50TGluZSgpID09IFRleHRJbmRlbnRFYWNoTGluZSkgewor
ICAgICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHRl
eHRJbmRlbnQucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFs
dWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlV2Via2l0RWFjaExpbmUpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CisgICAgICAgICAgICB9Cisj
ZW5kaWYKKyAgICAgICAgICAgIHJldHVybiB0ZXh0SW5kZW50LnJlbGVhc2UoKTsKKyAgICAgICAg
fQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dFNoYWRvdzoKICAgICAgICAgICAgIHJldHVy
biB2YWx1ZUZvclNoYWRvdyhzdHlsZS0+dGV4dFNoYWRvdygpLCBwcm9wZXJ0eUlELCBzdHlsZS5n
ZXQoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0UmVuZGVyaW5nOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCAzNjk3NjMyZDMzYmUwNjk3MmJkNDA2MDJlZjE3YTQ4ZTkxZjBh
YTljLi45NjhmYzg4ZjY3ZDA2MGMzZTBkNDI2NDMxZDFjMDE5ZGZhMTkwZGUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtNTk4LDcgKzU5OCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NpbXBsZUxlbmd0aFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBib29sJiBh
Y2NlCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0OgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlNYXJnaW5Ub3A6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVJpZ2h0OgotICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0SW5kZW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlUb3A6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hcmdpbkFmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJn
aW5CZWZvcmU6CkBAIC0yMTg5LDggKzIxODgsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkxlbmd0aCk7CiAgICAgICAgIGJyZWFrOwog
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRJbmRlbnQ6ICAgICAgICAgIC8vIDxsZW5ndGg+IHwg
PHBlcmNlbnRhZ2U+IHwgaW5oZXJpdAotICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICghaWQgJiYg
dmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBlcmNlbnQpKTsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5VGV4dEluZGVudDoKKyAgICAgICAgcGFyc2VkVmFsdWUgPSBwYXJzZVRleHRJbmRlbnQoKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ1RvcDogICAgICAg
ICAgLy8vLyA8cGFkZGluZy13aWR0aD4gfCBpbmhlcml0CkBAIC05MjQ0LDYgKzkyNDMsNTAgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlVGV4dEVtcGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCitQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBh
cnNlVGV4dEluZGVudCgpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKworICAgIC8vIDxsZW5ndGg+IHwgPHBl
cmNlbnRhZ2U+IHwgaW5oZXJpdAorICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpID09IDEpIHsK
KyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsK
KyAgICAgICAgaWYgKCF2YWx1ZS0+aWQgJiYgdmFsaWRVbml0KHZhbHVlLCBGTGVuZ3RoIHwgRlBl
cmNlbnQpKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJp
Y1ZhbHVlKHZhbHVlKSk7CisgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAg
ICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisjaWYgRU5B
QkxFKENTUzNfVEVYVCkKKyAgICAvLyBUaGUgY2FzZSB3aGVyZSB0ZXh0LWluZGVudCBoYXMgb25s
eSA8bGVuZ3RoPihvciA8cGVyY2VudGFnZT4pIHZhbHVlCisgICAgLy8gaXMgaGFuZGxlZCBhYm92
ZSBpZiBzdGF0ZW1lbnQgZXZlbiB0aG91Z2ggQ1NTM19URVhUIGlzIGVuYWJsZWQuCisKKyAgICAv
LyBbIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAmJiAtd2Via2l0LWVhY2gtbGluZSBdIHwg
aW5oZXJpdAorICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpICE9IDIpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQ1NTUGFyc2VyVmFsdWUqIGZpcnN0VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3Vy
cmVudCgpOworICAgIENTU1BhcnNlclZhbHVlKiBzZWNvbmRWYWx1ZSA9IG1fdmFsdWVMaXN0LT5u
ZXh0KCk7CisgICAgQ1NTUGFyc2VyVmFsdWUqIGxlbmd0aE9yUGVyY2VudGFnZVZhbHVlID0gMDsK
KworICAgIC8vIFsgPGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXSAtd2Via2l0LWVhY2gtbGluZQor
ICAgIGlmICh2YWxpZFVuaXQoZmlyc3RWYWx1ZSwgRkxlbmd0aCB8IEZQZXJjZW50KSAmJiBzZWNv
bmRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVXZWJraXRFYWNoTGluZSkKKyAgICAgICAgbGVuZ3RoT3JQ
ZXJjZW50YWdlVmFsdWUgPSBmaXJzdFZhbHVlOworICAgIC8vIC13ZWJraXQtZWFjaC1saW5lIFsg
PGxlbmd0aD4gfCA8cGVyY2VudGFnZT4gXQorICAgIGVsc2UgaWYgKGZpcnN0VmFsdWUtPmlkID09
IENTU1ZhbHVlV2Via2l0RWFjaExpbmUgJiYgdmFsaWRVbml0KHNlY29uZFZhbHVlLCBGTGVuZ3Ro
IHwgRlBlcmNlbnQpKQorICAgICAgICBsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZSA9IHNlY29uZFZh
bHVlOworCisgICAgaWYgKGxlbmd0aE9yUGVyY2VudGFnZVZhbHVlKSB7CisgICAgICAgIGxpc3Qt
PmFwcGVuZChjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUobGVuZ3RoT3JQZXJjZW50YWdlVmFs
dWUpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKSk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5u
ZXh0KCk7CisgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICB9CisjZW5kaWYKKwor
ICAgIHJldHVybiAwOworfQorCiBib29sIENTU1BhcnNlcjo6cGFyc2VMaW5lQm94Q29udGFpbihi
b29sIGltcG9ydGFudCkKIHsKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbiA9IExp
bmVCb3hDb250YWluTm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAyYjk4MDBmYTdkMmEx
MzYyNjhhMDQxNDIyYjRhMDI2NWJjODE5NTFhLi42OWMxNTA0NTM3ZjhjZTJlMzEzMDBhN2U2ZTc2
NzM3MjdkMDgzYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjksNiArMjY5LDggQEAg
cHVibGljOgogICAgIGJvb2wgcGFyc2VUZXh0VW5kZXJsaW5lUG9zaXRpb24oYm9vbCBpbXBvcnRh
bnQpOwogI2VuZGlmIC8vIENTUzNfVEVYVAogCisgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFy
c2VUZXh0SW5kZW50KCk7CisgICAgCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wg
aW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqLCBD
YWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCmluZGV4IGYxZTZiNDczNTMwYTZjZmJlOGYzZjM0ZDQyZGQ5ODZlNTE0ZjRi
M2EuLmRlODkzMGY1YTkyZGMxM2RmYzk5NDE1NTI3ZTMzMjI0NmJhNWM0Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMDA5LDMgKzEwMDksOSBAQCBzbmFwCiBk
cmFnCiBuby1kcmFnCiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX0NTUzNfVEVYVCkgJiYg
RU5BQkxFX0NTUzNfVEVYVAorLy8gdGV4dC1pbmRlbnQKKy13ZWJraXQtZWFjaC1saW5lCisjZW5k
aWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCBmNWMwMDYzMGRlNmU3NzA4
MGQwNDc2MWE2NGY5NDIwYjhmNDNlNzRmLi5kMmI0NzY0NmNjY2Q4YTIzNjI2MTdkZjgxZmRiMjYw
OTNhNWZhMTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTkzMyw2ICsx
OTMzLDU2IEBAIHB1YmxpYzoKIH07CiAjZW5kaWYKIAorY2xhc3MgQXBwbHlQcm9wZXJ0eVRleHRJ
bmRlbnQgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1By
b3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCisgICAgeworICAgICAgICBz
dHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRUZXh0SW5kZW50KHN0eWxlUmVzb2x2ZXItPnBhcmVu
dFN0eWxlKCktPnRleHRJbmRlbnQoKSk7CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudExpbmUoc3R5bGVSZXNvbHZlci0+
cGFyZW50U3R5bGUoKS0+dGV4dEluZGVudExpbmUoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICBz
dGF0aWMgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVy
KiBzdHlsZVJlc29sdmVyKQorICAgIHsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+
c2V0VGV4dEluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKSk7CisjaWYgRU5B
QkxFKENTUzNfVEVYVCkKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dElu
ZGVudExpbmUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0SW5kZW50TGluZSgpKTsKKyNlbmRpZgor
ICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVS
ZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHsKKyAgICAgICAg
aWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAvLyBbIDxsZW5ndGg+IHwgPHBlcmNlbnRhZ2U+IF0gLXdlYmtpdC1lYWNoLWxpbmUKKyAgICAg
ICAgLy8gVGhlIG9yZGVyIGlzIGd1YXJhbnRlZWQuIFNlZSBDU1NQYXJzZXI6OnBhcnNlVGV4dElu
ZGVudC4KKyAgICAgICAgLy8gVGhlIHNlY29uZCB2YWx1ZSwgLXdlYmtpdC1lYWNoLWxpbmUgaXMg
aGFuZGxlZCBvbmx5IHdoZW4gQ1NTM19URVhUIGlzIGVuYWJsZWQuCisKKyAgICAgICAgQ1NTVmFs
dWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7Cisg
ICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDApKTsK
KyAgICAgICAgTGVuZ3RoIGxlbmd0aE9yUGVyY2VudGFnZVZhbHVlID0gcHJpbWl0aXZlVmFsdWUt
PmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNp
b24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbiB8IFZpZXdwb3J0UGVyY2VudGFnZUNvbnZlcnNpb24+
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXItPnJvb3RFbGVtZW50U3R5bGUo
KSwgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKKyAgICAgICAgQVNT
RVJUKCFsZW5ndGhPclBlcmNlbnRhZ2VWYWx1ZS5pc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0VGV4dEluZGVudChsZW5ndGhPclBlcmNlbnRhZ2VWYWx1
ZSk7CisKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgICAgICBBU1NFUlQodmFsdWVMaXN0LT5s
ZW5ndGgoKSA8PSAyKTsKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGVhY2hMaW5lVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlTGlzdC0+aXRlbSgxKSk7Cisg
ICAgICAgIGlmIChlYWNoTGluZVZhbHVlKSB7CisgICAgICAgICAgICBBU1NFUlQoZWFjaExpbmVW
YWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdlYmtpdEVhY2hMaW5lKTsKKyAgICAgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldFRleHRJbmRlbnRMaW5lKFRleHRJbmRlbnRFYWNo
TGluZSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0VGV4dEluZGVudExpbmUoVGV4dEluZGVudEZpcnN0TGluZSk7CisjZW5kaWYKKyAgICB9
CisKKyAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcigmYXBwbHlJbmhlcml0VmFsdWUsICZhcHBseUlu
aXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOworICAgIH0KK307CisKIGNvbnN0IFN0eWxlQnVpbGRl
ciYgU3R5bGVCdWlsZGVyOjpzaGFyZWRTdHlsZUJ1aWxkZXIoKQogewogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3R5bGVCdWlsZGVyLCBzdHlsZUJ1aWxkZXJJbnN0YW5jZSwgKCkpOwpAQCAtMjA1
MCw3ICsyMTAwLDcgQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFRleHRBbGlnbkxhc3QsIEFwcGx5UHJvcGVydHlE
ZWZhdWx0PFRleHRBbGlnbkxhc3QsICZSZW5kZXJTdHlsZTo6dGV4dEFsaWduTGFzdCwgVGV4dEFs
aWduTGFzdCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0QWxpZ25MYXN0LCBUZXh0QWxpZ25MYXN0LCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0QWxpZ25MYXN0Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRUZXh0VW5kZXJsaW5lUG9zaXRp
b24sIEFwcGx5UHJvcGVydHlUZXh0VW5kZXJsaW5lUG9zaXRpb246OmNyZWF0ZUhhbmRsZXIoKSk7
CiAjZW5kaWYgLy8gQ1NTM19URVhUCi0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eUxlbmd0aDwmUmVuZGVyU3R5bGU6OnRleHRJbmRlbnQs
ICZSZW5kZXJTdHlsZTo6c2V0VGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4dElu
ZGVudD46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3Bl
cnR5VGV4dEluZGVudCwgQXBwbHlQcm9wZXJ0eVRleHRJbmRlbnQ6OmNyZWF0ZUhhbmRsZXIoKSk7
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dE92ZXJmbG93LCBBcHBseVBy
b3BlcnR5RGVmYXVsdDxUZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6dGV4dE92ZXJmbG93LCBU
ZXh0T3ZlcmZsb3csICZSZW5kZXJTdHlsZTo6c2V0VGV4dE92ZXJmbG93LCBUZXh0T3ZlcmZsb3cs
ICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRPdmVyZmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dFJlbmRlcmluZywgQXBwbHlQcm9w
ZXJ0eUZvbnQ8VGV4dFJlbmRlcmluZ01vZGUsICZGb250RGVzY3JpcHRpb246OnRleHRSZW5kZXJp
bmdNb2RlLCAmRm9udERlc2NyaXB0aW9uOjpzZXRUZXh0UmVuZGVyaW5nTW9kZSwgQXV0b1RleHRS
ZW5kZXJpbmc+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQ
cm9wZXJ0eVRleHRUcmFuc2Zvcm0sIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVUZXh0VHJhbnNmb3Jt
LCAmUmVuZGVyU3R5bGU6OnRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5
bGU6OnNldFRleHRUcmFuc2Zvcm0sIEVUZXh0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxUZXh0VHJhbnNmb3JtPjo6Y3JlYXRlSGFuZGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGU4NGM4Y2FkNjhiMzkwNDYxZWI2
NDIzNTA0OTJjZDY4ODI2MDMxOGEuLmQ4ZDY1N2U5MTMyMzVhYmJiNWNhNzY1ZmY4MDMyNGM3Yzc4
MjE3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtNDg1LDYgKzQ4NSw5IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlm
Zihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgaWYg
KHJhcmVJbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS5nZXQo
KSkgewogICAgICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodCAhPSBvdGhlci0+
cmFyZUluaGVyaXRlZERhdGEtPmhpZ2hsaWdodAogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRl
ZERhdGEtPmluZGVudCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPmluZGVudAorI2lmIEVO
QUJMRShDU1MzX1RFWFQpCisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV90ZXh0
SW5kZW50TGluZSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fdGV4dEluZGVudExpbmUK
KyNlbmRpZgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9v
bSAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlWm9vbQogICAgICAgICAg
ICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPndvcmRCcmVhayAhPSBvdGhlci0+cmFyZUluaGVyaXRl
ZERhdGEtPndvcmRCcmVhawogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm92ZXJm
bG93V3JhcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm92ZXJmbG93V3JhcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBmNGM5Njk5ZDk2
YTRkMzY2NWM4NDgxYmRiZTYwZTVmODg1MzY1M2YzLi4zYWZmYTNkZmU3M2M4MDRmY2ZhMmFjZmFh
MTUzNTM0MGJlOGI2YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtNTY4LDYgKzU2OCw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgTGVu
Z3RoIHRleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+aW5kZW50
OyB9CisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICBUZXh0SW5kZW50TGluZSB0ZXh0SW5kZW50
TGluZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRJbmRlbnRMaW5lPihyYXJlSW5o
ZXJpdGVkRGF0YS0+bV90ZXh0SW5kZW50TGluZSk7IH0KKyNlbmRpZgogICAgIEVUZXh0QWxpZ24g
dGV4dEFsaWduKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVRleHRBbGlnbj4oaW5oZXJp
dGVkX2ZsYWdzLl90ZXh0X2FsaWduKTsgfQogICAgIEVUZXh0VHJhbnNmb3JtIHRleHRUcmFuc2Zv
cm0oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dFRyYW5zZm9ybT4oaW5oZXJpdGVk
X2ZsYWdzLl90ZXh0X3RyYW5zZm9ybSk7IH0KICAgICBFVGV4dERlY29yYXRpb24gdGV4dERlY29y
YXRpb25zSW5FZmZlY3QoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFVGV4dERlY29yYXRp
b24+KGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0aW9ucyk7IH0KQEAgLTExMzIsNiArMTEz
NSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Q29sb3IoY29uc3QgQ29sb3ImKTsKICAgICB2
b2lkIHNldFRleHRJbmRlbnQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwg
aW5kZW50LCB2KTsgfQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgdm9pZCBzZXRUZXh0SW5k
ZW50TGluZShUZXh0SW5kZW50TGluZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1f
dGV4dEluZGVudExpbmUsIHYpOyB9CisjZW5kaWYKICAgICB2b2lkIHNldFRleHRBbGlnbihFVGV4
dEFsaWduIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl90ZXh0X2FsaWduID0gdjsgfQogICAgIHZvaWQg
c2V0VGV4dFRyYW5zZm9ybShFVGV4dFRyYW5zZm9ybSB2KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4
dF90cmFuc2Zvcm0gPSB2OyB9CiAgICAgdm9pZCBhZGRUb1RleHREZWNvcmF0aW9uc0luRWZmZWN0
KEVUZXh0RGVjb3JhdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fdGV4dF9kZWNvcmF0aW9ucyB8
PSB2OyB9CkBAIC0xNjExLDYgKzE2MTcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExlbmd0aCBp
bml0aWFsTWFyZ2luKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5n
dGggaW5pdGlhbFBhZGRpbmcoKSB7IHJldHVybiBMZW5ndGgoRml4ZWQpOyB9CiAgICAgc3RhdGlj
IExlbmd0aCBpbml0aWFsVGV4dEluZGVudCgpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KKyNp
ZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIHN0YXRpYyBUZXh0SW5kZW50TGluZSBpbml0aWFsVGV4
dEluZGVudExpbmUoKSB7IHJldHVybiBUZXh0SW5kZW50Rmlyc3RMaW5lOyB9CisjZW5kaWYKICAg
ICBzdGF0aWMgRVZlcnRpY2FsQWxpZ24gaW5pdGlhbFZlcnRpY2FsQWxpZ24oKSB7IHJldHVybiBC
QVNFTElORTsgfQogICAgIHN0YXRpYyBzaG9ydCBpbml0aWFsV2lkb3dzKCkgeyByZXR1cm4gMjsg
fQogICAgIHN0YXRpYyBzaG9ydCBpbml0aWFsT3JwaGFucygpIHsgcmV0dXJuIDI7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKaW5kZXggZTNkYjQzMTYwOGM0ZmM4YmVjZGNjYjVjNDhmYzkzYjQ0OWE0ZmYwNy4uZWFmNzUx
MTk3YTZiMTUzZTRjZWVmZWYzOGVkNDZkYmUyZGRhYmEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTUwOCw2
ICs1MDgsMTAgQEAgZW51bSBEcmFnZ2FibGVSZWdpb25Nb2RlIHsgRHJhZ2dhYmxlUmVnaW9uTm9u
ZSwgRHJhZ2dhYmxlUmVnaW9uRHJhZywgRHJhZ2dhYmxlUmUKIC8vIFJlYXNvbmFibGUgbWF4aW11
bSB0byBwcmV2ZW50IGluc2FuZSBmb250IHNpemVzIGZyb20gY2F1c2luZyBjcmFzaGVzIG9uIHNv
bWUgcGxhdGZvcm1zIChzdWNoIGFzIFdpbmRvd3MpLgogc3RhdGljIGNvbnN0IGZsb2F0IG1heGlt
dW1BbGxvd2VkRm9udFNpemUgPSAxMDAwMDAwLjBmOwogCisjaWYgRU5BQkxFKENTUzNfVEVYVCkK
K2VudW0gVGV4dEluZGVudExpbmUgeyBUZXh0SW5kZW50Rmlyc3RMaW5lLCBUZXh0SW5kZW50RWFj
aExpbmUgfTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBS
ZW5kZXJTdHlsZUNvbnN0YW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMzIzYmI5ZDdkMjc0
YjJmNjBiNWVhODM5NzkyYmM0ZThhZjVjZTg0NC4uODMxMDg0NDEyM2JlNDJjYmU5NGE2YWM0MTNk
MDA3ZTdkMTY2MWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtODcsNiArODcsOSBAQCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICAgICAsIHRleHRF
bXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFya05vbmUpCiAgICAgLCB0ZXh0RW1waGFzaXNQb3Np
dGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXIpCiAgICAgLCBtX3RleHRPcmllbnRhdGlvbihU
ZXh0T3JpZW50YXRpb25WZXJ0aWNhbFJpZ2h0KQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAg
LCBtX3RleHRJbmRlbnRMaW5lKFJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudExpbmUoKSkK
KyNlbmRpZgogICAgICwgbV9saW5lQm94Q29udGFpbihSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVC
b3hDb250YWluKCkpCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKICAgICAsIG1f
aW1hZ2VPcmllbnRhdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlT3JpZW50YXRpb24oKSkK
QEAgLTE1Nyw2ICsxNjAsOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAgICAgLCB0ZXh0RW1w
aGFzaXNNYXJrKG8udGV4dEVtcGhhc2lzTWFyaykKICAgICAsIHRleHRFbXBoYXNpc1Bvc2l0aW9u
KG8udGV4dEVtcGhhc2lzUG9zaXRpb24pCiAgICAgLCBtX3RleHRPcmllbnRhdGlvbihvLm1fdGV4
dE9yaWVudGF0aW9uKQorI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgLCBtX3RleHRJbmRlbnRM
aW5lKG8ubV90ZXh0SW5kZW50TGluZSkKKyNlbmRpZgogICAgICwgbV9saW5lQm94Q29udGFpbihv
Lm1fbGluZUJveENvbnRhaW4pCiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklFTlRBVElPTikKICAg
ICAsIG1faW1hZ2VPcmllbnRhdGlvbihvLm1faW1hZ2VPcmllbnRhdGlvbikKQEAgLTI1MSw2ICsy
NTcsOSBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzTWFy
ayA9PSBvLnRleHRFbXBoYXNpc01hcmsKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzUG9zaXRpb24g
PT0gby50ZXh0RW1waGFzaXNQb3NpdGlvbgogICAgICAgICAmJiBtX3RleHRPcmllbnRhdGlvbiA9
PSBvLm1fdGV4dE9yaWVudGF0aW9uCisjaWYgRU5BQkxFKENTUzNfVEVYVCkKKyAgICAgICAgJiYg
bV90ZXh0SW5kZW50TGluZSA9PSBvLm1fdGV4dEluZGVudExpbmUKKyNlbmRpZgogICAgICAgICAm
JiBtX2xpbmVCb3hDb250YWluID09IG8ubV9saW5lQm94Q29udGFpbgogICAgICAgICAmJiBoeXBo
ZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5nCiAgICAgICAgICYmIGxvY2FsZSA9
PSBvLmxvY2FsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggNTE0OTVmZTdmZmVmM2Q4N2I5ZjY1NmUwNmIx
MzI3NWRmZWIzNTQxNi4uMjU2NmRlOTgxNDBhNjJhNjgwZWNkOGU5YjkwZDhjMzYxZGJhZGNlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5oCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IHRleHRFbXBoYXNpc01hcmsgOiAzOyAvLyBUZXh0RW1waGFzaXNNYXJrCiAgICAgdW5zaWduZWQg
dGV4dEVtcGhhc2lzUG9zaXRpb24gOiAxOyAvLyBUZXh0RW1waGFzaXNQb3NpdGlvbgogICAgIHVu
c2lnbmVkIG1fdGV4dE9yaWVudGF0aW9uIDogMjsgLy8gVGV4dE9yaWVudGF0aW9uCisjaWYgRU5B
QkxFKENTUzNfVEVYVCkKKyAgICB1bnNpZ25lZCBtX3RleHRJbmRlbnRMaW5lIDogMTsgLy8gVGV4
dEluZGVudEVhY2hMaW5lCisjZW5kaWYKICAgICB1bnNpZ25lZCBtX2xpbmVCb3hDb250YWluOiA3
OyAvLyBMaW5lQm94Q29udGFpbgogICAgIC8vIENTUyBJbWFnZSBWYWx1ZXMgTGV2ZWwgMwogI2lm
IEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTdiNjQ5ZDQ1MGI4OTZjODA1
ZTBiZjgwYjc3ZTVhY2Y3NDYyMWJjYy4uNzJiMTI1ZmEyNjY5MjdjYmQ0MDI0YWIxZWMyNzYyNGNi
OTU4YjY1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAzLTIwICBKYWVodW4gTGltICA8
bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0gUGFyc2luZyAt
d2Via2l0LWVhY2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3MzLXRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTAyMQorCisg
ICAgICAgICJlYWNoLWxpbmUiIGlzIGFkZGVkIGZvciB0ZXh0LWluZGVudCBpbiBDU1MzLgorICAg
ICAgICBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXRleHQvI2VhY2gtbGluZQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEp1bGllbiBDaGFmZnJhaXguCisKKyAgICAgICAgKiBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWluaGVyaXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxl
LXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvc2NyaXB0LXRlc3RzL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQtaW5oZXJpdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RDb21wdXRlZFN0
eWxlKToKKyAgICAgICAgKG93blZhbHVlVGVzdCk6CisgICAgICAgIChpbmhlcml0YW5jZVRlc3Qp
OgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRT
dHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0RWxlbWVudFN0eWxlKToKKyAgICAgICAgKHRlc3RDb21wdXRlZFN0eWxl
KToKKyAgICAgICAgKHZhbHVlU2V0dGluZ1Rlc3QpOgorICAgICAgICAoaW52YWxpZFZhbHVlU2V0
dGluZ1Rlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAz
LTIwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1hYyByZWJh
c2VsaW5lIGFmdGVyIHIxNDAyMDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3Mz
LXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ1MDRlZGE2YTY0ZmVjMTZjMTBjYjQxODU5Mzll
MzczMDVhZDIxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
aW5kZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyOCBAQAorVGhpcyB0ZXN0cyBjaGVjayB0
aGF0IHRleHQtaW5kZW50IHBhcnNlcyBwcm9wZXJseSB0aGUgcHJvcGVydGllcyBmcm9tIENTUzMg
VGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgdGhlIGluaXRpYWwg
dmFsdWU6CitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKKworVmFs
dWUgJzEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0nCitQQVNTIGUuc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbScKK1BBU1MgY29tcHV0
ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCcKKworVmFsdWUgJzIwZXgnOgorUEFT
UyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzIwZXgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5k
ZW50IGlzICcyMDBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcyMDBweCcKKworVmFsdWUgJzUwJSc6CitQQVNTIGUuc3R5bGUudGV4dElu
ZGVudCBpcyAnNTAlJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50
JykgaXMgJzUwJScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICc1MCUnCitQQVNT
IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnNTAlJwor
CitWYWx1ZSAnY2FsYygxMHB4ICsgMjBweCknOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMg
J2NhbGMoMTBweCArIDIwcHgpJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJ2NhbGMoMTBweCArIDIwcHgpJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJ
bmRlbnQgaXMgJzMwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMzBweCcKKworVmFsdWUgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnOgor
UEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNT
IGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBlbSAtd2Via2l0
LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcxMDBweCAtd2Vi
a2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0
LWluZGVudCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQt
ZWFjaC1saW5lIDEwZW0nOgorUEFTUyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzEwZW0gLXdlYmtp
dC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQn
KSBpcyAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5k
ZW50IGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMDBweCAtd2Via2l0LWVhY2gtbGluZScK
KworVmFsdWUgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRleHRJbmRl
bnQgaXMgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29t
cHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1Mg
Y29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcyMDBweCAt
d2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJy13ZWJraXQtZWFjaC1saW5lIDIwZXgnOgorUEFT
UyBlLnN0eWxlLnRleHRJbmRlbnQgaXMgJzIwZXggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUu
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMjBleCAtd2Via2l0LWVh
Y2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlzICcyMDBweCAtd2Via2l0
LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcyMDBweCAtd2Via2l0LWVhY2gtbGluZScKKworVmFsdWUgJzMwJSAtd2Via2l0
LWVhY2gtbGluZSc6CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMzAlIC13ZWJraXQtZWFj
aC1saW5lJworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMg
JzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50IGlz
ICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworCitWYWx1ZSAn
LXdlYmtpdC1lYWNoLWxpbmUgMzAlJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICczMCUg
LXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMzAlIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRl
eHRJbmRlbnQgaXMgJzMwJSAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMCUgLXdlYmtpdC1lYWNoLWxpbmUn
CisKK1ZhbHVlICdjYWxjKDEwcHggKyAyMHB4KSAtd2Via2l0LWVhY2gtbGluZSc6CitQQVNTIGUu
c3R5bGUudGV4dEluZGVudCBpcyAnY2FsYygxMHB4ICsgMjBweCkgLXdlYmtpdC1lYWNoLWxpbmUn
CitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnY2FsYygx
MHB4ICsgMjBweCkgLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dElu
ZGVudCBpcyAnMzBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICczMHB4IC13ZWJraXQtZWFjaC1saW5lJwor
CitWYWx1ZSAnLXdlYmtpdC1lYWNoLWxpbmUgY2FsYygxMHB4ICsgMjBweCknOgorUEFTUyBlLnN0
eWxlLnRleHRJbmRlbnQgaXMgJ2NhbGMoMTBweCArIDIwcHgpIC13ZWJraXQtZWFjaC1saW5lJwor
UEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJ2NhbGMoMTBw
eCArIDIwcHgpIC13ZWJraXQtZWFjaC1saW5lJworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRl
bnQgaXMgJzMwcHggLXdlYmtpdC1lYWNoLWxpbmUnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMzBweCAtd2Via2l0LWVhY2gtbGluZScKKwor
CitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlz
ICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAn
MHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0
ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFs
aWQgdmFsdWUgdGVzdCAtICcxMG0gLXdlYmtpdC1lYWNoLWxpbmUnOgorUEFTUyBlLnN0eWxlLnRl
eHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWlu
ZGVudCcpIGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUudGV4dEluZGVudCBpcyAnMHB4Jwor
UEFTUyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBw
eCcKKworSW52YWxpZCB2YWx1ZSB0ZXN0IC0gJy13ZWJraXQtZWFjaC1saW5lIDEwbSc6CitQQVNT
IGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0SW5kZW50
IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRl
bnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBlbSAxMGVtJzoKK1BBU1Mg
ZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQg
aXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVu
dCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVzdCAtICctd2Via2l0LWVhY2gtbGluZSc6
CitQQVNTIGUuc3R5bGUudGV4dEluZGVudCBpcyAnMHB4JworUEFTUyBlLnN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS50ZXh0
SW5kZW50IGlzICcwcHgnCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMHB4JworCitJbnZhbGlkIHZhbHVlIHRlc3QgLSAnMTBlbSAtd2Via2l0
LWVhY2gtbGluZSAxMGVtJzoKK1BBU1MgZS5zdHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNT
IGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBj
b21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMgJzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcwcHgnCisKK0ludmFsaWQgdmFsdWUgdGVz
dCAtICctd2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1saW5lJzoKK1BBU1MgZS5z
dHlsZS50ZXh0SW5kZW50IGlzICcwcHgnCitQQVNTIGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
dGV4dC1pbmRlbnQnKSBpcyAnMHB4JworUEFTUyBjb21wdXRlZFN0eWxlLnRleHRJbmRlbnQgaXMg
JzBweCcKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcp
IGlzICcwcHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
aW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhl
cml0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5o
ZXJpdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmQ0ZTA5NGQwNGVhMzcwNTVhOGUyMWVi
NGFmZTM0MjRiYzEzOWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1pbmRlbnQtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlz
IHRlc3RzIGNoZWNrIHRoYXQgdGhlIHZhbHVlIG9mIHRleHQtaW5kZW50IGlzIHByb3Blcmx5IGlu
aGVyaXRlZCB0byB0aGUgY2hpbGQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitW
YWx1ZSBvZiBhbmNlc3RvciBpcyAnMTBweCc6CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGFuY2VzdG9yKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIGlzICcxMHB4JworUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjaGlsZCkuZ2V0UHJvcGVydHlWYWx1ZSgndGV4dC1p
bmRlbnQnKSBpcyAnMTBweCcKKworVmFsdWUgb2YgYW5jZXN0b3IgaXMgJzEwcHggLXdlYmtpdC1l
YWNoLWxpbmUnOgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJv
cGVydHlWYWx1ZSgndGV4dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQt
aW5kZW50JykgaXMgJzEwcHggLXdlYmtpdC1lYWNoLWxpbmUnCisKK1ZhbHVlIG9mIGFuY2VzdG9y
IGlzICcxMHB4IC13ZWJraXQtZWFjaC1saW5lJywgd2hpbGUgY2hpbGQgaXMgJzEwcHgnOgorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhbmNlc3RvcikuZ2V0UHJvcGVydHlWYWx1ZSgndGV4
dC1pbmRlbnQnKSBpcyAnMTBweCAtd2Via2l0LWVhY2gtbGluZScKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoY2hpbGQpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50JykgaXMgJzEw
cHgnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY0MWI5NjQ3MTA3OGQyN2UxNjJkODMwYTM5MGJlYmEzNjU4YzliNGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQu
aHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImFuY2VzdG9yIj48ZGl2IGlkPSJjaGls
ZCI+PC9kaXY+PC9kaXY+CisgIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NDI4MGEyMGUxODBjMjZmNzAyNmU1YzI3OTE1YWQ2ZDBlN2IxNGMxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRl
ZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbApAQCAtMCwwICsxLDExIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgIDxkaXYgaWQ9InRlc3QiIHN0eWxlPSJmb250OiAxMHB4IEFoZW07Ij48L2Rpdj4KKyAgPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LmpzIj48
L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3Njcmlw
dC10ZXN0cy9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9z
Y3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzNhN2YwMDBiMDFlYWE3NDFhMDRhNjhmYjFkZThmMTg2YTRjYjEwNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQv
Z2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVu
dC1pbmhlcml0ZWQuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gdGVzdENvbXB1dGVkU3R5
bGUoYW5jZXN0b3JWYWx1ZSwgY2hpbGRWYWx1ZSkKK3sKKyAgICBzaG91bGRCZSgid2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoYW5jZXN0b3IpLmdldFByb3BlcnR5VmFsdWUoJ3RleHQtaW5kZW50Jyki
LCAgIiciICsgYW5jZXN0b3JWYWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGNoaWxkKS5nZXRQcm9wZXJ0eVZhbHVlKCd0ZXh0LWluZGVudCcpIiwgICIn
IiArIGNoaWxkVmFsdWUgKyAiJyIpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gb3du
VmFsdWVUZXN0KGFuY2VzdG9yVmFsdWUsIGNoaWxkVmFsdWUpCit7CisgICAgZGVidWcoIlZhbHVl
IG9mIGFuY2VzdG9yIGlzICciICsgYW5jZXN0b3JWYWx1ZSArICInLCB3aGlsZSBjaGlsZCBpcyAn
IiArIGNoaWxkVmFsdWUgKyAiJzoiKTsKKyAgICBhbmNlc3Rvci5zdHlsZS50ZXh0SW5kZW50ID0g
YW5jZXN0b3JWYWx1ZTsKKyAgICBjaGlsZC5zdHlsZS50ZXh0SW5kZW50ID0gY2hpbGRWYWx1ZTsK
KyAgICB0ZXN0Q29tcHV0ZWRTdHlsZShhbmNlc3RvclZhbHVlLCBjaGlsZFZhbHVlKTsKK30KKwor
ZnVuY3Rpb24gaW5oZXJpdGFuY2VUZXN0KGFuY2VzdG9yVmFsdWUpCit7CisgICAgZGVidWcoIlZh
bHVlIG9mIGFuY2VzdG9yIGlzICciICsgYW5jZXN0b3JWYWx1ZSArICInOiIpOworICAgIGFuY2Vz
dG9yLnN0eWxlLnRleHRJbmRlbnQgPSBhbmNlc3RvclZhbHVlOworICAgIHRlc3RDb21wdXRlZFN0
eWxlKGFuY2VzdG9yVmFsdWUsIGFuY2VzdG9yVmFsdWUpOworfQorCitkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0cyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0ZXh0LWluZGVudCBpcyBwcm9wZXJseSBp
bmhlcml0ZWQgdG8gdGhlIGNoaWxkLiIpOworCithbmNlc3RvciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhbmNlc3RvcicpOworY2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hp
bGQnKTsKKworaW5oZXJpdGFuY2VUZXN0KCIxMHB4Iik7Citpbmhlcml0YW5jZVRlc3QoIjEwcHgg
LXdlYmtpdC1lYWNoLWxpbmUiKTsKKworb3duVmFsdWVUZXN0KCIxMHB4IC13ZWJraXQtZWFjaC1s
aW5lIiwgIjEwcHgiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRT
dHlsZS10ZXh0LWluZGVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9zY3JpcHQtdGVzdHMvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODMzNjM0ODkwZDQ2MjQ3YTgzODQ1NmE4ZmQ0Y2Y4
ZWY5N2IwNzIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL3NjcmlwdC10ZXN0cy9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50LmpzCkBAIC0wLDAgKzEsNjIgQEAKK2Z1bmN0aW9uIHRlc3RFbGVt
ZW50U3R5bGUocHJvcGVydHlKUywgcHJvcGVydHlDU1MsIHZhbHVlKQoreworICAgIHNob3VsZEJl
KCJlLnN0eWxlLiIgKyBwcm9wZXJ0eUpTLCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxk
QmUoImUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIici
ICsgdmFsdWUgKyAiJyIpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWRTdHlsZShwcm9wZXJ0
eUpTLCBwcm9wZXJ0eUNTUywgdmFsdWUpCit7CisgICAgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGUsIG51bGwpOworICAgIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLiIg
KyBwcm9wZXJ0eUpTLCAiJyIgKyB2YWx1ZSArICInIik7CisgICAgc2hvdWxkQmUoImNvbXB1dGVk
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnIiArIHByb3BlcnR5Q1NTICsgIicpIiwgIiciICsgdmFs
dWUgKyAiJyIpOworfQorCitmdW5jdGlvbiB2YWx1ZVNldHRpbmdUZXN0KHZhbHVlLCBleHBlY3Rl
ZFZhbHVlLCBjb21wdXRlZFZhbHVlKQoreworICAgIGRlYnVnKCJWYWx1ZSAnIiArIHZhbHVlICsg
Iic6Iik7CisgICAgZS5zdHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7CisgICAgdGVzdEVsZW1lbnRT
dHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGV4cGVjdGVkVmFsdWUpOworICAgIHRl
c3RDb21wdXRlZFN0eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgY29tcHV0ZWRWYWx1
ZSk7CisgICAgZGVidWcoJycpOworfQorCitmdW5jdGlvbiBpbnZhbGlkVmFsdWVTZXR0aW5nVGVz
dCh2YWx1ZSwgZGVmYXVsdFZhbHVlKQoreworICAgIGRlYnVnKCJJbnZhbGlkIHZhbHVlIHRlc3Qg
LSAnIiArIHZhbHVlICsgIic6Iik7CisgICAgZS5zdHlsZS50ZXh0SW5kZW50ID0gdmFsdWU7Cisg
ICAgdGVzdEVsZW1lbnRTdHlsZSgidGV4dEluZGVudCIsICJ0ZXh0LWluZGVudCIsIGRlZmF1bHRW
YWx1ZSk7CisgICAgdGVzdENvbXB1dGVkU3R5bGUoInRleHRJbmRlbnQiLCAidGV4dC1pbmRlbnQi
LCBkZWZhdWx0VmFsdWUpOworICAgIGRlYnVnKCcnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMg
dGVzdHMgY2hlY2sgdGhhdCB0ZXh0LWluZGVudCBwYXJzZXMgcHJvcGVybHkgdGhlIHByb3BlcnRp
ZXMgZnJvbSBDU1MzIFRleHQuIik7CisKK2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpOworCitkZWJ1ZygiVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZToiKTsKK3Rlc3RDb21wdXRlZFN0
eWxlKCJ0ZXh0SW5kZW50IiwgInRleHQtaW5kZW50IiwgJzBweCcpOworZGVidWcoJycpOworCit2
YWx1ZVNldHRpbmdUZXN0KCcxMGVtJywgJzEwZW0nLCAnMTAwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rl
c3QoJzIwZXgnLCAnMjBleCcsICcyMDBweCcpOwordmFsdWVTZXR0aW5nVGVzdCgnNTAlJywgJzUw
JScsICc1MCUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJ2NhbGMoMTBweCArIDIwcHgpJywgJ2NhbGMo
MTBweCArIDIwcHgpJywgJzMwcHgnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJzEwZW0gLXdlYmtpdC1l
YWNoLWxpbmUnLCAnMTBlbSAtd2Via2l0LWVhY2gtbGluZScsICcxMDBweCAtd2Via2l0LWVhY2gt
bGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnLXdlYmtpdC1lYWNoLWxpbmUgMTBlbScsICcxMGVt
IC13ZWJraXQtZWFjaC1saW5lJywgJzEwMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNl
dHRpbmdUZXN0KCcyMGV4IC13ZWJraXQtZWFjaC1saW5lJywgJzIwZXggLXdlYmtpdC1lYWNoLWxp
bmUnLCAnMjAwcHggLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3ZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJr
aXQtZWFjaC1saW5lIDIwZXgnLCAnMjBleCAtd2Via2l0LWVhY2gtbGluZScsICcyMDBweCAtd2Vi
a2l0LWVhY2gtbGluZScpOwordmFsdWVTZXR0aW5nVGVzdCgnMzAlIC13ZWJraXQtZWFjaC1saW5l
JywgJzMwJSAtd2Via2l0LWVhY2gtbGluZScsICczMCUgLXdlYmtpdC1lYWNoLWxpbmUnKTsKK3Zh
bHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDMwJScsICczMCUgLXdlYmtpdC1lYWNo
LWxpbmUnLCAnMzAlIC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdUZXN0KCdjYWxj
KDEwcHggKyAyMHB4KSAtd2Via2l0LWVhY2gtbGluZScsICdjYWxjKDEwcHggKyAyMHB4KSAtd2Vi
a2l0LWVhY2gtbGluZScsICczMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7Cit2YWx1ZVNldHRpbmdU
ZXN0KCctd2Via2l0LWVhY2gtbGluZSBjYWxjKDEwcHggKyAyMHB4KScsICdjYWxjKDEwcHggKyAy
MHB4KSAtd2Via2l0LWVhY2gtbGluZScsICczMHB4IC13ZWJraXQtZWFjaC1saW5lJyk7CitkZWJ1
ZygnJyk7CisKK2RlZmF1bHRWYWx1ZSA9ICcwcHgnCitlLnN0eWxlLnRleHRJbmRlbnQgPSBkZWZh
dWx0VmFsdWU7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBtJywgZGVmYXVsdFZhbHVlKTsK
K2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCcxMG0gLXdlYmtpdC1lYWNoLWxpbmUnLCBkZWZhdWx0
VmFsdWUpOworaW52YWxpZFZhbHVlU2V0dGluZ1Rlc3QoJy13ZWJraXQtZWFjaC1saW5lIDEwbScs
IGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAxMGVtJywgZGVm
YXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCctd2Via2l0LWVhY2gtbGluZScs
IGRlZmF1bHRWYWx1ZSk7CitpbnZhbGlkVmFsdWVTZXR0aW5nVGVzdCgnMTBlbSAtd2Via2l0LWVh
Y2gtbGluZSAxMGVtJywgZGVmYXVsdFZhbHVlKTsKK2ludmFsaWRWYWx1ZVNldHRpbmdUZXN0KCct
d2Via2l0LWVhY2gtbGluZSAxMGVtIC13ZWJraXQtZWFjaC1saW5lJywgZGVmYXVsdFZhbHVlKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDZlYjQ1MDgwZmRiYjRmM2UwYWFjNDI1ZDllYWJhOGY0NWJlNzlhN2MuLjQwMTQxMWIxZmVlN2Mz
MWM1OWJjNzIxNzI5NzdjMWQwZDlhMTI4M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjMzLDYgKzIzMyw3IEBAIHdlYmtpdC5vcmcv
Yi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBp
cyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9i
LzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2Iv
NzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8x
MTI3NTUgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUgXQogCiAjIENo
cm9taXVtIGRvZXMgbm90IHN1cHBvcnQgc21hcnQgcGFzdGluZyBpbiB0ZXh0IGNvbnRyb2xzIHll
dC4KIHdlYmtpdC5vcmcvYi82MDgzMCBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtaW4t
dGV4dC1jb250cm9sLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMjYzZmQ3ZDYxZWM2ZTIzY2I5N2RkMzcwYWNmODE3NDQzNDBhYWQ5MS4uNmQzNDBm
Y2E3NDVkZjUzYzZkODM0NTFiMzkyOGJlYTc4NjRkODA4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNTQsNiArMTE1NCw3IEBAIHdlYmtpdC5vcmcv
Yi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQgc3VwcG9ydCBp
cyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Via2l0Lm9yZy9i
LzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJraXQub3JnL2Iv
NzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtpdC5vcmcvYi8x
MTI3NTUgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUgXQogCiAjIE91
ciBzbG93IHRlc3RzLCBpbiBhbHBoYWJldGljYWwgb3JkZXIuCiB3ZWJraXQub3JnL2IvNTc2NzIg
aHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtc2xpY2VkLWRyYWdnZWQtZmlsZS5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LW1hYy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggM2QxZTA5Nzc4YWUwOTc4NjQ3NTUyZjNhYmQ3Y2NhZDNiYTUwYmViMi4uZWZh
Y2IzOWUzOGE2MGRjOGJiZmVjYjcyYWMwYmNhZmQxN2Q2NWQ0NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQtbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU3OTYsNiArNTc5Niw3IEBAIHdl
YmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgogIyBDU1MzIFRleHQg
c3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQgKG5lZWRzIEVOQUJMRV9DU1MzX1RFWFQpLgogd2Vi
a2l0Lm9yZy9iLzU4NDkxIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uCiB3ZWJr
aXQub3JnL2IvNzYxNzMgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWFsaWduLWxhc3QKK3dlYmtp
dC5vcmcvYi8xMTI3NTUgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZhaWx1cmUg
XQogCiAjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYnVnIDg2NDQxCiAjIGZhaWxpbmcgbmV3IHRl
c3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNGQ3YzYy
YzJiZGIxOGEzNDIzOGI5NDIwNTdmNGRiYjA3MWNkZWZhLi5iYjRjMWM0N2UzNDUyMTA0MWJkNjU1
YjVjZjhmYjc4YWRhZTQzYWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTM0OSw2ICszNDksNyBAQCB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1h
Z2Utb3JpZW50YXRpb24KICMgQ1NTMyBUZXh0IHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkIChu
ZWVkcyBFTkFCTEVfQ1NTM19URVhUKS4KIHdlYmtpdC5vcmcvYi81ODQ5MSBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbgogd2Via2l0Lm9yZy9iLzc2MTczIGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1hbGlnbi1sYXN0Cit3ZWJraXQub3JnL2IvMTEyNzU1IGZhc3QvY3NzMy10ZXh0
L2NzczMtdGV4dC1pbmRlbnQgWyBGYWlsdXJlIF0KIAogIyBXZWIgSW5zcGVjdG9yOiBJbXBsZW1l
bnQgc3VwcG9ydCBmb3IgSW5zcGVjdG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKSBp
biBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBDaHJvbWl1bQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODI4ODYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYzk2MjJjZjk5OGY0NzY1YjkyODdhMzgxOTQzMzE5MjQyNjA1MGVlMi4u
ODY5YTQzNGI4MzA2MmMwODEyMTRjMzczYTE0MWFlNGE0ZmRlN2Y4OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0OTAsNiArMjQ5MCw4IEBAIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWFsaWduCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9n
ZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRt
bAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9n
ZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1jb2xvci5odG1sCiBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC11bmRlcmxpbmUtcG9zaXRpb24uaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWlu
ZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJp
dGVkLmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKIAogIyBBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcgaXMgZGlzYWJsZWQgb24gV2luZG93cwogY29tcG9zaXRpbmcvb3ZlcmZs
b3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFpbnRpbmcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjYwMWViYTYyNjI4YmJkMDFhZDk4
NTlkYThmOTFjMTkzNjZhYzIzOC4uODgzZjE1NWU1NDMyNDJlY2EzNzVmMjk3YmU1ZmFhMDA3NTgz
OWUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCkBAIC0yOTc3LDYgKzI5NzcsOCBAQCB3ZWJraXQub3JnL2IvMzk3MjUgZmFzdC9ldmVudHMv
ZHJhZy1hbmQtZHJvcC1hdXRvc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGln
bi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3Qu
aHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHls
ZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKK2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRl
eHQtaW5kZW50LWluaGVyaXRlZC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCiAKICMg
U3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0Lm9yZy9iLzEwODM3MCBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>