<?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>78041</bug_id>
          
          <creation_ts>2012-02-07 14:16:56 -0800</creation_ts>
          <short_desc>Support reverse and alternate-reverse in CA animations</short_desc>
          <delta_ts>2012-04-27 22:11:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dino</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>551379</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-02-07 14:16:56 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=60525 introduces reverse and alternate-reverse. We&apos;ll need to support these in CA animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551385</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-02-07 14:17:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/10822878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609170</commentid>
    <comment_count>2</comment_count>
      <attachid>138672</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-24 15:47:32 -0700</bug_when>
    <thetext>Created attachment 138672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609257</commentid>
    <comment_count>3</comment_count>
      <attachid>138672</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-24 16:55:20 -0700</bug_when>
    <thetext>Comment on attachment 138672
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2033
&gt; +    unsigned fromIndex = forwards ? 0 : 1;
&gt; +    unsigned toIndex = forwards ? 1 : 0;

I assume this is here for the purposes of clarity, but it could be:

unsigned fromIndex = !forwards;
unsigned toIndex = forwards;

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2061
&gt; +    bool forwards = (animation-&gt;direction() != Animation::AnimationDirectionReverse &amp;&amp; animation-&gt;direction() != Animation::AnimationDirectionAlternateReverse);

You do this a lot; maybe it would be nice to factor it out somewhere, for readability?

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:-2075
&gt; -    // We toss the last tfArray value because it has to one shorter than the others.

It has to one shorter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609267</commentid>
    <comment_count>4</comment_count>
      <attachid>138672</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-24 17:00:10 -0700</bug_when>
    <thetext>Comment on attachment 138672
Patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm:145
&gt; +        float ax = reverse ? 1 - static_cast&lt;float&gt;(ctf-&gt;x2()) : static_cast&lt;float&gt;(ctf-&gt;x1());
&gt; +        float ay = reverse ? 1 - static_cast&lt;float&gt;(ctf-&gt;y2()) : static_cast&lt;float&gt;(ctf-&gt;y1());
&gt; +        float bx = reverse ? 1 - static_cast&lt;float&gt;(ctf-&gt;x1()) : static_cast&lt;float&gt;(ctf-&gt;x2());
&gt; +        float by = reverse ? 1 - static_cast&lt;float&gt;(ctf-&gt;y1()) : static_cast&lt;float&gt;(ctf-&gt;y2());

Could probably move the static_cast to the outside and cut it down by one per line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609291</commentid>
    <comment_count>5</comment_count>
      <attachid>138672</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-24 17:19:12 -0700</bug_when>
    <thetext>Comment on attachment 138672
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2297
&gt; +        if (i &lt; (valueList.size() - 1)) {
&gt; +            const TimingFunction* timingFunction;
&gt; +            if (forwards)
&gt; +                timingFunction = timingFunctionForAnimationValue(curValue, animation);
&gt; +            else
&gt; +                timingFunction = timingFunctionForAnimationValue(valueList.at(index - 1), animation);
&gt; +            timingFunctions.append(timingFunction);

Looks like you have 3 copies of this code now. Can it be shared?

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html:82
&gt; +          var computedValue = window.getComputedStyle(el).webkitTransform;
&gt; +          var realValue = parseFloat(computedValue.split(&quot;(&quot;)[1].split(&quot;,&quot;)[4]);

This seems very similar to what animation-test-helpers.js already does. Can we share more code?

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode.html:75
&gt; +            var realValue = window.getComputedStyle(el).getPropertyCSSValue(&quot;left&quot;).getFloatValue(CSSPrimitiveValue.CSS_NUMBER);

DItto.

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode.html:93
&gt; +            var realValue = window.getComputedStyle(el).getPropertyCSSValue(&quot;left&quot;).getFloatValue(CSSPrimitiveValue.CSS_NUMBER);

Etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609305</commentid>
    <comment_count>6</comment_count>
      <attachid>138672</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-24 17:34:18 -0700</bug_when>
    <thetext>Comment on attachment 138672
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2296
&gt; +            if (forwards)
&gt; +                timingFunction = timingFunctionForAnimationValue(curValue, animation);
&gt; +            else
&gt; +                timingFunction = timingFunctionForAnimationValue(valueList.at(index - 1), animation);

This seems ripe for a ternary operator.

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html:68
&gt; +            if (Math.abs(expectedValue - realValue) &lt; allowance) {
&gt; +              result += &quot;PASS&quot;;
&gt; +            } else {
&gt; +              result += &quot;FAIL&quot;;
&gt; +            }

I don&apos;t know if we follow WebKit style in our JS, but we usually would omit those braces (and below in the same code). Also, I think the result += lines aren&apos;t sufficiently indented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609313</commentid>
    <comment_count>7</comment_count>
      <attachid>138672</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-24 17:45:26 -0700</bug_when>
    <thetext>Comment on attachment 138672
Patch

Attachment 138672 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12528398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611937</commentid>
    <comment_count>8</comment_count>
      <attachid>139287</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 15:17:26 -0700</bug_when>
    <thetext>Created attachment 139287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611938</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 15:19:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=139287) [details]
&gt; Patch

Includes all of Tim and Simon&apos;s review comments. I didn&apos;t quite reduce things as much as asked, because other refactorings made it less ugly anyway.

The big change since the previous patch is the large modification to animation-test-helpers, which allows the property getting/testing code to be shared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611957</commentid>
    <comment_count>10</comment_count>
      <attachid>139287</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-27 15:42:15 -0700</bug_when>
    <thetext>Comment on attachment 139287
Patch

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

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html:54
&gt; +            setTimeout(endTest, 0); // this set timeout should be ok in the test environment
&gt; +                                    // since we&apos;re just giving style a chance to resolve

capitalization and punctuation (and &quot;setTimeout&quot;?)

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode-hardware.html:60
&gt; +        for (var i=0; i &lt; expectedValues.length; i++) {

space around the =

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode.html:67
&gt; +            setTimeout(endTest, 0); // this set timeout should be ok in the test environment
&gt; +                                    // since we&apos;re just giving style a chance to resolve

ditto

&gt; LayoutTests/animations/animation-direction-reverse-fill-mode.html:73
&gt; +        for (var i=0; i &lt; expectedValues.length; i++) {

and here, and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611973</commentid>
    <comment_count>11</comment_count>
      <attachid>139287</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-27 16:03:00 -0700</bug_when>
    <thetext>Comment on attachment 139287
Patch

Attachment 139287 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12559364</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612030</commentid>
    <comment_count>12</comment_count>
      <attachid>139287</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-04-27 17:05:32 -0700</bug_when>
    <thetext>Comment on attachment 139287
Patch

It would be good to address Tim&apos;s most recent comments, and to try to get that Windows build working, but r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612040</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-04-27 17:13:49 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 139287 [details])
&gt; It would be good to address Tim&apos;s most recent comments, and to try to get that Windows build working, but r=me!

Windows error output is surprisingly annoying to read:

7&gt;..\platform\graphics\ca\win\PlatformCAAnimationWin.cpp(292) : error C2511: &apos;void WebCore::PlatformCAAnimation::setTimingFunction(const WebCore::TimingFunction *)&apos; : overloaded member function not found in &apos;WebCore::PlatformCAAnimation&apos;
7&gt;        c:\cygwin\home\buildbot\WebKit\Source\WebCore\platform\graphics\ca\PlatformCAAnimation.h(53) : see declaration of &apos;WebCore::PlatformCAAnimation&apos;
7&gt;..\platform\graphics\ca\win\PlatformCAAnimationWin.cpp(537) : error C2511: &apos;void WebCore::PlatformCAAnimation::setTimingFunctions(const WTF::Vector&lt;T&gt; &amp;)&apos; : overloaded member function not found in &apos;WebCore::PlatformCAAnimation&apos;
7&gt;        with
7&gt;        [
7&gt;            T=const WebCore::TimingFunction *
7&gt;        ]
7&gt;        c:\cygwin\home\buildbot\WebKit\Source\WebCore\platform\graphics\ca\PlatformCAAnimation.h(53) : see declaration of &apos;WebCore::PlatformCAAnimation&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612118</commentid>
    <comment_count>14</comment_count>
      <attachid>139329</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 20:34:23 -0700</bug_when>
    <thetext>Created attachment 139329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612119</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 20:35:22 -0700</bug_when>
    <thetext>Patch to check if windows compiles.

Followup bug: https://bugs.webkit.org/show_bug.cgi?id=85121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612129</commentid>
    <comment_count>16</comment_count>
      <attachid>139329</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-27 20:56:05 -0700</bug_when>
    <thetext>Comment on attachment 139329
Patch

Attachment 139329 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12559445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612134</commentid>
    <comment_count>17</comment_count>
      <attachid>139332</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 21:07:09 -0700</bug_when>
    <thetext>Created attachment 139332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612150</commentid>
    <comment_count>18</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-04-27 22:11:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/115540

Includes changes from Tim and Beth.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138672</attachid>
            <date>2012-04-24 15:47:32 -0700</date>
            <delta_ts>2012-04-27 15:17:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78041-20120424154731.patch</filename>
            <type>text/plain</type>
            <size>57883</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA1MGUxYjcyMmM5MDRl
NjZkMjEyYzExNTM2MjQ4NTI2MjlhMWYyYS4uZTVjZjgwMjhhM2MzOGZmNGYyNjA0YzU1ZjU1M2Fh
ZTYyMTg2OTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA0LTI0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5k
IGFsdGVybmF0ZS1yZXZlcnNlIGluIENBIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29yZUFuaW1hdGlvbiBkb2VzIG5vdCBuYXRpdmVs
eSBzdXBwb3J0IHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlCisgICAgICAgIGFuaW1hdGlv
biBkaXJlY3Rpb25zIHNvIHdlIG5lZWQgdG8gZmxpcCB0aGUgYW5pbWF0aW9uIHZhbHVlcyAoa2V5
ZnJhbWUKKyAgICAgICAga2V5cyBhbmQgdGltaW5nIGZ1bmN0aW9ucykgdGhhdCB3ZSBzZW5kIHRv
IEdyYXBoaWNzTGF5ZXJDQS4gVW5mb3J0dW5hdGVseQorICAgICAgICB0aGlzIGNvZGUgYWRkcyBh
IGxvdCBvZiBjb25kaXRpb25hbHMgYmVjYXVzZSBpdCBpc24ndCBhcyBzaW1wbGUgYXMKKyAgICAg
ICAgcmV2ZXJzaW5nIHRoZSBvcmRlciBvZiBrZXlzLiBZb3UgYWxzbyBub3cgaGF2ZSBhIGRpZmZl
cmVudCBhbGlnbm1lbnQgb2YKKyAgICAgICAgdGltaW5nIGZ1bmN0aW9ucyB0byB0aGUgcmV2ZXJz
ZWQgbGlzdC4KKworICAgICAgICBOZXcgdGVzdHMgdG8gY292ZXIgdGhlIHR3byBuZXcgZGlyZWN0
aW9ucywgbWFraW5nIHN1cmUgdGhlIHRpbWluZworICAgICAgICBmdW5jdGlvbnMgYXJlIGNvcnJl
Y3RseSBpbnZlcnRlZCwgYW5kIGV4ZXJjaXNpbmcgZmlsbCBtb2Rlcy4KKworICAgICAgICBUZXN0
czogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3
YXJlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLWZpbGwtbW9kZS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwKKyAgICAgICAgICAgICAg
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWwKKyAg
ICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1o
YXJkd2FyZS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLmh0bWwKKyAgICAgICAgICAgICAg
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgICBIYW5kbGUgdGhlIHByZXZpb3VzbHkgdW5zdXBwb3J0ZWQgYW5pbWF0aW9u
IGRpcmVjdGlvbnMsIHJldmVyc2luZworICAgICAgICAgIHRoZSBsaXN0IG9mIHZhbHVlcyBhbmQg
a2V5dGltZXMgdGhhdCB3b3VsZCBiZSB1c2VkIHRvIGNyZWF0ZQorICAgICAgICAgIHRoZSBDQSBB
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRl
ckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDQTo6c2V0dXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXRBbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2lu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRp
b25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FB
bmltYXRpb24uaDoKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb24pOiBQYXNzIHRocm91Z2gg
YSBmbGFnIHRoYXQgdGVsbHMgdGhlIENBIEFuaW1hdGlvbgorICAgICAgICB0aGF0IGl0IHNob3Vs
ZCBpbnZlcnQgdGhlIHRpbWluZyBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW06CisgICAgICAgICh0b0NBTWVkaWFU
aW1pbmdGdW5jdGlvbik6IEFkZCBhIHBhcmFtZXRlciB0aGF0IHdpbGwgaW52ZXJ0IHRoZSB0aW1p
bmcKKyAgICAgICAgZnVuY3Rpb24gY29lZmZpY2llbnRzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAg
KFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyk6CisKIDIwMTItMDQtMTggIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVz
ZSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBmb3IgV2ViR0wgY29udGVudCBpbnN0ZWFkIG9mIGEgZGVk
aWNhdGVkIGxheWVyIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDk5YWRmMmIxNjI3YWY2NDkyNDkz
YWY2NGJlMDQ2ZmVkNTU2ZDI4MDUuLmI2ZDNjMjZlY2ZiYTljM2U5MDBjNTljOTNjNDRkNWVkZTI5
OTZlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTk1MCw4ICsxOTUwLDcgQEAgYm9vbCBHcmFwaGlj
c0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXMKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQobGlzdElu
ZGV4KSktPnZhbHVlKCk7CiAgICAgaW50IG51bUFuaW1hdGlvbnMgPSBvcGVyYXRpb25zLT5zaXpl
KCk7CiAKLSAgICAvLyBGSVhNRTogV2UgY2FuJ3QgY3VycmVudGx5IGhhcmR3YXJlIGFuaW1hdGUg
c2hhZG93cy4gVGhlcmUgaXMgYW4gb3BlbiBxdWVzdGlvbiBhYm91dCByZW1vdmluZyBzaGFkb3dz
IGZyb20gZmlsdGVycyAKLSAgICAvLyBlbnRpcmVseSwgaW4gd2hpY2ggY2FzZSB0aGlzIGlzc3Vl
IGlzIG1vb3QuCisgICAgLy8gRklYTUU6IFdlIGNhbid0IGN1cnJlbnRseSBoYXJkd2FyZSBhbmlt
YXRlIHNoYWRvd3MuCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BbmltYXRpb25zOyArK2kp
IHsKICAgICAgICAgaWYgKG9wZXJhdGlvbnMtPmF0KGkpLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0g
RmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURPVykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTE5ODksNyArMTk4OCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXR1cEFuaW1hdGlv
bihQbGF0Zm9ybUNBQW5pbWF0aW9uKiBwcm9wZXJ0eUFuaW0sIGNvbnN0IEFuCiAgICAgZmxvYXQg
cmVwZWF0Q291bnQgPSBhbmltLT5pdGVyYXRpb25Db3VudCgpOwogICAgIGlmIChyZXBlYXRDb3Vu
dCA9PSBBbmltYXRpb246Okl0ZXJhdGlvbkNvdW50SW5maW5pdGUpCiAgICAgICAgIHJlcGVhdENv
dW50ID0gbnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKTsKLSAgICBlbHNlIGlmIChhbmltLT5k
aXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSkKKyAg
ICBlbHNlIGlmIChhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVj
dGlvbkFsdGVybmF0ZSB8fCBhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246OkFuaW1hdGlv
bkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpCiAgICAgICAgIHJlcGVhdENvdW50IC89IDI7CiAK
ICAgICBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZmlsbE1vZGUgPSBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpOb0ZpbGxNb2RlOwpAQCAtMjAxMCw3ICsyMDA5LDcgQEAgdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24qIHByb3BlcnR5
QW5pbSwgY29uc3QgQW4KIAogICAgIHByb3BlcnR5QW5pbS0+c2V0RHVyYXRpb24oZHVyYXRpb24p
OwogICAgIHByb3BlcnR5QW5pbS0+c2V0UmVwZWF0Q291bnQocmVwZWF0Q291bnQpOwotICAgIHBy
b3BlcnR5QW5pbS0+c2V0QXV0b3JldmVyc2VzKGFuaW0tPmRpcmVjdGlvbigpKTsKKyAgICBwcm9w
ZXJ0eUFuaW0tPnNldEF1dG9yZXZlcnNlcyhhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmltYXRpb246
OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZSB8fCBhbmltLT5kaXJlY3Rpb24oKSA9PSBBbmlt
YXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpOwogICAgIHByb3BlcnR5
QW5pbS0+c2V0UmVtb3ZlZE9uQ29tcGxldGlvbihmYWxzZSk7CiAgICAgcHJvcGVydHlBbmltLT5z
ZXRBZGRpdGl2ZShhZGRpdGl2ZSk7CiAgICAgcHJvcGVydHlBbmltLT5zZXRGaWxsTW9kZShmaWxs
TW9kZSk7CkBAIC0yMDI4LDEwICsyMDI3LDE1IEBAIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiBHcmFw
aGljc0xheWVyQ0E6OnRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY29uc3QgQW5pCiAK
IGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiBiYXNpY0FuaW0pCiB7CisgICAgYm9vbCBmb3J3YXJkcyA9IChhbmltLT5kaXJl
Y3Rpb24oKSAhPSBBbmltYXRpb246OkFuaW1hdGlvbkRpcmVjdGlvblJldmVyc2UgJiYgYW5pbS0+
ZGlyZWN0aW9uKCkgIT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZl
cnNlKTsKKworICAgIHVuc2lnbmVkIGZyb21JbmRleCA9IGZvcndhcmRzID8gMCA6IDE7CisgICAg
dW5zaWduZWQgdG9JbmRleCA9IGZvcndhcmRzID8gMSA6IDA7CisgICAgCiAgICAgc3dpdGNoICh2
YWx1ZUxpc3QucHJvcGVydHkoKSkgewogICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHk6
IHsKLSAgICAgICAgYmFzaWNBbmltLT5zZXRGcm9tVmFsdWUoc3RhdGljX2Nhc3Q8Y29uc3QgRmxv
YXRBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdCgwKSktPnZhbHVlKCkpOwotICAgICAgICBi
YXNpY0FuaW0tPnNldFRvVmFsdWUoc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1
ZSo+KHZhbHVlTGlzdC5hdCgxKSktPnZhbHVlKCkpOworICAgICAgICBiYXNpY0FuaW0tPnNldEZy
b21WYWx1ZShzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KGZyb21JbmRleCkpLT52YWx1ZSgpKTsKKyAgICAgICAgYmFzaWNBbmltLT5zZXRUb1ZhbHVl
KHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQodG9J
bmRleCkpLT52YWx1ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBA
IC0yMDQwLDIzICsyMDQ0LDI2IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25F
bmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwKICAgICB9CiAKICAg
ICAvLyBUaGlzIGNvZGVwYXRoIGlzIHVzZWQgZm9yIDIta2V5ZnJhbWUgYW5pbWF0aW9ucywgc28g
d2Ugc3RpbGwgbmVlZCB0byBsb29rIGluIHRoZSBzdGFydAotICAgIC8vIGZvciBhIHRpbWluZyBm
dW5jdGlvbi4KKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJldmVy
c2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0aW1p
bmcgZnVuY3Rpb24uCiAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0g
dGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksIGFuaW0pOwog
ICAgIGlmICh0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5j
dGlvbih0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGJhc2ljQW5pbS0+c2V0VGltaW5nRnVuY3Rp
b24odGltaW5nRnVuY3Rpb24sICFmb3J3YXJkcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW0sIFBsYXRmb3JtQ0FB
bmltYXRpb24qIGtleWZyYW1lQW5pbSkKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRp
b25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5p
bWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGtleWZyYW1lQW5pbSkKIHsK
ICAgICBWZWN0b3I8ZmxvYXQ+IGtleVRpbWVzOwogICAgIFZlY3RvcjxmbG9hdD4gdmFsdWVzOwog
ICAgIFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+IHRpbWluZ0Z1bmN0aW9uczsKKworICAg
IGJvb2wgZm9yd2FyZHMgPSAoYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSAhPSBBbmltYXRpb246OkFu
aW1hdGlvbkRpcmVjdGlvblJldmVyc2UgJiYgYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSAhPSBBbmlt
YXRpb246OkFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZVJldmVyc2UpOwogICAgIAogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZUxpc3Quc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
Y29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gdmFsdWVMaXN0LmF0KGkpOwotICAgICAg
ICBrZXlUaW1lcy5hcHBlbmQoY3VyVmFsdWUtPmtleVRpbWUoKSk7CisgICAgICAgIHVuc2lnbmVk
IGluZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlzdC5zaXplKCkgLSBpIC0gMSk7CisgICAg
ICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHZhbHVlTGlzdC5hdChpbmRleCk7
CisgICAgICAgIGtleVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZhbHVlLT5rZXlUaW1lKCkg
OiAoMSAtIGN1clZhbHVlLT5rZXlUaW1lKCkpKTsKIAogICAgICAgICBzd2l0Y2ggKHZhbHVlTGlz
dC5wcm9wZXJ0eSgpKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHk6IHsK
QEAgLTIwNjksMTUgKzIwNzYsMTkgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlv
bktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRp
bWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFuaW0pKTsKKyAgICAgICAg
aWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKSB7CisgICAgICAgICAgICBjb25zdCBUaW1p
bmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBpZiAoZm9yd2FyZHMpCisg
ICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlv
blZhbHVlKGN1clZhbHVlLCBhbmltYXRpb24pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2
YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9uKTsKKyAgICAgICAgICAgIHRpbWluZ0Z1
bmN0aW9ucy5hcHBlbmQodGltaW5nRnVuY3Rpb24pOworICAgICAgICB9CiAgICAgfQogICAgIAot
ICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1ZSBiZWNhdXNlIGl0IGhhcyB0byBv
bmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCi0gICAgdGltaW5nRnVuY3Rpb25zLnJlbW92ZUxh
c3QoKTsKLQogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwogICAgIGtl
eWZyYW1lQW5pbS0+c2V0VmFsdWVzKHZhbHVlcyk7Ci0gICAga2V5ZnJhbWVBbmltLT5zZXRUaW1p
bmdGdW5jdGlvbnModGltaW5nRnVuY3Rpb25zKTsKKyAgICBrZXlmcmFtZUFuaW0tPnNldFRpbWlu
Z0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7CiAgICAgCiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0yMDg1LDggKzIwOTYsMTMgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNl
dEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAog
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBvaW50cyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW0sIFBs
YXRmb3JtQ0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIFRyYW5zZm9y
bU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcFR5cGUsIGJvb2wgaXNNYXRyaXhB
bmltYXRpb24sIGNvbnN0IEludFNpemUmIGJveFNpemUpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlz
dC5zaXplKCkgPT0gMik7Ci0gICAgY29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqIHN0YXJ0
VmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVl
TGlzdC5hdCgwKSk7Ci0gICAgY29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqIGVuZFZhbHVl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3Qu
YXQoMSkpOworICAgIGJvb2wgZm9yd2FyZHMgPSAoYW5pbS0+ZGlyZWN0aW9uKCkgIT0gQW5pbWF0
aW9uOjpBbmltYXRpb25EaXJlY3Rpb25SZXZlcnNlICYmIGFuaW0tPmRpcmVjdGlvbigpICE9IEFu
aW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CisgICAgCisgICAg
dW5zaWduZWQgZnJvbUluZGV4ID0gZm9yd2FyZHMgPyAwIDogMTsKKyAgICB1bnNpZ25lZCB0b0lu
ZGV4ID0gZm9yd2FyZHMgPyAxIDogMDsKKyAgICAKKyAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlv
blZhbHVlKj4odmFsdWVMaXN0LmF0KGZyb21JbmRleCkpOworICAgIGNvbnN0IFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlKiBlbmRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1h
dGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KHRvSW5kZXgpKTsKICAgICAKICAgICBpZiAoaXNNYXRy
aXhBbmltYXRpb24pIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZnJvbVRyYW5zZm9y
bSwgdG9UcmFuc2Zvcm07CkBAIC0yMTI4LDkgKzIxNDQsOSBAQCBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YQogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1rZXlmcmFt
ZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0Ci0gICAg
Ly8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgorICAgIC8vIGZvciBhIHRpbWluZyBmdW5jdGlvbi4g
RXZlbiBpbiB0aGUgcmV2ZXJzaW5nIGFuaW1hdGlvbiBjYXNlLCB0aGUgZmlyc3Qga2V5ZnJhbWUg
cHJvdmlkZXMgdGhlIHRpbWluZyBmdW5jdGlvbi4KICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiog
dGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKHZhbHVlTGlz
dC5hdCgwKSwgYW5pbSk7Ci0gICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdG
dW5jdGlvbik7CisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlv
biwgIWZvcndhcmRzKTsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlRnVuY3Rpb24gPSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJh
dGlvbih0cmFuc2Zvcm1PcFR5cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9IFBsYXRmb3Jt
Q0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKQEAgLTIxNDcsOSArMjE2MywxMiBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gdHJh
bnNmb3JtYXRpb25NYXRyaXhWYWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9u
Kj4gdGltaW5nRnVuY3Rpb25zOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IChhbmltYXRpb24tPmRp
cmVjdGlvbigpICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSAmJiBhbmlt
YXRpb24tPmRpcmVjdGlvbigpICE9IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJu
YXRlUmV2ZXJzZSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVMaXN0LnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBjdXJW
YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVM
aXN0LmF0KGkpKTsKLSAgICAgICAga2V5VGltZXMuYXBwZW5kKGN1clZhbHVlLT5rZXlUaW1lKCkp
OworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGZvcndhcmRzID8gaSA6ICh2YWx1ZUxpc3Quc2l6
ZSgpIC0gaSAtIDEpOworICAgICAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogY3Vy
VmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVl
TGlzdC5hdChpbmRleCkpOworICAgICAgICBrZXlUaW1lcy5hcHBlbmQoZm9yd2FyZHMgPyBjdXJW
YWx1ZS0+a2V5VGltZSgpIDogKDEgLSBjdXJWYWx1ZS0+a2V5VGltZSgpKSk7CiAKICAgICAgICAg
aWYgKGlzTWF0cml4QW5pbWF0aW9uKSB7CiAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCB0cmFuc2Zvcm07CkBAIC0yMTc3LDEzICsyMTk2LDE2IEBAIGJvb2wgR3JhcGhpY3NMYXllckNB
OjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IHZhCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGN1
clZhbHVlLCBhbmltYXRpb24pOwotICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWlu
Z0Z1bmN0aW9uKTsKKyAgICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKSB7Cisg
ICAgICAgICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb247CisgICAgICAg
ICAgICBpZiAoZm9yd2FyZHMpCisgICAgICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSB0aW1p
bmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGN1clZhbHVlLCBhbmltYXRpb24pOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rp
b25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9uKTsK
KyAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGltaW5nRnVuY3Rpb24pOworICAg
ICAgICB9CiAgICAgfQogICAgIAotICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1
ZSBiZWNhdXNlIGl0IGhhcyB0byBvbmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCi0gICAgdGlt
aW5nRnVuY3Rpb25zLnJlbW92ZUxhc3QoKTsKLQogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGlt
ZXMoa2V5VGltZXMpOwogICAgIAogICAgIGlmIChpc1RyYW5zZm9ybVR5cGVOdW1iZXIodHJhbnNm
b3JtT3BUeXBlKSkKQEAgLTIxOTMsNyArMjIxNSw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpz
ZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZh
CiAgICAgZWxzZQogICAgICAgICBrZXlmcmFtZUFuaW0tPnNldFZhbHVlcyh0cmFuc2Zvcm1hdGlv
bk1hdHJpeFZhbHVlcyk7CiAgICAgICAgIAotICAgIGtleWZyYW1lQW5pbS0+c2V0VGltaW5nRnVu
Y3Rpb25zKHRpbWluZ0Z1bmN0aW9ucyk7CisgICAga2V5ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5j
dGlvbnModGltaW5nRnVuY3Rpb25zLCAhZm9yd2FyZHMpOwogCiAgICAgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgdmFsdWVGdW5jdGlvbiA9IGdldFZhbHVlRnVuY3Rpb25O
YW1lRm9yVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wVHlwZSk7CiAgICAgaWYgKHZhbHVl
RnVuY3Rpb24gIT0gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9WYWx1ZUZ1bmN0aW9uKQpAQCAtMjIw
Niw5ICsyMjI4LDE0IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRp
b25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhCiBib29sIEdyYXBoaWNzTGF5
ZXJDQTo6c2V0RmlsdGVyQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0
JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBQbGF0Zm9ybUNBQW5pbWF0
aW9uKiBiYXNpY0FuaW0sIGludCBmdW5jdGlvbkluZGV4LCBpbnQgaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KQogewogICAgIEFTU0VSVCh2YWx1ZUxpc3Quc2l6ZSgpID09IDIpOworCisgICAg
Ym9vbCBmb3J3YXJkcyA9IChhbmltYXRpb24tPmRpcmVjdGlvbigpICE9IEFuaW1hdGlvbjo6QW5p
bWF0aW9uRGlyZWN0aW9uUmV2ZXJzZSAmJiBhbmltYXRpb24tPmRpcmVjdGlvbigpICE9IEFuaW1h
dGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CiAgICAgCi0gICAgY29u
c3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGZyb21WYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZp
bHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDApKTsKLSAgICBjb25zdCBGaWx0ZXJB
bmltYXRpb25WYWx1ZSogdG9WYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlv
blZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKTsKKyAgICB1bnNpZ25lZCBmcm9tSW5kZXggPSBmb3J3
YXJkcyA/IDAgOiAxOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJkcyA/IDEgOiAwOwor
ICAgIAorICAgIGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKiBmcm9tVmFsdWUgPSBzdGF0aWNf
Y2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChmcm9tSW5kZXgp
KTsKKyAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogdG9WYWx1ZSA9IHN0YXRpY19jYXN0
PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KHRvSW5kZXgpKTsKICAg
ICAKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcGVyYXRpb24gPSBmcm9tVmFsdWUt
PnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgpOwogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiog
dG9PcGVyYXRpb24gPSB0b1ZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbkluZGV4KTsKQEAgLTIy
MzEsOSArMjI1OCwxMCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RmlsdGVyQW5pbWF0aW9u
RW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZQogICAgIGJhc2ljQW5pbS0+
c2V0RnJvbVZhbHVlKGZyb21PcGVyYXRpb24sIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7
CiAgICAgYmFzaWNBbmltLT5zZXRUb1ZhbHVlKHRvT3BlcmF0aW9uLCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpOwogICAgIAotICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1r
ZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0
IGZvciBhIHRpbWluZyBmdW5jdGlvbi4KKyAgICAvLyBUaGlzIGNvZGVwYXRoIGlzIHVzZWQgZm9y
IDIta2V5ZnJhbWUgYW5pbWF0aW9ucywgc28gd2Ugc3RpbGwgbmVlZCB0byBsb29rIGluIHRoZSBz
dGFydAorICAgIC8vIGZvciBhIHRpbWluZyBmdW5jdGlvbi4gRXZlbiBpbiB0aGUgcmV2ZXJzaW5n
IGFuaW1hdGlvbiBjYXNlLCB0aGUgZmlyc3Qga2V5ZnJhbWUgcHJvdmlkZXMgdGhlIHRpbWluZyBm
dW5jdGlvbi4KICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSB0aW1p
bmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKHZhbHVlTGlzdC5hdCgwKSwgYW5pbWF0aW9uKTsK
LSAgICBiYXNpY0FuaW0tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICBi
YXNpY0FuaW0tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uLCAhZm9yd2FyZHMpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yMjQ1LDkgKzIyNzMsMTIgQEAgYm9vbCBHcmFwaGlj
c0xheWVyQ0E6OnNldEZpbHRlckFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWUKICAgICBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiB0aW1pbmdGdW5j
dGlvbnM7CiAgICAgUmVmUHRyPERlZmF1bHRGaWx0ZXJPcGVyYXRpb24+IGRlZmF1bHRPcGVyYXRp
b247CiAKKyAgICBib29sIGZvcndhcmRzID0gKGFuaW1hdGlvbi0+ZGlyZWN0aW9uKCkgIT0gQW5p
bWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25SZXZlcnNlICYmIGFuaW1hdGlvbi0+ZGlyZWN0aW9u
KCkgIT0gQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZlcnNlKTsKKwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZUxpc3Quc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8
Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaSkpOwotICAgICAgICBr
ZXlUaW1lcy5hcHBlbmQoY3VyVmFsdWUtPmtleVRpbWUoKSk7CisgICAgICAgIHVuc2lnbmVkIGlu
ZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlzdC5zaXplKCkgLSBpIC0gMSk7CisgICAgICAg
IGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGluZGV4KSk7CisgICAgICAgIGtl
eVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZhbHVlLT5rZXlUaW1lKCkgOiAoMSAtIGN1clZh
bHVlLT5rZXlUaW1lKCkpKTsKIAogICAgICAgICBpZiAoY3VyVmFsdWUtPnZhbHVlKCktPm9wZXJh
dGlvbnMoKS5zaXplKCkgPiBzdGF0aWNfY2FzdDxzaXplX3Q+KGZ1bmN0aW9uSW5kZXgpKQogICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChjdXJWYWx1ZS0+dmFsdWUoKS0+b3BlcmF0aW9ucygpW2Z1
bmN0aW9uSW5kZXhdKTsKQEAgLTIyNTcsMTYgKzIyODgsMTkgQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEZpbHRlckFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmFsdWUKICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZGVmYXVsdE9wZXJhdGlvbik7CiAgICAg
ICAgIH0KIAotICAgICAgICBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSB0
aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKGN1clZhbHVlLCBhbmltYXRpb24pOwotICAg
ICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgaWYg
KGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKSB7CisgICAgICAgICAgICBjb25zdCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb247CisgICAgICAgICAgICBpZiAoZm9yd2FyZHMpCisgICAg
ICAgICAgICAgICAgdGltaW5nRnVuY3Rpb24gPSB0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZh
bHVlKGN1clZhbHVlLCBhbmltYXRpb24pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1
ZUxpc3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9uKTsKKyAgICAgICAgICAgIHRpbWluZ0Z1bmN0
aW9ucy5hcHBlbmQodGltaW5nRnVuY3Rpb24pOworICAgICAgICB9CiAgICAgfQogICAgIAotICAg
IC8vIFdlIHRvc3MgdGhlIGxhc3QgdGltaW5nIGZ1bmN0aW9uIGJlY2F1c2UgaXQgaGFzIHRvIGJl
IG9uZSBzaG9ydGVyIHRoYW4gdGhlIG90aGVycy4KLSAgICB0aW1pbmdGdW5jdGlvbnMucmVtb3Zl
TGFzdCgpOwotCiAgICAga2V5ZnJhbWVBbmltLT5zZXRLZXlUaW1lcyhrZXlUaW1lcyk7CiAgICAg
a2V5ZnJhbWVBbmltLT5zZXRWYWx1ZXModmFsdWVzLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5k
ZXgpOwotICAgIGtleWZyYW1lQW5pbS0+c2V0VGltaW5nRnVuY3Rpb25zKHRpbWluZ0Z1bmN0aW9u
cyk7CisgICAga2V5ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGltaW5nRnVuY3Rpb25z
LCAhZm9yd2FyZHMpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKaW5k
ZXggMjgwZDc2M2IzN2U4ZWQ4YzJjMWRkNGEzMDMyMzk0ZTYxYmFmNDJkMS4uNmMxMjYzMTE0ZDI5
OWQ2NGFlZjg0ZGVhN2U1MTY4NzcwYzYzYTg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaApAQCAtOTMs
NyArOTMsNyBAQCBwdWJsaWM6CiAgICAgRmlsbE1vZGVUeXBlIGZpbGxNb2RlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRGaWxsTW9kZShGaWxsTW9kZVR5cGUpOwogICAgIAotICAgIHZvaWQgc2V0VGlt
aW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qKTsKKyAgICB2b2lkIHNldFRpbWluZ0Z1
bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiwgYm9vbCByZXZlcnNlID0gZmFsc2UpOwogICAg
IHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7
CiAKICAgICBib29sIGlzUmVtb3ZlZE9uQ29tcGxldGlvbigpIGNvbnN0OwpAQCAtMTM3LDcgKzEz
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEtleVRpbWVzKGNvbnN0IFZlY3RvcjxmbG9hdD4m
KTsKICAgICB2b2lkIGNvcHlLZXlUaW1lc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiop
OwogCi0gICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uKj4mKTsKKyAgICB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8
Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYsIGJvb2wgcmV2ZXJzZSA9IGZhbHNlKTsKICAgICB2b2lk
IGNvcHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKICAg
ICAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Lm1tCmluZGV4IDVjZjEwMDY2YTUwZTQxN2UxOTQ4MGNiZjAzY2FhM2Y1MmVmMDNhNjcuLjBkMWI2
MDQzMTE2OGE1MmU3NzA4ODk1M2UzMjE4MDI5ZWNiZTgwNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLm1tCkBAIC0xMzQsMTMgKzEzNCwxNiBAQCBzdGF0aWMgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgZnJvbUNBVmFsdWVGdW5jdGlvblR5cGUoTlNTdHJp
bmcqCiB9CiAjZW5kaWYKIAotc3RhdGljIENBTWVkaWFUaW1pbmdGdW5jdGlvbiogdG9DQU1lZGlh
VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQorc3Rh
dGljIENBTWVkaWFUaW1pbmdGdW5jdGlvbiogdG9DQU1lZGlhVGltaW5nRnVuY3Rpb24oY29uc3Qg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uLCBib29sIHJldmVyc2UpCiB7CiAgICAgQVNT
RVJUKHRpbWluZ0Z1bmN0aW9uKTsKICAgICBpZiAodGltaW5nRnVuY3Rpb24tPmlzQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbigpKSB7CiAgICAgICAgIGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb24qIGN0ZiA9IHN0YXRpY19jYXN0PGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24q
Pih0aW1pbmdGdW5jdGlvbik7Ci0gICAgICAgIHJldHVybiBbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9u
IGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eDEoKSkg
OnN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkxKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c3RhdGljX2Nhc3Q8ZmxvYXQ+
KGN0Zi0+eDIoKSkgOnN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkyKCkpXTsKKyAgICAgICAgZmxv
YXQgYXggPSByZXZlcnNlID8gMSAtIHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngyKCkpIDogc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eDEoKSk7CisgICAgICAgIGZsb2F0IGF5ID0gcmV2ZXJzZSA/
IDEgLSBzdGF0aWNfY2FzdDxmbG9hdD4oY3RmLT55MigpKSA6IHN0YXRpY19jYXN0PGZsb2F0Pihj
dGYtPnkxKCkpOworICAgICAgICBmbG9hdCBieCA9IHJldmVyc2UgPyAxIC0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGN0Zi0+eDEoKSkgOiBzdGF0aWNfY2FzdDxmbG9hdD4oY3RmLT54MigpKTsKKyAgICAg
ICAgZmxvYXQgYnkgPSByZXZlcnNlID8gMSAtIHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkxKCkp
IDogc3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTIoKSk7CisgICAgICAgIHJldHVybiBbQ0FNZWRp
YVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6YXggOmF5IDpieCA6Ynld
OwogICAgIH0KICAgICAKICAgICByZXR1cm4gW0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlv
bldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25MaW5lYXJdOwpAQCAtMzA2LDkgKzMwOSw5
IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVUeXBlIHZh
bHVlKQogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRGaWxsTW9kZTp0b0NBRmlsbE1vZGVUeXBl
KHZhbHVlKV07CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rp
b24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
OjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdmFsdWUsIGJvb2wgcmV2
ZXJzZSkKIHsKLSAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0VGltaW5nRnVuY3Rpb246dG9DQU1l
ZGlhVGltaW5nRnVuY3Rpb24odmFsdWUpXTsKKyAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0VGlt
aW5nRnVuY3Rpb246dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24odmFsdWUsIHJldmVyc2UpXTsKIH0K
IAogdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0
IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbHVlKQpAQCAtNjk0LDEyICs2OTcsMTIgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmlt
YXRpb24qIHZhbHVlKQogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9h
bmltYXRpb24uZ2V0KCkpIHNldEtleVRpbWVzOltvdGhlciBrZXlUaW1lc11dOwogfQogCi12b2lk
IFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29u
c3QgVGltaW5nRnVuY3Rpb24qPiYgdmFsdWUpCit2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNl
dFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYgdmFs
dWUsIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBOU011dGFibGVBcnJheSogYXJyYXkgPSBbTlNNdXRh
YmxlQXJyYXkgYXJyYXldOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YWx1ZS5zaXpl
KCk7ICsraSkKLSAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b0NBTWVkaWFUaW1pbmdGdW5jdGlv
bih2YWx1ZVtpXSldOworICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OnRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKHZhbHVlW2ldLCByZXZlcnNlKV07CiAgICAgCiAgICAgW3N0YXRpY19jYXN0PENBS2V5
ZnJhbWVBbmltYXRpb24qPihtX2FuaW1hdGlvbi5nZXQoKSkgc2V0VGltaW5nRnVuY3Rpb25zOmFy
cmF5XTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2MjA0N2Q0YjY1NWU0N2Q4MWFjMDUyYzEzOWM0NjI4ZGIxZDU4ZTZm
Li5mNGU2M2ZkYzc2MTE4Y2VlNGFlNjgyZWEwYjRkMzJiMmY3NTIxY2NkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMTItMDQtMjQgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisg
ICAgICAgIFN1cHBvcnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVyc2UgaW4gQ0EgYW5pbWF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzgw
NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
cyBzdXBwb3J0IGZvciByZXZlcnNlIGFuZCBhbHRlcm5hdGUtcmV2ZXJzZSBhbmltYXRpb25zIG9u
CisgICAgICAgIENvcmVBbmltYXRpb24gb2JqZWN0cywgYXMgd2VsbCBhcyBmaWxsaW5nIG91dCBz
b21lIG9mIHRoZSBzb2Z0d2FyZQorICAgICAgICBhbmltYXRvciB0ZXN0cy4gVGhlcmUgYXJlIHRo
cmVlIHZhcmlhYmxlcyB0byBleGVyY2lzZTogcmV2ZXJzZSB2cworICAgICAgICBmb3J3YXJkIGRp
cmVjdGlvbiBhbmltYXRpb25zLCB3aGV0aGVyIHJldmVyc2VkIHRpbWluZyBmdW5jdGlvbnMgYXJl
CisgICAgICAgIGludmVydGVkIGNvcnJlY3RseSwgYW5kIHRoYXQgZmlsbCBtb2RlIHJlc3BlY3Rz
IHRoZSBkaXJlY3Rpb24gb2YKKyAgICAgICAgYW5pbWF0aW9uLgorCisgICAgICAgICogYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
ZmlsbC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LWZpbGwtbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1o
YXJkd2FyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0
aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJkd2FyZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25z
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGly
ZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRp
bWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1sOiBBZGRl
ZC4KKwogMjAxMi0wNC0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNDk2NS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZp
bGwtbW9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YzA2
ZDZjYTgyOTJmYjhjN2JhMzNlYjQxZGZlNDFmNjc0MjkyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1v
ZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBh
bmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVudCBmaWxsIG1v
ZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBzZWNvbmQgZGVsYXku
IEl0IHRha2VzIHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBh
bmltYXRpb24uCitOb25lCitCYWNrd2FyZHMKK0ZvcndhcmRzCitCb3RoCitCb3RoIGl0ZXJhdGlu
ZworUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4cGVjdGVkOiAxMDAgYWN0dWFs
OiAxMDAKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYiBleHBlY3RlZDogMzAwIGFj
dHVhbDogMzAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDEw
MCBhY3R1YWw6IDEwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBkIGV4cGVjdGVk
OiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogZSBleHBl
Y3RlZDogMzAwIGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4
cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGIg
ZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDog
YyBleHBlY3RlZDogMzAwIGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlk
OiBkIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0g
aWQ6IGUgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdh
cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZTVmZTJmMDY4NTM2ZjVjYTM4MzUyMGYwOGI1Y2ZlYTE5ZjJmZDljCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmls
bC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdCBw
ZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSB3aXRoIGRpZmZl
cmVudCBmaWxsIG1vZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBz
ZWNvbmQgZGVsYXkuIEl0IHRha2VzIHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUg
ZW5kIG9mIHRoZSBhbmltYXRpb25zLgorQm90aCBJdGVyYXRlIC0gUmV2ZXJzZQorQm90aCBJdGVy
YXRlIC0gQWx0ZXJuYXRlIFJldmVyc2UKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDog
YSBleHBlY3RlZDogMzAwIGFjdHVhbDogMzAwCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0g
aWQ6IGIgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24g
LSBpZDogYSBleHBlY3RlZDogMjAwIGFjdHVhbDogMjAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlv
biAtIGlkOiBiIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiAzMDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhh
cmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWFmMTJkZTY0YWFm
ZjQxNzBmZDlhYjM5NmJhMzBhNDUwMTUxOWZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3
YXJlLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgPHRpdGxlPlRlc3Qgc2ltcGxlIGZpbGwgbW9kZSBvbiB0cmFuc2Zvcm08L3RpdGxlPgor
ICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBs
ZWZ0OiAxMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDBw
eCwgMCwgMCk7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xczsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBh
bmltOworICAgIH0KKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbSB7CisgICAgICAgIGZyb20g
eyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwcHgsIDAsIDApOyB9CisgICAgICAg
IHRvICAgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwcHgsIDAsIDApOyB9Cisg
ICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOTk7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1p
dGVyYXRpb24tY291bnQ6IDI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJl
dmVyc2U7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdD4K
KyAgICBjb25zdCBudW1BbmltcyA9IDE7CisgICAgdmFyIGFuaW1zRmluaXNoZWQgPSAwOworICAg
IGNvbnN0IGFsbG93YW5jZSA9IDU7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAg
ICB7aWQ6ICJhIiwgc3RhcnQ6IDMwMCwgZW5kOiAyMDB9LAorICAgICAge2lkOiAiYiIsIHN0YXJ0
OiAzMDAsIGVuZDogMzAwfQorICAgIF07CisgICAgdmFyIHJlc3VsdCA9ICIiOworCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhbmltYXRpb25FbmRlZChldmVudCkgewor
ICAgICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51bUFuaW1zKSB7CisgICAgICAgICAgICBz
ZXRUaW1lb3V0KGVuZFRlc3QsIDApOyAvLyB0aGlzIHNldCB0aW1lb3V0IHNob3VsZCBiZSBvayBp
biB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gc2luY2Ugd2UncmUganVzdCBnaXZpbmcgc3R5bGUgYSBjaGFuY2UgdG8gcmVzb2x2ZQor
ICAgICAgICB9CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CisKKyAgICAgICAg
Zm9yICh2YXIgaT0wOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVjdGVkVmFsdWVzW2ldLmlk
KTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uZW5k
OworICAgICAgICAgICAgdmFyIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShlbCkud2Via2l0VHJhbnNmb3JtOworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IHBhcnNl
RmxvYXQoY29tcHV0ZWRWYWx1ZS5zcGxpdCgiKCIpWzFdLnNwbGl0KCIsIilbNF0pOworICAgICAg
ICAgICAgaWYgKE1hdGguYWJzKGV4cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNl
KSB7CisgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmVzdWx0ICs9ICIgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZh
bHVlc1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIg
KyByZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3VsdDsKKworICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICAKKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24gKCkgeworICAgICAgZm9yICh2YXIgaT0wOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChleHBlY3Rl
ZFZhbHVlc1tpXS5pZCk7CisgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZh
bHVlc1tpXS5zdGFydDsKKyAgICAgICAgICB2YXIgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGVsKS53ZWJraXRUcmFuc2Zvcm07CisgICAgICAgICAgdmFyIHJlYWxWYWx1
ZSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRWYWx1ZS5zcGxpdCgiKCIpWzFdLnNwbGl0KCIsIilbNF0p
OworICAgICAgICAgIGlmIChNYXRoLmFicyhleHBlY3RlZFZhbHVlIC0gcmVhbFZhbHVlKSA8IGFs
bG93YW5jZSkgeworICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICB9CisgICAgICAg
ICAgcmVzdWx0ICs9ICIgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVkVmFs
dWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDogIiAr
IHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgIH0KKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIndlYmtpdEFuaW1hdGlvbkVuZCIsIGFuaW1hdGlvbkVuZGVkLCBmYWxzZSk7CisgICAg
fTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBlcmZvcm1zIGFu
IGFuaW1hdGlvbiBvZiB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHdpdGggZGlmZmVyZW50CitmaWxs
IG1vZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBzZWNvbmQgZGVs
YXkuCitJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0
aGUgYW5pbWF0aW9ucy4KKzxkaXYgaWQ9ImEiIGNsYXNzPSJib3giPgorICBCb3RoIEl0ZXJhdGUg
LSBSZXZlcnNlCis8L2Rpdj4KKzxkaXYgaWQ9ImIiIGNsYXNzPSJib3giPgorICBCb3RoIEl0ZXJh
dGUgLSBBbHRlcm5hdGUgUmV2ZXJzZQorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU0ODQwOWNlMzA0ZDA1NjU5MjI5MmJiZDU1OGUxZWM1ODhkZmFjYTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS1maWxsLW1vZGUuaHRtbApAQCAtMCwwICsxLDEyOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3QgYW5pbWF0aW9uIGRpcmVjdGlv
biByZXZlcnNlIHdpdGggZmlsbCBtb2RlczwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgdG9w
OiAxMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBs
aW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltOworICAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKyAgICBALXdlYmtpdC1rZXlm
cmFtZXMgYW5pbSB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBweDsgfQorICAgICAgICB0byAg
IHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9uZTsKKyAgICB9
CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2Rl
OiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgIH0KKyAg
ICAjZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdlYmtpdC1hbmlt
YXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9u
LWNvdW50OiAyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUt
cmV2ZXJzZTsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgY29uc3QgbnVtQW5pbXMgPSA1OworICAgIHZhciBh
bmltc0ZpbmlzaGVkID0gMDsKKyAgICBjb25zdCBhbGxvd2FuY2UgPSA1OworICAgIGNvbnN0IGV4
cGVjdGVkVmFsdWVzID0gWworICAgICAge2lkOiAiYSIsIHN0YXJ0OiAxMDAsIGVuZDogMTAwfSwK
KyAgICAgIHtpZDogImIiLCBzdGFydDogMzAwLCBlbmQ6IDEwMH0sCisgICAgICB7aWQ6ICJjIiwg
c3RhcnQ6IDEwMCwgZW5kOiAzMDB9LAorICAgICAge2lkOiAiZCIsIHN0YXJ0OiAzMDAsIGVuZDog
MzAwfSwKKyAgICAgIHtpZDogImUiLCBzdGFydDogMzAwLCBlbmQ6IDMwMH0KKyAgICBdOworICAg
IHZhciByZXN1bHQgPSAiIjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKKyAgICAgICAgaWYgKCsrYW5pbXNGaW5pc2hlZCA9
PSBudW1BbmltcykgeworICAgICAgICAgICAgc2V0VGltZW91dChlbmRUZXN0LCAwKTsgLy8gdGhp
cyBzZXQgdGltZW91dCBzaG91bGQgYmUgb2sgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGp1c3QgZ2l2aW5n
IHN0eWxlIGEgY2hhbmNlIHRvIHJlc29sdmUKKyAgICAgICAgfQorICAgIH07CisKKyAgICBmdW5j
dGlvbiBlbmRUZXN0KCkgeworCisgICAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVkVmFs
dWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChleHBlY3RlZFZhbHVlc1tpXS5pZCk7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRW
YWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLmVuZDsKKyAgICAgICAgICAgIHZhciByZWFsVmFsdWUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgibGVmdCIp
LmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgICAgICAg
ICBpZiAoTWF0aC5hYnMoZXhwZWN0ZWRWYWx1ZSAtIHJlYWxWYWx1ZSkgPCBhbGxvd2FuY2UpIHsK
KyAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXN1bHQgKz0gIiAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVkVmFsdWVz
W2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDogIiArIHJl
YWxWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gcmVzdWx0OworCisgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgZm9yICh2YXIgaT0wOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVjdGVkVmFs
dWVzW2ldLmlkKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1
ZXNbaV0uc3RhcnQ7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5Q1NTVmFsdWUoImxlZnQiKS5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOworICAgICAgICAgICAgaWYgKE1hdGguYWJzKGV4
cGVjdGVkVmFsdWUgLSByZWFsVmFsdWUpIDwgYWxsb3dhbmNlKSB7CisgICAgICAgICAgICAgIHJl
c3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXN1
bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ICs9ICIgLSBz
dGFydCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVjdGVkVmFsdWVzW2ldLmlkICsgIiBleHBl
Y3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVhbDogIiArIHJlYWxWYWx1ZSArICI8YnI+
IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRB
bmltYXRpb25FbmQiLCBhbmltYXRpb25FbmRlZCwgZmFsc2UpOworICAgIH07CisKKyAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2Yg
dGhlIGxlZnQgcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5p
bWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LgorSXQgdGFrZXMg
c25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbi4K
KzxkaXYgaWQ9ImEiIGNsYXNzPSJib3giPgorICBOb25lCis8L2Rpdj4KKzxkaXYgaWQ9ImIiIGNs
YXNzPSJib3giPgorICBCYWNrd2FyZHMKKzwvZGl2PgorPGRpdiBpZD0iYyIgY2xhc3M9ImJveCI+
CisgIEZvcndhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImQiIGNsYXNzPSJib3giPgorICBCb3RoCis8
L2Rpdj4KKzxkaXYgaWQ9ImUiIGNsYXNzPSJib3giPgorICBCb3RoIGl0ZXJhdGluZworPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJk
d2FyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk0NzBlYzQ0
OWFkNzg1Y2NmZTI5NWQwNGI4YzllNjQ5OWJhNTNkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACisyIGtleWZyYW1lczogbm9ybWFsCisyIGtleWZy
YW1lczogYWx0ZXJuYXRlCisyIGtleWZyYW1lczogcmV2ZXJzZQorMiBrZXlmcmFtZXM6IGFsdGVy
bmF0ZS1yZXZlcnNlCis0IGtleWZyYW1lczogbm9ybWFsCis0IGtleWZyYW1lczogYWx0ZXJuYXRl
Cis0IGtleWZyYW1lczogcmV2ZXJzZQorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlCitQ
QVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDAu
MnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwyMCwwCitQQVNTIC0gIndlYmtpdFRy
YW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMSwwLDAsMSwyMCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVy
dHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSww
LDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NCIg
ZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgwLDAKK1BB
U1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMi4y
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIwLDAKK1BBU1MgLSAid2Via2l0VHJh
bnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVy
dHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSww
LDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NCIg
ZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMjAsMAorUEFT
UyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAwLjJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsNDAsMAorUEFTUyAtICJ3ZWJraXRUcmFu
c2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDEsMCwwLDEsNDAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5
IGZvciAiYm94NyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCww
LDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDgiIGVs
ZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNT
IC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g1IiBlbGVtZW50IGF0IDIuMnMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSw0MCwwCitQQVNTIC0gIndlYmtpdFRyYW5z
Zm9ybSIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5
IGZvciAiYm94NyIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCww
LDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDgiIGVs
ZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDQwLDAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtaGFyZHdhcmUtb3BhY2l0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMzgzZWE4YWU0MjJmY2M1ZTAzMzYxYThiYjM0MzQyNDQzYmVjOWIwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBA
QAorMiBrZXlmcmFtZXM6IG5vcm1hbAorMiBrZXlmcmFtZXM6IGFsdGVybmF0ZQorMiBrZXlmcmFt
ZXM6IHJldmVyc2UKKzIga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZQorNCBrZXlmcmFtZXM6
IG5vcm1hbAorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZQorNCBrZXlmcmFtZXM6IHJldmVyc2UKKzQg
a2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZQorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBm
b3IgImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjIKK1BB
U1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNv
bWV0aGluZyBjbG9zZSB0bzogMC4yCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94
MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuOAorUEFTUyAtICJv
cGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAwLjgKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVt
ZW50IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC4yCitQQVNTIC0gIm9wYWNpdHki
IHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDAuOAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQg
MS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjgKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVy
dHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC4y
CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAwLjJzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3Ig
ImJveDYiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjQKK1BBU1Mg
LSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g3IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMC43CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94OCIg
ZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNworUEFTUyAtICJvcGFj
aXR5IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAwLjQKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50
IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC43CitQQVNTIC0gIm9wYWNpdHkiIHBy
b3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDAuNworUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDgiIGVsZW1lbnQgYXQgMS4y
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS5o
dG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
aGFyZHdhcmUtb3BhY2l0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkY2I0NDA1M2EwYzIxNWFlMDYzYTEw
MDEzNGNlYjk1MWExNWE3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwKQEAg
LTAsMCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+
VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24gb24gY29tcG9zaXRlZCBlbGVtZW50
cyAob3BhY2l0eSk8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46
IDA7CisgICAgfQorCisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
ICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiA1MHB4OworICAg
ICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWlu
Zy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNv
dW50OiA4OworICAgIH0KKyAgICAKKyAgICAuZmFkZTEgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogZmFkZTE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgY29s
b3I6IHdoaXRlOworICAgIH0KKworICAgIC5mYWRlMiB7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi1uYW1lOiBmYWRlMjsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICB9CisK
KyAgICAubm9ybWFsIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFs
OworICAgIH0KKworICAgIC5hbHRlcm5hdGUgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGly
ZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgfQorCisgICAgLnJldmVyc2UgeworICAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKworICAgIC5hbHRlcm5hdGUt
cmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1y
ZXZlcnNlOworICAgIH0KKyAgICAKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZTEgeworICAg
ICAgZnJvbSB7IG9wYWNpdHk6IDA7IH0KKyAgICAgIHRvIHsgb3BhY2l0eTogMS4wOyB9CisgICAg
fQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUyIHsKKyAgICAgIDAlIHsgb3BhY2l0eTog
MC4wOyB9CisgICAgICA0MCUgeyBvcGFjaXR5OiAwLjg7IH0KKyAgICAgIDYwJSB7IG9wYWNpdHk6
IDAuNDsgfQorICAgICAgMTAwJSB7IG9wYWNpdHk6IDEuMDsgfQorICAgIH0KKyAgPC9zdHlsZT4K
KyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8v
IFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZh
bHVlLCB0b2xlcmFuY2VdCisgICAgICBbImZhZGUxIiwgMC4yLCAiYm94MSIsICJvcGFjaXR5Iiwg
MC4yLCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAwLjIsICJib3gyIiwgIm9wYWNpdHkiLCAwLjIs
IDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDAuMiwgImJveDMiLCAib3BhY2l0eSIsIDAuOCwgMC4x
NV0sCisgICAgICBbImZhZGUxIiwgMC4yLCAiYm94NCIsICJvcGFjaXR5IiwgMC44LCAwLjE1XSwK
KyAgICAgIFsiZmFkZTEiLCAxLjIsICJib3gxIiwgIm9wYWNpdHkiLCAwLjIsIDAuMTVdLAorICAg
ICAgWyJmYWRlMSIsIDEuMiwgImJveDIiLCAib3BhY2l0eSIsIDAuOCwgMC4xNV0sCisgICAgICBb
ImZhZGUxIiwgMS4yLCAiYm94MyIsICJvcGFjaXR5IiwgMC44LCAwLjE1XSwKKyAgICAgIFsiZmFk
ZTEiLCAxLjIsICJib3g0IiwgIm9wYWNpdHkiLCAwLjIsIDAuMTVdLAorICAgICAgWyJmYWRlMiIs
IDAuMiwgImJveDUiLCAib3BhY2l0eSIsIDAuNCwgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMC4y
LCAiYm94NiIsICJvcGFjaXR5IiwgMC40LCAwLjE1XSwKKyAgICAgIFsiZmFkZTIiLCAwLjIsICJi
b3g3IiwgIm9wYWNpdHkiLCAwLjcsIDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDAuMiwgImJveDgi
LCAib3BhY2l0eSIsIDAuNywgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMS4yLCAiYm94NSIsICJv
cGFjaXR5IiwgMC40LCAwLjE1XSwKKyAgICAgIFsiZmFkZTIiLCAxLjIsICJib3g2IiwgIm9wYWNp
dHkiLCAwLjcsIDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDEuMiwgImJveDciLCAib3BhY2l0eSIs
IDAuNywgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMS4yLCAiYm94OCIsICJvcGFjaXR5IiwgMC40
LCAwLjE1XSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7
CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveDEiIGNsYXNzPSJi
b3ggZmFkZTEgbm9ybWFsIj4yIGtleWZyYW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gy
IiBjbGFzcz0iYm94IGZhZGUxIGFsdGVybmF0ZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2
PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBmYWRlMSByZXZlcnNlIj4yIGtleWZyYW1lczog
cmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIgY2xhc3M9ImJveCBmYWRlMSBhbHRlcm5hdGUt
cmV2ZXJzZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJi
b3g1IiBjbGFzcz0iYm94IGZhZGUyIG5vcm1hbCI+NCBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2Pgor
PGRpdiBpZD0iYm94NiIgY2xhc3M9ImJveCBmYWRlMiBhbHRlcm5hdGUiPjQga2V5ZnJhbWVzOiBh
bHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDciIGNsYXNzPSJib3ggZmFkZTIgcmV2ZXJzZSI+
NCBrZXlmcmFtZXM6IHJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDgiIGNsYXNzPSJib3ggZmFk
ZTIgYWx0ZXJuYXRlLXJldmVyc2UiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtaGFyZHdhcmUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVj
dGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE4YjQyODIwZmRkYWEwYzMw
MjUwNTJmMzVhZTVkZmI1MGZmMDQ1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWwKQEAgLTAs
MCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGVz
dCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24gb24gY29tcG9zaXRlZCBlbGVtZW50czwv
dGl0bGU+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisK
KyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7
CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICB3aWR0aDogMjUw
cHg7CisgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBs
aW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDg7CisgICAg
fQorICAgIAorICAgIC5tb3ZlMSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3Zl
MTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICBjb2xvcjogd2hpdGU7Cisg
ICAgfQorCisgICAgLm1vdmUyIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUy
OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworICAgIH0KKworICAgIC5ub3JtYWwg
eworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgfQorCisg
ICAgLmFsdGVybmF0ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVy
bmF0ZTsKKyAgICB9CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1k
aXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAg
fQorICAgIAorICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAgICBmcm9tIHsgLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfQorICAgICAgdG8geyAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlm
cmFtZXMgbW92ZTIgeworICAgICAgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgw
cHgpOyB9CisgICAgICA0MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNjBweCk7
IH0KKyAgICAgIDYwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEyMHB4KTsgfQor
ICAgICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMHB4KTsgfQorICAg
IH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBlY3RlZFZhbHVl
cyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVy
dHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94
MSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMjAsMF0sIDIwXSwKKyAgICAgIFsibW92
ZTEiLCAwLjIsICJib3gyIiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAyMCwwXSwgMjBd
LAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDMiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCww
LDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDQiLCAid2Via2l0VHJh
bnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJv
eDEiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDIwLDBdLCAyMF0sCisgICAgICBbIm1v
dmUxIiwgMi4yLCAiYm94MiIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAy
MF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MyIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSww
LDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94NCIsICJ3ZWJraXRU
cmFuc2Zvcm0iLCBbMSwwLDAsMSwgMjAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAwLjIsICJi
b3g1IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA0MCwwXSwgMjBdLAorICAgICAgWyJt
b3ZlMiIsIDAuMiwgImJveDYiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDQwLDBdLCAy
MF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NyIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSww
LDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94OCIsICJ3ZWJraXRU
cmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAi
Ym94NSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgNDAsMF0sIDIwXSwKKyAgICAgIFsi
bW92ZTIiLCAyLjIsICJib3g2IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0s
IDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g3IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsx
LDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g4IiwgIndlYmtp
dFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA0MCwwXSwgMjBdLAorICAgIF07CisKKyAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCBtb3ZlMSBub3JtYWwiPjIga2V5ZnJhbWVzOiBu
b3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJveDIiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlIj4y
IGtleWZyYW1lczogYWx0ZXJuYXRlPC9kaXY+Cis8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94IG1v
dmUxIHJldmVyc2UiPjIga2V5ZnJhbWVzOiByZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBj
bGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZS1yZXZlcnNlIj4yIGtleWZyYW1lczogYWx0ZXJuYXRl
LXJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDUiIGNsYXNzPSJib3ggbW92ZTIgbm9ybWFsIj40
IGtleWZyYW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3g2IiBjbGFzcz0iYm94IG1vdmUy
IGFsdGVybmF0ZSI+NCBrZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94NyIg
Y2xhc3M9ImJveCBtb3ZlMiByZXZlcnNlIj40IGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRp
diBpZD0iYm94OCIgY2xhc3M9ImJveCBtb3ZlMiBhbHRlcm5hdGUtcmV2ZXJzZSI+NCBrZXlmcmFt
ZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1ub24taGFyZHdhcmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhh
cmR3YXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzcxYjkyMThmZDA0MmY3MzQ1ZTk0ODZi
NDE5YTIyMjAxNmM5MGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI1IEBACisyIGtleWZyYW1lczogbm9ybWFsCisyIGtleWZyYW1lczogYWx0ZXJu
YXRlCisyIGtleWZyYW1lczogcmV2ZXJzZQorMiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNl
Cis0IGtleWZyYW1lczogbm9ybWFsCis0IGtleWZyYW1lczogYWx0ZXJuYXRlCis0IGtleWZyYW1l
czogcmV2ZXJzZQorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlCitQQVNTIC0gImxlZnQi
IHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDIwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAwLjJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDIwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAi
Ym94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAt
ICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50
IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjAKK1BBU1MgLSAibGVmdCIgcHJvcGVy
dHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgw
CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAyLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQi
IGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMAorUEFTUyAtICJsZWZ0
IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiA0MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDYiIGVsZW1lbnQgYXQgMC4y
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiA0MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3Ig
ImJveDciIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1Mg
LSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g4IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVu
dCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQwCitQQVNTIC0gImxlZnQiIHByb3Bl
cnR5IGZvciAiYm94NiIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4
MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDciIGVsZW1lbnQgYXQgMi4ycyBzYXcg
c29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g4
IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9u
LWhhcmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS1ub24taGFyZHdhcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzNjMmU0YWE4NTViMmQw
ODQzMjQ0YWJmNmI1ZjUzMGY5ZmQ1NGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLmh0bWwK
QEAgLTAsMCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24gcmV2ZXJzZSBvbiBub24tY29t
cG9zaXRlZCBlbGVtZW50czwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1h
cmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7
CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRp
b24tY291bnQ6IDg7CisgICAgfQorICAgIAorICAgIC5tb3ZlMSB7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1uYW1lOiBtb3ZlMTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAgLm1vdmUyIHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLW5hbWU6IG1vdmUyOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworICAg
IH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBu
b3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorCisgICAgLmFsdGVy
bmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJu
YXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7
CisgICAgICBmcm9tIHsgbGVmdDogMHB4OyB9CisgICAgICB0byB7IGxlZnQ6IDIwMHB4OyB9Cisg
ICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1vdmUyIHsKKyAgICAgIDAlIHsgbGVmdDog
MHB4OyB9CisgICAgICA0MCUgeyBsZWZ0OiAxNjBweDsgfQorICAgICAgNjAlIHsgbGVmdDogMTIw
cHg7IH0KKyAgICAgIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQorICAgIH0KKyAgPC9zdHlsZT4KKyAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3Njcmlw
dD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFth
bmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVl
LCB0b2xlcmFuY2VdCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MSIsICJsZWZ0IiwgIDIwLCAy
MF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MiIsICJsZWZ0IiwgIDIwLCAyMF0sCisgICAg
ICBbIm1vdmUxIiwgMC4yLCAiYm94MyIsICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3Zl
MSIsIDAuMiwgImJveDQiLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIs
ICJib3gxIiwgImxlZnQiLCAgMjAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gyIiwg
ImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MyIsICJsZWZ0Iiwg
IDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDQiLCAibGVmdCIsICAyMCwgMjBd
LAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDUiLCAibGVmdCIsICA0MCwgMjBdLAorICAgICAg
WyJtb3ZlMiIsIDAuMiwgImJveDYiLCAibGVmdCIsICA0MCwgMjBdLAorICAgICAgWyJtb3ZlMiIs
IDAuMiwgImJveDciLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92ZTIiLCAwLjIsICJi
b3g4IiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94NSIsICJs
ZWZ0IiwgIDQwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94NiIsICJsZWZ0IiwgIDE4
MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDciLCAibGVmdCIsICAxODAsIDIwXSwK
KyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g4IiwgImxlZnQiLCAgNDAsIDIwXSwKKyAgICBdOwor
CisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7CisKKyAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveDEiIGNsYXNzPSJib3ggbW92ZTEgbm9ybWFsIj4y
IGtleWZyYW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94IG1vdmUx
IGFsdGVybmF0ZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIg
Y2xhc3M9ImJveCBtb3ZlMSByZXZlcnNlIj4yIGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRp
diBpZD0iYm94NCIgY2xhc3M9ImJveCBtb3ZlMSBhbHRlcm5hdGUtcmV2ZXJzZSI+MiBrZXlmcmFt
ZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g1IiBjbGFzcz0iYm94IG1v
dmUyIG5vcm1hbCI+NCBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94NiIgY2xh
c3M9ImJveCBtb3ZlMiBhbHRlcm5hdGUiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxk
aXYgaWQ9ImJveDciIGNsYXNzPSJib3ggbW92ZTIgcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IHJldmVy
c2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDgiIGNsYXNzPSJib3ggbW92ZTIgYWx0ZXJuYXRlLXJldmVy
c2UiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9u
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTRi
ZWVkYmIwZjU4YzQ4MzFjMmRhYjNlNjFmNWNiOTY5OGM3NTI2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5n
LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorbm9ybWFsCithbHRlcm5h
dGUKK3JldmVyc2UKK2FsdGVybmF0ZS1yZXZlcnNlCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZv
ciAiYm94MSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4CitQQVNT
IC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDE4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVu
dCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE5OAorUEFTUyAtICJsZWZ0IiBwcm9w
ZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAx
OTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDIuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gy
IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTk4CitQQVNTIC0gImxl
ZnQiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDE5OAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQg
Mi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25z
LWhhcmR3YXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZkMDljMDk3NWIyMzdiYjlmYzFiNzVhNzdhOWZkYjZiZjE0NDY5Y2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACitub3JtYWwKK2FsdGVybmF0ZQorcmV2ZXJzZQorYWx0ZXJuYXRlLXJldmVyc2UK
K1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQg
MC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4LDAKK1BBU1MgLSAid2Via2l0
VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9w
ZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAx
LDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g0
IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxOTgsMAor
UEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAy
LjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgsMAorUEFTUyAtICJ3ZWJraXRU
cmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDEsMCwwLDEsMTk4LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9w
ZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAx
LDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g0
IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxOCwwCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdh
cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYWI2MWUwNGIwNWY3YzNiNmRhMTI0OWJjMTYyOTI4MGNlMTlh
NTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
ZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS5odG1sCkBAIC0wLDAg
KzEsNzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0
aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbiB0aW1pbmcgZnVuY3Rpb25z
IG9uIGNvbXBvc2l0ZWQgZWxlbWVudHM8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7Cisg
ICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0
OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgLyogZWFzZSBpcyBnb29kIGZvciB0ZXN0aW5n
IGJlY2F1c2UgaXQgaXMgbm90IHN5bW1ldHJpYyAqLworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiA0OworICAgIH0KKyAgICAKKyAgICAubW92ZTEgeworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tbmFtZTogbW92ZTE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0
ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9
CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJl
dmVyc2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAg
IEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZVgoMHB4KTsgfQorICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlWCgyMDBweCk7IH0KKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQ+Cisg
ICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRp
bWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAg
ICAgWyJtb3ZlMSIsIDAuMiwgImJveDEiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAx
OCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gyIiwgIndlYmtpdFRyYW5zZm9y
bSIsICBbMSwwLDAsMSwgMTgsIDBdLCAxMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MyIs
ICJ3ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE5OCwgMF0sIDEwXSwKKyAgICAgIFsibW92
ZTEiLCAwLjIsICJib3g0IiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTk4LCAwXSwg
MTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDEiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsx
LDAsMCwxLCAxOCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gyIiwgIndlYmtp
dFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTk4LCAwXSwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDIu
MiwgImJveDMiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOTgsIDBdLCAxMF0sCisg
ICAgICBbIm1vdmUxIiwgMi4yLCAiYm94NCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEs
IDE4LCAwXSwgMTBdLAorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFs
dWVzKTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94MSIgY2xh
c3M9ImJveCBtb3ZlMSBub3JtYWwiPm5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94MiIgY2xhc3M9
ImJveCBtb3ZlMSBhbHRlcm5hdGUiPmFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIgY2xh
c3M9ImJveCBtb3ZlMSByZXZlcnNlIj5yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFz
cz0iYm94IG1vdmUxIGFsdGVybmF0ZS1yZXZlcnNlIj5hbHRlcm5hdGUtcmV2ZXJzZTwvZGl2Pgor
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
dGltaW5nLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
ZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNGMz
ODBkYWE1OWU2ZWI2ZWVmZTZlMzI5OTQyMWYzMDMwODY4ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmct
ZnVuY3Rpb25zLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tZGly
ZWN0aW9uIHRpbWluZyBmdW5jdGlvbnM8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7Cisg
ICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0
OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgLyogZWFzZSBpcyBnb29kIGZvciB0ZXN0aW5n
IGJlY2F1c2UgaXQgaXMgbm90IHN5bW1ldHJpYyAqLworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiA0OworICAgIH0KKyAgICAKKyAgICAubW92ZTEgeworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tbmFtZTogbW92ZTE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0
ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9
CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJl
dmVyc2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAg
IEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAgICBmcm9tIHsgbGVmdDogMHB4OyB9Cisg
ICAgICB0byB7IGxlZnQ6IDIwMHB4OyB9CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2Ny
aXB0PgorICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1u
YW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5j
ZV0KKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gxIiwgImxlZnQiLCAgMTgsIDEwXSwKKyAgICAg
IFsibW92ZTEiLCAwLjIsICJib3gyIiwgImxlZnQiLCAgMTgsIDEwXSwKKyAgICAgIFsibW92ZTEi
LCAwLjIsICJib3gzIiwgImxlZnQiLCAgMTk4LCAxMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAi
Ym94NCIsICJsZWZ0IiwgIDE5OCwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDEiLCAi
bGVmdCIsICAxOCwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDIiLCAibGVmdCIsICAx
OTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gzIiwgImxlZnQiLCAgMTk4LCAxMF0s
CisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94NCIsICJsZWZ0IiwgIDE4LCAxMF0sCisgICAgXTsK
KworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworCisgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94IG1vdmUxIG5vcm1hbCI+
bm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZSI+
YWx0ZXJuYXRlPC9kaXY+Cis8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94IG1vdmUxIHJldmVyc2Ui
PnJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDQiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRl
LXJldmVyc2UiPmFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139287</attachid>
            <date>2012-04-27 15:17:26 -0700</date>
            <delta_ts>2012-04-27 17:05:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78041-20120427151725.patch</filename>
            <type>text/plain</type>
            <size>69822</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA1MGUxYjcyMmM5MDRl
NjZkMjEyYzExNTM2MjQ4NTI2MjlhMWYyYS4uZDBjYTI3OWUxYjZiZmFhZDVkMzUyYmM3MWU0Nzc2
ZTZmN2FkY2JjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA0LTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5k
IGFsdGVybmF0ZS1yZXZlcnNlIGluIENBIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29yZUFuaW1hdGlvbiBkb2VzIG5vdCBuYXRpdmVs
eSBzdXBwb3J0IHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlCisgICAgICAgIGFuaW1hdGlv
biBkaXJlY3Rpb25zIHNvIHdlIG5lZWQgdG8gZmxpcCB0aGUgYW5pbWF0aW9uIHZhbHVlcyAoa2V5
ZnJhbWUKKyAgICAgICAga2V5cyBhbmQgdGltaW5nIGZ1bmN0aW9ucykgdGhhdCB3ZSBzZW5kIHRv
IEdyYXBoaWNzTGF5ZXJDQS4gVW5mb3J0dW5hdGVseQorICAgICAgICB0aGlzIGNvZGUgYWRkcyBh
IGxvdCBvZiBjb25kaXRpb25hbHMgYmVjYXVzZSBpdCBpc24ndCBhcyBzaW1wbGUgYXMKKyAgICAg
ICAgcmV2ZXJzaW5nIHRoZSBvcmRlciBvZiBrZXlzLiBZb3UgYWxzbyBub3cgaGF2ZSBhIGRpZmZl
cmVudCBhbGlnbm1lbnQgb2YKKyAgICAgICAgdGltaW5nIGZ1bmN0aW9ucyB0byB0aGUgcmV2ZXJz
ZWQgbGlzdC4KKworICAgICAgICBOZXcgdGVzdHMgdG8gY292ZXIgdGhlIHR3byBuZXcgZGlyZWN0
aW9ucywgbWFraW5nIHN1cmUgdGhlIHRpbWluZworICAgICAgICBmdW5jdGlvbnMgYXJlIGNvcnJl
Y3RseSBpbnZlcnRlZCwgYW5kIGV4ZXJjaXNpbmcgZmlsbCBtb2Rlcy4KKworICAgICAgICBUZXN0
czogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3
YXJlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLWZpbGwtbW9kZS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwKKyAgICAgICAgICAgICAg
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWwKKyAg
ICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1o
YXJkd2FyZS5odG1sCisgICAgICAgICAgICAgICBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLmh0bWwKKyAgICAgICAgICAgICAg
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgICBIYW5kbGUgdGhlIHByZXZpb3VzbHkgdW5zdXBwb3J0ZWQgYW5pbWF0aW9u
IGRpcmVjdGlvbnMsIHJldmVyc2luZworICAgICAgICAgIHRoZSBsaXN0IG9mIHZhbHVlcyBhbmQg
a2V5dGltZXMgdGhhdCB3b3VsZCBiZSB1c2VkIHRvIGNyZWF0ZQorICAgICAgICAgIHRoZSBDQSBB
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRl
ckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDQTo6c2V0dXBBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXRBbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25LZXlmcmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2lu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRp
b25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FB
bmltYXRpb24uaDoKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb24pOiBQYXNzIHRocm91Z2gg
YSBmbGFnIHRoYXQgdGVsbHMgdGhlIENBIEFuaW1hdGlvbgorICAgICAgICB0aGF0IGl0IHNob3Vs
ZCBpbnZlcnQgdGhlIHRpbWluZyBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW06CisgICAgICAgICh0b0NBTWVkaWFU
aW1pbmdGdW5jdGlvbik6IEFkZCBhIHBhcmFtZXRlciB0aGF0IHdpbGwgaW52ZXJ0IHRoZSB0aW1p
bmcKKyAgICAgICAgZnVuY3Rpb24gY29lZmZpY2llbnRzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAg
KFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFBsYXRm
b3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9ucyk6CisKIDIwMTItMDQtMTggIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVz
ZSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBmb3IgV2ViR0wgY29udGVudCBpbnN0ZWFkIG9mIGEgZGVk
aWNhdGVkIGxheWVyIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uaAppbmRleCBmODQzMzBmMGM3ZTU3MzY4MWVhYThmZWVkOTMyYzJlMzc0ZTFlM2Jk
Li5iNWRhOTkwNzY2ZGFlMzM4ZGViOWY2OTA4MThiZTFmYjg4NTEyZmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBAIC0xMDcsNiArMTA3LDcg
QEAgcHVibGljOgogICAgICAgICBBbmltYXRpb25EaXJlY3Rpb25BbHRlcm5hdGVSZXZlcnNlCiAg
ICAgfTsKICAgICBBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8QW5pbWF0aW9uRGlyZWN0aW9uPihtX2RpcmVjdGlvbik7IH0KKyAgICBib29s
IGRpcmVjdGlvbklzRm9yd2FyZHMoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbiA9PSBBbmlt
YXRpb25EaXJlY3Rpb25Ob3JtYWwgfHwgbV9kaXJlY3Rpb24gPT0gQW5pbWF0aW9uRGlyZWN0aW9u
QWx0ZXJuYXRlOyB9CiAKICAgICB1bnNpZ25lZCBmaWxsTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmlsbE1vZGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggOTlhZGYyYjE2MjdhZjY0OTI0OTNhZjY0
YmUwNDZmZWQ1NTZkMjgwNS4uMzMxMzBkMDE4YTYxYzk5ZGIzNmM0MGY1ZjA0ZTRiNzZjNGExYzdm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xOTUwLDggKzE5NTAsNyBAQCBib29sIEdyYXBoaWNzTGF5
ZXJDQTo6Y3JlYXRlRmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVW
YWx1ZUxpcwogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBzdGF0aWNf
Y2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChsaXN0SW5kZXgp
KS0+dmFsdWUoKTsKICAgICBpbnQgbnVtQW5pbWF0aW9ucyA9IG9wZXJhdGlvbnMtPnNpemUoKTsK
IAotICAgIC8vIEZJWE1FOiBXZSBjYW4ndCBjdXJyZW50bHkgaGFyZHdhcmUgYW5pbWF0ZSBzaGFk
b3dzLiBUaGVyZSBpcyBhbiBvcGVuIHF1ZXN0aW9uIGFib3V0IHJlbW92aW5nIHNoYWRvd3MgZnJv
bSBmaWx0ZXJzIAotICAgIC8vIGVudGlyZWx5LCBpbiB3aGljaCBjYXNlIHRoaXMgaXNzdWUgaXMg
bW9vdC4KKyAgICAvLyBGSVhNRTogV2UgY2FuJ3QgY3VycmVudGx5IGhhcmR3YXJlIGFuaW1hdGUg
c2hhZG93cy4KICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUFuaW1hdGlvbnM7ICsraSkgewog
ICAgICAgICBpZiAob3BlcmF0aW9ucy0+YXQoaSktPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0
ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTk4OSw3ICsxOTg4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBs
YXRmb3JtQ0FBbmltYXRpb24qIHByb3BlcnR5QW5pbSwgY29uc3QgQW4KICAgICBmbG9hdCByZXBl
YXRDb3VudCA9IGFuaW0tPml0ZXJhdGlvbkNvdW50KCk7CiAgICAgaWYgKHJlcGVhdENvdW50ID09
IEFuaW1hdGlvbjo6SXRlcmF0aW9uQ291bnRJbmZpbml0ZSkKICAgICAgICAgcmVwZWF0Q291bnQg
PSBudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpOwotICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVj
dGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKQorICAgIGVs
c2UgaWYgKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9u
QWx0ZXJuYXRlIHx8IGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGly
ZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSkKICAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsKIAogICAg
IFBsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBmaWxsTW9kZSA9IFBsYXRmb3JtQ0FB
bmltYXRpb246Ok5vRmlsbE1vZGU7CkBAIC0yMDEwLDcgKzIwMDksNyBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6c2V0dXBBbmltYXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVydHlBbmlt
LCBjb25zdCBBbgogCiAgICAgcHJvcGVydHlBbmltLT5zZXREdXJhdGlvbihkdXJhdGlvbik7CiAg
ICAgcHJvcGVydHlBbmltLT5zZXRSZXBlYXRDb3VudChyZXBlYXRDb3VudCk7Ci0gICAgcHJvcGVy
dHlBbmltLT5zZXRBdXRvcmV2ZXJzZXMoYW5pbS0+ZGlyZWN0aW9uKCkpOworICAgIHByb3BlcnR5
QW5pbS0+c2V0QXV0b3JldmVyc2VzKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5p
bWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIHx8IGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CiAgICAgcHJvcGVydHlBbmlt
LT5zZXRSZW1vdmVkT25Db21wbGV0aW9uKGZhbHNlKTsKICAgICBwcm9wZXJ0eUFuaW0tPnNldEFk
ZGl0aXZlKGFkZGl0aXZlKTsKICAgICBwcm9wZXJ0eUFuaW0tPnNldEZpbGxNb2RlKGZpbGxNb2Rl
KTsKQEAgLTIwMjYsMTIgKzIwMjUsMTcgQEAgY29uc3QgVGltaW5nRnVuY3Rpb24qIEdyYXBoaWNz
TGF5ZXJDQTo6dGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjb25zdCBBbmkKICAgICBy
ZXR1cm4gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6ZGVmYXVsdFRpbWluZ0Z1bmN0aW9uKCk7
CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3Qg
S2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0
Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0FuaW0pCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5p
bWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0
IEFuaW1hdGlvbiogYW5pbWF0aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0FuaW0pCiB7
CisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOwor
CisgICAgdW5zaWduZWQgZnJvbUluZGV4ID0gIWZvcndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5k
ZXggPSBmb3J3YXJkczsKKyAgICAKICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7
CiAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5T3BhY2l0eTogewotICAgICAgICBiYXNpY0FuaW0t
PnNldEZyb21WYWx1ZShzdGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFs
dWVMaXN0LmF0KDApKS0+dmFsdWUoKSk7Ci0gICAgICAgIGJhc2ljQW5pbS0+c2V0VG9WYWx1ZShz
dGF0aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKS0+
dmFsdWUoKSk7CisgICAgICAgIGJhc2ljQW5pbS0+c2V0RnJvbVZhbHVlKHN0YXRpY19jYXN0PGNv
bnN0IEZsb2F0QW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoZnJvbUluZGV4KSktPnZhbHVl
KCkpOworICAgICAgICBiYXNpY0FuaW0tPnNldFRvVmFsdWUoc3RhdGljX2Nhc3Q8Y29uc3QgRmxv
YXRBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdCh0b0luZGV4KSktPnZhbHVlKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKQEAgLTIwNDAsMjMgKzIwNDQsMjYgQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMg
dXNlZCBmb3IgMi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sg
aW4gdGhlIHN0YXJ0Ci0gICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9u
VmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltKTsKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rp
b24uIEV2ZW4gaW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZy
YW1lIHByb3ZpZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3QgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1
ZUxpc3QuYXQoMCksIGFuaW1hdGlvbik7CiAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQotICAgICAg
ICBiYXNpY0FuaW0tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAg
YmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbiwgIWZvcndhcmRzKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0
aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFu
aW1hdGlvbiogYW5pbSwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltKQorYm9vbCBH
cmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVl
TGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFu
aW1hdGlvbioga2V5ZnJhbWVBbmltKQogewogICAgIFZlY3RvcjxmbG9hdD4ga2V5VGltZXM7CiAg
ICAgVmVjdG9yPGZsb2F0PiB2YWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9u
Kj4gdGltaW5nRnVuY3Rpb25zOworCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGly
ZWN0aW9uSXNGb3J3YXJkcygpOwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2
YWx1ZUxpc3Quc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1
clZhbHVlID0gdmFsdWVMaXN0LmF0KGkpOwotICAgICAgICBrZXlUaW1lcy5hcHBlbmQoY3VyVmFs
dWUtPmtleVRpbWUoKSk7CisgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZm9yd2FyZHMgPyBpIDog
KHZhbHVlTGlzdC5zaXplKCkgLSBpIC0gMSk7CisgICAgICAgIGNvbnN0IEFuaW1hdGlvblZhbHVl
KiBjdXJWYWx1ZSA9IHZhbHVlTGlzdC5hdChpbmRleCk7CisgICAgICAgIGtleVRpbWVzLmFwcGVu
ZChmb3J3YXJkcyA/IGN1clZhbHVlLT5rZXlUaW1lKCkgOiAoMSAtIGN1clZhbHVlLT5rZXlUaW1l
KCkpKTsKIAogICAgICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAgICAg
IGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHk6IHsKQEAgLTIwNjksMjQgKzIwNzYsMjggQEAg
Ym9vbCBHcmFwaGljc0xheWVyQ0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsdWVMaXN0LAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAot
ICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9u
VmFsdWUoY3VyVmFsdWUsIGFuaW0pKTsKKyAgICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUo
KSAtIDEpKQorICAgICAgICAgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlv
bkZvckFuaW1hdGlvblZhbHVlKGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5k
ZXggLSAxKSwgYW5pbWF0aW9uKSk7CiAgICAgfQogICAgIAotICAgIC8vIFdlIHRvc3MgdGhlIGxh
c3QgdGZBcnJheSB2YWx1ZSBiZWNhdXNlIGl0IGhhcyB0byBvbmUgc2hvcnRlciB0aGFuIHRoZSBv
dGhlcnMuCi0gICAgdGltaW5nRnVuY3Rpb25zLnJlbW92ZUxhc3QoKTsKLQogICAgIGtleWZyYW1l
QW5pbS0+c2V0S2V5VGltZXMoa2V5VGltZXMpOwogICAgIGtleWZyYW1lQW5pbS0+c2V0VmFsdWVz
KHZhbHVlcyk7Ci0gICAga2V5ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGltaW5nRnVu
Y3Rpb25zKTsKKyAgICBrZXlmcmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5j
dGlvbnMsICFmb3J3YXJkcyk7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3Jh
cGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJh
bWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiBiYXNpY0FuaW0sIGludCBmdW5jdGlvbkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRp
b246Ok9wZXJhdGlvblR5cGUgdHJhbnNmb3JtT3BUeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9u
LCBjb25zdCBJbnRTaXplJiBib3hTaXplKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5z
Zm9ybUFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0
LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbiogYmFzaWNB
bmltLCBpbnQgZnVuY3Rpb25JbmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBl
IHRyYW5zZm9ybU9wVHlwZSwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgSW50U2l6ZSYg
Ym94U2l6ZSkKIHsKICAgICBBU1NFUlQodmFsdWVMaXN0LnNpemUoKSA9PSAyKTsKLSAgICBjb25z
dCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDApKTsKLSAgICBjb25zdCBU
cmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogZW5kVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFu
c2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdCgxKSk7CisKKyAgICBib29sIGZvcndh
cmRzID0gYW5pbWF0aW9uLT5kaXJlY3Rpb25Jc0ZvcndhcmRzKCk7CisgICAgCisgICAgdW5zaWdu
ZWQgZnJvbUluZGV4ID0gIWZvcndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJk
czsKKyAgICAKKyAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogc3RhcnRWYWx1ZSA9
IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0
KGZyb21JbmRleCkpOworICAgIGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBlbmRWYWx1
ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KHRvSW5kZXgpKTsKICAgICAKICAgICBpZiAoaXNNYXRyaXhBbmltYXRpb24pIHsKICAgICAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm07CkBAIC0y
MTI4LDkgKzIxMzksOSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0
aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIH0KIAogICAgIC8v
IFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBz
dGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0Ci0gICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0
aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1
bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltKTsKLSAgICBiYXNp
Y0FuaW0tPnNldFRpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAvLyBmb3IgYSB0
aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhl
IGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3Qg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRp
b25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksIGFuaW1hdGlvbik7CisgICAgYmFzaWNBbmltLT5zZXRU
aW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbiwgIWZvcndhcmRzKTsKIAogICAgIFBsYXRmb3Jt
Q0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24gPSBnZXRWYWx1ZUZ1
bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5cGUpOwogICAgIGlm
ICh2YWx1ZUZ1bmN0aW9uICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikK
QEAgLTIxNDcsOSArMjE1OCwxMiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3Jt
QW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIFZlY3Rv
cjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gdHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXM7CiAgICAg
VmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25zOwogCisgICAgYm9v
bCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHZhbHVlTGlzdC5zaXplKCk7ICsraSkgewotICAgICAgICBj
b25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogY3VyVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25z
dCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChpKSk7Ci0gICAgICAgIGtl
eVRpbWVzLmFwcGVuZChjdXJWYWx1ZS0+a2V5VGltZSgpKTsKKyAgICAgICAgdW5zaWduZWQgaW5k
ZXggPSBmb3J3YXJkcyA/IGkgOiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsKKyAgICAgICAg
Y29uc3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29u
c3QgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAgICAg
ICAga2V5VGltZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgxIC0g
Y3VyVmFsdWUtPmtleVRpbWUoKSkpOwogCiAgICAgICAgIGlmIChpc01hdHJpeEFuaW1hdGlvbikg
ewogICAgICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwpAQCAtMjE3Nywx
MyArMjE5MSwxMCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9u
S2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0g
dGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjdXJWYWx1ZSwgYW5pbWF0aW9uKTsKLSAg
ICAgICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGlm
IChpIDwgKHZhbHVlTGlzdC5zaXplKCkgLSAxKSkKKyAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9u
cy5hcHBlbmQodGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZShmb3J3YXJkcyA/IGN1clZh
bHVlIDogdmFsdWVMaXN0LmF0KGluZGV4IC0gMSksIGFuaW1hdGlvbikpOwogICAgIH0KICAgICAK
LSAgICAvLyBXZSB0b3NzIHRoZSBsYXN0IHRmQXJyYXkgdmFsdWUgYmVjYXVzZSBpdCBoYXMgdG8g
b25lIHNob3J0ZXIgdGhhbiB0aGUgb3RoZXJzLgotICAgIHRpbWluZ0Z1bmN0aW9ucy5yZW1vdmVM
YXN0KCk7Ci0KICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKICAgICAK
ICAgICBpZiAoaXNUcmFuc2Zvcm1UeXBlTnVtYmVyKHRyYW5zZm9ybU9wVHlwZSkpCkBAIC0yMTkz
LDcgKzIyMDQsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9u
S2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIGVsc2UKICAgICAgICAg
a2V5ZnJhbWVBbmltLT5zZXRWYWx1ZXModHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXMpOwogICAg
ICAgICAKLSAgICBrZXlmcmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlv
bnMpOworICAgIGtleWZyYW1lQW5pbS0+c2V0VGltaW5nRnVuY3Rpb25zKHRpbWluZ0Z1bmN0aW9u
cywgIWZvcndhcmRzKTsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25U
eXBlIHZhbHVlRnVuY3Rpb24gPSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJh
dGlvbih0cmFuc2Zvcm1PcFR5cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9IFBsYXRmb3Jt
Q0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKQEAgLTIyMDYsMzQgKzIyMTcsMzkgQEAgYm9v
bCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBL
ZXlmcmFtZVZhbHVlTGlzdCYgdmEKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmlt
YXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3Qg
QW5pbWF0aW9uKiBhbmltYXRpb24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50
IGZ1bmN0aW9uSW5kZXgsIGludCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAg
QVNTRVJUKHZhbHVlTGlzdC5zaXplKCkgPT0gMik7Ci0gICAgCi0gICAgY29uc3QgRmlsdGVyQW5p
bWF0aW9uVmFsdWUqIGZyb21WYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlv
blZhbHVlKj4odmFsdWVMaXN0LmF0KDApKTsKLSAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1
ZSogdG9WYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFs
dWVMaXN0LmF0KDEpKTsKLSAgICAKKworICAgIGJvb2wgZm9yd2FyZHMgPSBhbmltYXRpb24tPmRp
cmVjdGlvbklzRm9yd2FyZHMoKTsKKworICAgIHVuc2lnbmVkIGZyb21JbmRleCA9ICFmb3J3YXJk
czsKKyAgICB1bnNpZ25lZCB0b0luZGV4ID0gZm9yd2FyZHM7CisKKyAgICBjb25zdCBGaWx0ZXJB
bmltYXRpb25WYWx1ZSogZnJvbVZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0
aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoZnJvbUluZGV4KSk7CisgICAgY29uc3QgRmlsdGVyQW5p
bWF0aW9uVmFsdWUqIHRvVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25W
YWx1ZSo+KHZhbHVlTGlzdC5hdCh0b0luZGV4KSk7CisKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRp
b24qIGZyb21PcGVyYXRpb24gPSBmcm9tVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgp
OwogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiogdG9PcGVyYXRpb24gPSB0b1ZhbHVlLT52YWx1
ZSgpLT5hdChmdW5jdGlvbkluZGV4KTsKLSAgICAKKwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVy
T3BlcmF0aW9uPiBkZWZhdWx0RnJvbU9wZXJhdGlvbjsKICAgICBSZWZQdHI8RGVmYXVsdEZpbHRl
ck9wZXJhdGlvbj4gZGVmYXVsdFRvT3BlcmF0aW9uOwotICAgIAorCiAgICAgQVNTRVJUKGZyb21P
cGVyYXRpb24gfHwgdG9PcGVyYXRpb24pOwotICAgIAorCiAgICAgaWYgKCFmcm9tT3BlcmF0aW9u
KSB7CiAgICAgICAgIGRlZmF1bHRGcm9tT3BlcmF0aW9uID0gRGVmYXVsdEZpbHRlck9wZXJhdGlv
bjo6Y3JlYXRlKHRvT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpOwogICAgICAgICBmcm9t
T3BlcmF0aW9uID0gZGVmYXVsdEZyb21PcGVyYXRpb24uZ2V0KCk7CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKCF0b09wZXJhdGlvbikgewogICAgICAgICBkZWZhdWx0VG9PcGVyYXRpb24gPSBEZWZh
dWx0RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUoZnJvbU9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlw
ZSgpKTsKICAgICAgICAgdG9PcGVyYXRpb24gPSBkZWZhdWx0VG9PcGVyYXRpb24uZ2V0KCk7CiAg
ICAgfQotICAgIAorCiAgICAgYmFzaWNBbmltLT5zZXRGcm9tVmFsdWUoZnJvbU9wZXJhdGlvbiwg
aW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICAgICBiYXNpY0FuaW0tPnNldFRvVmFsdWUo
dG9PcGVyYXRpb24sIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7Ci0gICAgCi0gICAgLy8g
VGhpcyBjb2RlcGF0aCBpcyB1c2VkIGZvciAyLWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0
aWxsIG5lZWQgdG8gbG9vayBpbiB0aGUgc3RhcnQgZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAg
IGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9y
QW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltYXRpb24pOwotICAgIGJhc2ljQW5p
bS0+c2V0VGltaW5nRnVuY3Rpb24odGltaW5nRnVuY3Rpb24pOworCisgICAgLy8gVGhpcyBjb2Rl
cGF0aCBpcyB1c2VkIGZvciAyLWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQg
dG8gbG9vayBpbiB0aGUgc3RhcnQKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4g
aW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3Zp
ZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlv
bih0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVlKHZhbHVlTGlzdC5hdCgwKSwgYW5pbWF0
aW9uKSwgIWZvcndhcmRzKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjI0NSw5ICsyMjYx
LDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlCiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25zOwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVyT3BlcmF0
aW9uPiBkZWZhdWx0T3BlcmF0aW9uOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+
ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZh
bHVlTGlzdC5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1
ZSogY3VyVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZh
bHVlTGlzdC5hdChpKSk7Ci0gICAgICAgIGtleVRpbWVzLmFwcGVuZChjdXJWYWx1ZS0+a2V5VGlt
ZSgpKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBmb3J3YXJkcyA/IGkgOiAodmFsdWVMaXN0
LnNpemUoKSAtIGkgLSAxKTsKKyAgICAgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGN1
clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxp
c3QuYXQoaW5kZXgpKTsKKyAgICAgICAga2V5VGltZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFs
dWUtPmtleVRpbWUoKSA6ICgxIC0gY3VyVmFsdWUtPmtleVRpbWUoKSkpOwogCiAgICAgICAgIGlm
IChjdXJWYWx1ZS0+dmFsdWUoKS0+b3BlcmF0aW9ucygpLnNpemUoKSA+IHN0YXRpY19jYXN0PHNp
emVfdD4oZnVuY3Rpb25JbmRleCkpCiAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGN1clZhbHVl
LT52YWx1ZSgpLT5vcGVyYXRpb25zKClbZnVuY3Rpb25JbmRleF0pOwpAQCAtMjI1NywxNiArMjI3
NiwxMyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZQogICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZChkZWZhdWx0T3BlcmF0aW9uKTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUo
Y3VyVmFsdWUsIGFuaW1hdGlvbik7Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGlt
aW5nRnVuY3Rpb24pOworICAgICAgICBpZiAoaSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCisg
ICAgICAgICAgICB0aW1pbmdGdW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0
aW9uVmFsdWUoZm9yd2FyZHMgPyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCBh
bmltYXRpb24pKTsKICAgICB9CiAgICAgCi0gICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0aW1pbmcg
ZnVuY3Rpb24gYmVjYXVzZSBpdCBoYXMgdG8gYmUgb25lIHNob3J0ZXIgdGhhbiB0aGUgb3RoZXJz
LgotICAgIHRpbWluZ0Z1bmN0aW9ucy5yZW1vdmVMYXN0KCk7Ci0KICAgICBrZXlmcmFtZUFuaW0t
PnNldEtleVRpbWVzKGtleVRpbWVzKTsKICAgICBrZXlmcmFtZUFuaW0tPnNldFZhbHVlcyh2YWx1
ZXMsIGludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCk7Ci0gICAga2V5ZnJhbWVBbmltLT5zZXRU
aW1pbmdGdW5jdGlvbnModGltaW5nRnVuY3Rpb25zKTsKKyAgICBrZXlmcmFtZUFuaW0tPnNldFRp
bWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaAppbmRleCAyODBkNzYzYjM3ZThlZDhjMmMxZGQ0YTMw
MzIzOTRlNjFiYWY0MmQxLi42YzEyNjMxMTRkMjk5ZDY0YWVmODRkZWE3ZTUxNjg3NzBjNjNhODk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
UGxhdGZvcm1DQUFuaW1hdGlvbi5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBGaWxs
TW9kZVR5cGUgZmlsbE1vZGUoKSBjb25zdDsKICAgICB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2Rl
VHlwZSk7CiAgICAgCi0gICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5j
dGlvbiopOworICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
LCBib29sIHJldmVyc2UgPSBmYWxzZSk7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9t
KGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qKTsKIAogICAgIGJvb2wgaXNSZW1vdmVkT25Db21w
bGV0aW9uKCkgY29uc3Q7CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
S2V5VGltZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogICAgIHZvaWQgY29weUtleVRpbWVzRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKik7CiAKLSAgICB2b2lkIHNldFRpbWluZ0Z1bmN0
aW9ucyhjb25zdCBWZWN0b3I8Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYpOworICAgIHZvaWQgc2V0
VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9v
bCByZXZlcnNlID0gZmFsc2UpOwogICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29u
c3QgUGxhdGZvcm1DQUFuaW1hdGlvbiopOwogICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBQW5pbWF0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KaW5kZXggNWNmMTAwNjZhNTBlNDE3ZTE5
NDgwY2JmMDNjYWEzZjUyZWYwM2E2Ny4uY2Q4NTY2OTJiM2NiMTdkNjU4NjdjYWVjNmM4ZDYwZjYw
ZGI4MjExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KQEAgLTEzNCwxMyAr
MTM0LDE5IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBm
cm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShOU1N0cmluZyoKIH0KICNlbmRpZgogCi1zdGF0aWMgQ0FN
ZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCitzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0
b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKIHsKICAgICBBU1NFUlQodGltaW5nRnVuY3Rpb24pOwogICAgIGlm
ICh0aW1pbmdGdW5jdGlvbi0+aXNDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKCkpIHsKICAgICAg
ICAgY29uc3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbiogY3RmID0gc3RhdGljX2Nhc3Q8Y29u
c3QgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAg
cmV0dXJuIFtDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoQ29udHJvbFBvaW50czpz
dGF0aWNfY2FzdDxmbG9hdD4oY3RmLT54MSgpKSA6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTEo
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDpzdGF0aWNfY2FzdDxmbG9hdD4oY3RmLT54MigpKSA6c3RhdGljX2Nhc3Q8Zmxv
YXQ+KGN0Zi0+eTIoKSldOworICAgICAgICBmbG9hdCB4MSA9IHN0YXRpY19jYXN0PGZsb2F0Pihj
dGYtPngxKCkpOworICAgICAgICBmbG9hdCB5MSA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkx
KCkpOworICAgICAgICBmbG9hdCB4MiA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngyKCkpOwor
ICAgICAgICBmbG9hdCB5MiA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkyKCkpOworICAgICAg
ICByZXR1cm4gW0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRz
OihyZXZlcnNlID8gMSAtIHgyIDogeDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6KHJldmVyc2UgPyAxIC0geTIgOiB5MSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDoocmV2ZXJzZSA/IDEgLSB4MSA6IHgyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOihyZXZlcnNlID8gMSAtIHkx
IDogeTIpXTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIFtDQU1lZGlhVGltaW5nRnVuY3Rpb24g
ZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFyXTsKQEAgLTMwNiw5
ICszMTIsOSBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZpbGxNb2RlKEZpbGxNb2Rl
VHlwZSB2YWx1ZSkKICAgICBbbV9hbmltYXRpb24uZ2V0KCkgc2V0RmlsbE1vZGU6dG9DQUZpbGxN
b2RlVHlwZSh2YWx1ZSldOwogfQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWlu
Z0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBi
b29sIHJldmVyc2UpCiB7Ci0gICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9u
OnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlKV07CisgICAgW21fYW5pbWF0aW9uLmdldCgp
IHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlLCByZXZlcnNl
KV07CiB9CiAKIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uRnJv
bShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1ZSkKQEAgLTY5NCwxMiArNzAwLDEyIEBA
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9y
bUNBQW5pbWF0aW9uKiB2YWx1ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlv
bio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRLZXlUaW1lczpbb3RoZXIga2V5VGltZXNdXTsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVj
dG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9u
Kj4mIHZhbHVlLCBib29sIHJldmVyc2UpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0g
W05TTXV0YWJsZUFycmF5IGFycmF5XTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFs
dWUuc2l6ZSgpOyArK2kpCi0gICAgICAgIFthcnJheSBhZGRPYmplY3Q6dG9DQU1lZGlhVGltaW5n
RnVuY3Rpb24odmFsdWVbaV0pXTsKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b0NBTWVkaWFU
aW1pbmdGdW5jdGlvbih2YWx1ZVtpXSwgcmV2ZXJzZSldOwogICAgIAogICAgIFtzdGF0aWNfY2Fz
dDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0
aW9uczphcnJheV07CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjIwNDdkNGI2NTVlNDdkODFhYzA1MmMxMzljNDYyOGRi
MWQ1OGU2Zi4uZDY4ZTI1MTRmYjlhYTY5M2UwNzUxY2M4MTE4NzdmMWM3M2I3ZWU5ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNv
bT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlIGluIENB
IGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHMgc3VwcG9ydCBmb3IgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVyc2UgYW5pbWF0
aW9ucyBvbgorICAgICAgICBDb3JlQW5pbWF0aW9uIG9iamVjdHMsIGFzIHdlbGwgYXMgZmlsbGlu
ZyBvdXQgc29tZSBvZiB0aGUgc29mdHdhcmUKKyAgICAgICAgYW5pbWF0b3IgdGVzdHMuIFRoZXJl
IGFyZSB0aHJlZSB2YXJpYWJsZXMgdG8gZXhlcmNpc2U6IHJldmVyc2UgdnMKKyAgICAgICAgZm9y
d2FyZCBkaXJlY3Rpb24gYW5pbWF0aW9ucywgd2hldGhlciByZXZlcnNlZCB0aW1pbmcgZnVuY3Rp
b25zIGFyZQorICAgICAgICBpbnZlcnRlZCBjb3JyZWN0bHksIGFuZCB0aGF0IGZpbGwgbW9kZSBy
ZXNwZWN0cyB0aGUgZGlyZWN0aW9uIG9mCisgICAgICAgIGFuaW1hdGlvbi4KKworICAgICAgICBS
ZWZhY3RvcmVkIHRoZSBhbmltYXRpb24gdGVzdCBoZWxwZXIgY2xhc3Mgc28gd2UgY291bGQgcmV1
c2UKKyAgICAgICAgcHJvcGVydHkgcGFyc2luZyBhbmQgZXZhbHVhdGlvbi4KKworICAgICAgICAq
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2Fy
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS1maWxsLW1vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1v
cGFjaXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRp
b24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJz
ZS1ub24taGFyZHdhcmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25z
L2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1ub24taGFyZHdhcmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1
bmN0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0
aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMuaHRt
bDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3Qt
aGVscGVycy5qczoKKyAgICAgICAgKGNoZWNrRXhwZWN0ZWRWYWx1ZSk6CisgICAgICAgIChnZXRQ
cm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKToKKwogMjAxMi0w
NC0yMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNDk2NS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS1maWxsLW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YzA2ZDZjYTgyOTJmYjhj
N2JhMzNlYjQxZGZlNDFmNjc0MjkyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2Yg
dGhlIGxlZnQgcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZlcmVudCBmaWxsIG1vZGVzLiBJdCBhbmlt
YXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBzZWNvbmQgZGVsYXkuIEl0IHRha2VzIHNu
YXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24uCitO
b25lCitCYWNrd2FyZHMKK0ZvcndhcmRzCitCb3RoCitCb3RoIGl0ZXJhdGluZworUEFTUyAtIHN0
YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAKK1BBU1Mg
LSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYiBleHBlY3RlZDogMzAwIGFjdHVhbDogMzAwCitQ
QVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEw
MAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBkIGV4cGVjdGVkOiAzMDAgYWN0dWFs
OiAzMDAKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogZSBleHBlY3RlZDogMzAwIGFj
dHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4cGVjdGVkOiAxMDAg
YWN0dWFsOiAxMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDEw
MCBhY3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYyBleHBlY3RlZDog
MzAwIGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBkIGV4cGVjdGVk
OiAzMDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGUgZXhwZWN0
ZWQ6IDMwMCBhY3R1YWw6IDMwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
ZmlsbC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTkyNTgyZjQzODY3
ZjIxNGRiYWVlMThkYzhiMTQ5ZTYyMzRmNDVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3
YXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhbiBh
bmltYXRpb24gb2YgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSB3aXRoIGRpZmZlcmVudCBmaWxsIG1v
ZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBzZWNvbmQgZGVsYXku
IEl0IHRha2VzIHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBh
bmltYXRpb25zLgorQm90aCBJdGVyYXRlIC0gUmV2ZXJzZQorQm90aCBJdGVyYXRlIC0gQWx0ZXJu
YXRlIFJldmVyc2UKK1BBU1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDog
MzAwIGFjdHVhbDogbWF0cml4KDEsIDAsIDAsIDEsIDMwMCwgMCkKK1BBU1MgLSBzdGFydCBvZiBh
bmltYXRpb24gLSBpZDogYiBleHBlY3RlZDogMzAwIGFjdHVhbDogbWF0cml4KDEsIDAsIDAsIDEs
IDMwMCwgMCkKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDIwMCBh
Y3R1YWw6IG1hdHJpeCgxLCAwLCAwLCAxLCAyMDAsIDApCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlv
biAtIGlkOiBiIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiBtYXRyaXgoMSwgMCwgMCwgMSwgMzAwLCAw
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk0ODI1NDM5NmJlNTA5ZmU3NTkyYzEzZmU4ZWQxMzk1OWRlYTBjYzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUuaHRtbApAQCAtMCwwICsxLDEwMyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGVzdCBzaW1wbGUgZmlsbCBtb2Rl
IG9uIHRyYW5zZm9ybTwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZTNkKDEwMHB4LCAwLCAwKTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWRlbGF5OiAwLjFzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMXM7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGFuaW07CisgICAgfQorICAgIEAtd2Via2l0LWtleWZyYW1l
cyBhbmltIHsKKyAgICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgy
MDBweCwgMCwgMCk7IH0KKyAgICAgICAgdG8gICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xh
dGUzZCgzMDBweCwgMCwgMCk7IH0KKyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dyb3VuZC1j
b2xvcjogI2Y5OTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogIzk5OTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTog
Ym90aDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQor
ICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBl
cnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAgIGNvbnN0IG51bUFuaW1zID0gMTsKKyAg
ICB2YXIgYW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29uc3QgYWxsb3dhbmNlID0gNTsKKyAgICBj
b25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtpZDogImEiLCBzdGFydDogMzAwLCBlbmQ6
IDIwMH0sCisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDMwMCwgZW5kOiAzMDB9CisgICAgXTsKKyAg
ICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAgIGlmICgrK2FuaW1zRmluaXNoZWQg
PT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZW5kVGVzdCwgMCk7IC8vIHRo
aXMgc2V0IHRpbWVvdXQgc2hvdWxkIGJlIG9rIGluIHRoZSB0ZXN0IGVudmlyb25tZW50CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0IGdpdmlu
ZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZlCisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVu
Y3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZh
bHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IGdldFByb3Bl
cnR5VmFsdWUoIndlYmtpdFRyYW5zZm9ybS40IiwgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAg
ICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5lbmQ7CisgICAg
ICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUoIndlYmtpdFRyYW5zZm9ybS40IiwgcmVh
bFZhbHVlLCBleHBlY3RlZFZhbHVlLCBhbGxvd2FuY2UpKQorICAgICAgICAgICAgICAgIHJlc3Vs
dCArPSAiUEFTUyI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ICs9
ICJGQUlMIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlk
OiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1
ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisK
KyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgCisgICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIGZvciAodmFyIGk9MDsgaSA8IGV4cGVjdGVk
VmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IGdldFByb3Bl
cnR5VmFsdWUoIndlYmtpdFRyYW5zZm9ybS40IiwgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAg
ICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uc3RhcnQ7CisgICAg
ICAgICAgaWYgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKCJ3ZWJraXRUcmFuc2Zvcm0uNCIsIHJlYWxW
YWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgYWxsb3dhbmNlKSkKKyAgICAgICAgICAgICAgcmVzdWx0ICs9
ICJQQVNTIjsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7
CisgICAgICAgICAgcmVzdWx0ICs9ICIgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4
cGVjdGVkVmFsdWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFj
dHVhbDogIiArIHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgIH0KKyAgICAgIGRvY3VtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1hdGlvbkVuZCIsIGFuaW1hdGlvbkVuZGVkLCBmYWxz
ZSk7CisgICAgfTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBl
cmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHdpdGggZGlmZmVy
ZW50CitmaWxsIG1vZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBz
ZWNvbmQgZGVsYXkuCitJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhl
IGVuZCBvZiB0aGUgYW5pbWF0aW9ucy4KKzxkaXYgaWQ9ImEiIGNsYXNzPSJib3giPgorICBCb3Ro
IEl0ZXJhdGUgLSBSZXZlcnNlCis8L2Rpdj4KKzxkaXYgaWQ9ImIiIGNsYXNzPSJib3giPgorICBC
b3RoIEl0ZXJhdGUgLSBBbHRlcm5hdGUgUmV2ZXJzZQorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQi
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUuaHRtbCBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3ZGZhNmM5MzcwM2YwY2E1NDEwZDBiNDMxMjNjYjliODNmOGZhZDgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3QgYW5pbWF0aW9u
IGRpcmVjdGlvbiByZXZlcnNlIHdpdGggZmlsbCBtb2RlczwvdGl0bGU+CisgIDxzdHlsZT4KKyAg
ICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwMHB4Owor
ICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjFzOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1
bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBhbmltOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKyAgICBALXdl
YmtpdC1rZXlmcmFtZXMgYW5pbSB7CisgICAgICAgIGZyb20geyBsZWZ0OiAyMDBweDsgfQorICAg
ICAgICB0byAgIHsgbGVmdDogMzAwcHg7IH0KKyAgICB9CisgICAgI2EgeworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogbm9u
ZTsKKyAgICB9CisgICAgI2IgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBiYWNrd2FyZHM7CisgICAgfQorICAgICNjIHsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZmlsbC1tb2RlOiBmb3J3YXJkczsKKyAgICB9CisgICAgI2QgeworICAgICAgYmFja2dyb3VuZC1j
b2xvcjogeWVsbG93OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOwor
ICAgIH0KKyAgICAjZSB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
aXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBh
bHRlcm5hdGUtcmV2ZXJzZTsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgY29uc3QgbnVtQW5pbXMg
PSA1OworICAgIHZhciBhbmltc0ZpbmlzaGVkID0gMDsKKyAgICBjb25zdCBhbGxvd2FuY2UgPSA1
OworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAge2lkOiAiYSIsIHN0YXJ0OiAx
MDAsIGVuZDogMTAwfSwKKyAgICAgIHtpZDogImIiLCBzdGFydDogMzAwLCBlbmQ6IDEwMH0sCisg
ICAgICB7aWQ6ICJjIiwgc3RhcnQ6IDEwMCwgZW5kOiAzMDB9LAorICAgICAge2lkOiAiZCIsIHN0
YXJ0OiAzMDAsIGVuZDogMzAwfSwKKyAgICAgIHtpZDogImUiLCBzdGFydDogMzAwLCBlbmQ6IDMw
MH0KKyAgICBdOworICAgIHZhciByZXN1bHQgPSAiIjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKKyAgICAgICAgaWYgKCsr
YW5pbXNGaW5pc2hlZCA9PSBudW1BbmltcykgeworICAgICAgICAgICAgc2V0VGltZW91dChlbmRU
ZXN0LCAwKTsgLy8gdGhpcyBzZXQgdGltZW91dCBzaG91bGQgYmUgb2sgaW4gdGhlIHRlc3QgZW52
aXJvbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdl
J3JlIGp1c3QgZ2l2aW5nIHN0eWxlIGEgY2hhbmNlIHRvIHJlc29sdmUKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBmdW5jdGlvbiBlbmRUZXN0KCkgeworCisgICAgICAgIGZvciAodmFyIGk9MDsg
aSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgcmVhbFZh
bHVlID0gZ2V0UHJvcGVydHlWYWx1ZSgibGVmdCIsIGV4cGVjdGVkVmFsdWVzW2ldLmlkKTsKKyAg
ICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uZW5kOworICAg
ICAgICAgICAgaWYgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKCJsZWZ0IiwgcmVhbFZhbHVlLCBleHBl
Y3RlZFZhbHVlLCBhbGxvd2FuY2UpKQorICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIjsKKyAg
ICAgICAgICAgIHJlc3VsdCArPSAiIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiAiICsgZXhwZWN0
ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFs
OiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSByZXN1bHQ7CisKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24gKCkgeworICAgICAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9IGdldFByb3BlcnR5VmFsdWUoImxl
ZnQiLCBleHBlY3RlZFZhbHVlc1tpXS5pZCk7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1
ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLnN0YXJ0OworICAgICAgICAgICAgaWYgKGNvbXBhcmVQcm9w
ZXJ0eVZhbHVlKCJsZWZ0IiwgcmVhbFZhbHVlLCBleHBlY3RlZFZhbHVlLCBhbGxvd2FuY2UpKQor
ICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0g
c3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhw
ZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJy
PiI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9uRW5kZWQsIGZhbHNlKTsKKyAgICB9OworCisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9m
IHRoZSBsZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFu
aW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0l0IHRha2Vz
IHNuYXBzaG90cyBhdCBkb2N1bWVudCBsb2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24u
Cis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4KKyAgTm9uZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBj
bGFzcz0iYm94Ij4KKyAgQmFja3dhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImMiIGNsYXNzPSJib3gi
PgorICBGb3J3YXJkcworPC9kaXY+Cis8ZGl2IGlkPSJkIiBjbGFzcz0iYm94Ij4KKyAgQm90aAor
PC9kaXY+Cis8ZGl2IGlkPSJlIiBjbGFzcz0iYm94Ij4KKyAgQm90aCBpdGVyYXRpbmcKKzwvZGl2
PgorPGRpdiBpZD0icmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFy
ZHdhcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGly
ZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5NDcwZWM0
NDlhZDc4NWNjZmUyOTVkMDRiOGM5ZTY0OTliYTUzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorMiBrZXlmcmFtZXM6IG5vcm1hbAorMiBrZXlm
cmFtZXM6IGFsdGVybmF0ZQorMiBrZXlmcmFtZXM6IHJldmVyc2UKKzIga2V5ZnJhbWVzOiBhbHRl
cm5hdGUtcmV2ZXJzZQorNCBrZXlmcmFtZXM6IG5vcm1hbAorNCBrZXlmcmFtZXM6IGFsdGVybmF0
ZQorNCBrZXlmcmFtZXM6IHJldmVyc2UKKzQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZQor
UEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAw
LjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMjAsMAorUEFTUyAtICJ3ZWJraXRU
cmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDEsMCwwLDEsMjAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3Bl
cnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEs
MCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDQi
IGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQ
QVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDIu
MnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwyMCwwCitQQVNTIC0gIndlYmtpdFRy
YW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3Bl
cnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEs
MCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDQi
IGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIwLDAKK1BB
U1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQgYXQgMC4y
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDQwLDAKK1BBU1MgLSAid2Via2l0VHJh
bnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDYiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAxLDAsMCwxLDQwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0
eSBmb3IgImJveDciIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAs
MCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g4IiBl
bGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFT
UyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAyLjJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsNDAsMAorUEFTUyAtICJ3ZWJraXRUcmFu
c2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0
eSBmb3IgImJveDciIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAs
MCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g4IiBl
bGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSw0MCwwCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLWhhcmR3YXJlLW9wYWNpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjM4M2VhOGFlNDIyZmNjNWUwMzM2MWE4YmIzNDM0MjQ0M2JlYzliMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVj
dGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUg
QEAKKzIga2V5ZnJhbWVzOiBub3JtYWwKKzIga2V5ZnJhbWVzOiBhbHRlcm5hdGUKKzIga2V5ZnJh
bWVzOiByZXZlcnNlCisyIGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2UKKzQga2V5ZnJhbWVz
OiBub3JtYWwKKzQga2V5ZnJhbWVzOiBhbHRlcm5hdGUKKzQga2V5ZnJhbWVzOiByZXZlcnNlCis0
IGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2UKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkg
Zm9yICJib3gxIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC4yCitQ
QVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAwLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDAuMgorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJv
eDMiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjgKK1BBU1MgLSAi
b3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMC44CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94MSIgZWxl
bWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuMgorUEFTUyAtICJvcGFjaXR5
IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAwLjgKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0
IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC44CitQQVNTIC0gIm9wYWNpdHkiIHByb3Bl
cnR5IGZvciAiYm94NCIgZWxlbWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAu
MgorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQgYXQgMC4ycyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjQKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9y
ICJib3g2IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC40CitQQVNT
IC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21l
dGhpbmcgY2xvc2UgdG86IDAuNworUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDgi
IGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjcKK1BBU1MgLSAib3Bh
Y2l0eSIgcHJvcGVydHkgZm9yICJib3g1IiBlbGVtZW50IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMC40CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVu
dCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNworUEFTUyAtICJvcGFjaXR5IiBw
cm9wZXJ0eSBmb3IgImJveDciIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiAwLjcKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g4IiBlbGVtZW50IGF0IDEu
MnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC40CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHku
aHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LWhhcmR3YXJlLW9wYWNpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGNiNDQwNTNhMGMyMTVhZTA2M2Ex
MDAxMzRjZWI5NTFhMTVhNzIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS5odG1sCkBA
IC0wLDAgKzEsOTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PlRlc3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uIG9uIGNvbXBvc2l0ZWQgZWxlbWVu
dHMgKG9wYWNpdHkpPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKworICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
ICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAgIGhlaWdodDogNTBweDsKKyAg
ICAgIHdpZHRoOiAyNTBweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1p
bmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1j
b3VudDogODsKKyAgICB9CisgICAgCisgICAgLmZhZGUxIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLW5hbWU6IGZhZGUxOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIGNv
bG9yOiB3aGl0ZTsKKyAgICB9CisKKyAgICAuZmFkZTIgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tbmFtZTogZmFkZTI7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisgICAgfQor
CisgICAgLm5vcm1hbCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1h
bDsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbjogYWx0ZXJuYXRlOworICAgIH0KKworICAgIC5yZXZlcnNlIHsKKyAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRl
LXJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUt
cmV2ZXJzZTsKKyAgICB9CisgICAgCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUxIHsKKyAg
ICAgIGZyb20geyBvcGFjaXR5OiAwOyB9CisgICAgICB0byB7IG9wYWNpdHk6IDEuMDsgfQorICAg
IH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBmYWRlMiB7CisgICAgICAwJSB7IG9wYWNpdHk6
IDAuMDsgfQorICAgICAgNDAlIHsgb3BhY2l0eTogMC44OyB9CisgICAgICA2MCUgeyBvcGFjaXR5
OiAwLjQ7IH0KKyAgICAgIDEwMCUgeyBvcGFjaXR5OiAxLjA7IH0KKyAgICB9CisgIDwvc3R5bGU+
CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9z
Y3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAv
LyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12
YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWyJmYWRlMSIsIDAuMiwgImJveDEiLCAib3BhY2l0eSIs
IDAuMiwgMC4xNV0sCisgICAgICBbImZhZGUxIiwgMC4yLCAiYm94MiIsICJvcGFjaXR5IiwgMC4y
LCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAwLjIsICJib3gzIiwgIm9wYWNpdHkiLCAwLjgsIDAu
MTVdLAorICAgICAgWyJmYWRlMSIsIDAuMiwgImJveDQiLCAib3BhY2l0eSIsIDAuOCwgMC4xNV0s
CisgICAgICBbImZhZGUxIiwgMS4yLCAiYm94MSIsICJvcGFjaXR5IiwgMC4yLCAwLjE1XSwKKyAg
ICAgIFsiZmFkZTEiLCAxLjIsICJib3gyIiwgIm9wYWNpdHkiLCAwLjgsIDAuMTVdLAorICAgICAg
WyJmYWRlMSIsIDEuMiwgImJveDMiLCAib3BhY2l0eSIsIDAuOCwgMC4xNV0sCisgICAgICBbImZh
ZGUxIiwgMS4yLCAiYm94NCIsICJvcGFjaXR5IiwgMC4yLCAwLjE1XSwKKyAgICAgIFsiZmFkZTIi
LCAwLjIsICJib3g1IiwgIm9wYWNpdHkiLCAwLjQsIDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDAu
MiwgImJveDYiLCAib3BhY2l0eSIsIDAuNCwgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMC4yLCAi
Ym94NyIsICJvcGFjaXR5IiwgMC43LCAwLjE1XSwKKyAgICAgIFsiZmFkZTIiLCAwLjIsICJib3g4
IiwgIm9wYWNpdHkiLCAwLjcsIDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDEuMiwgImJveDUiLCAi
b3BhY2l0eSIsIDAuNCwgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMS4yLCAiYm94NiIsICJvcGFj
aXR5IiwgMC43LCAwLjE1XSwKKyAgICAgIFsiZmFkZTIiLCAxLjIsICJib3g3IiwgIm9wYWNpdHki
LCAwLjcsIDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDEuMiwgImJveDgiLCAib3BhY2l0eSIsIDAu
NCwgMC4xNV0sCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMp
OworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3gxIiBjbGFzcz0i
Ym94IGZhZGUxIG5vcm1hbCI+MiBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94
MiIgY2xhc3M9ImJveCBmYWRlMSBhbHRlcm5hdGUiPjIga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rp
dj4KKzxkaXYgaWQ9ImJveDMiIGNsYXNzPSJib3ggZmFkZTEgcmV2ZXJzZSI+MiBrZXlmcmFtZXM6
IHJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDQiIGNsYXNzPSJib3ggZmFkZTEgYWx0ZXJuYXRl
LXJldmVyc2UiPjIga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0i
Ym94NSIgY2xhc3M9ImJveCBmYWRlMiBub3JtYWwiPjQga2V5ZnJhbWVzOiBub3JtYWw8L2Rpdj4K
KzxkaXYgaWQ9ImJveDYiIGNsYXNzPSJib3ggZmFkZTIgYWx0ZXJuYXRlIj40IGtleWZyYW1lczog
YWx0ZXJuYXRlPC9kaXY+Cis8ZGl2IGlkPSJib3g3IiBjbGFzcz0iYm94IGZhZGUyIHJldmVyc2Ui
PjQga2V5ZnJhbWVzOiByZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g4IiBjbGFzcz0iYm94IGZh
ZGUyIGFsdGVybmF0ZS1yZXZlcnNlIj40IGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2U8L2Rp
dj4KKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLWhhcmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhOGI0MjgyMGZkZGFhMGMz
MDI1MDUyZjM1YWU1ZGZiNTBmZjA0NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS5odG1sCkBAIC0w
LDAgKzEsOTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRl
c3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uIG9uIGNvbXBvc2l0ZWQgZWxlbWVudHM8
L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQor
CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAyMHB4
OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1
MHB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjog
bGluZWFyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiA4OworICAg
IH0KKyAgICAKKyAgICAubW92ZTEgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbW92
ZTE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgY29sb3I6IHdoaXRlOwor
ICAgIH0KKworICAgIC5tb3ZlMiB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3Zl
MjsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAgICB9CisKKyAgICAubm9ybWFs
IHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOworICAgIH0KKwor
ICAgIC5hbHRlcm5hdGUgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRl
cm5hdGU7CisgICAgfQorCisgICAgLnJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKworICAgIC5hbHRlcm5hdGUtcmV2ZXJzZSB7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAg
IH0KKyAgICAKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTEgeworICAgICAgZnJvbSB7IC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH0KKyAgICAgIHRvIHsgLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpOyB9CisgICAgfQorCisgICAgQC13ZWJraXQta2V5
ZnJhbWVzIG1vdmUyIHsKKyAgICAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
MHB4KTsgfQorICAgICAgNDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTYwcHgp
OyB9CisgICAgICA2MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMjBweCk7IH0K
KyAgICAgIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAg
ICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3Qt
aGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1
ZXMgPSBbCisgICAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3Bl
cnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJv
eDEiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDIwLDBdLCAyMF0sCisgICAgICBbIm1v
dmUxIiwgMC4yLCAiYm94MiIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMjAsMF0sIDIw
XSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gzIiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAs
MCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3g0IiwgIndlYmtpdFRy
YW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJi
b3gxIiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAyMCwwXSwgMjBdLAorICAgICAgWyJt
b3ZlMSIsIDIuMiwgImJveDIiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwg
MjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDMiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEs
MCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDQiLCAid2Via2l0
VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDIwLDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAi
Ym94NSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgNDAsMF0sIDIwXSwKKyAgICAgIFsi
bW92ZTIiLCAwLjIsICJib3g2IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA0MCwwXSwg
MjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDciLCAid2Via2l0VHJhbnNmb3JtIiwgWzEs
MCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDgiLCAid2Via2l0
VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwg
ImJveDUiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDQwLDBdLCAyMF0sCisgICAgICBb
Im1vdmUyIiwgMi4yLCAiYm94NiIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBd
LCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94NyIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBb
MSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94OCIsICJ3ZWJr
aXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgNDAsMF0sIDIwXSwKKyAgICBdOworCisgICAgcnVuQW5p
bWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImJveDEiIGNsYXNzPSJib3ggbW92ZTEgbm9ybWFsIj4yIGtleWZyYW1lczog
bm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZSI+
MiBrZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBt
b3ZlMSByZXZlcnNlIj4yIGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIg
Y2xhc3M9ImJveCBtb3ZlMSBhbHRlcm5hdGUtcmV2ZXJzZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0
ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g1IiBjbGFzcz0iYm94IG1vdmUyIG5vcm1hbCI+
NCBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94NiIgY2xhc3M9ImJveCBtb3Zl
MiBhbHRlcm5hdGUiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDci
IGNsYXNzPSJib3ggbW92ZTIgcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IHJldmVyc2U8L2Rpdj4KKzxk
aXYgaWQ9ImJveDgiIGNsYXNzPSJib3ggbW92ZTIgYWx0ZXJuYXRlLXJldmVyc2UiPjQga2V5ZnJh
bWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1o
YXJkd2FyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc3MWI5MjE4ZmQwNDJmNzM0NWU5NDg2
YjQxOWEyMjIwMTZjOTBiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJkd2FyZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyNSBAQAorMiBrZXlmcmFtZXM6IG5vcm1hbAorMiBrZXlmcmFtZXM6IGFsdGVy
bmF0ZQorMiBrZXlmcmFtZXM6IHJldmVyc2UKKzIga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJz
ZQorNCBrZXlmcmFtZXM6IG5vcm1hbAorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZQorNCBrZXlmcmFt
ZXM6IHJldmVyc2UKKzQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZQorUEFTUyAtICJsZWZ0
IiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAyMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMC4y
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3Ig
ImJveDMiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1Mg
LSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVu
dCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDIwCitQQVNTIC0gImxlZnQiIHByb3Bl
cnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4
MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMi4ycyBzYXcg
c29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g0
IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjAKK1BBU1MgLSAibGVm
dCIgcHJvcGVydHkgZm9yICJib3g1IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9z
ZSB0bzogNDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50IGF0IDAu
MnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9y
ICJib3g3IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNT
IC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94OCIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1l
bnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiA0MAorUEFTUyAtICJsZWZ0IiBwcm9w
ZXJ0eSBmb3IgImJveDYiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAx
ODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g3IiBlbGVtZW50IGF0IDIuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94
OCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5v
bi1oYXJkd2FyZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjczYzJlNGFhODU1YjJk
MDg0MzI0NGFiZjZiNWY1MzBmOWZkNTRjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJkd2FyZS5odG1s
CkBAIC0wLDAgKzEsOTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRp
dGxlPlRlc3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uIHJldmVyc2Ugb24gbm9uLWNv
bXBvc2l0ZWQgZWxlbWVudHM8L3RpdGxlPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBt
YXJnaW46IDA7CisgICAgfQorCisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiA1MHB4
OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0
aW9uLWNvdW50OiA4OworICAgIH0KKyAgICAKKyAgICAubW92ZTEgeworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tbmFtZTogbW92ZTE7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgY29sb3I6IHdoaXRlOworICAgIH0KKworICAgIC5tb3ZlMiB7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1uYW1lOiBtb3ZlMjsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKyAg
ICB9CisKKyAgICAubm9ybWFsIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjog
bm9ybWFsOworICAgIH0KKworICAgIC5hbHRlcm5hdGUgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgfQorCisgICAgLnJldmVyc2UgeworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKworICAgIC5hbHRl
cm5hdGUtcmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVy
bmF0ZS1yZXZlcnNlOworICAgIH0KKyAgICAKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTEg
eworICAgICAgZnJvbSB7IGxlZnQ6IDBweDsgfQorICAgICAgdG8geyBsZWZ0OiAyMDBweDsgfQor
ICAgIH0KKworICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMiB7CisgICAgICAwJSB7IGxlZnQ6
IDBweDsgfQorICAgICAgNDAlIHsgbGVmdDogMTYwcHg7IH0KKyAgICAgIDYwJSB7IGxlZnQ6IDEy
MHB4OyB9CisgICAgICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KKyAgICB9CisgIDwvc3R5bGU+Cisg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3Jp
cHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBb
YW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1
ZSwgdG9sZXJhbmNlXQorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDEiLCAibGVmdCIsICAyMCwg
MjBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDIiLCAibGVmdCIsICAyMCwgMjBdLAorICAg
ICAgWyJtb3ZlMSIsIDAuMiwgImJveDMiLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92
ZTEiLCAwLjIsICJib3g0IiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4y
LCAiYm94MSIsICJsZWZ0IiwgIDIwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MiIs
ICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDMiLCAibGVmdCIs
ICAxODAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3g0IiwgImxlZnQiLCAgMjAsIDIw
XSwKKyAgICAgIFsibW92ZTIiLCAwLjIsICJib3g1IiwgImxlZnQiLCAgNDAsIDIwXSwKKyAgICAg
IFsibW92ZTIiLCAwLjIsICJib3g2IiwgImxlZnQiLCAgNDAsIDIwXSwKKyAgICAgIFsibW92ZTIi
LCAwLjIsICJib3g3IiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAi
Ym94OCIsICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDUiLCAi
bGVmdCIsICA0MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDYiLCAibGVmdCIsICAx
ODAsIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g3IiwgImxlZnQiLCAgMTgwLCAyMF0s
CisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94OCIsICJsZWZ0IiwgIDQwLCAyMF0sCisgICAgXTsK
KworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworCisgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94IG1vdmUxIG5vcm1hbCI+
MiBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCBtb3Zl
MSBhbHRlcm5hdGUiPjIga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDMi
IGNsYXNzPSJib3ggbW92ZTEgcmV2ZXJzZSI+MiBrZXlmcmFtZXM6IHJldmVyc2U8L2Rpdj4KKzxk
aXYgaWQ9ImJveDQiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlLXJldmVyc2UiPjIga2V5ZnJh
bWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NSIgY2xhc3M9ImJveCBt
b3ZlMiBub3JtYWwiPjQga2V5ZnJhbWVzOiBub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJveDYiIGNs
YXNzPSJib3ggbW92ZTIgYWx0ZXJuYXRlIj40IGtleWZyYW1lczogYWx0ZXJuYXRlPC9kaXY+Cis8
ZGl2IGlkPSJib3g3IiBjbGFzcz0iYm94IG1vdmUyIHJldmVyc2UiPjQga2V5ZnJhbWVzOiByZXZl
cnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g4IiBjbGFzcz0iYm94IG1vdmUyIGFsdGVybmF0ZS1yZXZl
cnNlIj40IGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlv
bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU0
YmVlZGJiMGY1OGM0ODMxYzJkYWIzZTYxZjVjYjk2OThjNzUyNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWlu
Zy1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK25vcm1hbAorYWx0ZXJu
YXRlCityZXZlcnNlCithbHRlcm5hdGUtcmV2ZXJzZQorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBm
b3IgImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOAorUEFT
UyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxOAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1l
bnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOTgKK1BBU1MgLSAibGVmdCIgcHJv
cGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MTk4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAyLjJzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDE4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94
MiIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE5OAorUEFTUyAtICJs
ZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAxOTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0
IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9u
cy1oYXJkd2FyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZDA5YzA5NzViMjM3YmI5ZmMxYjc1YTc3YTlmZGI2YmYxNDQ2OWNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0
aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorbm9ybWFsCithbHRlcm5hdGUKK3JldmVyc2UKK2FsdGVybmF0ZS1yZXZlcnNl
CitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0
IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxOCwwCitQQVNTIC0gIndlYmtp
dFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxOCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJv
cGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MSwwLDAsMSwxOTgsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94
NCIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTk4LDAK
K1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQg
Mi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4LDAKK1BBU1MgLSAid2Via2l0
VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJv
cGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MSwwLDAsMSwxOTgsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94
NCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgsMAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3
YXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFiNjFlMDRiMDVmN2MzYjZkYTEyNDliYzE2MjkyODBjZTE5
YTUxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbApAQCAtMCww
ICsxLDc1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8
dGl0bGU+VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24gdGltaW5nIGZ1bmN0aW9u
cyBvbiBjb21wb3NpdGVkIGVsZW1lbnRzPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgewor
ICAgICAgbWFyZ2luOiAwOworICAgIH0KKworICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAgIGhlaWdo
dDogNTBweDsKKyAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IC8qIGVhc2UgaXMgZ29vZCBmb3IgdGVzdGlu
ZyBiZWNhdXNlIGl0IGlzIG5vdCBzeW1tZXRyaWMgKi8KKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWl0ZXJhdGlvbi1jb3VudDogNDsKKyAgICB9CisgICAgCisgICAgLm1vdmUxIHsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUxOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICB9CisKKyAgICAubm9ybWFsIHsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOworICAgIH0KKworICAgIC5hbHRlcm5h
dGUgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAg
fQorCisgICAgLnJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBy
ZXZlcnNlOworICAgIH0KKworICAgIC5hbHRlcm5hdGUtcmV2ZXJzZSB7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgICAKKyAg
ICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTEgeworICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGVYKDBweCk7IH0KKyAgICAgIHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZVgoMjAwcHgpOyB9CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0Pgor
ICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0
aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAg
ICAgIFsibW92ZTEiLCAwLjIsICJib3gxIiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwg
MTgsIDBdLCAxMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MiIsICJ3ZWJraXRUcmFuc2Zv
cm0iLCAgWzEsMCwwLDEsIDE4LCAwXSwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDMi
LCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOTgsIDBdLCAxMF0sCisgICAgICBbIm1v
dmUxIiwgMC4yLCAiYm94NCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE5OCwgMF0s
IDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gxIiwgIndlYmtpdFRyYW5zZm9ybSIsICBb
MSwwLDAsMSwgMTgsIDBdLCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MiIsICJ3ZWJr
aXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE5OCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAy
LjIsICJib3gzIiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTk4LCAwXSwgMTBdLAor
ICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDQiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwx
LCAxOCwgMF0sIDEwXSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZh
bHVlcyk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveDEiIGNs
YXNzPSJib3ggbW92ZTEgbm9ybWFsIj5ub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJveDIiIGNsYXNz
PSJib3ggbW92ZTEgYWx0ZXJuYXRlIj5hbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDMiIGNs
YXNzPSJib3ggbW92ZTEgcmV2ZXJzZSI+cmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIgY2xh
c3M9ImJveCBtb3ZlMSBhbHRlcm5hdGUtcmV2ZXJzZSI+YWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4K
KzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LXRpbWluZy1mdW5jdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjRj
MzgwZGFhNTllNmViNmVlZmU2ZTMyOTk0MjFmMzAzMDg2OGQzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5n
LWZ1bmN0aW9ucy5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbiB0aW1pbmcgZnVuY3Rpb25zPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgewor
ICAgICAgbWFyZ2luOiAwOworICAgIH0KKworICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAgIGhlaWdo
dDogNTBweDsKKyAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IC8qIGVhc2UgaXMgZ29vZCBmb3IgdGVzdGlu
ZyBiZWNhdXNlIGl0IGlzIG5vdCBzeW1tZXRyaWMgKi8KKyAgICAgIC13ZWJraXQtYW5pbWF0aW9u
LWl0ZXJhdGlvbi1jb3VudDogNDsKKyAgICB9CisgICAgCisgICAgLm1vdmUxIHsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUxOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICB9CisKKyAgICAubm9ybWFsIHsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOworICAgIH0KKworICAgIC5hbHRlcm5h
dGUgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAg
fQorCisgICAgLnJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBy
ZXZlcnNlOworICAgIH0KKworICAgIC5hbHRlcm5hdGUtcmV2ZXJzZSB7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgICAKKyAg
ICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTEgeworICAgICAgZnJvbSB7IGxlZnQ6IDBweDsgfQor
ICAgICAgdG8geyBsZWZ0OiAyMDBweDsgfQorICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdD4KKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24t
bmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFu
Y2VdCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MSIsICJsZWZ0IiwgIDE4LCAxMF0sCisgICAg
ICBbIm1vdmUxIiwgMC4yLCAiYm94MiIsICJsZWZ0IiwgIDE4LCAxMF0sCisgICAgICBbIm1vdmUx
IiwgMC4yLCAiYm94MyIsICJsZWZ0IiwgIDE5OCwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwg
ImJveDQiLCAibGVmdCIsICAxOTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gxIiwg
ImxlZnQiLCAgMTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gyIiwgImxlZnQiLCAg
MTk4LCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MyIsICJsZWZ0IiwgIDE5OCwgMTBd
LAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDQiLCAibGVmdCIsICAxOCwgMTBdLAorICAgIF07
CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKworICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCBtb3ZlMSBub3JtYWwi
Pm5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCBtb3ZlMSBhbHRlcm5hdGUi
PmFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBtb3ZlMSByZXZlcnNl
Ij5yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0
ZS1yZXZlcnNlIj5hbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rp
dj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKaW5kZXggODRh
MjZiZWQ3NWZhZGY3NDVkZGQ2MTQwNWQ5ZTc1YzI0NzBiY2U0OC4uMmRiMjBhOTAxNzY2MTU1NTBj
OTBhN2I5YTgzZTg3MjlhZmIzZjMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0xMzgsMTQ0
ICsxMzgsMTA2IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW5kZXgp
CiAgICAgfQogICAgIAogICAgIHZhciBjb21wdXRlZFZhbHVlLCBjb21wdXRlZFZhbHVlMjsKLSAg
ICB2YXIgcGFzcyA9IHRydWU7Ci0gICAgaWYgKCFwcm9wZXJ0eS5pbmRleE9mKCJ3ZWJraXRUcmFu
c2Zvcm0iKSkgewotICAgICAgICB2YXIgZWxlbWVudDsKLSAgICAgICAgaWYgKGlmcmFtZUlkKQot
ICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5j
b250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICBpZiAoY29tcGFy
ZUVsZW1lbnRzKSB7CisgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHBy
b3BlcnR5LCBlbGVtZW50SWQsIGlmcmFtZUlkKTsKKyAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSBn
ZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5LCBlbGVtZW50SWQyLCBpZnJhbWVJZCk7CisKKyAgICAg
ICAgaWYgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKHByb3BlcnR5LCBjb21wdXRlZFZhbHVlLCBjb21w
dXRlZFZhbHVlMiwgdG9sZXJhbmNlKSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAtIFwi
IiArIHByb3BlcnR5ICsgIlwiIHByb3BlcnR5IGZvciBcIiIgKyBlbGVtZW50SWQgKyAiXCIgYW5k
IFwiIiArIGVsZW1lbnRJZDIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgZWxl
bWVudHMgYXQgIiArIHRpbWUgKyAicyBhcmUgY2xvc2UgZW5vdWdoIHRvIGVhY2ggb3RoZXIiICsg
Ijxicj4iOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICAgICAgICAgIAotICAgICAgICBjb21wdXRlZFZh
bHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0VHJhbnNmb3JtOwot
ICAgICAgICBpZiAoY29tcGFyZUVsZW1lbnRzKSB7Ci0gICAgICAgICAgICBjb21wdXRlZFZhbHVl
MiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZDIpKS53ZWJraXRUcmFuc2Zvcm07Ci0gICAgICAgICAgICB2YXIgbTEgPSBtYXRyaXhTdHJp
bmdUb0FycmF5KGNvbXB1dGVkVmFsdWUpOwotICAgICAgICAgICAgdmFyIG0yID0gbWF0cml4U3Ry
aW5nVG9BcnJheShjb21wdXRlZFZhbHVlMik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8v
IGZvciBub3cgd2UgYXNzdW1lIHRoYXQgYm90aCBtYXRyaWNlcyBhcmUgZWl0aGVyIGJvdGggMkQg
b3IgYm90aCAzRAotICAgICAgICAgICAgdmFyIGNvdW50ID0gKGNvbXB1dGVkVmFsdWUuc3Vic3Ry
aW5nKDAsIDcpID09ICJtYXRyaXgzZCIpID8gMTYgOiA2OwotICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VF
bm91Z2gocGFyc2VGbG9hdChtMVtpXSksIG0yW2ldLCB0b2xlcmFuY2UpOwotICAgICAgICAgICAg
ICAgIGlmICghcGFzcykKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkVmFsdWUg
PT0gInN0cmluZyIpCi0gICAgICAgICAgICAgICAgcGFzcyA9IChjb21wdXRlZFZhbHVlID09IGV4
cGVjdGVkVmFsdWUpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkVmFsdWUg
PT0gIm51bWJlciIpIHsKLSAgICAgICAgICAgICAgICB2YXIgbSA9IG1hdHJpeFN0cmluZ1RvQXJy
YXkoY29tcHV0ZWRWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2go
cGFyc2VGbG9hdChtW3BhcnNlSW50KHByb3BlcnR5LnN1YnN0cmluZygxNikpXSksIGV4cGVjdGVk
VmFsdWUsIHRvbGVyYW5jZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IHZhciBtID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsKLSAgICAgICAgICAg
ICAgICBmb3IgKGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZS5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChwYXJzZUZsb2F0KG1baV0pLCBleHBl
Y3RlZFZhbHVlW2ldLCB0b2xlcmFuY2UpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXBhc3Mp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09ICJ3ZWJraXRG
aWx0ZXIiKSB7Ci0gICAgICAgIHZhciBlbGVtZW50OworICAgICAgICAgICAgcmVzdWx0ICs9ICJG
QUlMIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwiIiArIGVsZW1lbnRJZCAr
ICJcIiBhbmQgXCIiICsgZWxlbWVudElkMiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJcIiBlbGVtZW50cyBhdCAiICsgdGltZSArICJzIHNhdzogXCIiICsgY29tcHV0ZWRWYWx1ZSAr
ICJcIiBhbmQgXCIiICsgY29tcHV0ZWRWYWx1ZTIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlwiIHdoaWNoIGFyZSBub3QgY2xvc2UgZW5vdWdoIHRvIGVh
Y2ggb3RoZXIiICsgIjxicj4iOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBlbGVtZW50TmFt
ZTsKICAgICAgICAgaWYgKGlmcmFtZUlkKQotICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5jb250ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkKTsKKyAgICAgICAgICAgIGVsZW1lbnROYW1lID0gaWZyYW1lSWQgKyAnLicgKyBl
bGVtZW50SWQ7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotIAotICAgICAgICBjb21wdXRlZFZhbHVlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0RmlsdGVyOwotICAgICAgICB2YXIg
ZmlsdGVyUGFyYW1ldGVycyA9IGdldEZpbHRlclBhcmFtZXRlcnMoY29tcHV0ZWRWYWx1ZSk7Cisg
ICAgICAgICAgICBlbGVtZW50TmFtZSA9IGVsZW1lbnRJZDsKIAotICAgICAgICBpZiAoY29tcGFy
ZUVsZW1lbnRzKSB7Ci0gICAgICAgICAgICBjb21wdXRlZFZhbHVlMiA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpKS53ZWJraXRGaWx0
ZXI7Ci0gICAgICAgICAgICB2YXIgZmlsdGVyMlBhcmFtZXRlcnMgPSBnZXRGaWx0ZXJQYXJhbWV0
ZXJzKGNvbXB1dGVkVmFsdWUyKTsKLSAgICAgICAgICAgIHBhc3MgPSBmaWx0ZXJQYXJhbWV0ZXJz
TWF0Y2goZmlsdGVyUGFyYW1ldGVycywgZmlsdGVyMlBhcmFtZXRlcnMsIHRvbGVyYW5jZSk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwYXNzID0gZmlsdGVyUGFyYW1ldGVyc01hdGNo
KGZpbHRlclBhcmFtZXRlcnMsIGdldEZpbHRlclBhcmFtZXRlcnMoZXhwZWN0ZWRWYWx1ZSksIHRv
bGVyYW5jZSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09ICJsaW5lSGVp
Z2h0IikgewotICAgICAgICB2YXIgZWxlbWVudDsKLSAgICAgICAgaWYgKGlmcmFtZUlkKQotICAg
ICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5jb250
ZW50RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgY29tcHV0ZWRW
YWx1ZSA9IGdldFByb3BlcnR5VmFsdWUocHJvcGVydHksIGVsZW1lbnRJZCwgaWZyYW1lSWQpOwor
CisgICAgICAgIGlmIChjb21wYXJlUHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgY29tcHV0ZWRWYWx1
ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiUEFT
UyAtIFwiIiArIHByb3BlcnR5ICsgIlwiIHByb3BlcnR5IGZvciBcIiIgKyBlbGVtZW50TmFtZSAr
ICJcIiBlbGVtZW50IGF0ICIgKyB0aW1lICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogIiArIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpOwotICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwg
LSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsgZWxlbWVudE5hbWUgKyAi
XCIgZWxlbWVudCBhdCAiICsgdGltZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
IGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYnV0IHNhdzogIiArIGNvbXB1dGVkVmFs
dWUgKyAiPGJyPiI7CisgICAgfQorfQorCisKK2Z1bmN0aW9uIGdldFByb3BlcnR5VmFsdWUocHJv
cGVydHksIGVsZW1lbnRJZCwgaWZyYW1lSWQpCit7CisgICAgdmFyIGNvbXB1dGVkVmFsdWU7Cisg
ICAgdmFyIGVsZW1lbnQ7CisgICAgaWYgKGlmcmFtZUlkKQorICAgICAgICBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpOworICAgIGVsc2UKKyAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisKKyAgICBpZiAocHJvcGVydHkgPT0gImxpbmVIZWln
aHQiKQogICAgICAgICBjb21wdXRlZFZhbHVlID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCkubGluZUhlaWdodCk7Ci0gICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMp
IHsKLSAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikpLmxpbmVIZWlnaHQp
OwotICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwgY29tcHV0
ZWRWYWx1ZTIsIHRvbGVyYW5jZSk7CisgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gImJhY2tncm91
bmRJbWFnZSIKKyAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJib3JkZXJJbWFnZVNvdXJj
ZSIKKyAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJsaXN0U3R5bGVJbWFnZSIKKyAgICAg
ICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrSW1hZ2UiCisgICAgICAgICAgICAg
ICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0TWFza0JveEltYWdlIgorICAgICAgICAgICAgICAgfHwg
cHJvcGVydHkgPT0gIndlYmtpdEZpbHRlciIKKyAgICAgICAgICAgICAgIHx8ICFwcm9wZXJ0eS5p
bmRleE9mKCJ3ZWJraXRUcmFuc2Zvcm0iKSkgeworICAgICAgICBjb21wdXRlZFZhbHVlID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClbcHJvcGVydHkuc3BsaXQoIi4iKVswXV07Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5KTsKKyAgICAgICAg
Y29tcHV0ZWRWYWx1ZSA9IGNvbXB1dGVkU3R5bGUuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfTlVNQkVSKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZTsKK30K
KworZnVuY3Rpb24gY29tcGFyZVByb3BlcnR5VmFsdWUocHJvcGVydHksIGNvbXB1dGVkVmFsdWUs
IGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSkKK3sKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKwor
ICAgIGlmICghcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKKyAgICAgICAg
aWYgKHR5cGVvZiBleHBlY3RlZFZhbHVlID09ICJzdHJpbmciKQorICAgICAgICAgICAgcmVzdWx0
ID0gKGNvbXB1dGVkVmFsdWUgPT0gZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHR5
cGVvZiBleHBlY3RlZFZhbHVlID09ICJudW1iZXIiKSB7CisgICAgICAgICAgICB2YXIgbSA9IG1h
dHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1ZSk7CisgICAgICAgICAgICByZXN1bHQgPSBp
c0Nsb3NlRW5vdWdoKHBhcnNlRmxvYXQobVtwYXJzZUludChwcm9wZXJ0eS5zdWJzdHJpbmcoMTYp
KV0pLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdmFyIG0gPSBtYXRyaXhTdHJpbmdUb0FycmF5KGNvbXB1dGVkVmFsdWUpOworICAgICAg
ICAgICAgZm9yIChpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWUubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBpc0Nsb3NlRW5vdWdoKHBhcnNlRmxvYXQobVtpXSksIGV4cGVj
dGVkVmFsdWVbaV0sIHRvbGVyYW5jZSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUs
IGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSAi
d2Via2l0RmlsdGVyIikgeworICAgICAgICB2YXIgZmlsdGVyUGFyYW1ldGVycyA9IGdldEZpbHRl
clBhcmFtZXRlcnMoY29tcHV0ZWRWYWx1ZSk7CisgICAgICAgIHZhciBmaWx0ZXIyUGFyYW1ldGVy
cyA9IGdldEZpbHRlclBhcmFtZXRlcnMoZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAgIHJlc3VsdCA9
IGZpbHRlclBhcmFtZXRlcnNNYXRjaChmaWx0ZXJQYXJhbWV0ZXJzLCBmaWx0ZXIyUGFyYW1ldGVy
cywgdG9sZXJhbmNlKTsKICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09ICJiYWNrZ3JvdW5kSW1h
Z2UiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAiYm9yZGVySW1hZ2VTb3VyY2UiCiAg
ICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAibGlzdFN0eWxlSW1hZ2UiCiAgICAgICAgICAg
ICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0TWFza0ltYWdlIgogICAgICAgICAgICAgICAgfHwg
cHJvcGVydHkgPT0gIndlYmtpdE1hc2tCb3hJbWFnZSIpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQ7
Ci0gICAgICAgIGlmIChpZnJhbWVJZCkKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZnJhbWVJZCkuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotCi0gICAgICAgIGNvbXB1dGVkVmFsdWUgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVtwcm9wZXJ0eV07Ci0gICAgICAgIGNvbXB1dGVk
Q3Jvc3NGYWRlID0gcGFyc2VDcm9zc0ZhZGUoY29tcHV0ZWRWYWx1ZSk7CisgICAgICAgIHZhciBj
b21wdXRlZENyb3NzRmFkZSA9IHBhcnNlQ3Jvc3NGYWRlKGNvbXB1dGVkVmFsdWUpOwogCiAgICAg
ICAgIGlmICghY29tcHV0ZWRDcm9zc0ZhZGUpIHsKLSAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgaWYgKGNvbXBhcmVFbGVtZW50cykgewotICAgICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWUy
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVu
dElkMikpW3Byb3BlcnR5XTsKLSAgICAgICAgICAgICAgICBjb21wdXRlZENyb3NzRmFkZTIgPSBw
YXJzZUNyb3NzRmFkZShjb21wdXRlZFZhbHVlMik7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbXB1
dGVkQ3Jvc3NGYWRlMikgewotICAgICAgICAgICAgICAgICAgICBwYXNzID0gKGlzQ2xvc2VFbm91
Z2goY29tcHV0ZWRDcm9zc0ZhZGUucGVyY2VudCwgY29tcHV0ZWRDcm9zc0ZhZGUyLnBlcmNlbnQs
IHRvbGVyYW5jZSkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkQ3Jvc3NGYWRl
LmZyb20gPT0gY29tcHV0ZWRDcm9zc0ZhZGUyLmZyb20gJiYKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbXB1dGVkQ3Jvc3NGYWRlLnRvID09IGNvbXB1dGVkQ3Jvc3NGYWRlMi50byk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICBwYXNzID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGVv
ZiBleHBlY3RlZFZhbHVlID09ICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgdmFyIGNvbXB1
dGVkQ3Jvc3NGYWRlMiA9IHBhcnNlQ3Jvc3NGYWRlKGV4cGVjdGVkVmFsdWUpOworICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRDcm9zc0ZhZGUucGVyY2VudCwg
Y29tcHV0ZWRDcm9zc0ZhZGUyLnBlcmNlbnQsIHRvbGVyYW5jZSkgJiYgY29tcHV0ZWRDcm9zc0Zh
ZGUuZnJvbSA9PSBjb21wdXRlZENyb3NzRmFkZTIuZnJvbSAmJiBjb21wdXRlZENyb3NzRmFkZS50
byA9PSBjb21wdXRlZENyb3NzRmFkZTIudG87CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkQ3Jvc3NGYWRlLnBlcmNlbnQs
IGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXND
bG9zZUVub3VnaChjb21wdXRlZENyb3NzRmFkZS5wZXJjZW50LCBleHBlY3RlZFZhbHVlLCB0b2xl
cmFuY2UpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICB2
YXIgZWxlbWVudDsKLSAgICAgICAgaWYgKGlmcmFtZUlkKQotICAgICAgICAgICAgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5jb250ZW50RG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0KLSAgICAgICAgdmFyIGNvbXB1
dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKHByb3BlcnR5KTsKLSAgICAgICAgY29tcHV0ZWRWYWx1ZSA9IGNvbXB1dGVkU3R5bGUu
Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKLSAgICAgICAgaWYg
KGNvbXBhcmVFbGVtZW50cykgewotICAgICAgICAgICAgdmFyIGNvbXB1dGVkU3R5bGUyID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikp
LmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHkpOwotICAgICAgICAgICAgY29tcHV0ZWRWYWx1
ZTIgPSBjb21wdXRlZFN0eWxlMi5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19O
VU1CRVIpOwotICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwg
Y29tcHV0ZWRWYWx1ZTIsIHRvbGVyYW5jZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1
ZSwgdG9sZXJhbmNlKTsKLSAgICB9Ci0KLSAgICBpZiAoY29tcGFyZUVsZW1lbnRzKSB7Ci0gICAg
ICAgIGlmIChwYXNzKQotICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIC0gXCIiICsgcHJvcGVy
dHkgKyAiXCIgcHJvcGVydHkgZm9yIFwiIiArIGVsZW1lbnRJZCArICJcIiBhbmQgXCIiICsgZWxl
bWVudElkMiArIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiBlbGVtZW50cyBhdCAi
ICsgdGltZSArICJzIGFyZSBjbG9zZSBlbm91Z2ggdG8gZWFjaCBvdGhlciIgKyAiPGJyPiI7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtIFwiIiArIHByb3BlcnR5
ICsgIlwiIHByb3BlcnR5IGZvciBcIiIgKyBlbGVtZW50SWQgKyAiXCIgYW5kIFwiIiArIGVsZW1l
bnRJZDIgKyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgZWxlbWVudHMgYXQgIiAr
IHRpbWUgKyAicyBzYXc6IFwiIiArIGNvbXB1dGVkVmFsdWUgKyAiXCIgYW5kIFwiIiArIGNvbXB1
dGVkVmFsdWUyICsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJcIiB3aGljaCBhcmUgbm90IGNsb3NlIGVub3VnaCB0byBlYWNoIG90aGVyIiArICI8YnI+IjsK
LSAgICB9IGVsc2UgewotICAgICAgICB2YXIgZWxlbWVudE5hbWU7Ci0gICAgICAgIGlmIChpZnJh
bWVJZCkKLSAgICAgICAgICAgIGVsZW1lbnROYW1lID0gaWZyYW1lSWQgKyAnLicgKyBlbGVtZW50
SWQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGVsZW1lbnROYW1lID0gZWxlbWVudElkOwot
ICAgICAgICBpZiAocGFzcykKLSAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAtIFwiIiArIHBy
b3BlcnR5ICsgIlwiIHByb3BlcnR5IGZvciBcIiIgKyBlbGVtZW50TmFtZSArICJcIiBlbGVtZW50
IGF0ICIgKyB0aW1lICsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogIiArIGV4cGVjdGVkVmFsdWUgKyAiPGJyPiI7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCAtIFwiIiArIHByb3BlcnR5ICsgIlwiIHByb3Bl
cnR5IGZvciBcIiIgKyBlbGVtZW50TmFtZSArICJcIiBlbGVtZW50IGF0ICIgKyB0aW1lICsgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInMgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVl
ICsgIiBidXQgc2F3OiAiICsgY29tcHV0ZWRWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgcmVzdWx0
ID0gaXNDbG9zZUVub3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2Up
OwogICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBmdW5jdGlvbiBlbmRUZXN0KCkK
</data>
<flag name="review"
          id="144875"
          type_id="1"
          status="+"
          setter="bdakin"
    />
    <flag name="commit-queue"
          id="144888"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139329</attachid>
            <date>2012-04-27 20:34:23 -0700</date>
            <delta_ts>2012-04-27 20:56:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78041-20120427203421.patch</filename>
            <type>text/plain</type>
            <size>71783</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA1MGUxYjcyMmM5MDRl
NjZkMjEyYzExNTM2MjQ4NTI2MjlhMWYyYS4uYmQyNDA3Mzg4NTg2MjIxMDE0MzdmODRmN2QzNjk5
MWMwNWM2YWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA0LTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5k
IGFsdGVybmF0ZS1yZXZlcnNlIGluIENBIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmV0aCBEYWtpbi4KKworICAgICAgICBDb3JlQW5pbWF0aW9uIGRvZXMgbm90IG5hdGl2ZWx5IHN1
cHBvcnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVyc2UKKyAgICAgICAgYW5pbWF0aW9uIGRp
cmVjdGlvbnMgc28gd2UgbmVlZCB0byBmbGlwIHRoZSBhbmltYXRpb24gdmFsdWVzIChrZXlmcmFt
ZQorICAgICAgICBrZXlzIGFuZCB0aW1pbmcgZnVuY3Rpb25zKSB0aGF0IHdlIHNlbmQgdG8gR3Jh
cGhpY3NMYXllckNBLiBVbmZvcnR1bmF0ZWx5CisgICAgICAgIHRoaXMgY29kZSBhZGRzIGEgbG90
IG9mIGNvbmRpdGlvbmFscyBiZWNhdXNlIGl0IGlzbid0IGFzIHNpbXBsZSBhcworICAgICAgICBy
ZXZlcnNpbmcgdGhlIG9yZGVyIG9mIGtleXMuIFlvdSBhbHNvIG5vdyBoYXZlIGEgZGlmZmVyZW50
IGFsaWdubWVudCBvZgorICAgICAgICB0aW1pbmcgZnVuY3Rpb25zIHRvIHRoZSByZXZlcnNlZCBs
aXN0LgorCisgICAgICAgIE5ldyB0ZXN0cyB0byBjb3ZlciB0aGUgdHdvIG5ldyBkaXJlY3Rpb25z
LCBtYWtpbmcgc3VyZSB0aGUgdGltaW5nCisgICAgICAgIGZ1bmN0aW9ucyBhcmUgY29ycmVjdGx5
IGludmVydGVkLCBhbmQgZXhlcmNpc2luZyBmaWxsIG1vZGVzLgorCisgICAgICAgIFRlc3RzOiBh
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUu
aHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtZmlsbC1tb2RlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHkuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbAorICAgICAg
ICAgICAgICAgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3
YXJlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAgIEhhbmRsZSB0aGUgcHJldmlvdXNseSB1bnN1cHBvcnRlZCBhbmltYXRpb24gZGly
ZWN0aW9ucywgcmV2ZXJzaW5nCisgICAgICAgICAgdGhlIGxpc3Qgb2YgdmFsdWVzIGFuZCBrZXl0
aW1lcyB0aGF0IHdvdWxkIGJlIHVzZWQgdG8gY3JlYXRlCisgICAgICAgICAgdGhlIENBIEFuaW1h
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKToK
KyAgICAgICAgICBEbyBub3QgY3JlYXRlIGFuIGFuaW1hdGlvbiBpZiBvbiBXaW5kb3dzIGFuZCB1
c2luZyBhIHJldmVyc2UKKyAgICAgICAgICBkaXJlY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25F
bmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zv
cm1BbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaDoKKyAgICAgICAgKFBsYXRmb3Jt
Q0FBbmltYXRpb24pOiBQYXNzIHRocm91Z2ggYSBmbGFnIHRoYXQgdGVsbHMgdGhlIENBIEFuaW1h
dGlvbgorICAgICAgICB0aGF0IGl0IHNob3VsZCBpbnZlcnQgdGhlIHRpbWluZyBmdW5jdGlvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMubW06CisgICAgICAgICh0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbik6IEFkZCBhIHBhcmFtZXRl
ciB0aGF0IHdpbGwgaW52ZXJ0IHRoZSB0aW1pbmcKKyAgICAgICAgZnVuY3Rpb24gY29lZmZpY2ll
bnRzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWlu
Z0Z1bmN0aW9uKToKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0
aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmlt
YXRpb25XaW4uY3BwOgorICAgICAgICAodG9DQUNGVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAg
IE5ldyB1bnVzZWQgcGFyYW1ldGVyLgorCiAyMDEyLTA0LTE4ICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVc2UgVGV4dHVyZUxheWVy
Q2hyb21pdW0gZm9yIFdlYkdMIGNvbnRlbnQgaW5zdGVhZCBvZiBhIGRlZGljYXRlZCBsYXllciB0
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5k
ZXggZjg0MzMwZjBjN2U1NzM2ODFlYWE4ZmVlZDkzMmMyZTM3NGUxZTNiZC4uYjVkYTk5MDc2NmRh
ZTMzOGRlYjlmNjkwODE4YmUxZmI4ODUxMmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZQogICAgIH07CiAgICAgQW5p
bWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFu
aW1hdGlvbkRpcmVjdGlvbj4obV9kaXJlY3Rpb24pOyB9CisgICAgYm9vbCBkaXJlY3Rpb25Jc0Zv
cndhcmRzKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb24gPT0gQW5pbWF0aW9uRGlyZWN0aW9u
Tm9ybWFsIHx8IG1fZGlyZWN0aW9uID09IEFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZTsgfQog
CiAgICAgdW5zaWduZWQgZmlsbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDk5YWRmMmIxNjI3YWY2NDkyNDkzYWY2NGJlMDQ2ZmVkNTU2ZDI4
MDUuLjk0OGVjOTMwZmU0ZGM0MDA2ZmFmMjNhYjRkODQ0MTI5OTkwZDFhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtNjg0LDYgKzY4NCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0
aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEludAogICAgIGlm
IChhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9uKHZhbHVlTGlzdCwgYW5pbSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKFdJTikKKyAgICAvLyBDb3JlQW5pbWF0
aW9uIG9uIFdpbmRvd3MgZG9lcyBub3QgaGFuZGxlIGEgcmV2ZXJzZSBkaXJlY3Rpb24uIEZhbGwK
KyAgICAvLyBiYWNrIHRvIHNvZnR3YXJlIGFuaW1hdGlvbiBpbiB0aGF0IGNhc2UuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTIxCisgICAgaWYgKCFh
bmltLT5kaXJlY3Rpb25Jc0ZvcndhcmRzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorCiAgICAgYm9vbCBjcmVhdGVkQW5pbWF0aW9ucyA9IGZhbHNlOwogICAgIGlmICh2YWx1ZUxp
c3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKQogICAgICAg
ICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJh
bWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgdGltZU9mZnNldCwgYm94U2l6ZSk7
CkBAIC0xOTUwLDggKzE5NTgsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVy
QW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpcwogICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJB
bmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChsaXN0SW5kZXgpKS0+dmFsdWUoKTsKICAgICBp
bnQgbnVtQW5pbWF0aW9ucyA9IG9wZXJhdGlvbnMtPnNpemUoKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBjYW4ndCBjdXJyZW50bHkgaGFyZHdhcmUgYW5pbWF0ZSBzaGFkb3dzLiBUaGVyZSBpcyBhbiBv
cGVuIHF1ZXN0aW9uIGFib3V0IHJlbW92aW5nIHNoYWRvd3MgZnJvbSBmaWx0ZXJzIAotICAgIC8v
IGVudGlyZWx5LCBpbiB3aGljaCBjYXNlIHRoaXMgaXNzdWUgaXMgbW9vdC4KKyAgICAvLyBGSVhN
RTogV2UgY2FuJ3QgY3VycmVudGx5IGhhcmR3YXJlIGFuaW1hdGUgc2hhZG93cy4KICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bUFuaW1hdGlvbnM7ICsraSkgewogICAgICAgICBpZiAob3BlcmF0
aW9ucy0+YXQoaSktPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkRST1Bf
U0hBRE9XKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTk4OSw3ICsxOTk2LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24q
IHByb3BlcnR5QW5pbSwgY29uc3QgQW4KICAgICBmbG9hdCByZXBlYXRDb3VudCA9IGFuaW0tPml0
ZXJhdGlvbkNvdW50KCk7CiAgICAgaWYgKHJlcGVhdENvdW50ID09IEFuaW1hdGlvbjo6SXRlcmF0
aW9uQ291bnRJbmZpbml0ZSkKICAgICAgICAgcmVwZWF0Q291bnQgPSBudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpOwotICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKQorICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVj
dGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIHx8IGFuaW0t
PmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2
ZXJzZSkKICAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRp
b246OkZpbGxNb2RlVHlwZSBmaWxsTW9kZSA9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1v
ZGU7CkBAIC0yMDEwLDcgKzIwMTcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmlt
YXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVydHlBbmltLCBjb25zdCBBbgogCiAgICAg
cHJvcGVydHlBbmltLT5zZXREdXJhdGlvbihkdXJhdGlvbik7CiAgICAgcHJvcGVydHlBbmltLT5z
ZXRSZXBlYXRDb3VudChyZXBlYXRDb3VudCk7Ci0gICAgcHJvcGVydHlBbmltLT5zZXRBdXRvcmV2
ZXJzZXMoYW5pbS0+ZGlyZWN0aW9uKCkpOworICAgIHByb3BlcnR5QW5pbS0+c2V0QXV0b3JldmVy
c2VzKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlIHx8IGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CiAgICAgcHJvcGVydHlBbmltLT5zZXRSZW1vdmVkT25Db21w
bGV0aW9uKGZhbHNlKTsKICAgICBwcm9wZXJ0eUFuaW0tPnNldEFkZGl0aXZlKGFkZGl0aXZlKTsK
ICAgICBwcm9wZXJ0eUFuaW0tPnNldEZpbGxNb2RlKGZpbGxNb2RlKTsKQEAgLTIwMjYsMTIgKzIw
MzMsMTcgQEAgY29uc3QgVGltaW5nRnVuY3Rpb24qIEdyYXBoaWNzTGF5ZXJDQTo6dGltaW5nRnVu
Y3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjb25zdCBBbmkKICAgICByZXR1cm4gQ3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbjo6ZGVmYXVsdFRpbWluZ0Z1bmN0aW9uKCk7CiB9CiAKLWJvb2wgR3JhcGhp
Y3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBi
YXNpY0FuaW0pCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uRW5kcG9pbnRzKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0
aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0FuaW0pCiB7CisgICAgYm9vbCBmb3J3YXJk
cyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCisgICAgdW5zaWduZWQgZnJv
bUluZGV4ID0gIWZvcndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJkczsKKyAg
ICAKICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5T3BhY2l0eTogewotICAgICAgICBiYXNpY0FuaW0tPnNldEZyb21WYWx1ZShzdGF0
aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDApKS0+dmFs
dWUoKSk7Ci0gICAgICAgIGJhc2ljQW5pbS0+c2V0VG9WYWx1ZShzdGF0aWNfY2FzdDxjb25zdCBG
bG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKS0+dmFsdWUoKSk7CisgICAgICAg
IGJhc2ljQW5pbS0+c2V0RnJvbVZhbHVlKHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9u
VmFsdWUqPih2YWx1ZUxpc3QuYXQoZnJvbUluZGV4KSktPnZhbHVlKCkpOworICAgICAgICBiYXNp
Y0FuaW0tPnNldFRvVmFsdWUoc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+
KHZhbHVlTGlzdC5hdCh0b0luZGV4KSktPnZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgZGVmYXVsdDoKQEAgLTIwNDAsMjMgKzIwNTIsMjYgQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVM
aXN0LAogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1rZXlmcmFt
ZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0Ci0gICAg
Ly8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0
KDApLCBhbmltKTsKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJl
dmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0
aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9u
ID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksIGFuaW1h
dGlvbik7CiAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICBiYXNpY0FuaW0tPnNldFRp
bWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgYmFzaWNBbmltLT5zZXRUaW1p
bmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbiwgIWZvcndhcmRzKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgUGxh
dGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNl
dEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBj
b25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVB
bmltKQogewogICAgIFZlY3RvcjxmbG9hdD4ga2V5VGltZXM7CiAgICAgVmVjdG9yPGZsb2F0PiB2
YWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25z
OworCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygp
OwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZUxpc3Quc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gdmFsdWVMaXN0
LmF0KGkpOwotICAgICAgICBrZXlUaW1lcy5hcHBlbmQoY3VyVmFsdWUtPmtleVRpbWUoKSk7Cisg
ICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlzdC5zaXplKCkg
LSBpIC0gMSk7CisgICAgICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHZhbHVl
TGlzdC5hdChpbmRleCk7CisgICAgICAgIGtleVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZh
bHVlLT5rZXlUaW1lKCkgOiAoMSAtIGN1clZhbHVlLT5rZXlUaW1lKCkpKTsKIAogICAgICAgICBz
d2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9w
ZXJ0eU9wYWNpdHk6IHsKQEAgLTIwNjksMjQgKzIwODQsMjggQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVM
aXN0LAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICB0aW1pbmdGdW5j
dGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFu
aW0pKTsKKyAgICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKQorICAgICAgICAg
ICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVl
KGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9u
KSk7CiAgICAgfQogICAgIAotICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1ZSBi
ZWNhdXNlIGl0IGhhcyB0byBvbmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCi0gICAgdGltaW5n
RnVuY3Rpb25zLnJlbW92ZUxhc3QoKTsKLQogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMo
a2V5VGltZXMpOwogICAgIGtleWZyYW1lQW5pbS0+c2V0VmFsdWVzKHZhbHVlcyk7Ci0gICAga2V5
ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGltaW5nRnVuY3Rpb25zKTsKKyAgICBrZXlm
cmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7
CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRU
cmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVl
TGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0Fu
aW0sIGludCBmdW5jdGlvbkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUg
dHJhbnNmb3JtT3BUeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBJbnRTaXplJiBi
b3hTaXplKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBv
aW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24q
IGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbiogYmFzaWNBbmltLCBpbnQgZnVuY3Rpb25J
bmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9wVHlwZSwg
Ym9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSkKIHsKICAgICBB
U1NFUlQodmFsdWVMaXN0LnNpemUoKSA9PSAyKTsKLSAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlv
blZhbHVlKj4odmFsdWVMaXN0LmF0KDApKTsKLSAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25W
YWx1ZSogZW5kVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZSo+KHZhbHVlTGlzdC5hdCgxKSk7CisKKyAgICBib29sIGZvcndhcmRzID0gYW5pbWF0aW9uLT5k
aXJlY3Rpb25Jc0ZvcndhcmRzKCk7CisgICAgCisgICAgdW5zaWduZWQgZnJvbUluZGV4ID0gIWZv
cndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJkczsKKyAgICAKKyAgICBjb25z
dCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGZyb21JbmRleCkpOworICAg
IGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBlbmRWYWx1ZSA9IHN0YXRpY19jYXN0PGNv
bnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KHRvSW5kZXgpKTsKICAg
ICAKICAgICBpZiAoaXNNYXRyaXhBbmltYXRpb24pIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm07CkBAIC0yMTI4LDkgKzIxNDcsOSBAQCBi
b29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMg
dXNlZCBmb3IgMi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sg
aW4gdGhlIHN0YXJ0Ci0gICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9u
VmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltKTsKLSAgICBiYXNpY0FuaW0tPnNldFRpbWluZ0Z1
bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2
ZW4gaW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHBy
b3ZpZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRp
bWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3Qu
YXQoMCksIGFuaW1hdGlvbik7CisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1p
bmdGdW5jdGlvbiwgIWZvcndhcmRzKTsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVl
RnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24gPSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5z
Zm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9
IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKQEAgLTIxNDcsOSArMjE2Niwx
MiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4gdHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25zOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1h
dGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHZhbHVlTGlzdC5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZSogY3VyVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZSo+KHZhbHVlTGlzdC5hdChpKSk7Ci0gICAgICAgIGtleVRpbWVzLmFwcGVuZChjdXJW
YWx1ZS0+a2V5VGltZSgpKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBmb3J3YXJkcyA/IGkg
OiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsKKyAgICAgICAgY29uc3QgVHJhbnNmb3JtQW5p
bWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAgICAgICAga2V5VGltZXMuYXBwZW5k
KGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgxIC0gY3VyVmFsdWUtPmtleVRpbWUo
KSkpOwogCiAgICAgICAgIGlmIChpc01hdHJpeEFuaW1hdGlvbikgewogICAgICAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwpAQCAtMjE3NywxMyArMjE5OSwxMCBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAg
Y29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JB
bmltYXRpb25WYWx1ZShjdXJWYWx1ZSwgYW5pbWF0aW9uKTsKLSAgICAgICAgdGltaW5nRnVuY3Rp
b25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGlmIChpIDwgKHZhbHVlTGlzdC5z
aXplKCkgLSAxKSkKKyAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGltaW5nRnVu
Y3Rpb25Gb3JBbmltYXRpb25WYWx1ZShmb3J3YXJkcyA/IGN1clZhbHVlIDogdmFsdWVMaXN0LmF0
KGluZGV4IC0gMSksIGFuaW1hdGlvbikpOwogICAgIH0KICAgICAKLSAgICAvLyBXZSB0b3NzIHRo
ZSBsYXN0IHRmQXJyYXkgdmFsdWUgYmVjYXVzZSBpdCBoYXMgdG8gb25lIHNob3J0ZXIgdGhhbiB0
aGUgb3RoZXJzLgotICAgIHRpbWluZ0Z1bmN0aW9ucy5yZW1vdmVMYXN0KCk7Ci0KICAgICBrZXlm
cmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKICAgICAKICAgICBpZiAoaXNUcmFuc2Zv
cm1UeXBlTnVtYmVyKHRyYW5zZm9ybU9wVHlwZSkpCkBAIC0yMTkzLDcgKzIyMTIsNyBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIGVsc2UKICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRW
YWx1ZXModHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXMpOwogICAgICAgICAKLSAgICBrZXlmcmFt
ZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMpOworICAgIGtleWZyYW1l
QW5pbS0+c2V0VGltaW5nRnVuY3Rpb25zKHRpbWluZ0Z1bmN0aW9ucywgIWZvcndhcmRzKTsKIAog
ICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24g
PSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5
cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFs
dWVGdW5jdGlvbikKQEAgLTIyMDYsMzQgKzIyMjUsMzkgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6
OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmEKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5z
aXplKCkgPT0gMik7Ci0gICAgCi0gICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGZyb21W
YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KDApKTsKLSAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogdG9WYWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKTsKLSAg
ICAKKworICAgIGJvb2wgZm9yd2FyZHMgPSBhbmltYXRpb24tPmRpcmVjdGlvbklzRm9yd2FyZHMo
KTsKKworICAgIHVuc2lnbmVkIGZyb21JbmRleCA9ICFmb3J3YXJkczsKKyAgICB1bnNpZ25lZCB0
b0luZGV4ID0gZm9yd2FyZHM7CisKKyAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogZnJv
bVZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxp
c3QuYXQoZnJvbUluZGV4KSk7CisgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIHRvVmFs
dWUgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5h
dCh0b0luZGV4KSk7CisKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcGVyYXRpb24g
PSBmcm9tVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgpOwogICAgIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogdG9PcGVyYXRpb24gPSB0b1ZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbklu
ZGV4KTsKLSAgICAKKwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVyT3BlcmF0aW9uPiBkZWZhdWx0
RnJvbU9wZXJhdGlvbjsKICAgICBSZWZQdHI8RGVmYXVsdEZpbHRlck9wZXJhdGlvbj4gZGVmYXVs
dFRvT3BlcmF0aW9uOwotICAgIAorCiAgICAgQVNTRVJUKGZyb21PcGVyYXRpb24gfHwgdG9PcGVy
YXRpb24pOwotICAgIAorCiAgICAgaWYgKCFmcm9tT3BlcmF0aW9uKSB7CiAgICAgICAgIGRlZmF1
bHRGcm9tT3BlcmF0aW9uID0gRGVmYXVsdEZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKHRvT3BlcmF0
aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpOwogICAgICAgICBmcm9tT3BlcmF0aW9uID0gZGVmYXVs
dEZyb21PcGVyYXRpb24uZ2V0KCk7CiAgICAgfQotICAgIAorCiAgICAgaWYgKCF0b09wZXJhdGlv
bikgewogICAgICAgICBkZWZhdWx0VG9PcGVyYXRpb24gPSBEZWZhdWx0RmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUoZnJvbU9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpKTsKICAgICAgICAgdG9P
cGVyYXRpb24gPSBkZWZhdWx0VG9PcGVyYXRpb24uZ2V0KCk7CiAgICAgfQotICAgIAorCiAgICAg
YmFzaWNBbmltLT5zZXRGcm9tVmFsdWUoZnJvbU9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KTsKICAgICBiYXNpY0FuaW0tPnNldFRvVmFsdWUodG9PcGVyYXRpb24sIGludGVy
bmFsRmlsdGVyUHJvcGVydHlJbmRleCk7Ci0gICAgCi0gICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1
c2VkIGZvciAyLWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBp
biB0aGUgc3RhcnQgZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFs
dWVMaXN0LmF0KDApLCBhbmltYXRpb24pOwotICAgIGJhc2ljQW5pbS0+c2V0VGltaW5nRnVuY3Rp
b24odGltaW5nRnVuY3Rpb24pOworCisgICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1c2VkIGZvciAy
LWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBpbiB0aGUgc3Rh
cnQKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJldmVyc2luZyBh
bmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0aW1pbmcgZnVu
Y3Rpb24uCisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbkZv
ckFuaW1hdGlvblZhbHVlKHZhbHVlTGlzdC5hdCgwKSwgYW5pbWF0aW9uKSwgIWZvcndhcmRzKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjI0NSw5ICsyMjY5LDEyIEBAIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlCiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4gdGltaW5nRnVu
Y3Rpb25zOwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVyT3BlcmF0aW9uPiBkZWZhdWx0T3BlcmF0
aW9uOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJk
cygpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZhbHVlTGlzdC5zaXplKCk7ICsr
aSkgewotICAgICAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogY3VyVmFsdWUgPSBzdGF0
aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChpKSk7Ci0g
ICAgICAgIGtleVRpbWVzLmFwcGVuZChjdXJWYWx1ZS0+a2V5VGltZSgpKTsKKyAgICAgICAgdW5z
aWduZWQgaW5kZXggPSBmb3J3YXJkcyA/IGkgOiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsK
KyAgICAgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAg
ICAgICAga2V5VGltZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgx
IC0gY3VyVmFsdWUtPmtleVRpbWUoKSkpOwogCiAgICAgICAgIGlmIChjdXJWYWx1ZS0+dmFsdWUo
KS0+b3BlcmF0aW9ucygpLnNpemUoKSA+IHN0YXRpY19jYXN0PHNpemVfdD4oZnVuY3Rpb25JbmRl
eCkpCiAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGN1clZhbHVlLT52YWx1ZSgpLT5vcGVyYXRp
b25zKClbZnVuY3Rpb25JbmRleF0pOwpAQCAtMjI1NywxNiArMjI4NCwxMyBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiB2YWx1ZQogICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChkZWZhdWx0T3BlcmF0aW9u
KTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5j
dGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFuaW1hdGlv
bik7Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGltaW5nRnVuY3Rpb24pOworICAg
ICAgICBpZiAoaSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCisgICAgICAgICAgICB0aW1pbmdG
dW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMg
PyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCBhbmltYXRpb24pKTsKICAgICB9
CiAgICAgCi0gICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0aW1pbmcgZnVuY3Rpb24gYmVjYXVzZSBp
dCBoYXMgdG8gYmUgb25lIHNob3J0ZXIgdGhhbiB0aGUgb3RoZXJzLgotICAgIHRpbWluZ0Z1bmN0
aW9ucy5yZW1vdmVMYXN0KCk7Ci0KICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRp
bWVzKTsKICAgICBrZXlmcmFtZUFuaW0tPnNldFZhbHVlcyh2YWx1ZXMsIGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCk7Ci0gICAga2V5ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGlt
aW5nRnVuY3Rpb25zKTsKKyAgICBrZXlmcmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1p
bmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmlt
YXRpb24uaAppbmRleCAyODBkNzYzYjM3ZThlZDhjMmMxZGQ0YTMwMzIzOTRlNjFiYWY0MmQxLi42
YzEyNjMxMTRkMjk5ZDY0YWVmODRkZWE3ZTUxNjg3NzBjNjNhODk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlv
bi5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBGaWxsTW9kZVR5cGUgZmlsbE1vZGUo
KSBjb25zdDsKICAgICB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSk7CiAgICAgCi0gICAg
dm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiopOworICAgIHZvaWQg
c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2UgPSBm
YWxzZSk7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb24qKTsKIAogICAgIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Q7CkBA
IC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYpOwogICAgIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKik7CiAKLSAgICB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8
Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYpOworICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNv
bnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
OwogICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiopOwogICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMubW0KaW5kZXggNWNmMTAwNjZhNTBlNDE3ZTE5NDgwY2JmMDNjYWEzZjUyZWYw
M2E2Ny4uY2Q4NTY2OTJiM2NiMTdkNjU4NjdjYWVjNmM4ZDYwZjYwZGI4MjExMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KQEAgLTEzNCwxMyArMTM0LDE5IEBAIHN0YXRpYyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FWYWx1ZUZ1bmN0aW9u
VHlwZShOU1N0cmluZyoKIH0KICNlbmRpZgogCi1zdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9u
KiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVu
Y3Rpb24pCitzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5j
dGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24sIGJvb2wgcmV2ZXJzZSkK
IHsKICAgICBBU1NFUlQodGltaW5nRnVuY3Rpb24pOwogICAgIGlmICh0aW1pbmdGdW5jdGlvbi0+
aXNDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKCkpIHsKICAgICAgICAgY29uc3QgQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbiogY3RmID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgcmV0dXJuIFtDQU1lZGlhVGlt
aW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoQ29udHJvbFBvaW50czpzdGF0aWNfY2FzdDxmbG9hdD4o
Y3RmLT54MSgpKSA6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTEoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzdGF0aWNf
Y2FzdDxmbG9hdD4oY3RmLT54MigpKSA6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTIoKSldOwor
ICAgICAgICBmbG9hdCB4MSA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngxKCkpOworICAgICAg
ICBmbG9hdCB5MSA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkxKCkpOworICAgICAgICBmbG9h
dCB4MiA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngyKCkpOworICAgICAgICBmbG9hdCB5MiA9
IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkyKCkpOworICAgICAgICByZXR1cm4gW0NBTWVkaWFU
aW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRzOihyZXZlcnNlID8gMSAtIHgy
IDogeDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6KHJldmVyc2UgPyAxIC0geTIgOiB5MSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoocmV2ZXJzZSA/
IDEgLSB4MSA6IHgyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOihyZXZlcnNlID8gMSAtIHkxIDogeTIpXTsKICAgICB9CiAg
ICAgCiAgICAgcmV0dXJuIFtDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTpr
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFyXTsKQEAgLTMwNiw5ICszMTIsOSBAQCB2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSB2YWx1ZSkKICAgICBb
bV9hbmltYXRpb24uZ2V0KCkgc2V0RmlsbE1vZGU6dG9DQUZpbGxNb2RlVHlwZSh2YWx1ZSldOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5n
RnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCiB7Ci0g
ICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKHZhbHVlKV07CisgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9u
OnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlLCByZXZlcnNlKV07CiB9CiAKIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiB2YWx1ZSkKQEAgLTY5NCwxMiArNzAwLDEyIEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRLZXlUaW1lczpbb3RoZXIga2V5VGltZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKj4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5j
dGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJl
dmVyc2UpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFy
cmF5XTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWUuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIFthcnJheSBhZGRPYmplY3Q6dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24odmFsdWVbaV0p
XTsKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbih2YWx1
ZVtpXSwgcmV2ZXJzZSldOwogICAgIAogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0
aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczphcnJheV07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUFuaW1hdGlvbldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKaW5kZXggOTQ0Mjg4Y2E3OTZiYWNmZjZm
ZDBkMmVmYzFhOTE5ZTcyYTcxN2UxYS4uZjI2ZTE1NjM1ZDAzZTViNTBlYjUyZjdkYjcwNDdiODAx
ZmY1YzVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcApAQCAtMTIyLDgg
KzEyMiw5IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBm
cm9tQ0FDRlZhbHVlRnVuY3Rpb25UeXBlKENGU3RyaW5nCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FB
bmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbjsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDQUNGVGlt
aW5nRnVuY3Rpb25SZWY+IHRvQ0FDRlRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbikKK3N0YXRpYyBSZXRhaW5QdHI8Q0FDRlRpbWluZ0Z1bmN0aW9uUmVm
PiB0b0NBQ0ZUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24sIGJvb2wgcmV2ZXJzZSkKIHsKKyAgICBVTlVTRURfUEFSQU0ocmV2ZXJzZSk7CiAgICAgQVNT
RVJUKHRpbWluZ0Z1bmN0aW9uKTsKICAgICBpZiAodGltaW5nRnVuY3Rpb24tPmlzQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbigpKSB7CiAgICAgICAgIGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVu
Y3Rpb24qIGN0ZiA9IHN0YXRpY19jYXN0PGNvbnN0IEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24q
Pih0aW1pbmdGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjIwNDdkNGI2NTVlNDdkODFhYzA1MmMxMzljNDYy
OGRiMWQ1OGU2Zi4uODI2OGU4M2IzYWE1NWY2NDBmODk1OWFlNGYzMTQxZWE4ZmM2ZDA2MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlIGlu
IENBIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KKworICAgICAg
ICBUZXN0cyBzdXBwb3J0IGZvciByZXZlcnNlIGFuZCBhbHRlcm5hdGUtcmV2ZXJzZSBhbmltYXRp
b25zIG9uCisgICAgICAgIENvcmVBbmltYXRpb24gb2JqZWN0cywgYXMgd2VsbCBhcyBmaWxsaW5n
IG91dCBzb21lIG9mIHRoZSBzb2Z0d2FyZQorICAgICAgICBhbmltYXRvciB0ZXN0cy4gVGhlcmUg
YXJlIHRocmVlIHZhcmlhYmxlcyB0byBleGVyY2lzZTogcmV2ZXJzZSB2cworICAgICAgICBmb3J3
YXJkIGRpcmVjdGlvbiBhbmltYXRpb25zLCB3aGV0aGVyIHJldmVyc2VkIHRpbWluZyBmdW5jdGlv
bnMgYXJlCisgICAgICAgIGludmVydGVkIGNvcnJlY3RseSwgYW5kIHRoYXQgZmlsbCBtb2RlIHJl
c3BlY3RzIHRoZSBkaXJlY3Rpb24gb2YKKyAgICAgICAgYW5pbWF0aW9uLgorCisgICAgICAgIFJl
ZmFjdG9yZWQgdGhlIGFuaW1hdGlvbiB0ZXN0IGhlbHBlciBjbGFzcyBzbyB3ZSBjb3VsZCByZXVz
ZQorICAgICAgICBwcm9wZXJ0eSBwYXJzaW5nIGFuZCBldmFsdWF0aW9uLgorCisgICAgICAgICog
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJl
dmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLWZpbGwtbW9kZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9w
YWNpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LW5vbi1oYXJkd2FyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMv
YW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJkd2FyZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVu
Y3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRp
b24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzOgorICAgICAgICAoY2hlY2tFeHBlY3RlZFZhbHVlKToKKyAgICAgICAgKGdldFBy
b3BlcnR5VmFsdWUpOgorICAgICAgICAoY29tcGFyZVByb3BlcnR5VmFsdWUpOgorCiAyMDEyLTA0
LTIzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE0OTY1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLWZpbGwtbW9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVjMDZkNmNhODI5MmZiOGM3
YmEzM2ViNDFkZmU0MWY2NzQyOTIwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFuaW1hdGlvbiBvZiB0
aGUgbGVmdCBwcm9wZXJ0eSB3aXRoIGZvdXIgZGlmZmVyZW50IGZpbGwgbW9kZXMuIEl0IGFuaW1h
dGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4gSXQgdGFrZXMgc25h
cHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbi4KK05v
bmUKK0JhY2t3YXJkcworRm9yd2FyZHMKK0JvdGgKK0JvdGggaXRlcmF0aW5nCitQQVNTIC0gc3Rh
cnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDEwMCBhY3R1YWw6IDEwMAorUEFTUyAt
IHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiAzMDAKK1BB
U1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogYyBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAw
CitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6
IDMwMAorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVkOiAzMDAgYWN0
dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDEwMCBh
Y3R1YWw6IDEwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYiBleHBlY3RlZDogMTAw
IGFjdHVhbDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVkOiAz
MDAgYWN0dWFsOiAzMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGQgZXhwZWN0ZWQ6
IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZSBleHBlY3Rl
ZDogMzAwIGFjdHVhbDogMzAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1m
aWxsLW1vZGUtaGFyZHdhcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5OTI1ODJmNDM4Njdm
MjE0ZGJhZWUxOGRjOGIxNDllNjIzNGY0NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdh
cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGhpcyB0ZXN0IHBlcmZvcm1zIGFuIGFu
aW1hdGlvbiBvZiB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IHdpdGggZGlmZmVyZW50IGZpbGwgbW9k
ZXMuIEl0IGFuaW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3aXRoIGEgMC4xIHNlY29uZCBkZWxheS4g
SXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRoZSBlbmQgb2YgdGhlIGFu
aW1hdGlvbnMuCitCb3RoIEl0ZXJhdGUgLSBSZXZlcnNlCitCb3RoIEl0ZXJhdGUgLSBBbHRlcm5h
dGUgUmV2ZXJzZQorUEFTUyAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4cGVjdGVkOiAz
MDAgYWN0dWFsOiBtYXRyaXgoMSwgMCwgMCwgMSwgMzAwLCAwKQorUEFTUyAtIHN0YXJ0IG9mIGFu
aW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAzMDAgYWN0dWFsOiBtYXRyaXgoMSwgMCwgMCwgMSwg
MzAwLCAwKQorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMjAwIGFj
dHVhbDogbWF0cml4KDEsIDAsIDAsIDEsIDIwMCwgMCkKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9u
IC0gaWQ6IGIgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IG1hdHJpeCgxLCAwLCAwLCAxLCAzMDAsIDAp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlv
bi1yZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGQzMmZlYjk0YzRjZWNmMDZiN2FiNDI5ZTlmZjZkN2U1ZjFmNzFkMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS5odG1sCkBAIC0wLDAgKzEsMTAzIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IHNpbXBsZSBmaWxsIG1vZGUg
b24gdHJhbnNmb3JtPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgcG9zaXRp
b246IHJlbGF0aXZlOworICAgICAgbGVmdDogMTBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlM2QoMTAwcHgsIDAsIDApOworICAgICAgLXdlYmtpdC1hbmltYXRpb24t
ZGVsYXk6IDAuMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC4xczsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tbmFtZTogYW5pbTsKKyAgICB9CisgICAgQC13ZWJraXQta2V5ZnJhbWVz
IGFuaW0geworICAgICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIw
MHB4LCAwLCAwKTsgfQorICAgICAgICB0byAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZTNkKDMwMHB4LCAwLCAwKTsgfQorICAgIH0KKyAgICAjYSB7CisgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiAjZjk5OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOworICAgIH0KKyAgICAjYiB7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiAjOTk5OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBi
b3RoOworICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAyOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJzZTsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVy
cy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgbnVtQW5pbXMgPSAxOworICAg
IHZhciBhbmltc0ZpbmlzaGVkID0gMDsKKyAgICBjb25zdCBhbGxvd2FuY2UgPSA1OworICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAge2lkOiAiYSIsIHN0YXJ0OiAzMDAsIGVuZDog
MjAwfSwKKyAgICAgIHtpZDogImIiLCBzdGFydDogMzAwLCBlbmQ6IDMwMH0KKyAgICBdOworICAg
IHZhciByZXN1bHQgPSAiIjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gYW5pbWF0aW9uRW5kZWQoZXZlbnQpIHsKKyAgICAgICAgaWYgKCsrYW5pbXNGaW5pc2hlZCA9
PSBudW1BbmltcykgeworICAgICAgICAgICAgc2V0VGltZW91dChlbmRUZXN0LCAwKTsgLy8gVGhp
cyBjYWxsIHRvIHNldFRpbWVvdXQgc2hvdWxkIGJlIG9rIGluIHRoZSB0ZXN0IGVudmlyb25tZW50
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBqdXN0
IGdpdmluZyBzdHlsZSBhIGNoYW5jZSB0byByZXNvbHZlLgorICAgICAgICB9CisgICAgfTsKKwor
ICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBl
eHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIHJlYWxWYWx1ZSA9
IGdldFByb3BlcnR5VmFsdWUoIndlYmtpdFRyYW5zZm9ybS40IiwgZXhwZWN0ZWRWYWx1ZXNbaV0u
aWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5l
bmQ7CisgICAgICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUoIndlYmtpdFRyYW5zZm9y
bS40IiwgcmVhbFZhbHVlLCBleHBlY3RlZFZhbHVlLCBhbGxvd2FuY2UpKQorICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0gZW5kIG9mIGFuaW1h
dGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhw
ZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBy
ZXN1bHQ7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgCisg
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgcmVhbFZhbHVl
ID0gZ2V0UHJvcGVydHlWYWx1ZSgid2Via2l0VHJhbnNmb3JtLjQiLCBleHBlY3RlZFZhbHVlc1tp
XS5pZCk7CisgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5z
dGFydDsKKyAgICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUoIndlYmtpdFRyYW5zZm9y
bS40IiwgcmVhbFZhbHVlLCBleHBlY3RlZFZhbHVlLCBhbGxvd2FuY2UpKQorICAgICAgICAgICAg
ICByZXN1bHQgKz0gIlBBU1MiOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmVzdWx0
ICs9ICJGQUlMIjsKKyAgICAgICAgICByZXN1bHQgKz0gIiAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAt
IGlkOiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRW
YWx1ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgfQorICAgICAg
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0QW5pbWF0aW9uRW5kIiwgYW5pbWF0aW9u
RW5kZWQsIGZhbHNlKTsKKyAgICB9OworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitU
aGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkg
d2l0aCBkaWZmZXJlbnQKK2ZpbGwgbW9kZXMuIEl0IGFuaW1hdGVzIG92ZXIgMC4xIHNlY29uZCB3
aXRoIGEgMC4xIHNlY29uZCBkZWxheS4KK0l0IHRha2VzIHNuYXBzaG90cyBhdCBkb2N1bWVudCBs
b2FkIGFuZCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb25zLgorPGRpdiBpZD0iYSIgY2xhc3M9ImJv
eCI+CisgIEJvdGggSXRlcmF0ZSAtIFJldmVyc2UKKzwvZGl2PgorPGRpdiBpZD0iYiIgY2xhc3M9
ImJveCI+CisgIEJvdGggSXRlcmF0ZSAtIEFsdGVybmF0ZSBSZXZlcnNlCis8L2Rpdj4KKzxkaXYg
aWQ9InJlc3VsdCI+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS5o
dG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
ZmlsbC1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IzYzJlMWFmNjFjMTk3NzgxN2Y0ZjAzZWU3YmFi
ODcxNzU3OGMwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8dGl0bGU+VGVz
dCBhbmltYXRpb24gZGlyZWN0aW9uIHJldmVyc2Ugd2l0aCBmaWxsIG1vZGVzPC90aXRsZT4KKyAg
PHN0eWxlPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVm
dDogMTAwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuMXM7CisgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6
IGFuaW07CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAg
fQorICAgIEAtd2Via2l0LWtleWZyYW1lcyBhbmltIHsKKyAgICAgICAgZnJvbSB7IGxlZnQ6IDIw
MHB4OyB9CisgICAgICAgIHRvICAgeyBsZWZ0OiAzMDBweDsgfQorICAgIH0KKyAgICAjYSB7Cisg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZmls
bC1tb2RlOiBub25lOworICAgIH0KKyAgICAjYiB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJhY2t3YXJkczsKKyAgICB9
CisgICAgI2MgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzOworICAgIH0KKyAgICAjZCB7CisgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1v
ZGU6IGJvdGg7CisgICAgfQorICAgICNlIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1k
aXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBjb25z
dCBudW1BbmltcyA9IDU7CisgICAgdmFyIGFuaW1zRmluaXNoZWQgPSAwOworICAgIGNvbnN0IGFs
bG93YW5jZSA9IDU7CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICB7aWQ6ICJh
Iiwgc3RhcnQ6IDEwMCwgZW5kOiAxMDB9LAorICAgICAge2lkOiAiYiIsIHN0YXJ0OiAzMDAsIGVu
ZDogMTAwfSwKKyAgICAgIHtpZDogImMiLCBzdGFydDogMTAwLCBlbmQ6IDMwMH0sCisgICAgICB7
aWQ6ICJkIiwgc3RhcnQ6IDMwMCwgZW5kOiAzMDB9LAorICAgICAge2lkOiAiZSIsIHN0YXJ0OiAz
MDAsIGVuZDogMzAwfQorICAgIF07CisgICAgdmFyIHJlc3VsdCA9ICIiOworCisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhbmltYXRpb25FbmRlZChldmVudCkgeworICAg
ICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51bUFuaW1zKSB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KGVuZFRlc3QsIDApOyAvLyBUaGlzIGNhbGwgdG8gc2V0VGltZW91dCBzaG91bGQgYmUg
b2sgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHNpbmNlIHdlJ3JlIGp1c3QgZ2l2aW5nIHN0eWxlIGEgY2hhbmNlIHRvIHJlc29s
dmUuCisgICAgICAgIH0KKyAgICB9OworCisgICAgZnVuY3Rpb24gZW5kVGVzdCgpIHsKKworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gZ2V0UHJvcGVydHlWYWx1ZSgibGVmdCIsIGV4cGVj
dGVkVmFsdWVzW2ldLmlkKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0
ZWRWYWx1ZXNbaV0uZW5kOworICAgICAgICAgICAgaWYgKGNvbXBhcmVQcm9wZXJ0eVZhbHVlKCJs
ZWZ0IiwgcmVhbFZhbHVlLCBleHBlY3RlZFZhbHVlLCBhbGxvd2FuY2UpKQorICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICJGQUlMIjsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIC0gZW5kIG9mIGFuaW1h
dGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhw
ZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAiICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSBy
ZXN1bHQ7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVl
ID0gZ2V0UHJvcGVydHlWYWx1ZSgibGVmdCIsIGV4cGVjdGVkVmFsdWVzW2ldLmlkKTsKKyAgICAg
ICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRWYWx1ZXNbaV0uc3RhcnQ7CisgICAg
ICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUoImxlZnQiLCByZWFsVmFsdWUsIGV4cGVj
dGVkVmFsdWUsIGFsbG93YW5jZSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIjsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwiOworICAg
ICAgICAgICAgcmVzdWx0ICs9ICIgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogIiArIGV4cGVj
dGVkVmFsdWVzW2ldLmlkICsgIiBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGFjdHVh
bDogIiArIHJlYWxWYWx1ZSArICI8YnI+IjsKKyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRBbmltYXRpb25FbmQiLCBhbmltYXRpb25FbmRlZCwgZmFs
c2UpOworICAgIH07CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBw
ZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIGxlZnQgcHJvcGVydHkgd2l0aCBmb3VyIGRpZmZl
cmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEg
c2Vjb25kIGRlbGF5LgorSXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQgYW5kIHRo
ZSBlbmQgb2YgdGhlIGFuaW1hdGlvbi4KKzxkaXYgaWQ9ImEiIGNsYXNzPSJib3giPgorICBOb25l
Cis8L2Rpdj4KKzxkaXYgaWQ9ImIiIGNsYXNzPSJib3giPgorICBCYWNrd2FyZHMKKzwvZGl2Pgor
PGRpdiBpZD0iYyIgY2xhc3M9ImJveCI+CisgIEZvcndhcmRzCis8L2Rpdj4KKzxkaXYgaWQ9ImQi
IGNsYXNzPSJib3giPgorICBCb3RoCis8L2Rpdj4KKzxkaXYgaWQ9ImUiIGNsYXNzPSJib3giPgor
ICBCb3RoIGl0ZXJhdGluZworPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjk0NzBlYzQ0OWFkNzg1Y2NmZTI5NWQwNGI4YzllNjQ5OWJhNTNkOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVj
dGlvbi1yZXZlcnNlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACisyIGtl
eWZyYW1lczogbm9ybWFsCisyIGtleWZyYW1lczogYWx0ZXJuYXRlCisyIGtleWZyYW1lczogcmV2
ZXJzZQorMiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlCis0IGtleWZyYW1lczogbm9ybWFs
Cis0IGtleWZyYW1lczogYWx0ZXJuYXRlCis0IGtleWZyYW1lczogcmV2ZXJzZQorNCBrZXlmcmFt
ZXM6IGFsdGVybmF0ZS1yZXZlcnNlCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkg
Zm9yICJib3gxIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAs
MSwyMCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVt
ZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwyMCwwCitQQVNTIC0g
IndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zv
cm0iIHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBm
b3IgImJveDEiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwx
LDIwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1l
bnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0g
IndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDIuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zv
cm0iIHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDEsMCwwLDEsMjAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZv
ciAiYm94NSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEs
NDAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVu
dCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsNDAsMAorUEFTUyAtICJ3
ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAwLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3Jt
IiBwcm9wZXJ0eSBmb3IgImJveDgiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9y
ICJib3g1IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSw0
MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50
IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3
ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAyLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3Jt
IiBwcm9wZXJ0eSBmb3IgImJveDgiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxLDAsMCwxLDQwLDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJk
d2FyZS1vcGFjaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzgzZWE4YWU0MjJmY2M1ZTAz
MzYxYThiYjM0MzQyNDQzYmVjOWIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorMiBrZXlmcmFtZXM6IG5vcm1hbAorMiBrZXlmcmFt
ZXM6IGFsdGVybmF0ZQorMiBrZXlmcmFtZXM6IHJldmVyc2UKKzIga2V5ZnJhbWVzOiBhbHRlcm5h
dGUtcmV2ZXJzZQorNCBrZXlmcmFtZXM6IG5vcm1hbAorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZQor
NCBrZXlmcmFtZXM6IHJldmVyc2UKKzQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZQorUEFT
UyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAwLjIKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3gy
IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC4yCitQQVNTIC0gIm9w
YWNpdHkiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDAuOAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1l
bnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjgKK1BBU1MgLSAib3BhY2l0eSIg
cHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMC4yCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBhdCAx
LjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuOAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0
eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjgK
K1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDEuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMC4yCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAi
Ym94NSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNAorUEFTUyAt
ICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDYiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAwLjQKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g3IiBl
bGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC43CitQQVNTIC0gIm9wYWNp
dHkiIHByb3BlcnR5IGZvciAiYm94OCIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDAuNworUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQg
YXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjQKK1BBU1MgLSAib3BhY2l0eSIgcHJv
cGVydHkgZm9yICJib3g2IiBlbGVtZW50IGF0IDEuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MC43CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAxLjJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNworUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBm
b3IgImJveDgiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJl
dmVyc2UtaGFyZHdhcmUtb3BhY2l0eS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0eS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkY2I0NDA1M2EwYzIxNWFlMDYzYTEwMDEzNGNlYjk1MWExNWE3MjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1o
YXJkd2FyZS1vcGFjaXR5Lmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rp
b24gb24gY29tcG9zaXRlZCBlbGVtZW50cyAob3BhY2l0eSk8L3RpdGxlPgorICA8c3R5bGU+Cisg
ICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmJveCB7CisgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAgdG9wOiAxMHB4Owor
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgbWFyZ2luLWJv
dHRvbTogMTBweDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxczsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtp
dC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiA4OworICAgIH0KKyAgICAKKyAgICAuZmFkZTEg
eworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZTE7CisgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlOworICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKworICAgIC5mYWRlMiB7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlMjsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IG9yYW5nZTsKKyAgICB9CisKKyAgICAubm9ybWFsIHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsOworICAgIH0KKworICAgIC5hbHRlcm5hdGUgeworICAg
ICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7CisgICAgfQorCisgICAg
LnJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlOwor
ICAgIH0KKworICAgIC5hbHRlcm5hdGUtcmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgICAKKyAgICBALXdlYmtp
dC1rZXlmcmFtZXMgZmFkZTEgeworICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IH0KKyAgICAgIHRv
IHsgb3BhY2l0eTogMS4wOyB9CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUy
IHsKKyAgICAgIDAlIHsgb3BhY2l0eTogMC4wOyB9CisgICAgICA0MCUgeyBvcGFjaXR5OiAwLjg7
IH0KKyAgICAgIDYwJSB7IG9wYWNpdHk6IDAuNDsgfQorICAgICAgMTAwJSB7IG9wYWNpdHk6IDEu
MDsgfQorICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRp
b24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBl
Y3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1p
ZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbImZhZGUxIiwg
MC4yLCAiYm94MSIsICJvcGFjaXR5IiwgMC4yLCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAwLjIs
ICJib3gyIiwgIm9wYWNpdHkiLCAwLjIsIDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDAuMiwgImJv
eDMiLCAib3BhY2l0eSIsIDAuOCwgMC4xNV0sCisgICAgICBbImZhZGUxIiwgMC4yLCAiYm94NCIs
ICJvcGFjaXR5IiwgMC44LCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAxLjIsICJib3gxIiwgIm9w
YWNpdHkiLCAwLjIsIDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDEuMiwgImJveDIiLCAib3BhY2l0
eSIsIDAuOCwgMC4xNV0sCisgICAgICBbImZhZGUxIiwgMS4yLCAiYm94MyIsICJvcGFjaXR5Iiwg
MC44LCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAxLjIsICJib3g0IiwgIm9wYWNpdHkiLCAwLjIs
IDAuMTVdLAorICAgICAgWyJmYWRlMiIsIDAuMiwgImJveDUiLCAib3BhY2l0eSIsIDAuNCwgMC4x
NV0sCisgICAgICBbImZhZGUyIiwgMC4yLCAiYm94NiIsICJvcGFjaXR5IiwgMC40LCAwLjE1XSwK
KyAgICAgIFsiZmFkZTIiLCAwLjIsICJib3g3IiwgIm9wYWNpdHkiLCAwLjcsIDAuMTVdLAorICAg
ICAgWyJmYWRlMiIsIDAuMiwgImJveDgiLCAib3BhY2l0eSIsIDAuNywgMC4xNV0sCisgICAgICBb
ImZhZGUyIiwgMS4yLCAiYm94NSIsICJvcGFjaXR5IiwgMC40LCAwLjE1XSwKKyAgICAgIFsiZmFk
ZTIiLCAxLjIsICJib3g2IiwgIm9wYWNpdHkiLCAwLjcsIDAuMTVdLAorICAgICAgWyJmYWRlMiIs
IDEuMiwgImJveDciLCAib3BhY2l0eSIsIDAuNywgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMS4y
LCAiYm94OCIsICJvcGFjaXR5IiwgMC40LCAwLjE1XSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0
aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImJveDEiIGNsYXNzPSJib3ggZmFkZTEgbm9ybWFsIj4yIGtleWZyYW1lczogbm9y
bWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94IGZhZGUxIGFsdGVybmF0ZSI+MiBr
ZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBmYWRl
MSByZXZlcnNlIj4yIGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIgY2xh
c3M9ImJveCBmYWRlMSBhbHRlcm5hdGUtcmV2ZXJzZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1y
ZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g1IiBjbGFzcz0iYm94IGZhZGUyIG5vcm1hbCI+NCBr
ZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94NiIgY2xhc3M9ImJveCBmYWRlMiBh
bHRlcm5hdGUiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDciIGNs
YXNzPSJib3ggZmFkZTIgcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IHJldmVyc2U8L2Rpdj4KKzxkaXYg
aWQ9ImJveDgiIGNsYXNzPSJib3ggZmFkZTIgYWx0ZXJuYXRlLXJldmVyc2UiPjQga2V5ZnJhbWVz
OiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbCBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWE4YjQyODIwZmRkYWEwYzMwMjUwNTJmMzVhZTVkZmI1MGZmMDQ1YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLWhhcmR3YXJlLmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICA8dGl0bGU+VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24g
b24gY29tcG9zaXRlZCBlbGVtZW50czwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICBib2R5IHsKKyAg
ICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAgICBoZWlnaHQ6
IDUwcHg7CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Owor
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOworICAgICAgLXdlYmtpdC1hbmlt
YXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1p
dGVyYXRpb24tY291bnQ6IDg7CisgICAgfQorICAgIAorICAgIC5tb3ZlMSB7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlMTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7
CisgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAgLm1vdmUyIHsKKyAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUyOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3Jhbmdl
OworICAgIH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0
aW9uOiBub3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisKKyAgICAucmV2ZXJzZSB7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorCisgICAg
LmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjog
YWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtleWZyYW1lcyBt
b3ZlMSB7CisgICAgICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsg
fQorICAgICAgdG8geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAg
ICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTIgeworICAgICAgMCUgeyAtd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9CisgICAgICA0MCUgeyAtd2Via2l0LXRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgxNjBweCk7IH0KKyAgICAgIDYwJSB7IC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVYKDEyMHB4KTsgfQorICAgICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVYKDIwMHB4KTsgfQorICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdD4K
KyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24tbmFtZSwg
dGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisg
ICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwg
MjAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gyIiwgIndlYmtpdFRyYW5zZm9y
bSIsIFsxLDAsMCwxLCAyMCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDMiLCAi
d2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMSIs
IDAuMiwgImJveDQiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAor
ICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDEiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEs
IDIwLDBdLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MiIsICJ3ZWJraXRUcmFuc2Zv
cm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MyIs
ICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUx
IiwgMi4yLCAiYm94NCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMjAsMF0sIDIwXSwK
KyAgICAgIFsibW92ZTIiLCAwLjIsICJib3g1IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwx
LCA0MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDYiLCAid2Via2l0VHJhbnNm
b3JtIiwgWzEsMCwwLDEsIDQwLDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NyIs
ICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUy
IiwgMC4yLCAiYm94OCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0s
CisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94NSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAs
MSwgNDAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g2IiwgIndlYmtpdFRyYW5z
Zm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g3
IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92
ZTIiLCAyLjIsICJib3g4IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA0MCwwXSwgMjBd
LAorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKworICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCBtb3Zl
MSBub3JtYWwiPjIga2V5ZnJhbWVzOiBub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJveDIiIGNsYXNz
PSJib3ggbW92ZTEgYWx0ZXJuYXRlIj4yIGtleWZyYW1lczogYWx0ZXJuYXRlPC9kaXY+Cis8ZGl2
IGlkPSJib3gzIiBjbGFzcz0iYm94IG1vdmUxIHJldmVyc2UiPjIga2V5ZnJhbWVzOiByZXZlcnNl
PC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZS1yZXZlcnNl
Ij4yIGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDUiIGNs
YXNzPSJib3ggbW92ZTIgbm9ybWFsIj40IGtleWZyYW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlk
PSJib3g2IiBjbGFzcz0iYm94IG1vdmUyIGFsdGVybmF0ZSI+NCBrZXlmcmFtZXM6IGFsdGVybmF0
ZTwvZGl2PgorPGRpdiBpZD0iYm94NyIgY2xhc3M9ImJveCBtb3ZlMiByZXZlcnNlIj40IGtleWZy
YW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94OCIgY2xhc3M9ImJveCBtb3ZlMiBhbHRl
cm5hdGUtcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1ub24t
aGFyZHdhcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
ZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
NzcxYjkyMThmZDA0MmY3MzQ1ZTk0ODZiNDE5YTIyMjAxNmM5MGJjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9u
LWhhcmR3YXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACisyIGtleWZyYW1lczogbm9y
bWFsCisyIGtleWZyYW1lczogYWx0ZXJuYXRlCisyIGtleWZyYW1lczogcmV2ZXJzZQorMiBrZXlm
cmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlCis0IGtleWZyYW1lczogbm9ybWFsCis0IGtleWZyYW1l
czogYWx0ZXJuYXRlCis0IGtleWZyYW1lczogcmV2ZXJzZQorNCBrZXlmcmFtZXM6IGFsdGVybmF0
ZS1yZXZlcnNlCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAw
LjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDIwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZv
ciAiYm94MiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDIwCitQQVNT
IC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1l
bnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJv
cGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzog
MjAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDIuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94
MyIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJs
ZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAyMAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDUiIGVsZW1lbnQgYXQg
MC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiA0MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBm
b3IgImJveDYiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiA0MAorUEFT
UyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDciIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g4IiBlbGVt
ZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHBy
b3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDQwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVudCBhdCAyLjJzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJv
eDciIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAi
bGVmdCIgcHJvcGVydHkgZm9yICJib3g4IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogNDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1ub24taGFyZHdhcmUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NzNjMmU0YWE4NTViMmQwODQzMjQ0YWJmNmI1ZjUzMGY5ZmQ1NGMxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJl
dmVyc2Utbm9uLWhhcmR3YXJlLmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VGVzdCBvZiAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb24gcmV2ZXJzZSBvbiBub24tY29tcG9zaXRlZCBlbGVtZW50czwvdGl0bGU+CisgIDxzdHls
ZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsKKyAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDEw
cHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBtYXJn
aW4tYm90dG9tOiAxMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOwor
ICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDg7CisgICAgfQorICAgIAorICAgIC5t
b3ZlMSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlMTsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7CisgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAgLm1v
dmUyIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUyOworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogb3JhbmdlOworICAgIH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtp
dC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisK
KyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVy
c2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAgIEAt
d2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAgICBmcm9tIHsgbGVmdDogMHB4OyB9CisgICAg
ICB0byB7IGxlZnQ6IDIwMHB4OyB9CisgICAgfQorCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1v
dmUyIHsKKyAgICAgIDAlIHsgbGVmdDogMHB4OyB9CisgICAgICA0MCUgeyBsZWZ0OiAxNjBweDsg
fQorICAgICAgNjAlIHsgbGVmdDogMTIwcHg7IH0KKyAgICAgIDEwMCUgeyBsZWZ0OiAyMDBweDsg
fQorICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24t
dGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBlY3Rl
ZFZhbHVlcyA9IFsKKyAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwg
cHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbIm1vdmUxIiwgMC4y
LCAiYm94MSIsICJsZWZ0IiwgIDIwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MiIs
ICJsZWZ0IiwgIDIwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MyIsICJsZWZ0Iiwg
IDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDQiLCAibGVmdCIsICAxODAsIDIw
XSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gxIiwgImxlZnQiLCAgMjAsIDIwXSwKKyAgICAg
IFsibW92ZTEiLCAyLjIsICJib3gyIiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUx
IiwgMi4yLCAiYm94MyIsICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwg
ImJveDQiLCAibGVmdCIsICAyMCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDUiLCAi
bGVmdCIsICA0MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDYiLCAibGVmdCIsICA0
MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDAuMiwgImJveDciLCAibGVmdCIsICAxODAsIDIwXSwK
KyAgICAgIFsibW92ZTIiLCAwLjIsICJib3g4IiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBb
Im1vdmUyIiwgMi4yLCAiYm94NSIsICJsZWZ0IiwgIDQwLCAyMF0sCisgICAgICBbIm1vdmUyIiwg
Mi4yLCAiYm94NiIsICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJv
eDciLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIsICJib3g4IiwgImxl
ZnQiLCAgNDAsIDIwXSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZh
bHVlcyk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveDEiIGNs
YXNzPSJib3ggbW92ZTEgbm9ybWFsIj4yIGtleWZyYW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlk
PSJib3gyIiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0
ZTwvZGl2PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBtb3ZlMSByZXZlcnNlIj4yIGtleWZy
YW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIgY2xhc3M9ImJveCBtb3ZlMSBhbHRl
cm5hdGUtcmV2ZXJzZSI+MiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2
IGlkPSJib3g1IiBjbGFzcz0iYm94IG1vdmUyIG5vcm1hbCI+NCBrZXlmcmFtZXM6IG5vcm1hbDwv
ZGl2PgorPGRpdiBpZD0iYm94NiIgY2xhc3M9ImJveCBtb3ZlMiBhbHRlcm5hdGUiPjQga2V5ZnJh
bWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDciIGNsYXNzPSJib3ggbW92ZTIgcmV2
ZXJzZSI+NCBrZXlmcmFtZXM6IHJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDgiIGNsYXNzPSJi
b3ggbW92ZTIgYWx0ZXJuYXRlLXJldmVyc2UiPjQga2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJz
ZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mZTRiZWVkYmIwZjU4YzQ4MzFjMmRhYjNlNjFmNWNiOTY5OGM3
NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
ZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorbm9ybWFsCithbHRlcm5hdGUKK3JldmVyc2UKK2FsdGVybmF0ZS1yZXZlcnNlCitQ
QVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21l
dGhpbmcgY2xvc2UgdG86IDE4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MiIgZWxl
bWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4CitQQVNTIC0gImxlZnQiIHBy
b3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDE5OAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMC4ycyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJi
b3gxIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgKK1BBU1MgLSAi
bGVmdCIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMTk4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBh
dCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE5OAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0
eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24t
cmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlv
bnMtaGFyZHdhcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMDljMDk3NWIyMzdiYjlmYzFi
NzVhNzdhOWZkYjZiZjE0NDY5Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3
YXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitub3JtYWwKK2FsdGVybmF0ZQorcmV2
ZXJzZQorYWx0ZXJuYXRlLXJldmVyc2UKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0
eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAs
MCwxLDE4LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVs
ZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4LDAKK1BBU1Mg
LSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC4ycyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5z
Zm9ybSIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMSwwLDAsMSwxOTgsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5
IGZvciAiYm94MSIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCww
LDEsMTgsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MiIgZWxl
bWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTk4LDAKK1BBU1Mg
LSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMi4ycyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5z
Zm9ybSIgcHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMSwwLDAsMSwxOCwwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUu
aHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNl
LXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWI2MWUwNGIwNWY3
YzNiNmRhMTI0OWJjMTYyOTI4MGNlMTlhNTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9u
cy1oYXJkd2FyZS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwg
bGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbiB0aW1pbmcgZnVuY3Rpb25zIG9uIGNvbXBvc2l0ZWQgZWxlbWVudHM8L3RpdGxlPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmJv
eCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAg
dG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9u
OiAyczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgLyog
ZWFzZSBpcyBnb29kIGZvciB0ZXN0aW5nIGJlY2F1c2UgaXQgaXMgbm90IHN5bW1ldHJpYyAqLwor
ICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiA0OworICAgIH0KKyAgICAK
KyAgICAubW92ZTEgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbW92ZTE7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKwor
ICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7
CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1y
ZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJl
dmVyc2U7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAg
ICBmcm9tIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfQorICAgICAgdG8g
eyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAgICB9CisgIDwvc3R5
bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+
PC9zY3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAg
ICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3Rl
ZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDEiLCAid2Via2l0
VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIs
ICJib3gyIiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTgsIDBdLCAxMF0sCisgICAg
ICBbIm1vdmUxIiwgMC4yLCAiYm94MyIsICJ3ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE5
OCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3g0IiwgIndlYmtpdFRyYW5zZm9y
bSIsICBbMSwwLDAsMSwgMTk4LCAwXSwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDEi
LCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOCwgMF0sIDEwXSwKKyAgICAgIFsibW92
ZTEiLCAyLjIsICJib3gyIiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTk4LCAwXSwg
MTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDMiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsx
LDAsMCwxLCAxOTgsIDBdLCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94NCIsICJ3ZWJr
aXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE4LCAwXSwgMTBdLAorICAgIF07CisKKyAgICBydW5B
bmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCBtb3ZlMSBub3JtYWwiPm5vcm1hbDwvZGl2
PgorPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCBtb3ZlMSBhbHRlcm5hdGUiPmFsdGVybmF0ZTwv
ZGl2PgorPGRpdiBpZD0iYm94MyIgY2xhc3M9ImJveCBtb3ZlMSByZXZlcnNlIj5yZXZlcnNlPC9k
aXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZS1yZXZlcnNlIj5h
bHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9u
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJiNGMzODBkYWE1OWU2ZWI2ZWVmZTZlMzI5OTQyMWYzMDMwODY4
ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLmh0bWwKQEAgLTAsMCArMSw3NSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3Qg
b2YgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uIHRpbWluZyBmdW5jdGlvbnM8L3RpdGxlPgor
ICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmJv
eCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAyMHB4OworICAgICAg
dG9wOiAxMHB4OworICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgd2lkdGg6IDI1MHB4OworICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9u
OiAyczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTsgLyog
ZWFzZSBpcyBnb29kIGZvciB0ZXN0aW5nIGJlY2F1c2UgaXQgaXMgbm90IHN5bW1ldHJpYyAqLwor
ICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiA0OworICAgIH0KKyAgICAK
KyAgICAubW92ZTEgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbW92ZTE7CisgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKwor
ICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7
CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJl
Y3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisKKyAgICAucmV2ZXJzZSB7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorCisgICAgLmFsdGVybmF0ZS1y
ZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlLXJl
dmVyc2U7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMSB7CisgICAg
ICBmcm9tIHsgbGVmdDogMHB4OyB9CisgICAgICB0byB7IGxlZnQ6IDIwMHB4OyB9CisgICAgfQor
ICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBl
cnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0g
WworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwg
ZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gxIiwg
ImxlZnQiLCAgMTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gyIiwgImxlZnQiLCAg
MTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gzIiwgImxlZnQiLCAgMTk4LCAxMF0s
CisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94NCIsICJsZWZ0IiwgIDE5OCwgMTBdLAorICAgICAg
WyJtb3ZlMSIsIDIuMiwgImJveDEiLCAibGVmdCIsICAxOCwgMTBdLAorICAgICAgWyJtb3ZlMSIs
IDIuMiwgImJveDIiLCAibGVmdCIsICAxOTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJi
b3gzIiwgImxlZnQiLCAgMTk4LCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94NCIsICJs
ZWZ0IiwgIDE4LCAxMF0sCisgICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRW
YWx1ZXMpOworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3gxIiBj
bGFzcz0iYm94IG1vdmUxIG5vcm1hbCI+bm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3gyIiBjbGFz
cz0iYm94IG1vdmUxIGFsdGVybmF0ZSI+YWx0ZXJuYXRlPC9kaXY+Cis8ZGl2IGlkPSJib3gzIiBj
bGFzcz0iYm94IG1vdmUxIHJldmVyc2UiPnJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDQiIGNs
YXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlLXJldmVyc2UiPmFsdGVybmF0ZS1yZXZlcnNlPC9kaXY+
Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRl
c3QtaGVscGVycy5qcwppbmRleCA4NGEyNmJlZDc1ZmFkZjc0NWRkZDYxNDA1ZDllNzVjMjQ3MGJj
ZTQ4Li4yZGIyMGE5MDE3NjYxNTU1MGM5MGE3YjlhODNlODcyOWFmYjNmMzFkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJz
LmpzCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0
LWhlbHBlcnMuanMKQEAgLTEzOCwxNDQgKzEzOCwxMDYgQEAgZnVuY3Rpb24gY2hlY2tFeHBlY3Rl
ZFZhbHVlKGV4cGVjdGVkLCBpbmRleCkKICAgICB9CiAgICAgCiAgICAgdmFyIGNvbXB1dGVkVmFs
dWUsIGNvbXB1dGVkVmFsdWUyOwotICAgIHZhciBwYXNzID0gdHJ1ZTsKLSAgICBpZiAoIXByb3Bl
cnR5LmluZGV4T2YoIndlYmtpdFRyYW5zZm9ybSIpKSB7Ci0gICAgICAgIHZhciBlbGVtZW50Owot
ICAgICAgICBpZiAoaWZyYW1lSWQpCi0gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKKyAgICAgICAgY29tcHV0ZWRWYWx1
ZSA9IGdldFByb3BlcnR5VmFsdWUocHJvcGVydHksIGVsZW1lbnRJZCwgaWZyYW1lSWQpOworICAg
ICAgICBjb21wdXRlZFZhbHVlMiA9IGdldFByb3BlcnR5VmFsdWUocHJvcGVydHksIGVsZW1lbnRJ
ZDIsIGlmcmFtZUlkKTsKKworICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUocHJvcGVy
dHksIGNvbXB1dGVkVmFsdWUsIGNvbXB1dGVkVmFsdWUyLCB0b2xlcmFuY2UpKQorICAgICAgICAg
ICAgcmVzdWx0ICs9ICJQQVNTIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwi
IiArIGVsZW1lbnRJZCArICJcIiBhbmQgXCIiICsgZWxlbWVudElkMiArIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJcIiBlbGVtZW50cyBhdCAiICsgdGltZSArICJzIGFyZSBjbG9zZSBl
bm91Z2ggdG8gZWFjaCBvdGhlciIgKyAiPGJyPiI7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgICAgICAg
ICAgCi0gICAgICAgIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50KS53ZWJraXRUcmFuc2Zvcm07Ci0gICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAg
ICAgICAgICAgIGNvbXB1dGVkVmFsdWUyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkMikpLndlYmtpdFRyYW5zZm9ybTsKLSAgICAgICAg
ICAgIHZhciBtMSA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1ZSk7Ci0gICAgICAg
ICAgICB2YXIgbTIgPSBtYXRyaXhTdHJpbmdUb0FycmF5KGNvbXB1dGVkVmFsdWUyKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBhc3N1bWUgdGhhdCBib3RoIG1hdHJp
Y2VzIGFyZSBlaXRoZXIgYm90aCAyRCBvciBib3RoIDNECi0gICAgICAgICAgICB2YXIgY291bnQg
PSAoY29tcHV0ZWRWYWx1ZS5zdWJzdHJpbmcoMCwgNykgPT0gIm1hdHJpeDNkIikgPyAxNiA6IDY7
Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChwYXJzZUZsb2F0KG0xW2ldKSwgbTJbaV0sIHRv
bGVyYW5jZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXNzKQotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlm
ICh0eXBlb2YgZXhwZWN0ZWRWYWx1ZSA9PSAic3RyaW5nIikKLSAgICAgICAgICAgICAgICBwYXNz
ID0gKGNvbXB1dGVkVmFsdWUgPT0gZXhwZWN0ZWRWYWx1ZSk7Ci0gICAgICAgICAgICBlbHNlIGlm
ICh0eXBlb2YgZXhwZWN0ZWRWYWx1ZSA9PSAibnVtYmVyIikgewotICAgICAgICAgICAgICAgIHZh
ciBtID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsKLSAgICAgICAgICAgICAg
ICBwYXNzID0gaXNDbG9zZUVub3VnaChwYXJzZUZsb2F0KG1bcGFyc2VJbnQocHJvcGVydHkuc3Vi
c3RyaW5nKDE2KSldKSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIG0gPSBtYXRyaXhTdHJpbmdUb0FycmF5KGNvbXB1
dGVkVmFsdWUpOwotICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVl
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdo
KHBhcnNlRmxvYXQobVtpXSksIGV4cGVjdGVkVmFsdWVbaV0sIHRvbGVyYW5jZSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghcGFzcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAocHJvcGVydHkgPT0gIndlYmtpdEZpbHRlciIpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQ7Cisg
ICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0
eSBmb3IgXCIiICsgZWxlbWVudElkICsgIlwiIGFuZCBcIiIgKyBlbGVtZW50SWQyICsgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlwiIGVsZW1lbnRzIGF0ICIgKyB0aW1lICsgInMgc2F3
OiBcIiIgKyBjb21wdXRlZFZhbHVlICsgIlwiIGFuZCBcIiIgKyBjb21wdXRlZFZhbHVlMiArIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgd2hpY2ggYXJl
IG5vdCBjbG9zZSBlbm91Z2ggdG8gZWFjaCBvdGhlciIgKyAiPGJyPiI7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgdmFyIGVsZW1lbnROYW1lOwogICAgICAgICBpZiAoaWZyYW1lSWQpCi0gICAgICAg
ICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgZWxlbWVudE5h
bWUgPSBpZnJhbWVJZCArICcuJyArIGVsZW1lbnRJZDsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gCi0gICAg
ICAgIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJr
aXRGaWx0ZXI7Ci0gICAgICAgIHZhciBmaWx0ZXJQYXJhbWV0ZXJzID0gZ2V0RmlsdGVyUGFyYW1l
dGVycyhjb21wdXRlZFZhbHVlKTsKKyAgICAgICAgICAgIGVsZW1lbnROYW1lID0gZWxlbWVudElk
OwogCi0gICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAgICAgIGNvbXB1dGVk
VmFsdWUyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ZWxlbWVudElkMikpLndlYmtpdEZpbHRlcjsKLSAgICAgICAgICAgIHZhciBmaWx0ZXIyUGFyYW1l
dGVycyA9IGdldEZpbHRlclBhcmFtZXRlcnMoY29tcHV0ZWRWYWx1ZTIpOwotICAgICAgICAgICAg
cGFzcyA9IGZpbHRlclBhcmFtZXRlcnNNYXRjaChmaWx0ZXJQYXJhbWV0ZXJzLCBmaWx0ZXIyUGFy
YW1ldGVycywgdG9sZXJhbmNlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHBhc3Mg
PSBmaWx0ZXJQYXJhbWV0ZXJzTWF0Y2goZmlsdGVyUGFyYW1ldGVycywgZ2V0RmlsdGVyUGFyYW1l
dGVycyhleHBlY3RlZFZhbHVlKSwgdG9sZXJhbmNlKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAocHJvcGVydHkgPT0gImxpbmVIZWlnaHQiKSB7Ci0gICAgICAgIHZhciBlbGVtZW50OwotICAg
ICAgICBpZiAoaWZyYW1lSWQpCi0gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50
SWQpOworICAgICAgICBjb21wdXRlZFZhbHVlID0gZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwg
ZWxlbWVudElkLCBpZnJhbWVJZCk7CisKKyAgICAgICAgaWYgKGNvbXBhcmVQcm9wZXJ0eVZhbHVl
KHByb3BlcnR5LCBjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpKQorICAg
ICAgICAgICAgcmVzdWx0ICs9ICJQQVNTIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkg
Zm9yIFwiIiArIGVsZW1lbnROYW1lICsgIlwiIGVsZW1lbnQgYXQgIiArIHRpbWUgKyAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAiICsgZXhw
ZWN0ZWRWYWx1ZSArICI8YnI+IjsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gICAgICAgICAgICAKKyAgICAg
ICAgICAgIHJlc3VsdCArPSAiRkFJTCAtIFwiIiArIHByb3BlcnR5ICsgIlwiIHByb3BlcnR5IGZv
ciBcIiIgKyBlbGVtZW50TmFtZSArICJcIiBlbGVtZW50IGF0ICIgKyB0aW1lICsgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInMgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVlICsgIiBi
dXQgc2F3OiAiICsgY29tcHV0ZWRWYWx1ZSArICI8YnI+IjsKKyAgICB9Cit9CisKKworZnVuY3Rp
b24gZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgZWxlbWVudElkLCBpZnJhbWVJZCkKK3sKKyAg
ICB2YXIgY29tcHV0ZWRWYWx1ZTsKKyAgICB2YXIgZWxlbWVudDsKKyAgICBpZiAoaWZyYW1lSWQp
CisgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZnJhbWVJZCkuY29u
dGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgZWxzZQorICAgICAg
ICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKworICAgIGlm
IChwcm9wZXJ0eSA9PSAibGluZUhlaWdodCIpCiAgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBwYXJz
ZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5saW5lSGVpZ2h0KTsKLSAgICAg
ICAgaWYgKGNvbXBhcmVFbGVtZW50cykgewotICAgICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSBw
YXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChl
bGVtZW50SWQyKSkubGluZUhlaWdodCk7Ci0gICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3Vn
aChjb21wdXRlZFZhbHVlLCBjb21wdXRlZFZhbHVlMiwgdG9sZXJhbmNlKTsKKyAgICBlbHNlIGlm
IChwcm9wZXJ0eSA9PSAiYmFja2dyb3VuZEltYWdlIgorICAgICAgICAgICAgICAgfHwgcHJvcGVy
dHkgPT0gImJvcmRlckltYWdlU291cmNlIgorICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0g
Imxpc3RTdHlsZUltYWdlIgorICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1h
c2tJbWFnZSIKKyAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrQm94SW1h
Z2UiCisgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0RmlsdGVyIgorICAgICAg
ICAgICAgICAgfHwgIXByb3BlcnR5LmluZGV4T2YoIndlYmtpdFRyYW5zZm9ybSIpKSB7CisgICAg
ICAgIGNvbXB1dGVkVmFsdWUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVtwcm9w
ZXJ0eS5zcGxpdCgiLiIpWzBdXTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5Q1NTVmFs
dWUocHJvcGVydHkpOworICAgICAgICBjb21wdXRlZFZhbHVlID0gY29tcHV0ZWRTdHlsZS5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpOworICAgIH0KKworICAgIHJl
dHVybiBjb21wdXRlZFZhbHVlOworfQorCitmdW5jdGlvbiBjb21wYXJlUHJvcGVydHlWYWx1ZShw
cm9wZXJ0eSwgY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKQoreworICAg
IHZhciByZXN1bHQgPSB0cnVlOworCisgICAgaWYgKCFwcm9wZXJ0eS5pbmRleE9mKCJ3ZWJraXRU
cmFuc2Zvcm0iKSkgeworICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkVmFsdWUgPT0gInN0cmlu
ZyIpCisgICAgICAgICAgICByZXN1bHQgPSAoY29tcHV0ZWRWYWx1ZSA9PSBleHBlY3RlZFZhbHVl
KTsKKyAgICAgICAgZWxzZSBpZiAodHlwZW9mIGV4cGVjdGVkVmFsdWUgPT0gIm51bWJlciIpIHsK
KyAgICAgICAgICAgIHZhciBtID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IGlzQ2xvc2VFbm91Z2gocGFyc2VGbG9hdChtW3BhcnNlSW50
KHByb3BlcnR5LnN1YnN0cmluZygxNikpXSksIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgbSA9IG1hdHJpeFN0cmluZ1RvQXJyYXko
Y29tcHV0ZWRWYWx1ZSk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1
ZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzQ2xvc2VFbm91Z2go
cGFyc2VGbG9hdChtW2ldKSwgZXhwZWN0ZWRWYWx1ZVtpXSwgdG9sZXJhbmNlKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFzcyA9IGlzQ2xv
c2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKKyAgICB9
IGVsc2UgaWYgKHByb3BlcnR5ID09ICJ3ZWJraXRGaWx0ZXIiKSB7CisgICAgICAgIHZhciBmaWx0
ZXJQYXJhbWV0ZXJzID0gZ2V0RmlsdGVyUGFyYW1ldGVycyhjb21wdXRlZFZhbHVlKTsKKyAgICAg
ICAgdmFyIGZpbHRlcjJQYXJhbWV0ZXJzID0gZ2V0RmlsdGVyUGFyYW1ldGVycyhleHBlY3RlZFZh
bHVlKTsKKyAgICAgICAgcmVzdWx0ID0gZmlsdGVyUGFyYW1ldGVyc01hdGNoKGZpbHRlclBhcmFt
ZXRlcnMsIGZpbHRlcjJQYXJhbWV0ZXJzLCB0b2xlcmFuY2UpOwogICAgIH0gZWxzZSBpZiAocHJv
cGVydHkgPT0gImJhY2tncm91bmRJbWFnZSIKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09
ICJib3JkZXJJbWFnZVNvdXJjZSIKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJsaXN0
U3R5bGVJbWFnZSIKICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrSW1h
Z2UiCiAgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0TWFza0JveEltYWdlIikg
ewotICAgICAgICB2YXIgZWxlbWVudDsKLSAgICAgICAgaWYgKGlmcmFtZUlkKQotICAgICAgICAg
ICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5jb250ZW50RG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0KLSAgICAg
ICAgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpW3Byb3Bl
cnR5XTsKLSAgICAgICAgY29tcHV0ZWRDcm9zc0ZhZGUgPSBwYXJzZUNyb3NzRmFkZShjb21wdXRl
ZFZhbHVlKTsKKyAgICAgICAgdmFyIGNvbXB1dGVkQ3Jvc3NGYWRlID0gcGFyc2VDcm9zc0ZhZGUo
Y29tcHV0ZWRWYWx1ZSk7CiAKICAgICAgICAgaWYgKCFjb21wdXRlZENyb3NzRmFkZSkgewotICAg
ICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoY29tcGFyZUVsZW1lbnRzKSB7Ci0gICAgICAg
ICAgICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSlbcHJvcGVydHldOwotICAgICAgICAgICAgICAg
IGNvbXB1dGVkQ3Jvc3NGYWRlMiA9IHBhcnNlQ3Jvc3NGYWRlKGNvbXB1dGVkVmFsdWUyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoY29tcHV0ZWRDcm9zc0ZhZGUyKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHBhc3MgPSAoaXNDbG9zZUVub3VnaChjb21wdXRlZENyb3NzRmFkZS5wZXJjZW50LCBjb21w
dXRlZENyb3NzRmFkZTIucGVyY2VudCwgdG9sZXJhbmNlKSAmJgotICAgICAgICAgICAgICAgICAg
ICAgICAgY29tcHV0ZWRDcm9zc0ZhZGUuZnJvbSA9PSBjb21wdXRlZENyb3NzRmFkZTIuZnJvbSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRDcm9zc0ZhZGUudG8gPT0gY29tcHV0
ZWRDcm9zc0ZhZGUyLnRvKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBpZiAodHlwZW9mIGV4cGVjdGVkVmFsdWUgPT0gInN0cmluZyIpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgY29tcHV0ZWRDcm9zc0ZhZGUyID0gcGFyc2VDcm9zc0ZhZGUoZXhw
ZWN0ZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNDbG9zZUVub3VnaChjb21w
dXRlZENyb3NzRmFkZS5wZXJjZW50LCBjb21wdXRlZENyb3NzRmFkZTIucGVyY2VudCwgdG9sZXJh
bmNlKSAmJiBjb21wdXRlZENyb3NzRmFkZS5mcm9tID09IGNvbXB1dGVkQ3Jvc3NGYWRlMi5mcm9t
ICYmIGNvbXB1dGVkQ3Jvc3NGYWRlLnRvID09IGNvbXB1dGVkQ3Jvc3NGYWRlMi50bzsKICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2goY29t
cHV0ZWRDcm9zc0ZhZGUucGVyY2VudCwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkQ3Jvc3NGYWRlLnBlcmNl
bnQsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBlbGVtZW50OwotICAgICAgICBpZiAoaWZyYW1lSWQp
Ci0gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWZyYW1lSWQp
LmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KTsKLQotICAgICAgICB2YXIgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGVsZW1lbnQpLmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHkpOwotICAgICAgICBjb21wdXRl
ZFZhbHVlID0gY29tcHV0ZWRTdHlsZS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19OVU1CRVIpOwotICAgICAgICBpZiAoY29tcGFyZUVsZW1lbnRzKSB7Ci0gICAgICAgICAgICB2
YXIgY29tcHV0ZWRTdHlsZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQyKSkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7Ci0g
ICAgICAgICAgICBjb21wdXRlZFZhbHVlMiA9IGNvbXB1dGVkU3R5bGUyLmdldEZsb2F0VmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7Ci0gICAgICAgICAgICBwYXNzID0gaXNDbG9z
ZUVub3VnaChjb21wdXRlZFZhbHVlLCBjb21wdXRlZFZhbHVlMiwgdG9sZXJhbmNlKTsKLSAgICAg
ICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21w
dXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwotICAgIH0KLQotICAgIGlmIChj
b21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAgaWYgKHBhc3MpCi0gICAgICAgICAgICByZXN1bHQg
Kz0gIlBBU1MgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsgZWxlbWVu
dElkICsgIlwiIGFuZCBcIiIgKyBlbGVtZW50SWQyICsgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlwiIGVsZW1lbnRzIGF0ICIgKyB0aW1lICsgInMgYXJlIGNsb3NlIGVub3VnaCB0byBl
YWNoIG90aGVyIiArICI8YnI+IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9
ICJGQUlMIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwiIiArIGVsZW1lbnRJ
ZCArICJcIiBhbmQgXCIiICsgZWxlbWVudElkMiArIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJcIiBlbGVtZW50cyBhdCAiICsgdGltZSArICJzIHNhdzogXCIiICsgY29tcHV0ZWRWYWx1
ZSArICJcIiBhbmQgXCIiICsgY29tcHV0ZWRWYWx1ZTIgKyAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlwiIHdoaWNoIGFyZSBub3QgY2xvc2UgZW5vdWdoIHRv
IGVhY2ggb3RoZXIiICsgIjxicj4iOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBlbGVtZW50
TmFtZTsKLSAgICAgICAgaWYgKGlmcmFtZUlkKQotICAgICAgICAgICAgZWxlbWVudE5hbWUgPSBp
ZnJhbWVJZCArICcuJyArIGVsZW1lbnRJZDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZWxl
bWVudE5hbWUgPSBlbGVtZW50SWQ7Ci0gICAgICAgIGlmIChwYXNzKQotICAgICAgICAgICAgcmVz
dWx0ICs9ICJQQVNTIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwiIiArIGVs
ZW1lbnROYW1lICsgIlwiIGVsZW1lbnQgYXQgIiArIHRpbWUgKyAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAiICsgZXhwZWN0ZWRWYWx1ZSAr
ICI8YnI+IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIC0gXCIi
ICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwiIiArIGVsZW1lbnROYW1lICsgIlwiIGVs
ZW1lbnQgYXQgIiArIHRpbWUgKyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyBleHBl
Y3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGJ1dCBzYXc6ICIgKyBjb21wdXRlZFZhbHVlICsg
Ijxicj4iOworICAgICAgICByZXN1bHQgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkVmFsdWUsIGV4
cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7CiAgICAgfQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
IGZ1bmN0aW9uIGVuZFRlc3QoKQo=
</data>
<flag name="commit-queue"
          id="144933"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139332</attachid>
            <date>2012-04-27 21:07:09 -0700</date>
            <delta_ts>2012-04-27 21:07:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78041-20120427210708.patch</filename>
            <type>text/plain</type>
            <size>72121</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA1MGUxYjcyMmM5MDRl
NjZkMjEyYzExNTM2MjQ4NTI2MjlhMWYyYS4uYmQyNDA3Mzg4NTg2MjIxMDE0MzdmODRmN2QzNjk5
MWMwNWM2YWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA0LTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHJldmVyc2UgYW5k
IGFsdGVybmF0ZS1yZXZlcnNlIGluIENBIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmV0aCBEYWtpbi4KKworICAgICAgICBDb3JlQW5pbWF0aW9uIGRvZXMgbm90IG5hdGl2ZWx5IHN1
cHBvcnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVyc2UKKyAgICAgICAgYW5pbWF0aW9uIGRp
cmVjdGlvbnMgc28gd2UgbmVlZCB0byBmbGlwIHRoZSBhbmltYXRpb24gdmFsdWVzIChrZXlmcmFt
ZQorICAgICAgICBrZXlzIGFuZCB0aW1pbmcgZnVuY3Rpb25zKSB0aGF0IHdlIHNlbmQgdG8gR3Jh
cGhpY3NMYXllckNBLiBVbmZvcnR1bmF0ZWx5CisgICAgICAgIHRoaXMgY29kZSBhZGRzIGEgbG90
IG9mIGNvbmRpdGlvbmFscyBiZWNhdXNlIGl0IGlzbid0IGFzIHNpbXBsZSBhcworICAgICAgICBy
ZXZlcnNpbmcgdGhlIG9yZGVyIG9mIGtleXMuIFlvdSBhbHNvIG5vdyBoYXZlIGEgZGlmZmVyZW50
IGFsaWdubWVudCBvZgorICAgICAgICB0aW1pbmcgZnVuY3Rpb25zIHRvIHRoZSByZXZlcnNlZCBs
aXN0LgorCisgICAgICAgIE5ldyB0ZXN0cyB0byBjb3ZlciB0aGUgdHdvIG5ldyBkaXJlY3Rpb25z
LCBtYWtpbmcgc3VyZSB0aGUgdGltaW5nCisgICAgICAgIGZ1bmN0aW9ucyBhcmUgY29ycmVjdGx5
IGludmVydGVkLCBhbmQgZXhlcmNpc2luZyBmaWxsIG1vZGVzLgorCisgICAgICAgIFRlc3RzOiBh
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUu
aHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtZmlsbC1tb2RlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHkuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbAorICAgICAg
ICAgICAgICAgYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3
YXJlLmh0bWwKKyAgICAgICAgICAgICAgIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1y
ZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUuaHRtbAorICAgICAgICAgICAgICAgYW5p
bWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAgIEhhbmRsZSB0aGUgcHJldmlvdXNseSB1bnN1cHBvcnRlZCBhbmltYXRpb24gZGly
ZWN0aW9ucywgcmV2ZXJzaW5nCisgICAgICAgICAgdGhlIGxpc3Qgb2YgdmFsdWVzIGFuZCBrZXl0
aW1lcyB0aGF0IHdvdWxkIGJlIHVzZWQgdG8gY3JlYXRlCisgICAgICAgICAgdGhlIENBIEFuaW1h
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0aW9uKToK
KyAgICAgICAgICBEbyBub3QgY3JlYXRlIGFuIGFuaW1hdGlvbiBpZiBvbiBXaW5kb3dzIGFuZCB1
c2luZyBhIHJldmVyc2UKKyAgICAgICAgICBkaXJlY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRlckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmltYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRBbmltYXRpb25LZXlmcmFtZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zvcm1BbmltYXRpb25F
bmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRUcmFuc2Zv
cm1BbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
OjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaDoKKyAgICAgICAgKFBsYXRmb3Jt
Q0FBbmltYXRpb24pOiBQYXNzIHRocm91Z2ggYSBmbGFnIHRoYXQgdGVsbHMgdGhlIENBIEFuaW1h
dGlvbgorICAgICAgICB0aGF0IGl0IHNob3VsZCBpbnZlcnQgdGhlIHRpbWluZyBmdW5jdGlvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMubW06CisgICAgICAgICh0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbik6IEFkZCBhIHBhcmFtZXRl
ciB0aGF0IHdpbGwgaW52ZXJ0IHRoZSB0aW1pbmcKKyAgICAgICAgZnVuY3Rpb24gY29lZmZpY2ll
bnRzIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWlu
Z0Z1bmN0aW9uKToKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0
aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmlt
YXRpb25XaW4uY3BwOgorICAgICAgICAodG9DQUNGVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAg
IE5ldyB1bnVzZWQgcGFyYW1ldGVyLgorCiAyMDEyLTA0LTE4ICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVc2UgVGV4dHVyZUxheWVy
Q2hyb21pdW0gZm9yIFdlYkdMIGNvbnRlbnQgaW5zdGVhZCBvZiBhIGRlZGljYXRlZCBsYXllciB0
eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5k
ZXggZjg0MzMwZjBjN2U1NzM2ODFlYWE4ZmVlZDkzMmMyZTM3NGUxZTNiZC4uYjVkYTk5MDc2NmRh
ZTMzOGRlYjlmNjkwODE4YmUxZmI4ODUxMmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2ZXJzZQogICAgIH07CiAgICAgQW5p
bWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFu
aW1hdGlvbkRpcmVjdGlvbj4obV9kaXJlY3Rpb24pOyB9CisgICAgYm9vbCBkaXJlY3Rpb25Jc0Zv
cndhcmRzKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb24gPT0gQW5pbWF0aW9uRGlyZWN0aW9u
Tm9ybWFsIHx8IG1fZGlyZWN0aW9uID09IEFuaW1hdGlvbkRpcmVjdGlvbkFsdGVybmF0ZTsgfQog
CiAgICAgdW5zaWduZWQgZmlsbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGxNb2RlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwCmluZGV4IDk5YWRmMmIxNjI3YWY2NDkyNDkzYWY2NGJlMDQ2ZmVkNTU2ZDI4
MDUuLjk0OGVjOTMwZmU0ZGM0MDA2ZmFmMjNhYjRkODQ0MTI5OTkwZDFhYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcApAQCAtNjg0LDYgKzY4NCwxNCBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YWRkQW5pbWF0
aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEludAogICAgIGlm
IChhbmltYXRpb25IYXNTdGVwc1RpbWluZ0Z1bmN0aW9uKHZhbHVlTGlzdCwgYW5pbSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKFdJTikKKyAgICAvLyBDb3JlQW5pbWF0
aW9uIG9uIFdpbmRvd3MgZG9lcyBub3QgaGFuZGxlIGEgcmV2ZXJzZSBkaXJlY3Rpb24uIEZhbGwK
KyAgICAvLyBiYWNrIHRvIHNvZnR3YXJlIGFuaW1hdGlvbiBpbiB0aGF0IGNhc2UuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTIxCisgICAgaWYgKCFh
bmltLT5kaXJlY3Rpb25Jc0ZvcndhcmRzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorCiAgICAgYm9vbCBjcmVhdGVkQW5pbWF0aW9ucyA9IGZhbHNlOwogICAgIGlmICh2YWx1ZUxp
c3QucHJvcGVydHkoKSA9PSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKQogICAgICAg
ICBjcmVhdGVkQW5pbWF0aW9ucyA9IGNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJh
bWVzKHZhbHVlTGlzdCwgYW5pbSwgYW5pbWF0aW9uTmFtZSwgdGltZU9mZnNldCwgYm94U2l6ZSk7
CkBAIC0xOTUwLDggKzE5NTgsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlRmlsdGVy
QW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpcwogICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJB
bmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChsaXN0SW5kZXgpKS0+dmFsdWUoKTsKICAgICBp
bnQgbnVtQW5pbWF0aW9ucyA9IG9wZXJhdGlvbnMtPnNpemUoKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBjYW4ndCBjdXJyZW50bHkgaGFyZHdhcmUgYW5pbWF0ZSBzaGFkb3dzLiBUaGVyZSBpcyBhbiBv
cGVuIHF1ZXN0aW9uIGFib3V0IHJlbW92aW5nIHNoYWRvd3MgZnJvbSBmaWx0ZXJzIAotICAgIC8v
IGVudGlyZWx5LCBpbiB3aGljaCBjYXNlIHRoaXMgaXNzdWUgaXMgbW9vdC4KKyAgICAvLyBGSVhN
RTogV2UgY2FuJ3QgY3VycmVudGx5IGhhcmR3YXJlIGFuaW1hdGUgc2hhZG93cy4KICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IG51bUFuaW1hdGlvbnM7ICsraSkgewogICAgICAgICBpZiAob3BlcmF0
aW9ucy0+YXQoaSktPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkRST1Bf
U0hBRE9XKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTk4OSw3ICsxOTk2LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldHVwQW5pbWF0aW9uKFBsYXRmb3JtQ0FBbmltYXRpb24q
IHByb3BlcnR5QW5pbSwgY29uc3QgQW4KICAgICBmbG9hdCByZXBlYXRDb3VudCA9IGFuaW0tPml0
ZXJhdGlvbkNvdW50KCk7CiAgICAgaWYgKHJlcGVhdENvdW50ID09IEFuaW1hdGlvbjo6SXRlcmF0
aW9uQ291bnRJbmZpbml0ZSkKICAgICAgICAgcmVwZWF0Q291bnQgPSBudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpOwotICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlv
bjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlKQorICAgIGVsc2UgaWYgKGFuaW0tPmRpcmVj
dGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlIHx8IGFuaW0t
PmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0ZXJuYXRlUmV2
ZXJzZSkKICAgICAgICAgcmVwZWF0Q291bnQgLz0gMjsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRp
b246OkZpbGxNb2RlVHlwZSBmaWxsTW9kZSA9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vRmlsbE1v
ZGU7CkBAIC0yMDEwLDcgKzIwMTcsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0dXBBbmlt
YXRpb24oUGxhdGZvcm1DQUFuaW1hdGlvbiogcHJvcGVydHlBbmltLCBjb25zdCBBbgogCiAgICAg
cHJvcGVydHlBbmltLT5zZXREdXJhdGlvbihkdXJhdGlvbik7CiAgICAgcHJvcGVydHlBbmltLT5z
ZXRSZXBlYXRDb3VudChyZXBlYXRDb3VudCk7Ci0gICAgcHJvcGVydHlBbmltLT5zZXRBdXRvcmV2
ZXJzZXMoYW5pbS0+ZGlyZWN0aW9uKCkpOworICAgIHByb3BlcnR5QW5pbS0+c2V0QXV0b3JldmVy
c2VzKGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0aW9uQWx0
ZXJuYXRlIHx8IGFuaW0tPmRpcmVjdGlvbigpID09IEFuaW1hdGlvbjo6QW5pbWF0aW9uRGlyZWN0
aW9uQWx0ZXJuYXRlUmV2ZXJzZSk7CiAgICAgcHJvcGVydHlBbmltLT5zZXRSZW1vdmVkT25Db21w
bGV0aW9uKGZhbHNlKTsKICAgICBwcm9wZXJ0eUFuaW0tPnNldEFkZGl0aXZlKGFkZGl0aXZlKTsK
ICAgICBwcm9wZXJ0eUFuaW0tPnNldEZpbGxNb2RlKGZpbGxNb2RlKTsKQEAgLTIwMjYsMTIgKzIw
MzMsMTcgQEAgY29uc3QgVGltaW5nRnVuY3Rpb24qIEdyYXBoaWNzTGF5ZXJDQTo6dGltaW5nRnVu
Y3Rpb25Gb3JBbmltYXRpb25WYWx1ZShjb25zdCBBbmkKICAgICByZXR1cm4gQ3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbjo6ZGVmYXVsdFRpbWluZ0Z1bmN0aW9uKCk7CiB9CiAKLWJvb2wgR3JhcGhp
Y3NMYXllckNBOjpzZXRBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3Qm
IHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBi
YXNpY0FuaW0pCitib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uRW5kcG9pbnRzKGNv
bnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbWF0
aW9uLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0FuaW0pCiB7CisgICAgYm9vbCBmb3J3YXJk
cyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCisgICAgdW5zaWduZWQgZnJv
bUluZGV4ID0gIWZvcndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJkczsKKyAg
ICAKICAgICBzd2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAgY2FzZSBBbmltYXRl
ZFByb3BlcnR5T3BhY2l0eTogewotICAgICAgICBiYXNpY0FuaW0tPnNldEZyb21WYWx1ZShzdGF0
aWNfY2FzdDxjb25zdCBGbG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDApKS0+dmFs
dWUoKSk7Ci0gICAgICAgIGJhc2ljQW5pbS0+c2V0VG9WYWx1ZShzdGF0aWNfY2FzdDxjb25zdCBG
bG9hdEFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKS0+dmFsdWUoKSk7CisgICAgICAg
IGJhc2ljQW5pbS0+c2V0RnJvbVZhbHVlKHN0YXRpY19jYXN0PGNvbnN0IEZsb2F0QW5pbWF0aW9u
VmFsdWUqPih2YWx1ZUxpc3QuYXQoZnJvbUluZGV4KSktPnZhbHVlKCkpOworICAgICAgICBiYXNp
Y0FuaW0tPnNldFRvVmFsdWUoc3RhdGljX2Nhc3Q8Y29uc3QgRmxvYXRBbmltYXRpb25WYWx1ZSo+
KHZhbHVlTGlzdC5hdCh0b0luZGV4KSktPnZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgZGVmYXVsdDoKQEAgLTIwNDAsMjMgKzIwNTIsMjYgQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEFuaW1hdGlvbkVuZHBvaW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVM
aXN0LAogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMgdXNlZCBmb3IgMi1rZXlmcmFt
ZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sgaW4gdGhlIHN0YXJ0Ci0gICAg
Ly8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFsdWVMaXN0LmF0
KDApLCBhbmltKTsKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJl
dmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0
aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9u
ID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3QuYXQoMCksIGFuaW1h
dGlvbik7CiAgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICBiYXNpY0FuaW0tPnNldFRp
bWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAgICAgYmFzaWNBbmltLT5zZXRUaW1p
bmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbiwgIWZvcndhcmRzKTsKIAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0QW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgUGxh
dGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVBbmltKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNl
dEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBj
b25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbioga2V5ZnJhbWVB
bmltKQogewogICAgIFZlY3RvcjxmbG9hdD4ga2V5VGltZXM7CiAgICAgVmVjdG9yPGZsb2F0PiB2
YWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25z
OworCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygp
OwogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZUxpc3Quc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gdmFsdWVMaXN0
LmF0KGkpOwotICAgICAgICBrZXlUaW1lcy5hcHBlbmQoY3VyVmFsdWUtPmtleVRpbWUoKSk7Cisg
ICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZm9yd2FyZHMgPyBpIDogKHZhbHVlTGlzdC5zaXplKCkg
LSBpIC0gMSk7CisgICAgICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IHZhbHVl
TGlzdC5hdChpbmRleCk7CisgICAgICAgIGtleVRpbWVzLmFwcGVuZChmb3J3YXJkcyA/IGN1clZh
bHVlLT5rZXlUaW1lKCkgOiAoMSAtIGN1clZhbHVlLT5rZXlUaW1lKCkpKTsKIAogICAgICAgICBz
d2l0Y2ggKHZhbHVlTGlzdC5wcm9wZXJ0eSgpKSB7CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9w
ZXJ0eU9wYWNpdHk6IHsKQEAgLTIwNjksMjQgKzIwODQsMjggQEAgYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnNldEFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVM
aXN0LAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICB0aW1pbmdGdW5j
dGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFu
aW0pKTsKKyAgICAgICAgaWYgKGkgPCAodmFsdWVMaXN0LnNpemUoKSAtIDEpKQorICAgICAgICAg
ICAgdGltaW5nRnVuY3Rpb25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbkZvckFuaW1hdGlvblZhbHVl
KGZvcndhcmRzID8gY3VyVmFsdWUgOiB2YWx1ZUxpc3QuYXQoaW5kZXggLSAxKSwgYW5pbWF0aW9u
KSk7CiAgICAgfQogICAgIAotICAgIC8vIFdlIHRvc3MgdGhlIGxhc3QgdGZBcnJheSB2YWx1ZSBi
ZWNhdXNlIGl0IGhhcyB0byBvbmUgc2hvcnRlciB0aGFuIHRoZSBvdGhlcnMuCi0gICAgdGltaW5n
RnVuY3Rpb25zLnJlbW92ZUxhc3QoKTsKLQogICAgIGtleWZyYW1lQW5pbS0+c2V0S2V5VGltZXMo
a2V5VGltZXMpOwogICAgIGtleWZyYW1lQW5pbS0+c2V0VmFsdWVzKHZhbHVlcyk7Ci0gICAga2V5
ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGltaW5nRnVuY3Rpb25zKTsKKyAgICBrZXlm
cmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7
CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRU
cmFuc2Zvcm1BbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVl
TGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltLCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiBiYXNpY0Fu
aW0sIGludCBmdW5jdGlvbkluZGV4LCBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUg
dHJhbnNmb3JtT3BUeXBlLCBib29sIGlzTWF0cml4QW5pbWF0aW9uLCBjb25zdCBJbnRTaXplJiBi
b3hTaXplKQorYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNldFRyYW5zZm9ybUFuaW1hdGlvbkVuZHBv
aW50cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBBbmltYXRpb24q
IGFuaW1hdGlvbiwgUGxhdGZvcm1DQUFuaW1hdGlvbiogYmFzaWNBbmltLCBpbnQgZnVuY3Rpb25J
bmRleCwgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9wVHlwZSwg
Ym9vbCBpc01hdHJpeEFuaW1hdGlvbiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSkKIHsKICAgICBB
U1NFUlQodmFsdWVMaXN0LnNpemUoKSA9PSAyKTsKLSAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlv
blZhbHVlKj4odmFsdWVMaXN0LmF0KDApKTsKLSAgICBjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25W
YWx1ZSogZW5kVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZSo+KHZhbHVlTGlzdC5hdCgxKSk7CisKKyAgICBib29sIGZvcndhcmRzID0gYW5pbWF0aW9uLT5k
aXJlY3Rpb25Jc0ZvcndhcmRzKCk7CisgICAgCisgICAgdW5zaWduZWQgZnJvbUluZGV4ID0gIWZv
cndhcmRzOworICAgIHVuc2lnbmVkIHRvSW5kZXggPSBmb3J3YXJkczsKKyAgICAKKyAgICBjb25z
dCBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSogc3RhcnRWYWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KGZyb21JbmRleCkpOworICAg
IGNvbnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKiBlbmRWYWx1ZSA9IHN0YXRpY19jYXN0PGNv
bnN0IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KHRvSW5kZXgpKTsKICAg
ICAKICAgICBpZiAoaXNNYXRyaXhBbmltYXRpb24pIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggZnJvbVRyYW5zZm9ybSwgdG9UcmFuc2Zvcm07CkBAIC0yMTI4LDkgKzIxNDcsOSBAQCBi
b29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIH0KIAogICAgIC8vIFRoaXMgY29kZXBhdGggaXMg
dXNlZCBmb3IgMi1rZXlmcmFtZSBhbmltYXRpb25zLCBzbyB3ZSBzdGlsbCBuZWVkIHRvIGxvb2sg
aW4gdGhlIHN0YXJ0Ci0gICAgLy8gZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9u
VmFsdWUodmFsdWVMaXN0LmF0KDApLCBhbmltKTsKLSAgICBiYXNpY0FuaW0tPnNldFRpbWluZ0Z1
bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKTsKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2
ZW4gaW4gdGhlIHJldmVyc2luZyBhbmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHBy
b3ZpZGVzIHRoZSB0aW1pbmcgZnVuY3Rpb24uCisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRp
bWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JBbmltYXRpb25WYWx1ZSh2YWx1ZUxpc3Qu
YXQoMCksIGFuaW1hdGlvbik7CisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1p
bmdGdW5jdGlvbiwgIWZvcndhcmRzKTsKIAogICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVl
RnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24gPSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5z
Zm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9
IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFsdWVGdW5jdGlvbikKQEAgLTIxNDcsOSArMjE2Niwx
MiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVz
KGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIFZlY3RvcjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4gdHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXM7CiAgICAgVmVjdG9yPGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uKj4gdGltaW5nRnVuY3Rpb25zOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1h
dGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJkcygpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHZhbHVlTGlzdC5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZSogY3VyVmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBUcmFuc2Zvcm1BbmltYXRp
b25WYWx1ZSo+KHZhbHVlTGlzdC5hdChpKSk7Ci0gICAgICAgIGtleVRpbWVzLmFwcGVuZChjdXJW
YWx1ZS0+a2V5VGltZSgpKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBmb3J3YXJkcyA/IGkg
OiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsKKyAgICAgICAgY29uc3QgVHJhbnNmb3JtQW5p
bWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAgICAgICAga2V5VGltZXMuYXBwZW5k
KGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgxIC0gY3VyVmFsdWUtPmtleVRpbWUo
KSkpOwogCiAgICAgICAgIGlmIChpc01hdHJpeEFuaW1hdGlvbikgewogICAgICAgICAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwpAQCAtMjE3NywxMyArMjE5OSwxMCBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAg
Y29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gdGltaW5nRnVuY3Rpb25Gb3JB
bmltYXRpb25WYWx1ZShjdXJWYWx1ZSwgYW5pbWF0aW9uKTsKLSAgICAgICAgdGltaW5nRnVuY3Rp
b25zLmFwcGVuZCh0aW1pbmdGdW5jdGlvbik7CisgICAgICAgIGlmIChpIDwgKHZhbHVlTGlzdC5z
aXplKCkgLSAxKSkKKyAgICAgICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGltaW5nRnVu
Y3Rpb25Gb3JBbmltYXRpb25WYWx1ZShmb3J3YXJkcyA/IGN1clZhbHVlIDogdmFsdWVMaXN0LmF0
KGluZGV4IC0gMSksIGFuaW1hdGlvbikpOwogICAgIH0KICAgICAKLSAgICAvLyBXZSB0b3NzIHRo
ZSBsYXN0IHRmQXJyYXkgdmFsdWUgYmVjYXVzZSBpdCBoYXMgdG8gb25lIHNob3J0ZXIgdGhhbiB0
aGUgb3RoZXJzLgotICAgIHRpbWluZ0Z1bmN0aW9ucy5yZW1vdmVMYXN0KCk7Ci0KICAgICBrZXlm
cmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRpbWVzKTsKICAgICAKICAgICBpZiAoaXNUcmFuc2Zv
cm1UeXBlTnVtYmVyKHRyYW5zZm9ybU9wVHlwZSkpCkBAIC0yMTkzLDcgKzIyMTIsNyBAQCBib29s
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0VHJhbnNmb3JtQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiB2YQogICAgIGVsc2UKICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRW
YWx1ZXModHJhbnNmb3JtYXRpb25NYXRyaXhWYWx1ZXMpOwogICAgICAgICAKLSAgICBrZXlmcmFt
ZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1pbmdGdW5jdGlvbnMpOworICAgIGtleWZyYW1l
QW5pbS0+c2V0VGltaW5nRnVuY3Rpb25zKHRpbWluZ0Z1bmN0aW9ucywgIWZvcndhcmRzKTsKIAog
ICAgIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIHZhbHVlRnVuY3Rpb24g
PSBnZXRWYWx1ZUZ1bmN0aW9uTmFtZUZvclRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcFR5
cGUpOwogICAgIGlmICh2YWx1ZUZ1bmN0aW9uICE9IFBsYXRmb3JtQ0FBbmltYXRpb246Ok5vVmFs
dWVGdW5jdGlvbikKQEAgLTIyMDYsMzQgKzIyMjUsMzkgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6
OnNldFRyYW5zZm9ybUFuaW1hdGlvbktleWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYg
dmEKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgY29uc3QgQW5pbWF0aW9uKiBhbmltYXRp
b24sIFBsYXRmb3JtQ0FBbmltYXRpb24qIGJhc2ljQW5pbSwgaW50IGZ1bmN0aW9uSW5kZXgsIGlu
dCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpCiB7CiAgICAgQVNTRVJUKHZhbHVlTGlzdC5z
aXplKCkgPT0gMik7Ci0gICAgCi0gICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGZyb21W
YWx1ZSA9IHN0YXRpY19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0
LmF0KDApKTsKLSAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogdG9WYWx1ZSA9IHN0YXRp
Y19jYXN0PGNvbnN0IEZpbHRlckFuaW1hdGlvblZhbHVlKj4odmFsdWVMaXN0LmF0KDEpKTsKLSAg
ICAKKworICAgIGJvb2wgZm9yd2FyZHMgPSBhbmltYXRpb24tPmRpcmVjdGlvbklzRm9yd2FyZHMo
KTsKKworICAgIHVuc2lnbmVkIGZyb21JbmRleCA9ICFmb3J3YXJkczsKKyAgICB1bnNpZ25lZCB0
b0luZGV4ID0gZm9yd2FyZHM7CisKKyAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogZnJv
bVZhbHVlID0gc3RhdGljX2Nhc3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxp
c3QuYXQoZnJvbUluZGV4KSk7CisgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIHRvVmFs
dWUgPSBzdGF0aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5h
dCh0b0luZGV4KSk7CisKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcGVyYXRpb24g
PSBmcm9tVmFsdWUtPnZhbHVlKCktPmF0KGZ1bmN0aW9uSW5kZXgpOwogICAgIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiogdG9PcGVyYXRpb24gPSB0b1ZhbHVlLT52YWx1ZSgpLT5hdChmdW5jdGlvbklu
ZGV4KTsKLSAgICAKKwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVyT3BlcmF0aW9uPiBkZWZhdWx0
RnJvbU9wZXJhdGlvbjsKICAgICBSZWZQdHI8RGVmYXVsdEZpbHRlck9wZXJhdGlvbj4gZGVmYXVs
dFRvT3BlcmF0aW9uOwotICAgIAorCiAgICAgQVNTRVJUKGZyb21PcGVyYXRpb24gfHwgdG9PcGVy
YXRpb24pOwotICAgIAorCiAgICAgaWYgKCFmcm9tT3BlcmF0aW9uKSB7CiAgICAgICAgIGRlZmF1
bHRGcm9tT3BlcmF0aW9uID0gRGVmYXVsdEZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKHRvT3BlcmF0
aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpOwogICAgICAgICBmcm9tT3BlcmF0aW9uID0gZGVmYXVs
dEZyb21PcGVyYXRpb24uZ2V0KCk7CiAgICAgfQotICAgIAorCiAgICAgaWYgKCF0b09wZXJhdGlv
bikgewogICAgICAgICBkZWZhdWx0VG9PcGVyYXRpb24gPSBEZWZhdWx0RmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUoZnJvbU9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpKTsKICAgICAgICAgdG9P
cGVyYXRpb24gPSBkZWZhdWx0VG9PcGVyYXRpb24uZ2V0KCk7CiAgICAgfQotICAgIAorCiAgICAg
YmFzaWNBbmltLT5zZXRGcm9tVmFsdWUoZnJvbU9wZXJhdGlvbiwgaW50ZXJuYWxGaWx0ZXJQcm9w
ZXJ0eUluZGV4KTsKICAgICBiYXNpY0FuaW0tPnNldFRvVmFsdWUodG9PcGVyYXRpb24sIGludGVy
bmFsRmlsdGVyUHJvcGVydHlJbmRleCk7Ci0gICAgCi0gICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1
c2VkIGZvciAyLWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBp
biB0aGUgc3RhcnQgZm9yIGEgdGltaW5nIGZ1bmN0aW9uLgotICAgIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUodmFs
dWVMaXN0LmF0KDApLCBhbmltYXRpb24pOwotICAgIGJhc2ljQW5pbS0+c2V0VGltaW5nRnVuY3Rp
b24odGltaW5nRnVuY3Rpb24pOworCisgICAgLy8gVGhpcyBjb2RlcGF0aCBpcyB1c2VkIGZvciAy
LWtleWZyYW1lIGFuaW1hdGlvbnMsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbG9vayBpbiB0aGUgc3Rh
cnQKKyAgICAvLyBmb3IgYSB0aW1pbmcgZnVuY3Rpb24uIEV2ZW4gaW4gdGhlIHJldmVyc2luZyBh
bmltYXRpb24gY2FzZSwgdGhlIGZpcnN0IGtleWZyYW1lIHByb3ZpZGVzIHRoZSB0aW1pbmcgZnVu
Y3Rpb24uCisgICAgYmFzaWNBbmltLT5zZXRUaW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbkZv
ckFuaW1hdGlvblZhbHVlKHZhbHVlTGlzdC5hdCgwKSwgYW5pbWF0aW9uKSwgIWZvcndhcmRzKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjI0NSw5ICsyMjY5LDEyIEBAIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjpzZXRGaWx0ZXJBbmltYXRpb25LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1
ZUxpc3QmIHZhbHVlCiAgICAgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4gdGltaW5nRnVu
Y3Rpb25zOwogICAgIFJlZlB0cjxEZWZhdWx0RmlsdGVyT3BlcmF0aW9uPiBkZWZhdWx0T3BlcmF0
aW9uOwogCisgICAgYm9vbCBmb3J3YXJkcyA9IGFuaW1hdGlvbi0+ZGlyZWN0aW9uSXNGb3J3YXJk
cygpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHZhbHVlTGlzdC5zaXplKCk7ICsr
aSkgewotICAgICAgICBjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSogY3VyVmFsdWUgPSBzdGF0
aWNfY2FzdDxjb25zdCBGaWx0ZXJBbmltYXRpb25WYWx1ZSo+KHZhbHVlTGlzdC5hdChpKSk7Ci0g
ICAgICAgIGtleVRpbWVzLmFwcGVuZChjdXJWYWx1ZS0+a2V5VGltZSgpKTsKKyAgICAgICAgdW5z
aWduZWQgaW5kZXggPSBmb3J3YXJkcyA/IGkgOiAodmFsdWVMaXN0LnNpemUoKSAtIGkgLSAxKTsK
KyAgICAgICAgY29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRmlsdGVyQW5pbWF0aW9uVmFsdWUqPih2YWx1ZUxpc3QuYXQoaW5kZXgpKTsKKyAg
ICAgICAga2V5VGltZXMuYXBwZW5kKGZvcndhcmRzID8gY3VyVmFsdWUtPmtleVRpbWUoKSA6ICgx
IC0gY3VyVmFsdWUtPmtleVRpbWUoKSkpOwogCiAgICAgICAgIGlmIChjdXJWYWx1ZS0+dmFsdWUo
KS0+b3BlcmF0aW9ucygpLnNpemUoKSA+IHN0YXRpY19jYXN0PHNpemVfdD4oZnVuY3Rpb25JbmRl
eCkpCiAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGN1clZhbHVlLT52YWx1ZSgpLT5vcGVyYXRp
b25zKClbZnVuY3Rpb25JbmRleF0pOwpAQCAtMjI1NywxNiArMjI4NCwxMyBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6c2V0RmlsdGVyQW5pbWF0aW9uS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiB2YWx1ZQogICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChkZWZhdWx0T3BlcmF0aW9u
KTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5j
dGlvbiA9IHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoY3VyVmFsdWUsIGFuaW1hdGlv
bik7Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9ucy5hcHBlbmQodGltaW5nRnVuY3Rpb24pOworICAg
ICAgICBpZiAoaSA8ICh2YWx1ZUxpc3Quc2l6ZSgpIC0gMSkpCisgICAgICAgICAgICB0aW1pbmdG
dW5jdGlvbnMuYXBwZW5kKHRpbWluZ0Z1bmN0aW9uRm9yQW5pbWF0aW9uVmFsdWUoZm9yd2FyZHMg
PyBjdXJWYWx1ZSA6IHZhbHVlTGlzdC5hdChpbmRleCAtIDEpLCBhbmltYXRpb24pKTsKICAgICB9
CiAgICAgCi0gICAgLy8gV2UgdG9zcyB0aGUgbGFzdCB0aW1pbmcgZnVuY3Rpb24gYmVjYXVzZSBp
dCBoYXMgdG8gYmUgb25lIHNob3J0ZXIgdGhhbiB0aGUgb3RoZXJzLgotICAgIHRpbWluZ0Z1bmN0
aW9ucy5yZW1vdmVMYXN0KCk7Ci0KICAgICBrZXlmcmFtZUFuaW0tPnNldEtleVRpbWVzKGtleVRp
bWVzKTsKICAgICBrZXlmcmFtZUFuaW0tPnNldFZhbHVlcyh2YWx1ZXMsIGludGVybmFsRmlsdGVy
UHJvcGVydHlJbmRleCk7Ci0gICAga2V5ZnJhbWVBbmltLT5zZXRUaW1pbmdGdW5jdGlvbnModGlt
aW5nRnVuY3Rpb25zKTsKKyAgICBrZXlmcmFtZUFuaW0tPnNldFRpbWluZ0Z1bmN0aW9ucyh0aW1p
bmdGdW5jdGlvbnMsICFmb3J3YXJkcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmlt
YXRpb24uaAppbmRleCAyODBkNzYzYjM3ZThlZDhjMmMxZGQ0YTMwMzIzOTRlNjFiYWY0MmQxLi42
YzEyNjMxMTRkMjk5ZDY0YWVmODRkZWE3ZTUxNjg3NzBjNjNhODk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlv
bi5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBGaWxsTW9kZVR5cGUgZmlsbE1vZGUo
KSBjb25zdDsKICAgICB2b2lkIHNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSk7CiAgICAgCi0gICAg
dm9pZCBzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiopOworICAgIHZvaWQg
c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qLCBib29sIHJldmVyc2UgPSBm
YWxzZSk7CiAgICAgdm9pZCBjb3B5VGltaW5nRnVuY3Rpb25Gcm9tKGNvbnN0IFBsYXRmb3JtQ0FB
bmltYXRpb24qKTsKIAogICAgIGJvb2wgaXNSZW1vdmVkT25Db21wbGV0aW9uKCkgY29uc3Q7CkBA
IC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0S2V5VGltZXMoY29uc3QgVmVj
dG9yPGZsb2F0PiYpOwogICAgIHZvaWQgY29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKik7CiAKLSAgICB2b2lkIHNldFRpbWluZ0Z1bmN0aW9ucyhjb25zdCBWZWN0b3I8
Y29uc3QgVGltaW5nRnVuY3Rpb24qPiYpOworICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb25zKGNv
bnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiwgYm9vbCByZXZlcnNlID0gZmFsc2Up
OwogICAgIHZvaWQgY29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiopOwogICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMubW0KaW5kZXggNWNmMTAwNjZhNTBlNDE3ZTE5NDgwY2JmMDNjYWEzZjUyZWYw
M2E2Ny4uY2Q4NTY2OTJiM2NiMTdkNjU4NjdjYWVjNmM4ZDYwZjYwZGI4MjExMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KQEAgLTEzNCwxMyArMTM0LDE5IEBAIHN0YXRpYyBQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FWYWx1ZUZ1bmN0aW9u
VHlwZShOU1N0cmluZyoKIH0KICNlbmRpZgogCi1zdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9u
KiB0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVu
Y3Rpb24pCitzdGF0aWMgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0b0NBTWVkaWFUaW1pbmdGdW5j
dGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24sIGJvb2wgcmV2ZXJzZSkK
IHsKICAgICBBU1NFUlQodGltaW5nRnVuY3Rpb24pOwogICAgIGlmICh0aW1pbmdGdW5jdGlvbi0+
aXNDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKCkpIHsKICAgICAgICAgY29uc3QgQ3ViaWNCZXpp
ZXJUaW1pbmdGdW5jdGlvbiogY3RmID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3ViaWNCZXppZXJUaW1p
bmdGdW5jdGlvbio+KHRpbWluZ0Z1bmN0aW9uKTsKLSAgICAgICAgcmV0dXJuIFtDQU1lZGlhVGlt
aW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoQ29udHJvbFBvaW50czpzdGF0aWNfY2FzdDxmbG9hdD4o
Y3RmLT54MSgpKSA6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTEoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzdGF0aWNf
Y2FzdDxmbG9hdD4oY3RmLT54MigpKSA6c3RhdGljX2Nhc3Q8ZmxvYXQ+KGN0Zi0+eTIoKSldOwor
ICAgICAgICBmbG9hdCB4MSA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngxKCkpOworICAgICAg
ICBmbG9hdCB5MSA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkxKCkpOworICAgICAgICBmbG9h
dCB4MiA9IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPngyKCkpOworICAgICAgICBmbG9hdCB5MiA9
IHN0YXRpY19jYXN0PGZsb2F0PihjdGYtPnkyKCkpOworICAgICAgICByZXR1cm4gW0NBTWVkaWFU
aW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9sUG9pbnRzOihyZXZlcnNlID8gMSAtIHgy
IDogeDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6KHJldmVyc2UgPyAxIC0geTIgOiB5MSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoocmV2ZXJzZSA/
IDEgLSB4MSA6IHgyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOihyZXZlcnNlID8gMSAtIHkxIDogeTIpXTsKICAgICB9CiAg
ICAgCiAgICAgcmV0dXJuIFtDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTpr
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uTGluZWFyXTsKQEAgLTMwNiw5ICszMTIsOSBAQCB2b2lkIFBs
YXRmb3JtQ0FBbmltYXRpb246OnNldEZpbGxNb2RlKEZpbGxNb2RlVHlwZSB2YWx1ZSkKICAgICBb
bV9hbmltYXRpb24uZ2V0KCkgc2V0RmlsbE1vZGU6dG9DQUZpbGxNb2RlVHlwZSh2YWx1ZSldOwog
fQogCi12b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB2YWx1ZSkKK3ZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5n
RnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlLCBib29sIHJldmVyc2UpCiB7Ci0g
ICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9uOnRvQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uKHZhbHVlKV07CisgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFRpbWluZ0Z1bmN0aW9u
OnRvQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKHZhbHVlLCByZXZlcnNlKV07CiB9CiAKIHZvaWQgUGxh
dGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uRnJvbShjb25zdCBQbGF0Zm9ybUNB
QW5pbWF0aW9uKiB2YWx1ZSkKQEAgLTY5NCwxMiArNzAwLDEyIEBAIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6Y29weUtleVRpbWVzRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWx1
ZSkKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1hdGlvbio+KG1fYW5pbWF0aW9uLmdl
dCgpKSBzZXRLZXlUaW1lczpbb3RoZXIga2V5VGltZXNdXTsKIH0KIAotdm9pZCBQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKj4mIHZhbHVlKQordm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5j
dGlvbnMoY29uc3QgVmVjdG9yPGNvbnN0IFRpbWluZ0Z1bmN0aW9uKj4mIHZhbHVlLCBib29sIHJl
dmVyc2UpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkqIGFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFy
cmF5XTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmFsdWUuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIFthcnJheSBhZGRPYmplY3Q6dG9DQU1lZGlhVGltaW5nRnVuY3Rpb24odmFsdWVbaV0p
XTsKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b0NBTWVkaWFUaW1pbmdGdW5jdGlvbih2YWx1
ZVtpXSwgcmV2ZXJzZSldOwogICAgIAogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0
aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczphcnJheV07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUFuaW1hdGlvbldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKaW5kZXggOTQ0Mjg4Y2E3OTZiYWNmZjZm
ZDBkMmVmYzFhOTE5ZTcyYTcxN2UxYS4uNGE3MWZlNWYyMWQ3NDdkNWZjOGMyMDNlM2YwMmNkZWVi
Y2ZlZjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcApAQCAtMjg4LDgg
KzI4OCw5IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0RmlsbE1vZGUoRmlsbE1vZGVU
eXBlIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRGaWxsTW9kZShtX2FuaW1hdGlvbi5nZXQo
KSwgdG9DQUNGRmlsbE1vZGVUeXBlKHZhbHVlKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1h
dGlvbjo6c2V0VGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24qIHZhbHVlKQordm9p
ZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpzZXRUaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5j
dGlvbiogdmFsdWUsIGJvb2wgcmV2ZXJzZSkKIHsKKyAgICBVTlVTRURfUEFSQU0ocmV2ZXJzZSk7
CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0aW9uKG1fYW5pbWF0aW9uLmdldCgpLCB0
b0NBQ0ZUaW1pbmdGdW5jdGlvbih2YWx1ZSkuZ2V0KCkpOwogfQogCkBAIC01MzMsOCArNTM0LDkg
QEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5S2V5VGltZXNGcm9tKGNvbnN0IFBsYXRm
b3JtQ0FBbmltYXRpb24qIHZhbHVlKQogICAgIENBQ0ZBbmltYXRpb25TZXRLZXlUaW1lcyhtX2Fu
aW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldEtleVRpbWVzKHZhbHVlLT5wbGF0Zm9ybUFu
aW1hdGlvbigpKSk7CiB9CiAKLXZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVu
Y3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25zdCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZSkKK3ZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VGltaW5nRnVuY3Rpb25zKGNvbnN0IFZlY3Rvcjxjb25z
dCBUaW1pbmdGdW5jdGlvbio+JiB2YWx1ZSwgYm9vbCByZXZlcnNlKQogeworICAgIFVOVVNFRF9Q
QVJBTShyZXZlcnNlKTsKICAgICBpZiAoYW5pbWF0aW9uVHlwZSgpICE9IEtleWZyYW1lKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MjA0N2Q0YjY1NWU0N2Q4MWFjMDUyYzEzOWM0NjI4ZGIx
ZDU4ZTZmLi44MjY4ZTgzYjNhYTU1ZjY0MGY4OTU5YWU0ZjMxNDFlYThmYzZkMDYzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTItMDQtMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgorCisgICAgICAgIFN1cHBvcnQgcmV2ZXJzZSBhbmQgYWx0ZXJuYXRlLXJldmVyc2UgaW4gQ0Eg
YW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzgwNDEKKworICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgorCisgICAgICAgIFRl
c3RzIHN1cHBvcnQgZm9yIHJldmVyc2UgYW5kIGFsdGVybmF0ZS1yZXZlcnNlIGFuaW1hdGlvbnMg
b24KKyAgICAgICAgQ29yZUFuaW1hdGlvbiBvYmplY3RzLCBhcyB3ZWxsIGFzIGZpbGxpbmcgb3V0
IHNvbWUgb2YgdGhlIHNvZnR3YXJlCisgICAgICAgIGFuaW1hdG9yIHRlc3RzLiBUaGVyZSBhcmUg
dGhyZWUgdmFyaWFibGVzIHRvIGV4ZXJjaXNlOiByZXZlcnNlIHZzCisgICAgICAgIGZvcndhcmQg
ZGlyZWN0aW9uIGFuaW1hdGlvbnMsIHdoZXRoZXIgcmV2ZXJzZWQgdGltaW5nIGZ1bmN0aW9ucyBh
cmUKKyAgICAgICAgaW52ZXJ0ZWQgY29ycmVjdGx5LCBhbmQgdGhhdCBmaWxsIG1vZGUgcmVzcGVj
dHMgdGhlIGRpcmVjdGlvbiBvZgorICAgICAgICBhbmltYXRpb24uCisKKyAgICAgICAgUmVmYWN0
b3JlZCB0aGUgYW5pbWF0aW9uIHRlc3QgaGVscGVyIGNsYXNzIHNvIHdlIGNvdWxkIHJldXNlCisg
ICAgICAgIHByb3BlcnR5IHBhcnNpbmcgYW5kIGV2YWx1YXRpb24uCisKKyAgICAgICAgKiBhbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJz
ZS1maWxsLW1vZGUtaGFyZHdhcmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtZmlsbC1tb2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9u
LWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUtb3BhY2l0
eS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLW9wYWNpdHkuaHRtbDogQWRkZWQuCisgICAgICAgICog
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9u
LWhhcmR3YXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2Utbm9uLWhhcmR3YXJlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGFuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhhcmR3YXJlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
dGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBl
cnMuanM6CisgICAgICAgIChjaGVja0V4cGVjdGVkVmFsdWUpOgorICAgICAgICAoZ2V0UHJvcGVy
dHlWYWx1ZSk6CisgICAgICAgIChjb21wYXJlUHJvcGVydHlWYWx1ZSk6CisKIDIwMTItMDQtMjMg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTQ5NjUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
ZmlsbC1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWMwNmQ2Y2E4MjkyZmI4YzdiYTMz
ZWI0MWRmZTQxZjY3NDI5MjBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0aW9uIG9mIHRoZSBs
ZWZ0IHByb3BlcnR5IHdpdGggZm91ciBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMg
b3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LiBJdCB0YWtlcyBzbmFwc2hv
dHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLgorTm9uZQor
QmFja3dhcmRzCitGb3J3YXJkcworQm90aAorQm90aCBpdGVyYXRpbmcKK1BBU1MgLSBzdGFydCBv
ZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVhbDogMTAwCitQQVNTIC0gc3Rh
cnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IDMwMAorUEFTUyAt
IHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiBjIGV4cGVjdGVkOiAxMDAgYWN0dWFsOiAxMDAKK1BB
U1MgLSBzdGFydCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMzAwIGFjdHVhbDogMzAw
CitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGUgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6
IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogYSBleHBlY3RlZDogMTAwIGFjdHVh
bDogMTAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBiIGV4cGVjdGVkOiAxMDAgYWN0
dWFsOiAxMDAKK1BBU1MgLSBlbmQgb2YgYW5pbWF0aW9uIC0gaWQ6IGMgZXhwZWN0ZWQ6IDMwMCBh
Y3R1YWw6IDMwMAorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBpZDogZCBleHBlY3RlZDogMzAw
IGFjdHVhbDogMzAwCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBlIGV4cGVjdGVkOiAz
MDAgYWN0dWFsOiAzMDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwt
bW9kZS1oYXJkd2FyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk5MjU4MmY0Mzg2N2YyMTRk
YmFlZTE4ZGM4YjE0OWU2MjM0ZjQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWZpbGwtbW9kZS1oYXJkd2FyZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYW4gYW5pbWF0
aW9uIG9mIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgd2l0aCBkaWZmZXJlbnQgZmlsbCBtb2Rlcy4g
SXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGggYSAwLjEgc2Vjb25kIGRlbGF5LiBJdCB0
YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0
aW9ucy4KK0JvdGggSXRlcmF0ZSAtIFJldmVyc2UKK0JvdGggSXRlcmF0ZSAtIEFsdGVybmF0ZSBS
ZXZlcnNlCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6IGEgZXhwZWN0ZWQ6IDMwMCBh
Y3R1YWw6IG1hdHJpeCgxLCAwLCAwLCAxLCAzMDAsIDApCitQQVNTIC0gc3RhcnQgb2YgYW5pbWF0
aW9uIC0gaWQ6IGIgZXhwZWN0ZWQ6IDMwMCBhY3R1YWw6IG1hdHJpeCgxLCAwLCAwLCAxLCAzMDAs
IDApCitQQVNTIC0gZW5kIG9mIGFuaW1hdGlvbiAtIGlkOiBhIGV4cGVjdGVkOiAyMDAgYWN0dWFs
OiBtYXRyaXgoMSwgMCwgMCwgMSwgMjAwLCAwKQorUEFTUyAtIGVuZCBvZiBhbmltYXRpb24gLSBp
ZDogYiBleHBlY3RlZDogMzAwIGFjdHVhbDogbWF0cml4KDEsIDAsIDAsIDEsIDMwMCwgMCkKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJl
dmVyc2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2Fu
aW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxsLW1vZGUtaGFyZHdhcmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZDMyZmViOTRjNGNlY2YwNmI3YWI0MjllOWZmNmQ3ZTVmMWY3MWQxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVy
c2UtZmlsbC1tb2RlLWhhcmR3YXJlLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3Qgc2ltcGxlIGZpbGwgbW9kZSBvbiB0
cmFuc2Zvcm08L3RpdGxlPgorICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgICBsZWZ0OiAxMHB4OworICAgICAgdG9wOiAxMHB4OworICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGUzZCgxMDBweCwgMCwgMCk7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxh
eTogMC4xczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjFzOworICAgICAg
LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0
LWFuaW1hdGlvbi1uYW1lOiBhbmltOworICAgIH0KKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW5p
bSB7CisgICAgICAgIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwcHgs
IDAsIDApOyB9CisgICAgICAgIHRvICAgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2Qo
MzAwcHgsIDAsIDApOyB9CisgICAgfQorICAgICNhIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
ICNmOTk7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgICAtd2Via2l0LWFuaW1h
dGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91
bmQtY29sb3I6ICM5OTk7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7
CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDI7CisgICAgICAtd2Vi
a2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZS1yZXZlcnNlOworICAgIH0KKyAgPC9z
dHlsZT4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBudW1BbmltcyA9IDE7CisgICAgdmFy
IGFuaW1zRmluaXNoZWQgPSAwOworICAgIGNvbnN0IGFsbG93YW5jZSA9IDU7CisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICB7aWQ6ICJhIiwgc3RhcnQ6IDMwMCwgZW5kOiAyMDB9
LAorICAgICAge2lkOiAiYiIsIHN0YXJ0OiAzMDAsIGVuZDogMzAwfQorICAgIF07CisgICAgdmFy
IHJlc3VsdCA9ICIiOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBh
bmltYXRpb25FbmRlZChldmVudCkgeworICAgICAgICBpZiAoKythbmltc0ZpbmlzaGVkID09IG51
bUFuaW1zKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGVuZFRlc3QsIDApOyAvLyBUaGlzIGNh
bGwgdG8gc2V0VGltZW91dCBzaG91bGQgYmUgb2sgaW4gdGhlIHRlc3QgZW52aXJvbm1lbnQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlJ3JlIGp1c3QgZ2l2
aW5nIHN0eWxlIGEgY2hhbmNlIHRvIHJlc29sdmUuCisgICAgICAgIH0KKyAgICB9OworCisgICAg
ZnVuY3Rpb24gZW5kVGVzdCgpIHsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVj
dGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgcmVhbFZhbHVlID0gZ2V0
UHJvcGVydHlWYWx1ZSgid2Via2l0VHJhbnNmb3JtLjQiLCBleHBlY3RlZFZhbHVlc1tpXS5pZCk7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLmVuZDsK
KyAgICAgICAgICAgIGlmIChjb21wYXJlUHJvcGVydHlWYWx1ZSgid2Via2l0VHJhbnNmb3JtLjQi
LCByZWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUsIGFsbG93YW5jZSkpCisgICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgcmVzdWx0ICs9ICIgLSBlbmQgb2YgYW5pbWF0aW9u
IC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3Rl
ZFZhbHVlICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICAgIH0KKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3Vs
dDsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICAKKyAgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBl
eHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgIHZhciByZWFsVmFsdWUgPSBn
ZXRQcm9wZXJ0eVZhbHVlKCJ3ZWJraXRUcmFuc2Zvcm0uNCIsIGV4cGVjdGVkVmFsdWVzW2ldLmlk
KTsKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWVzW2ldLnN0YXJ0
OworICAgICAgICAgIGlmIChjb21wYXJlUHJvcGVydHlWYWx1ZSgid2Via2l0VHJhbnNmb3JtLjQi
LCByZWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUsIGFsbG93YW5jZSkpCisgICAgICAgICAgICAgIHJl
c3VsdCArPSAiUEFTUyI7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICByZXN1bHQgKz0g
IkZBSUwiOworICAgICAgICAgIHJlc3VsdCArPSAiIC0gc3RhcnQgb2YgYW5pbWF0aW9uIC0gaWQ6
ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFZhbHVl
ICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICB9CisgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRBbmltYXRpb25FbmQiLCBhbmltYXRpb25FbmRl
ZCwgZmFsc2UpOworICAgIH07CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMg
dGVzdCBwZXJmb3JtcyBhbiBhbmltYXRpb24gb2YgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSB3aXRo
IGRpZmZlcmVudAorZmlsbCBtb2Rlcy4gSXQgYW5pbWF0ZXMgb3ZlciAwLjEgc2Vjb25kIHdpdGgg
YSAwLjEgc2Vjb25kIGRlbGF5LgorSXQgdGFrZXMgc25hcHNob3RzIGF0IGRvY3VtZW50IGxvYWQg
YW5kIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbnMuCis8ZGl2IGlkPSJhIiBjbGFzcz0iYm94Ij4K
KyAgQm90aCBJdGVyYXRlIC0gUmV2ZXJzZQorPC9kaXY+Cis8ZGl2IGlkPSJiIiBjbGFzcz0iYm94
Ij4KKyAgQm90aCBJdGVyYXRlIC0gQWx0ZXJuYXRlIFJldmVyc2UKKzwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1maWxs
LW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjNjMmUxYWY2MWMxOTc3ODE3ZjRmMDNlZTdiYWI4NzE3
NTc4YzA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tZGlyZWN0aW9uLXJldmVyc2UtZmlsbC1tb2RlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IGFu
aW1hdGlvbiBkaXJlY3Rpb24gcmV2ZXJzZSB3aXRoIGZpbGwgbW9kZXM8L3RpdGxlPgorICA8c3R5
bGU+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAx
MDBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xczsKKyAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRp
bWluZy1mdW5jdGlvbjogbGluZWFyOworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYW5p
bTsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9Cisg
ICAgQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0geworICAgICAgICBmcm9tIHsgbGVmdDogMjAwcHg7
IH0KKyAgICAgICAgdG8gICB7IGxlZnQ6IDMwMHB4OyB9CisgICAgfQorICAgICNhIHsKKyAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1v
ZGU6IG5vbmU7CisgICAgfQorICAgICNiIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzOworICAgIH0KKyAg
ICAjYyB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7CisgICAgfQorICAgICNkIHsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTog
Ym90aDsKKyAgICB9CisgICAgI2UgeworICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVj
dGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGNvbnN0IG51
bUFuaW1zID0gNTsKKyAgICB2YXIgYW5pbXNGaW5pc2hlZCA9IDA7CisgICAgY29uc3QgYWxsb3dh
bmNlID0gNTsKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIHtpZDogImEiLCBz
dGFydDogMTAwLCBlbmQ6IDEwMH0sCisgICAgICB7aWQ6ICJiIiwgc3RhcnQ6IDMwMCwgZW5kOiAx
MDB9LAorICAgICAge2lkOiAiYyIsIHN0YXJ0OiAxMDAsIGVuZDogMzAwfSwKKyAgICAgIHtpZDog
ImQiLCBzdGFydDogMzAwLCBlbmQ6IDMwMH0sCisgICAgICB7aWQ6ICJlIiwgc3RhcnQ6IDMwMCwg
ZW5kOiAzMDB9CisgICAgXTsKKyAgICB2YXIgcmVzdWx0ID0gIiI7CisKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZGVkKGV2ZW50KSB7CisgICAgICAg
IGlmICgrK2FuaW1zRmluaXNoZWQgPT0gbnVtQW5pbXMpIHsKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZW5kVGVzdCwgMCk7IC8vIFRoaXMgY2FsbCB0byBzZXRUaW1lb3V0IHNob3VsZCBiZSBvayBp
biB0aGUgdGVzdCBlbnZpcm9ubWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gc2luY2Ugd2UncmUganVzdCBnaXZpbmcgc3R5bGUgYSBjaGFuY2UgdG8gcmVzb2x2ZS4K
KyAgICAgICAgfQorICAgIH07CisKKyAgICBmdW5jdGlvbiBlbmRUZXN0KCkgeworCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgIHZhciByZWFsVmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKCJsZWZ0IiwgZXhwZWN0ZWRW
YWx1ZXNbaV0uaWQpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZh
bHVlc1tpXS5lbmQ7CisgICAgICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUoImxlZnQi
LCByZWFsVmFsdWUsIGV4cGVjdGVkVmFsdWUsIGFsbG93YW5jZSkpCisgICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICJQQVNTIjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXN1
bHQgKz0gIkZBSUwiOworICAgICAgICAgICAgcmVzdWx0ICs9ICIgLSBlbmQgb2YgYW5pbWF0aW9u
IC0gaWQ6ICIgKyBleHBlY3RlZFZhbHVlc1tpXS5pZCArICIgZXhwZWN0ZWQ6ICIgKyBleHBlY3Rl
ZFZhbHVlICsgIiBhY3R1YWw6ICIgKyByZWFsVmFsdWUgKyAiPGJyPiI7CisgICAgICAgIH0KKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9IHJlc3Vs
dDsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhw
ZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciByZWFsVmFsdWUgPSBn
ZXRQcm9wZXJ0eVZhbHVlKCJsZWZ0IiwgZXhwZWN0ZWRWYWx1ZXNbaV0uaWQpOworICAgICAgICAg
ICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBleHBlY3RlZFZhbHVlc1tpXS5zdGFydDsKKyAgICAgICAg
ICAgIGlmIChjb21wYXJlUHJvcGVydHlWYWx1ZSgibGVmdCIsIHJlYWxWYWx1ZSwgZXhwZWN0ZWRW
YWx1ZSwgYWxsb3dhbmNlKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MiOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiRkFJTCI7CisgICAgICAg
ICAgICByZXN1bHQgKz0gIiAtIHN0YXJ0IG9mIGFuaW1hdGlvbiAtIGlkOiAiICsgZXhwZWN0ZWRW
YWx1ZXNbaV0uaWQgKyAiIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYWN0dWFsOiAi
ICsgcmVhbFZhbHVlICsgIjxicj4iOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoIndlYmtpdEFuaW1hdGlvbkVuZCIsIGFuaW1hdGlvbkVuZGVkLCBmYWxzZSk7
CisgICAgfTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IHBlcmZv
cm1zIGFuIGFuaW1hdGlvbiBvZiB0aGUgbGVmdCBwcm9wZXJ0eSB3aXRoIGZvdXIgZGlmZmVyZW50
CitmaWxsIG1vZGVzLiBJdCBhbmltYXRlcyBvdmVyIDAuMSBzZWNvbmQgd2l0aCBhIDAuMSBzZWNv
bmQgZGVsYXkuCitJdCB0YWtlcyBzbmFwc2hvdHMgYXQgZG9jdW1lbnQgbG9hZCBhbmQgdGhlIGVu
ZCBvZiB0aGUgYW5pbWF0aW9uLgorPGRpdiBpZD0iYSIgY2xhc3M9ImJveCI+CisgIE5vbmUKKzwv
ZGl2PgorPGRpdiBpZD0iYiIgY2xhc3M9ImJveCI+CisgIEJhY2t3YXJkcworPC9kaXY+Cis8ZGl2
IGlkPSJjIiBjbGFzcz0iYm94Ij4KKyAgRm9yd2FyZHMKKzwvZGl2PgorPGRpdiBpZD0iZCIgY2xh
c3M9ImJveCI+CisgIEJvdGgKKzwvZGl2PgorPGRpdiBpZD0iZSIgY2xhc3M9ImJveCI+CisgIEJv
dGggaXRlcmF0aW5nCis8L2Rpdj4KKzxkaXYgaWQ9InJlc3VsdCI+Cis8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yOTQ3MGVjNDQ5YWQ3ODVjY2ZlMjk1ZDA0YjhjOWU2NDk5YmE1M2Q4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9u
LXJldmVyc2UtaGFyZHdhcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKKzIga2V5ZnJh
bWVzOiBub3JtYWwKKzIga2V5ZnJhbWVzOiBhbHRlcm5hdGUKKzIga2V5ZnJhbWVzOiByZXZlcnNl
CisyIGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2UKKzQga2V5ZnJhbWVzOiBub3JtYWwKKzQg
a2V5ZnJhbWVzOiBhbHRlcm5hdGUKKzQga2V5ZnJhbWVzOiByZXZlcnNlCis0IGtleWZyYW1lczog
YWx0ZXJuYXRlLXJldmVyc2UKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3Ig
ImJveDEiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIw
LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQg
YXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDIwLDAKK1BBU1MgLSAid2Vi
a2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIg
cHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAi
Ym94MSIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMjAs
MAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVudCBh
dCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Vi
a2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDMiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIg
cHJvcGVydHkgZm9yICJib3g0IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMSwwLDAsMSwyMCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJi
b3g1IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSw0MCww
CitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50IGF0
IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSw0MCwwCitQQVNTIC0gIndlYmtp
dFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g3IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHBy
b3BlcnR5IGZvciAiYm94OCIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDEsMCwwLDEsMTgwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJv
eDUiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDQwLDAK
K1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveDYiIGVsZW1lbnQgYXQg
Mi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE4MCwwCitQQVNTIC0gIndlYmtp
dFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3g3IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxODAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHBy
b3BlcnR5IGZvciAiYm94OCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDEsMCwwLDEsNDAsMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3YXJl
LW9wYWNpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzODNlYThhZTQyMmZjYzVlMDMzNjFh
OGJiMzQzNDI0NDNiZWM5YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI1IEBACisyIGtleWZyYW1lczogbm9ybWFsCisyIGtleWZyYW1lczog
YWx0ZXJuYXRlCisyIGtleWZyYW1lczogcmV2ZXJzZQorMiBrZXlmcmFtZXM6IGFsdGVybmF0ZS1y
ZXZlcnNlCis0IGtleWZyYW1lczogbm9ybWFsCis0IGtleWZyYW1lczogYWx0ZXJuYXRlCis0IGtl
eWZyYW1lczogcmV2ZXJzZQorNCBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlCitQQVNTIC0g
Im9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94MSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDAuMgorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVs
ZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjIKK1BBU1MgLSAib3BhY2l0
eSIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9z
ZSB0bzogMC44CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBh
dCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuOAorUEFTUyAtICJvcGFjaXR5IiBwcm9w
ZXJ0eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAw
LjIKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50IGF0IDEuMnMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC44CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZv
ciAiYm94MyIgZWxlbWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuOAorUEFT
UyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAwLjIKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g1
IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC40CitQQVNTIC0gIm9w
YWNpdHkiIHByb3BlcnR5IGZvciAiYm94NiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDAuNAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveDciIGVsZW1l
bnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjcKK1BBU1MgLSAib3BhY2l0eSIg
cHJvcGVydHkgZm9yICJib3g4IiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMC43CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAx
LjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0
eSBmb3IgImJveDYiIGVsZW1lbnQgYXQgMS4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjcK
K1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3g3IiBlbGVtZW50IGF0IDEuMnMgc2F3
IHNvbWV0aGluZyBjbG9zZSB0bzogMC43CitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAi
Ym94OCIgZWxlbWVudCBhdCAxLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJz
ZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS1vcGFjaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRj
YjQ0MDUzYTBjMjE1YWUwNjNhMTAwMTM0Y2ViOTUxYTE1YTcyMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLWhhcmR3
YXJlLW9wYWNpdHkuaHRtbApAQCAtMCwwICsxLDk5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbiBv
biBjb21wb3NpdGVkIGVsZW1lbnRzIChvcGFjaXR5KTwvdGl0bGU+CisgIDxzdHlsZT4KKyAgICBi
b2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsKKyAgICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6IDEwcHg7CisgICAg
ICBoZWlnaHQ6IDUwcHg7CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBtYXJnaW4tYm90dG9t
OiAxMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzOworICAgICAgLXdl
YmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDg7CisgICAgfQorICAgIAorICAgIC5mYWRlMSB7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlMTsKKyAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAgLmZhZGUyIHsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGUyOworICAgICAgYmFja2dyb3VuZC1jb2xv
cjogb3JhbmdlOworICAgIH0KKworICAgIC5ub3JtYWwgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tZGlyZWN0aW9uOiBub3JtYWw7CisgICAgfQorCisgICAgLmFsdGVybmF0ZSB7CisgICAgICAt
d2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTsKKyAgICB9CisKKyAgICAucmV2
ZXJzZSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7CisgICAg
fQorCisgICAgLmFsdGVybmF0ZS1yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRp
cmVjdGlvbjogYWx0ZXJuYXRlLXJldmVyc2U7CisgICAgfQorICAgIAorICAgIEAtd2Via2l0LWtl
eWZyYW1lcyBmYWRlMSB7CisgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfQorICAgICAgdG8geyBv
cGFjaXR5OiAxLjA7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZTIgewor
ICAgICAgMCUgeyBvcGFjaXR5OiAwLjA7IH0KKyAgICAgIDQwJSB7IG9wYWNpdHk6IDAuODsgfQor
ICAgICAgNjAlIHsgb3BhY2l0eTogMC40OyB9CisgICAgICAxMDAlIHsgb3BhY2l0eTogMS4wOyB9
CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10
ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAgIGNvbnN0IGV4cGVjdGVk
VmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBw
cm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsiZmFkZTEiLCAwLjIs
ICJib3gxIiwgIm9wYWNpdHkiLCAwLjIsIDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDAuMiwgImJv
eDIiLCAib3BhY2l0eSIsIDAuMiwgMC4xNV0sCisgICAgICBbImZhZGUxIiwgMC4yLCAiYm94MyIs
ICJvcGFjaXR5IiwgMC44LCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAwLjIsICJib3g0IiwgIm9w
YWNpdHkiLCAwLjgsIDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDEuMiwgImJveDEiLCAib3BhY2l0
eSIsIDAuMiwgMC4xNV0sCisgICAgICBbImZhZGUxIiwgMS4yLCAiYm94MiIsICJvcGFjaXR5Iiwg
MC44LCAwLjE1XSwKKyAgICAgIFsiZmFkZTEiLCAxLjIsICJib3gzIiwgIm9wYWNpdHkiLCAwLjgs
IDAuMTVdLAorICAgICAgWyJmYWRlMSIsIDEuMiwgImJveDQiLCAib3BhY2l0eSIsIDAuMiwgMC4x
NV0sCisgICAgICBbImZhZGUyIiwgMC4yLCAiYm94NSIsICJvcGFjaXR5IiwgMC40LCAwLjE1XSwK
KyAgICAgIFsiZmFkZTIiLCAwLjIsICJib3g2IiwgIm9wYWNpdHkiLCAwLjQsIDAuMTVdLAorICAg
ICAgWyJmYWRlMiIsIDAuMiwgImJveDciLCAib3BhY2l0eSIsIDAuNywgMC4xNV0sCisgICAgICBb
ImZhZGUyIiwgMC4yLCAiYm94OCIsICJvcGFjaXR5IiwgMC43LCAwLjE1XSwKKyAgICAgIFsiZmFk
ZTIiLCAxLjIsICJib3g1IiwgIm9wYWNpdHkiLCAwLjQsIDAuMTVdLAorICAgICAgWyJmYWRlMiIs
IDEuMiwgImJveDYiLCAib3BhY2l0eSIsIDAuNywgMC4xNV0sCisgICAgICBbImZhZGUyIiwgMS4y
LCAiYm94NyIsICJvcGFjaXR5IiwgMC43LCAwLjE1XSwKKyAgICAgIFsiZmFkZTIiLCAxLjIsICJi
b3g4IiwgIm9wYWNpdHkiLCAwLjQsIDAuMTVdLAorICAgIF07CisKKyAgICBydW5BbmltYXRpb25U
ZXN0KGV4cGVjdGVkVmFsdWVzKTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0iYm94MSIgY2xhc3M9ImJveCBmYWRlMSBub3JtYWwiPjIga2V5ZnJhbWVzOiBub3JtYWw8
L2Rpdj4KKzxkaXYgaWQ9ImJveDIiIGNsYXNzPSJib3ggZmFkZTEgYWx0ZXJuYXRlIj4yIGtleWZy
YW1lczogYWx0ZXJuYXRlPC9kaXY+Cis8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94IGZhZGUxIHJl
dmVyc2UiPjIga2V5ZnJhbWVzOiByZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFzcz0i
Ym94IGZhZGUxIGFsdGVybmF0ZS1yZXZlcnNlIj4yIGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVy
c2U8L2Rpdj4KKzxkaXYgaWQ9ImJveDUiIGNsYXNzPSJib3ggZmFkZTIgbm9ybWFsIj40IGtleWZy
YW1lczogbm9ybWFsPC9kaXY+Cis8ZGl2IGlkPSJib3g2IiBjbGFzcz0iYm94IGZhZGUyIGFsdGVy
bmF0ZSI+NCBrZXlmcmFtZXM6IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94NyIgY2xhc3M9
ImJveCBmYWRlMiByZXZlcnNlIj40IGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0i
Ym94OCIgY2xhc3M9ImJveCBmYWRlMiBhbHRlcm5hdGUtcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IGFs
dGVybmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1oYXJkd2FyZS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtaGFyZHdhcmUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YThiNDI4MjBmZGRhYTBjMzAyNTA1MmYzNWFlNWRmYjUwZmYwNDViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2Ut
aGFyZHdhcmUuaHRtbApAQCAtMCwwICsxLDk5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDx0aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbiBvbiBj
b21wb3NpdGVkIGVsZW1lbnRzPC90aXRsZT4KKyAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAg
bWFyZ2luOiAwOworICAgIH0KKworICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMTBweDsKKyAgICAgIGhlaWdodDogNTBw
eDsKKyAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJh
dGlvbi1jb3VudDogODsKKyAgICB9CisgICAgCisgICAgLm1vdmUxIHsKKyAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLW5hbWU6IG1vdmUxOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAg
ICAgIGNvbG9yOiB3aGl0ZTsKKyAgICB9CisKKyAgICAubW92ZTIgeworICAgICAgLXdlYmtpdC1h
bmltYXRpb24tbmFtZTogbW92ZTI7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cisg
ICAgfQorCisgICAgLm5vcm1hbCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246
IG5vcm1hbDsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0
aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIH0KKworICAgIC5yZXZlcnNlIHsKKyAgICAg
IC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9CisKKyAgICAuYWx0
ZXJuYXRlLXJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRl
cm5hdGUtcmV2ZXJzZTsKKyAgICB9CisgICAgCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1vdmUx
IHsKKyAgICAgIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9Cisg
ICAgICB0byB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMHB4KTsgfQorICAgIH0K
KworICAgIEAtd2Via2l0LWtleWZyYW1lcyBtb3ZlMiB7CisgICAgICAwJSB7IC13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH0KKyAgICAgIDQwJSB7IC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVYKDE2MHB4KTsgfQorICAgICAgNjAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZVgoMTIwcHgpOyB9CisgICAgICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5z
bGF0ZVgoMjAwcHgpOyB9CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAg
IGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1l
LCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAg
IFsibW92ZTEiLCAwLjIsICJib3gxIiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAyMCww
XSwgMjBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDIiLCAid2Via2l0VHJhbnNmb3JtIiwg
WzEsMCwwLDEsIDIwLDBdLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MyIsICJ3ZWJr
aXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMC4y
LCAiYm94NCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMTgwLDBdLCAyMF0sCisgICAg
ICBbIm1vdmUxIiwgMi4yLCAiYm94MSIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwgMjAs
MF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gyIiwgIndlYmtpdFRyYW5zZm9ybSIs
IFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3gzIiwgIndl
YmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTEiLCAy
LjIsICJib3g0IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAyMCwwXSwgMjBdLAorICAg
ICAgWyJtb3ZlMiIsIDAuMiwgImJveDUiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDQw
LDBdLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NiIsICJ3ZWJraXRUcmFuc2Zvcm0i
LCBbMSwwLDAsMSwgNDAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAwLjIsICJib3g3IiwgIndl
YmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAgICAgIFsibW92ZTIiLCAw
LjIsICJib3g4IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCAxODAsMF0sIDIwXSwKKyAg
ICAgIFsibW92ZTIiLCAyLjIsICJib3g1IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA0
MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDYiLCAid2Via2l0VHJhbnNmb3Jt
IiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDciLCAi
d2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDE4MCwwXSwgMjBdLAorICAgICAgWyJtb3ZlMiIs
IDIuMiwgImJveDgiLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDQwLDBdLCAyMF0sCisg
ICAgXTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworCisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94IG1vdmUxIG5v
cm1hbCI+MiBrZXlmcmFtZXM6IG5vcm1hbDwvZGl2PgorPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJv
eCBtb3ZlMSBhbHRlcm5hdGUiPjIga2V5ZnJhbWVzOiBhbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9
ImJveDMiIGNsYXNzPSJib3ggbW92ZTEgcmV2ZXJzZSI+MiBrZXlmcmFtZXM6IHJldmVyc2U8L2Rp
dj4KKzxkaXYgaWQ9ImJveDQiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlLXJldmVyc2UiPjIg
a2V5ZnJhbWVzOiBhbHRlcm5hdGUtcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NSIgY2xhc3M9
ImJveCBtb3ZlMiBub3JtYWwiPjQga2V5ZnJhbWVzOiBub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJv
eDYiIGNsYXNzPSJib3ggbW92ZTIgYWx0ZXJuYXRlIj40IGtleWZyYW1lczogYWx0ZXJuYXRlPC9k
aXY+Cis8ZGl2IGlkPSJib3g3IiBjbGFzcz0iYm94IG1vdmUyIHJldmVyc2UiPjQga2V5ZnJhbWVz
OiByZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g4IiBjbGFzcz0iYm94IG1vdmUyIGFsdGVybmF0
ZS1yZXZlcnNlIj40IGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9
InJlc3VsdCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJk
d2FyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS1ub24taGFyZHdhcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NzFi
OTIxOGZkMDQyZjczNDVlOTQ4NmI0MTlhMjIyMDE2YzkwYmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS1ub24taGFy
ZHdhcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKKzIga2V5ZnJhbWVzOiBub3JtYWwK
KzIga2V5ZnJhbWVzOiBhbHRlcm5hdGUKKzIga2V5ZnJhbWVzOiByZXZlcnNlCisyIGtleWZyYW1l
czogYWx0ZXJuYXRlLXJldmVyc2UKKzQga2V5ZnJhbWVzOiBub3JtYWwKKzQga2V5ZnJhbWVzOiBh
bHRlcm5hdGUKKzQga2V5ZnJhbWVzOiByZXZlcnNlCis0IGtleWZyYW1lczogYWx0ZXJuYXRlLXJl
dmVyc2UKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDAuMnMg
c2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJi
b3gyIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMjAKK1BBU1MgLSAi
bGVmdCIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBj
bG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBh
dCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0
eSBmb3IgImJveDEiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAyMAor
UEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gzIiBl
bGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQi
IHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDIwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NSIgZWxlbWVudCBhdCAwLjJz
IHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAi
Ym94NiIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDQwCitQQVNTIC0g
ImxlZnQiIHByb3BlcnR5IGZvciAiYm94NyIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDgiIGVsZW1lbnQg
YXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxODAKK1BBU1MgLSAibGVmdCIgcHJvcGVy
dHkgZm9yICJib3g1IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogNDAK
K1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3g2IiBlbGVtZW50IGF0IDIuMnMgc2F3IHNv
bWV0aGluZyBjbG9zZSB0bzogMTgwCitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NyIg
ZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4MAorUEFTUyAtICJsZWZ0
IiBwcm9wZXJ0eSBmb3IgImJveDgiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiA0MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tcmV2ZXJzZS1ub24taGFyZHdhcmUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLW5vbi1oYXJkd2FyZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3M2MyZTRhYTg1NWIyZDA4NDMyNDRhYmY2YjVmNTMwZjlmZDU0YzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJz
ZS1ub24taGFyZHdhcmUuaHRtbApAQCAtMCwwICsxLDk5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UZXN0IG9mIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
biByZXZlcnNlIG9uIG5vbi1jb21wb3NpdGVkIGVsZW1lbnRzPC90aXRsZT4KKyAgPHN0eWxlPgor
ICAgIGJvZHkgeworICAgICAgbWFyZ2luOiAwOworICAgIH0KKworICAgIC5ib3ggeworICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDogMjBweDsKKyAgICAgIHRvcDogMTBweDsK
KyAgICAgIGhlaWdodDogNTBweDsKKyAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgIG1hcmdpbi1i
b3R0b206IDEwcHg7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7CisgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogODsKKyAgICB9CisgICAgCisgICAgLm1vdmUx
IHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG1vdmUxOworICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKKyAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICB9CisKKyAgICAubW92ZTIg
eworICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbW92ZTI7CisgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBvcmFuZ2U7CisgICAgfQorCisgICAgLm5vcm1hbCB7CisgICAgICAtd2Via2l0LWFu
aW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRlIHsKKyAg
ICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogYWx0ZXJuYXRlOworICAgIH0KKworICAg
IC5yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsK
KyAgICB9CisKKyAgICAuYWx0ZXJuYXRlLXJldmVyc2UgeworICAgICAgLXdlYmtpdC1hbmltYXRp
b24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJzZTsKKyAgICB9CisgICAgCisgICAgQC13ZWJr
aXQta2V5ZnJhbWVzIG1vdmUxIHsKKyAgICAgIGZyb20geyBsZWZ0OiAwcHg7IH0KKyAgICAgIHRv
IHsgbGVmdDogMjAwcHg7IH0KKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgbW92ZTIg
eworICAgICAgMCUgeyBsZWZ0OiAwcHg7IH0KKyAgICAgIDQwJSB7IGxlZnQ6IDE2MHB4OyB9Cisg
ICAgICA2MCUgeyBsZWZ0OiAxMjBweDsgfQorICAgICAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Cisg
ICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0
LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0PgorICAgIGNvbnN0IGV4cGVjdGVkVmFs
dWVzID0gWworICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9w
ZXJ0eSwgZXhwZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgIFsibW92ZTEiLCAwLjIsICJi
b3gxIiwgImxlZnQiLCAgMjAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gyIiwgImxl
ZnQiLCAgMjAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAwLjIsICJib3gzIiwgImxlZnQiLCAgMTgw
LCAyMF0sCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94NCIsICJsZWZ0IiwgIDE4MCwgMjBdLAor
ICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDEiLCAibGVmdCIsICAyMCwgMjBdLAorICAgICAgWyJt
b3ZlMSIsIDIuMiwgImJveDIiLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92ZTEiLCAy
LjIsICJib3gzIiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94
NCIsICJsZWZ0IiwgIDIwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NSIsICJsZWZ0
IiwgIDQwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NiIsICJsZWZ0IiwgIDQwLCAy
MF0sCisgICAgICBbIm1vdmUyIiwgMC4yLCAiYm94NyIsICJsZWZ0IiwgIDE4MCwgMjBdLAorICAg
ICAgWyJtb3ZlMiIsIDAuMiwgImJveDgiLCAibGVmdCIsICAxODAsIDIwXSwKKyAgICAgIFsibW92
ZTIiLCAyLjIsICJib3g1IiwgImxlZnQiLCAgNDAsIDIwXSwKKyAgICAgIFsibW92ZTIiLCAyLjIs
ICJib3g2IiwgImxlZnQiLCAgMTgwLCAyMF0sCisgICAgICBbIm1vdmUyIiwgMi4yLCAiYm94NyIs
ICJsZWZ0IiwgIDE4MCwgMjBdLAorICAgICAgWyJtb3ZlMiIsIDIuMiwgImJveDgiLCAibGVmdCIs
ICA0MCwgMjBdLAorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFsdWVz
KTsKKworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iYm94MSIgY2xhc3M9
ImJveCBtb3ZlMSBub3JtYWwiPjIga2V5ZnJhbWVzOiBub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJv
eDIiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlIj4yIGtleWZyYW1lczogYWx0ZXJuYXRlPC9k
aXY+Cis8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94IG1vdmUxIHJldmVyc2UiPjIga2V5ZnJhbWVz
OiByZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJib3g0IiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0
ZS1yZXZlcnNlIj4yIGtleWZyYW1lczogYWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4KKzxkaXYgaWQ9
ImJveDUiIGNsYXNzPSJib3ggbW92ZTIgbm9ybWFsIj40IGtleWZyYW1lczogbm9ybWFsPC9kaXY+
Cis8ZGl2IGlkPSJib3g2IiBjbGFzcz0iYm94IG1vdmUyIGFsdGVybmF0ZSI+NCBrZXlmcmFtZXM6
IGFsdGVybmF0ZTwvZGl2PgorPGRpdiBpZD0iYm94NyIgY2xhc3M9ImJveCBtb3ZlMiByZXZlcnNl
Ij40IGtleWZyYW1lczogcmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94OCIgY2xhc3M9ImJveCBt
b3ZlMiBhbHRlcm5hdGUtcmV2ZXJzZSI+NCBrZXlmcmFtZXM6IGFsdGVybmF0ZS1yZXZlcnNlPC9k
aXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2
ZXJzZS10aW1pbmctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZlNGJlZWRiYjBmNThjNDgzMWMyZGFiM2U2MWY1Y2I5Njk4Yzc1MjYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJl
Y3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEz
IEBACitub3JtYWwKK2FsdGVybmF0ZQorcmV2ZXJzZQorYWx0ZXJuYXRlLXJldmVyc2UKK1BBU1Mg
LSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gxIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGlu
ZyBjbG9zZSB0bzogMTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50
IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTgKK1BBU1MgLSAibGVmdCIgcHJvcGVy
dHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDAuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTk4
CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZvciAiYm94NCIgZWxlbWVudCBhdCAwLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDE5OAorUEFTUyAtICJsZWZ0IiBwcm9wZXJ0eSBmb3IgImJveDEi
IGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxOAorUEFTUyAtICJsZWZ0
IiBwcm9wZXJ0eSBmb3IgImJveDIiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxOTgKK1BBU1MgLSAibGVmdCIgcHJvcGVydHkgZm9yICJib3gzIiBlbGVtZW50IGF0IDIu
MnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMTk4CitQQVNTIC0gImxlZnQiIHByb3BlcnR5IGZv
ciAiYm94NCIgZWxlbWVudCBhdCAyLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDE4CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZl
cnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1o
YXJkd2FyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQwOWMwOTc1YjIzN2JiOWZjMWI3NWE3
N2E5ZmRiNmJmMTQ0NjljYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMtaGFyZHdhcmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK25vcm1hbAorYWx0ZXJuYXRlCityZXZlcnNl
CithbHRlcm5hdGUtcmV2ZXJzZQorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZv
ciAiYm94MSIgZWxlbWVudCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEs
MTgsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MiIgZWxlbWVu
dCBhdCAwLjJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTgsMAorUEFTUyAtICJ3
ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAwLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTk4LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3Jt
IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMC4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxLDAsMCwxLDE5OCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9y
ICJib3gxIiBlbGVtZW50IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwx
OCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3gyIiBlbGVtZW50
IGF0IDIuMnMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxOTgsMAorUEFTUyAtICJ3
ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94MyIgZWxlbWVudCBhdCAyLjJzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTk4LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3Jt
IiBwcm9wZXJ0eSBmb3IgImJveDQiIGVsZW1lbnQgYXQgMi4ycyBzYXcgc29tZXRoaW5nIGNsb3Nl
IHRvOiAxLDAsMCwxLDE4LDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGltaW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLXJldmVyc2UtdGlt
aW5nLWZ1bmN0aW9ucy1oYXJkd2FyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYjYxZTA0YjA1ZjdjM2I2
ZGExMjQ5YmMxNjI5MjgwY2UxOWE1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLWhh
cmR3YXJlLmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiI+Cis8aGVhZD4KKyAgPHRpdGxlPlRlc3Qgb2YgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0
aW9uIHRpbWluZyBmdW5jdGlvbnMgb24gY29tcG9zaXRlZCBlbGVtZW50czwvdGl0bGU+CisgIDxz
dHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6
IDEwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBt
YXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJz
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyAvKiBlYXNl
IGlzIGdvb2QgZm9yIHRlc3RpbmcgYmVjYXVzZSBpdCBpcyBub3Qgc3ltbWV0cmljICovCisgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDQ7CisgICAgfQorICAgIAorICAg
IC5tb3ZlMSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlMTsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAg
Lm5vcm1hbCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKKyAg
ICB9CisKKyAgICAuYWx0ZXJuYXRlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bjogYWx0ZXJuYXRlOworICAgIH0KKworICAgIC5yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRlLXJldmVy
c2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJz
ZTsKKyAgICB9CisgICAgCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1vdmUxIHsKKyAgICAgIGZy
b20geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9CisgICAgICB0byB7IC13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMHB4KTsgfQorICAgIH0KKyAgPC9zdHlsZT4K
KyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdD4KKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgIC8v
IFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZh
bHVlLCB0b2xlcmFuY2VdCisgICAgICBbIm1vdmUxIiwgMC4yLCAiYm94MSIsICJ3ZWJraXRUcmFu
c2Zvcm0iLCAgWzEsMCwwLDEsIDE4LCAwXSwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJv
eDIiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOCwgMF0sIDEwXSwKKyAgICAgIFsi
bW92ZTEiLCAwLjIsICJib3gzIiwgIndlYmtpdFRyYW5zZm9ybSIsICBbMSwwLDAsMSwgMTk4LCAw
XSwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDQiLCAid2Via2l0VHJhbnNmb3JtIiwg
IFsxLDAsMCwxLCAxOTgsIDBdLCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MSIsICJ3
ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCwwLDEsIDE4LCAwXSwgMTBdLAorICAgICAgWyJtb3ZlMSIs
IDIuMiwgImJveDIiLCAid2Via2l0VHJhbnNmb3JtIiwgIFsxLDAsMCwxLCAxOTgsIDBdLCAxMF0s
CisgICAgICBbIm1vdmUxIiwgMi4yLCAiYm94MyIsICJ3ZWJraXRUcmFuc2Zvcm0iLCAgWzEsMCww
LDEsIDE5OCwgMF0sIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3g0IiwgIndlYmtpdFRy
YW5zZm9ybSIsICBbMSwwLDAsMSwgMTgsIDBdLCAxMF0sCisgICAgXTsKKworICAgIHJ1bkFuaW1h
dGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworCisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94IG1vdmUxIG5vcm1hbCI+bm9ybWFsPC9kaXY+Cis8
ZGl2IGlkPSJib3gyIiBjbGFzcz0iYm94IG1vdmUxIGFsdGVybmF0ZSI+YWx0ZXJuYXRlPC9kaXY+
Cis8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94IG1vdmUxIHJldmVyc2UiPnJldmVyc2U8L2Rpdj4K
KzxkaXYgaWQ9ImJveDQiIGNsYXNzPSJib3ggbW92ZTEgYWx0ZXJuYXRlLXJldmVyc2UiPmFsdGVy
bmF0ZS1yZXZlcnNlPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tcmV2ZXJzZS10aW1pbmctZnVuY3Rpb25zLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmI0YzM4MGRhYTU5ZTZlYjZlZWZlNmUzMjk5NDIxZjMwMzA4NjhkMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVj
dGlvbi1yZXZlcnNlLXRpbWluZy1mdW5jdGlvbnMuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8dGl0bGU+VGVzdCBvZiAt
d2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb24gdGltaW5nIGZ1bmN0aW9uczwvdGl0bGU+CisgIDxz
dHlsZT4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDIwcHg7CisgICAgICB0b3A6
IDEwcHg7CisgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICB3aWR0aDogMjUwcHg7CisgICAgICBt
YXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJz
OworICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlOyAvKiBlYXNl
IGlzIGdvb2QgZm9yIHRlc3RpbmcgYmVjYXVzZSBpdCBpcyBub3Qgc3ltbWV0cmljICovCisgICAg
ICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDQ7CisgICAgfQorICAgIAorICAg
IC5tb3ZlMSB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBtb3ZlMTsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAg
Lm5vcm1hbCB7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDsKKyAg
ICB9CisKKyAgICAuYWx0ZXJuYXRlIHsKKyAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlv
bjogYWx0ZXJuYXRlOworICAgIH0KKworICAgIC5yZXZlcnNlIHsKKyAgICAgIC13ZWJraXQtYW5p
bWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTsKKyAgICB9CisKKyAgICAuYWx0ZXJuYXRlLXJldmVy
c2UgeworICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJz
ZTsKKyAgICB9CisgICAgCisgICAgQC13ZWJraXQta2V5ZnJhbWVzIG1vdmUxIHsKKyAgICAgIGZy
b20geyBsZWZ0OiAwcHg7IH0KKyAgICAgIHRvIHsgbGVmdDogMjAwcHg7IH0KKyAgICB9CisgIDwv
c3R5bGU+CisgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5q
cyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQ+CisgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisg
ICAgICAvLyBbYW5pbWF0aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBl
Y3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDEiLCAibGVm
dCIsICAxOCwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDIiLCAibGVmdCIsICAxOCwg
MTBdLAorICAgICAgWyJtb3ZlMSIsIDAuMiwgImJveDMiLCAibGVmdCIsICAxOTgsIDEwXSwKKyAg
ICAgIFsibW92ZTEiLCAwLjIsICJib3g0IiwgImxlZnQiLCAgMTk4LCAxMF0sCisgICAgICBbIm1v
dmUxIiwgMi4yLCAiYm94MSIsICJsZWZ0IiwgIDE4LCAxMF0sCisgICAgICBbIm1vdmUxIiwgMi4y
LCAiYm94MiIsICJsZWZ0IiwgIDE5OCwgMTBdLAorICAgICAgWyJtb3ZlMSIsIDIuMiwgImJveDMi
LCAibGVmdCIsICAxOTgsIDEwXSwKKyAgICAgIFsibW92ZTEiLCAyLjIsICJib3g0IiwgImxlZnQi
LCAgMTgsIDEwXSwKKyAgICBdOworCisgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVl
cyk7CisKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImJveDEiIGNsYXNz
PSJib3ggbW92ZTEgbm9ybWFsIj5ub3JtYWw8L2Rpdj4KKzxkaXYgaWQ9ImJveDIiIGNsYXNzPSJi
b3ggbW92ZTEgYWx0ZXJuYXRlIj5hbHRlcm5hdGU8L2Rpdj4KKzxkaXYgaWQ9ImJveDMiIGNsYXNz
PSJib3ggbW92ZTEgcmV2ZXJzZSI+cmV2ZXJzZTwvZGl2PgorPGRpdiBpZD0iYm94NCIgY2xhc3M9
ImJveCBtb3ZlMSBhbHRlcm5hdGUtcmV2ZXJzZSI+YWx0ZXJuYXRlLXJldmVyc2U8L2Rpdj4KKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBl
cnMuanMgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1o
ZWxwZXJzLmpzCmluZGV4IDg0YTI2YmVkNzVmYWRmNzQ1ZGRkNjE0MDVkOWU3NWMyNDcwYmNlNDgu
LjJkYjIwYTkwMTc2NjE1NTUwYzkwYTdiOWE4M2U4NzI5YWZiM2YzMWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMK
KysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVs
cGVycy5qcwpAQCAtMTM4LDE0NCArMTM4LDEwNiBAQCBmdW5jdGlvbiBjaGVja0V4cGVjdGVkVmFs
dWUoZXhwZWN0ZWQsIGluZGV4KQogICAgIH0KICAgICAKICAgICB2YXIgY29tcHV0ZWRWYWx1ZSwg
Y29tcHV0ZWRWYWx1ZTI7Ci0gICAgdmFyIHBhc3MgPSB0cnVlOwotICAgIGlmICghcHJvcGVydHku
aW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQ7Ci0gICAg
ICAgIGlmIChpZnJhbWVJZCkKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZnJhbWVJZCkuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgaWYgKGNvbXBhcmVFbGVtZW50cykgeworICAgICAgICBjb21wdXRlZFZhbHVlID0g
Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgZWxlbWVudElkLCBpZnJhbWVJZCk7CisgICAgICAg
IGNvbXB1dGVkVmFsdWUyID0gZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwgZWxlbWVudElkMiwg
aWZyYW1lSWQpOworCisgICAgICAgIGlmIChjb21wYXJlUHJvcGVydHlWYWx1ZShwcm9wZXJ0eSwg
Y29tcHV0ZWRWYWx1ZSwgY29tcHV0ZWRWYWx1ZTIsIHRvbGVyYW5jZSkpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gIlBBU1MgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsg
ZWxlbWVudElkICsgIlwiIGFuZCBcIiIgKyBlbGVtZW50SWQyICsgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlwiIGVsZW1lbnRzIGF0ICIgKyB0aW1lICsgInMgYXJlIGNsb3NlIGVub3Vn
aCB0byBlYWNoIG90aGVyIiArICI8YnI+IjsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgY29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQp
LndlYmtpdFRyYW5zZm9ybTsKLSAgICAgICAgaWYgKGNvbXBhcmVFbGVtZW50cykgewotICAgICAg
ICAgICAgY29tcHV0ZWRWYWx1ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkud2Via2l0VHJhbnNmb3JtOwotICAgICAgICAgICAg
dmFyIG0xID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21wdXRlZFZhbHVlKTsKLSAgICAgICAgICAg
IHZhciBtMiA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRWYWx1ZTIpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICAvLyBmb3Igbm93IHdlIGFzc3VtZSB0aGF0IGJvdGggbWF0cmljZXMg
YXJlIGVpdGhlciBib3RoIDJEIG9yIGJvdGggM0QKLSAgICAgICAgICAgIHZhciBjb3VudCA9IChj
b21wdXRlZFZhbHVlLnN1YnN0cmluZygwLCA3KSA9PSAibWF0cml4M2QiKSA/IDE2IDogNjsKLSAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAgICAg
ICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKHBhcnNlRmxvYXQobTFbaV0pLCBtMltpXSwgdG9sZXJh
bmNlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXBhc3MpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHR5
cGVvZiBleHBlY3RlZFZhbHVlID09ICJzdHJpbmciKQotICAgICAgICAgICAgICAgIHBhc3MgPSAo
Y29tcHV0ZWRWYWx1ZSA9PSBleHBlY3RlZFZhbHVlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHR5
cGVvZiBleHBlY3RlZFZhbHVlID09ICJudW1iZXIiKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG0g
PSBtYXRyaXhTdHJpbmdUb0FycmF5KGNvbXB1dGVkVmFsdWUpOwotICAgICAgICAgICAgICAgIHBh
c3MgPSBpc0Nsb3NlRW5vdWdoKHBhcnNlRmxvYXQobVtwYXJzZUludChwcm9wZXJ0eS5zdWJzdHJp
bmcoMTYpKV0pLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICB2YXIgbSA9IG1hdHJpeFN0cmluZ1RvQXJyYXkoY29tcHV0ZWRW
YWx1ZSk7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWUubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGlzQ2xvc2VFbm91Z2gocGFy
c2VGbG9hdChtW2ldKSwgZXhwZWN0ZWRWYWx1ZVtpXSwgdG9sZXJhbmNlKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFwYXNzKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChw
cm9wZXJ0eSA9PSAid2Via2l0RmlsdGVyIikgewotICAgICAgICB2YXIgZWxlbWVudDsKKyAgICAg
ICAgICAgIHJlc3VsdCArPSAiRkFJTCAtIFwiIiArIHByb3BlcnR5ICsgIlwiIHByb3BlcnR5IGZv
ciBcIiIgKyBlbGVtZW50SWQgKyAiXCIgYW5kIFwiIiArIGVsZW1lbnRJZDIgKyAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiXCIgZWxlbWVudHMgYXQgIiArIHRpbWUgKyAicyBzYXc6IFwi
IiArIGNvbXB1dGVkVmFsdWUgKyAiXCIgYW5kIFwiIiArIGNvbXB1dGVkVmFsdWUyICsgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiB3aGljaCBhcmUgbm90
IGNsb3NlIGVub3VnaCB0byBlYWNoIG90aGVyIiArICI8YnI+IjsKKyAgICB9IGVsc2UgeworICAg
ICAgICB2YXIgZWxlbWVudE5hbWU7CiAgICAgICAgIGlmIChpZnJhbWVJZCkKLSAgICAgICAgICAg
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZnJhbWVJZCkuY29udGVudERvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICBlbGVtZW50TmFtZSA9
IGlmcmFtZUlkICsgJy4nICsgZWxlbWVudElkOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAKLSAgICAgICAg
Y29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdEZp
bHRlcjsKLSAgICAgICAgdmFyIGZpbHRlclBhcmFtZXRlcnMgPSBnZXRGaWx0ZXJQYXJhbWV0ZXJz
KGNvbXB1dGVkVmFsdWUpOworICAgICAgICAgICAgZWxlbWVudE5hbWUgPSBlbGVtZW50SWQ7CiAK
LSAgICAgICAgaWYgKGNvbXBhcmVFbGVtZW50cykgewotICAgICAgICAgICAgY29tcHV0ZWRWYWx1
ZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQyKSkud2Via2l0RmlsdGVyOwotICAgICAgICAgICAgdmFyIGZpbHRlcjJQYXJhbWV0ZXJz
ID0gZ2V0RmlsdGVyUGFyYW1ldGVycyhjb21wdXRlZFZhbHVlMik7Ci0gICAgICAgICAgICBwYXNz
ID0gZmlsdGVyUGFyYW1ldGVyc01hdGNoKGZpbHRlclBhcmFtZXRlcnMsIGZpbHRlcjJQYXJhbWV0
ZXJzLCB0b2xlcmFuY2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFzcyA9IGZp
bHRlclBhcmFtZXRlcnNNYXRjaChmaWx0ZXJQYXJhbWV0ZXJzLCBnZXRGaWx0ZXJQYXJhbWV0ZXJz
KGV4cGVjdGVkVmFsdWUpLCB0b2xlcmFuY2UpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChw
cm9wZXJ0eSA9PSAibGluZUhlaWdodCIpIHsKLSAgICAgICAgdmFyIGVsZW1lbnQ7Ci0gICAgICAg
IGlmIChpZnJhbWVJZCkKLSAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZnJhbWVJZCkuY29udGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7
CisgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBnZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5LCBlbGVt
ZW50SWQsIGlmcmFtZUlkKTsKKworICAgICAgICBpZiAoY29tcGFyZVByb3BlcnR5VmFsdWUocHJv
cGVydHksIGNvbXB1dGVkVmFsdWUsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSkpCisgICAgICAg
ICAgICByZXN1bHQgKz0gIlBBU1MgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3Ig
XCIiICsgZWxlbWVudE5hbWUgKyAiXCIgZWxlbWVudCBhdCAiICsgdGltZSArIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86ICIgKyBleHBlY3Rl
ZFZhbHVlICsgIjxicj4iOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICAgICAgICAgIAorICAgICAgICAg
ICAgcmVzdWx0ICs9ICJGQUlMIC0gXCIiICsgcHJvcGVydHkgKyAiXCIgcHJvcGVydHkgZm9yIFwi
IiArIGVsZW1lbnROYW1lICsgIlwiIGVsZW1lbnQgYXQgIiArIHRpbWUgKyAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicyBleHBlY3RlZDogIiArIGV4cGVjdGVkVmFsdWUgKyAiIGJ1dCBz
YXc6ICIgKyBjb21wdXRlZFZhbHVlICsgIjxicj4iOworICAgIH0KK30KKworCitmdW5jdGlvbiBn
ZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5LCBlbGVtZW50SWQsIGlmcmFtZUlkKQoreworICAgIHZh
ciBjb21wdXRlZFZhbHVlOworICAgIHZhciBlbGVtZW50OworICAgIGlmIChpZnJhbWVJZCkKKyAg
ICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlmcmFtZUlkKS5jb250ZW50
RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICBlbHNlCisgICAgICAgIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworCisgICAgaWYgKHBy
b3BlcnR5ID09ICJsaW5lSGVpZ2h0IikKICAgICAgICAgY29tcHV0ZWRWYWx1ZSA9IHBhcnNlSW50
KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmxpbmVIZWlnaHQpOwotICAgICAgICBp
ZiAoY29tcGFyZUVsZW1lbnRzKSB7Ci0gICAgICAgICAgICBjb21wdXRlZFZhbHVlMiA9IHBhcnNl
SW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZDIpKS5saW5lSGVpZ2h0KTsKLSAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNv
bXB1dGVkVmFsdWUsIGNvbXB1dGVkVmFsdWUyLCB0b2xlcmFuY2UpOworICAgIGVsc2UgaWYgKHBy
b3BlcnR5ID09ICJiYWNrZ3JvdW5kSW1hZ2UiCisgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9
PSAiYm9yZGVySW1hZ2VTb3VyY2UiCisgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAibGlz
dFN0eWxlSW1hZ2UiCisgICAgICAgICAgICAgICB8fCBwcm9wZXJ0eSA9PSAid2Via2l0TWFza0lt
YWdlIgorICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1hc2tCb3hJbWFnZSIK
KyAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRGaWx0ZXIiCisgICAgICAgICAg
ICAgICB8fCAhcHJvcGVydHkuaW5kZXhPZigid2Via2l0VHJhbnNmb3JtIikpIHsKKyAgICAgICAg
Y29tcHV0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpW3Byb3BlcnR5
LnNwbGl0KCIuIilbMF1dOworICAgIH0gZWxzZSB7CisgICAgICAgIHZhciBjb21wdXRlZFN0eWxl
ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShw
cm9wZXJ0eSk7CisgICAgICAgIGNvbXB1dGVkVmFsdWUgPSBjb21wdXRlZFN0eWxlLmdldEZsb2F0
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CisgICAgfQorCisgICAgcmV0dXJu
IGNvbXB1dGVkVmFsdWU7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVQcm9wZXJ0eVZhbHVlKHByb3Bl
cnR5LCBjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpCit7CisgICAgdmFy
IHJlc3VsdCA9IHRydWU7CisKKyAgICBpZiAoIXByb3BlcnR5LmluZGV4T2YoIndlYmtpdFRyYW5z
Zm9ybSIpKSB7CisgICAgICAgIGlmICh0eXBlb2YgZXhwZWN0ZWRWYWx1ZSA9PSAic3RyaW5nIikK
KyAgICAgICAgICAgIHJlc3VsdCA9IChjb21wdXRlZFZhbHVlID09IGV4cGVjdGVkVmFsdWUpOwor
ICAgICAgICBlbHNlIGlmICh0eXBlb2YgZXhwZWN0ZWRWYWx1ZSA9PSAibnVtYmVyIikgeworICAg
ICAgICAgICAgdmFyIG0gPSBtYXRyaXhTdHJpbmdUb0FycmF5KGNvbXB1dGVkVmFsdWUpOworICAg
ICAgICAgICAgcmVzdWx0ID0gaXNDbG9zZUVub3VnaChwYXJzZUZsb2F0KG1bcGFyc2VJbnQocHJv
cGVydHkuc3Vic3RyaW5nKDE2KSldKSwgZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBtID0gbWF0cml4U3RyaW5nVG9BcnJheShjb21w
dXRlZFZhbHVlKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNDbG9zZUVub3VnaChwYXJz
ZUZsb2F0KG1baV0pLCBleHBlY3RlZFZhbHVlW2ldLCB0b2xlcmFuY2UpOworICAgICAgICAgICAg
ICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVu
b3VnaChjb21wdXRlZFZhbHVlLCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOworICAgIH0gZWxz
ZSBpZiAocHJvcGVydHkgPT0gIndlYmtpdEZpbHRlciIpIHsKKyAgICAgICAgdmFyIGZpbHRlclBh
cmFtZXRlcnMgPSBnZXRGaWx0ZXJQYXJhbWV0ZXJzKGNvbXB1dGVkVmFsdWUpOworICAgICAgICB2
YXIgZmlsdGVyMlBhcmFtZXRlcnMgPSBnZXRGaWx0ZXJQYXJhbWV0ZXJzKGV4cGVjdGVkVmFsdWUp
OworICAgICAgICByZXN1bHQgPSBmaWx0ZXJQYXJhbWV0ZXJzTWF0Y2goZmlsdGVyUGFyYW1ldGVy
cywgZmlsdGVyMlBhcmFtZXRlcnMsIHRvbGVyYW5jZSk7CiAgICAgfSBlbHNlIGlmIChwcm9wZXJ0
eSA9PSAiYmFja2dyb3VuZEltYWdlIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gImJv
cmRlckltYWdlU291cmNlIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gImxpc3RTdHls
ZUltYWdlIgogICAgICAgICAgICAgICAgfHwgcHJvcGVydHkgPT0gIndlYmtpdE1hc2tJbWFnZSIK
ICAgICAgICAgICAgICAgIHx8IHByb3BlcnR5ID09ICJ3ZWJraXRNYXNrQm94SW1hZ2UiKSB7Ci0g
ICAgICAgIHZhciBlbGVtZW50OwotICAgICAgICBpZiAoaWZyYW1lSWQpCi0gICAgICAgICAgICBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWZyYW1lSWQpLmNvbnRlbnREb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLQotICAgICAgICBj
b21wdXRlZFZhbHVlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudClbcHJvcGVydHld
OwotICAgICAgICBjb21wdXRlZENyb3NzRmFkZSA9IHBhcnNlQ3Jvc3NGYWRlKGNvbXB1dGVkVmFs
dWUpOworICAgICAgICB2YXIgY29tcHV0ZWRDcm9zc0ZhZGUgPSBwYXJzZUNyb3NzRmFkZShjb21w
dXRlZFZhbHVlKTsKIAogICAgICAgICBpZiAoIWNvbXB1dGVkQ3Jvc3NGYWRlKSB7Ci0gICAgICAg
ICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAgICAg
ICAgICBjb21wdXRlZFZhbHVlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZDIpKVtwcm9wZXJ0eV07Ci0gICAgICAgICAgICAgICAgY29t
cHV0ZWRDcm9zc0ZhZGUyID0gcGFyc2VDcm9zc0ZhZGUoY29tcHV0ZWRWYWx1ZTIpOwotICAgICAg
ICAgICAgICAgIGlmIChjb21wdXRlZENyb3NzRmFkZTIpIHsKLSAgICAgICAgICAgICAgICAgICAg
cGFzcyA9IChpc0Nsb3NlRW5vdWdoKGNvbXB1dGVkQ3Jvc3NGYWRlLnBlcmNlbnQsIGNvbXB1dGVk
Q3Jvc3NGYWRlMi5wZXJjZW50LCB0b2xlcmFuY2UpICYmCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjb21wdXRlZENyb3NzRmFkZS5mcm9tID09IGNvbXB1dGVkQ3Jvc3NGYWRlMi5mcm9tICYmCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZENyb3NzRmFkZS50byA9PSBjb21wdXRlZENy
b3NzRmFkZTIudG8pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICh0eXBlb2YgZXhwZWN0ZWRWYWx1ZSA9PSAic3RyaW5nIikgeworICAgICAg
ICAgICAgICAgIHZhciBjb21wdXRlZENyb3NzRmFkZTIgPSBwYXJzZUNyb3NzRmFkZShleHBlY3Rl
ZFZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVk
Q3Jvc3NGYWRlLnBlcmNlbnQsIGNvbXB1dGVkQ3Jvc3NGYWRlMi5wZXJjZW50LCB0b2xlcmFuY2Up
ICYmIGNvbXB1dGVkQ3Jvc3NGYWRlLmZyb20gPT0gY29tcHV0ZWRDcm9zc0ZhZGUyLmZyb20gJiYg
Y29tcHV0ZWRDcm9zc0ZhZGUudG8gPT0gY29tcHV0ZWRDcm9zc0ZhZGUyLnRvOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwYXNzID0gaXNDbG9zZUVub3VnaChjb21wdXRl
ZENyb3NzRmFkZS5wZXJjZW50LCBleHBlY3RlZFZhbHVlLCB0b2xlcmFuY2UpOworICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRDcm9zc0ZhZGUucGVyY2VudCwg
ZXhwZWN0ZWRWYWx1ZSwgdG9sZXJhbmNlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgdmFyIGVsZW1lbnQ7Ci0gICAgICAgIGlmIChpZnJhbWVJZCkKLSAg
ICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZnJhbWVJZCkuY29u
dGVudERvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwot
Ci0gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCkuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eSk7Ci0gICAgICAgIGNvbXB1dGVkVmFs
dWUgPSBjb21wdXRlZFN0eWxlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05V
TUJFUik7Ci0gICAgICAgIGlmIChjb21wYXJlRWxlbWVudHMpIHsKLSAgICAgICAgICAgIHZhciBj
b21wdXRlZFN0eWxlMiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZDIpKS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5KTsKLSAgICAg
ICAgICAgIGNvbXB1dGVkVmFsdWUyID0gY29tcHV0ZWRTdHlsZTIuZ2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKTsKLSAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5v
dWdoKGNvbXB1dGVkVmFsdWUsIGNvbXB1dGVkVmFsdWUyLCB0b2xlcmFuY2UpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhc3MgPSBpc0Nsb3NlRW5vdWdoKGNvbXB1dGVk
VmFsdWUsIGV4cGVjdGVkVmFsdWUsIHRvbGVyYW5jZSk7Ci0gICAgfQotCi0gICAgaWYgKGNvbXBh
cmVFbGVtZW50cykgewotICAgICAgICBpZiAocGFzcykKLSAgICAgICAgICAgIHJlc3VsdCArPSAi
UEFTUyAtIFwiIiArIHByb3BlcnR5ICsgIlwiIHByb3BlcnR5IGZvciBcIiIgKyBlbGVtZW50SWQg
KyAiXCIgYW5kIFwiIiArIGVsZW1lbnRJZDIgKyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiXCIgZWxlbWVudHMgYXQgIiArIHRpbWUgKyAicyBhcmUgY2xvc2UgZW5vdWdoIHRvIGVhY2gg
b3RoZXIiICsgIjxicj4iOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0gIkZB
SUwgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsgZWxlbWVudElkICsg
IlwiIGFuZCBcIiIgKyBlbGVtZW50SWQyICsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlwiIGVsZW1lbnRzIGF0ICIgKyB0aW1lICsgInMgc2F3OiBcIiIgKyBjb21wdXRlZFZhbHVlICsg
IlwiIGFuZCBcIiIgKyBjb21wdXRlZFZhbHVlMiArIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiXCIgd2hpY2ggYXJlIG5vdCBjbG9zZSBlbm91Z2ggdG8gZWFj
aCBvdGhlciIgKyAiPGJyPiI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIGVsZW1lbnROYW1l
OwotICAgICAgICBpZiAoaWZyYW1lSWQpCi0gICAgICAgICAgICBlbGVtZW50TmFtZSA9IGlmcmFt
ZUlkICsgJy4nICsgZWxlbWVudElkOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBlbGVtZW50
TmFtZSA9IGVsZW1lbnRJZDsKLSAgICAgICAgaWYgKHBhc3MpCi0gICAgICAgICAgICByZXN1bHQg
Kz0gIlBBU1MgLSBcIiIgKyBwcm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsgZWxlbWVu
dE5hbWUgKyAiXCIgZWxlbWVudCBhdCAiICsgdGltZSArIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86ICIgKyBleHBlY3RlZFZhbHVlICsgIjxi
cj4iOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0gIkZBSUwgLSBcIiIgKyBw
cm9wZXJ0eSArICJcIiBwcm9wZXJ0eSBmb3IgXCIiICsgZWxlbWVudE5hbWUgKyAiXCIgZWxlbWVu
dCBhdCAiICsgdGltZSArIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIGV4cGVjdGVk
OiAiICsgZXhwZWN0ZWRWYWx1ZSArICIgYnV0IHNhdzogIiArIGNvbXB1dGVkVmFsdWUgKyAiPGJy
PiI7CisgICAgICAgIHJlc3VsdCA9IGlzQ2xvc2VFbm91Z2goY29tcHV0ZWRWYWx1ZSwgZXhwZWN0
ZWRWYWx1ZSwgdG9sZXJhbmNlKTsKICAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogZnVu
Y3Rpb24gZW5kVGVzdCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>