<?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>229507</bug_id>
          
          <creation_ts>2021-08-25 11:43:49 -0700</creation_ts>
          <short_desc>Implement sin, cos, tan, e and pi for calc</short_desc>
          <delta_ts>2022-06-21 18:05:14 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikos Mouchtaris">nmouchtaris</reporter>
          <assigned_to name="Nikos Mouchtaris">nmouchtaris</assigned_to>
          <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kevinturner</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787234</commentid>
    <comment_count>0</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-25 11:43:49 -0700</bug_when>
    <thetext>Implement calc math functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787237</commentid>
    <comment_count>1</comment_count>
      <attachid>436406</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-25 11:46:40 -0700</bug_when>
    <thetext>Created attachment 436406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787403</commentid>
    <comment_count>2</comment_count>
      <attachid>436448</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-25 17:38:08 -0700</bug_when>
    <thetext>Created attachment 436448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787929</commentid>
    <comment_count>3</comment_count>
      <attachid>436448</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-26 19:26:51 -0700</bug_when>
    <thetext>Comment on attachment 436448
Patch

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

&gt; Source/WebCore/css/calc/CSSCalcOperationNode.cpp:-682
&gt; -#if ASSERT_ENABLED
&gt; -        for (auto&amp; child : m_children)
&gt; -            ASSERT(child-&gt;category() == CalculationCategory::Number);
&gt; -#endif

What’s the rationale for removing this assertion? Change log doesn’t say.

&gt; Source/WebCore/platform/calc/CalcExpressionOperation.cpp:31
&gt; -#include &lt;wtf/text/TextStream.h&gt;
&gt; +#include &quot;math.h&quot;
&gt;  
&gt; +#include &lt;wtf/text/TextStream.h&gt;

This isn’t correct WebKit style. The includes should been a single paragraph, not two separate ones. No blank line between them. But blank line after them before &quot;namespace&quot;.

Also, this should be &lt;math.h&gt; or &lt;cmath&gt;, not &quot;math.h&quot;. I think we should prefer &lt;cmath&gt;.

&gt; Source/WebCore/platform/calc/CalcExpressionOperation.cpp:95
&gt; +        double sinValue = sin(m_children[0]-&gt;evaluate(maxValue));
&gt; +        return sinValue;

No reason for a local variable here.

    return std::sin(m_children[0]-&gt;evaluate(maxValue));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788170</commentid>
    <comment_count>4</comment_count>
      <attachid>436674</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-27 14:18:52 -0700</bug_when>
    <thetext>Created attachment 436674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788185</commentid>
    <comment_count>5</comment_count>
      <attachid>436674</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-08-27 14:46:41 -0700</bug_when>
    <thetext>Comment on attachment 436674
Patch

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

&gt; Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp:98
&gt; +static const CSSCalcSymbolTable getConstantTable()

style nit: no `get` because it doesn&apos;t have out args (which is the only case where we use the `get` prefix in webkit)

&gt; Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp:100
&gt; +    return { {CSSValuePi, CSSUnitType::CSS_NUMBER, piDouble}, {CSSValueE, CSSUnitType::CSS_NUMBER, std::exp(1.0)} };

style nit: spaces inside braces

&gt; Source/WebCore/css/calc/CSSCalcOperationNode.cpp:632
&gt; -        if (calcOperationNode.children().size() == 1 &amp;&amp; depth)
&gt; +        if (calcOperationNode.children().size() == 1 &amp;&amp; !depth)

I wonder if you want to fix this separately with a separate test? Or maybe you said it was previously not observable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788189</commentid>
    <comment_count>6</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-27 14:52:33 -0700</bug_when>
    <thetext>Yeah it was not previously observable without the introduction of the one child node functions so I think its fine to fix here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788190</commentid>
    <comment_count>7</comment_count>
      <attachid>436674</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-27 15:00:18 -0700</bug_when>
    <thetext>Comment on attachment 436674
Patch

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

&gt; LayoutTests/ChangeLog:12
&gt; +        * css3/calc/simple-trig-functions.html: Added.

No tests that test failing parses? like atan(3px)?

No tests that test things like tan(pi/2) for infinity?

&gt; LayoutTests/css3/calc/simple-trig-functions.html:71
&gt; +        element.innerHTML += &quot; =&gt; PASS&quot;;

This should be using js-test.js instead.

&gt; LayoutTests/css3/calc/trig-functions-with-constants.html:53
&gt; +        element.innerHTML += &quot; =&gt; PASS&quot;;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788191</commentid>
    <comment_count>8</comment_count>
      <attachid>436674</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-27 15:01:29 -0700</bug_when>
    <thetext>Comment on attachment 436674
Patch

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

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        * css3/calc/simple-trig-functions.html: Added.
&gt; 
&gt; No tests that test failing parses? like atan(3px)?
&gt; 
&gt; No tests that test things like tan(pi/2) for infinity?

How about testing animations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788192</commentid>
    <comment_count>9</comment_count>
      <attachid>436674</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-27 15:02:56 -0700</bug_when>
    <thetext>Comment on attachment 436674
Patch

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

&gt;&gt; LayoutTests/css3/calc/trig-functions-with-constants.html:53
&gt;&gt; +        element.innerHTML += &quot; =&gt; PASS&quot;;
&gt; 
&gt; Ditto.

You&apos;ll also want to test the CSSOM itself, and getComputedStyle()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788229</commentid>
    <comment_count>10</comment_count>
      <attachid>436674</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-27 16:42:09 -0700</bug_when>
    <thetext>Comment on attachment 436674
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Implement calc math functions

Which ones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789158</commentid>
    <comment_count>11</comment_count>
      <attachid>436966</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-31 16:47:00 -0700</bug_when>
    <thetext>Created attachment 436966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789159</commentid>
    <comment_count>12</comment_count>
      <attachid>436967</attachid>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2021-08-31 16:49:23 -0700</bug_when>
    <thetext>Created attachment 436967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789389</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-01 11:44:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/82638816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789413</commentid>
    <comment_count>14</comment_count>
      <attachid>436967</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2021-09-01 12:26:04 -0700</bug_when>
    <thetext>Comment on attachment 436967
Patch

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

&gt; LayoutTests/css3/calc/trig-functions-with-constants.html:45
&gt; +                testValue(&apos;calc(sin(tan(pi/4)*pi/2) * 100px)&apos;, &apos;100&apos;);

same test case repeated 3 times?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791349</commentid>
    <comment_count>15</comment_count>
      <attachid>436967</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-07 21:01:45 -0700</bug_when>
    <thetext>Comment on attachment 436967
Patch

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

Are there WPT for these trig functions? Can we contribute some?

&gt; Source/WebCore/css/calc/CSSCalcOperationNode.cpp:366
&gt; +    return adoptRef(new CSSCalcOperationNode(CalculationCategory::Number, op, WTFMove(values)));

Normally we avoid calling bare &apos;new&apos; and instead give classes a static create() function. But I see you&apos;re following existing code here.

&gt; LayoutTests/css3/calc/trig-functions-with-constants.html:31
&gt; +                testValue(&apos;calc(sin(30deg + 1.0471967rad ) * 100px)&apos;, &apos;100&apos;);

Do you test lack of units  - tan(0.3) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791571</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-08 12:05:14 -0700</bug_when>
    <thetext>Committed r282162 (241454@main): &lt;https://commits.webkit.org/241454@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877163</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-06-21 18:05:14 -0700</bug_when>
    <thetext>*** Bug 203311 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436406</attachid>
            <date>2021-08-25 11:46:40 -0700</date>
            <delta_ts>2021-08-25 17:38:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229507-20210825114639.patch</filename>
            <type>text/plain</type>
            <size>13126</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMGQ4MzA1MDI5MmJl
ZjFhYjA0MGZlZGQ4OWRmYTI2OGU1MDA0OC4uNjJiZGRmZDI1YTA4NzM2ODkyYjBlMDEwNzZjZDFl
NzMyZWExZTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA4LTI1ICBOaWtv
cyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9DU1NW
YWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9k
ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJz
ZXI6OnBhcnNlQ2FsY0Z1bmN0aW9uKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjT3BlcmF0
aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1pbmVDYXRlZ29yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpmdW5jdGlvbkZyb21PcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpD
U1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlU2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nh
bGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
Q2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
YWxjT3BlcmF0aW9uTm9kZTo6cHJpbWl0aXZlVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpmdW5jdGlvblByZWZpeEZvck9wZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNP
cGVyYXRpb25Ob2RlOjpldmFsdWF0ZU9wZXJhdG9yKToKKyAgICAgICAgKiBjc3MvY2FsYy9DU1ND
YWxjT3BlcmF0aW9uTm9kZS5oOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDU1MpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2Fs
Y1ZhbHVlOjppc0NhbGNGdW5jdGlvbik6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpDYWxjUGFyc2VyOjpjb25zdW1lVmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nh
bGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsY0V4
cHJlc3Npb25PcGVyYXRpb246OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
YWxjL0NhbGNPcGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5oOgorCiAyMDIxLTA4LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IENyeXB0by5y
YW5kb21VVUlEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmNi
YWViYTk3ZmY1YWQxNDUxMjRkMGI1NzllZmQ2OGIzMGZkMTk5Zi4uNDUwY2QwMjBkOTczNDU1NDY0
ZDJmNjA1NDVkOGI5MjFhYjRjNDE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTEzNTEsNiArMTM1MSw3IEBAIGNhbGMKIG1pbgogbWF4CiBjbGFtcAorc2luCiAK
IGZyb20taW1hZ2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2Fs
Y0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0Nh
bGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAKaW5kZXggYmI0NjRmOWZjODdhYjdjMzE5ZTFlMjQ2
Nzg0NTRkNjY0NTAzMjAzYi4uNTc4NWNjYWFlODliYTM3YmM0Y2M4MWE5NTkwODAzMmNhOWZmZjJk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25O
b2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVz
c2lvbk5vZGVQYXJzZXIuY3BwCkBAIC0xMjQsNiArMTI0LDcgQEAgYm9vbCBDU1NDYWxjRXhwcmVz
c2lvbk5vZGVQYXJzZXI6OnBhcnNlQ2FsY0Z1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHRv
a2VucywKICAgICAgICAgbWluQXJndW1lbnRDb3VudCA9IDM7CiAgICAgICAgIG1heEFyZ3VtZW50
Q291bnQgPSAzOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU2luOgogICAgIGNh
c2UgQ1NTVmFsdWVDYWxjOgogICAgICAgICBtYXhBcmd1bWVudENvdW50ID0gMTsKICAgICAgICAg
YnJlYWs7CkBAIC0xNjYsNiArMTY3LDkgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJz
ZXI6OnBhcnNlQ2FsY0Z1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywKICAgICBj
YXNlIENTU1ZhbHVlQ2xhbXA6CiAgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2Rl
OjpjcmVhdGVNaW5Pck1heE9yQ2xhbXAoQ2FsY09wZXJhdG9yOjpDbGFtcCwgV1RGTW92ZShub2Rl
cyksIG1fZGVzdGluYXRpb25DYXRlZ29yeSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVTaW46CisgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVT
aW4oV1RGTW92ZShub2RlcykpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1ZhbHVlV2Vi
a2l0Q2FsYzoKICAgICBjYXNlIENTU1ZhbHVlQ2FsYzoKICAgICAgICAgcmVzdWx0ID0gQ1NTQ2Fs
Y09wZXJhdGlvbk5vZGU6OmNyZWF0ZVN1bShXVEZNb3ZlKG5vZGVzKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKaW5kZXggNWNlZGQ1M2E0
MGJmN2VkYzAwNTAzZjdmY2ZkNjIwY2EwNDYzMDdmNy4uMjZiOGFjZDZmZWM2NTdiZmYyZTA0YjRk
YmU5NDNkYTY0Zjk3NTBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NT
Q2FsY09wZXJhdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0Nh
bGNPcGVyYXRpb25Ob2RlLmNwcApAQCAtNzIsNiArNzIsNyBAQCBzdGF0aWMgQ2FsY3VsYXRpb25D
YXRlZ29yeSBkZXRlcm1pbmVDYXRlZ29yeShjb25zdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGUmIGxl
ZnRTaQogICAgICAgICBpZiAocmlnaHRDYXRlZ29yeSAhPSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpO
dW1iZXIgfHwgcmlnaHRTaWRlLmlzWmVybygpKQogICAgICAgICAgICAgcmV0dXJuIENhbGN1bGF0
aW9uQ2F0ZWdvcnk6Ok90aGVyOwogICAgICAgICByZXR1cm4gbGVmdENhdGVnb3J5OworICAgIGNh
c2UgQ2FsY09wZXJhdG9yOjpTaW46CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjoKICAgICBj
YXNlIENhbGNPcGVyYXRvcjo6TWF4OgogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDoKQEAg
LTE0MCw3ICsxNDEsNyBAQCBzdGF0aWMgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXRlcm1pbmVDYXRl
Z29yeShjb25zdCBWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTgogICAgICAgICAgICAgICAg
IHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcjsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9Ci0KKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjoKICAgICAgICAgY2Fz
ZSBDYWxjT3BlcmF0b3I6Ok1pbjoKICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoKICAg
ICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOgpAQCAtMjU1LDYgKzI1Niw4IEBAIHN0YXRp
YyBDU1NWYWx1ZUlEIGZ1bmN0aW9uRnJvbU9wZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKICAgICAg
ICAgcmV0dXJuIENTU1ZhbHVlTWF4OwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDoKICAg
ICAgICAgcmV0dXJuIENTU1ZhbHVlQ2xhbXA7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjoK
KyAgICAgICAgcmV0dXJuIENTU1ZhbHVlU2luOwogICAgIH0KICAgICByZXR1cm4gQ1NTVmFsdWVD
YWxjOwogfQpAQCAtMzQxLDYgKzM0NCwyMSBAQCBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+
IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVNaW5Pck1heE9yQ2xhbXAoQ2FsY09wZQogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ2FsY09wZXJhdGlvbk5vZGUoY2F0ZWdvcnkudmFsdWUo
KSwgb3AsIFdURk1vdmUodmFsdWVzKSkpOwogfQogCitSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5v
ZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVTaW4oVmVjdG9yPFJlZjxDU1NDYWxjRXhw
cmVzc2lvbk5vZGU+PiYmIHZhbHVlcykKK3sKKyAgICBpZiAodmFsdWVzLnNpemUoKSAhPSAxKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICBhdXRvIGNoaWxkQ2F0ZWdvcnkgPSB2
YWx1ZXNbMF0tPmNhdGVnb3J5KCk7CisgICAgaWYgKGNoaWxkQ2F0ZWdvcnkgIT0gQ2FsY3VsYXRp
b25DYXRlZ29yeTo6TnVtYmVyICYmIGNoaWxkQ2F0ZWdvcnkgIT0gQ2FsY3VsYXRpb25DYXRlZ29y
eTo6QW5nbGUpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMsIHN0cmVhbSA8PCAiRmFp
bGVkIHRvIGNyZWF0ZSBzaW4gbm9kZSBiZWNhdXNlIHVuYWJsZSB0byBkZXRlcm1pbmUgY2F0ZWdv
cnkgZnJvbSAiIDw8IHByZXR0eVByaW50Tm9kZXModmFsdWVzKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ2FsY09wZXJhdGlv
bk5vZGUoQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBDYWxjT3BlcmF0b3I6OlNpbiwgV1RG
TW92ZSh2YWx1ZXMpKSk7Cit9CisKKwogdm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6aG9pc3RD
aGlsZHJlbldpdGhPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3ApCiB7CiAgICAgQVNTRVJUKG9wID09
IENhbGNPcGVyYXRvcjo6QWRkIHx8IG9wID09IENhbGNPcGVyYXRvcjo6TXVsdGlwbHkpOwpAQCAt
NDA1LDYgKzQyMywxNCBAQCBib29sIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjYW5Db21iaW5lQWxs
Q2hpbGRyZW4oKSBjb25zdAogCiB2b2lkIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hp
bGRyZW4oKQogeworICAgIGlmIChjYWxjT3BlcmF0b3IoKSA9PSBDYWxjT3BlcmF0b3I6OlNpbikg
eworICAgICAgICBkb3VibGUgcmVzb2x2ZWRWYWx1ZSA9IGRvdWJsZVZhbHVlKG1fY2hpbGRyZW5b
MF0tPnByaW1pdGl2ZVR5cGUoKSk7CisgICAgICAgIGF1dG8gbmV3Q2hpbGQgPSBDU1NDYWxjUHJp
bWl0aXZlVmFsdWVOb2RlOjpjcmVhdGUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShyZXNvbHZl
ZFZhbHVlLCBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikpOworCisgICAgICAgIG1fY2hpbGRyZW4u
Y2xlYXIoKTsKKyAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZShuZXdDaGlsZCkpOwor
ICAgIH0KKyAgICAgICAgCiAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpIDwgMikKICAgICAgICAg
cmV0dXJuOwogCkBAIC01OTUsNiArNjIxLDEwIEBAIFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpzaW1wbGlmeU5vZGUoUmVmPENTU0NhbGNFeHByZXNzCiAg
ICAgLy8gdXNpbmcgaXRzIGNoaWxkcmVuLCBleHByZXNzZWQgaW4gdGhlIHJlc3VsdOKAmXMgY2Fu
b25pY2FsIHVuaXQuCiAgICAgaWYgKGlzPENTU0NhbGNPcGVyYXRpb25Ob2RlPihyb290Tm9kZSkp
IHsKICAgICAgICAgYXV0byYgY2FsY09wZXJhdGlvbk5vZGUgPSBkb3duY2FzdDxDU1NDYWxjT3Bl
cmF0aW9uTm9kZT4ocm9vdE5vZGUuZ2V0KCkpOworICAgICAgICAKKyAgICAgICAgaWYgKGNhbGNP
cGVyYXRpb25Ob2RlLmlzVHJpZ05vZGUoKSkKKyAgICAgICAgICAgIGNhbGNPcGVyYXRpb25Ob2Rl
LmNvbWJpbmVDaGlsZHJlbigpOworICAgICAgICAKICAgICAgICAgLy8gRG9uJ3Qgc2ltcGxpZnkg
YXQgdGhlIHJvb3QsIG90aGVyd2lzZSB3ZSBsb3NlIHRyYWNrIG9mIHRoZSBvcGVyYXRpb24gZm9y
IHNlcmlhbGl6YXRpb24uCiAgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5jaGlsZHJlbigp
LnNpemUoKSA9PSAxICYmIGRlcHRoKQogICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUoY2FsY09w
ZXJhdGlvbk5vZGUuY2hpbGRyZW4oKVswXSk7CkBAIC02NzYsMTIgKzcwNiw3IEBAIENTU1VuaXRU
eXBlIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpwcmltaXRpdmVUeXBlKCkgY29uc3QKICAgICBhdXRv
IHVuaXRDYXRlZ29yeSA9IGNhdGVnb3J5KCk7CiAgICAgc3dpdGNoICh1bml0Q2F0ZWdvcnkpIHsK
ICAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcjoKLSNpZiBBU1NFUlRfRU5BQkxF
RAotICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogbV9jaGlsZHJlbikKLSAgICAgICAgICAgIEFT
U0VSVChjaGlsZC0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIpOwot
I2VuZGlmCiAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjsKLQogICAgIGNh
c2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudDogewogICAgICAgICBpZiAobV9jaGlsZHJl
bi5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dO
OwpAQCAtODAwLDYgKzgyNSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmdW5jdGlvblByZWZpeEZv
ck9wZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6RGl2aWRl
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuICIiOworICAg
IGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46IHJldHVybiAic2luKCI7CiAgICAgY2FzZSBDYWxjT3Bl
cmF0b3I6Ok1pbjogcmV0dXJuICJtaW4oIjsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OiBy
ZXR1cm4gIm1heCgiOwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogcmV0dXJuICJjbGFt
cCgiOwpAQCAtMTAwNCw2ICsxMDMwLDEyIEBAIGRvdWJsZSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6
ZXZhbHVhdGVPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3AsIGNvbnN0IFZlY3Rvcjxkb3ViCiAgICAg
ICAgIGRvdWJsZSBtYXggPSBjaGlsZHJlblsyXTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KG1p
biwgc3RkOjptaW4odmFsdWUsIG1heCkpOwogICAgIH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6
U2luOiB7CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICBk
b3VibGUgc2luVmFsdWUgPSBzaW4oY2hpbGRyZW5bMF0pOworICAgICAgICByZXR1cm4gc2luVmFs
dWU7CisgICAgfQogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5oCmlu
ZGV4IGU4ZThmYWVlYzE1MjlmYTVmYzM4OTYwMGY0ZDM0MmQzZmQ2YjM1NDUuLmQ4MjYxMjRhMWQ4
MmQ2NTVlMjVmYjNjNDFkOTQ2NDRlOWRkOThkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuaApAQCAtMzcsNiArMzcsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gY3JlYXRlU3VtKFZlY3RvcjxS
ZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogICAgIHN0YXRpYyBSZWZQdHI8
Q1NTQ2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZVByb2R1Y3QoVmVjdG9yPFJlZjxDU1NDYWxjRXhw
cmVzc2lvbk5vZGU+PiYmIHZhbHVlcyk7CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3BlcmF0
aW9uTm9kZT4gY3JlYXRlTWluT3JNYXhPckNsYW1wKENhbGNPcGVyYXRvciwgVmVjdG9yPFJlZjxD
U1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYmIHZhbHVlcywgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXN0
aW5hdGlvbkNhdGVnb3J5KTsKKyAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2Rl
PiBjcmVhdGVTaW4oVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYmIHZhbHVlcyk7
CisKIAogICAgIHN0YXRpYyBSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBzaW1wbGlmeShSZWY8
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYmKTsKIApAQCAtNDYsNiArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0NhbGNTdW1Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxj
T3BlcmF0b3I6OkFkZDsgfQogICAgIGJvb2wgaXNDYWxjUHJvZHVjdE5vZGUoKSBjb25zdCB7IHJl
dHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TXVsdGlwbHk7IH0KICAgICBib29sIGlz
TWluT3JNYXhOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6
Ok1pbiB8fCBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TWF4OyB9CisgICAgYm9vbCBpc1Ry
aWdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6OlNpbjsg
fQogICAgIGJvb2wgc2hvdWxkU29ydENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gaXNDYWxjU3Vt
Tm9kZSgpIHx8IGlzQ2FsY1Byb2R1Y3ROb2RlKCk7IH0KIAogICAgIHZvaWQgaG9pc3RDaGlsZHJl
bldpdGhPcGVyYXRvcihDYWxjT3BlcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0Nh
bGNWYWx1ZS5jcHAKaW5kZXggZDZhYWU1YTA1OWY3ZmI0MWI4MmI1ZmExNmU2NzNlMjZkY2YzMzMz
NS4uNjQ3ZWVkZTk1MTFlODhiMzlkN2RlM2ViNDE0NmZmNDg5MTBkYjc1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCkBAIC0xNjQsNiArMTY0LDEyIEBAIHN0YXRp
YyBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgQ2FsY0V4cHJl
c3Npb25Ob2RlJiBub2RlLCBjCiAKICAgICAgICAgICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9u
Tm9kZTo6Y3JlYXRlUHJvZHVjdChjcmVhdGVDU1Mob3BlcmF0aW9uQ2hpbGRyZW4sIHN0eWxlKSk7
CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogeworICAgICAgICAg
ICAgYXV0byBjaGlsZHJlbiA9IGNyZWF0ZUNTUyhvcGVyYXRpb25DaGlsZHJlbiwgc3R5bGUpOwor
ICAgICAgICAgICAgaWYgKGNoaWxkcmVuLnNpemUoKSAhPSAxKQorICAgICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpj
cmVhdGVTaW4oV1RGTW92ZShjaGlsZHJlbikpOworICAgICAgICB9CiAgICAgICAgIGNhc2UgQ2Fs
Y09wZXJhdG9yOjpNaW46CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNYXg6CiAgICAgICAg
IGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogewpAQCAtMjgzLDYgKzI4OSw3IEBAIGJvb2wgQ1NT
Q2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbihDU1NWYWx1ZUlEIGZ1bmN0aW9uSWQpCiAgICAgY2Fz
ZSBDU1NWYWx1ZU1pbjoKICAgICBjYXNlIENTU1ZhbHVlTWF4OgogICAgIGNhc2UgQ1NTVmFsdWVD
bGFtcDoKKyAgICBjYXNlIENTU1ZhbHVlU2luOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggNzM2YjJlOTI0
NTVjMjFmZWRlZmU5MGE4NTIxZTYzODRiNzUyODMyNy4uZDFiMTNkMGI4OWY3NjUyMWUxOGQyYWE4
NjY5ZTc1Y2JkNmYzMTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBDU1NDYWxjVmFsdWUqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxj
VmFsdWUuZ2V0KCk7IH0KIAogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZVZh
bHVlKCkKLSAgICB7CisgICAgeyAgIAogICAgICAgICBpZiAoIW1fY2FsY1ZhbHVlKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIG1fc291cmNlUmFuZ2UgPSBtX3JhbmdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjRXhwcmVzc2lvbk9w
ZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9u
T3BlcmF0aW9uLmNwcAppbmRleCAwNGZlZmY1YWRkM2E4YjRhY2Q1NjBlYjc2MWU5MjgxMDQyYjE5
NmNjLi4zMTQ4ZjRkZWM3OGRhNmFlZGNkNzFjNGFhMmFlZDIzMWU2ZTJlMDQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0
aW9uLmNwcApAQCAtMjYsOCArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmgiCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CisjaW5jbHVkZSAibWF0aC5oIgogCisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBmbG9hdCBDYWxjRXhwcmVzc2lvbk9wZXJhdGlv
bjo6ZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0CkBAIC04Niw2ICs4NywxMiBAQCBmbG9h
dCBDYWxjRXhwcmVzc2lvbk9wZXJhdGlvbjo6ZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0
CiAgICAgICAgIGZsb2F0IG1heCA9IG1fY2hpbGRyZW5bMl0tPmV2YWx1YXRlKG1heFZhbHVlKTsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KG1pbiwgc3RkOjptaW4odmFsdWUsIG1heCkpOwogICAg
IH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOiB7CisgICAgICAgIGlmIChtX2NoaWxkcmVu
LnNpemUoKSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgIGRvdWJsZSBzaW5WYWx1ZSA9IHNpbihtX2NoaWxk
cmVuWzBdLT5ldmFsdWF0ZShtYXhWYWx1ZSkpOworICAgICAgICByZXR1cm4gc2luVmFsdWU7Cisg
ICAgfQogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwCmluZGV4IDhlN2RlZjNhNDk0N2JhZTQyZjg0ZjFl
YWZiYzI3ZmRhY2U3ZDM0ZTQuLjM1ZTI5M2VkNGNkZDZjOGJhMjYxNjJlNzJlMjE4NDE5Y2Y2MGM3
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Q2FsY09wZXJhdG9yIG9wKQogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46IHRzIDw8ICJtaW4i
OyBicmVhazsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OiB0cyA8PCAibWF4IjsgYnJlYWs7
CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOiB0cyA8PCAiY2xhbXAiOyBicmVhazsKKyAg
ICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOiB0cyA8PCAic2luIjsgYnJlYWs7CiAgICAgfQogICAg
IHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMv
Q2FsY09wZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRv
ci5oCmluZGV4IDhkZGIzNDYwNjc5YTFiMTlmNTE0MDJjOTZiODFiY2IyOGNjNmU3YzAuLmU1MzYz
ZjNjMjIwMTc1NjVlZGUyOGE5NTUyNmFjNGI5YTdhMjAzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuaApAQCAtMzgsNiArMzgsNyBAQCBlbnVtIGNsYXNz
IENhbGNPcGVyYXRvciA6IHVpbnQ4X3QgewogICAgIE1pbiA9IDAsCiAgICAgTWF4LAogICAgIENs
YW1wLAorICAgIFNpbiwKIH07CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYs
IENhbGNPcGVyYXRvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436448</attachid>
            <date>2021-08-25 17:38:08 -0700</date>
            <delta_ts>2021-08-27 14:18:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229507-20210825173807.patch</filename>
            <type>text/plain</type>
            <size>16369</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMGQ4MzA1MDI5MmJl
ZjFhYjA0MGZlZGQ4OWRmYTI2OGU1MDA0OC4uMmExOGVhMDA1ZmVmZGE5YTgyZjU2NzhhZGZmNzhi
NDg1MGM3N2QwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA4LTI1ICBOaWtv
cyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBjc3MzL2NhbGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLmh0bWwK
KworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9jYWxj
L0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
YWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlQ2FsY0Z1bmN0aW9uKToKKyAgICAgICAgKiBj
c3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRl
cm1pbmVDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpmdW5jdGlvbkZyb21PcGVyYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlU2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6cHJpbWl0aXZlVHlwZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZG91YmxlVmFsdWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25QcmVmaXhGb3JPcGVyYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZXZhbHVhdGVPcGVyYXRvcik6
CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuaDoKKyAgICAgICAgKiBj
c3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ1NTKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6aXNDYWxjRnVuY3Rpb24pOgorICAgICAg
ICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6Q2FsY1BhcnNlcjo6Y29uc3VtZVZhbHVl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbGNFeHByZXNzaW9uT3BlcmF0aW9uOjpldmFsdWF0ZSBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0
b3IuaDoKKwogMjAyMS0wOC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCBDcnlwdG8ucmFuZG9tVVVJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCmluZGV4IDZjYmFlYmE5N2ZmNWFkMTQ1MTI0ZDBiNTc5ZWZkNjhiMzBm
ZDE5OWYuLjQ1MGNkMDIwZDk3MzQ1NTQ2NGQyZjYwNTQ1ZDhiOTIxYWI0YzQxNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzUxLDYgKzEzNTEsNyBAQCBjYWxj
CiBtaW4KIG1heAogY2xhbXAKK3NpbgogCiBmcm9tLWltYWdlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCmluZGV4
IGJiNDY0ZjlmYzg3YWI3YzMxOWUxZTI0Njc4NDU0ZDY2NDUwMzIwM2IuLjU3ODVjY2FhZTg5YmEz
N2JjNGNjODFhOTU5MDgwMzJjYTlmZmYyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcApAQCAtMTI0LDYgKzEy
NCw3IEBAIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsCiAgICAgICAgIG1pbkFyZ3VtZW50Q291bnQg
PSAzOwogICAgICAgICBtYXhBcmd1bWVudENvdW50ID0gMzsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDU1NWYWx1ZVNpbjoKICAgICBjYXNlIENTU1ZhbHVlQ2FsYzoKICAgICAgICAgbWF4QXJn
dW1lbnRDb3VudCA9IDE7CiAgICAgICAgIGJyZWFrOwpAQCAtMTY2LDYgKzE2Nyw5IEBAIGJvb2wg
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNGdW5jdGlvbihDU1NQYXJzZXJU
b2tlblJhbmdlJiB0b2tlbnMsCiAgICAgY2FzZSBDU1NWYWx1ZUNsYW1wOgogICAgICAgICByZXN1
bHQgPSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlTWluT3JNYXhPckNsYW1wKENhbGNPcGVy
YXRvcjo6Q2xhbXAsIFdURk1vdmUobm9kZXMpLCBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnkpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU2luOgorICAgICAgICByZXN1bHQgPSBDU1ND
YWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlU2luKFdURk1vdmUobm9kZXMpKTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENhbGM6CiAgICAgY2FzZSBDU1NWYWx1ZUNhbGM6
CiAgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVTdW0oV1RGTW92
ZShub2RlcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09w
ZXJhdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlv
bk5vZGUuY3BwCmluZGV4IDVjZWRkNTNhNDBiZjdlZGMwMDUwM2Y3ZmNmZDYyMGNhMDQ2MzA3Zjcu
LmUzMjI4ZjdlMmU0MmQ0OTgzMjRiNjZiOThmY2IyYjdjOGExZGYxYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAKQEAgLTcyLDYgKzcy
LDcgQEAgc3RhdGljIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGV0ZXJtaW5lQ2F0ZWdvcnkoY29uc3Qg
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlJiBsZWZ0U2kKICAgICAgICAgaWYgKHJpZ2h0Q2F0ZWdvcnkg
IT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyIHx8IHJpZ2h0U2lkZS5pc1plcm8oKSkKICAg
ICAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcjsKICAgICAgICAgcmV0
dXJuIGxlZnRDYXRlZ29yeTsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOgogICAgIGNhc2Ug
Q2FsY09wZXJhdG9yOjpNaW46CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoKICAgICBjYXNl
IENhbGNPcGVyYXRvcjo6Q2xhbXA6CkBAIC0xNDAsNyArMTQxLDcgQEAgc3RhdGljIENhbGN1bGF0
aW9uQ2F0ZWdvcnkgZGV0ZXJtaW5lQ2F0ZWdvcnkoY29uc3QgVmVjdG9yPFJlZjxDU1NDYWxjRXhw
cmVzc2lvbk4KICAgICAgICAgICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3Ro
ZXI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgIGNhc2UgQ2FsY09w
ZXJhdG9yOjpTaW46CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46CiAgICAgICAgIGNh
c2UgQ2FsY09wZXJhdG9yOjpNYXg6CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDoK
QEAgLTI1NSw2ICsyNTYsOCBAQCBzdGF0aWMgQ1NTVmFsdWVJRCBmdW5jdGlvbkZyb21PcGVyYXRv
cihDYWxjT3BlcmF0b3Igb3ApCiAgICAgICAgIHJldHVybiBDU1NWYWx1ZU1heDsKICAgICBjYXNl
IENhbGNPcGVyYXRvcjo6Q2xhbXA6CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZUNsYW1wOworICAg
IGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVNpbjsKICAg
ICB9CiAgICAgcmV0dXJuIENTU1ZhbHVlQ2FsYzsKIH0KQEAgLTM0MSw2ICszNDQsMjEgQEAgUmVm
UHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlTWlu
T3JNYXhPckNsYW1wKENhbGNPcGUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0NhbGNPcGVy
YXRpb25Ob2RlKGNhdGVnb3J5LnZhbHVlKCksIG9wLCBXVEZNb3ZlKHZhbHVlcykpKTsKIH0KIAor
UmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRl
U2luKFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpCit7CisgICAg
aWYgKHZhbHVlcy5zaXplKCkgIT0gMSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisg
ICAgYXV0byBjaGlsZENhdGVnb3J5ID0gdmFsdWVzWzBdLT5jYXRlZ29yeSgpOworICAgIGlmIChj
aGlsZENhdGVnb3J5ICE9IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciAmJiBjaGlsZENhdGVn
b3J5ICE9IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKSB7CisgICAgICAgIExPR19XSVRIX1NU
UkVBTShDYWxjLCBzdHJlYW0gPDwgIkZhaWxlZCB0byBjcmVhdGUgc2luIG5vZGUgYmVjYXVzZSB1
bmFibGUgdG8gZGV0ZXJtaW5lIGNhdGVnb3J5IGZyb20gIiA8PCBwcmV0dHlQcmludE5vZGVzKHZh
bHVlcykpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0NhbGNPcGVyYXRpb25Ob2RlKENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJl
ciwgQ2FsY09wZXJhdG9yOjpTaW4sIFdURk1vdmUodmFsdWVzKSkpOworfQorCisKIHZvaWQgQ1NT
Q2FsY09wZXJhdGlvbk5vZGU6OmhvaXN0Q2hpbGRyZW5XaXRoT3BlcmF0b3IoQ2FsY09wZXJhdG9y
IG9wKQogewogICAgIEFTU0VSVChvcCA9PSBDYWxjT3BlcmF0b3I6OkFkZCB8fCBvcCA9PSBDYWxj
T3BlcmF0b3I6Ok11bHRpcGx5KTsKQEAgLTQwNSw2ICs0MjMsMTQgQEAgYm9vbCBDU1NDYWxjT3Bl
cmF0aW9uTm9kZTo6Y2FuQ29tYmluZUFsbENoaWxkcmVuKCkgY29uc3QKIAogdm9pZCBDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y29tYmluZUNoaWxkcmVuKCkKIHsKKyAgICBpZiAoY2FsY09wZXJhdG9y
KCkgPT0gQ2FsY09wZXJhdG9yOjpTaW4pIHsKKyAgICAgICAgZG91YmxlIHJlc29sdmVkVmFsdWUg
PSBkb3VibGVWYWx1ZShtX2NoaWxkcmVuWzBdLT5wcmltaXRpdmVUeXBlKCkpOworICAgICAgICBh
dXRvIG5ld0NoaWxkID0gQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlTm9kZTo6Y3JlYXRlKENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUocmVzb2x2ZWRWYWx1ZSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIp
KTsKKworICAgICAgICBtX2NoaWxkcmVuLmNsZWFyKCk7CisgICAgICAgIG1fY2hpbGRyZW4uYXBw
ZW5kKFdURk1vdmUobmV3Q2hpbGQpKTsKKyAgICB9CisgICAgICAgIAogICAgIGlmIChtX2NoaWxk
cmVuLnNpemUoKSA8IDIpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTk1LDYgKzYyMSwxMCBAQCBS
ZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6c2ltcGxpZnlO
b2RlKFJlZjxDU1NDYWxjRXhwcmVzcwogICAgIC8vIHVzaW5nIGl0cyBjaGlsZHJlbiwgZXhwcmVz
c2VkIGluIHRoZSByZXN1bHTigJlzIGNhbm9uaWNhbCB1bml0LgogICAgIGlmIChpczxDU1NDYWxj
T3BlcmF0aW9uTm9kZT4ocm9vdE5vZGUpKSB7CiAgICAgICAgIGF1dG8mIGNhbGNPcGVyYXRpb25O
b2RlID0gZG93bmNhc3Q8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+KHJvb3ROb2RlLmdldCgpKTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5pc1RyaWdOb2RlKCkpCisgICAg
ICAgICAgICBjYWxjT3BlcmF0aW9uTm9kZS5jb21iaW5lQ2hpbGRyZW4oKTsKKyAgICAgICAgCiAg
ICAgICAgIC8vIERvbid0IHNpbXBsaWZ5IGF0IHRoZSByb290LCBvdGhlcndpc2Ugd2UgbG9zZSB0
cmFjayBvZiB0aGUgb3BlcmF0aW9uIGZvciBzZXJpYWxpemF0aW9uLgogICAgICAgICBpZiAoY2Fs
Y09wZXJhdGlvbk5vZGUuY2hpbGRyZW4oKS5zaXplKCkgPT0gMSAmJiBkZXB0aCkKICAgICAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKGNhbGNPcGVyYXRpb25Ob2RlLmNoaWxkcmVuKClbMF0pOwpAQCAt
Njc2LDEyICs3MDYsNyBAQCBDU1NVbml0VHlwZSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6cHJpbWl0
aXZlVHlwZSgpIGNvbnN0CiAgICAgYXV0byB1bml0Q2F0ZWdvcnkgPSBjYXRlZ29yeSgpOwogICAg
IHN3aXRjaCAodW5pdENhdGVnb3J5KSB7CiAgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpO
dW1iZXI6Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IG1f
Y2hpbGRyZW4pCi0gICAgICAgICAgICBBU1NFUlQoY2hpbGQtPmNhdGVnb3J5KCkgPT0gQ2FsY3Vs
YXRpb25DYXRlZ29yeTo6TnVtYmVyKTsKLSNlbmRpZgogICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19OVU1CRVI7Ci0KICAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQ6
IHsKICAgICAgICAgaWYgKG1fY2hpbGRyZW4uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRUeXBlOjpDU1NfVU5LTk9XTjsKQEAgLTc0OCw2ICs3NzMsOCBAQCBkb3VibGUgQ1NT
Q2FsY09wZXJhdGlvbk5vZGU6OmRvdWJsZVZhbHVlKENTU1VuaXRUeXBlIHVuaXRUeXBlKSBjb25z
dAogICAgICAgICBDU1NVbml0VHlwZSBjaGlsZFR5cGUgPSB1bml0VHlwZTsKICAgICAgICAgaWYg
KGFsbG93TnVtYmVycyAmJiB1bml0VHlwZSAhPSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiAmJiBj
aGlsZC0+cHJpbWl0aXZlVHlwZSgpID09IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKQogICAgICAg
ICAgICAgY2hpbGRUeXBlID0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7CisgICAgICAgIGlmIChj
YWxjT3BlcmF0b3IoKSA9PSBDYWxjT3BlcmF0b3I6OlNpbiAmJiB1bml0VHlwZSAhPSBDU1NVbml0
VHlwZTo6Q1NTX05VTUJFUikKKyAgICAgICAgICAgIGNoaWxkVHlwZSA9IENTU1VuaXRUeXBlOjpD
U1NfUkFEOwogICAgICAgICByZXR1cm4gY2hpbGQtPmRvdWJsZVZhbHVlKGNoaWxkVHlwZSk7CiAg
ICAgfSkpOwogfQpAQCAtODAwLDYgKzgyNyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmdW5jdGlv
blByZWZpeEZvck9wZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKICAgICBjYXNlIENhbGNPcGVyYXRv
cjo6RGl2aWRlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
ICIiOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46IHJldHVybiAic2luKCI7CiAgICAgY2Fz
ZSBDYWxjT3BlcmF0b3I6Ok1pbjogcmV0dXJuICJtaW4oIjsKICAgICBjYXNlIENhbGNPcGVyYXRv
cjo6TWF4OiByZXR1cm4gIm1heCgiOwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogcmV0
dXJuICJjbGFtcCgiOwpAQCAtMTAwNCw2ICsxMDMyLDEyIEBAIGRvdWJsZSBDU1NDYWxjT3BlcmF0
aW9uTm9kZTo6ZXZhbHVhdGVPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3AsIGNvbnN0IFZlY3Rvcjxk
b3ViCiAgICAgICAgIGRvdWJsZSBtYXggPSBjaGlsZHJlblsyXTsKICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4KG1pbiwgc3RkOjptaW4odmFsdWUsIG1heCkpOwogICAgIH0KKyAgICBjYXNlIENhbGNP
cGVyYXRvcjo6U2luOiB7CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwor
ICAgICAgICBkb3VibGUgc2luVmFsdWUgPSBzaW4oY2hpbGRyZW5bMF0pOworICAgICAgICByZXR1
cm4gc2luVmFsdWU7CisgICAgfQogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNP
cGVyYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9u
Tm9kZS5oCmluZGV4IGU4ZThmYWVlYzE1MjlmYTVmYzM4OTYwMGY0ZDM0MmQzZmQ2YjM1NDUuLmQ4
MjYxMjRhMWQ4MmQ2NTVlMjVmYjNjNDFkOTQ2NDRlOWRkOThkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuaApAQCAtMzcsNiArMzcsOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gY3JlYXRlU3Vt
KFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogICAgIHN0YXRp
YyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZVByb2R1Y3QoVmVjdG9yPFJlZjxD
U1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYmIHZhbHVlcyk7CiAgICAgc3RhdGljIFJlZlB0cjxDU1ND
YWxjT3BlcmF0aW9uTm9kZT4gY3JlYXRlTWluT3JNYXhPckNsYW1wKENhbGNPcGVyYXRvciwgVmVj
dG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYmIHZhbHVlcywgQ2FsY3VsYXRpb25DYXRl
Z29yeSBkZXN0aW5hdGlvbkNhdGVnb3J5KTsKKyAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNPcGVy
YXRpb25Ob2RlPiBjcmVhdGVTaW4oVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYm
IHZhbHVlcyk7CisKIAogICAgIHN0YXRpYyBSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBzaW1w
bGlmeShSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiYmKTsKIApAQCAtNDYsNiArNDgsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0NhbGNTdW1Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRv
ciA9PSBDYWxjT3BlcmF0b3I6OkFkZDsgfQogICAgIGJvb2wgaXNDYWxjUHJvZHVjdE5vZGUoKSBj
b25zdCB7IHJldHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TXVsdGlwbHk7IH0KICAg
ICBib29sIGlzTWluT3JNYXhOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxj
T3BlcmF0b3I6Ok1pbiB8fCBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TWF4OyB9CisgICAg
Ym9vbCBpc1RyaWdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0
b3I6OlNpbjsgfQogICAgIGJvb2wgc2hvdWxkU29ydENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4g
aXNDYWxjU3VtTm9kZSgpIHx8IGlzQ2FsY1Byb2R1Y3ROb2RlKCk7IH0KIAogICAgIHZvaWQgaG9p
c3RDaGlsZHJlbldpdGhPcGVyYXRvcihDYWxjT3BlcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNWYWx1ZS5jcHAKaW5kZXggZDZhYWU1YTA1OWY3ZmI0MWI4MmI1ZmExNmU2NzNl
MjZkY2YzMzMzNS4uNjQ3ZWVkZTk1MTFlODhiMzlkN2RlM2ViNDE0NmZmNDg5MTBkYjc1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCkBAIC0xNjQsNiArMTY0LDEy
IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3Qg
Q2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlLCBjCiAKICAgICAgICAgICAgIHJldHVybiBDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y3JlYXRlUHJvZHVjdChjcmVhdGVDU1Mob3BlcmF0aW9uQ2hpbGRyZW4s
IHN0eWxlKSk7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogewor
ICAgICAgICAgICAgYXV0byBjaGlsZHJlbiA9IGNyZWF0ZUNTUyhvcGVyYXRpb25DaGlsZHJlbiwg
c3R5bGUpOworICAgICAgICAgICAgaWYgKGNoaWxkcmVuLnNpemUoKSAhPSAxKQorICAgICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRp
b25Ob2RlOjpjcmVhdGVTaW4oV1RGTW92ZShjaGlsZHJlbikpOworICAgICAgICB9CiAgICAgICAg
IGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNYXg6
CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogewpAQCAtMjgzLDYgKzI4OSw3IEBA
IGJvb2wgQ1NTQ2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbihDU1NWYWx1ZUlEIGZ1bmN0aW9uSWQp
CiAgICAgY2FzZSBDU1NWYWx1ZU1pbjoKICAgICBjYXNlIENTU1ZhbHVlTWF4OgogICAgIGNhc2Ug
Q1NTVmFsdWVDbGFtcDoKKyAgICBjYXNlIENTU1ZhbHVlU2luOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCmlu
ZGV4IDA0ZmVmZjVhZGQzYThiNGFjZDU2MGViNzYxZTkyODEwNDJiMTk2Y2MuLjEyNWE2MTE4MDRi
NjliMWU2MGVkNzY4NGQ0NWYzZjdhZmY5Y2U2MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NhbGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCkBAIC0yNiw4
ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25P
cGVyYXRpb24uaCIKIAotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRl
ICJtYXRoLmgiCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGZsb2F0IENhbGNFeHByZXNzaW9uT3BlcmF0aW9uOjpldmFsdWF0ZShmbG9h
dCBtYXhWYWx1ZSkgY29uc3QKQEAgLTg2LDYgKzg3LDEzIEBAIGZsb2F0IENhbGNFeHByZXNzaW9u
T3BlcmF0aW9uOjpldmFsdWF0ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QKICAgICAgICAgZmxvYXQg
bWF4ID0gbV9jaGlsZHJlblsyXS0+ZXZhbHVhdGUobWF4VmFsdWUpOwogICAgICAgICByZXR1cm4g
c3RkOjptYXgobWluLCBzdGQ6Om1pbih2YWx1ZSwgbWF4KSk7CiAgICAgfQorICAgIGNhc2UgQ2Fs
Y09wZXJhdG9yOjpTaW46IHsKKyAgICAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KTsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5WYWx1ZSA9IHNpbihtX2NoaWxkcmVuWzBd
LT5ldmFsdWF0ZShtYXhWYWx1ZSkpOworICAgICAgICByZXR1cm4gc2luVmFsdWU7CisgICAgfQog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2FsYy9DYWxjT3BlcmF0b3IuY3BwCmluZGV4IDhlN2RlZjNhNDk0N2JhZTQyZjg0ZjFlYWZiYzI3
ZmRhY2U3ZDM0ZTQuLjM1ZTI5M2VkNGNkZDZjOGJhMjYxNjJlNzJlMjE4NDE5Y2Y2MGM3NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ2FsY09w
ZXJhdG9yIG9wKQogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46IHRzIDw8ICJtaW4iOyBicmVh
azsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OiB0cyA8PCAibWF4IjsgYnJlYWs7CiAgICAg
Y2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOiB0cyA8PCAiY2xhbXAiOyBicmVhazsKKyAgICBjYXNl
IENhbGNPcGVyYXRvcjo6U2luOiB0cyA8PCAic2luIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVy
biB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09w
ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5oCmlu
ZGV4IDhkZGIzNDYwNjc5YTFiMTlmNTE0MDJjOTZiODFiY2IyOGNjNmU3YzAuLmU1MzYzZjNjMjIw
MTc1NjVlZGUyOGE5NTUyNmFjNGI5YTdhMjAzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2FsYy9DYWxjT3BlcmF0b3IuaApAQCAtMzgsNiArMzgsNyBAQCBlbnVtIGNsYXNzIENhbGNP
cGVyYXRvciA6IHVpbnQ4X3QgewogICAgIE1pbiA9IDAsCiAgICAgTWF4LAogICAgIENsYW1wLAor
ICAgIFNpbiwKIH07CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIENhbGNP
cGVyYXRvcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzc0MmY2MDI5ZjM5OGQ3YWUwMzg1Y2Y0Y2NhOWVjZWU4ZmVkNDU5
Ny4uMTZjMTk0YzJiMzA3ZDVlNTM5ZjllMWU4MTY1ZTE5ZjVjOTExNTRmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTA4LTI1ICBOaWtvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvY2FsYy9zaW1w
bGUtdHJpZy1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Nh
bGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA4LTE4ICBFcmlj
IEh1dGNoaXNvbiAgPGVodXRjaGlzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWMgRGVidWdd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2tleS1nZW5lcmF0b3Jz
L3JlYWRpbmctYXV0b2luY3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55Lndvcmtlci5odG1sIGlz
IGEgZmxha3kgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvc2ltcGxl
LXRyaWctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9zaW1w
bGUtdHJpZy1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMzJlNjRlMjMwZWIw
NWVjNjBiMmI2Yjc2OGNkYjZmOWRjYTA3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2NhbGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK0FsbCBib3hlcyBiZWxvdyBzaG91bGQgYmUgMTAwcHggKiAxMDBweCBhbmQgZ3JlZW4u
CisKKworCitzaW4oKSBpbnNpZGUgY2FsYygpCitjYWxjKHNpbig5MGRlZykqMTAwcHgpID0+IFBB
U1MKK2NhbGMoc2luKDMuMTQxNTkvMikqMTAwcHgpID0+IFBBU1MKK2NhbGMoc2luKDEuNTcwNzk1
cmFkKSoxMDBweCkgPT4gUEFTUworY2FsYyhzaW4oNDVkZWcrNDVkZWcpKjEwMHB4KSA9PiBGQUlM
OiBleHBlY3RlZCB3aWR0aCBvZiAxMDAsIGJ1dCB3YXMgMjU2CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2NhbGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2NhbGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZkZmM1NTZm
OTNlMDgxYTg3Nzc0NzZhZjg2YmQ2ZTExYTA3ODY4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvY2FsYy9zaW1wbGUtdHJpZy1mdW5jdGlvbnMuaHRtbApAQCAtMCwwICsxLDU1
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzdHlsZT4KKy53aWR0aC10ZXN0IHsKKyAgICBoZWlnaHQ6
IDEwMHB4OworICAgIHdpZHRoOiAyNTZweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9
CisKKy5oZWlnaHQtdGVzdCB7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDogNTBweDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgorCis8cD4KKyAgQWxsIGJv
eGVzIGJlbG93IHNob3VsZCBiZSAxMDBweCAqIDEwMHB4IGFuZCBncmVlbi4KKzwvcD4KKworPGRp
diBpZD0idGVzdCI+CisKKzxici8+PGJyLz5zaW4oKSBpbnNpZGUgY2FsYygpCis8ZGl2IGNsYXNz
PSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGMoc2luKDkwZGVnKSoxMDBweCk7Ij5jYWxj
KHNpbig5MGRlZykqMTAwcHgpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0i
d2lkdGg6IGNhbGMoc2luKDMuMTQxNTkvMikqMTAwcHgpOyI+Y2FsYyhzaW4oMy4xNDE1OS8yKSox
MDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2FsYyhz
aW4oMS41NzA3OTVyYWQpKjEwMHB4KTsiPmNhbGMoc2luKDEuNTcwNzk1cmFkKSoxMDBweCk8L2Rp
dj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2FsYyhzaW4oMy4xNDE1
OS8yICsgMSAtIDEpKjEwMHB4KTsiPmNhbGMoc2luKDMuMTQxNTkvMiArIDEgLSAxKSoxMDBweCk8
L2Rpdj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKwordmFyIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dCIpOworZm9yICh2YXIgY2hpbGQgPSB0ZXN0LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLm5leHRTaWJsaW5nKSB7CisgICAgdmFyIGVsZW1lbnQgPSBjaGlsZDsKKyAgICBpZiAoZWxl
bWVudC5jbGFzc05hbWUgPT0gIndyYXBwZXIiKSB7CisgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50
LmZpcnN0Q2hpbGQ7CisgICAgICAgIHdoaWxlIChlbGVtZW50LnRhZ05hbWUgIT0gIkRJViIpIGVs
ZW1lbnQgPSBlbGVtZW50Lm5leHRTaWJsaW5nOworICAgIH0KKworICAgIHZhciB3aWR0aCA9IGVs
ZW1lbnQub2Zmc2V0V2lkdGg7CisgICAgdmFyIGVycm9yID0gW107CisgICAgaWYgKHdpZHRoICE9
IDEwMCkKKyAgICAgICAgZXJyb3IucHVzaCgiZXhwZWN0ZWQgd2lkdGggb2YgMTAwLCBidXQgd2Fz
ICIgKyB3aWR0aCk7CisgICAgdmFyIGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0OworICAg
IGlmIChoZWlnaHQgIT0gMTAwKQorICAgICAgICBlcnJvci5wdXNoKCJleHBlY3RlZCBoZWlnaHQg
b2YgMTAwLCBidXQgd2FzICIgKyBoZWlnaHQpOworCisgICAgaWYgKGVycm9yID09ICIiKSB7Cisg
ICAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImdyZWVuIjsKKyAgICAgICAg
ZWxlbWVudC5pbm5lckhUTUwgKz0gIiA9PiBQQVNTIjsKKyAgICB9IGVsc2UKKyAgICAgICAgZWxl
bWVudC5pbm5lckhUTUwgKz0gIiA9PiBGQUlMOiAiICsgZXJyb3Iuam9pbigiLCAiKTsKK30KKzwv
c2NyaXB0PgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436674</attachid>
            <date>2021-08-27 14:18:52 -0700</date>
            <delta_ts>2021-08-31 16:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229507-20210827141852.patch</filename>
            <type>text/plain</type>
            <size>27122</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMGQ4MzA1MDI5MmJl
ZjFhYjA0MGZlZGQ4OWRmYTI2OGU1MDA0OC4uNzk3ODQzMmMyMzIzZjNmZDhiYzM3YjJlMDI1YmVj
MmQzZWNjN2QzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIxLTA4LTI3ICBOaWtv
cyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxjL3NpbXBsZS10cmlnLWZ1bmN0aW9ucy5odG1s
CisgICAgICAgICAgICAgICBjc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMu
aHRtbAorICAgICAgICAKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNpbiwgY29zLCBhbmQgdGFu
IGZ1bmN0aW9ucyB3aXRoaW4gY2FsYy4gQWxzbyBhZGQgZSBhbmQgcGkKKyAgICAgICAgY29uc3Rh
bnQgdmFsdWVzIHdpdGhpbiBjYWxjLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbjoKKyAgICAgICAgQWRkIHNpbixjb3MsZSBhbmQgcGkga2V5d29yZHMKKyAgICAg
ICAgCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmdldENvbnN0YW50VGFibGUpOgorICAgICAgICBBZGQgaGVscGVy
IGZ1bmN0aW9uIHdpdGggdGFibGUgbWFwcGluZyBlIGFuZCBwaSBrZXl3b3JkcyB0byB0aGVpcgor
ICAgICAgICBhcHByb3hpbWF0ZSBudW1lcmljYWwgdmFsdWUuCisgICAgICAgIAorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNGdW5jdGlvbik6
CisgICAgICAgIEFkZCBoYW5kbGluZyBmb3IgY3JlYXRpb24gb2Ygc2luLGNvcyx0YW4gb3BlcmF0
aW9uIG5vZGVzLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9u
Tm9kZVBhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIEFkZCBoYW5kbGluZyBmb3IgY3JlYXRp
b24gb2YgcHJpbWl0aXZlIGNzcyB2YWx1ZSB3aGVuIGNvbnN0YW50IGlzIHBhcnNlZC4KKyAgICAg
ICAgCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZGV0ZXJtaW5lQ2F0ZWdvcnkpOgorICAgICAgICBBZGQgc2luLGNvcyx0YW4g
dG8gc3dpdGNoIHN0YXRlbWVudC4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpmdW5jdGlv
bkZyb21PcGVyYXRvcik6CisgICAgICAgIEFkZCBzaW4sY29zLHRhbiB0byBzd2l0Y2ggc3RhdGVt
ZW50LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpj
cmVhdGVUcmlnKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjcmVhdGlvbiBvZiBzaW4sY29z
LHRhbiBvcGVyYXRpb24gbm9kZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y29tYmluZUNoaWxkcmVuKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZv
ciBwZXJmb3JtaW5nIHNpbixjb3MsdGFuIGZ1bmN0aW9uIG9uIGNoaWxkIG5vZGUuCisgICAgICAg
IAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZSk6
CisgICAgICAgIEFkZCBoYW5kbGluZyBmb3Igc2luLGNvcyx0YW4sIGFuZCBmaXggYnVnIHdoZW4g
Y2hlY2tpbmcgaWYgd2UgYXJlCisgICAgICAgIGF0IHRoZSByb290LgorICAgICAgICAKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpwcmltaXRpdmVUeXBlIGNvbnN0KToK
KyAgICAgICAgUmVtb3ZlIGFzc2VydCB0aGF0IGlzIG5vIGxvbmdlciBjb3JyZWN0LiBUcmlnIGZ1
bmN0aW9ucyB0YWtlIGNhbiB0YWtlIGFuCisgICAgICAgIGFuZ2xlIGFuZCByZXR1cm4gYSBudW1i
ZXIsIHNvIGl0IGlzIG5vIGxvbmdlciB0aGUgY2FzZSB0aGF0IGFsbCBjaGlsZHJlbgorICAgICAg
ICBvZiBhIG5vZGUgcHJvZHVjaW5nIGEgbnVtYmVyIG11c3QgYmUgbnVtYmVycyB0aGVtc2VsZi4K
KyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZG91Ymxl
VmFsdWUgY29uc3QpOgorICAgICAgICBDb252ZXJ0IGNoaWxyZW4gbm9kZXMgdGhhdCBhcmUgYW5n
bGVzIHRvIHJhZGlhbnMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25QcmVm
aXhGb3JPcGVyYXRvcik6CisgICAgICAgIEFkZCBoYW5kbGluZyBmb3Igc2luLGNvcyx0YW4uCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OmV2YWx1YXRl
T3BlcmF0b3IpOgorICAgICAgICBBZGQgZnVuY3Rpb25hbGl0eSBmb3Igc2luLGNvcyx0YW4gZnVu
Y3Rpb25zLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9k
ZS5oOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVDU1MpOgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIGNyZWF0aW9uIG9mIHNp
bixjb3MsdGFuIG9wZXJhdGlvbiBub2Rlcy4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpD
U1NDYWxjVmFsdWU6OmlzQ2FsY0Z1bmN0aW9uKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBz
aW4sY29zLHRhbi4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vY2FsYy9DYWxjRXhwcmVz
c2lvbk9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbk9wZXJh
dGlvbjo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICBBZGQgZnVuY3Rpb25hbGl0eSBmb3Igc2lu
LGNvcyx0YW4gZnVuY3Rpb24uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2NhbGMvQ2Fs
Y09wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICBB
ZGQgaGFuZGxpbmcgZm9yIHNpbixjb3MsdGFuLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9y
bS9jYWxjL0NhbGNPcGVyYXRvci5oOgorCiAyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IENyeXB0by5yYW5kb21VVUlEKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmNiYWViYTk3ZmY1YWQxNDUx
MjRkMGI1NzllZmQ2OGIzMGZkMTk5Zi4uN2ZlNmE1MWYyMDA4MDBjMjQ4Y2MwOWY1OWU3YjQ5ODE3
Mzc5ZWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzNTEs
NiArMTM1MSwxMCBAQCBjYWxjCiBtaW4KIG1heAogY2xhbXAKK3NpbgorY29zCitlCitwaQogCiBm
cm9tLWltYWdlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
RXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCmluZGV4IGJiNDY0ZjlmYzg3YWI3YzMxOWUxZTI0Njc4
NDU0ZDY2NDUwMzIwM2IuLmNjMGQ2Zjk0OTBiZjVlODNjNGJiYmI5NzdiNmIxZGU1ODVmOGIyMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9k
ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Np
b25Ob2RlUGFyc2VyLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgZW51bSBQYXJzZVN0YXRlIHsKICAg
ICBOb01vcmVUb2tlbnMKIH07CiAKK3N0YXRpYyBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUgZ2V0
Q29uc3RhbnRUYWJsZSgpCit7CisgICAgcmV0dXJuIHsge0NTU1ZhbHVlUGksIENTU1VuaXRUeXBl
OjpDU1NfTlVNQkVSLCBwaURvdWJsZX0sIHtDU1NWYWx1ZUUsIENTU1VuaXRUeXBlOjpDU1NfTlVN
QkVSLCBzdGQ6OmV4cCgxLjApfSB9OworfQorCiBzdGF0aWMgUGFyc2VTdGF0ZSBjaGVja0RlcHRo
QW5kSW5kZXgoaW50IGRlcHRoLCBDU1NQYXJzZXJUb2tlblJhbmdlIHRva2VucykKIHsKICAgICBp
ZiAodG9rZW5zLmF0RW5kKCkpCkBAIC0xMjQsNiArMTI5LDkgQEAgYm9vbCBDU1NDYWxjRXhwcmVz
c2lvbk5vZGVQYXJzZXI6OnBhcnNlQ2FsY0Z1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHRv
a2VucywKICAgICAgICAgbWluQXJndW1lbnRDb3VudCA9IDM7CiAgICAgICAgIG1heEFyZ3VtZW50
Q291bnQgPSAzOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlU2luOgorICAgIGNh
c2UgQ1NTVmFsdWVDb3M6CisgICAgY2FzZSBDU1NWYWx1ZVRhbjoKICAgICBjYXNlIENTU1ZhbHVl
Q2FsYzoKICAgICAgICAgbWF4QXJndW1lbnRDb3VudCA9IDE7CiAgICAgICAgIGJyZWFrOwpAQCAt
MTY2LDYgKzE3NCwxNSBAQCBib29sIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VD
YWxjRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgdG9rZW5zLAogICAgIGNhc2UgQ1NTVmFs
dWVDbGFtcDoKICAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0ZU1p
bk9yTWF4T3JDbGFtcChDYWxjT3BlcmF0b3I6OkNsYW1wLCBXVEZNb3ZlKG5vZGVzKSwgbV9kZXN0
aW5hdGlvbkNhdGVnb3J5KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVNpbjoK
KyAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0ZVRyaWcoQ2FsY09w
ZXJhdG9yOjpTaW4sIFdURk1vdmUobm9kZXMpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
U1NWYWx1ZUNvczoKKyAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0
ZVRyaWcoQ2FsY09wZXJhdG9yOjpDb3MsIFdURk1vdmUobm9kZXMpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NWYWx1ZVRhbjoKKyAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY09wZXJhdGlv
bk5vZGU6OmNyZWF0ZVRyaWcoQ2FsY09wZXJhdG9yOjpUYW4sIFdURk1vdmUobm9kZXMpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENhbGM6CiAgICAgY2FzZSBDU1NW
YWx1ZUNhbGM6CiAgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVT
dW0oV1RGTW92ZShub2RlcykpOwpAQCAtMTkzLDYgKzIxMCw3IEBAIGJvb2wgQ1NTQ2FsY0V4cHJl
c3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZhbHVlKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2Vucywg
UmVmUHRyCiAgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKICAgICBjYXNlIElkZW50VG9rZW46
IHsKICAgICAgICAgYXV0byB2YWx1ZSA9IG1fc3ltYm9sVGFibGUuZ2V0KHRva2VuLmlkKCkpOwor
ICAgICAgICB2YWx1ZSA9IHZhbHVlID8gdmFsdWUgOiBnZXRDb25zdGFudFRhYmxlKCkuZ2V0KHRv
a2VuLmlkKCkpOwogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICByZXR1cm4gbWFrZUNTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGUodmFsdWUtPnR5
cGUsIHZhbHVlLT52YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9D
U1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
T3BlcmF0aW9uTm9kZS5jcHAKaW5kZXggNWNlZGQ1M2E0MGJmN2VkYzAwNTAzZjdmY2ZkNjIwY2Ew
NDYzMDdmNy4uZTZhYTFlZjU5YjA1MDBmYzE1ZTE2NWUxYzYyMWNmNjhkMzcwOGFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcApAQCAt
NzIsNiArNzIsOSBAQCBzdGF0aWMgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXRlcm1pbmVDYXRlZ29y
eShjb25zdCBDU1NDYWxjRXhwcmVzc2lvbk5vZGUmIGxlZnRTaQogICAgICAgICBpZiAocmlnaHRD
YXRlZ29yeSAhPSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIgfHwgcmlnaHRTaWRlLmlzWmVy
bygpKQogICAgICAgICAgICAgcmV0dXJuIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyOwogICAg
ICAgICByZXR1cm4gbGVmdENhdGVnb3J5OworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46Cisg
ICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczoKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6VGFuOgog
ICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoK
ICAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q2xhbXA6CkBAIC0xNDAsNyArMTQzLDkgQEAgc3RhdGlj
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGV0ZXJtaW5lQ2F0ZWdvcnkoY29uc3QgVmVjdG9yPFJlZjxD
U1NDYWxjRXhwcmVzc2lvbk4KICAgICAgICAgICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRl
Z29yeTo6T3RoZXI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCisgICAgICAgIGNh
c2UgQ2FsY09wZXJhdG9yOjpTaW46CisgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6Cisg
ICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpUYW46CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9y
OjpNaW46CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNYXg6CiAgICAgICAgIGNhc2UgQ2Fs
Y09wZXJhdG9yOjpDbGFtcDoKQEAgLTI1NSw2ICsyNjAsMTIgQEAgc3RhdGljIENTU1ZhbHVlSUQg
ZnVuY3Rpb25Gcm9tT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9wKQogICAgICAgICByZXR1cm4gQ1NT
VmFsdWVNYXg7CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOgogICAgICAgICByZXR1cm4g
Q1NTVmFsdWVDbGFtcDsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOgorICAgICAgICByZXR1
cm4gQ1NTVmFsdWVTaW47CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczoKKyAgICAgICAgcmV0
dXJuIENTU1ZhbHVlQ29zOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpUYW46CisgICAgICAgIHJl
dHVybiBDU1NWYWx1ZVRhbjsKICAgICB9CiAgICAgcmV0dXJuIENTU1ZhbHVlQ2FsYzsKIH0KQEAg
LTM0MSw2ICszNTIsMjAgQEAgUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBDU1NDYWxjT3Bl
cmF0aW9uTm9kZTo6Y3JlYXRlTWluT3JNYXhPckNsYW1wKENhbGNPcGUKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0NhbGNPcGVyYXRpb25Ob2RlKGNhdGVnb3J5LnZhbHVlKCksIG9wLCBXVEZN
b3ZlKHZhbHVlcykpKTsKIH0KIAorUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y3JlYXRlVHJpZyhDYWxjT3BlcmF0b3Igb3AsIFZlY3RvcjxSZWY8Q1NT
Q2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpCit7CisgICAgaWYgKHZhbHVlcy5zaXplKCkg
IT0gMSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgYXV0byBjaGlsZENhdGVn
b3J5ID0gdmFsdWVzWzBdLT5jYXRlZ29yeSgpOworICAgIGlmIChjaGlsZENhdGVnb3J5ICE9IENh
bGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciAmJiBjaGlsZENhdGVnb3J5ICE9IENhbGN1bGF0aW9u
Q2F0ZWdvcnk6OkFuZ2xlKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0g
PDwgIkZhaWxlZCB0byBjcmVhdGUgdHJpZyBub2RlIGJlY2F1c2UgdW5hYmxlIHRvIGRldGVybWlu
ZSBjYXRlZ29yeSBmcm9tICIgPDwgcHJldHR5UHJpbnROb2Rlcyh2YWx1ZXMpKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NDYWxj
T3BlcmF0aW9uTm9kZShDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIG9wLCBXVEZNb3ZlKHZh
bHVlcykpKTsKK30KKwogdm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6aG9pc3RDaGlsZHJlbldp
dGhPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3ApCiB7CiAgICAgQVNTRVJUKG9wID09IENhbGNPcGVy
YXRvcjo6QWRkIHx8IG9wID09IENhbGNPcGVyYXRvcjo6TXVsdGlwbHkpOwpAQCAtNDA1LDkgKzQz
MCwxNyBAQCBib29sIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjYW5Db21iaW5lQWxsQ2hpbGRyZW4o
KSBjb25zdAogCiB2b2lkIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hpbGRyZW4oKQog
ewotICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSA8IDIpCi0gICAgICAgIHJldHVybjsKKyAgICBp
ZiAobV9jaGlsZHJlbi5zaXplKCkgPCAyKSB7CisgICAgICAgIGlmIChtX2NoaWxkcmVuLnNpemUo
KSA9PSAxICYmIGlzVHJpZ05vZGUoKSkgeworICAgICAgICAgICAgZG91YmxlIHJlc29sdmVkVmFs
dWUgPSBkb3VibGVWYWx1ZShtX2NoaWxkcmVuWzBdLT5wcmltaXRpdmVUeXBlKCkpOworICAgICAg
ICAgICAgYXV0byBuZXdDaGlsZCA9IENTU0NhbGNQcmltaXRpdmVWYWx1ZU5vZGU6OmNyZWF0ZShD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHJlc29sdmVkVmFsdWUsIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSKSk7CiAKKyAgICAgICAgICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKKyAgICAgICAgICAg
IG1fY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUobmV3Q2hpbGQpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAogICAgIGlmIChzaG91bGRTb3J0Q2hpbGRyZW4oKSkgewog
ICAgICAgICAvLyA8aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtNC8jc29ydC1h
LWNhbGN1bGF0aW9ucy1jaGlsZHJlbj4KICAgICAgICAgc3RkOjpzdGFibGVfc29ydChtX2NoaWxk
cmVuLmJlZ2luKCksIG1fY2hpbGRyZW4uZW5kKCksIFtdKGNvbnN0IGF1dG8mIGZpcnN0LCBjb25z
dCBhdXRvJiBzZWNvbmQpIHsKQEAgLTU5Niw3ICs2MjksNyBAQCBSZWY8Q1NTQ2FsY0V4cHJlc3Np
b25Ob2RlPiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6c2ltcGxpZnlOb2RlKFJlZjxDU1NDYWxjRXhw
cmVzcwogICAgIGlmIChpczxDU1NDYWxjT3BlcmF0aW9uTm9kZT4ocm9vdE5vZGUpKSB7CiAgICAg
ICAgIGF1dG8mIGNhbGNPcGVyYXRpb25Ob2RlID0gZG93bmNhc3Q8Q1NTQ2FsY09wZXJhdGlvbk5v
ZGU+KHJvb3ROb2RlLmdldCgpKTsKICAgICAgICAgLy8gRG9uJ3Qgc2ltcGxpZnkgYXQgdGhlIHJv
b3QsIG90aGVyd2lzZSB3ZSBsb3NlIHRyYWNrIG9mIHRoZSBvcGVyYXRpb24gZm9yIHNlcmlhbGl6
YXRpb24uCi0gICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5jaGlsZHJlbigpLnNpemUoKSA9
PSAxICYmIGRlcHRoKQorICAgICAgICBpZiAoY2FsY09wZXJhdGlvbk5vZGUuY2hpbGRyZW4oKS5z
aXplKCkgPT0gMSAmJiAhZGVwdGgpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShjYWxjT3Bl
cmF0aW9uTm9kZS5jaGlsZHJlbigpWzBdKTsKICAgICAgICAgCiAgICAgICAgIGlmIChjYWxjT3Bl
cmF0aW9uTm9kZS5pc0NhbGNTdW1Ob2RlKCkpIHsKQEAgLTYxMSw3ICs2NDQsMTAgQEAgUmVmPENT
U0NhbGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZShS
ZWY8Q1NTQ2FsY0V4cHJlc3MKICAgICAgICAgCiAgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9k
ZS5pc01pbk9yTWF4Tm9kZSgpKQogICAgICAgICAgICAgY2FsY09wZXJhdGlvbk5vZGUuY29tYmlu
ZUNoaWxkcmVuKCk7Ci0KKyAgICAgICAgCisgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5p
c1RyaWdOb2RlKCkpCisgICAgICAgICAgICBjYWxjT3BlcmF0aW9uTm9kZS5jb21iaW5lQ2hpbGRy
ZW4oKTsKKyAgICAgICAgCiAgICAgICAgIC8vIElmIG9ubHkgb25lIGNoaWxkIHJlbWFpbnMsIHJl
dHVybiB0aGUgY2hpbGQgKGV4Y2VwdCBhdCB0aGUgcm9vdCkuCiAgICAgICAgIGF1dG8gc2hvdWxk
Q29tYmluZVBhcmVudFdpdGhPbmx5Q2hpbGQgPSBbXShjb25zdCBDU1NDYWxjT3BlcmF0aW9uTm9k
ZSYgcGFyZW50LCBpbnQgZGVwdGgpCiAgICAgICAgIHsKQEAgLTY3NiwxMiArNzEyLDcgQEAgQ1NT
VW5pdFR5cGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OnByaW1pdGl2ZVR5cGUoKSBjb25zdAogICAg
IGF1dG8gdW5pdENhdGVnb3J5ID0gY2F0ZWdvcnkoKTsKICAgICBzd2l0Y2ggKHVuaXRDYXRlZ29y
eSkgewogICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyOgotI2lmIEFTU0VSVF9F
TkFCTEVECi0gICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBtX2NoaWxkcmVuKQotICAgICAgICAg
ICAgQVNTRVJUKGNoaWxkLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJl
cik7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOwotCiAg
ICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OiB7CiAgICAgICAgIGlmIChtX2No
aWxkcmVuLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1VO
S05PV047CkBAIC03NDgsNiArNzc5LDggQEAgZG91YmxlIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpk
b3VibGVWYWx1ZShDU1NVbml0VHlwZSB1bml0VHlwZSkgY29uc3QKICAgICAgICAgQ1NTVW5pdFR5
cGUgY2hpbGRUeXBlID0gdW5pdFR5cGU7CiAgICAgICAgIGlmIChhbGxvd051bWJlcnMgJiYgdW5p
dFR5cGUgIT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIgJiYgY2hpbGQtPnByaW1pdGl2ZVR5cGUo
KSA9PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikKICAgICAgICAgICAgIGNoaWxkVHlwZSA9IENT
U1VuaXRUeXBlOjpDU1NfTlVNQkVSOworICAgICAgICBpZiAoaXNUcmlnTm9kZSgpICYmIHVuaXRU
eXBlICE9IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKQorICAgICAgICAgICAgY2hpbGRUeXBlID0g
Q1NTVW5pdFR5cGU6OkNTU19SQUQ7CiAgICAgICAgIHJldHVybiBjaGlsZC0+ZG91YmxlVmFsdWUo
Y2hpbGRUeXBlKTsKICAgICB9KSk7CiB9CkBAIC04MDAsNiArODMzLDkgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIGZ1bmN0aW9uUHJlZml4Rm9yT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9wKQogICAgIGNh
c2UgQ2FsY09wZXJhdG9yOjpEaXZpZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gIiI7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogcmV0dXJuICJz
aW4oIjsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q29zOiByZXR1cm4gImNvcygiOworICAgIGNh
c2UgQ2FsY09wZXJhdG9yOjpUYW46IHJldHVybiAidGFuKCI7CiAgICAgY2FzZSBDYWxjT3BlcmF0
b3I6Ok1pbjogcmV0dXJuICJtaW4oIjsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OiByZXR1
cm4gIm1heCgiOwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogcmV0dXJuICJjbGFtcCgi
OwpAQCAtMTAwNCw2ICsxMDQwLDI0IEBAIGRvdWJsZSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZXZh
bHVhdGVPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3AsIGNvbnN0IFZlY3Rvcjxkb3ViCiAgICAgICAg
IGRvdWJsZSBtYXggPSBjaGlsZHJlblsyXTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KG1pbiwg
c3RkOjptaW4odmFsdWUsIG1heCkpOwogICAgIH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2lu
OiB7CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICBkb3Vi
bGUgc2luVmFsdWUgPSBzaW4oY2hpbGRyZW5bMF0pOworICAgICAgICByZXR1cm4gc2luVmFsdWU7
CisgICAgfQorICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6IHsKKyAgICAgICAgaWYgKGNoaWxk
cmVuLnNpemUoKSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgIGRvdWJsZSBzaW5WYWx1ZSA9IGNvcyhjaGls
ZHJlblswXSk7CisgICAgICAgIHJldHVybiBzaW5WYWx1ZTsKKyAgICB9CisgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OlRhbjogeworICAgICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
KyAgICAgICAgZG91YmxlIHNpblZhbHVlID0gdGFuKGNoaWxkcmVuWzBdKTsKKyAgICAgICAgcmV0
dXJuIHNpblZhbHVlOworICAgIH0KICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
T3BlcmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlv
bk5vZGUuaAppbmRleCBlOGU4ZmFlZWMxNTI5ZmE1ZmMzODk2MDBmNGQzNDJkM2ZkNmIzNTQ1Li5h
NmI0MWVkMTU2OWY3ZmEzNDY4Y2M1ZGRlZDFhODZkZTdmZjVhMDA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmgKQEAgLTM3LDYgKzM3LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZVN1
bShWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFsdWVzKTsKICAgICBzdGF0
aWMgUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBjcmVhdGVQcm9kdWN0KFZlY3RvcjxSZWY8
Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogICAgIHN0YXRpYyBSZWZQdHI8Q1NT
Q2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZU1pbk9yTWF4T3JDbGFtcChDYWxjT3BlcmF0b3IsIFZl
Y3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMsIENhbGN1bGF0aW9uQ2F0
ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3Bl
cmF0aW9uTm9kZT4gY3JlYXRlVHJpZyhDYWxjT3BlcmF0b3IsIFZlY3RvcjxSZWY8Q1NTQ2FsY0V4
cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogCiAgICAgc3RhdGljIFJlZjxDU1NDYWxjRXhwcmVz
c2lvbk5vZGU+IHNpbXBsaWZ5KFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiYpOwogCkBAIC00
Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY1N1bU5vZGUoKSBjb25zdCB7IHJl
dHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6QWRkOyB9CiAgICAgYm9vbCBpc0NhbGNQ
cm9kdWN0Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlcmF0b3IgPT0gQ2FsY09wZXJhdG9yOjpN
dWx0aXBseTsgfQogICAgIGJvb2wgaXNNaW5Pck1heE5vZGUoKSBjb25zdCB7IHJldHVybiBtX29w
ZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TWluIHx8IG1fb3BlcmF0b3IgPT0gQ2FsY09wZXJhdG9y
OjpNYXg7IH0KKyAgICBib29sIGlzVHJpZ05vZGUoKSBjb25zdCB7IHJldHVybiBtX29wZXJhdG9y
ID09IENhbGNPcGVyYXRvcjo6U2luIHx8IG1fb3BlcmF0b3IgPT0gQ2FsY09wZXJhdG9yOjpDb3Mg
fHwgbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6OlRhbjsgfQogICAgIGJvb2wgc2hvdWxkU29y
dENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gaXNDYWxjU3VtTm9kZSgpIHx8IGlzQ2FsY1Byb2R1
Y3ROb2RlKCk7IH0KIAogICAgIHZvaWQgaG9pc3RDaGlsZHJlbldpdGhPcGVyYXRvcihDYWxjT3Bl
cmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAKaW5kZXggZDZh
YWU1YTA1OWY3ZmI0MWI4MmI1ZmExNmU2NzNlMjZkY2YzMzMzNS4uZDU3YmY2MDZlMDE3M2M1MDBi
NDM5NDJkYTM3N2MxMTI2NzNiYmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2Nh
bGMvQ1NTQ2FsY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
VmFsdWUuY3BwCkBAIC0xNjQsNiArMTY0LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY0V4cHJl
c3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlLCBjCiAK
ICAgICAgICAgICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlUHJvZHVjdChj
cmVhdGVDU1Mob3BlcmF0aW9uQ2hpbGRyZW4sIHN0eWxlKSk7CiAgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBDYWxjT3BlcmF0b3I6OkNvczoKKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlRhbjoK
KyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogeworICAgICAgICAgICAgYXV0byBjaGls
ZHJlbiA9IGNyZWF0ZUNTUyhvcGVyYXRpb25DaGlsZHJlbiwgc3R5bGUpOworICAgICAgICAgICAg
aWYgKGNoaWxkcmVuLnNpemUoKSAhPSAxKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVUcmlnKG9w
LCBXVEZNb3ZlKGNoaWxkcmVuKSk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDYWxjT3BlcmF0
b3I6Ok1pbjoKICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoKICAgICAgICAgY2FzZSBD
YWxjT3BlcmF0b3I6OkNsYW1wOiB7CkBAIC0yODMsNiArMjkxLDkgQEAgYm9vbCBDU1NDYWxjVmFs
dWU6OmlzQ2FsY0Z1bmN0aW9uKENTU1ZhbHVlSUQgZnVuY3Rpb25JZCkKICAgICBjYXNlIENTU1Zh
bHVlTWluOgogICAgIGNhc2UgQ1NTVmFsdWVNYXg6CiAgICAgY2FzZSBDU1NWYWx1ZUNsYW1wOgor
ICAgIGNhc2UgQ1NTVmFsdWVTaW46CisgICAgY2FzZSBDU1NWYWx1ZUNvczoKKyAgICBjYXNlIENT
U1ZhbHVlVGFuOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0Nh
bGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMv
Q2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCmluZGV4IDA0ZmVmZjVhZGQzYThiNGFjZDU2MGVi
NzYxZTkyODEwNDJiMTk2Y2MuLjNkY2JkZTM3ZjZmMmFiOWY2MjhmNmE3MGJjNDJkNWRjNjkxMTIw
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY0V4cHJlc3Np
b25PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY0V4
cHJlc3Npb25PcGVyYXRpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uaCIKIAorI2luY2x1ZGUgPGNt
YXRoPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtODYsNiArODcsMjEgQEAgZmxvYXQgQ2FsY0V4cHJlc3Npb25PcGVyYXRpb246OmV2
YWx1YXRlKGZsb2F0IG1heFZhbHVlKSBjb25zdAogICAgICAgICBmbG9hdCBtYXggPSBtX2NoaWxk
cmVuWzJdLT5ldmFsdWF0ZShtYXhWYWx1ZSk7CiAgICAgICAgIHJldHVybiBzdGQ6Om1heChtaW4s
IHN0ZDo6bWluKHZhbHVlLCBtYXgpKTsKICAgICB9CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNp
bjogeworICAgICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICBy
ZXR1cm4gc3RkOjpzaW4obV9jaGlsZHJlblswXS0+ZXZhbHVhdGUobWF4VmFsdWUpKTsKKyAgICB9
CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczogeworICAgICAgICBpZiAobV9jaGlsZHJlbi5z
aXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1cm4gc3RkOjpjb3MobV9jaGlsZHJlblswXS0+
ZXZhbHVhdGUobWF4VmFsdWUpKTsKKyAgICB9CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlRhbjog
eworICAgICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1
cm4gc3RkOjp0YW4obV9jaGlsZHJlblswXS0+ZXZhbHVhdGUobWF4VmFsdWUpKTsKKyAgICB9CiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdGQ6Om51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
YWxjL0NhbGNPcGVyYXRvci5jcHAKaW5kZXggOGU3ZGVmM2E0OTQ3YmFlNDJmODRmMWVhZmJjMjdm
ZGFjZTdkMzRlNC4uYjkwMDRiNWJmYjNhZGRhM2QwYWU2NjU2YWZlYzkxODVhMjJjNmFjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJhdG9yLmNwcApAQCAtNDAs
NiArNDAsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDYWxjT3Bl
cmF0b3Igb3ApCiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjogdHMgPDwgIm1pbiI7IGJyZWFr
OwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNYXg6IHRzIDw8ICJtYXgiOyBicmVhazsKICAgICBj
YXNlIENhbGNPcGVyYXRvcjo6Q2xhbXA6IHRzIDw8ICJjbGFtcCI7IGJyZWFrOworICAgIGNhc2Ug
Q2FsY09wZXJhdG9yOjpTaW46IHRzIDw8ICJzaW4iOyBicmVhazsKKyAgICBjYXNlIENhbGNPcGVy
YXRvcjo6Q29zOiB0cyA8PCAiY29zIjsgYnJlYWs7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlRh
bjogdHMgPDwgInRhbiI7IGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuaAppbmRleCA4ZGRiMzQ2MDY3OWEx
YjE5ZjUxNDAyYzk2YjgxYmNiMjhjYzZlN2MwLi43OTJiYzI4MzM4MzI4YTBlM2U0NTRiMzUzMWVi
ZTIzNjJiZGVlOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0Nh
bGNPcGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJh
dG9yLmgKQEAgLTM4LDYgKzM4LDkgQEAgZW51bSBjbGFzcyBDYWxjT3BlcmF0b3IgOiB1aW50OF90
IHsKICAgICBNaW4gPSAwLAogICAgIE1heCwKICAgICBDbGFtcCwKKyAgICBTaW4sCisgICAgQ29z
LAorICAgIFRhbiwKIH07CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIENh
bGNPcGVyYXRvcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzc0MmY2MDI5ZjM5OGQ3YWUwMzg1Y2Y0Y2NhOWVjZWU4ZmVk
NDU5Ny4uODU0MmQwZDUyZGQyZjFmNjIxMzI4MjM2NGQ3NGJhNmFhYTliNWI0NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIxLTA4LTI3ICBOaWtvcyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGVkIHRlc3Qg
Zm9yIGp1c3Qgc2luLGNvcyx0YW4gaW5kaXZpZHVhbGx5LCBhbmQgYSBzZXBhcmF0ZSB0ZXN0IGZv
ciBhbGwgdG9nZXRoZXIgYWxvbmcKKyAgICAgICAgd2l0aCBjb25zdGFudHMuCisKKyAgICAgICAg
KiBjc3MzL2NhbGMvc2ltcGxlLXRyaWctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogY3NzMy9jYWxjL3NpbXBsZS10cmlnLWZ1bmN0aW9ucy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25z
dGFudHMuaHRtbDogQWRkZWQuCisKIDIwMjEtMDgtMTggIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNo
aXNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hYyBEZWJ1Z10gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5LWdlbmVyYXRvcnMvcmVhZGluZy1hdXRvaW5jcmVt
ZW50LWluZGV4ZXMtY3Vyc29ycy5hbnkud29ya2VyLmh0bWwgaXMgYSBmbGFreSBjcmFzaC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy9zaW1wbGUtdHJpZy1mdW5jdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL3NpbXBsZS10cmlnLWZ1bmN0aW9ucy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM1ZmMwOWU5OTc3ZWY4OTUxYWNlYzQ4OTU4YTFlNzI5
NzE2YmNlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9zaW1wbGUt
dHJpZy1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK0FsbCBib3hlcyBi
ZWxvdyBzaG91bGQgYmUgMTAwcHggKiAxMDBweCBhbmQgZ3JlZW4uCisKKworCitzaW4oKSBpbnNp
ZGUgY2FsYygpCitjYWxjKHNpbig5MGRlZykqMTAwcHgpID0+IFBBU1MKK2NhbGMoc2luKDQ1ZGVn
ICsgNDVkZWcpKjEwMHB4KSA9PiBQQVNTCitjYWxjKHNpbigyMGRlZyAqIDIgKyA1ZGVnICsgNDVk
ZWcpKjEwMHB4KSA9PiBQQVNTCitjYWxjKHNpbigzLjE0MTU5LzIpKjEwMHB4KSA9PiBQQVNTCitj
YWxjKHNpbigxLjU3MDc5NXJhZCkqMTAwcHgpID0+IFBBU1MKK2NhbGMoc2luKDMwZGVnICsgMS4w
NDcxOTY3cmFkICkgKiAxMDBweCkgPT4gUEFTUworY2FsYyhzaW4oMy4xNDE1OS8yICsgMSAtIDEp
KjEwMHB4KSA9PiBQQVNTCisKKworY29zKCkgaW5zaWRlIGNhbGMoKQorY2FsYyhjb3MoMGRlZykg
KiAxMDBweCkgPT4gUEFTUworY2FsYyhjb3MoLTE1ZGVnICsgMTVkZWcpICogMTAwcHgpID0+IFBB
U1MKK2NhbGMoY29zKC0yMGRlZyAqIDIgLSA1ZGVnICsgNDVkZWcpICogMTAwcHgpID0+IFBBU1MK
K2NhbGMoY29zKDApICogMTAwcHgpID0+IFBBU1MKK2NhbGMoY29zKDByYWQgKSAqIDEwMHB4KSA9
PiBQQVNTCitjYWxjKGNvcygzMGRlZyAtIDAuNTIzNTk5cmFkICkgKiAxMDBweCkgPT4gUEFTUwor
Y2FsYyhjb3MoMCAvIDIgKyAxIC0gMSkgKiAxMDBweCkgPT4gUEFTUworCisKK3RhbigpIGluc2lk
ZSBjYWxjKCkKK2NhbGModGFuKDQ1ZGVnKSAqIDEwMHB4KSA9PiBQQVNTCitjYWxjKHRhbigyMGRl
ZyArIDI1ZGVnKSAqIDEwMHB4KSA9PiBQQVNTCitjYWxjKHRhbigyMGRlZyAqIDIgKyA1ZGVnKSAq
IDEwMHB4KSA9PiBQQVNTCitjYWxjKHRhbigzLjE0MTU5IC8gNCkgKiAxMDBweCkgPT4gUEFTUwor
Y2FsYyh0YW4oMC43ODUzOTc1cmFkICkgKiAxMDBweCkgPT4gUEFTUworY2FsYyh0YW4oMzBkZWcg
KyAwLjI2MTc5OXJhZCApICogMTAwcHgpID0+IFBBU1MKK2NhbGModGFuKDMuMTQxNTkgLyA0ICsg
MSAtIDEpICogMTAwcHgpID0+IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2Fs
Yy9zaW1wbGUtdHJpZy1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9zaW1w
bGUtdHJpZy1mdW5jdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWE4ZjdiMGM0ZjEzMjY4OTlmMzc0
OTQzMzY4OGU2OGI4MzE1MDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9j
YWxjL3NpbXBsZS10cmlnLWZ1bmN0aW9ucy5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQ
RSBIVE1MPgorPHN0eWxlPgorLndpZHRoLXRlc3QgeworICAgIGhlaWdodDogMTAwcHg7CisgICAg
d2lkdGg6IDI1NnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKworLmhlaWdodC10
ZXN0IHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJhY2tncm91
bmQtY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+CisKKzxwPgorICBBbGwgYm94ZXMgYmVsb3cgc2hv
dWxkIGJlIDEwMHB4ICogMTAwcHggYW5kIGdyZWVuLgorPC9wPgorCis8ZGl2IGlkPSJ0ZXN0Ij4K
KworPGJyLz48YnIvPnNpbigpIGluc2lkZSBjYWxjKCkKKzxkaXYgY2xhc3M9IndpZHRoLXRlc3Qi
IHN0eWxlPSJ3aWR0aDogY2FsYyhzaW4oOTBkZWcpICogMTAwcHgpOyI+Y2FsYyhzaW4oOTBkZWcp
KjEwMHB4KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxj
KHNpbig0NWRlZyArIDQ1ZGVnKSAqIDEwMHB4KTsiPmNhbGMoc2luKDQ1ZGVnICsgNDVkZWcpKjEw
MHB4KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKHNp
bigyMGRlZyAqIDIgKyA1ZGVnICsgNDVkZWcpICogMTAwcHgpOyI+Y2FsYyhzaW4oMjBkZWcgKiAy
ICsgNWRlZyArIDQ1ZGVnKSoxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0
eWxlPSJ3aWR0aDogY2FsYyhzaW4oMy4xNDE1OSAvIDIpICogMTAwcHgpOyI+Y2FsYyhzaW4oMy4x
NDE1OS8yKSoxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0
aDogY2FsYyhzaW4oMS41NzA3OTVyYWQgKSAqIDEwMHB4KTsiPmNhbGMoc2luKDEuNTcwNzk1cmFk
KSoxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2Fs
YyhzaW4oMzBkZWcgKyAxLjA0NzE5NjdyYWQgKSAqIDEwMHB4KTsiPmNhbGMoc2luKDMwZGVnICsg
MS4wNDcxOTY3cmFkICkgKiAxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0
eWxlPSJ3aWR0aDogY2FsYyhzaW4oMy4xNDE1OSAvIDIgKyAxIC0gMSkgKiAxMDBweCk7Ij5jYWxj
KHNpbigzLjE0MTU5LzIgKyAxIC0gMSkqMTAwcHgpPC9kaXY+CisKKzxici8+PGJyLz5jb3MoKSBp
bnNpZGUgY2FsYygpCis8ZGl2IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGMo
Y29zKDBkZWcpICogMTAwcHgpOyI+Y2FsYyhjb3MoMGRlZykgKiAxMDBweCk8L2Rpdj4KKzxkaXYg
Y2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2FsYyhjb3MoLTE1ZGVnICsgMTVkZWcp
ICogMTAwcHgpOyI+Y2FsYyhjb3MoLTE1ZGVnICsgMTVkZWcpICogMTAwcHgpPC9kaXY+Cis8ZGl2
IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGMoY29zKC0yMGRlZyAqIDIgLSA1
ZGVnICsgNDVkZWcpICogMTAwcHgpOyI+Y2FsYyhjb3MoLTIwZGVnICogMiAtIDVkZWcgKyA0NWRl
ZykgKiAxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDog
Y2FsYyhjb3MoMCkgKiAxMDBweCk7Ij5jYWxjKGNvcygwKSAqIDEwMHB4KTwvZGl2PgorPGRpdiBj
bGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKGNvcygwcmFkICkgKiAxMDBweCk7
Ij5jYWxjKGNvcygwcmFkICkgKiAxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3Qi
IHN0eWxlPSJ3aWR0aDogY2FsYyhjb3MoMzBkZWcgLSAwLjUyMzU5OXJhZCApICogMTAwcHgpOyI+
Y2FsYyhjb3MoMzBkZWcgLSAwLjUyMzU5OXJhZCApICogMTAwcHgpPC9kaXY+Cis8ZGl2IGNsYXNz
PSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGMoY29zKDAgLyAyICsgMSAtIDEpICogMTAw
cHgpOyI+Y2FsYyhjb3MoMCAvIDIgKyAxIC0gMSkgKiAxMDBweCk8L2Rpdj4KKworPGJyLz48YnIv
PnRhbigpIGluc2lkZSBjYWxjKCkKKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0
aDogY2FsYyh0YW4oNDVkZWcpICogMTAwcHgpOyI+Y2FsYyh0YW4oNDVkZWcpICogMTAwcHgpPC9k
aXY+Cis8ZGl2IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGModGFuKDIwZGVn
ICsgMjVkZWcpICogMTAwcHgpOyI+Y2FsYyh0YW4oMjBkZWcgKyAyNWRlZykgKiAxMDBweCk8L2Rp
dj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2FsYyh0YW4oMjBkZWcg
KiAyICsgNWRlZykgKiAxMDBweCk7Ij5jYWxjKHRhbigyMGRlZyAqIDIgKyA1ZGVnKSAqIDEwMHB4
KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKHRhbigz
LjE0MTU5IC8gNCkgKiAxMDBweCk7Ij5jYWxjKHRhbigzLjE0MTU5IC8gNCkgKiAxMDBweCk8L2Rp
dj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2FsYyh0YW4oMC43ODUz
OTc1cmFkICkgKiAxMDBweCk7Ij5jYWxjKHRhbigwLjc4NTM5NzVyYWQgKSAqIDEwMHB4KTwvZGl2
PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKHRhbigzMGRlZyAr
IDAuMjYxNzk5cmFkICkgKiAxMDBweCk7Ij5jYWxjKHRhbigzMGRlZyArIDAuMjYxNzk5cmFkICkg
KiAxMDBweCk8L2Rpdj4KKzxkaXYgY2xhc3M9IndpZHRoLXRlc3QiIHN0eWxlPSJ3aWR0aDogY2Fs
Yyh0YW4oMy4xNDE1OSAvIDQgKyAxIC0gMSkgKiAxMDBweCk7Ij5jYWxjKHRhbigzLjE0MTU5IC8g
NCArIDEgLSAxKSAqIDEwMHB4KTwvZGl2PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCit2YXIgdGVzdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Citmb3IgKHZhciBjaGlsZCA9IHRlc3QuZmlyc3RDaGls
ZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpIHsKKyAgICB2YXIgZWxlbWVudCA9
IGNoaWxkOworICAgIGlmIChlbGVtZW50LmNsYXNzTmFtZSA9PSAid3JhcHBlciIpIHsKKyAgICAg
ICAgZWxlbWVudCA9IGVsZW1lbnQuZmlyc3RDaGlsZDsKKyAgICAgICAgd2hpbGUgKGVsZW1lbnQu
dGFnTmFtZSAhPSAiRElWIikgZWxlbWVudCA9IGVsZW1lbnQubmV4dFNpYmxpbmc7CisgICAgfQor
CisgICAgdmFyIHdpZHRoID0gZWxlbWVudC5vZmZzZXRXaWR0aDsKKyAgICB2YXIgZXJyb3IgPSBb
XTsKKyAgICBpZiAod2lkdGggIT0gMTAwKQorICAgICAgICBlcnJvci5wdXNoKCJleHBlY3RlZCB3
aWR0aCBvZiAxMDAsIGJ1dCB3YXMgIiArIHdpZHRoKTsKKyAgICB2YXIgaGVpZ2h0ID0gZWxlbWVu
dC5vZmZzZXRIZWlnaHQ7CisgICAgaWYgKGhlaWdodCAhPSAxMDApCisgICAgICAgIGVycm9yLnB1
c2goImV4cGVjdGVkIGhlaWdodCBvZiAxMDAsIGJ1dCB3YXMgIiArIGhlaWdodCk7CisKKyAgICBp
ZiAoZXJyb3IgPT0gIiIpIHsKKyAgICAgICAgZWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAiZ3JlZW4iOworICAgICAgICBlbGVtZW50LmlubmVySFRNTCArPSAiID0+IFBBU1MiOworICAg
IH0gZWxzZQorICAgICAgICBlbGVtZW50LmlubmVySFRNTCArPSAiID0+IEZBSUw6ICIgKyBlcnJv
ci5qb2luKCIsICIpOworfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvY2FsYy90cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI1YTY4YzQ5NGEyY2RkOTljZjMwODFiMTUwZGI1ODdlYjRjZmM5NTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMt
d2l0aC1jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0FsbCBib3hlcyBi
ZWxvdyBzaG91bGQgYmUgMTAwcHggKiAxMDBweCBhbmQgZ3JlZW4uCisKKworCitzaW4oKSBpbnNp
ZGUgY2FsYygpIHdpdGggcGkKK2NhbGMoc2luKHBpLzIpICogMTAwcHgpID0+IFBBU1MKK2NhbGMo
Y29zKHBpLzIgLSBwaS8yKSAqIDEwMHB4KSA9PiBQQVNTCitjYWxjKHRhbihwaS80KSAqIDEwMHB4
KSA9PiBQQVNTCitjYWxjKHNpbihwaS80ICsgcGkvNCkgKiAxMDBweCkgPT4gUEFTUworY2FsYyhj
b3Moc2luKGNvcyhwaSkgKyAxKSkgKiAxMDBweCkgPT4gUEFTUworY2FsYyhzaW4odGFuKHBpLzQp
KnBpLzIpICogMTAwcHgpID0+IFBBU1MKK2NhbGMoY29zKGUgLSAyLjcxODI4MTgyODQ1OTA0NTIz
NTQpICogMTAwcHgpID0+IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy90
cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxj
L3RyaWctZnVuY3Rpb25zLXdpdGgtY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJiMDA3Mzcw
MzY4MTZkY2UzZjUwNzFiYWU5N2QwZTViODk0OTE3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvY2FsYy90cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy5odG1sCkBAIC0w
LDAgKzEsNTggQEAKKzwhRE9DVFlQRSBIVE1MPgorPHN0eWxlPgorLndpZHRoLXRlc3QgeworICAg
IGhlaWdodDogMTAwcHg7CisgICAgd2lkdGg6IDI1NnB4OworICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKK30KKworLmhlaWdodC10ZXN0IHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0
OiA1MHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+CisKKzxwPgor
ICBBbGwgYm94ZXMgYmVsb3cgc2hvdWxkIGJlIDEwMHB4ICogMTAwcHggYW5kIGdyZWVuLgorPC9w
PgorCis8ZGl2IGlkPSJ0ZXN0Ij4KKworPGJyLz48YnIvPnNpbigpIGluc2lkZSBjYWxjKCkgd2l0
aCBwaQorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKHNpbihwaS8y
KSAqIDEwMHB4KTsiPmNhbGMoc2luKHBpLzIpICogMTAwcHgpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ3
aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6IGNhbGMoY29zKHBpLzIgLSBwaS8yKSAqIDEwMHB4KTsi
PmNhbGMoY29zKHBpLzIgLSBwaS8yKSAqIDEwMHB4KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgt
dGVzdCIgc3R5bGU9IndpZHRoOiBjYWxjKHRhbihwaS80KSAqIDEwMHB4KTsiPmNhbGModGFuKHBp
LzQpICogMTAwcHgpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6
IGNhbGMoc2luKHBpLzQgKyBwaS80KSAqIDEwMHB4KTsiPmNhbGMoc2luKHBpLzQgKyBwaS80KSAq
IDEwMHB4KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRoOiBjYWxj
KGNvcyhzaW4oY29zKHBpKSArIDEpKSAqIDEwMHB4KTsiPmNhbGMoY29zKHNpbihjb3MocGkpICsg
MSkpICogMTAwcHgpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ3aWR0aC10ZXN0IiBzdHlsZT0id2lkdGg6
IGNhbGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEwMHB4KTsiPmNhbGMoc2luKHRhbihwaS80KSpw
aS8yKSAqIDEwMHB4KTwvZGl2PgorPGRpdiBjbGFzcz0id2lkdGgtdGVzdCIgc3R5bGU9IndpZHRo
OiBjYWxjKGNvcyhlIC0gMi43MTgyODE4Mjg0NTkwNDUyMzU0KSAqIDEwMHB4KTsiPmNhbGMoY29z
KGUgLSAyLjcxODI4MTgyODQ1OTA0NTIzNTQpICogMTAwcHgpPC9kaXY+CisKKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK3Zh
ciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKK2ZvciAodmFyIGNoaWxk
ID0gdGVzdC5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgewor
ICAgIHZhciBlbGVtZW50ID0gY2hpbGQ7CisgICAgaWYgKGVsZW1lbnQuY2xhc3NOYW1lID09ICJ3
cmFwcGVyIikgeworICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5maXJzdENoaWxkOworICAgICAg
ICB3aGlsZSAoZWxlbWVudC50YWdOYW1lICE9ICJESVYiKSBlbGVtZW50ID0gZWxlbWVudC5uZXh0
U2libGluZzsKKyAgICB9CisKKyAgICB2YXIgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoOwor
ICAgIHZhciBlcnJvciA9IFtdOworICAgIGlmICh3aWR0aCAhPSAxMDApCisgICAgICAgIGVycm9y
LnB1c2goImV4cGVjdGVkIHdpZHRoIG9mIDEwMCwgYnV0IHdhcyAiICsgd2lkdGgpOworICAgIHZh
ciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDsKKyAgICBpZiAoaGVpZ2h0ICE9IDEwMCkK
KyAgICAgICAgZXJyb3IucHVzaCgiZXhwZWN0ZWQgaGVpZ2h0IG9mIDEwMCwgYnV0IHdhcyAiICsg
aGVpZ2h0KTsKKworICAgIGlmIChlcnJvciA9PSAiIikgeworICAgICAgICBlbGVtZW50LnN0eWxl
LmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7CisgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MICs9
ICIgPT4gUEFTUyI7CisgICAgfSBlbHNlCisgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MICs9ICIg
PT4gRkFJTDogIiArIGVycm9yLmpvaW4oIiwgIik7Cit9Cis8L3NjcmlwdD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436966</attachid>
            <date>2021-08-31 16:47:00 -0700</date>
            <delta_ts>2021-08-31 16:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229507-20210831164659.patch</filename>
            <type>text/plain</type>
            <size>35953</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMGQ4MzA1MDI5MmJl
ZjFhYjA0MGZlZGQ4OWRmYTI2OGU1MDA0OC4uNDJkNTAzZmJiMDJlODA3YjM2NDYyY2RiNTQ5ZmE1
NDEzMGQ2NmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDIxLTA4LTI3ICBOaWtv
cyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBjYWxjIG1hdGggZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxjL3NpbXBsZS10cmlnLWZ1bmN0aW9ucy5odG1s
CisgICAgICAgICAgICAgICBjc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMu
aHRtbAorICAgICAgICAKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNpbiwgY29zLCBhbmQgdGFu
IGZ1bmN0aW9ucyB3aXRoaW4gY2FsYy4gQWxzbyBhZGQgZSBhbmQgcGkKKyAgICAgICAgY29uc3Rh
bnQgdmFsdWVzIHdpdGhpbiBjYWxjLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbjoKKyAgICAgICAgQWRkIHNpbixjb3MsZSBhbmQgcGkga2V5d29yZHMuCisgICAg
ICAgIAorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXRDb25zdGFudFRhYmxlKToKKyAgICAgICAgQWRkIGhlbHBl
ciBmdW5jdGlvbiB3aXRoIHRhYmxlIG1hcHBpbmcgZSBhbmQgcGkga2V5d29yZHMgdG8gdGhlaXIK
KyAgICAgICAgYXBwcm94aW1hdGUgbnVtZXJpY2FsIHZhbHVlLgorICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjRnVuY3Rpb24p
OgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIGNyZWF0aW9uIG9mIHNpbixjb3MsdGFuIG9wZXJh
dGlvbiBub2Rlcy4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjRXhwcmVzc2lv
bk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIGNyZWF0
aW9uIG9mIHByaW1pdGl2ZSBjc3MgdmFsdWUgd2hlbiBjb25zdGFudCBpcyBwYXJzZWQuCisgICAg
ICAgIAorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRldGVybWluZUNhdGVnb3J5KToKKyAgICAgICAgQWRkIHNpbixjb3MsdGFu
IHRvIHN3aXRjaCBzdGF0ZW1lbnQuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rp
b25Gcm9tT3BlcmF0b3IpOgorICAgICAgICBBZGQgc2luLGNvcyx0YW4gdG8gc3dpdGNoIHN0YXRl
bWVudC4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6
Y3JlYXRlVHJpZyk6CisgICAgICAgIEFkZCBmdW5jdGlvbiBmb3IgY3JlYXRpb24gb2Ygc2luLGNv
cyx0YW4gb3BlcmF0aW9uIG5vZGUuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2Fs
Y09wZXJhdGlvbk5vZGU6OmNvbWJpbmVDaGlsZHJlbik6CisgICAgICAgIEFkZCBoYW5kbGluZyBm
b3IgcGVyZm9ybWluZyBzaW4sY29zLHRhbiBmdW5jdGlvbiBvbiBjaGlsZCBub2RlLgorICAgICAg
ICAKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpzaW1wbGlmeU5vZGUp
OgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIHNpbixjb3MsdGFuLgorICAgICAgICAKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpwcmltaXRpdmVUeXBlIGNvbnN0KToK
KyAgICAgICAgUmVtb3ZlIGFzc2VydCB0aGF0IGlzIG5vIGxvbmdlciBjb3JyZWN0LiBUcmlnIGZ1
bmN0aW9ucyB0YWtlIGNhbiB0YWtlIGFuCisgICAgICAgIGFuZ2xlIGFuZCByZXR1cm4gYSBudW1i
ZXIsIHNvIGl0IGlzIG5vIGxvbmdlciB0aGUgY2FzZSB0aGF0IGFsbCBjaGlsZHJlbgorICAgICAg
ICBvZiBhIG5vZGUgcHJvZHVjaW5nIGEgbnVtYmVyIG11c3QgYmUgbnVtYmVycyB0aGVtc2VsZi4K
KyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZG91Ymxl
VmFsdWUgY29uc3QpOgorICAgICAgICBDb252ZXJ0IGNoaWxyZW4gbm9kZXMgdGhhdCBhcmUgYW5n
bGVzIHRvIHJhZGlhbnMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25QcmVm
aXhGb3JPcGVyYXRvcik6CisgICAgICAgIEFkZCBoYW5kbGluZyBmb3Igc2luLGNvcyx0YW4uCisg
ICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlvbk5vZGU6OmV2YWx1YXRl
T3BlcmF0b3IpOgorICAgICAgICBBZGQgZnVuY3Rpb25hbGl0eSBmb3Igc2luLGNvcyx0YW4gZnVu
Y3Rpb25zLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9k
ZS5oOgorICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVDU1MpOgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIGNyZWF0aW9uIG9mIHNp
bixjb3MsdGFuIG9wZXJhdGlvbiBub2Rlcy4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpD
U1NDYWxjVmFsdWU6OmlzQ2FsY0Z1bmN0aW9uKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBz
aW4sY29zLHRhbi4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vY2FsYy9DYWxjRXhwcmVz
c2lvbk9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbk9wZXJh
dGlvbjo6ZXZhbHVhdGUgY29uc3QpOgorICAgICAgICBBZGQgZnVuY3Rpb25hbGl0eSBmb3Igc2lu
LGNvcyx0YW4gZnVuY3Rpb24uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2NhbGMvQ2Fs
Y09wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICBB
ZGQgaGFuZGxpbmcgZm9yIHNpbixjb3MsdGFuLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9y
bS9jYWxjL0NhbGNPcGVyYXRvci5oOgorCiAyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IENyeXB0by5yYW5kb21VVUlEKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmNiYWViYTk3ZmY1YWQxNDUx
MjRkMGI1NzllZmQ2OGIzMGZkMTk5Zi4uN2ZlNmE1MWYyMDA4MDBjMjQ4Y2MwOWY1OWU3YjQ5ODE3
Mzc5ZWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTEzNTEs
NiArMTM1MSwxMCBAQCBjYWxjCiBtaW4KIG1heAogY2xhbXAKK3NpbgorY29zCitlCitwaQogCiBm
cm9tLWltYWdlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
RXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCmluZGV4IGJiNDY0ZjlmYzg3YWI3YzMxOWUxZTI0Njc4
NDU0ZDY2NDUwMzIwM2IuLjliNzE4MDhhZDQzNWI1MTAzNjg0MzhkODJhNGZiMGE5ZWJiZWMxZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNFeHByZXNzaW9uTm9k
ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY0V4cHJlc3Np
b25Ob2RlUGFyc2VyLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgZW51bSBQYXJzZVN0YXRlIHsKICAg
ICBOb01vcmVUb2tlbnMKIH07CiAKK3N0YXRpYyBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUgZ2V0
Q29uc3RhbnRUYWJsZSgpCit7CisgICAgcmV0dXJuIHsgeyBDU1NWYWx1ZVBpLCBDU1NVbml0VHlw
ZTo6Q1NTX05VTUJFUiwgcGlEb3VibGUgfSwgeyBDU1NWYWx1ZUUsIENTU1VuaXRUeXBlOjpDU1Nf
TlVNQkVSLCBzdGQ6OmV4cCgxLjApIH0gfTsKK30KKwogc3RhdGljIFBhcnNlU3RhdGUgY2hlY2tE
ZXB0aEFuZEluZGV4KGludCBkZXB0aCwgQ1NTUGFyc2VyVG9rZW5SYW5nZSB0b2tlbnMpCiB7CiAg
ICAgaWYgKHRva2Vucy5hdEVuZCgpKQpAQCAtMTI0LDYgKzEyOSw5IEBAIGJvb2wgQ1NTQ2FsY0V4
cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZUNhbGNGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdl
JiB0b2tlbnMsCiAgICAgICAgIG1pbkFyZ3VtZW50Q291bnQgPSAzOwogICAgICAgICBtYXhBcmd1
bWVudENvdW50ID0gMzsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZVNpbjoKKyAg
ICBjYXNlIENTU1ZhbHVlQ29zOgorICAgIGNhc2UgQ1NTVmFsdWVUYW46CiAgICAgY2FzZSBDU1NW
YWx1ZUNhbGM6CiAgICAgICAgIG1heEFyZ3VtZW50Q291bnQgPSAxOwogICAgICAgICBicmVhazsK
QEAgLTE2Niw2ICsxNzQsMTUgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBh
cnNlQ2FsY0Z1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHRva2VucywKICAgICBjYXNlIENT
U1ZhbHVlQ2xhbXA6CiAgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVh
dGVNaW5Pck1heE9yQ2xhbXAoQ2FsY09wZXJhdG9yOjpDbGFtcCwgV1RGTW92ZShub2RlcyksIG1f
ZGVzdGluYXRpb25DYXRlZ29yeSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVT
aW46CisgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVUcmlnKENh
bGNPcGVyYXRvcjo6U2luLCBXVEZNb3ZlKG5vZGVzKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTVmFsdWVDb3M6CisgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpj
cmVhdGVUcmlnKENhbGNPcGVyYXRvcjo6Q29zLCBXVEZNb3ZlKG5vZGVzKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWVUYW46CisgICAgICAgIHJlc3VsdCA9IENTU0NhbGNPcGVy
YXRpb25Ob2RlOjpjcmVhdGVUcmlnKENhbGNPcGVyYXRvcjo6VGFuLCBXVEZNb3ZlKG5vZGVzKSk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDYWxjOgogICAgIGNhc2Ug
Q1NTVmFsdWVDYWxjOgogICAgICAgICByZXN1bHQgPSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3Jl
YXRlU3VtKFdURk1vdmUobm9kZXMpKTsKQEAgLTE5Myw2ICsyMTAsNyBAQCBib29sIENTU0NhbGNF
eHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VWYWx1ZShDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tl
bnMsIFJlZlB0cgogICAgIHN3aXRjaCAodG9rZW4udHlwZSgpKSB7CiAgICAgY2FzZSBJZGVudFRv
a2VuOiB7CiAgICAgICAgIGF1dG8gdmFsdWUgPSBtX3N5bWJvbFRhYmxlLmdldCh0b2tlbi5pZCgp
KTsKKyAgICAgICAgdmFsdWUgPSB2YWx1ZSA/IHZhbHVlIDogZ2V0Q29uc3RhbnRUYWJsZSgpLmdl
dCh0b2tlbi5pZCgpKTsKICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgcmV0dXJuIG1ha2VDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlKHZhbHVl
LT50eXBlLCB2YWx1ZS0+dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2Nh
bGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NT
Q2FsY09wZXJhdGlvbk5vZGUuY3BwCmluZGV4IDVjZWRkNTNhNDBiZjdlZGMwMDUwM2Y3ZmNmZDYy
MGNhMDQ2MzA3ZjcuLjYyNDMxZDZiYTJjYWQ1MzU0ZjY4YzY2ZDgxMmQ0OWRkNjMxZTUzNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5jcHAK
QEAgLTcyLDYgKzcyLDkgQEAgc3RhdGljIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGV0ZXJtaW5lQ2F0
ZWdvcnkoY29uc3QgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlJiBsZWZ0U2kKICAgICAgICAgaWYgKHJp
Z2h0Q2F0ZWdvcnkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyIHx8IHJpZ2h0U2lkZS5p
c1plcm8oKSkKICAgICAgICAgICAgIHJldHVybiBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcjsK
ICAgICAgICAgcmV0dXJuIGxlZnRDYXRlZ29yeTsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2lu
OgorICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlRh
bjoKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWluOgogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpN
YXg6CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOgpAQCAtMTQwLDcgKzE0Myw5IEBAIHN0
YXRpYyBDYWxjdWxhdGlvbkNhdGVnb3J5IGRldGVybWluZUNhdGVnb3J5KGNvbnN0IFZlY3RvcjxS
ZWY8Q1NTQ2FsY0V4cHJlc3Npb25OCiAgICAgICAgICAgICAgICAgcmV0dXJuIENhbGN1bGF0aW9u
Q2F0ZWdvcnk6Ok90aGVyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAg
ICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOgorICAgICAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q29z
OgorICAgICAgICBjYXNlIENhbGNPcGVyYXRvcjo6VGFuOgogICAgICAgICBjYXNlIENhbGNPcGVy
YXRvcjo6TWluOgogICAgICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OgogICAgICAgICBjYXNl
IENhbGNPcGVyYXRvcjo6Q2xhbXA6CkBAIC0yNTUsNiArMjYwLDEyIEBAIHN0YXRpYyBDU1NWYWx1
ZUlEIGZ1bmN0aW9uRnJvbU9wZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKICAgICAgICAgcmV0dXJu
IENTU1ZhbHVlTWF4OwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDoKICAgICAgICAgcmV0
dXJuIENTU1ZhbHVlQ2xhbXA7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjoKKyAgICAgICAg
cmV0dXJuIENTU1ZhbHVlU2luOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6CisgICAgICAg
IHJldHVybiBDU1NWYWx1ZUNvczsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6VGFuOgorICAgICAg
ICByZXR1cm4gQ1NTVmFsdWVUYW47CiAgICAgfQogICAgIHJldHVybiBDU1NWYWx1ZUNhbGM7CiB9
CkBAIC0zNDEsNiArMzUyLDIwIEBAIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gQ1NTQ2Fs
Y09wZXJhdGlvbk5vZGU6OmNyZWF0ZU1pbk9yTWF4T3JDbGFtcChDYWxjT3BlCiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDU1NDYWxjT3BlcmF0aW9uTm9kZShjYXRlZ29yeS52YWx1ZSgpLCBvcCwg
V1RGTW92ZSh2YWx1ZXMpKSk7CiB9CiAKK1JlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gQ1NT
Q2FsY09wZXJhdGlvbk5vZGU6OmNyZWF0ZVRyaWcoQ2FsY09wZXJhdG9yIG9wLCBWZWN0b3I8UmVm
PENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFsdWVzKQoreworICAgIGlmICh2YWx1ZXMuc2l6
ZSgpICE9IDEpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIAorICAgIGF1dG8gY2hpbGRD
YXRlZ29yeSA9IHZhbHVlc1swXS0+Y2F0ZWdvcnkoKTsKKyAgICBpZiAoY2hpbGRDYXRlZ29yeSAh
PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIgJiYgY2hpbGRDYXRlZ29yeSAhPSBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpBbmdsZSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oQ2FsYywgc3Ry
ZWFtIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHRyaWcgbm9kZSBiZWNhdXNlIHVuYWJsZSB0byBkZXRl
cm1pbmUgY2F0ZWdvcnkgZnJvbSAiIDw8IHByZXR0eVByaW50Tm9kZXModmFsdWVzKSk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NT
Q2FsY09wZXJhdGlvbk5vZGUoQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCBvcCwgV1RGTW92
ZSh2YWx1ZXMpKSk7Cit9CisKIHZvaWQgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmhvaXN0Q2hpbGRy
ZW5XaXRoT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9wKQogewogICAgIEFTU0VSVChvcCA9PSBDYWxj
T3BlcmF0b3I6OkFkZCB8fCBvcCA9PSBDYWxjT3BlcmF0b3I6Ok11bHRpcGx5KTsKQEAgLTQwNSw5
ICs0MzAsMTcgQEAgYm9vbCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y2FuQ29tYmluZUFsbENoaWxk
cmVuKCkgY29uc3QKIAogdm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y29tYmluZUNoaWxkcmVu
KCkKIHsKLSAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkgPCAyKQotICAgICAgICByZXR1cm47Cisg
ICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpIDwgMikgeworICAgICAgICBpZiAobV9jaGlsZHJlbi5z
aXplKCkgPT0gMSAmJiBpc1RyaWdOb2RlKCkpIHsKKyAgICAgICAgICAgIGRvdWJsZSByZXNvbHZl
ZFZhbHVlID0gZG91YmxlVmFsdWUobV9jaGlsZHJlblswXS0+cHJpbWl0aXZlVHlwZSgpKTsKKyAg
ICAgICAgICAgIGF1dG8gbmV3Q2hpbGQgPSBDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2RlOjpjcmVh
dGUoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShyZXNvbHZlZFZhbHVlLCBDU1NVbml0VHlwZTo6
Q1NTX05VTUJFUikpOwogCisgICAgICAgICAgICBtX2NoaWxkcmVuLmNsZWFyKCk7CisgICAgICAg
ICAgICBtX2NoaWxkcmVuLmFwcGVuZChXVEZNb3ZlKG5ld0NoaWxkKSk7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBpZiAoc2hvdWxkU29ydENoaWxkcmVuKCkp
IHsKICAgICAgICAgLy8gPGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTQvI3Nv
cnQtYS1jYWxjdWxhdGlvbnMtY2hpbGRyZW4+CiAgICAgICAgIHN0ZDo6c3RhYmxlX3NvcnQobV9j
aGlsZHJlbi5iZWdpbigpLCBtX2NoaWxkcmVuLmVuZCgpLCBbXShjb25zdCBhdXRvJiBmaXJzdCwg
Y29uc3QgYXV0byYgc2Vjb25kKSB7CkBAIC01OTUsOCArNjI4LDggQEAgUmVmPENTU0NhbGNFeHBy
ZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZShSZWY8Q1NTQ2Fs
Y0V4cHJlc3MKICAgICAvLyB1c2luZyBpdHMgY2hpbGRyZW4sIGV4cHJlc3NlZCBpbiB0aGUgcmVz
dWx04oCZcyBjYW5vbmljYWwgdW5pdC4KICAgICBpZiAoaXM8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+
KHJvb3ROb2RlKSkgewogICAgICAgICBhdXRvJiBjYWxjT3BlcmF0aW9uTm9kZSA9IGRvd25jYXN0
PENTU0NhbGNPcGVyYXRpb25Ob2RlPihyb290Tm9kZS5nZXQoKSk7Ci0gICAgICAgIC8vIERvbid0
IHNpbXBsaWZ5IGF0IHRoZSByb290LCBvdGhlcndpc2Ugd2UgbG9zZSB0cmFjayBvZiB0aGUgb3Bl
cmF0aW9uIGZvciBzZXJpYWxpemF0aW9uLgotICAgICAgICBpZiAoY2FsY09wZXJhdGlvbk5vZGUu
Y2hpbGRyZW4oKS5zaXplKCkgPT0gMSAmJiBkZXB0aCkKKyAgICAgICAgLy8gU2ltcGxpZnkgb3Bl
cmF0aW9ucyB3aXRoIG9ubHkgb25lIGNoaWxkIG5vZGUgKG90aGVyIHRoYW4gcm9vdCBhbmQgb3Bl
cmF0aW9ucyB0aGF0IG9ubHkgbmVlZCBvbmUgbm9kZSkuCisgICAgICAgIGlmIChjYWxjT3BlcmF0
aW9uTm9kZS5jaGlsZHJlbigpLnNpemUoKSA9PSAxICYmIGRlcHRoICYmICFjYWxjT3BlcmF0aW9u
Tm9kZS5pc1RyaWdOb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShjYWxjT3BlcmF0
aW9uTm9kZS5jaGlsZHJlbigpWzBdKTsKICAgICAgICAgCiAgICAgICAgIGlmIChjYWxjT3BlcmF0
aW9uTm9kZS5pc0NhbGNTdW1Ob2RlKCkpIHsKQEAgLTYxMSw3ICs2NDQsMTAgQEAgUmVmPENTU0Nh
bGNFeHByZXNzaW9uTm9kZT4gQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OnNpbXBsaWZ5Tm9kZShSZWY8
Q1NTQ2FsY0V4cHJlc3MKICAgICAgICAgCiAgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5p
c01pbk9yTWF4Tm9kZSgpKQogICAgICAgICAgICAgY2FsY09wZXJhdGlvbk5vZGUuY29tYmluZUNo
aWxkcmVuKCk7Ci0KKyAgICAgICAgCisgICAgICAgIGlmIChjYWxjT3BlcmF0aW9uTm9kZS5pc1Ry
aWdOb2RlKCkpCisgICAgICAgICAgICBjYWxjT3BlcmF0aW9uTm9kZS5jb21iaW5lQ2hpbGRyZW4o
KTsKKyAgICAgICAgCiAgICAgICAgIC8vIElmIG9ubHkgb25lIGNoaWxkIHJlbWFpbnMsIHJldHVy
biB0aGUgY2hpbGQgKGV4Y2VwdCBhdCB0aGUgcm9vdCkuCiAgICAgICAgIGF1dG8gc2hvdWxkQ29t
YmluZVBhcmVudFdpdGhPbmx5Q2hpbGQgPSBbXShjb25zdCBDU1NDYWxjT3BlcmF0aW9uTm9kZSYg
cGFyZW50LCBpbnQgZGVwdGgpCiAgICAgICAgIHsKQEAgLTY3NiwxMiArNzEyLDcgQEAgQ1NTVW5p
dFR5cGUgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OnByaW1pdGl2ZVR5cGUoKSBjb25zdAogICAgIGF1
dG8gdW5pdENhdGVnb3J5ID0gY2F0ZWdvcnkoKTsKICAgICBzd2l0Y2ggKHVuaXRDYXRlZ29yeSkg
ewogICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyOgotI2lmIEFTU0VSVF9FTkFC
TEVECi0gICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBtX2NoaWxkcmVuKQotICAgICAgICAgICAg
QVNTRVJUKGNoaWxkLT5jYXRlZ29yeSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcik7
Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOwotCiAgICAg
Y2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OiB7CiAgICAgICAgIGlmIChtX2NoaWxk
cmVuLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX1VOS05P
V047CkBAIC03NDgsNiArNzc5LDggQEAgZG91YmxlIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpkb3Vi
bGVWYWx1ZShDU1NVbml0VHlwZSB1bml0VHlwZSkgY29uc3QKICAgICAgICAgQ1NTVW5pdFR5cGUg
Y2hpbGRUeXBlID0gdW5pdFR5cGU7CiAgICAgICAgIGlmIChhbGxvd051bWJlcnMgJiYgdW5pdFR5
cGUgIT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIgJiYgY2hpbGQtPnByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikKICAgICAgICAgICAgIGNoaWxkVHlwZSA9IENTU1Vu
aXRUeXBlOjpDU1NfTlVNQkVSOworICAgICAgICBpZiAoaXNUcmlnTm9kZSgpICYmIHVuaXRUeXBl
ICE9IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSKQorICAgICAgICAgICAgY2hpbGRUeXBlID0gQ1NT
VW5pdFR5cGU6OkNTU19SQUQ7CiAgICAgICAgIHJldHVybiBjaGlsZC0+ZG91YmxlVmFsdWUoY2hp
bGRUeXBlKTsKICAgICB9KSk7CiB9CkBAIC04MDAsNiArODMzLDkgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIGZ1bmN0aW9uUHJlZml4Rm9yT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9wKQogICAgIGNhc2Ug
Q2FsY09wZXJhdG9yOjpEaXZpZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gIiI7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogcmV0dXJuICJzaW4o
IjsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q29zOiByZXR1cm4gImNvcygiOworICAgIGNhc2Ug
Q2FsY09wZXJhdG9yOjpUYW46IHJldHVybiAidGFuKCI7CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6
Ok1pbjogcmV0dXJuICJtaW4oIjsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4OiByZXR1cm4g
Im1heCgiOwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogcmV0dXJuICJjbGFtcCgiOwpA
QCAtMTAwNCw2ICsxMDQwLDIxIEBAIGRvdWJsZSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6ZXZhbHVh
dGVPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3AsIGNvbnN0IFZlY3Rvcjxkb3ViCiAgICAgICAgIGRv
dWJsZSBtYXggPSBjaGlsZHJlblsyXTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KG1pbiwgc3Rk
OjptaW4odmFsdWUsIG1heCkpOwogICAgIH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOiB7
CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1cm4g
c3RkOjpzaW4oY2hpbGRyZW5bMF0pOworICAgIH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q29z
OiB7CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1
cm4gc3RkOjpjb3MoY2hpbGRyZW5bMF0pOworICAgIH0KKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6
VGFuOiB7CisgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICBy
ZXR1cm4gc3RkOjp0YW4oY2hpbGRyZW5bMF0pOworICAgIH0KICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMv
Q1NTQ2FsY09wZXJhdGlvbk5vZGUuaAppbmRleCBlOGU4ZmFlZWMxNTI5ZmE1ZmMzODk2MDBmNGQz
NDJkM2ZkNmIzNTQ1Li5hNmI0MWVkMTU2OWY3ZmEzNDY4Y2M1ZGRlZDFhODZkZTdmZjVhMDA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmgKQEAg
LTM3LDYgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlv
bk5vZGU+IGNyZWF0ZVN1bShWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFs
dWVzKTsKICAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBjcmVhdGVQcm9k
dWN0KFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogICAgIHN0
YXRpYyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZU1pbk9yTWF4T3JDbGFtcChD
YWxjT3BlcmF0b3IsIFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMs
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRpb25DYXRlZ29yeSk7CisgICAgc3RhdGljIFJl
ZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9kZT4gY3JlYXRlVHJpZyhDYWxjT3BlcmF0b3IsIFZlY3Rv
cjxSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPj4mJiB2YWx1ZXMpOwogCiAgICAgc3RhdGljIFJl
ZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IHNpbXBsaWZ5KFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU+JiYpOwogCkBAIC00Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY1N1bU5v
ZGUoKSBjb25zdCB7IHJldHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6QWRkOyB9CiAg
ICAgYm9vbCBpc0NhbGNQcm9kdWN0Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlcmF0b3IgPT0g
Q2FsY09wZXJhdG9yOjpNdWx0aXBseTsgfQogICAgIGJvb2wgaXNNaW5Pck1heE5vZGUoKSBjb25z
dCB7IHJldHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TWluIHx8IG1fb3BlcmF0b3Ig
PT0gQ2FsY09wZXJhdG9yOjpNYXg7IH0KKyAgICBib29sIGlzVHJpZ05vZGUoKSBjb25zdCB7IHJl
dHVybiBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6U2luIHx8IG1fb3BlcmF0b3IgPT0gQ2Fs
Y09wZXJhdG9yOjpDb3MgfHwgbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6OlRhbjsgfQogICAg
IGJvb2wgc2hvdWxkU29ydENoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gaXNDYWxjU3VtTm9kZSgp
IHx8IGlzQ2FsY1Byb2R1Y3ROb2RlKCk7IH0KIAogICAgIHZvaWQgaG9pc3RDaGlsZHJlbldpdGhP
cGVyYXRvcihDYWxjT3BlcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2Nh
bGMvQ1NTQ2FsY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1
ZS5jcHAKaW5kZXggZDZhYWU1YTA1OWY3ZmI0MWI4MmI1ZmExNmU2NzNlMjZkY2YzMzMzNS4uZDU3
YmY2MDZlMDE3M2M1MDBiNDM5NDJkYTM3N2MxMTI2NzNiYmExZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwCkBAIC0xNjQsNiArMTY0LDE0IEBAIHN0YXRpYyBSZWZQ
dHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBjcmVhdGVDU1MoY29uc3QgQ2FsY0V4cHJlc3Npb25O
b2RlJiBub2RlLCBjCiAKICAgICAgICAgICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6
Y3JlYXRlUHJvZHVjdChjcmVhdGVDU1Mob3BlcmF0aW9uQ2hpbGRyZW4sIHN0eWxlKSk7CiAgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczoKKyAgICAgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OlRhbjoKKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjogeworICAgICAg
ICAgICAgYXV0byBjaGlsZHJlbiA9IGNyZWF0ZUNTUyhvcGVyYXRpb25DaGlsZHJlbiwgc3R5bGUp
OworICAgICAgICAgICAgaWYgKGNoaWxkcmVuLnNpemUoKSAhPSAxKQorICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIENTU0NhbGNPcGVyYXRpb25Ob2Rl
OjpjcmVhdGVUcmlnKG9wLCBXVEZNb3ZlKGNoaWxkcmVuKSk7CisgICAgICAgIH0KICAgICAgICAg
Y2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjoKICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoK
ICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOiB7CkBAIC0yODMsNiArMjkxLDkgQEAg
Ym9vbCBDU1NDYWxjVmFsdWU6OmlzQ2FsY0Z1bmN0aW9uKENTU1ZhbHVlSUQgZnVuY3Rpb25JZCkK
ICAgICBjYXNlIENTU1ZhbHVlTWluOgogICAgIGNhc2UgQ1NTVmFsdWVNYXg6CiAgICAgY2FzZSBD
U1NWYWx1ZUNsYW1wOgorICAgIGNhc2UgQ1NTVmFsdWVTaW46CisgICAgY2FzZSBDU1NWYWx1ZUNv
czoKKyAgICBjYXNlIENTU1ZhbHVlVGFuOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZh
dWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NhbGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCmluZGV4IDA0ZmVmZjVh
ZGQzYThiNGFjZDU2MGViNzYxZTkyODEwNDJiMTk2Y2MuLjNkY2JkZTM3ZjZmMmFiOWY2MjhmNmE3
MGJjNDJkNWRjNjkxMTIwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nh
bGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NhbGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uaCIK
IAorI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODYsNiArODcsMjEgQEAgZmxvYXQgQ2FsY0V4cHJlc3Np
b25PcGVyYXRpb246OmV2YWx1YXRlKGZsb2F0IG1heFZhbHVlKSBjb25zdAogICAgICAgICBmbG9h
dCBtYXggPSBtX2NoaWxkcmVuWzJdLT5ldmFsdWF0ZShtYXhWYWx1ZSk7CiAgICAgICAgIHJldHVy
biBzdGQ6Om1heChtaW4sIHN0ZDo6bWluKHZhbHVlLCBtYXgpKTsKICAgICB9CisgICAgY2FzZSBD
YWxjT3BlcmF0b3I6OlNpbjogeworICAgICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkgIT0gMSkK
KyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpOworICAgICAgICByZXR1cm4gc3RkOjpzaW4obV9jaGlsZHJlblswXS0+ZXZhbHVhdGUobWF4
VmFsdWUpKTsKKyAgICB9CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczogeworICAgICAgICBp
ZiAobV9jaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICByZXR1cm4gc3RkOjpjb3Mo
bV9jaGlsZHJlblswXS0+ZXZhbHVhdGUobWF4VmFsdWUpKTsKKyAgICB9CisgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OlRhbjogeworICAgICAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigp
OworICAgICAgICByZXR1cm4gc3RkOjp0YW4obV9jaGlsZHJlblswXS0+ZXZhbHVhdGUobWF4VmFs
dWUpKTsKKyAgICB9CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHAKaW5kZXggOGU3ZGVmM2E0OTQ3YmFl
NDJmODRmMWVhZmJjMjdmZGFjZTdkMzRlNC4uYjkwMDRiNWJmYjNhZGRhM2QwYWU2NjU2YWZlYzkx
ODVhMjJjNmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxj
T3BlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09wZXJh
dG9yLmNwcApAQCAtNDAsNiArNDAsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBDYWxjT3BlcmF0b3Igb3ApCiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjogdHMg
PDwgIm1pbiI7IGJyZWFrOwogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNYXg6IHRzIDw8ICJtYXgi
OyBicmVhazsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q2xhbXA6IHRzIDw8ICJjbGFtcCI7IGJy
ZWFrOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46IHRzIDw8ICJzaW4iOyBicmVhazsKKyAg
ICBjYXNlIENhbGNPcGVyYXRvcjo6Q29zOiB0cyA8PCAiY29zIjsgYnJlYWs7CisgICAgY2FzZSBD
YWxjT3BlcmF0b3I6OlRhbjogdHMgPDwgInRhbiI7IGJyZWFrOwogICAgIH0KICAgICByZXR1cm4g
dHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVy
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuaAppbmRl
eCA4ZGRiMzQ2MDY3OWExYjE5ZjUxNDAyYzk2YjgxYmNiMjhjYzZlN2MwLi43OTJiYzI4MzM4MzI4
YTBlM2U0NTRiMzUzMWViZTIzNjJiZGVlOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NhbGMvQ2FsY09wZXJhdG9yLmgKQEAgLTM4LDYgKzM4LDkgQEAgZW51bSBjbGFzcyBDYWxjT3Bl
cmF0b3IgOiB1aW50OF90IHsKICAgICBNaW4gPSAwLAogICAgIE1heCwKICAgICBDbGFtcCwKKyAg
ICBTaW4sCisgICAgQ29zLAorICAgIFRhbiwKIH07CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYsIENhbGNPcGVyYXRvcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzc0MmY2MDI5ZjM5OGQ3YWUwMzg1
Y2Y0Y2NhOWVjZWU4ZmVkNDU5Ny4uOTFhMTM4MjdlOTc4YmFhMjQyNGMxZDY0MjQ0NzljYzhmZWQy
ZGExZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA4LTI3ICBOaWtvcyBNb3VjaHRhcmlz
ICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBjYWxjIG1hdGgg
ZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjk1MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvY3NzL2NhbGMtcGFyc2luZy5odG1sOgorICAgICAgICBBZGRlZCBwYXJzaW5nIHRl
c3RzIGZvciBzaW4sIGNvcywgdGFuLCBlIGFuZCBwaS4KKworICAgICAgICAqIGNzczMvY2FsYy90
cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkZWQg
YWRkaXRpb25hbCB0ZXN0cyBmb3IgZXhwZWN0ZWQgYmVoYXZpb3Igb2Ygc2luLCBjb3MsIHRhbiwg
ZSBhbmQgcGkuCisKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2NhbGMtYW5pbWF0
aW9uLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZGVkIGFuaW1hdGlvbiB0ZXN0IGZvciBl
eHBhbmRpbmcgd2lkdGggb2YgYm94IGdpdmVuIGEgd2lkdGggZGVmaW5lZCB1c2luZyBhIGNhbGMg
ZXhwcmVzc2lvbgorICAgICAgICBJbnZvbHZpbmcgc2luIGFuZCBjb3MuCisgICAgICAgIAorCiAy
MDIxLTA4LTE4ICBFcmljIEh1dGNoaXNvbiAgPGVodXRjaGlzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNYWMgRGVidWddIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2tleS1nZW5lcmF0b3JzL3JlYWRpbmctYXV0b2luY3JlbWVudC1pbmRleGVzLWN1cnNvcnMuYW55
Lndvcmtlci5odG1sIGlzIGEgZmxha3kgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2NhbGMtYW5pbWF0aW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9jYWxjLWFuaW1hdGlvbi10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NzA0NWE2MjY2YzJlNjc0NTFlNTI2YjAxMjVjY2YxOTc0ZGM5MzRhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jYWxjLWFuaW1hdGlvbi10ZXN0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1BBU1MgLSAid2lkdGgiIHByb3BlcnR5IGZvciAiYm94IiBlbGVt
ZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTUwCitQQVNTIC0gIndpZHRoIiBw
cm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAy
MDAKK1BBU1MgLSAid2lkdGgiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDEuOTlzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDMwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2NhbGMtYW5pbWF0aW9uLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
Y2FsYy1hbmltYXRpb24tdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzYWNmNzFmMjUxN2IzMDI2ZTAx
YTIwNDYzZTA3NWRiNjY4OTdlNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2NhbGMtYW5pbWF0aW9uLXRlc3QuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlv
bi10ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorCitAa2V5ZnJhbWVzIFRoZUFu
aW1hdGlvbiB7CisgICAgZnJvbSB7IHdpZHRoOiBjYWxjKDEwMHB4KmNvcygwKSk7IH0KKyAgICB0
byAgIHsgd2lkdGg6IGNhbGMoMzAwcHgqc2luKHBpLzIpKTsgfQorfQorCisjYm94IHsKKyAgICBw
b3NpdGlvbjphYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7
CisgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgIGFuaW1hdGlvbi1u
YW1lOiBUaGVBbmltYXRpb247Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJib3giPjwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZXhw
ZWN0ZWRWYWx1ZXMgPSBbCisgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlk
LCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICBbIlRoZUFuaW1hdGlv
biIsIDAuNSwgImJveCIsICJ3aWR0aCIsIDE1MCwgMTVdLAorICAgIFsiVGhlQW5pbWF0aW9uIiwg
MSwgImJveCIsICJ3aWR0aCIsIDIwMCwgMTVdLAorICAgIFsiVGhlQW5pbWF0aW9uIiwgMS45OSwg
ImJveCIsICJ3aWR0aCIsIDMwMCwgMTVdLAorXTsKK3J1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlLCB1bmRlZmluZWQp
OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy9jYWxjL3RyaWctZnVuY3Rpb25zLXdpdGgtY29uc3RhbnRzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNjM5NThiMzQ4MDU4NWE1YmJiZWVmZmI5ODhmNjUxOTJmMmYyYjcx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL3RyaWctZnVuY3Rpb25z
LXdpdGgtY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwNSBAQAorVGVzdHMgZnVu
Y3Rpb25hbGl0eSBvZiBzaW4sIGNvcywgdGFuLCBlIGFuZCBwaQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKHBpLzIp
ICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAi
Y2FsYyhjb3MocGkgLSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2KSAqIDEwMHB4KSIKK1BBU1MgMTAw
IGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKGUgLSAyLjcxODI4
MTgyODQ1OTA0NTIzNTQpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5
bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4oMzBkZWcgKyAxLjA0NzE5NjdyYWQgKSAqIDEwMHB4KSIK
K1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKDMw
ZGVnIC0gMC41MjM1OTlyYWQgKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50
LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKDMuMTQxNTkgLyAyICsgMSAtIDEpICogMTAwcHgp
IgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4o
MTAwZ3JhZCkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lk
dGgiXSA9ICJjYWxjKGNvcygwIC8gMiArIDEgLSAxKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEw
MAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGModGFuKDMwZGVnICsgMC4yNjE3OTly
YWQgKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJd
ID0gImNhbGModGFuKDAuNzg1Mzk3NXJhZCApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisK
K2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyh0YW4oMy4xNDE1OSAvIDQgKyAxIC0gMSkg
KiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJj
YWxjKHNpbigwLjI1dHVybikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5z
dHlsZVsid2lkdGgiXSA9ICJjYWxjKGNvcyhzaW4oY29zKHBpKSArIDEpKSAqIDEwMHB4KSIKK1BB
U1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKHRhbihw
aS80KSpwaS8yKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3
aWR0aCJdID0gImNhbGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlz
IDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKHRhbihwaS80KSpwaS8y
KSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgi
XSA9ICJjYWxjKHNpbihwaS8yKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50
LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKGNvcyhwaSAtIDMuMTQxNTkyNjUzNTg5NzkzMjM4
NDYpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0
aCJdID0gImNhbGMoY29zKGUgLSAyLjcxODI4MTgyODQ1OTA0NTIzNTQpICogMTAwcHgpIgorUEFT
UyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKDMw
ZGVnICsgMS4wNDcxOTY3cmFkICkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVu
dC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhjb3MoMzBkZWcgLSAwLjUyMzU5OXJhZCApICog
MTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0g
ImNhbGMoc2luKDMuMTQxNTkgLyAyICsgMSAtIDEpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAw
CisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKDEwMGdyYWQpICogMTAw
cHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNh
bGMoY29zKDAgLyAyICsgMSAtIDEpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1l
bnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGModGFuKDMwZGVnICsgMC4yNjE3OTlyYWQgKSAq
IDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9
ICJjYWxjKHRhbigwLjc4NTM5NzVyYWQgKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitl
bGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHRhbigzLjE0MTU5IC8gNCArIDEgLSAx
KSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgi
XSA9ICJjYWxjKHNpbigwLjI1dHVybikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxl
bWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhjb3Moc2luKGNvcyhwaSkgKyAxKSkgKiAx
MDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAi
Y2FsYyhzaW4odGFuKHBpLzQpKnBpLzIpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2Vs
ZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEw
MHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJj
YWxjKHNpbih0YW4ocGkvNCkqcGkvMikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy90cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUwNjMzNDdkMTA5ZTE5ZDBkNWZmOTNjZTg5OTMyODdhY2Y0MDkwYmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMt
d2l0aC1jb25zdGFudHMuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8ZGl2IGlkPSJ0ZXN0RGl2Ij48L2Rpdj4KKyAg
ICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBmdW5jdGlvbmFs
aXR5IG9mIHNpbiwgY29zLCB0YW4sIGUgYW5kIHBpIik7CisKKyAgICAgICAgICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3REaXYiKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFByb3BlcnR5KHByb3BlcnR5TmFtZSkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0VmFs
dWUoZXhwcmVzc2lvbiwgY29tcHV0ZWRWYWx1ZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zdHls
ZVtwcm9wZXJ0eU5hbWVdID0gJzk5OXB4JzsKKyAgICAgICAgICAgICAgICAgICAgZXZhbEFuZExv
ZyhgZWxlbWVudC5zdHlsZVsiJHtwcm9wZXJ0eU5hbWV9Il0gPSAiJHtleHByZXNzaW9ufSJgKTsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gTWF0aC5yb3VuZChnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lKS5zbGljZSgwLC0yKSk7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKGAke3ZhbHVlfWAsIGNvbXB1dGVkVmFsdWUp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vVGVzdCBwaQorICAgICAg
ICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhzaW4ocGkvMikgKiAxMDBweCknLCAnMTAwJyk7Cisg
ICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKGNvcyhwaSAtIDMuMTQxNTkyNjUzNTg5Nzkz
MjM4NDYpICogMTAwcHgpJywgJzEwMCcpOworCisgICAgICAgICAgICAgICAgLy9UZXN0IGUKKyAg
ICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoY29zKGUgLSAyLjcxODI4MTgyODQ1OTA0NTIz
NTQpICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IC8vVGVzdCB1bml0cworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhzaW4oMzBkZWcg
KyAxLjA0NzE5NjdyYWQgKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0
VmFsdWUoJ2NhbGMoY29zKDMwZGVnIC0gMC41MjM1OTlyYWQgKSAqIDEwMHB4KScsICcxMDAnKTsK
KyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoc2luKDMuMTQxNTkgLyAyICsgMSAtIDEp
ICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhzaW4o
MTAwZ3JhZCkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdj
YWxjKGNvcygwIC8gMiArIDEgLSAxKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0VmFsdWUoJ2NhbGModGFuKDMwZGVnICsgMC4yNjE3OTlyYWQgKSAqIDEwMHB4KScsICcx
MDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGModGFuKDAuNzg1Mzk3NXJhZCAp
ICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyh0YW4o
My4xNDE1OSAvIDQgKyAxIC0gMSkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAg
dGVzdFZhbHVlKCdjYWxjKHNpbigwLjI1dHVybikgKiAxMDBweCknLCAnMTAwJyk7CisKKyAgICAg
ICAgICAgICAgICAvL1Rlc3QgbmVzdGluZworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2Fs
Yyhjb3Moc2luKGNvcyhwaSkgKyAxKSkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAg
ICAgdGVzdFZhbHVlKCdjYWxjKHNpbih0YW4ocGkvNCkqcGkvMikgKiAxMDBweCknLCAnMTAwJyk7
CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKHNpbih0YW4ocGkvNCkqcGkvMikgKiAx
MDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKHNpbih0YW4o
cGkvNCkqcGkvMikgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHRlc3RQcm9wZXJ0eSgid2lkdGgiKTsKKyAgICAgICAgICAgIHRlc3RQcm9wZXJ0eSgibWlu
LXdpZHRoIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXBhcnNpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2FsYy1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRleCA1
OGQ1ZWRhZTVhOWZhZTc2NzhjZWE3MGY4MWE2MzI0ZmI5NDhjM2NiLi5mMDc2MmRmZDI0ZjUyN2Vh
YjVkZDllYjAzYTg0YWEzNzNhMzRkMDFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jYWxjLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nh
bGMtcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTUyLDYgKzUyLDMwIEBAIGVsZW1lbnQuc3R5bGVb
IndpZHRoIl0gPSAiY2xhbXAoMTAwcHgsMCUsMSUpIgogUEFTUyBlbGVtZW50LnN0eWxlWyd3aWR0
aCddIGlzICJjbGFtcCgxMDBweCwgMCUsIDElKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIGlzICIxMDBweCIKIAorZWxlbWVudC5zdHls
ZVsid2lkdGgiXSA9ICJjYWxjKHNpbig5MGRlZykgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAK
KworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbig0NWRlZyAgKyAgNDVkZWcgKSAq
IDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNh
bGMoY29zKCAwICkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsi
d2lkdGgiXSA9ICJjYWxjKGNvcyggMzBkZWcgLSAzMGRlZyApICogMTAwcHgpIgorUEFTUyAxMDAg
aXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyh0YW4oNDVkZWcpKjEwMHB4
KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGModGFu
KDMwZGVnICsgMTVkZWcpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5
bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4ocGkvMikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAK
KworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKGNvcyhlIC0gZSkgKiAxMDBweCkiCitQ
QVNTIDEwMCBpcyAxMDAKKwogZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKDEwMHB4LCAy
MDBweCkiCiBQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5OXB4IgogUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJykgaXMgIjk5OXB4
IgpAQCAtMTA0LDYgKzEyOCw0MiBAQCBlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNsYW1wKDFw
eCwycHgsMnB4LDRweCkiCiBQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5OXB4Igog
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJykg
aXMgIjk5OXB4IgogCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKDkwcHgpICog
MTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWyd3aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIGlzICI5OTlw
eCIKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbigzMGRlZyArIDEuMDQ3MTk2
N3JhZCwgMCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5OXB4
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRo
JykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKCAwICwp
ICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWyd3aWR0aCddIGlzICI5OTlweCIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIGlzICI5
OTlweCIKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKGNvcyggKCkgMzBkZWcgLSAw
LjUyMzU5OXJhZCApICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWyd3aWR0aCddIGlzICI5
OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCd3
aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHRhbig0
NWRlZyApICkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5OXB4
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRo
JykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGModGFuKDMwZGVn
LCArIDAuMjYxNzk5cmFkKSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVudC5zdHlsZVsnd2lkdGgnXSBp
cyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1
ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhz
aW4ocGlpaWkvNCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5
OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dp
ZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKGUg
ZS80KSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVudC5zdHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBp
cyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4oKSAqIDEwMHB4
KSIKK1BBU1MgZWxlbWVudC5zdHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCisK
IGVsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoMTAwcHgpIgogUEFTUyBlbGVtZW50
LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiY2FsYygxMDBweCkiCiBQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMgIjEwMHB4IgpAQCAt
MTUyLDYgKzIxMiwzMCBAQCBlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjbGFtcCgxMDBw
eCwwJSwxJSkiCiBQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlzICJjbGFtcCgxMDBw
eCwgMCUsIDElKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZh
bHVlKCdtaW4td2lkdGgnKSBpcyAiY2xhbXAoMTAwcHgsIDAlLCAxJSkiCiAKK2VsZW1lbnQuc3R5
bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKDkwZGVnKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlz
IDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbig0NWRlZyAgKyAg
NDVkZWcgKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4t
d2lkdGgiXSA9ICJjYWxjKGNvcyggMCApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2Vs
ZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoY29zKCAzMGRlZyAtIDMwZGVnICkgKiAx
MDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAi
Y2FsYyh0YW4oNDVkZWcpKjEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxl
WyJtaW4td2lkdGgiXSA9ICJjYWxjKHRhbigzMGRlZyArIDE1ZGVnKSAqIDEwMHB4KSIKK1BBU1Mg
MTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbihwaS8y
KSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgi
XSA9ICJjYWxjKGNvcyhlIC0gZSkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKwogZWxlbWVu
dC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYygxMDBweCwgMjAwcHgpIgogUEFTUyBlbGVtZW50
LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4IgpAQCAtMjAzLDYg
KzI4Nyw0MiBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1
ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4IgogZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAi
Y2xhbXAoMXB4LDJweCwycHgsNHB4KSIKIFBBU1MgZWxlbWVudC5zdHlsZVsnbWluLXdpZHRoJ10g
aXMgIjk5OXB4IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFs
dWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0g
PSAiY2FsYyhzaW4oOTBweCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0
aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0
eVZhbHVlKCdtaW4td2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0
aCJdID0gImNhbGMoc2luKDMwZGVnICsgMS4wNDcxOTY3cmFkLCAwKSAqIDEwMHB4KSIKK1BBU1Mg
ZWxlbWVudC5zdHlsZVsnbWluLXdpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIKKwor
ZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhjb3MoIDAgLCkgKiAxMDBweCkiCitQ
QVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdtaW4td2lkdGgnKSBpcyAiOTk5cHgi
CisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoY29zKCAoKSAzMGRlZyAtIDAu
NTIzNTk5cmFkICkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlz
ICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVl
KCdtaW4td2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0g
ImNhbGModGFuKDQ1ZGVnICkgKSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVudC5zdHlsZVsnbWluLXdp
ZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3Bl
cnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVudC5zdHlsZVsibWluLXdp
ZHRoIl0gPSAiY2FsYyh0YW4oMzBkZWcsICsgMC4yNjE3OTlyYWQpICogMTAwcHgpIgorUEFTUyBl
bGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4IgorCitl
bGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbihwaWlpaS80KSAqIDEwMHB4KSIK
K1BBU1MgZWxlbWVudC5zdHlsZVsnbWluLXdpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICI5OTlw
eCIKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhzaW4oZSBlLzQpICogMTAw
cHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMg
Ijk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbigpICogMTAw
cHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMg
Ijk5OXB4IgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXBhcnNpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NhbGMtcGFyc2luZy5odG1sCmluZGV4IDAyYjFlYzFiMWQ2Y2I2
NjZjMDgwYTEzNzc4Y2U3YWFlMDNiY2E2MjcuLmFhMTNlMWE0ZDBmMmQxYTRiMGZjNGM4OTk5ZGZi
OTc4NjBmMjc2ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NhbGMtcGFyc2lu
Zy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NhbGMtcGFyc2luZy5odG1sCkBAIC0x
OSw2ICsxOSwxNSBAQAogICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
YGVsZW1lbnQuc3R5bGVbJyR7cHJvcGVydHlOYW1lfSddYCwgYCR7c3BlY2lmaWVkVmFsdWV9YCk7
CiAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCcke3Byb3BlcnR5TmFtZX0nKWAsIGAke2Nv
bXB1dGVkVmFsdWV9YCk7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RWYWx1ZShleHByZXNzaW9uLCBjb21wdXRlZFZhbHVl
KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoJycpOworICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlW3Byb3BlcnR5TmFtZV0gPSAnOTk5cHgnOwor
ICAgICAgICAgICAgICAgICAgICBldmFsQW5kTG9nKGBlbGVtZW50LnN0eWxlWyIke3Byb3BlcnR5
TmFtZX0iXSA9ICIke2V4cHJlc3Npb259ImApOworICAgICAgICAgICAgICAgICAgICB2YXIgdmFs
dWUgPSBNYXRoLnJvdW5kKGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1
ZShwcm9wZXJ0eU5hbWUpLnNsaWNlKDAsLTIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoYCR7dmFsdWV9YCwgY29tcHV0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgLy8gVmFsaWQgZXhwcmVzc2lvbnMuCiAgICAgICAgICAgICAgICAgdGVzdEV4
cHJlc3Npb24oJ2NhbGMoMTAwcHgpJywgJ2NhbGMoMTAwcHgpJywgJzEwMHB4Jyk7CkBAIC0zMyw2
ICs0MiwxNCBAQAogICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdtaW4oMTAwcHgsMCUp
JywgJ21pbigxMDBweCwgMCUpJywgcHJvcGVydHlOYW1lID09ICd3aWR0aCcgPyAnMHB4JyA6ICJt
aW4oMTAwcHgsIDAlKSIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdtYXgoMTAw
cHgsMCUpJywgJ21heCgxMDBweCwgMCUpJywgcHJvcGVydHlOYW1lID09ICd3aWR0aCcgPyAnMTAw
cHgnIDogIm1heCgxMDBweCwgMCUpIik7CiAgICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24o
J2NsYW1wKDEwMHB4LDAlLDElKScsICdjbGFtcCgxMDBweCwgMCUsIDElKScsIHByb3BlcnR5TmFt
ZSA9PSAnd2lkdGgnID8gJzEwMHB4JyA6ICJjbGFtcCgxMDBweCwgMCUsIDElKSIpOworICAgICAg
ICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhzaW4oOTBkZWcpICogMTAwcHgpJywgJzEwMCcpOwor
ICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhzaW4oNDVkZWcgICsgIDQ1ZGVnICkgKiAx
MDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKGNvcyggMCAp
ICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhjb3Mo
IDMwZGVnIC0gMzBkZWcgKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0
VmFsdWUoJ2NhbGModGFuKDQ1ZGVnKSoxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAg
dGVzdFZhbHVlKCdjYWxjKHRhbigzMGRlZyArIDE1ZGVnKSAqIDEwMHB4KScsICcxMDAnKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoc2luKHBpLzIpICogMTAwcHgpJywgJzEwMCcp
OworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhjb3MoZSAtIGUpICogMTAwcHgpJywg
JzEwMCcpOwogCiAgICAgICAgICAgICAgICAgLy8gTm9uLXBhcnNpbmcgZXhwcmVzc2lvbnMuCiAg
ICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NhbGMoMTAwcHgsIDIwMHB4KScsICc5OTlw
eCcsICc5OTlweCcpOwpAQCAtNDgsNiArNjUsMTUgQEAKICAgICAgICAgICAgICAgICB0ZXN0RXhw
cmVzc2lvbignY2xhbXAoMjAwcHgsLDMwMHB4KScsICc5OTlweCcsICc5OTlweCcpOwogICAgICAg
ICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjbGFtcCgoKSwsMzAwcHgpJywgJzk5OXB4JywgJzk5
OXB4Jyk7CiAgICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NsYW1wKDFweCwycHgsMnB4
LDRweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwcmVzc2lv
bignY2FsYyhzaW4oOTBweCkgKiAxMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwcmVzc2lvbignY2FsYyhzaW4oMzBkZWcgKyAxLjA0NzE5NjdyYWQsIDAp
ICogMTAwcHgpJywgJzk5OXB4JywgJzk5OXB4Jyk7CisgICAgICAgICAgICAgICAgdGVzdEV4cHJl
c3Npb24oJ2NhbGMoY29zKCAwICwpICogMTAwcHgpJywgJzk5OXB4JywgJzk5OXB4Jyk7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NhbGMoY29zKCAoKSAzMGRlZyAtIDAuNTIzNTk5
cmFkICkgKiAxMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwcmVzc2lvbignY2FsYyh0YW4oNDVkZWcgKSApICogMTAwcHgpJywgJzk5OXB4JywgJzk5OXB4
Jyk7CisgICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NhbGModGFuKDMwZGVnLCArIDAu
MjYxNzk5cmFkKSAqIDEwMHB4KScsICc5OTlweCcsICc5OTlweCcpOworICAgICAgICAgICAgICAg
IHRlc3RFeHByZXNzaW9uKCdjYWxjKHNpbihwaWlpaS80KSAqIDEwMHB4KScsICc5OTlweCcsICc5
OTlweCcpOworICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjYWxjKHNpbihlIGUvNCkg
KiAxMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwcmVz
c2lvbignY2FsYyhzaW4oKSAqIDEwMHB4KScsICc5OTlweCcsICc5OTlweCcpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICB0ZXN0UHJvcGVydHkoIndpZHRoIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436967</attachid>
            <date>2021-08-31 16:49:23 -0700</date>
            <delta_ts>2021-09-08 12:05:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229507-20210831164922.patch</filename>
            <type>text/plain</type>
            <size>35979</size>
            <attacher name="Nikos Mouchtaris">nmouchtaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwMGQ4MzA1MDI5MmJl
ZjFhYjA0MGZlZGQ4OWRmYTI2OGU1MDA0OC4uMjE3ZTk1MjIwZmIzYzlmNmE2N2Y3MmVlZjkwYjdk
NWQyZWY1ZGU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDIxLTA4LTI3ICBOaWtv
cyBNb3VjaHRhcmlzICA8bm1vdWNodGFyaXNAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBzaW4sIGNvcywgdGFuLCBlIGFuZCBwaSBmb3IgY2FsYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGNzczMvY2FsYy9zaW1wbGUtdHJpZy1m
dW5jdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jYWxjL3RyaWctZnVuY3Rpb25zLXdp
dGgtY29uc3RhbnRzLmh0bWwKKyAgICAgICAgCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzaW4s
IGNvcywgYW5kIHRhbiBmdW5jdGlvbnMgd2l0aGluIGNhbGMuIEFsc28gYWRkIGUgYW5kIHBpCisg
ICAgICAgIGNvbnN0YW50IHZhbHVlcyB3aXRoaW4gY2FsYy4KKyAgICAgICAgCisgICAgICAgICog
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgIEFkZCBzaW4sY29zLGUgYW5kIHBpIGtl
eXdvcmRzLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5v
ZGVQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29uc3RhbnRUYWJsZSk6CisgICAg
ICAgIEFkZCBoZWxwZXIgZnVuY3Rpb24gd2l0aCB0YWJsZSBtYXBwaW5nIGUgYW5kIHBpIGtleXdv
cmRzIHRvIHRoZWlyCisgICAgICAgIGFwcHJveGltYXRlIG51bWVyaWNhbCB2YWx1ZS4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNl
Q2FsY0Z1bmN0aW9uKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBjcmVhdGlvbiBvZiBzaW4s
Y29zLHRhbiBvcGVyYXRpb24gbm9kZXMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NT
Q2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgQWRkIGhhbmRs
aW5nIGZvciBjcmVhdGlvbiBvZiBwcmltaXRpdmUgY3NzIHZhbHVlIHdoZW4gY29uc3RhbnQgaXMg
cGFyc2VkLgorICAgICAgICAKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9uTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1pbmVDYXRlZ29yeSk6CisgICAgICAgIEFk
ZCBzaW4sY29zLHRhbiB0byBzd2l0Y2ggc3RhdGVtZW50LgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OmZ1bmN0aW9uRnJvbU9wZXJhdG9yKToKKyAgICAgICAgQWRkIHNpbixjb3MsdGFuIHRv
IHN3aXRjaCBzdGF0ZW1lbnQuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09w
ZXJhdGlvbk5vZGU6OmNyZWF0ZVRyaWcpOgorICAgICAgICBBZGQgZnVuY3Rpb24gZm9yIGNyZWF0
aW9uIG9mIHNpbixjb3MsdGFuIG9wZXJhdGlvbiBub2RlLgorICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hpbGRyZW4pOgorICAgICAgICBB
ZGQgaGFuZGxpbmcgZm9yIHBlcmZvcm1pbmcgc2luLGNvcyx0YW4gZnVuY3Rpb24gb24gY2hpbGQg
bm9kZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6
c2ltcGxpZnlOb2RlKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBzaW4sY29zLHRhbi4KKyAg
ICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0aW9uTm9kZTo6cHJpbWl0aXZl
VHlwZSBjb25zdCk6CisgICAgICAgIFJlbW92ZSBhc3NlcnQgdGhhdCBpcyBubyBsb25nZXIgY29y
cmVjdC4gVHJpZyBmdW5jdGlvbnMgdGFrZSBjYW4gdGFrZSBhbgorICAgICAgICBhbmdsZSBhbmQg
cmV0dXJuIGEgbnVtYmVyLCBzbyBpdCBpcyBubyBsb25nZXIgdGhlIGNhc2UgdGhhdCBhbGwgY2hp
bGRyZW4KKyAgICAgICAgb2YgYSBub2RlIHByb2R1Y2luZyBhIG51bWJlciBtdXN0IGJlIG51bWJl
cnMgdGhlbXNlbGYuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6Q1NTQ2FsY09wZXJhdGlv
bk5vZGU6OmRvdWJsZVZhbHVlIGNvbnN0KToKKyAgICAgICAgQ29udmVydCBjaGlscmVuIG5vZGVz
IHRoYXQgYXJlIGFuZ2xlcyB0byByYWRpYW5zLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6
OmZ1bmN0aW9uUHJlZml4Rm9yT3BlcmF0b3IpOgorICAgICAgICBBZGQgaGFuZGxpbmcgZm9yIHNp
bixjb3MsdGFuLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25O
b2RlOjpldmFsdWF0ZU9wZXJhdG9yKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uYWxpdHkgZm9yIHNp
bixjb3MsdGFuIGZ1bmN0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2Fs
Y09wZXJhdGlvbk5vZGUuaDoKKyAgICAgICAgKiBjc3MvY2FsYy9DU1NDYWxjVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ1NTKToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBj
cmVhdGlvbiBvZiBzaW4sY29zLHRhbiBvcGVyYXRpb24gbm9kZXMuCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6Q1NTQ2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbik6CisgICAgICAgIEFkZCBo
YW5kbGluZyBmb3Igc2luLGNvcyx0YW4uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2Nh
bGMvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FsY0V4
cHJlc3Npb25PcGVyYXRpb246OmV2YWx1YXRlIGNvbnN0KToKKyAgICAgICAgQWRkIGZ1bmN0aW9u
YWxpdHkgZm9yIHNpbixjb3MsdGFuIGZ1bmN0aW9uLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8
KToKKyAgICAgICAgQWRkIGhhbmRsaW5nIGZvciBzaW4sY29zLHRhbi4KKyAgICAgICAgCisgICAg
ICAgICogcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuaDoKKwogMjAyMS0wOC0xOCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBDcnlwdG8ucmFu
ZG9tVVVJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZjYmFl
YmE5N2ZmNWFkMTQ1MTI0ZDBiNTc5ZWZkNjhiMzBmZDE5OWYuLjdmZTZhNTFmMjAwODAwYzI0OGNj
MDlmNTllN2I0OTgxNzM3OWVlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCkBAIC0xMzUxLDYgKzEzNTEsMTAgQEAgY2FsYwogbWluCiBtYXgKIGNsYW1wCitzaW4KK2Nv
cworZQorcGkKIAogZnJvbS1pbWFnZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Y2FsYy9DU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L2NhbGMvQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFyc2VyLmNwcAppbmRleCBiYjQ2NGY5ZmM4N2Fi
N2MzMTllMWUyNDY3ODQ1NGQ2NjQ1MDMyMDNiLi45YjcxODA4YWQ0MzViNTEwMzY4NDM4ZDgyYTRm
YjBhOWViYmVjMWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxj
RXhwcmVzc2lvbk5vZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NT
U0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlci5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIGVudW0gUGFy
c2VTdGF0ZSB7CiAgICAgTm9Nb3JlVG9rZW5zCiB9OwogCitzdGF0aWMgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlIGdldENvbnN0YW50VGFibGUoKQoreworICAgIHJldHVybiB7IHsgQ1NTVmFsdWVQ
aSwgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIsIHBpRG91YmxlIH0sIHsgQ1NTVmFsdWVFLCBDU1NV
bml0VHlwZTo6Q1NTX05VTUJFUiwgc3RkOjpleHAoMS4wKSB9IH07Cit9CisKIHN0YXRpYyBQYXJz
ZVN0YXRlIGNoZWNrRGVwdGhBbmRJbmRleChpbnQgZGVwdGgsIENTU1BhcnNlclRva2VuUmFuZ2Ug
dG9rZW5zKQogewogICAgIGlmICh0b2tlbnMuYXRFbmQoKSkKQEAgLTEyNCw2ICsxMjksOSBAQCBi
b29sIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjRnVuY3Rpb24oQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgdG9rZW5zLAogICAgICAgICBtaW5Bcmd1bWVudENvdW50ID0gMzsKICAg
ICAgICAgbWF4QXJndW1lbnRDb3VudCA9IDM7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NT
VmFsdWVTaW46CisgICAgY2FzZSBDU1NWYWx1ZUNvczoKKyAgICBjYXNlIENTU1ZhbHVlVGFuOgog
ICAgIGNhc2UgQ1NTVmFsdWVDYWxjOgogICAgICAgICBtYXhBcmd1bWVudENvdW50ID0gMTsKICAg
ICAgICAgYnJlYWs7CkBAIC0xNjYsNiArMTc0LDE1IEBAIGJvb2wgQ1NTQ2FsY0V4cHJlc3Npb25O
b2RlUGFyc2VyOjpwYXJzZUNhbGNGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMs
CiAgICAgY2FzZSBDU1NWYWx1ZUNsYW1wOgogICAgICAgICByZXN1bHQgPSBDU1NDYWxjT3BlcmF0
aW9uTm9kZTo6Y3JlYXRlTWluT3JNYXhPckNsYW1wKENhbGNPcGVyYXRvcjo6Q2xhbXAsIFdURk1v
dmUobm9kZXMpLCBtX2Rlc3RpbmF0aW9uQ2F0ZWdvcnkpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU1ZhbHVlU2luOgorICAgICAgICByZXN1bHQgPSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6
Y3JlYXRlVHJpZyhDYWxjT3BlcmF0b3I6OlNpbiwgV1RGTW92ZShub2RlcykpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU1ZhbHVlQ29zOgorICAgICAgICByZXN1bHQgPSBDU1NDYWxjT3Bl
cmF0aW9uTm9kZTo6Y3JlYXRlVHJpZyhDYWxjT3BlcmF0b3I6OkNvcywgV1RGTW92ZShub2Rlcykp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVlVGFuOgorICAgICAgICByZXN1bHQg
PSBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y3JlYXRlVHJpZyhDYWxjT3BlcmF0b3I6OlRhbiwgV1RG
TW92ZShub2RlcykpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1ZhbHVlV2Via2l0Q2Fs
YzoKICAgICBjYXNlIENTU1ZhbHVlQ2FsYzoKICAgICAgICAgcmVzdWx0ID0gQ1NTQ2FsY09wZXJh
dGlvbk5vZGU6OmNyZWF0ZVN1bShXVEZNb3ZlKG5vZGVzKSk7CkBAIC0xOTMsNiArMjEwLDcgQEAg
Ym9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgdG9rZW5zLCBSZWZQdHIKICAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgewogICAg
IGNhc2UgSWRlbnRUb2tlbjogewogICAgICAgICBhdXRvIHZhbHVlID0gbV9zeW1ib2xUYWJsZS5n
ZXQodG9rZW4uaWQoKSk7CisgICAgICAgIHZhbHVlID0gdmFsdWUgPyB2YWx1ZSA6IGdldENvbnN0
YW50VGFibGUoKS5nZXQodG9rZW4uaWQoKSk7CiAgICAgICAgIGlmICghdmFsdWUpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBtYWtlQ1NTQ2FsY1ByaW1pdGl2ZVZh
bHVlTm9kZSh2YWx1ZS0+dHlwZSwgdmFsdWUtPnZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcAppbmRleCA1Y2VkZDUzYTQwYmY3ZWRj
MDA1MDNmN2ZjZmQ2MjBjYTA0NjMwN2Y3Li42MjQzMWQ2YmEyY2FkNTM1NGY2OGM2NmQ4MTJkNDlk
ZDYzMWU1MzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3Bl
cmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJh
dGlvbk5vZGUuY3BwCkBAIC03Miw2ICs3Miw5IEBAIHN0YXRpYyBDYWxjdWxhdGlvbkNhdGVnb3J5
IGRldGVybWluZUNhdGVnb3J5KGNvbnN0IENTU0NhbGNFeHByZXNzaW9uTm9kZSYgbGVmdFNpCiAg
ICAgICAgIGlmIChyaWdodENhdGVnb3J5ICE9IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciB8
fCByaWdodFNpZGUuaXNaZXJvKCkpCiAgICAgICAgICAgICByZXR1cm4gQ2FsY3VsYXRpb25DYXRl
Z29yeTo6T3RoZXI7CiAgICAgICAgIHJldHVybiBsZWZ0Q2F0ZWdvcnk7CisgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OlNpbjoKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q29zOgorICAgIGNhc2UgQ2Fs
Y09wZXJhdG9yOjpUYW46CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjoKICAgICBjYXNlIENh
bGNPcGVyYXRvcjo6TWF4OgogICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDoKQEAgLTE0MCw3
ICsxNDMsOSBAQCBzdGF0aWMgQ2FsY3VsYXRpb25DYXRlZ29yeSBkZXRlcm1pbmVDYXRlZ29yeShj
b25zdCBWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTgogICAgICAgICAgICAgICAgIHJldHVy
biBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0KKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlNpbjoKKyAgICAgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OkNvczoKKyAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OlRhbjoKICAgICAgICAg
Y2FzZSBDYWxjT3BlcmF0b3I6Ok1pbjoKICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6Ok1heDoK
ICAgICAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOgpAQCAtMjU1LDYgKzI2MCwxMiBAQCBz
dGF0aWMgQ1NTVmFsdWVJRCBmdW5jdGlvbkZyb21PcGVyYXRvcihDYWxjT3BlcmF0b3Igb3ApCiAg
ICAgICAgIHJldHVybiBDU1NWYWx1ZU1heDsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q2xhbXA6
CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZUNsYW1wOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpT
aW46CisgICAgICAgIHJldHVybiBDU1NWYWx1ZVNpbjsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6
Q29zOgorICAgICAgICByZXR1cm4gQ1NTVmFsdWVDb3M7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6
OlRhbjoKKyAgICAgICAgcmV0dXJuIENTU1ZhbHVlVGFuOwogICAgIH0KICAgICByZXR1cm4gQ1NT
VmFsdWVDYWxjOwogfQpAQCAtMzQxLDYgKzM1MiwyMCBAQCBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlv
bk5vZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVNaW5Pck1heE9yQ2xhbXAoQ2FsY09w
ZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ2FsY09wZXJhdGlvbk5vZGUoY2F0ZWdvcnku
dmFsdWUoKSwgb3AsIFdURk1vdmUodmFsdWVzKSkpOwogfQogCitSZWZQdHI8Q1NTQ2FsY09wZXJh
dGlvbk5vZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpjcmVhdGVUcmlnKENhbGNPcGVyYXRvciBv
cCwgVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYmIHZhbHVlcykKK3sKKyAgICBp
ZiAodmFsdWVzLnNpemUoKSAhPSAxKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAg
ICBhdXRvIGNoaWxkQ2F0ZWdvcnkgPSB2YWx1ZXNbMF0tPmNhdGVnb3J5KCk7CisgICAgaWYgKGNo
aWxkQ2F0ZWdvcnkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyICYmIGNoaWxkQ2F0ZWdv
cnkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKENhbGMsIHN0cmVhbSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB0cmlnIG5vZGUgYmVjYXVzZSB1
bmFibGUgdG8gZGV0ZXJtaW5lIGNhdGVnb3J5IGZyb20gIiA8PCBwcmV0dHlQcmludE5vZGVzKHZh
bHVlcykpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU0NhbGNPcGVyYXRpb25Ob2RlKENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJl
ciwgb3AsIFdURk1vdmUodmFsdWVzKSkpOworfQorCiB2b2lkIENTU0NhbGNPcGVyYXRpb25Ob2Rl
Ojpob2lzdENoaWxkcmVuV2l0aE9wZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKIHsKICAgICBBU1NF
UlQob3AgPT0gQ2FsY09wZXJhdG9yOjpBZGQgfHwgb3AgPT0gQ2FsY09wZXJhdG9yOjpNdWx0aXBs
eSk7CkBAIC00MDUsOSArNDMwLDE3IEBAIGJvb2wgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNhbkNv
bWJpbmVBbGxDaGlsZHJlbigpIGNvbnN0CiAKIHZvaWQgQ1NTQ2FsY09wZXJhdGlvbk5vZGU6OmNv
bWJpbmVDaGlsZHJlbigpCiB7Ci0gICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpIDwgMikKLSAgICAg
ICAgcmV0dXJuOworICAgIGlmIChtX2NoaWxkcmVuLnNpemUoKSA8IDIpIHsKKyAgICAgICAgaWYg
KG1fY2hpbGRyZW4uc2l6ZSgpID09IDEgJiYgaXNUcmlnTm9kZSgpKSB7CisgICAgICAgICAgICBk
b3VibGUgcmVzb2x2ZWRWYWx1ZSA9IGRvdWJsZVZhbHVlKG1fY2hpbGRyZW5bMF0tPnByaW1pdGl2
ZVR5cGUoKSk7CisgICAgICAgICAgICBhdXRvIG5ld0NoaWxkID0gQ1NTQ2FsY1ByaW1pdGl2ZVZh
bHVlTm9kZTo6Y3JlYXRlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUocmVzb2x2ZWRWYWx1ZSwg
Q1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpKTsKIAorICAgICAgICAgICAgbV9jaGlsZHJlbi5jbGVh
cigpOworICAgICAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZShuZXdDaGlsZCkpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgaWYgKHNob3VsZFNv
cnRDaGlsZHJlbigpKSB7CiAgICAgICAgIC8vIDxodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nz
LXZhbHVlcy00LyNzb3J0LWEtY2FsY3VsYXRpb25zLWNoaWxkcmVuPgogICAgICAgICBzdGQ6OnN0
YWJsZV9zb3J0KG1fY2hpbGRyZW4uYmVnaW4oKSwgbV9jaGlsZHJlbi5lbmQoKSwgW10oY29uc3Qg
YXV0byYgZmlyc3QsIGNvbnN0IGF1dG8mIHNlY29uZCkgewpAQCAtNTk1LDggKzYyOCw4IEBAIFJl
ZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpzaW1wbGlmeU5v
ZGUoUmVmPENTU0NhbGNFeHByZXNzCiAgICAgLy8gdXNpbmcgaXRzIGNoaWxkcmVuLCBleHByZXNz
ZWQgaW4gdGhlIHJlc3VsdOKAmXMgY2Fub25pY2FsIHVuaXQuCiAgICAgaWYgKGlzPENTU0NhbGNP
cGVyYXRpb25Ob2RlPihyb290Tm9kZSkpIHsKICAgICAgICAgYXV0byYgY2FsY09wZXJhdGlvbk5v
ZGUgPSBkb3duY2FzdDxDU1NDYWxjT3BlcmF0aW9uTm9kZT4ocm9vdE5vZGUuZ2V0KCkpOwotICAg
ICAgICAvLyBEb24ndCBzaW1wbGlmeSBhdCB0aGUgcm9vdCwgb3RoZXJ3aXNlIHdlIGxvc2UgdHJh
Y2sgb2YgdGhlIG9wZXJhdGlvbiBmb3Igc2VyaWFsaXphdGlvbi4KLSAgICAgICAgaWYgKGNhbGNP
cGVyYXRpb25Ob2RlLmNoaWxkcmVuKCkuc2l6ZSgpID09IDEgJiYgZGVwdGgpCisgICAgICAgIC8v
IFNpbXBsaWZ5IG9wZXJhdGlvbnMgd2l0aCBvbmx5IG9uZSBjaGlsZCBub2RlIChvdGhlciB0aGFu
IHJvb3QgYW5kIG9wZXJhdGlvbnMgdGhhdCBvbmx5IG5lZWQgb25lIG5vZGUpLgorICAgICAgICBp
ZiAoY2FsY09wZXJhdGlvbk5vZGUuY2hpbGRyZW4oKS5zaXplKCkgPT0gMSAmJiBkZXB0aCAmJiAh
Y2FsY09wZXJhdGlvbk5vZGUuaXNUcmlnTm9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUoY2FsY09wZXJhdGlvbk5vZGUuY2hpbGRyZW4oKVswXSk7CiAgICAgICAgIAogICAgICAgICBp
ZiAoY2FsY09wZXJhdGlvbk5vZGUuaXNDYWxjU3VtTm9kZSgpKSB7CkBAIC02MTEsNyArNjQ0LDEw
IEBAIFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IENTU0NhbGNPcGVyYXRpb25Ob2RlOjpzaW1w
bGlmeU5vZGUoUmVmPENTU0NhbGNFeHByZXNzCiAgICAgICAgIAogICAgICAgICBpZiAoY2FsY09w
ZXJhdGlvbk5vZGUuaXNNaW5Pck1heE5vZGUoKSkKICAgICAgICAgICAgIGNhbGNPcGVyYXRpb25O
b2RlLmNvbWJpbmVDaGlsZHJlbigpOwotCisgICAgICAgIAorICAgICAgICBpZiAoY2FsY09wZXJh
dGlvbk5vZGUuaXNUcmlnTm9kZSgpKQorICAgICAgICAgICAgY2FsY09wZXJhdGlvbk5vZGUuY29t
YmluZUNoaWxkcmVuKCk7CisgICAgICAgIAogICAgICAgICAvLyBJZiBvbmx5IG9uZSBjaGlsZCBy
ZW1haW5zLCByZXR1cm4gdGhlIGNoaWxkIChleGNlcHQgYXQgdGhlIHJvb3QpLgogICAgICAgICBh
dXRvIHNob3VsZENvbWJpbmVQYXJlbnRXaXRoT25seUNoaWxkID0gW10oY29uc3QgQ1NTQ2FsY09w
ZXJhdGlvbk5vZGUmIHBhcmVudCwgaW50IGRlcHRoKQogICAgICAgICB7CkBAIC02NzYsMTIgKzcx
Miw3IEBAIENTU1VuaXRUeXBlIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpwcmltaXRpdmVUeXBlKCkg
Y29uc3QKICAgICBhdXRvIHVuaXRDYXRlZ29yeSA9IGNhdGVnb3J5KCk7CiAgICAgc3dpdGNoICh1
bml0Q2F0ZWdvcnkpIHsKICAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcjoKLSNp
ZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogbV9jaGlsZHJlbikK
LSAgICAgICAgICAgIEFTU0VSVChjaGlsZC0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVn
b3J5OjpOdW1iZXIpOwotI2VuZGlmCiAgICAgICAgIHJldHVybiBDU1NVbml0VHlwZTo6Q1NTX05V
TUJFUjsKLQogICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudDogewogICAgICAg
ICBpZiAobV9jaGlsZHJlbi5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFR5
cGU6OkNTU19VTktOT1dOOwpAQCAtNzQ4LDYgKzc3OSw4IEBAIGRvdWJsZSBDU1NDYWxjT3BlcmF0
aW9uTm9kZTo6ZG91YmxlVmFsdWUoQ1NTVW5pdFR5cGUgdW5pdFR5cGUpIGNvbnN0CiAgICAgICAg
IENTU1VuaXRUeXBlIGNoaWxkVHlwZSA9IHVuaXRUeXBlOwogICAgICAgICBpZiAoYWxsb3dOdW1i
ZXJzICYmIHVuaXRUeXBlICE9IENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSICYmIGNoaWxkLT5wcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVIpCiAgICAgICAgICAgICBjaGls
ZFR5cGUgPSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjsKKyAgICAgICAgaWYgKGlzVHJpZ05vZGUo
KSAmJiB1bml0VHlwZSAhPSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUikKKyAgICAgICAgICAgIGNo
aWxkVHlwZSA9IENTU1VuaXRUeXBlOjpDU1NfUkFEOwogICAgICAgICByZXR1cm4gY2hpbGQtPmRv
dWJsZVZhbHVlKGNoaWxkVHlwZSk7CiAgICAgfSkpOwogfQpAQCAtODAwLDYgKzgzMyw5IEBAIHN0
YXRpYyBjb25zdCBjaGFyKiBmdW5jdGlvblByZWZpeEZvck9wZXJhdG9yKENhbGNPcGVyYXRvciBv
cCkKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6RGl2aWRlOgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuICIiOworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46
IHJldHVybiAic2luKCI7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczogcmV0dXJuICJjb3Mo
IjsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6VGFuOiByZXR1cm4gInRhbigiOwogICAgIGNhc2Ug
Q2FsY09wZXJhdG9yOjpNaW46IHJldHVybiAibWluKCI7CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6
Ok1heDogcmV0dXJuICJtYXgoIjsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6Q2xhbXA6IHJldHVy
biAiY2xhbXAoIjsKQEAgLTEwMDQsNiArMTA0MCwyMSBAQCBkb3VibGUgQ1NTQ2FsY09wZXJhdGlv
bk5vZGU6OmV2YWx1YXRlT3BlcmF0b3IoQ2FsY09wZXJhdG9yIG9wLCBjb25zdCBWZWN0b3I8ZG91
YgogICAgICAgICBkb3VibGUgbWF4ID0gY2hpbGRyZW5bMl07CiAgICAgICAgIHJldHVybiBzdGQ6
Om1heChtaW4sIHN0ZDo6bWluKHZhbHVlLCBtYXgpKTsKICAgICB9CisgICAgY2FzZSBDYWxjT3Bl
cmF0b3I6OlNpbjogeworICAgICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6c2luKGNoaWxkcmVuWzBdKTsKKyAgICB9CisgICAgY2FzZSBDYWxj
T3BlcmF0b3I6OkNvczogeworICAgICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6Y29zKGNoaWxkcmVuWzBdKTsKKyAgICB9CisgICAgY2FzZSBD
YWxjT3BlcmF0b3I6OlRhbjogeworICAgICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dGFuKGNoaWxkcmVuWzBdKTsKKyAgICB9CiAgICAgfQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmgKaW5kZXggZThlOGZhZWVjMTUyOWZh
NWZjMzg5NjAwZjRkMzQyZDNmZDZiMzU0NS4uYTZiNDFlZDE1NjlmN2ZhMzQ2OGNjNWRkZWQxYTg2
ZGU3ZmY1YTAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09w
ZXJhdGlvbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0
aW9uTm9kZS5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPENT
U0NhbGNPcGVyYXRpb25Ob2RlPiBjcmVhdGVTdW0oVmVjdG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lv
bk5vZGU+PiYmIHZhbHVlcyk7CiAgICAgc3RhdGljIFJlZlB0cjxDU1NDYWxjT3BlcmF0aW9uTm9k
ZT4gY3JlYXRlUHJvZHVjdChWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFs
dWVzKTsKICAgICBzdGF0aWMgUmVmUHRyPENTU0NhbGNPcGVyYXRpb25Ob2RlPiBjcmVhdGVNaW5P
ck1heE9yQ2xhbXAoQ2FsY09wZXJhdG9yLCBWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9k
ZT4+JiYgdmFsdWVzLCBDYWxjdWxhdGlvbkNhdGVnb3J5IGRlc3RpbmF0aW9uQ2F0ZWdvcnkpOwor
ICAgIHN0YXRpYyBSZWZQdHI8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+IGNyZWF0ZVRyaWcoQ2FsY09w
ZXJhdG9yLCBWZWN0b3I8UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiYgdmFsdWVzKTsKIAog
ICAgIHN0YXRpYyBSZWY8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBzaW1wbGlmeShSZWY8Q1NTQ2Fs
Y0V4cHJlc3Npb25Ob2RlPiYmKTsKIApAQCAtNDYsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0NhbGNTdW1Ob2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0
b3I6OkFkZDsgfQogICAgIGJvb2wgaXNDYWxjUHJvZHVjdE5vZGUoKSBjb25zdCB7IHJldHVybiBt
X29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TXVsdGlwbHk7IH0KICAgICBib29sIGlzTWluT3JN
YXhOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6Ok1pbiB8
fCBtX29wZXJhdG9yID09IENhbGNPcGVyYXRvcjo6TWF4OyB9CisgICAgYm9vbCBpc1RyaWdOb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRvciA9PSBDYWxjT3BlcmF0b3I6OlNpbiB8fCBtX29w
ZXJhdG9yID09IENhbGNPcGVyYXRvcjo6Q29zIHx8IG1fb3BlcmF0b3IgPT0gQ2FsY09wZXJhdG9y
OjpUYW47IH0KICAgICBib29sIHNob3VsZFNvcnRDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGlz
Q2FsY1N1bU5vZGUoKSB8fCBpc0NhbGNQcm9kdWN0Tm9kZSgpOyB9CiAKICAgICB2b2lkIGhvaXN0
Q2hpbGRyZW5XaXRoT3BlcmF0b3IoQ2FsY09wZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2Fs
Yy9DU1NDYWxjVmFsdWUuY3BwCmluZGV4IGQ2YWFlNWEwNTlmN2ZiNDFiODJiNWZhMTZlNjczZTI2
ZGNmMzMzMzUuLmQ1N2JmNjA2ZTAxNzNjNTAwYjQzOTQyZGEzNzdjMTEyNjczYmJhMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NTU0NhbGNWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY1ZhbHVlLmNwcApAQCAtMTY0LDYgKzE2NCwxNCBA
QCBzdGF0aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gY3JlYXRlQ1NTKGNvbnN0IENh
bGNFeHByZXNzaW9uTm9kZSYgbm9kZSwgYwogCiAgICAgICAgICAgICByZXR1cm4gQ1NTQ2FsY09w
ZXJhdGlvbk5vZGU6OmNyZWF0ZVByb2R1Y3QoY3JlYXRlQ1NTKG9wZXJhdGlvbkNoaWxkcmVuLCBz
dHlsZSkpOwogICAgICAgICB9CisgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6CisgICAg
ICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpUYW46CisgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpT
aW46IHsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRyZW4gPSBjcmVhdGVDU1Mob3BlcmF0aW9uQ2hp
bGRyZW4sIHN0eWxlKTsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgIT0gMSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBDU1NDYWxj
T3BlcmF0aW9uTm9kZTo6Y3JlYXRlVHJpZyhvcCwgV1RGTW92ZShjaGlsZHJlbikpOworICAgICAg
ICB9CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpNaW46CiAgICAgICAgIGNhc2UgQ2FsY09w
ZXJhdG9yOjpNYXg6CiAgICAgICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDbGFtcDogewpAQCAtMjgz
LDYgKzI5MSw5IEBAIGJvb2wgQ1NTQ2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbihDU1NWYWx1ZUlE
IGZ1bmN0aW9uSWQpCiAgICAgY2FzZSBDU1NWYWx1ZU1pbjoKICAgICBjYXNlIENTU1ZhbHVlTWF4
OgogICAgIGNhc2UgQ1NTVmFsdWVDbGFtcDoKKyAgICBjYXNlIENTU1ZhbHVlU2luOgorICAgIGNh
c2UgQ1NTVmFsdWVDb3M6CisgICAgY2FzZSBDU1NWYWx1ZVRhbjoKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjRXhwcmVzc2lvbk9wZXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcApp
bmRleCAwNGZlZmY1YWRkM2E4YjRhY2Q1NjBlYjc2MWU5MjgxMDQyYjE5NmNjLi4zZGNiZGUzN2Y2
ZjJhYjlmNjI4ZjZhNzBiYzQyZDVkYzY5MTEyMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNhbGNFeHByZXNzaW9u
T3BlcmF0aW9uLmgiCiAKKyNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0
U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDYgKzg3LDIxIEBAIGZsb2F0
IENhbGNFeHByZXNzaW9uT3BlcmF0aW9uOjpldmFsdWF0ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QK
ICAgICAgICAgZmxvYXQgbWF4ID0gbV9jaGlsZHJlblsyXS0+ZXZhbHVhdGUobWF4VmFsdWUpOwog
ICAgICAgICByZXR1cm4gc3RkOjptYXgobWluLCBzdGQ6Om1pbih2YWx1ZSwgbWF4KSk7CiAgICAg
fQorICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpTaW46IHsKKyAgICAgICAgaWYgKG1fY2hpbGRyZW4u
c2l6ZSgpICE9IDEpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6c2luKG1fY2hpbGRyZW5bMF0t
PmV2YWx1YXRlKG1heFZhbHVlKSk7CisgICAgfQorICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpDb3M6
IHsKKyAgICAgICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpICE9IDEpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6Y29zKG1fY2hpbGRyZW5bMF0tPmV2YWx1YXRlKG1heFZhbHVlKSk7CisgICAgfQor
ICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpUYW46IHsKKyAgICAgICAgaWYgKG1fY2hpbGRyZW4uc2l6
ZSgpICE9IDEpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dGFuKG1fY2hpbGRyZW5bMF0tPmV2
YWx1YXRlKG1heFZhbHVlKSk7CisgICAgfQogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuY3BwCmluZGV4IDhl
N2RlZjNhNDk0N2JhZTQyZjg0ZjFlYWZiYzI3ZmRhY2U3ZDM0ZTQuLmI5MDA0YjViZmIzYWRkYTNk
MGFlNjY1NmFmZWM5MTg1YTIyYzZhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NhbGMvQ2FsY09wZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
YWxjL0NhbGNPcGVyYXRvci5jcHAKQEAgLTQwLDYgKzQwLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgQ2FsY09wZXJhdG9yIG9wKQogICAgIGNhc2UgQ2FsY09wZXJh
dG9yOjpNaW46IHRzIDw8ICJtaW4iOyBicmVhazsKICAgICBjYXNlIENhbGNPcGVyYXRvcjo6TWF4
OiB0cyA8PCAibWF4IjsgYnJlYWs7CiAgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNsYW1wOiB0cyA8
PCAiY2xhbXAiOyBicmVhazsKKyAgICBjYXNlIENhbGNPcGVyYXRvcjo6U2luOiB0cyA8PCAic2lu
IjsgYnJlYWs7CisgICAgY2FzZSBDYWxjT3BlcmF0b3I6OkNvczogdHMgPDwgImNvcyI7IGJyZWFr
OworICAgIGNhc2UgQ2FsY09wZXJhdG9yOjpUYW46IHRzIDw8ICJ0YW4iOyBicmVhazsKICAgICB9
CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2FsYy9DYWxjT3BlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhbGMvQ2FsY09w
ZXJhdG9yLmgKaW5kZXggOGRkYjM0NjA2NzlhMWIxOWY1MTQwMmM5NmI4MWJjYjI4Y2M2ZTdjMC4u
NzkyYmMyODMzODMyOGEwZTNlNDU0YjM1MzFlYmUyMzYyYmRlZTk1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2FsYy9DYWxjT3BlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWxjL0NhbGNPcGVyYXRvci5oCkBAIC0zOCw2ICszOCw5IEBAIGVudW0g
Y2xhc3MgQ2FsY09wZXJhdG9yIDogdWludDhfdCB7CiAgICAgTWluID0gMCwKICAgICBNYXgsCiAg
ICAgQ2xhbXAsCisgICAgU2luLAorICAgIENvcywKKyAgICBUYW4sCiB9OwogCiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBDYWxjT3BlcmF0b3IpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM3NDJmNjAy
OWYzOThkN2FlMDM4NWNmNGNjYTllY2VlOGZlZDQ1OTcuLmNkZWIwZDM5ODg0NjZmNWU4YWNmZmFl
MTQwMzVjOTJlMTEzMmJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wOC0yNyAgTmlr
b3MgTW91Y2h0YXJpcyAgPG5tb3VjaHRhcmlzQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgc2luLCBjb3MsIHRhbiwgZSBhbmQgcGkgZm9yIGNhbGMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTUwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvY2FsYy1wYXJzaW5nLmh0bWw6
CisgICAgICAgIEFkZGVkIHBhcnNpbmcgdGVzdHMgZm9yIHNpbiwgY29zLCB0YW4sIGUgYW5kIHBp
LgorCisgICAgICAgICogY3NzMy9jYWxjL3RyaWctZnVuY3Rpb25zLXdpdGgtY29uc3RhbnRzLmh0
bWw6IEFkZGVkLgorICAgICAgICBBZGRlZCBhZGRpdGlvbmFsIHRlc3RzIGZvciBleHBlY3RlZCBi
ZWhhdmlvciBvZiBzaW4sIGNvcywgdGFuLCBlIGFuZCBwaS4KKworICAgICAgICAqIExheW91dFRl
c3RzL2FuaW1hdGlvbnMvY2FsYy1hbmltYXRpb24tdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
QWRkZWQgYW5pbWF0aW9uIHRlc3QgZm9yIGV4cGFuZGluZyB3aWR0aCBvZiBib3ggZ2l2ZW4gYSB3
aWR0aCBkZWZpbmVkIHVzaW5nIGEgY2FsYyBleHByZXNzaW9uCisgICAgICAgIEludm9sdmluZyBz
aW4gYW5kIGNvcy4KKyAgICAgICAgCisKIDIwMjEtMDgtMTggIEVyaWMgSHV0Y2hpc29uICA8ZWh1
dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hYyBEZWJ1Z10gaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIva2V5LWdlbmVyYXRvcnMvcmVhZGluZy1hdXRvaW5j
cmVtZW50LWluZGV4ZXMtY3Vyc29ycy5hbnkud29ya2VyLmh0bWwgaXMgYSBmbGFreSBjcmFzaC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2FsYy1hbmltYXRpb24tdGVzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NhbGMtYW5pbWF0aW9uLXRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3MDQ1YTYyNjZjMmU2NzQ1MWU1MjZiMDEyNWNjZjE5
NzRkYzkzNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NhbGMt
YW5pbWF0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFTUyAtICJ3aWR0
aCIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxNTAKK1BBU1MgLSAid2lkdGgiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDIwMAorUEFTUyAtICJ3aWR0aCIgcHJvcGVydHkgZm9y
ICJib3giIGVsZW1lbnQgYXQgMS45OXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMzAwCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2FsYy1hbmltYXRpb24tdGVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jYWxjLWFuaW1hdGlvbi10ZXN0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjNhY2Y3MWYyNTE3YjMwMjZlMDFhMjA0NjNlMDc1ZGI2Njg5N2U0ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2FsYy1hbmltYXRpb24tdGVzdC5odG1s
CkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisKK0BrZXlmcmFtZXMgVGhlQW5pbWF0aW9uIHsKKyAgICBmcm9tIHsgd2lkdGg6IGNh
bGMoMTAwcHgqY29zKDApKTsgfQorICAgIHRvICAgeyB3aWR0aDogY2FsYygzMDBweCpzaW4ocGkv
MikpOyB9Cit9CisKKyNib3ggeworICAgIHBvc2l0aW9uOmFic29sdXRlOworICAgIGhlaWdodDog
MTAwcHg7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7Cisg
ICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9u
OiBsaW5lYXI7CisgICAgYW5pbWF0aW9uLW5hbWU6IFRoZUFuaW1hdGlvbjsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveCI+PC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PgorPHNjcmlwdD4KK3ZhciBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAvLyBbYW5pbWF0
aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9s
ZXJhbmNlXQorICAgIFsiVGhlQW5pbWF0aW9uIiwgMC41LCAiYm94IiwgIndpZHRoIiwgMTUwLCAx
NV0sCisgICAgWyJUaGVBbmltYXRpb24iLCAxLCAiYm94IiwgIndpZHRoIiwgMjAwLCAxNV0sCisg
ICAgWyJUaGVBbmltYXRpb24iLCAxLjk5LCAiYm94IiwgIndpZHRoIiwgMzAwLCAxNV0sCitdOwor
cnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVu
ZGVmaW5lZCwgZmFsc2UsIHVuZGVmaW5lZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy90cmlnLWZ1bmN0aW9ucy13aXRoLWNv
bnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlv
bnMtd2l0aC1jb25zdGFudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2Mzk1OGIzNDgwNTg1
YTViYmJlZWZmYjk4OGY2NTE5MmYyZjJiNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL2NhbGMvdHJpZy1mdW5jdGlvbnMtd2l0aC1jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTA1IEBACitUZXN0cyBmdW5jdGlvbmFsaXR5IG9mIHNpbiwgY29zLCB0YW4sIGUg
YW5kIHBpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK2VsZW1lbnQuc3R5bGVb
IndpZHRoIl0gPSAiY2FsYyhzaW4ocGkvMikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKwor
ZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKGNvcyhwaSAtIDMuMTQxNTkyNjUzNTg5Nzkz
MjM4NDYpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRo
Il0gPSAiY2FsYyhjb3MoZSAtIDIuNzE4MjgxODI4NDU5MDQ1MjM1NCkgKiAxMDBweCkiCitQQVNT
IDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbigzMGRlZyAr
IDEuMDQ3MTk2N3JhZCApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5
bGVbIndpZHRoIl0gPSAiY2FsYyhjb3MoMzBkZWcgLSAwLjUyMzU5OXJhZCApICogMTAwcHgpIgor
UEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4oMy4x
NDE1OSAvIDIgKyAxIC0gMSkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5z
dHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbigxMDBncmFkKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlz
IDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKDAgLyAyICsgMSAtIDEp
ICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAi
Y2FsYyh0YW4oMzBkZWcgKyAwLjI2MTc5OXJhZCApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAw
CisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyh0YW4oMC43ODUzOTc1cmFkICkgKiAx
MDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxj
KHRhbigzLjE0MTU5IC8gNCArIDEgLSAxKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitl
bGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKDAuMjV0dXJuKSAqIDEwMHB4KSIKK1BB
U1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKHNpbihj
b3MocGkpICsgMSkpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVb
IndpZHRoIl0gPSAiY2FsYyhzaW4odGFuKHBpLzQpKnBpLzIpICogMTAwcHgpIgorUEFTUyAxMDAg
aXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4odGFuKHBpLzQpKnBp
LzIpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIndpZHRoIl0g
PSAiY2FsYyhzaW4odGFuKHBpLzQpKnBpLzIpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisK
K2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKHBpLzIpICogMTAwcHgpIgor
UEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoY29z
KHBpIC0gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NikgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAK
KworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhjb3MoZSAtIDIuNzE4MjgxODI4
NDU5MDQ1MjM1NCkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsi
bWluLXdpZHRoIl0gPSAiY2FsYyhzaW4oMzBkZWcgKyAxLjA0NzE5NjdyYWQgKSAqIDEwMHB4KSIK
K1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKGNv
cygzMGRlZyAtIDAuNTIzNTk5cmFkICkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxl
bWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhzaW4oMy4xNDE1OSAvIDIgKyAxIC0gMSkg
KiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0g
PSAiY2FsYyhzaW4oMTAwZ3JhZCkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVu
dC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhjb3MoMCAvIDIgKyAxIC0gMSkgKiAxMDBweCki
CitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyh0
YW4oMzBkZWcgKyAwLjI2MTc5OXJhZCApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2Vs
ZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGModGFuKDAuNzg1Mzk3NXJhZCApICogMTAw
cHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNh
bGModGFuKDMuMTQxNTkgLyA0ICsgMSAtIDEpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisK
K2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKDAuMjV0dXJuKSAqIDEwMHB4
KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxj
KGNvcyhzaW4oY29zKHBpKSArIDEpKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVt
ZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbih0YW4ocGkvNCkqcGkvMikgKiAxMDBw
eCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2Fs
YyhzaW4odGFuKHBpLzQpKnBpLzIpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1l
bnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEwMHB4
KSIKK1BBU1MgMTAwIGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvY2FsYy90cmlnLWZ1
bmN0aW9ucy13aXRoLWNvbnN0YW50cy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL3RyaWct
ZnVuY3Rpb25zLXdpdGgtY29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA2MzM0N2QxMDllMTlk
MGQ1ZmY5M2NlODk5MzI4N2FjZjQwOTBiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvY2FsYy90cmlnLWZ1bmN0aW9ucy13aXRoLWNvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxk
aXYgaWQ9InRlc3REaXYiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIGZ1bmN0aW9uYWxpdHkgb2Ygc2luLCBjb3MsIHRhbiwgZSBhbmQgcGki
KTsKKworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdERpdiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0UHJvcGVy
dHkocHJvcGVydHlOYW1lKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIHRlc3RWYWx1ZShleHByZXNzaW9uLCBjb21wdXRlZFZhbHVlKQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoJycpOworICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlW3Byb3BlcnR5TmFtZV0gPSAnOTk5cHgnOworICAg
ICAgICAgICAgICAgICAgICBldmFsQW5kTG9nKGBlbGVtZW50LnN0eWxlWyIke3Byb3BlcnR5TmFt
ZX0iXSA9ICIke2V4cHJlc3Npb259ImApOworICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUg
PSBNYXRoLnJvdW5kKGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShw
cm9wZXJ0eU5hbWUpLnNsaWNlKDAsLTIpKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUo
YCR7dmFsdWV9YCwgY29tcHV0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgLy9UZXN0IHBpCisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKHNpbihw
aS8yKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMo
Y29zKHBpIC0gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NikgKiAxMDBweCknLCAnMTAwJyk7CisKKyAg
ICAgICAgICAgICAgICAvL1Rlc3QgZQorICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhj
b3MoZSAtIDIuNzE4MjgxODI4NDU5MDQ1MjM1NCkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgLy9UZXN0IHVuaXRzCisgICAgICAgICAgICAgICAg
dGVzdFZhbHVlKCdjYWxjKHNpbigzMGRlZyArIDEuMDQ3MTk2N3JhZCApICogMTAwcHgpJywgJzEw
MCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhjb3MoMzBkZWcgLSAwLjUyMzU5
OXJhZCApICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2Fs
YyhzaW4oMy4xNDE1OSAvIDIgKyAxIC0gMSkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAg
ICAgICAgdGVzdFZhbHVlKCdjYWxjKHNpbigxMDBncmFkKSAqIDEwMHB4KScsICcxMDAnKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoY29zKDAgLyAyICsgMSAtIDEpICogMTAwcHgp
JywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyh0YW4oMzBkZWcgKyAw
LjI2MTc5OXJhZCApICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1
ZSgnY2FsYyh0YW4oMC43ODUzOTc1cmFkICkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAg
ICAgICAgdGVzdFZhbHVlKCdjYWxjKHRhbigzLjE0MTU5IC8gNCArIDEgLSAxKSAqIDEwMHB4KScs
ICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoc2luKDAuMjV0dXJuKSAq
IDEwMHB4KScsICcxMDAnKTsKKworICAgICAgICAgICAgICAgIC8vVGVzdCBuZXN0aW5nCisgICAg
ICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKGNvcyhzaW4oY29zKHBpKSArIDEpKSAqIDEwMHB4
KScsICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGMoc2luKHRhbihwaS80
KSpwaS8yKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2Nh
bGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0VmFsdWUoJ2NhbGMoc2luKHRhbihwaS80KSpwaS8yKSAqIDEwMHB4KScsICcxMDAnKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFByb3BlcnR5KCJ3aWR0aCIpOworICAg
ICAgICAgICAgdGVzdFByb3BlcnR5KCJtaW4td2lkdGgiKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NhbGMtcGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jYWxjLXBh
cnNpbmctZXhwZWN0ZWQudHh0CmluZGV4IDU4ZDVlZGFlNWE5ZmFlNzY3OGNlYTcwZjgxYTYzMjRm
Yjk0OGMzY2IuLmYwNzYyZGZkMjRmNTI3ZWFiNWRkOWViMDNhODRhYTM3M2EzNGQwMWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NhbGMtcGFyc2luZy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2FsYy1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtNTIs
NiArNTIsMzAgQEAgZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjbGFtcCgxMDBweCwwJSwxJSki
CiBQQVNTIGVsZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgImNsYW1wKDEwMHB4LCAwJSwgMSUpIgog
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJykg
aXMgIjEwMHB4IgogCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoc2luKDkwZGVnKSAq
IDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNh
bGMoc2luKDQ1ZGVnICArICA0NWRlZyApICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2Vs
ZW1lbnQuc3R5bGVbIndpZHRoIl0gPSAiY2FsYyhjb3MoIDAgKSAqIDEwMHB4KSIKK1BBU1MgMTAw
IGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNhbGMoY29zKCAzMGRlZyAtIDMw
ZGVnICkgKiAxMDBweCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lkdGgi
XSA9ICJjYWxjKHRhbig0NWRlZykqMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQu
c3R5bGVbIndpZHRoIl0gPSAiY2FsYyh0YW4oMzBkZWcgKyAxNWRlZykgKiAxMDBweCkiCitQQVNT
IDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbihwaS8yKSAq
IDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0gImNh
bGMoY29zKGUgLSBlKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCiBlbGVtZW50LnN0eWxl
WyJ3aWR0aCJdID0gImNhbGMoMTAwcHgsIDIwMHB4KSIKIFBBU1MgZWxlbWVudC5zdHlsZVsnd2lk
dGgnXSBpcyAiOTk5cHgiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVy
dHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCkBAIC0xMDQsNiArMTI4LDQyIEBAIGVsZW1lbnQu
c3R5bGVbIndpZHRoIl0gPSAiY2xhbXAoMXB4LDJweCwycHgsNHB4KSIKIFBBU1MgZWxlbWVudC5z
dHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCku
Z2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCiAKK2VsZW1lbnQuc3R5bGVbIndp
ZHRoIl0gPSAiY2FsYyhzaW4oOTBweCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ3dp
ZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3Bl
cnR5VmFsdWUoJ3dpZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJdID0g
ImNhbGMoc2luKDMwZGVnICsgMS4wNDcxOTY3cmFkLCAwKSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVu
dC5zdHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVb
IndpZHRoIl0gPSAiY2FsYyhjb3MoIDAgLCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVb
J3dpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFBy
b3BlcnR5VmFsdWUoJ3dpZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJ3aWR0aCJd
ID0gImNhbGMoY29zKCAoKSAzMGRlZyAtIDAuNTIzNTk5cmFkICkgKiAxMDBweCkiCitQQVNTIGVs
ZW1lbnQuc3R5bGVbJ3dpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0
eWxlWyJ3aWR0aCJdID0gImNhbGModGFuKDQ1ZGVnICkgKSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVu
dC5zdHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVb
IndpZHRoIl0gPSAiY2FsYyh0YW4oMzBkZWcsICsgMC4yNjE3OTlyYWQpICogMTAwcHgpIgorUEFT
UyBlbGVtZW50LnN0eWxlWyd3aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVu
dC5zdHlsZVsid2lkdGgiXSA9ICJjYWxjKHNpbihwaWlpaS80KSAqIDEwMHB4KSIKK1BBU1MgZWxl
bWVudC5zdHlsZVsnd2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5
bGVbIndpZHRoIl0gPSAiY2FsYyhzaW4oZSBlLzQpICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0
eWxlWyd3aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5n
ZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVudC5zdHlsZVsid2lk
dGgiXSA9ICJjYWxjKHNpbigpICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWyd3aWR0aCdd
IGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZh
bHVlKCd3aWR0aCcpIGlzICI5OTlweCIKKwogZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAi
Y2FsYygxMDBweCkiCiBQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlzICJjYWxjKDEw
MHB4KSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdt
aW4td2lkdGgnKSBpcyAiMTAwcHgiCkBAIC0xNTIsNiArMjEyLDMwIEBAIGVsZW1lbnQuc3R5bGVb
Im1pbi13aWR0aCJdID0gImNsYW1wKDEwMHB4LDAlLDElKSIKIFBBU1MgZWxlbWVudC5zdHlsZVsn
bWluLXdpZHRoJ10gaXMgImNsYW1wKDEwMHB4LCAwJSwgMSUpIgogUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICJjbGFtcCgxMDBw
eCwgMCUsIDElKSIKIAorZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhzaW4oOTBk
ZWcpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0
aCJdID0gImNhbGMoc2luKDQ1ZGVnICArICA0NWRlZyApICogMTAwcHgpIgorUEFTUyAxMDAgaXMg
MTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoY29zKCAwICkgKiAxMDBw
eCkiCitQQVNTIDEwMCBpcyAxMDAKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2Fs
Yyhjb3MoIDMwZGVnIC0gMzBkZWcgKSAqIDEwMHB4KSIKK1BBU1MgMTAwIGlzIDEwMAorCitlbGVt
ZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHRhbig0NWRlZykqMTAwcHgpIgorUEFTUyAx
MDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGModGFuKDMwZGVn
ICsgMTVkZWcpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisKK2VsZW1lbnQuc3R5bGVbIm1p
bi13aWR0aCJdID0gImNhbGMoc2luKHBpLzIpICogMTAwcHgpIgorUEFTUyAxMDAgaXMgMTAwCisK
K2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNhbGMoY29zKGUgLSBlKSAqIDEwMHB4KSIK
K1BBU1MgMTAwIGlzIDEwMAorCiBlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKDEw
MHB4LCAyMDBweCkiCiBQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlzICI5OTlweCIK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdtaW4td2lk
dGgnKSBpcyAiOTk5cHgiCkBAIC0yMDMsNiArMjg3LDQyIEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdtaW4td2lkdGgnKSBpcyAiOTk5cHgiCiBlbGVt
ZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjbGFtcCgxcHgsMnB4LDJweCw0cHgpIgogUEFTUyBl
bGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCiBQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4IgorCitl
bGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHNpbig5MHB4KSAqIDEwMHB4KSIKK1BB
U1MgZWxlbWVudC5zdHlsZVsnbWluLXdpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIK
KworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyhzaW4oMzBkZWcgKyAxLjA0NzE5
NjdyYWQsIDApICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAi
OTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgn
bWluLXdpZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJj
YWxjKGNvcyggMCAsKSAqIDEwMHB4KSIKK1BBU1MgZWxlbWVudC5zdHlsZVsnbWluLXdpZHRoJ10g
aXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFs
dWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIKKworZWxlbWVudC5zdHlsZVsibWluLXdpZHRoIl0g
PSAiY2FsYyhjb3MoICgpIDMwZGVnIC0gMC41MjM1OTlyYWQgKSAqIDEwMHB4KSIKK1BBU1MgZWxl
bWVudC5zdHlsZVsnbWluLXdpZHRoJ10gaXMgIjk5OXB4IgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ21pbi13aWR0aCcpIGlzICI5OTlweCIKKworZWxl
bWVudC5zdHlsZVsibWluLXdpZHRoIl0gPSAiY2FsYyh0YW4oNDVkZWcgKSApICogMTAwcHgpIgor
UEFTUyBlbGVtZW50LnN0eWxlWydtaW4td2lkdGgnXSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4
IgorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgiXSA9ICJjYWxjKHRhbigzMGRlZywgKyAwLjI2
MTc5OXJhZCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13aWR0aCddIGlzICI5
OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdt
aW4td2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13aWR0aCJdID0gImNh
bGMoc2luKHBpaWlpLzQpICogMTAwcHgpIgorUEFTUyBlbGVtZW50LnN0eWxlWydtaW4td2lkdGgn
XSBpcyAiOTk5cHgiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlW
YWx1ZSgnbWluLXdpZHRoJykgaXMgIjk5OXB4IgorCitlbGVtZW50LnN0eWxlWyJtaW4td2lkdGgi
XSA9ICJjYWxjKHNpbihlIGUvNCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13
aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9w
ZXJ0eVZhbHVlKCdtaW4td2lkdGgnKSBpcyAiOTk5cHgiCisKK2VsZW1lbnQuc3R5bGVbIm1pbi13
aWR0aCJdID0gImNhbGMoc2luKCkgKiAxMDBweCkiCitQQVNTIGVsZW1lbnQuc3R5bGVbJ21pbi13
aWR0aCddIGlzICI5OTlweCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9w
ZXJ0eVZhbHVlKCdtaW4td2lkdGgnKSBpcyAiOTk5cHgiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NhbGMtcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY2FsYy1wYXJzaW5n
Lmh0bWwKaW5kZXggMDJiMWVjMWIxZDZjYjY2NmMwODBhMTM3NzhjZTdhYWUwM2JjYTYyNy4uYWEx
M2UxYTRkMGYyZDFhNGIwZmM0Yzg5OTlkZmI5Nzg2MGYyNzZmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY2FsYy1wYXJzaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY2FsYy1wYXJzaW5nLmh0bWwKQEAgLTE5LDYgKzE5LDE1IEBACiAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhgZWxlbWVudC5zdHlsZVsnJHtwcm9wZXJ0eU5hbWV9
J11gLCBgJHtzcGVjaWZpZWRWYWx1ZX1gKTsKICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKGBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUo
JyR7cHJvcGVydHlOYW1lfScpYCwgYCR7Y29tcHV0ZWRWYWx1ZX1gKTsKICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFZhbHVl
KGV4cHJlc3Npb24sIGNvbXB1dGVkVmFsdWUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBkZWJ1ZygnJyk7CisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVb
cHJvcGVydHlOYW1lXSA9ICc5OTlweCc7CisgICAgICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
YGVsZW1lbnQuc3R5bGVbIiR7cHJvcGVydHlOYW1lfSJdID0gIiR7ZXhwcmVzc2lvbn0iYCk7Cisg
ICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IE1hdGgucm91bmQoZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSkuc2xpY2UoMCwtMikpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZShgJHt2YWx1ZX1gLCBjb21wdXRlZFZhbHVlKTsK
KyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAvLyBWYWxpZCBleHByZXNzaW9u
cy4KICAgICAgICAgICAgICAgICB0ZXN0RXhwcmVzc2lvbignY2FsYygxMDBweCknLCAnY2FsYygx
MDBweCknLCAnMTAwcHgnKTsKQEAgLTMzLDYgKzQyLDE0IEBACiAgICAgICAgICAgICAgICAgdGVz
dEV4cHJlc3Npb24oJ21pbigxMDBweCwwJSknLCAnbWluKDEwMHB4LCAwJSknLCBwcm9wZXJ0eU5h
bWUgPT0gJ3dpZHRoJyA/ICcwcHgnIDogIm1pbigxMDBweCwgMCUpIik7CiAgICAgICAgICAgICAg
ICAgdGVzdEV4cHJlc3Npb24oJ21heCgxMDBweCwwJSknLCAnbWF4KDEwMHB4LCAwJSknLCBwcm9w
ZXJ0eU5hbWUgPT0gJ3dpZHRoJyA/ICcxMDBweCcgOiAibWF4KDEwMHB4LCAwJSkiKTsKICAgICAg
ICAgICAgICAgICB0ZXN0RXhwcmVzc2lvbignY2xhbXAoMTAwcHgsMCUsMSUpJywgJ2NsYW1wKDEw
MHB4LCAwJSwgMSUpJywgcHJvcGVydHlOYW1lID09ICd3aWR0aCcgPyAnMTAwcHgnIDogImNsYW1w
KDEwMHB4LCAwJSwgMSUpIik7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxjKHNpbig5
MGRlZykgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdjYWxj
KHNpbig0NWRlZyAgKyAgNDVkZWcgKSAqIDEwMHB4KScsICcxMDAnKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0VmFsdWUoJ2NhbGMoY29zKCAwICkgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAg
ICAgICAgdGVzdFZhbHVlKCdjYWxjKGNvcyggMzBkZWcgLSAzMGRlZyApICogMTAwcHgpJywgJzEw
MCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyh0YW4oNDVkZWcpKjEwMHB4KScs
ICcxMDAnKTsKKyAgICAgICAgICAgICAgICB0ZXN0VmFsdWUoJ2NhbGModGFuKDMwZGVnICsgMTVk
ZWcpICogMTAwcHgpJywgJzEwMCcpOworICAgICAgICAgICAgICAgIHRlc3RWYWx1ZSgnY2FsYyhz
aW4ocGkvMikgKiAxMDBweCknLCAnMTAwJyk7CisgICAgICAgICAgICAgICAgdGVzdFZhbHVlKCdj
YWxjKGNvcyhlIC0gZSkgKiAxMDBweCknLCAnMTAwJyk7CiAKICAgICAgICAgICAgICAgICAvLyBO
b24tcGFyc2luZyBleHByZXNzaW9ucy4KICAgICAgICAgICAgICAgICB0ZXN0RXhwcmVzc2lvbign
Y2FsYygxMDBweCwgMjAwcHgpJywgJzk5OXB4JywgJzk5OXB4Jyk7CkBAIC00OCw2ICs2NSwxNSBA
QAogICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjbGFtcCgyMDBweCwsMzAwcHgpJywg
Jzk5OXB4JywgJzk5OXB4Jyk7CiAgICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NsYW1w
KCgpLCwzMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhw
cmVzc2lvbignY2xhbXAoMXB4LDJweCwycHgsNHB4KScsICc5OTlweCcsICc5OTlweCcpOworICAg
ICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjYWxjKHNpbig5MHB4KSAqIDEwMHB4KScsICc5
OTlweCcsICc5OTlweCcpOworICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjYWxjKHNp
bigzMGRlZyArIDEuMDQ3MTk2N3JhZCwgMCkgKiAxMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwcmVzc2lvbignY2FsYyhjb3MoIDAgLCkgKiAxMDBweCkn
LCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwcmVzc2lvbignY2Fs
Yyhjb3MoICgpIDMwZGVnIC0gMC41MjM1OTlyYWQgKSAqIDEwMHB4KScsICc5OTlweCcsICc5OTlw
eCcpOworICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjYWxjKHRhbig0NWRlZyApICkg
KiAxMDBweCknLCAnOTk5cHgnLCAnOTk5cHgnKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwcmVz
c2lvbignY2FsYyh0YW4oMzBkZWcsICsgMC4yNjE3OTlyYWQpICogMTAwcHgpJywgJzk5OXB4Jywg
Jzk5OXB4Jyk7CisgICAgICAgICAgICAgICAgdGVzdEV4cHJlc3Npb24oJ2NhbGMoc2luKHBpaWlp
LzQpICogMTAwcHgpJywgJzk5OXB4JywgJzk5OXB4Jyk7CisgICAgICAgICAgICAgICAgdGVzdEV4
cHJlc3Npb24oJ2NhbGMoc2luKGUgZS80KSAqIDEwMHB4KScsICc5OTlweCcsICc5OTlweCcpOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHByZXNzaW9uKCdjYWxjKHNpbigpICogMTAwcHgpJywgJzk5
OXB4JywgJzk5OXB4Jyk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRlc3RQcm9wZXJ0
eSgid2lkdGgiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>