<?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>215058</bug_id>
          
          <creation_ts>2020-08-01 02:15:53 -0700</creation_ts>
          <short_desc>[JSC] Implement Intl Language Tag Parser</short_desc>
          <delta_ts>2020-08-22 23:06:58 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>215756</dependson>
          <blocked>213425</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677108</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-01 02:15:53 -0700</bug_when>
    <thetext>Add precise language tag parser implementing BCP47.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677113</commentid>
    <comment_count>1</comment_count>
      <attachid>405783</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-01 04:08:53 -0700</bug_when>
    <thetext>Created attachment 405783
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677115</commentid>
    <comment_count>2</comment_count>
      <attachid>405784</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-01 05:49:24 -0700</bug_when>
    <thetext>Created attachment 405784
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677246</commentid>
    <comment_count>3</comment_count>
      <attachid>405815</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-02 18:33:53 -0700</bug_when>
    <thetext>Created attachment 405815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677798</commentid>
    <comment_count>4</comment_count>
      <attachid>405815</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-08-04 16:22:33 -0700</bug_when>
    <thetext>Comment on attachment 405815
Patch

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

Looks good overall.

It sucks that ICU canonicalization isn&apos;t sufficient, but I think you&apos;re right that this is unavoidable if we want cross-engine consistency, so thanks for doing what I was too stubborn to do. ;)

I think Darin will likely have comments regarding the string manipulation parts.


&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:851
&gt; +    struct Code {
&gt; +        LChar characters[8] { };
&gt; +    };

Is it necessary that this be wrapped in a struct?

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:875
&gt; +static bool isUnicodeExtensionAttribute(StringView string)

We could probably merge this with isUnicodeExtensionTypeComponent...

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:888
&gt; +static bool isUnicodeExtensionTypeComponent(StringView string)

...but note that isUnicodeLocaleIdentifierType also exists, so this already feels a bit duplicative?

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:917
&gt; +static bool isUnicodeTValue(StringView string)

This appears to be just a TValue &quot;component&quot;?

(And also is matching the two functions above...perhaps we should have an alphanum{i,j} helper function?)

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1078
&gt; +    bool isTLangOrTField = false;

Seems like this should be renamed to something like `found`...

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1109
&gt; +    if (!isTLangOrTField)
&gt;          return false;
&gt; -    ++cursor;
&gt; +    return true;

...and then you can just return it directly.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1125
&gt; +        if (!isUnicodeOtherExtensionValue(m_current))
&gt; +            return true;
&gt; +        if (!next())
&gt; +            return true;

Seems like in a case like this you could conjoin the conditions, but I understand if you prefer to keep parallelism with the rest of the logic.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1231
&gt; +    if (!parser.parseUnicodeLocaleId())
&gt; +        return false;
&gt; +    if (!parser.isEOS())
&gt; +        return false;
&gt; +    return true;

(There&apos;s a part of me that really wants to write this as a single return statement, but I do see what you&apos;re aiming to convey with this code style. ;D)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677806</commentid>
    <comment_count>5</comment_count>
      <attachid>405815</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-04 16:57:45 -0700</bug_when>
    <thetext>Comment on attachment 405815
Patch

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

I wonder about the idioms here compared with the StringParsingBuffer idioms that Sam has been using. Have you looked at that?

Parsers need extensive test suites, with cases that tickle every single branch. Do we have enough?

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:871
&gt; +    ASSERT(isASCIIAlphanumeric(singleton));
&gt; +    singleton = toASCIILower(singleton);
&gt; +    // 0 - 9 =&gt; numeric
&gt; +    // 10 - 35 =&gt; alpha
&gt; +    if (isASCIIDigit(singleton))
&gt; +        return singleton - &apos;0&apos;;
&gt; +    return (singleton - &apos;a&apos;) + 10;

This could be a bit more like toASCIIHexDigit from ASCIICType.h.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:880
&gt; +    if (length &gt;= 3 &amp;&amp; length &lt;= 8)
&gt; +        return string.isAllSpecialCharacters&lt;isASCIIAlphanumeric&gt;();
&gt; +    return false;

Should do it all with &amp;&amp;:

    return length &gt;= 3 &amp;&amp; length&lt;= 8 &amp;&amp; string.isAllSpecialCharacters&lt;isASCIIAlphanumeric&gt;();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677807</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-04 16:58:10 -0700</bug_when>
    <thetext>Generally looks fine. I have no objections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677808</commentid>
    <comment_count>7</comment_count>
      <attachid>405815</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-04 16:58:32 -0700</bug_when>
    <thetext>Comment on attachment 405815
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1231
&gt;&gt; +    return true;
&gt; 
&gt; (There&apos;s a part of me that really wants to write this as a single return statement, but I do see what you&apos;re aiming to convey with this code style. ;D)

I feel the same way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678891</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-08 02:16:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/66720470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682176</commentid>
    <comment_count>9</comment_count>
      <attachid>405815</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 14:46:51 -0700</bug_when>
    <thetext>Comment on attachment 405815
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:851
&gt;&gt; +    };
&gt; 
&gt; Is it necessary that this be wrapped in a struct?

This makes `bitwise_cast&lt;VariantCode&gt;()` easy by suppressing array to pointer decay.

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:871
&gt;&gt; +    return (singleton - &apos;a&apos;) + 10;
&gt; 
&gt; This could be a bit more like toASCIIHexDigit from ASCIICType.h.

Yeah, the difference is it is using G-Z too (so, it is not hex).

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:875
&gt;&gt; +static bool isUnicodeExtensionAttribute(StringView string)
&gt; 
&gt; We could probably merge this with isUnicodeExtensionTypeComponent...

I think we should have different ones because they are different part while the patterns are the same by chance.

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:880
&gt;&gt; +    return false;
&gt; 
&gt; Should do it all with &amp;&amp;:
&gt; 
&gt;     return length &gt;= 3 &amp;&amp; length&lt;= 8 &amp;&amp; string.isAllSpecialCharacters&lt;isASCIIAlphanumeric&gt;();

Changed

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:888
&gt;&gt; +static bool isUnicodeExtensionTypeComponent(StringView string)
&gt; 
&gt; ...but note that isUnicodeLocaleIdentifierType also exists, so this already feels a bit duplicative?

Ditto.

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:917
&gt;&gt; +static bool isUnicodeTValue(StringView string)
&gt; 
&gt; This appears to be just a TValue &quot;component&quot;?
&gt; 
&gt; (And also is matching the two functions above...perhaps we should have an alphanum{i,j} helper function?)

Right, changed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1109
&gt;&gt; +    return true;
&gt; 
&gt; ...and then you can just return it directly.

Nice, fixed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1125
&gt;&gt; +            return true;
&gt; 
&gt; Seems like in a case like this you could conjoin the conditions, but I understand if you prefer to keep parallelism with the rest of the logic.

Yeah, these codes are aligned to the style used in parse function in this parser.

&gt;&gt;&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:1231
&gt;&gt;&gt; +    return true;
&gt;&gt; 
&gt;&gt; (There&apos;s a part of me that really wants to write this as a single return statement, but I do see what you&apos;re aiming to convey with this code style. ;D)
&gt; 
&gt; I feel the same way.

Because the other functions are using `break` / `continue` etc., I&apos;m aligning these parse &amp; isEOS() patterns with the other places not to introduce a bug.
I think this makes code consistent and avoid introducing a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682187</commentid>
    <comment_count>10</comment_count>
      <attachid>407058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 15:49:47 -0700</bug_when>
    <thetext>Created attachment 407058
Patch

Updating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682198</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 17:25:11 -0700</bug_when>
    <thetext>&gt; I wonder about the idioms here compared with the StringParsingBuffer idioms that Sam has been using. Have you looked at that?

Currently, this parser relies on split feature, so we cannot use StringParsingBuffer. We can revise whether we can use it later.

&gt; Parsers need extensive test suites, with cases that tickle every single branch. Do we have enough?

I added more tests and ensured code coverage of the parser is 100% at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682199</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 17:26:47 -0700</bug_when>
    <thetext>Committed r266039: &lt;https://trac.webkit.org/changeset/266039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682218</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-08-22 23:01:33 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 215756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682221</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 23:06:58 -0700</bug_when>
    <thetext>Committed r266043: &lt;https://trac.webkit.org/changeset/266043&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405783</attachid>
            <date>2020-08-01 04:08:53 -0700</date>
            <delta_ts>2020-08-01 05:49:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215058-20200801040852.patch</filename>
            <type>text/plain</type>
            <size>21122</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZDUyNWFkZjEyNTQxNGViNGQyN2RlNDU4YmQ0YTJkOGY0MjY5ODQ3Li5hZDAxMWI5OTdkNDhhZTY2
NDZhMDMzNjMzODVkNmVjZDFhYTUwYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMC0wOC0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBJbnRsIExhbmd1YWdlIFRhZyBQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTA1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9J
bnRsTG9jYWxlLmNwcDoKKyAgICAgICAgKEpTQzo6TG9jYWxlSURCdWlsZGVyOjppbml0aWFsaXpl
KToKKyAgICAgICAgKEpTQzo6SW50bExvY2FsZTo6aW5pdGlhbGl6ZUxvY2FsZSk6CisgICAgICAg
ICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsaXplTG9j
YWxlTGlzdCk6CisgICAgICAgIChKU0M6OnBhcnNlVmFyaWFudENvZGUpOgorICAgICAgICAoSlND
Ojpjb252ZXJ0VG9Vbmljb2RlU2luZ2xldG9uSW5kZXgpOgorICAgICAgICAoSlNDOjppc1VuaWNv
ZGVFeHRlbnNpb25BdHRyaWJ1dGUpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVFeHRlbnNpb25L
ZXkpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVFeHRlbnNpb25UeXBlQ29tcG9uZW50KToKKyAg
ICAgICAgKEpTQzo6aXNVbmljb2RlUFVFeHRlbnNpb25WYWx1ZSk6CisgICAgICAgIChKU0M6Omlz
VW5pY29kZU90aGVyRXh0ZW5zaW9uVmFsdWUpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVUS2V5
KToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlVFZhbHVlKToKKyAgICAgICAgKEpTQzo6TGFuZ3Vh
Z2VUYWdQYXJzZXI6Okxhbmd1YWdlVGFnUGFyc2VyKToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VU
YWdQYXJzZXI6OmlzRU9TKToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJzZXI6Om5leHQp
OgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlTG9jYWxlSWQp
OgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlTGFuZ3VhZ2VJ
ZCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVVuaWNvZGVFeHRlbnNp
b25BZnRlclByZWZpeCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVRy
YW5zZm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRh
Z1BhcnNlcjo6cGFyc2VPdGhlckV4dGVuc2lvbkFmdGVyUHJlZml4KToKKyAgICAgICAgKEpTQzo6
TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCk6CisgICAgICAg
IChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZUV4dGVuc2lvbnNBbmRQVUV4dGVuc2lvbnMp
OgorICAgICAgICAoSlNDOjppc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcpOgorICAgICAg
ICAoSlNDOjppc1VuaWNvZGVMYW5ndWFnZUlkKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmpl
Y3QuaDoKKwogMjAyMC0wNy0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIE9wdGlvbnMgc2V0dGVyIHRvIHdoZXJlIHdlIGFsbG93IGFjY2Vz
cyB0byB0aGUgT3B0aW9ucyBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZS5jcHAKaW5kZXggNGVhYzIwMTg0YTcwYjc5MjczZjE3NzJmMDk3N2RlOGU4YWU0
Y2E3Yy4uNGFhMmE1MGJhZjY1ZmE4OTE4OWE3MDA5MzM0NDJkNzczYzg2NzM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKQEAgLTY4LDcgKzY4LDcg
QEAgdm9pZCBJbnRsTG9jYWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiAKIGNsYXNzIExvY2FsZUlEQnVpbGRlciBmaW5hbCB7CiBwdWJsaWM6Ci0g
ICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IENTdHJpbmcmKTsKKyAgICBib29sIGluaXRpYWxpemUo
Y29uc3QgU3RyaW5nJik7CiAgICAgQ1N0cmluZyB0b0Nhbm9uaWNhbCgpOwogCiAgICAgdm9pZCBv
dmVycmlkZUxhbmd1YWdlU2NyaXB0UmVnaW9uKFN0cmluZ1ZpZXcgbGFuZ3VhZ2UsIFN0cmluZ1Zp
ZXcgc2NyaXB0LCBTdHJpbmdWaWV3IHJlZ2lvbik7CkBAIC03OCw5ICs3OCwxMiBAQCBjbGFzcyBM
b2NhbGVJREJ1aWxkZXIgZmluYWwgewogICAgIFZlY3RvcjxjaGFyLCAzMj4gbV9idWZmZXI7CiB9
OwogCi1ib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBDU3RyaW5nJiB0YWcp
Citib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIHRhZykKIHsK
LSAgICBtX2J1ZmZlciA9IGxvY2FsZUlEQnVmZmVyRm9yTGFuZ3VhZ2VUYWcodGFnKTsKKyAgICBp
ZiAoIWlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyh0YWcpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgQVNTRVJUKHRhZy5pc0FsbEFTQ0lJKCkpOworICAgIG1fYnVmZmVyID0gbG9j
YWxlSURCdWZmZXJGb3JMYW5ndWFnZVRhZyh0YWcuYXNjaWkoKSk7CiAgICAgcmV0dXJuIG1fYnVm
ZmVyLnNpemUoKTsKIH0KIApAQCAtMjE2LDcgKzIxOSw3IEBAIHZvaWQgSW50bExvY2FsZTo6aW5p
dGlhbGl6ZUxvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcm
IHRhCiAgICAgfQogCiAgICAgTG9jYWxlSURCdWlsZGVyIGxvY2FsZUlEOwotICAgIGlmICghbG9j
YWxlSUQuaW5pdGlhbGl6ZSh0YWcudXRmOCgpKSkgeworICAgIGlmICghbG9jYWxlSUQuaW5pdGlh
bGl6ZSh0YWcpKSB7CiAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiaW52YWxpZCBsYW5ndWFnZSB0YWciX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBjNWE2MDg5
OThiNjYwNjk0ZjJjYThjMGEyMzdjNmRmNTMwYjBiZjU4Li5jMjQwOWVmOTIzMTljMGI3YWUxM2I3
NDBjODRjMGJhM2Q3MzdkOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsT2JqZWN0LmNwcApAQCAtMzkzLDcgKzM5Myw2IEBAIGJvb2wgaXNVbmljb2RlTG9jYWxlSWRl
bnRpZmllclR5cGUoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS8v
IGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFsbHl2YWxpZGxhbmd1YWdl
dGFnCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWNhbm9uaWNhbGl6ZXVuaWNvZGVs
b2NhbGVpZAogc3RhdGljIFN0cmluZyBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhjb25zdCBDU3Ry
aW5nJiB0YWcpCiB7CkBAIC00NTQsMzcgKzQ1MywzNCBAQCBWZWN0b3I8U3RyaW5nPiBjYW5vbmlj
YWxpemVMb2NhbGVMaXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9j
YQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHJhd1RhZzsKKyAgICAg
ICAgICAgIFN0cmluZyB0YWc7CiAgICAgICAgICAgICBpZiAoa1ZhbHVlLmluaGVyaXRzPEludGxM
b2NhbGU+KHZtKSkKLSAgICAgICAgICAgICAgICByYXdUYWcgPSBqc0Nhc3Q8SW50bExvY2FsZSo+
KGtWYWx1ZSktPnRvU3RyaW5nKCkudHJ5R2V0VXRmOCgpOworICAgICAgICAgICAgICAgIHRhZyA9
IGpzQ2FzdDxJbnRsTG9jYWxlKj4oa1ZhbHVlKS0+dG9TdHJpbmcoKTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIEpTU3RyaW5nKiB0YWcgPSBrVmFsdWUudG9TdHJpbmcoZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogc3RyaW5nID0ga1ZhbHVlLnRv
U3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgVmVjdG9yPFN0cmluZz4oKSk7CiAKLSAgICAgICAgICAgICAgICBhdXRvIHRhZ1Zh
bHVlID0gdGFnLT52YWx1ZShnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgIHRhZyA9IHN0
cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBWZWN0b3I8U3RyaW5nPigpKTsKLQotICAgICAgICAgICAgICAgIHJhd1Rh
ZyA9IHRhZ1ZhbHVlLnRyeUdldFV0ZjgoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICghcmF3VGFnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJhd1RhZy5lcnJvcigpID09IFVURjhD
b252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KQotICAgICAgICAgICAgICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6
ZWRUYWcgPSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhyYXdUYWcudmFsdWUoKSk7Ci0gICAgICAg
ICAgICBpZiAoY2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgewotICAgICAgICAgICAgICAgIFN0
cmluZyBlcnJvck1lc3NhZ2UgPSB0cnlNYWtlU3RyaW5nKCJpbnZhbGlkIGxhbmd1YWdlIHRhZzog
IiwgcmF3VGFnLT5kYXRhKCkpOwotICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZXJyb3JN
ZXNzYWdlKSkgewotICAgICAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgaWYgKGlzU3RydWN0dXJhbGx5
VmFsaWRMYW5ndWFnZVRhZyh0YWcpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHRhZy5pc0Fs
bEFTQ0lJKCkpOworICAgICAgICAgICAgICAgIFN0cmluZyBjYW5vbmljYWxpemVkVGFnID0gY2Fu
b25pY2FsaXplTGFuZ3VhZ2VUYWcodGFnLmFzY2lpKCkpOworICAgICAgICAgICAgICAgIGlmICgh
Y2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2Vl
blNldC5hZGQoY2Fub25pY2FsaXplZFRhZykuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNlZW4uYXBwZW5kKGNhbm9uaWNhbGl6ZWRUYWcpOworICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3Qs
IGVycm9yTWVzc2FnZSkpOwotICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGlmIChzZWVuU2V0LmFkZChjYW5vbmljYWxpemVkVGFnKS5pc05l
d0VudHJ5KQotICAgICAgICAgICAgICAgIHNlZW4uYXBwZW5kKGNhbm9uaWNhbGl6ZWRUYWcpOwor
ICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRyeU1ha2VTdHJpbmcoImludmFsaWQg
bGFuZ3VhZ2UgdGFnOiAiLCB0YWcpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFlcnJvck1l
c3NhZ2UpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIGVy
cm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtODQzLDQxICs4MzksNDEyIEBAIGJvb2wgaXNVbmljb2RlVmFyaWFudFN1YnRhZyhTdHJp
bmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gbGVuZ3RoID09IDQgJiYgaXNBU0NJSURpZ2l0KHN0
cmluZ1swXSkgJiYgc3RyaW5nLnN1YnN0cmluZygxKS5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlz
QVNDSUlBbHBoYW51bWVyaWM+KCk7CiB9CiAKLS8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQsIGJ1dCBp
bnRlcnNlY3Rpb24gb2YgQkNQNDcgYW5kIFVUUzM1LgotLy8gdW5pY29kZV9sYW5ndWFnZV9pZCA9
Ci0vLyAgICAgfCB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2NyaXB0X3N1
YnRhZyk/IChzZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3ZhcmlhbnRf
c3VidGFnKSogOwotLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaW50bC1kaXNw
bGF5bmFtZXMvaXNzdWVzLzc5Ci1ib29sIGlzVW5pY29kZUxhbmd1YWdlSWQoU3RyaW5nVmlldyBz
dHJpbmcpCit1c2luZyBWYXJpYW50Q29kZSA9IHVpbnQ2NF90Oworc3RhdGljIFZhcmlhbnRDb2Rl
IHBhcnNlVmFyaWFudENvZGUoU3RyaW5nVmlldyBzdHJpbmcpCiB7Ci0gICAgVmVjdG9yPFN0cmlu
Z1ZpZXcsIDQ+IHN1YnRhZ3M7Ci0gICAgZm9yIChhdXRvIHN1YnRhZyA6IHN0cmluZy5zcGxpdEFs
bG93aW5nRW1wdHlFbnRyaWVzKCctJykpCi0gICAgICAgIHN1YnRhZ3MuYXBwZW5kKHN1YnRhZyk7
CisgICAgQVNTRVJUKGlzVW5pY29kZVZhcmlhbnRTdWJ0YWcoc3RyaW5nKSk7CisgICAgQVNTRVJU
KHN0cmluZy5pc0FsbEFTQ0lJKCkpOworICAgIEFTU0VSVChzdHJpbmcubGVuZ3RoKCkgPD0gOCk7
CisgICAgQVNTRVJUKHN0cmluZy5sZW5ndGgoKSA+PSAxKTsKKyAgICBzdHJ1Y3QgQ29kZSB7Cisg
ICAgICAgIExDaGFyIGNoYXJhY3RlcnNbOF0geyB9OworICAgIH07CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3Vuc2lnbmVkX3Y8TENoYXI+KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihW
YXJpYW50Q29kZSkgPT0gc2l6ZW9mKENvZGUpKTsKKyAgICBDb2RlIGNvZGUgeyB9OworICAgIGZv
ciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHN0cmluZy5sZW5ndGgoKTsgKytpbmRleCkK
KyAgICAgICAgY29kZS5jaGFyYWN0ZXJzW2luZGV4XSA9IHN0cmluZ1tpbmRleF07CisgICAgVmFy
aWFudENvZGUgcmVzdWx0ID0gYml0d2lzZV9jYXN0PFZhcmlhbnRDb2RlPihjb2RlKTsKKyAgICBB
U1NFUlQoIXJlc3VsdCk7IC8vIE5vdCBwb3NzaWJsZSBzaW5jZSBzb21lIGNoYXJhY3RlcnMgZXhp
c3QuCisgICAgQVNTRVJUKHJlc3VsdCAhPSBzdGF0aWNfY2FzdDxWYXJpYW50Q29kZT4oLTEpKTsg
Ly8gTm90IHBvc3NpYmxlIHNpbmNlIGFsbCBjaGFyYWN0ZXJzIGFyZSBBU0NJSSAobm90IExhdGlu
LTEpLgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjb252ZXJ0VG9V
bmljb2RlU2luZ2xldG9uSW5kZXgoVUNoYXIgc2luZ2xldG9uKQoreworICAgIEFTU0VSVChpc0FT
Q0lJQWxwaGFudW1lcmljKHNpbmdsZXRvbikpOworICAgIHNpbmdsZXRvbiA9IHRvQVNDSUlMb3dl
cihzaW5nbGV0b24pOworICAgIC8vIDAgLSA5ID0+IG51bWVyaWMKKyAgICAvLyAxMCAtIDM1ID0+
IGFscGhhCisgICAgaWYgKGlzQVNDSUlEaWdpdChzaW5nbGV0b24pKQorICAgICAgICByZXR1cm4g
c2luZ2xldG9uIC0gJzAnOworICAgIHJldHVybiAoc2luZ2xldG9uIC0gJ2EnKSArIDEwOworfQor
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlVuaWNvZGVTaW5nbGV0b25zID0gMTAg
KyAyNjsgLy8gRGlnaXRzICsgQWxwaGFiZXRzLgorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVFeHRl
bnNpb25BdHRyaWJ1dGUoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgYXV0byBsZW5ndGggPSBz
dHJpbmcubGVuZ3RoKCk7CisgICAgaWYgKGxlbmd0aCA+PSAzICYmIGxlbmd0aCA8PSA4KQorICAg
ICAgICByZXR1cm4gc3RyaW5nLmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJSUFscGhhbnVt
ZXJpYz4oKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGlzVW5pY29kZUV4
dGVuc2lvbktleShTdHJpbmdWaWV3IHN0cmluZykKK3sKKyAgICByZXR1cm4gc3RyaW5nLmxlbmd0
aCgpID09IDIgJiYgaXNBU0NJSUFscGhhbnVtZXJpYyhzdHJpbmdbMF0pICYmIGlzQVNDSUlBbHBo
YShzdHJpbmdbMV0pOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVFeHRlbnNpb25UeXBlQ29t
cG9uZW50KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxl
bmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVQVUV4dGVuc2lv
blZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxl
bmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMSAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVPdGhlckV4dGVu
c2lvblZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5n
Lmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMiAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAg
cmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVUS2V5KFN0
cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIHJldHVybiBzdHJpbmcubGVuZ3RoKCkgPT0gMiAmJiBp
c0FTQ0lJQWxwaGEoc3RyaW5nWzBdKSAmJiBpc0FTQ0lJRGlnaXQoc3RyaW5nWzFdKTsKK30KKwor
c3RhdGljIGJvb2wgaXNVbmljb2RlVFZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1
dG8gbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMyAmJiBsZW5n
dGggPD0gOCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlz
QVNDSUlBbHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBUaGUgSXNT
dHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnIGFic3RyYWN0IG9wZXJhdGlvbiB2ZXJpZmllcyB0
aGF0IHRoZSBsb2NhbGUgYXJndW1lbnQgKHdoaWNoIG11c3QgYmUgYSBTdHJpbmcgdmFsdWUpCisv
LworLy8gICAgIHJlcHJlc2VudHMgYSB3ZWxsLWZvcm1lZCAiVW5pY29kZSBCQ1AgNDcgbG9jYWxl
IGlkZW50aWZpZXIiIGFzIHNwZWNpZmllZCBpbiBVbmljb2RlIFRlY2huaWNhbCBTdGFuZGFyZCAz
NSBzZWN0aW9uIDMuMiwKKy8vICAgICBkb2VzIG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50
IHN1YnRhZ3MsIGFuZAorLy8gICAgIGRvZXMgbm90IGluY2x1ZGUgZHVwbGljYXRlIHNpbmdsZXRv
biBzdWJ0YWdzLgorLy8KKy8vICBUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIHJldHVybnMgdHJ1ZSBp
ZiBsb2NhbGUgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBFQk5GIGdyYW1tYXIgaW4gc2VjdGlv
biAzLjIgb2YgdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkIDM1LAorLy8gIHN0YXJ0aW5n
IHdpdGggdW5pY29kZV9sb2NhbGVfaWQsIGFuZCBkb2VzIG5vdCBjb250YWluIGR1cGxpY2F0ZSB2
YXJpYW50IG9yIHNpbmdsZXRvbiBzdWJ0YWdzIChvdGhlciB0aGFuIGFzIGEgcHJpdmF0ZSB1c2Ug
c3VidGFnKS4KKy8vICBJdCByZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4gVGVybWluYWwgdmFsdWUg
Y2hhcmFjdGVycyBpbiB0aGUgZ3JhbW1hciBhcmUgaW50ZXJwcmV0ZWQgYXMgdGhlIFVuaWNvZGUg
ZXF1aXZhbGVudHMgb2YgdGhlIEFTQ0lJIG9jdGV0IHZhbHVlcyBnaXZlbi4KKy8vCisvLyBodHRw
czovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVW5pY29kZV9sb2NhbGVfaWRlbnRpZmllcgor
Y2xhc3MgTGFuZ3VhZ2VUYWdQYXJzZXIgeworcHVibGljOgorICAgIExhbmd1YWdlVGFnUGFyc2Vy
KFN0cmluZ1ZpZXcgdGFnKQorICAgICAgICA6IG1fcmFuZ2UodGFnLnNwbGl0QWxsb3dpbmdFbXB0
eUVudHJpZXMoJy0nKSkKKyAgICAgICAgLCBtX2N1cnNvcihtX3JhbmdlLmJlZ2luKCkpCisgICAg
eworICAgICAgICBBU1NFUlQobV9jdXJzb3IgIT0gbV9yYW5nZS5lbmQoKSk7CisgICAgICAgIG1f
Y3VycmVudCA9ICptX2N1cnNvcjsKKyAgICB9CisKKyAgICBib29sIHBhcnNlVW5pY29kZUxvY2Fs
ZUlkKCk7CisgICAgYm9vbCBwYXJzZVVuaWNvZGVMYW5ndWFnZUlkKCk7CisKKyAgICBib29sIGlz
RU9TKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2N1cnNvciA9PSBtX3JhbmdlLmVuZCgpOwor
ICAgIH0KKworICAgIGJvb2wgbmV4dCgpCisgICAgeworICAgICAgICBpZiAoaXNFT1MoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICArK21fY3Vyc29yOworICAgICAgICBp
ZiAoaXNFT1MoKSkgeworICAgICAgICAgICAgbV9jdXJyZW50ID0gU3RyaW5nVmlldygpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1fY3VycmVudCA9ICpt
X2N1cnNvcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJv
b2wgcGFyc2VFeHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKCk7CisKKyAgICBib29sIHBhcnNlVW5p
Y29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisgICAgYm9vbCBwYXJzZVRyYW5zZm9ybWVkRXh0
ZW5zaW9uQWZ0ZXJQcmVmaXgoKTsKKyAgICBib29sIHBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclBy
ZWZpeCgpOworICAgIGJvb2wgcGFyc2VQVUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisKKyAgICBT
dHJpbmdWaWV3OjpTcGxpdFJlc3VsdCBtX3JhbmdlOworICAgIFN0cmluZ1ZpZXc6OlNwbGl0UmVz
dWx0OjpJdGVyYXRvciBtX2N1cnNvcjsKKyAgICBTdHJpbmdWaWV3IG1fY3VycmVudDsKK307CisK
K2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxvY2FsZUlkKCkKK3sKKyAgICAv
LyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgQVNTRVJUKCFpc0VPUygpKTsKKyAgICBpZiAoIXBh
cnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChp
c0VPUygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIXBhcnNlRXh0ZW5zaW9uc0Fu
ZFBVRXh0ZW5zaW9ucygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKQor
eworICAgIC8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgID0gdW5pY29kZV9sYW5ndWFnZV9zdWJ0YWcg
KHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0YWcpPyAoc2VwIHVuaWNvZGVfcmVnaW9uX3N1YnRhZyk/
IChzZXAgdW5pY29kZV92YXJpYW50X3N1YnRhZykqIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOwor
ICAgIGlmICghaXNVbmljb2RlTGFuZ3VhZ2VTdWJ0YWcobV9jdXJyZW50KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghbmV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGlmIChpc1VuaWNvZGVTY3JpcHRTdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpZiAoIW5l
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChpc1VuaWNv
ZGVSZWdpb25TdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIEhhc2hTZXQ8VmFyaWFudENvZGU+IHZh
cmlhbnRDb2RlczsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAoIWlzVW5pY29kZVZh
cmlhbnRTdWJ0YWcobV9jdXJyZW50KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWlzc3RydWN0dXJhbGx5dmFsaWRsYW5n
dWFnZXRhZworICAgICAgICAvLyBkb2VzIG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50IHN1
YnRhZ3MKKyAgICAgICAgaWYgKCF2YXJpYW50Q29kZXMuYWRkKHBhcnNlVmFyaWFudENvZGUobV9j
dXJyZW50KSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aWYgKCFuZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wg
TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCkKK3sK
KyAgICAvLyAoKHNlcCBrZXl3b3JkKSsgfCAoc2VwIGF0dHJpYnV0ZSkrIChzZXAga2V5d29yZCkq
KSA7CisgICAgLy8KKyAgICAvLyBrZXl3b3JkID0ga2V5IChzZXAgdHlwZSk/IDsKKyAgICAvLyBr
ZXkgPSBhbHBoYW51bSBhbHBoYSA7CisgICAgLy8gdHlwZSA9IGFscGhhbnVtezMsOH0gKHNlcCBh
bHBoYW51bXszLDh9KSogOworICAgIC8vIGF0dHJpYnV0ZSA9IGFscGhhbnVtezMsOH0gOworICAg
IEFTU0VSVCghaXNFT1MoKSk7CisgICAgYm9vbCBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IGZhbHNl
OworICAgIGlmIChpc1VuaWNvZGVFeHRlbnNpb25BdHRyaWJ1dGUobV9jdXJyZW50KSkgeworICAg
ICAgICBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IHRydWU7CisgICAgICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgICAgICBpZiAoIWlzVW5pY29kZUV4dGVuc2lvbkF0dHJpYnV0ZShtX2N1cnJlbnQp
KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXNV
bmljb2RlRXh0ZW5zaW9uS2V5KG1fY3VycmVudCkpIHsKKyAgICAgICAgaXNBdHRyaWJ1dGVPcktl
eXdvcmQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKCFp
c1VuaWNvZGVFeHRlbnNpb25LZXkobV9jdXJyZW50KSkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVW5pY29k
ZUV4dGVuc2lvblR5cGVDb21wb25lbnQobV9jdXJyZW50KSkKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KCFpc0F0dHJpYnV0ZU9yS2V5d29yZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biB0cnVlOworfQorCitib29sIExhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVRyYW5zZm9ybWVkRXh0
ZW5zaW9uQWZ0ZXJQcmVmaXgoKQoreworICAgIC8vICgoc2VwIHRsYW5nIChzZXAgdGZpZWxkKSop
IHwgKHNlcCB0ZmllbGQpKykgOworICAgIC8vCisgICAgLy8gdGxhbmcgPSB1bmljb2RlX2xhbmd1
YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2NyaXB0X3N1YnRhZyk/IChzZXAgdW5pY29kZV9yZWdp
b25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3ZhcmlhbnRfc3VidGFnKSogOworICAgIC8vIHRmaWVs
ZCA9IHRrZXkgdHZhbHVlOworICAgIC8vIHRrZXkgPSBhbHBoYSBkaWdpdCA7CisgICAgLy8gdHZh
bHVlID0gKHNlcCBhbHBoYW51bXszLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAg
Ym9vbCBpc1RMYW5nT3JURmllbGQgPSBmYWxzZTsKKyAgICBpZiAoaXNVbmljb2RlTGFuZ3VhZ2VT
dWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpc1RMYW5nT3JURmllbGQgPSB0cnVlOworICAg
ICAgICBpZiAoIXBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKGlzRU9TKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAKLSAgICBBU1NFUlQoc3VidGFncy5zaXplKCkgPj0gMSk7Ci0gICAgdW5zaWduZWQgY3Vy
c29yID0gMDsKLSAgICBpZiAoIWlzVW5pY29kZUxhbmd1YWdlU3VidGFnKHN1YnRhZ3NbY3Vyc29y
XSkpCisgICAgaWYgKGlzVW5pY29kZVRLZXkobV9jdXJyZW50KSkgeworICAgICAgICBpc1RMYW5n
T3JURmllbGQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYg
KCFpc1VuaWNvZGVUS2V5KG1fY3VycmVudCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
IWlzVExhbmdPclRGaWVsZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICsrY3Vyc29yOwor
ICAgIHJldHVybiB0cnVlOworfQogCi0gICAgaWYgKGN1cnNvciA9PSBzdWJ0YWdzLnNpemUoKSkK
K2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclByZWZpeCgp
Cit7CisgICAgLy8gKHNlcCBhbHBoYW51bXsyLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7
CisgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW5leHQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKGlzVW5pY29kZVNjcmlwdFN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0pKQotICAgICAg
ICArK2N1cnNvcjsKIAotICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5zaXplKCkpCisgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKG1f
Y3VycmVudCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCFuZXh0KCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQ
YXJzZXI6OnBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCgpCit7CisgICAgLy8gKHNlcCBhbHBo
YW51bXsxLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgaWYgKCFpc1VuaWNvZGVQ
VUV4dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIW5leHQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGlzVW5pY29kZVJlZ2lv
blN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0pKQotICAgICAgICArK2N1cnNvcjsKIAogICAgIHdoaWxl
ICh0cnVlKSB7Ci0gICAgICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5zaXplKCkpCisgICAgICAg
IGlmICghaXNVbmljb2RlUFVFeHRlbnNpb25WYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmICghbmV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGlmICghaXNVbmljb2RlVmFyaWFudFN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0p
KQorICAgIH0KK30KKworYm9vbCBMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VFeHRlbnNpb25zQW5k
UFVFeHRlbnNpb25zKCkKK3sKKyAgICAvLyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVf
bGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisg
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgLy8KKyAg
ICAvLyBleHRlbnNpb25zID0gdW5pY29kZV9sb2NhbGVfZXh0ZW5zaW9ucworICAgIC8vICAgICAg
ICAgICAgfCB0cmFuc2Zvcm1lZF9leHRlbnNpb25zCisgICAgLy8gICAgICAgICAgICB8IG90aGVy
X2V4dGVuc2lvbnMgOworICAgIC8vCisgICAgLy8gcHVfZXh0ZW5zaW9ucyA9IHNlcCBbeFhdIChz
ZXAgYWxwaGFudW17MSw4fSkrIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOworICAgIEJpdG1hcDxu
dW1iZXJPZlVuaWNvZGVTaW5nbGV0b25zPiBzaW5nbGV0b25zU2V0IHsgfTsKKyAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICBpZiAobV9jdXJyZW50Lmxlbmd0aCgpICE9IDEpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgVUNoYXIgcHJlZml4Q29kZSA9IG1fY3VycmVudFswXTsK
KyAgICAgICAgaWYgKCFpc0FTQ0lJQWxwaGFudW1lcmljKHByZWZpeENvZGUpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3Nl
Yy1pc3N0cnVjdHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKKyAgICAgICAgLy8gZG9lcyBub3QgaW5j
bHVkZSBkdXBsaWNhdGUgc2luZ2xldG9uIHN1YnRhZ3MuCisgICAgICAgIC8vCisgICAgICAgIC8v
IGh0dHBzOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNVbmljb2RlX2xvY2FsZV9pZGVudGlm
aWVyCisgICAgICAgIC8vIEFzIGlzIG9mdGVuIHRoZSBjYXNlLCB0aGUgY29tcGxldGUgc3ludGFj
dGljIGNvbnN0cmFpbnRzIGFyZSBub3QgZWFzaWx5IGNhcHR1cmVkIGJ5IEFCTkYsCisgICAgICAg
IC8vIHNvIHRoZXJlIGlzIGEgZnVydGhlciBjb25kaXRpb246IFRoZXJlIGNhbm5vdCBiZSBtb3Jl
IHRoYW4gb25lIGV4dGVuc2lvbiB3aXRoIHRoZSBzYW1lIHNpbmdsZXRvbiAoLWEtLCDigKYsIC10
LSwgLXUtLCDigKYpLgorICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIHByaXZhdGUgdXNlIGV4dGVu
c2lvbiAoLXgtKSBtdXN0IGNvbWUgYWZ0ZXIgYWxsIG90aGVyIGV4dGVuc2lvbnMuCisgICAgICAg
IGlmIChzaW5nbGV0b25zU2V0LmdldChjb252ZXJ0VG9Vbmljb2RlU2luZ2xldG9uSW5kZXgocHJl
Zml4Q29kZSkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICArK2N1cnNvcjsK
KyAgICAgICAgc2luZ2xldG9uc1NldC5zZXQoY29udmVydFRvVW5pY29kZVNpbmdsZXRvbkluZGV4
KHByZWZpeENvZGUpLCB0cnVlKTsKKworICAgICAgICBzd2l0Y2ggKHByZWZpeENvZGUpIHsKKyAg
ICAgICAgY2FzZSAndSc6CisgICAgICAgIGNhc2UgJ1UnOiB7CisgICAgICAgICAgICAvLyB1bmlj
b2RlX2xvY2FsZV9leHRlbnNpb25zID0gc2VwIFt1VV0gKChzZXAga2V5d29yZCkrIHwgKHNlcCBh
dHRyaWJ1dGUpKyAoc2VwIGtleXdvcmQpKikgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVVuaWNv
ZGVFeHRlbnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmIChpc0VPUygpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7IC8vIE5leHQgZXh0ZW5zaW9uLgorICAgICAgICB9CisgICAgICAg
IGNhc2UgJ3QnOgorICAgICAgICBjYXNlICdUJzogeworICAgICAgICAgICAgLy8gdHJhbnNmb3Jt
ZWRfZXh0ZW5zaW9ucyA9IHNlcCBbdFRdICgoc2VwIHRsYW5nIChzZXAgdGZpZWxkKSopIHwgKHNl
cCB0ZmllbGQpKykgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVRyYW5zZm9ybWVkRXh0ZW5zaW9u
QWZ0ZXJQcmVmaXgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoaXNFT1MoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOyAvLyBOZXh0IGV4dGVuc2lvbi4KKyAgICAgICAgfQorICAgICAgICBjYXNlICd4JzoK
KyAgICAgICAgY2FzZSAnWCc6IHsKKyAgICAgICAgICAgIC8vIHB1X2V4dGVuc2lvbnMgPSBzZXAg
W3hYXSAoc2VwIGFscGhhbnVtezEsOH0pKyA7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXBhcnNlUFVFeHRl
bnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiBwdV9leHRlbnNpb25zIGFwcGVhciwgbm8gZXh0ZW5z
aW9ucyBjYW4gZm9sbG93IGFmdGVyIHRoYXQuIFRoaXMgbXVzdCBiZSB0aGUgZW5kIG9mIHVuaWNv
ZGVfbG9jYWxlX2lkLgorICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAg
IC8vIG90aGVyX2V4dGVuc2lvbnMgPSBzZXAgW2FscGhhbnVtLVt0VHVVeFhdXSAoc2VwIGFscGhh
bnVtezIsOH0pKyA7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclBy
ZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChp
c0VPUygpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYnJlYWs7
IC8vIE5leHQgZXh0ZW5zaW9uLgorICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9CiAKKy8v
IGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFsbHl2YWxpZGxhbmd1YWdl
dGFnCitib29sIGlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyhTdHJpbmdWaWV3IHN0cmlu
ZykKK3sKKyAgICBMYW5ndWFnZVRhZ1BhcnNlciBwYXJzZXIoc3RyaW5nKTsKKyAgICBpZiAoIXBh
cnNlci5wYXJzZVVuaWNvZGVMb2NhbGVJZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFwYXJzZXIuaXNFT1MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0
cnVlOworfQorCisvLyB1bmljb2RlX2xhbmd1YWdlX2lkLCBidXQgaW50ZXJzZWN0aW9uIG9mIEJD
UDQ3IGFuZCBVVFMzNS4KKy8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgPQorLy8gICAgIHwgdW5pY29k
ZV9sYW5ndWFnZV9zdWJ0YWcgKHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0YWcpPyAoc2VwIHVuaWNv
ZGVfcmVnaW9uX3N1YnRhZyk/IChzZXAgdW5pY29kZV92YXJpYW50X3N1YnRhZykqIDsKKy8vIGh0
dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZGlzcGxheW5hbWVzL2lzc3Vlcy83
OQorYm9vbCBpc1VuaWNvZGVMYW5ndWFnZUlkKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIExh
bmd1YWdlVGFnUGFyc2VyIHBhcnNlcihzdHJpbmcpOworICAgIGlmICghcGFyc2VyLnBhcnNlVW5p
Y29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghcGFyc2Vy
LmlzRU9TKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBpc1dlbGxGb3JtZWRDdXJyZW5jeUNvZGUoU3RyaW5nVmlldyBjdXJyZW5jeSkKIHsKICAg
ICByZXR1cm4gY3VycmVuY3kubGVuZ3RoKCkgPT0gMyAmJiBjdXJyZW5jeS5pc0FsbFNwZWNpYWxD
aGFyYWN0ZXJzPGlzQVNDSUlBbHBoYT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaAppbmRleCAwYjBhN2JiNmJhNDFjMWVmMjkxYTI4MjIzYjg1MDM4MTg3Zjc2
OGQ2Li42OWEyNzUzNjJlNWRmNzA4YTVjZjExNGNjOTUyZTliMGZkNmVhMzg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0xMTcsNiArMTE3LDcgQEAg
Ym9vbCBpc1VuaWNvZGVTY3JpcHRTdWJ0YWcoU3RyaW5nVmlldyk7CiBib29sIGlzVW5pY29kZVJl
Z2lvblN1YnRhZyhTdHJpbmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlVmFyaWFudFN1YnRhZyhTdHJp
bmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlTGFuZ3VhZ2VJZChTdHJpbmdWaWV3KTsKK2Jvb2wgaXNT
dHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKFN0cmluZ1ZpZXcpOwogCiBib29sIGlzV2VsbEZv
cm1lZEN1cnJlbmN5Q29kZShTdHJpbmdWaWV3KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405784</attachid>
            <date>2020-08-01 05:49:24 -0700</date>
            <delta_ts>2020-08-02 18:33:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215058-20200801054923.patch</filename>
            <type>text/plain</type>
            <size>48389</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZDUyNWFkZjEyNTQxNGViNGQyN2RlNDU4YmQ0YTJkOGY0MjY5ODQ3Li5hZDAxMWI5OTdkNDhhZTY2
NDZhMDMzNjMzODVkNmVjZDFhYTUwYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMC0wOC0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBJbnRsIExhbmd1YWdlIFRhZyBQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTA1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9J
bnRsTG9jYWxlLmNwcDoKKyAgICAgICAgKEpTQzo6TG9jYWxlSURCdWlsZGVyOjppbml0aWFsaXpl
KToKKyAgICAgICAgKEpTQzo6SW50bExvY2FsZTo6aW5pdGlhbGl6ZUxvY2FsZSk6CisgICAgICAg
ICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y2Fub25pY2FsaXplTG9j
YWxlTGlzdCk6CisgICAgICAgIChKU0M6OnBhcnNlVmFyaWFudENvZGUpOgorICAgICAgICAoSlND
Ojpjb252ZXJ0VG9Vbmljb2RlU2luZ2xldG9uSW5kZXgpOgorICAgICAgICAoSlNDOjppc1VuaWNv
ZGVFeHRlbnNpb25BdHRyaWJ1dGUpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVFeHRlbnNpb25L
ZXkpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVFeHRlbnNpb25UeXBlQ29tcG9uZW50KToKKyAg
ICAgICAgKEpTQzo6aXNVbmljb2RlUFVFeHRlbnNpb25WYWx1ZSk6CisgICAgICAgIChKU0M6Omlz
VW5pY29kZU90aGVyRXh0ZW5zaW9uVmFsdWUpOgorICAgICAgICAoSlNDOjppc1VuaWNvZGVUS2V5
KToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlVFZhbHVlKToKKyAgICAgICAgKEpTQzo6TGFuZ3Vh
Z2VUYWdQYXJzZXI6Okxhbmd1YWdlVGFnUGFyc2VyKToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VU
YWdQYXJzZXI6OmlzRU9TKToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJzZXI6Om5leHQp
OgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlTG9jYWxlSWQp
OgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlTGFuZ3VhZ2VJ
ZCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVVuaWNvZGVFeHRlbnNp
b25BZnRlclByZWZpeCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVRy
YW5zZm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRh
Z1BhcnNlcjo6cGFyc2VPdGhlckV4dGVuc2lvbkFmdGVyUHJlZml4KToKKyAgICAgICAgKEpTQzo6
TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCk6CisgICAgICAg
IChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZUV4dGVuc2lvbnNBbmRQVUV4dGVuc2lvbnMp
OgorICAgICAgICAoSlNDOjppc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcpOgorICAgICAg
ICAoSlNDOjppc1VuaWNvZGVMYW5ndWFnZUlkKToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmpl
Y3QuaDoKKwogMjAyMC0wNy0zMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIE9wdGlvbnMgc2V0dGVyIHRvIHdoZXJlIHdlIGFsbG93IGFjY2Vz
cyB0byB0aGUgT3B0aW9ucyBvYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZS5jcHAKaW5kZXggNGVhYzIwMTg0YTcwYjc5MjczZjE3NzJmMDk3N2RlOGU4YWU0
Y2E3Yy4uNGFhMmE1MGJhZjY1ZmE4OTE4OWE3MDA5MzM0NDJkNzczYzg2NzM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKQEAgLTY4LDcgKzY4LDcg
QEAgdm9pZCBJbnRsTG9jYWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiAKIGNsYXNzIExvY2FsZUlEQnVpbGRlciBmaW5hbCB7CiBwdWJsaWM6Ci0g
ICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IENTdHJpbmcmKTsKKyAgICBib29sIGluaXRpYWxpemUo
Y29uc3QgU3RyaW5nJik7CiAgICAgQ1N0cmluZyB0b0Nhbm9uaWNhbCgpOwogCiAgICAgdm9pZCBv
dmVycmlkZUxhbmd1YWdlU2NyaXB0UmVnaW9uKFN0cmluZ1ZpZXcgbGFuZ3VhZ2UsIFN0cmluZ1Zp
ZXcgc2NyaXB0LCBTdHJpbmdWaWV3IHJlZ2lvbik7CkBAIC03OCw5ICs3OCwxMiBAQCBjbGFzcyBM
b2NhbGVJREJ1aWxkZXIgZmluYWwgewogICAgIFZlY3RvcjxjaGFyLCAzMj4gbV9idWZmZXI7CiB9
OwogCi1ib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBDU3RyaW5nJiB0YWcp
Citib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIHRhZykKIHsK
LSAgICBtX2J1ZmZlciA9IGxvY2FsZUlEQnVmZmVyRm9yTGFuZ3VhZ2VUYWcodGFnKTsKKyAgICBp
ZiAoIWlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyh0YWcpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgQVNTRVJUKHRhZy5pc0FsbEFTQ0lJKCkpOworICAgIG1fYnVmZmVyID0gbG9j
YWxlSURCdWZmZXJGb3JMYW5ndWFnZVRhZyh0YWcuYXNjaWkoKSk7CiAgICAgcmV0dXJuIG1fYnVm
ZmVyLnNpemUoKTsKIH0KIApAQCAtMjE2LDcgKzIxOSw3IEBAIHZvaWQgSW50bExvY2FsZTo6aW5p
dGlhbGl6ZUxvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcm
IHRhCiAgICAgfQogCiAgICAgTG9jYWxlSURCdWlsZGVyIGxvY2FsZUlEOwotICAgIGlmICghbG9j
YWxlSUQuaW5pdGlhbGl6ZSh0YWcudXRmOCgpKSkgeworICAgIGlmICghbG9jYWxlSUQuaW5pdGlh
bGl6ZSh0YWcpKSB7CiAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiaW52YWxpZCBsYW5ndWFnZSB0YWciX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBjNWE2MDg5
OThiNjYwNjk0ZjJjYThjMGEyMzdjNmRmNTMwYjBiZjU4Li5jMjQwOWVmOTIzMTljMGI3YWUxM2I3
NDBjODRjMGJhM2Q3MzdkOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsT2JqZWN0LmNwcApAQCAtMzkzLDcgKzM5Myw2IEBAIGJvb2wgaXNVbmljb2RlTG9jYWxlSWRl
bnRpZmllclR5cGUoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS8v
IGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFsbHl2YWxpZGxhbmd1YWdl
dGFnCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWNhbm9uaWNhbGl6ZXVuaWNvZGVs
b2NhbGVpZAogc3RhdGljIFN0cmluZyBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhjb25zdCBDU3Ry
aW5nJiB0YWcpCiB7CkBAIC00NTQsMzcgKzQ1MywzNCBAQCBWZWN0b3I8U3RyaW5nPiBjYW5vbmlj
YWxpemVMb2NhbGVMaXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9j
YQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHJhd1RhZzsKKyAgICAg
ICAgICAgIFN0cmluZyB0YWc7CiAgICAgICAgICAgICBpZiAoa1ZhbHVlLmluaGVyaXRzPEludGxM
b2NhbGU+KHZtKSkKLSAgICAgICAgICAgICAgICByYXdUYWcgPSBqc0Nhc3Q8SW50bExvY2FsZSo+
KGtWYWx1ZSktPnRvU3RyaW5nKCkudHJ5R2V0VXRmOCgpOworICAgICAgICAgICAgICAgIHRhZyA9
IGpzQ2FzdDxJbnRsTG9jYWxlKj4oa1ZhbHVlKS0+dG9TdHJpbmcoKTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIEpTU3RyaW5nKiB0YWcgPSBrVmFsdWUudG9TdHJpbmcoZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogc3RyaW5nID0ga1ZhbHVlLnRv
U3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgVmVjdG9yPFN0cmluZz4oKSk7CiAKLSAgICAgICAgICAgICAgICBhdXRvIHRhZ1Zh
bHVlID0gdGFnLT52YWx1ZShnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgIHRhZyA9IHN0
cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBWZWN0b3I8U3RyaW5nPigpKTsKLQotICAgICAgICAgICAgICAgIHJhd1Rh
ZyA9IHRhZ1ZhbHVlLnRyeUdldFV0ZjgoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICghcmF3VGFnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJhd1RhZy5lcnJvcigpID09IFVURjhD
b252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KQotICAgICAgICAgICAgICAgICAgICB0aHJvd091
dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6
ZWRUYWcgPSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhyYXdUYWcudmFsdWUoKSk7Ci0gICAgICAg
ICAgICBpZiAoY2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgewotICAgICAgICAgICAgICAgIFN0
cmluZyBlcnJvck1lc3NhZ2UgPSB0cnlNYWtlU3RyaW5nKCJpbnZhbGlkIGxhbmd1YWdlIHRhZzog
IiwgcmF3VGFnLT5kYXRhKCkpOwotICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZXJyb3JN
ZXNzYWdlKSkgewotICAgICAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCkpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgaWYgKGlzU3RydWN0dXJhbGx5
VmFsaWRMYW5ndWFnZVRhZyh0YWcpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKHRhZy5pc0Fs
bEFTQ0lJKCkpOworICAgICAgICAgICAgICAgIFN0cmluZyBjYW5vbmljYWxpemVkVGFnID0gY2Fu
b25pY2FsaXplTGFuZ3VhZ2VUYWcodGFnLmFzY2lpKCkpOworICAgICAgICAgICAgICAgIGlmICgh
Y2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2Vl
blNldC5hZGQoY2Fub25pY2FsaXplZFRhZykuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNlZW4uYXBwZW5kKGNhbm9uaWNhbGl6ZWRUYWcpOworICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3Qs
IGVycm9yTWVzc2FnZSkpOwotICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGlmIChzZWVuU2V0LmFkZChjYW5vbmljYWxpemVkVGFnKS5pc05l
d0VudHJ5KQotICAgICAgICAgICAgICAgIHNlZW4uYXBwZW5kKGNhbm9uaWNhbGl6ZWRUYWcpOwor
ICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRyeU1ha2VTdHJpbmcoImludmFsaWQg
bGFuZ3VhZ2UgdGFnOiAiLCB0YWcpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFlcnJvck1l
c3NhZ2UpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIGVy
cm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtODQzLDQxICs4MzksNDEyIEBAIGJvb2wgaXNVbmljb2RlVmFyaWFudFN1YnRhZyhTdHJp
bmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gbGVuZ3RoID09IDQgJiYgaXNBU0NJSURpZ2l0KHN0
cmluZ1swXSkgJiYgc3RyaW5nLnN1YnN0cmluZygxKS5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlz
QVNDSUlBbHBoYW51bWVyaWM+KCk7CiB9CiAKLS8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQsIGJ1dCBp
bnRlcnNlY3Rpb24gb2YgQkNQNDcgYW5kIFVUUzM1LgotLy8gdW5pY29kZV9sYW5ndWFnZV9pZCA9
Ci0vLyAgICAgfCB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2NyaXB0X3N1
YnRhZyk/IChzZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3ZhcmlhbnRf
c3VidGFnKSogOwotLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaW50bC1kaXNw
bGF5bmFtZXMvaXNzdWVzLzc5Ci1ib29sIGlzVW5pY29kZUxhbmd1YWdlSWQoU3RyaW5nVmlldyBz
dHJpbmcpCit1c2luZyBWYXJpYW50Q29kZSA9IHVpbnQ2NF90Oworc3RhdGljIFZhcmlhbnRDb2Rl
IHBhcnNlVmFyaWFudENvZGUoU3RyaW5nVmlldyBzdHJpbmcpCiB7Ci0gICAgVmVjdG9yPFN0cmlu
Z1ZpZXcsIDQ+IHN1YnRhZ3M7Ci0gICAgZm9yIChhdXRvIHN1YnRhZyA6IHN0cmluZy5zcGxpdEFs
bG93aW5nRW1wdHlFbnRyaWVzKCctJykpCi0gICAgICAgIHN1YnRhZ3MuYXBwZW5kKHN1YnRhZyk7
CisgICAgQVNTRVJUKGlzVW5pY29kZVZhcmlhbnRTdWJ0YWcoc3RyaW5nKSk7CisgICAgQVNTRVJU
KHN0cmluZy5pc0FsbEFTQ0lJKCkpOworICAgIEFTU0VSVChzdHJpbmcubGVuZ3RoKCkgPD0gOCk7
CisgICAgQVNTRVJUKHN0cmluZy5sZW5ndGgoKSA+PSAxKTsKKyAgICBzdHJ1Y3QgQ29kZSB7Cisg
ICAgICAgIExDaGFyIGNoYXJhY3RlcnNbOF0geyB9OworICAgIH07CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3Vuc2lnbmVkX3Y8TENoYXI+KTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihW
YXJpYW50Q29kZSkgPT0gc2l6ZW9mKENvZGUpKTsKKyAgICBDb2RlIGNvZGUgeyB9OworICAgIGZv
ciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHN0cmluZy5sZW5ndGgoKTsgKytpbmRleCkK
KyAgICAgICAgY29kZS5jaGFyYWN0ZXJzW2luZGV4XSA9IHN0cmluZ1tpbmRleF07CisgICAgVmFy
aWFudENvZGUgcmVzdWx0ID0gYml0d2lzZV9jYXN0PFZhcmlhbnRDb2RlPihjb2RlKTsKKyAgICBB
U1NFUlQoIXJlc3VsdCk7IC8vIE5vdCBwb3NzaWJsZSBzaW5jZSBzb21lIGNoYXJhY3RlcnMgZXhp
c3QuCisgICAgQVNTRVJUKHJlc3VsdCAhPSBzdGF0aWNfY2FzdDxWYXJpYW50Q29kZT4oLTEpKTsg
Ly8gTm90IHBvc3NpYmxlIHNpbmNlIGFsbCBjaGFyYWN0ZXJzIGFyZSBBU0NJSSAobm90IExhdGlu
LTEpLgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjb252ZXJ0VG9V
bmljb2RlU2luZ2xldG9uSW5kZXgoVUNoYXIgc2luZ2xldG9uKQoreworICAgIEFTU0VSVChpc0FT
Q0lJQWxwaGFudW1lcmljKHNpbmdsZXRvbikpOworICAgIHNpbmdsZXRvbiA9IHRvQVNDSUlMb3dl
cihzaW5nbGV0b24pOworICAgIC8vIDAgLSA5ID0+IG51bWVyaWMKKyAgICAvLyAxMCAtIDM1ID0+
IGFscGhhCisgICAgaWYgKGlzQVNDSUlEaWdpdChzaW5nbGV0b24pKQorICAgICAgICByZXR1cm4g
c2luZ2xldG9uIC0gJzAnOworICAgIHJldHVybiAoc2luZ2xldG9uIC0gJ2EnKSArIDEwOworfQor
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlVuaWNvZGVTaW5nbGV0b25zID0gMTAg
KyAyNjsgLy8gRGlnaXRzICsgQWxwaGFiZXRzLgorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVFeHRl
bnNpb25BdHRyaWJ1dGUoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgYXV0byBsZW5ndGggPSBz
dHJpbmcubGVuZ3RoKCk7CisgICAgaWYgKGxlbmd0aCA+PSAzICYmIGxlbmd0aCA8PSA4KQorICAg
ICAgICByZXR1cm4gc3RyaW5nLmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJSUFscGhhbnVt
ZXJpYz4oKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGlzVW5pY29kZUV4
dGVuc2lvbktleShTdHJpbmdWaWV3IHN0cmluZykKK3sKKyAgICByZXR1cm4gc3RyaW5nLmxlbmd0
aCgpID09IDIgJiYgaXNBU0NJSUFscGhhbnVtZXJpYyhzdHJpbmdbMF0pICYmIGlzQVNDSUlBbHBo
YShzdHJpbmdbMV0pOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVFeHRlbnNpb25UeXBlQ29t
cG9uZW50KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxl
bmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVQVUV4dGVuc2lv
blZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxl
bmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMSAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAgcmV0
dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVPdGhlckV4dGVu
c2lvblZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5n
Lmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMiAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAg
cmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVUS2V5KFN0
cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIHJldHVybiBzdHJpbmcubGVuZ3RoKCkgPT0gMiAmJiBp
c0FTQ0lJQWxwaGEoc3RyaW5nWzBdKSAmJiBpc0FTQ0lJRGlnaXQoc3RyaW5nWzFdKTsKK30KKwor
c3RhdGljIGJvb2wgaXNVbmljb2RlVFZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1
dG8gbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMyAmJiBsZW5n
dGggPD0gOCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlz
QVNDSUlBbHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBUaGUgSXNT
dHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnIGFic3RyYWN0IG9wZXJhdGlvbiB2ZXJpZmllcyB0
aGF0IHRoZSBsb2NhbGUgYXJndW1lbnQgKHdoaWNoIG11c3QgYmUgYSBTdHJpbmcgdmFsdWUpCisv
LworLy8gICAgIHJlcHJlc2VudHMgYSB3ZWxsLWZvcm1lZCAiVW5pY29kZSBCQ1AgNDcgbG9jYWxl
IGlkZW50aWZpZXIiIGFzIHNwZWNpZmllZCBpbiBVbmljb2RlIFRlY2huaWNhbCBTdGFuZGFyZCAz
NSBzZWN0aW9uIDMuMiwKKy8vICAgICBkb2VzIG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50
IHN1YnRhZ3MsIGFuZAorLy8gICAgIGRvZXMgbm90IGluY2x1ZGUgZHVwbGljYXRlIHNpbmdsZXRv
biBzdWJ0YWdzLgorLy8KKy8vICBUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIHJldHVybnMgdHJ1ZSBp
ZiBsb2NhbGUgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBFQk5GIGdyYW1tYXIgaW4gc2VjdGlv
biAzLjIgb2YgdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkIDM1LAorLy8gIHN0YXJ0aW5n
IHdpdGggdW5pY29kZV9sb2NhbGVfaWQsIGFuZCBkb2VzIG5vdCBjb250YWluIGR1cGxpY2F0ZSB2
YXJpYW50IG9yIHNpbmdsZXRvbiBzdWJ0YWdzIChvdGhlciB0aGFuIGFzIGEgcHJpdmF0ZSB1c2Ug
c3VidGFnKS4KKy8vICBJdCByZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4gVGVybWluYWwgdmFsdWUg
Y2hhcmFjdGVycyBpbiB0aGUgZ3JhbW1hciBhcmUgaW50ZXJwcmV0ZWQgYXMgdGhlIFVuaWNvZGUg
ZXF1aXZhbGVudHMgb2YgdGhlIEFTQ0lJIG9jdGV0IHZhbHVlcyBnaXZlbi4KKy8vCisvLyBodHRw
czovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVW5pY29kZV9sb2NhbGVfaWRlbnRpZmllcgor
Y2xhc3MgTGFuZ3VhZ2VUYWdQYXJzZXIgeworcHVibGljOgorICAgIExhbmd1YWdlVGFnUGFyc2Vy
KFN0cmluZ1ZpZXcgdGFnKQorICAgICAgICA6IG1fcmFuZ2UodGFnLnNwbGl0QWxsb3dpbmdFbXB0
eUVudHJpZXMoJy0nKSkKKyAgICAgICAgLCBtX2N1cnNvcihtX3JhbmdlLmJlZ2luKCkpCisgICAg
eworICAgICAgICBBU1NFUlQobV9jdXJzb3IgIT0gbV9yYW5nZS5lbmQoKSk7CisgICAgICAgIG1f
Y3VycmVudCA9ICptX2N1cnNvcjsKKyAgICB9CisKKyAgICBib29sIHBhcnNlVW5pY29kZUxvY2Fs
ZUlkKCk7CisgICAgYm9vbCBwYXJzZVVuaWNvZGVMYW5ndWFnZUlkKCk7CisKKyAgICBib29sIGlz
RU9TKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2N1cnNvciA9PSBtX3JhbmdlLmVuZCgpOwor
ICAgIH0KKworICAgIGJvb2wgbmV4dCgpCisgICAgeworICAgICAgICBpZiAoaXNFT1MoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICArK21fY3Vyc29yOworICAgICAgICBp
ZiAoaXNFT1MoKSkgeworICAgICAgICAgICAgbV9jdXJyZW50ID0gU3RyaW5nVmlldygpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1fY3VycmVudCA9ICpt
X2N1cnNvcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJv
b2wgcGFyc2VFeHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKCk7CisKKyAgICBib29sIHBhcnNlVW5p
Y29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisgICAgYm9vbCBwYXJzZVRyYW5zZm9ybWVkRXh0
ZW5zaW9uQWZ0ZXJQcmVmaXgoKTsKKyAgICBib29sIHBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclBy
ZWZpeCgpOworICAgIGJvb2wgcGFyc2VQVUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisKKyAgICBT
dHJpbmdWaWV3OjpTcGxpdFJlc3VsdCBtX3JhbmdlOworICAgIFN0cmluZ1ZpZXc6OlNwbGl0UmVz
dWx0OjpJdGVyYXRvciBtX2N1cnNvcjsKKyAgICBTdHJpbmdWaWV3IG1fY3VycmVudDsKK307CisK
K2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxvY2FsZUlkKCkKK3sKKyAgICAv
LyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAg
ICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgQVNTRVJUKCFpc0VPUygpKTsKKyAgICBpZiAoIXBh
cnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChp
c0VPUygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIXBhcnNlRXh0ZW5zaW9uc0Fu
ZFBVRXh0ZW5zaW9ucygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKQor
eworICAgIC8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgID0gdW5pY29kZV9sYW5ndWFnZV9zdWJ0YWcg
KHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0YWcpPyAoc2VwIHVuaWNvZGVfcmVnaW9uX3N1YnRhZyk/
IChzZXAgdW5pY29kZV92YXJpYW50X3N1YnRhZykqIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOwor
ICAgIGlmICghaXNVbmljb2RlTGFuZ3VhZ2VTdWJ0YWcobV9jdXJyZW50KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghbmV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGlmIChpc1VuaWNvZGVTY3JpcHRTdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpZiAoIW5l
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChpc1VuaWNv
ZGVSZWdpb25TdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIEhhc2hTZXQ8VmFyaWFudENvZGU+IHZh
cmlhbnRDb2RlczsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAoIWlzVW5pY29kZVZh
cmlhbnRTdWJ0YWcobV9jdXJyZW50KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWlzc3RydWN0dXJhbGx5dmFsaWRsYW5n
dWFnZXRhZworICAgICAgICAvLyBkb2VzIG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50IHN1
YnRhZ3MKKyAgICAgICAgaWYgKCF2YXJpYW50Q29kZXMuYWRkKHBhcnNlVmFyaWFudENvZGUobV9j
dXJyZW50KSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aWYgKCFuZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wg
TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCkKK3sK
KyAgICAvLyAoKHNlcCBrZXl3b3JkKSsgfCAoc2VwIGF0dHJpYnV0ZSkrIChzZXAga2V5d29yZCkq
KSA7CisgICAgLy8KKyAgICAvLyBrZXl3b3JkID0ga2V5IChzZXAgdHlwZSk/IDsKKyAgICAvLyBr
ZXkgPSBhbHBoYW51bSBhbHBoYSA7CisgICAgLy8gdHlwZSA9IGFscGhhbnVtezMsOH0gKHNlcCBh
bHBoYW51bXszLDh9KSogOworICAgIC8vIGF0dHJpYnV0ZSA9IGFscGhhbnVtezMsOH0gOworICAg
IEFTU0VSVCghaXNFT1MoKSk7CisgICAgYm9vbCBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IGZhbHNl
OworICAgIGlmIChpc1VuaWNvZGVFeHRlbnNpb25BdHRyaWJ1dGUobV9jdXJyZW50KSkgeworICAg
ICAgICBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IHRydWU7CisgICAgICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgICAgICBpZiAoIWlzVW5pY29kZUV4dGVuc2lvbkF0dHJpYnV0ZShtX2N1cnJlbnQp
KQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXNV
bmljb2RlRXh0ZW5zaW9uS2V5KG1fY3VycmVudCkpIHsKKyAgICAgICAgaXNBdHRyaWJ1dGVPcktl
eXdvcmQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKCFp
c1VuaWNvZGVFeHRlbnNpb25LZXkobV9jdXJyZW50KSkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVW5pY29k
ZUV4dGVuc2lvblR5cGVDb21wb25lbnQobV9jdXJyZW50KSkKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KCFpc0F0dHJpYnV0ZU9yS2V5d29yZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biB0cnVlOworfQorCitib29sIExhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVRyYW5zZm9ybWVkRXh0
ZW5zaW9uQWZ0ZXJQcmVmaXgoKQoreworICAgIC8vICgoc2VwIHRsYW5nIChzZXAgdGZpZWxkKSop
IHwgKHNlcCB0ZmllbGQpKykgOworICAgIC8vCisgICAgLy8gdGxhbmcgPSB1bmljb2RlX2xhbmd1
YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2NyaXB0X3N1YnRhZyk/IChzZXAgdW5pY29kZV9yZWdp
b25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3ZhcmlhbnRfc3VidGFnKSogOworICAgIC8vIHRmaWVs
ZCA9IHRrZXkgdHZhbHVlOworICAgIC8vIHRrZXkgPSBhbHBoYSBkaWdpdCA7CisgICAgLy8gdHZh
bHVlID0gKHNlcCBhbHBoYW51bXszLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAg
Ym9vbCBpc1RMYW5nT3JURmllbGQgPSBmYWxzZTsKKyAgICBpZiAoaXNVbmljb2RlTGFuZ3VhZ2VT
dWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpc1RMYW5nT3JURmllbGQgPSB0cnVlOworICAg
ICAgICBpZiAoIXBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKGlzRU9TKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAKLSAgICBBU1NFUlQoc3VidGFncy5zaXplKCkgPj0gMSk7Ci0gICAgdW5zaWduZWQgY3Vy
c29yID0gMDsKLSAgICBpZiAoIWlzVW5pY29kZUxhbmd1YWdlU3VidGFnKHN1YnRhZ3NbY3Vyc29y
XSkpCisgICAgaWYgKGlzVW5pY29kZVRLZXkobV9jdXJyZW50KSkgeworICAgICAgICBpc1RMYW5n
T3JURmllbGQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYg
KCFpc1VuaWNvZGVUS2V5KG1fY3VycmVudCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
IWlzVExhbmdPclRGaWVsZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICsrY3Vyc29yOwor
ICAgIHJldHVybiB0cnVlOworfQogCi0gICAgaWYgKGN1cnNvciA9PSBzdWJ0YWdzLnNpemUoKSkK
K2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclByZWZpeCgp
Cit7CisgICAgLy8gKHNlcCBhbHBoYW51bXsyLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7
CisgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW5leHQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKGlzVW5pY29kZVNjcmlwdFN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0pKQotICAgICAg
ICArK2N1cnNvcjsKIAotICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5zaXplKCkpCisgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKG1f
Y3VycmVudCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCFuZXh0KCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQ
YXJzZXI6OnBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCgpCit7CisgICAgLy8gKHNlcCBhbHBo
YW51bXsxLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgaWYgKCFpc1VuaWNvZGVQ
VUV4dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIW5leHQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGlzVW5pY29kZVJlZ2lv
blN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0pKQotICAgICAgICArK2N1cnNvcjsKIAogICAgIHdoaWxl
ICh0cnVlKSB7Ci0gICAgICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5zaXplKCkpCisgICAgICAg
IGlmICghaXNVbmljb2RlUFVFeHRlbnNpb25WYWx1ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmICghbmV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGlmICghaXNVbmljb2RlVmFyaWFudFN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0p
KQorICAgIH0KK30KKworYm9vbCBMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VFeHRlbnNpb25zQW5k
UFVFeHRlbnNpb25zKCkKK3sKKyAgICAvLyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVf
bGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisg
ICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgLy8KKyAg
ICAvLyBleHRlbnNpb25zID0gdW5pY29kZV9sb2NhbGVfZXh0ZW5zaW9ucworICAgIC8vICAgICAg
ICAgICAgfCB0cmFuc2Zvcm1lZF9leHRlbnNpb25zCisgICAgLy8gICAgICAgICAgICB8IG90aGVy
X2V4dGVuc2lvbnMgOworICAgIC8vCisgICAgLy8gcHVfZXh0ZW5zaW9ucyA9IHNlcCBbeFhdIChz
ZXAgYWxwaGFudW17MSw4fSkrIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOworICAgIEJpdG1hcDxu
dW1iZXJPZlVuaWNvZGVTaW5nbGV0b25zPiBzaW5nbGV0b25zU2V0IHsgfTsKKyAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICBpZiAobV9jdXJyZW50Lmxlbmd0aCgpICE9IDEpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgVUNoYXIgcHJlZml4Q29kZSA9IG1fY3VycmVudFswXTsK
KyAgICAgICAgaWYgKCFpc0FTQ0lJQWxwaGFudW1lcmljKHByZWZpeENvZGUpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3Nl
Yy1pc3N0cnVjdHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKKyAgICAgICAgLy8gZG9lcyBub3QgaW5j
bHVkZSBkdXBsaWNhdGUgc2luZ2xldG9uIHN1YnRhZ3MuCisgICAgICAgIC8vCisgICAgICAgIC8v
IGh0dHBzOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNVbmljb2RlX2xvY2FsZV9pZGVudGlm
aWVyCisgICAgICAgIC8vIEFzIGlzIG9mdGVuIHRoZSBjYXNlLCB0aGUgY29tcGxldGUgc3ludGFj
dGljIGNvbnN0cmFpbnRzIGFyZSBub3QgZWFzaWx5IGNhcHR1cmVkIGJ5IEFCTkYsCisgICAgICAg
IC8vIHNvIHRoZXJlIGlzIGEgZnVydGhlciBjb25kaXRpb246IFRoZXJlIGNhbm5vdCBiZSBtb3Jl
IHRoYW4gb25lIGV4dGVuc2lvbiB3aXRoIHRoZSBzYW1lIHNpbmdsZXRvbiAoLWEtLCDigKYsIC10
LSwgLXUtLCDigKYpLgorICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIHByaXZhdGUgdXNlIGV4dGVu
c2lvbiAoLXgtKSBtdXN0IGNvbWUgYWZ0ZXIgYWxsIG90aGVyIGV4dGVuc2lvbnMuCisgICAgICAg
IGlmIChzaW5nbGV0b25zU2V0LmdldChjb252ZXJ0VG9Vbmljb2RlU2luZ2xldG9uSW5kZXgocHJl
Zml4Q29kZSkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICArK2N1cnNvcjsK
KyAgICAgICAgc2luZ2xldG9uc1NldC5zZXQoY29udmVydFRvVW5pY29kZVNpbmdsZXRvbkluZGV4
KHByZWZpeENvZGUpLCB0cnVlKTsKKworICAgICAgICBzd2l0Y2ggKHByZWZpeENvZGUpIHsKKyAg
ICAgICAgY2FzZSAndSc6CisgICAgICAgIGNhc2UgJ1UnOiB7CisgICAgICAgICAgICAvLyB1bmlj
b2RlX2xvY2FsZV9leHRlbnNpb25zID0gc2VwIFt1VV0gKChzZXAga2V5d29yZCkrIHwgKHNlcCBh
dHRyaWJ1dGUpKyAoc2VwIGtleXdvcmQpKikgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVVuaWNv
ZGVFeHRlbnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmIChpc0VPUygpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7IC8vIE5leHQgZXh0ZW5zaW9uLgorICAgICAgICB9CisgICAgICAg
IGNhc2UgJ3QnOgorICAgICAgICBjYXNlICdUJzogeworICAgICAgICAgICAgLy8gdHJhbnNmb3Jt
ZWRfZXh0ZW5zaW9ucyA9IHNlcCBbdFRdICgoc2VwIHRsYW5nIChzZXAgdGZpZWxkKSopIHwgKHNl
cCB0ZmllbGQpKykgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVRyYW5zZm9ybWVkRXh0ZW5zaW9u
QWZ0ZXJQcmVmaXgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoaXNFT1MoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOyAvLyBOZXh0IGV4dGVuc2lvbi4KKyAgICAgICAgfQorICAgICAgICBjYXNlICd4JzoK
KyAgICAgICAgY2FzZSAnWCc6IHsKKyAgICAgICAgICAgIC8vIHB1X2V4dGVuc2lvbnMgPSBzZXAg
W3hYXSAoc2VwIGFscGhhbnVtezEsOH0pKyA7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXBhcnNlUFVFeHRl
bnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiBwdV9leHRlbnNpb25zIGFwcGVhciwgbm8gZXh0ZW5z
aW9ucyBjYW4gZm9sbG93IGFmdGVyIHRoYXQuIFRoaXMgbXVzdCBiZSB0aGUgZW5kIG9mIHVuaWNv
ZGVfbG9jYWxlX2lkLgorICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAg
IC8vIG90aGVyX2V4dGVuc2lvbnMgPSBzZXAgW2FscGhhbnVtLVt0VHVVeFhdXSAoc2VwIGFscGhh
bnVtezIsOH0pKyA7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclBy
ZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChp
c0VPUygpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYnJlYWs7
IC8vIE5leHQgZXh0ZW5zaW9uLgorICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9CiAKKy8v
IGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFsbHl2YWxpZGxhbmd1YWdl
dGFnCitib29sIGlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyhTdHJpbmdWaWV3IHN0cmlu
ZykKK3sKKyAgICBMYW5ndWFnZVRhZ1BhcnNlciBwYXJzZXIoc3RyaW5nKTsKKyAgICBpZiAoIXBh
cnNlci5wYXJzZVVuaWNvZGVMb2NhbGVJZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFwYXJzZXIuaXNFT1MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0
cnVlOworfQorCisvLyB1bmljb2RlX2xhbmd1YWdlX2lkLCBidXQgaW50ZXJzZWN0aW9uIG9mIEJD
UDQ3IGFuZCBVVFMzNS4KKy8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgPQorLy8gICAgIHwgdW5pY29k
ZV9sYW5ndWFnZV9zdWJ0YWcgKHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0YWcpPyAoc2VwIHVuaWNv
ZGVfcmVnaW9uX3N1YnRhZyk/IChzZXAgdW5pY29kZV92YXJpYW50X3N1YnRhZykqIDsKKy8vIGh0
dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZGlzcGxheW5hbWVzL2lzc3Vlcy83
OQorYm9vbCBpc1VuaWNvZGVMYW5ndWFnZUlkKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIExh
bmd1YWdlVGFnUGFyc2VyIHBhcnNlcihzdHJpbmcpOworICAgIGlmICghcGFyc2VyLnBhcnNlVW5p
Y29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghcGFyc2Vy
LmlzRU9TKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBpc1dlbGxGb3JtZWRDdXJyZW5jeUNvZGUoU3RyaW5nVmlldyBjdXJyZW5jeSkKIHsKICAg
ICByZXR1cm4gY3VycmVuY3kubGVuZ3RoKCkgPT0gMyAmJiBjdXJyZW5jeS5pc0FsbFNwZWNpYWxD
aGFyYWN0ZXJzPGlzQVNDSUlBbHBoYT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuaAppbmRleCAwYjBhN2JiNmJhNDFjMWVmMjkxYTI4MjIzYjg1MDM4MTg3Zjc2
OGQ2Li42OWEyNzUzNjJlNWRmNzA4YTVjZjExNGNjOTUyZTliMGZkNmVhMzg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0xMTcsNiArMTE3LDcgQEAg
Ym9vbCBpc1VuaWNvZGVTY3JpcHRTdWJ0YWcoU3RyaW5nVmlldyk7CiBib29sIGlzVW5pY29kZVJl
Z2lvblN1YnRhZyhTdHJpbmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlVmFyaWFudFN1YnRhZyhTdHJp
bmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlTGFuZ3VhZ2VJZChTdHJpbmdWaWV3KTsKK2Jvb2wgaXNT
dHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKFN0cmluZ1ZpZXcpOwogCiBib29sIGlzV2VsbEZv
cm1lZEN1cnJlbmN5Q29kZShTdHJpbmdWaWV3KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyNTZlMjE3MmU5OTVlOWQ0Y2UzNzRiZmY2
ODBjYzQxYjlhZDM2ZWFmLi5mOWI4NmU5OTQxZGZkNGQ2NzU1ZDFlNDUwMTg1N2Q2ZGM0MTY2YWZk
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIwLTA4LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IEludGwgTGFuZ3VhZ2UgVGFnIFBhcnNl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDU4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJl
c3MvaW50bC1jb2xsYXRvci5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRldGltZWZvcm1h
dC5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50bC1sb2NhbGUuanM6CisgICAgICAgICogc3RyZXNz
L2ludGwtbnVtYmVyZm9ybWF0LmpzOgorICAgICAgICAqIHN0cmVzcy9pbnRsLW9iamVjdC5qczoK
KyAgICAgICAgKiBzdHJlc3MvaW50bC1wbHVyYWxydWxlcy5qczoKKyAgICAgICAgKiBzdHJlc3Mv
aW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanM6CisgICAgICAgICogc3RyZXNzL3N0cmluZy10b0xv
Y2FsZUxvd2VyQ2FzZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc3RyaW5nLXRvTG9jYWxlVXBwZXJD
YXNlLmpzOgorCiAyMDIwLTA3LTMwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFNraXAgc3RyZXNzL29wZXJhbmQtc2hvdWxkLWZpdC1pbi1hYnN0cmFjdC1oZWFw
LWVuY29kZWQtcGF5bG9hZC1mb3JtYXQuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2lu
dGwtY29sbGF0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWNvbGxhdG9yLmpzCmluZGV4IDk5
OTBkYmQ2MGQ0NjMxZjJiMzMyNDhhYjAwNTJjOTMzY2IyMjk5MWEuLmEyZTQwNTAxNGY1NTU1MDI4
NTZlMjFkMGZiZDUwYzRhZjk2YWMwNDggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwt
Y29sbGF0b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1jb2xsYXRvci5qcwpAQCAtMTk0
LDE1ICsxOTQsMTMgQEAgZnVuY3Rpb24gdGVzdENvbGxhdG9yKGNvbGxhdG9yLCBwb3NzaWJsZU9w
dGlvbkRpZmZlcmVuY2VzKSB7CiAgICAgICAgID8gJ1siZW4tTGF0bi1VUy0xYWJjLWZvb2Jhci12
YXJpYW50LWEtYWEtYWFhLXUta24teC1yZXNlcnZlZCJdJwogICAgICAgICA6ICdbImVuLUxhdG4t
VVMtdmFyaWFudC1mb29iYXItMWFiYy1hLWFhLWFhYS11LWtuLXRydWUteC1yZXNlcnZlZCJdJwog
KTsKLS8vIFJlcGxhY2VzIG91dGRhdGVkIHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJ
bnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJykpLCAnWyJuYiJdJyk7Ci0v
LyBEb2Vzbid0IHRocm93LCBidXQgaWdub3JlcyBwcml2YXRlIHRhZ3MuCi1zaG91bGRCZShKU09O
LnN0cmluZ2lmeShJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRoaW5n
JykpLCAnW10nKTsKIC8vIFRocm93cyBvbiBwcm9ibGVtcyB3aXRoIGxlbmd0aCwgZ2V0LCBvciB0
b1N0cmluZy4KIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxl
c09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgZ2V0KCkgeyB0aHJvdyBFcnJvcigp
IH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9y
dGVkTG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6IDEgfSwg
MDogeyBnZXQoKSB7IHRocm93IEVycm9yKCkgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3co
KCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoWyB7IHRvU3RyaW5nKCkgeyB0
aHJvdyBFcnJvcigpIH0gfSBdKSwgRXJyb3IpOwogLy8gVGhyb3dzIG9uIGJhZCB0YWdzLgorc2hv
dWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycp
LCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVk
TG9jYWxlc09mKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9
PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZihbIDUgXSksIFR5cGVFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZignJyksIFJh
bmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2Nh
bGVzT2YoJ2EnKSwgUmFuZ2VFcnJvcik7CkBAIC0yMTUsNiArMjEzLDEzIEBAIGZ1bmN0aW9uIHRl
c3RDb2xsYXRvcihjb2xsYXRvciwgcG9zc2libGVPcHRpb25EaWZmZXJlbmNlcykgewogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLSonKSwgUmFu
Z2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2Fs
ZXNPZignZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRv
ci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLS1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93
KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCdpLWtsaW5nb24nKSwgUmFu
Z2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBieSBJc1N0cnVj
dHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iu
c3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtMTIzNDUtMTIz
NDUtZW4tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9y
LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsK
K3Nob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVu
LXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5z
dXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VFcnJvcik7CisKIC8v
IEFjY2VwdHMgdmFsaWQgdGFncwogdmFyIHZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgICdkZScs
IC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtMjI2LDE2ICsyMzEsMTAgQEAgZnVuY3Rpb24g
dGVzdENvbGxhdG9yKGNvbGxhdG9yLCBwb3NzaWJsZU9wdGlvbkRpZmZlcmVuY2VzKSB7CiAgICAg
J2Ntbi1oYW5zLWNuJywgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgICdlcy00MTkn
LCAvLyArIFVOIE0uNDkgcmVnaW9uIGNvZGUKICAgICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2In
LCAvLyArIFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24n
LCAvLyBncmFuZGZhdGhlcmVkIHRhZwogICAgICdjbW4taGFucy1jbi10LWNhLXUtY2EteC10LXUn
LCAvLyBzaW5nbGV0b24gc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1
YnRhZ3MKICAgICAnZW5vY2hpYW4tZW5vY2hpYW4nLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBz
dWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8v
IHZhcmlhbnQgYW5kIGV4dGVuc2lvbiBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1h
LWZvby14LWEtZm9vLWJhcicsIC8vIHZhcmlhbnQgc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFz
IHByaXZhdGUgdXNlIHN1YnRhZ3MKLSAgICAneC1lbi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdv
ZXMgaW4gcHJpdmF0ZSB1c2UgdGFncwotICAgICd4LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAn
eC1lbi1VUy0xMjM0NS0xMjM0NScsCi0gICAgJ3gtZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9v
LXUtYmFyJwogXTsKIGZvciAodmFyIHZhbGlkTGFuZ3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRh
Z3MpCiAgICAgc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2Nh
bGVzT2YodmFsaWRMYW5ndWFnZVRhZykpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50
bC1kYXRldGltZWZvcm1hdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQu
anMKaW5kZXggZjdjNWEwNzAwNjY0MzYyNTlkNmEwNjRiZGQ5NzgyZTg3MTMzNmE2YS4uNmZiZjAz
ZWQ4OWNiOThlZTRlNGI2Nzg3OTA3ZTk4YzliZmZhZjk4YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRh
dGV0aW1lZm9ybWF0LmpzCkBAIC04NiwxNSArODYsMTMgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3co
ZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgICAgID8gJ1siZW4tTGF0bi1VUy0xYWJjLWZvb2Jhci12
YXJpYW50LWEtYWEtYWFhLXUta24teC1yZXNlcnZlZCJdJwogICAgICAgICA6ICdbImVuLUxhdG4t
VVMtdmFyaWFudC1mb29iYXItMWFiYy1hLWFhLWFhYS11LWtuLXRydWUteC1yZXNlcnZlZCJdJwog
KTsKLS8vIFJlcGxhY2VzIG91dGRhdGVkIHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJ
bnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJykpLCAnWyJuYiJd
Jyk7Ci0vLyBEb2Vzbid0IHRocm93LCBidXQgaWdub3JlcyBwcml2YXRlIHRhZ3MuCi1zaG91bGRC
ZShKU09OLnN0cmluZ2lmeShJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZign
eC1zb21lLXRoaW5nJykpLCAnW10nKTsKIC8vIFRocm93cyBvbiBwcm9ibGVtcyB3aXRoIGxlbmd0
aCwgZ2V0LCBvciB0b1N0cmluZy4KIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgZ2V0
KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShu
dWxsLCB7IGxlbmd0aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9y
KCk7IH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKFsgeyB0b1N0cmluZygpIHsgdGhyb3cgbmV3IEVycm9yKCk7
IH0gfSBdKSwgRXJyb3IpOwogLy8gVGhyb3dzIG9uIGJhZCB0YWdzLgorc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVk
TG9jYWxlc09mKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9
PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihbIDUgXSksIFR5cGVFcnJv
cik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZignJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2EnKSwgUmFuZ2VFcnJvcik7CkBAIC0xMDcsNiArMTA1
LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLSonKSwg
UmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBv
cnRlZExvY2FsZXNPZignZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLS1VUycpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxl
c09mKCdpLWtsaW5nb24nKSwgUmFuZ2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5v
dCBhY2NlcHRlZCBieSBJc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93
KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEy
MzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1h
dC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtMTIzNDUtMTIzNDUtZW4tVVMnKSwgUmFuZ2VFcnJvcik7
CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNP
ZigneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+
IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLXUtZm9vJyksIFJh
bmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VFcnJvcik7CisKIC8vIEFjY2Vw
dHMgdmFsaWQgdGFncwogdmFyIHZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgICdkZScsIC8vIElT
TyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtMTE4LDE2ICsxMjMsMTAgQEAgZnVuY3Rpb24gc2hvdWxk
VGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgJ2Ntbi1oYW5zLWNuJywgLy8gKyBJU08gMzE2
Ni0xIGNvdW50cnkgY29kZQogICAgICdlcy00MTknLCAvLyArIFVOIE0uNDkgcmVnaW9uIGNvZGUK
ICAgICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2InLCAvLyArIFVuaWNvZGUgbG9jYWxlIGV4dGVu
c2lvbiBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24nLCAvLyBncmFuZGZhdGhlcmVkIHRhZwogICAg
ICdjbW4taGFucy1jbi10LWNhLXUtY2EteC10LXUnLCAvLyBzaW5nbGV0b24gc3VidGFncyBjYW4g
YWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKICAgICAnZW5vY2hpYW4tZW5vY2hp
YW4nLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAg
ICdkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlhbnQgYW5kIGV4dGVuc2lvbiBzdWJ0
YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1hLWZvby14LWEtZm9vLWJhcicsIC8vIHZhcmlh
bnQgc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKLSAgICAn
eC1lbi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdvZXMgaW4gcHJpdmF0ZSB1c2UgdGFncwotICAg
ICd4LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAneC1lbi1VUy0xMjM0NS0xMjM0NScsCi0gICAg
J3gtZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9vLXUtYmFyJwogXTsKIGZvciAodmFyIHZhbGlk
TGFuZ3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAgICAgc2hvdWxkTm90VGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YodmFsaWRMYW5ndWFnZVRh
ZykpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLWxvY2FsZS5qcwppbmRleCBmNDg3NDFmMzlhMzhmN2JkNjAwNjQ1YzdmODRl
NmIzNzg4YmRmYzVlLi4wNGU1MjU5NzlmZGMwYzQ4NDRkMTMzMGJlNmQ1NGQzZDM1YzBjNTFkIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9pbnRsLWxvY2FsZS5qcwpAQCAtNDUsNiArNDUsMTIgQEAgZnVuY3Rpb24gc2hvdWxkVGhy
b3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUo
e30pLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSh7IHRv
U3RyaW5nKCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9KSwgRXJyb3IpOwogc2hvdWxkVGhyb3co
KCkgPT4gbmV3IEludGwuTG9jYWxlKFtdKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiBuZXcgSW50bC5Mb2NhbGUoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3JhbmRmYXRo
ZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRh
Zworc2hvdWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKCd4LWVuLVVTLTEyMzQ1JyksIFJh
bmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKCd4LTEyMzQ1LTEy
MzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9j
YWxlKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkg
PT4gbmV3IEludGwuTG9jYWxlKCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhy
b3coKCkgPT4gbmV3IEludGwuTG9jYWxlKCd4LWVuLXUtZm9vLXUtYmFyJyksIFJhbmdlRXJyb3Ip
Owogc2hvdWxkTm90VGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKHsgdG9TdHJpbmcoKSB7IHJl
dHVybiAnZW4nOyB9IH0pKTsKIAogc2hvdWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKCdl
bicsIG51bGwpLCBUeXBlRXJyb3IpOwpAQCAtNzIsMTYgKzc4LDEwIEBAIGZ1bmN0aW9uIHNob3Vs
ZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgICdjbW4taGFucy1jbicsIC8vICsgSVNPIDMx
NjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBjb2Rl
CiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBleHRl
bnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcKICAg
ICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3MgY2Fu
IGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVub2No
aWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAg
ICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24gc3Vi
dGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2YXJp
YW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0gICAg
J3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MKLSAg
ICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAotICAg
ICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKGxldCB2YWxp
ZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93KCgp
ID0+IG5ldyBJbnRsLkxvY2FsZSh2YWxpZExhbmd1YWdlVGFnKSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbnVt
YmVyZm9ybWF0LmpzCmluZGV4IDMxYmJjNGEyNWMzNGExYmQ0N2E1ZjNmMDAwNTMxNzY5MThjMWU1
NjEuLjJlOTY1ZTdkYWVhZjBiMjM0YzFkODE4YWM0NzYwZTFmNzMzMjc2YmEgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2ludGwtbnVtYmVyZm9ybWF0LmpzCkBAIC0xLDUgKzEsMyBAQAotLy9AIHJ1bkJpZ0ludEVuYWJs
ZWQKLQogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhw
ZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7CkBAIC0yMjYsMTUgKzIyNCwxMyBAQCBmdW5jdGlv
biB0ZXN0TnVtYmVyRm9ybWF0KG51bWJlckZvcm1hdCwgcG9zc2libGVEaWZmZXJlbmNlcykgewog
ICAgICAgICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29iYXItdmFyaWFudC1hLWFhLWFhYS11LWtu
LXgtcmVzZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1MYXRuLVVTLXZhcmlhbnQtZm9vYmFyLTFh
YmMtYS1hYS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQiXScKICk7Ci0vLyBSZXBsYWNlcyBvdXRk
YXRlZCB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5OdW1iZXJGb3JtYXQuc3Vw
cG9ydGVkTG9jYWxlc09mKCduby1ib2snKSksICdbIm5iIl0nKTsKLS8vIERvZXNuJ3QgdGhyb3cs
IGJ1dCBpZ25vcmVzIHByaXZhdGUgdGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwu
TnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRoaW5nJykpLCAnW10nKTsK
IC8vIFRocm93cyBvbiBwcm9ibGVtcyB3aXRoIGxlbmd0aCwgZ2V0LCBvciB0b1N0cmluZy4KIHNo
b3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihPYmpl
Y3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0g
fSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBv
cnRlZExvY2FsZXNPZihPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0s
IDA6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKFsgeyB0b1N0
cmluZygpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSBdKSwgRXJyb3IpOwogLy8gVGhyb3dzIG9u
IGJhZCB0YWdzLgorc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVk
TG9jYWxlc09mKCduby1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRs
Lk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpLCBSYW5nZUVy
cm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZihbIDUgXSksIFR5cGVFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJycpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgp
ID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignYScpLCBSYW5nZUVycm9y
KTsKQEAgLTI0Nyw2ICsyNDMsMTMgQEAgZnVuY3Rpb24gdGVzdE51bWJlckZvcm1hdChudW1iZXJG
b3JtYXQsIHBvc3NpYmxlRGlmZmVyZW5jZXMpIHsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVt
YmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3Vs
ZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignZW4tJyks
IFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9y
dGVkTG9jYWxlc09mKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2kta2xpbmdvbicpLCBSYW5nZUVy
cm9yKTsgLy8gZ3JhbmRmYXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJh
bGx5VmFsaWRMYW5ndWFnZVRhZworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQu
c3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LTEyMzQ1
LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1i
ZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdl
RXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9j
YWxlc09mKCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLXUtZm9vLXUtYmFyJyksIFJh
bmdlRXJyb3IpOworCiAvLyBBY2NlcHRzIHZhbGlkIHRhZ3MKIHZhciB2YWxpZExhbmd1YWdlVGFn
cyA9IFsKICAgICAnZGUnLCAvLyBJU08gNjM5IGxhbmd1YWdlIGNvZGUKQEAgLTI1OCwxNiArMjYx
LDEwIEBAIGZ1bmN0aW9uIHRlc3ROdW1iZXJGb3JtYXQobnVtYmVyRm9ybWF0LCBwb3NzaWJsZURp
ZmZlcmVuY2VzKSB7CiAgICAgJ2Ntbi1oYW5zLWNuJywgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkg
Y29kZQogICAgICdlcy00MTknLCAvLyArIFVOIE0uNDkgcmVnaW9uIGNvZGUKICAgICAnZXMtNDE5
LXUtbnUtbGF0bi1jdS1ib2InLCAvLyArIFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5j
ZQotICAgICdpLWtsaW5nb24nLCAvLyBncmFuZGZhdGhlcmVkIHRhZwogICAgICdjbW4taGFucy1j
bi10LWNhLXUtY2EteC10LXUnLCAvLyBzaW5nbGV0b24gc3VidGFncyBjYW4gYWxzbyBiZSB1c2Vk
IGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKICAgICAnZW5vY2hpYW4tZW5vY2hpYW4nLCAvLyBsYW5n
dWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdkZS1ncmVnb3J5
LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlhbnQgYW5kIGV4dGVuc2lvbiBzdWJ0YWdzIG1heSBiZSB0
aGUgc2FtZQogICAgICdhYS1hLWZvby14LWEtZm9vLWJhcicsIC8vIHZhcmlhbnQgc3VidGFncyBj
YW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKLSAgICAneC1lbi1VUy0xMjM0
NScsIC8vIGFueXRoaW5nIGdvZXMgaW4gcHJpdmF0ZSB1c2UgdGFncwotICAgICd4LTEyMzQ1LTEy
MzQ1LWVuLVVTJywKLSAgICAneC1lbi1VUy0xMjM0NS0xMjM0NScsCi0gICAgJ3gtZW4tdS1mb28n
LAotICAgICd4LWVuLXUtZm9vLXUtYmFyJwogXTsKIGZvciAodmFyIHZhbGlkTGFuZ3VhZ2VUYWcg
b2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAgICAgc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5OdW1i
ZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKHZhbGlkTGFuZ3VhZ2VUYWcpKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtb2JqZWN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1v
YmplY3QuanMKaW5kZXggYTY3MTE2ODVhMWIxZjdjNmY0MzYxNWQ1OGMwMDE5ZDdhZWY4NGEzNC4u
MzUzMzk0ZWEwYzNiYThmZjk2OTA0OTkwMDA4MWQ0ZDA3ZDY2NjJkMCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1vYmplY3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1vYmpl
Y3QuanMKQEAgLTc0LDE1ICs3NCwxMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJv
clR5cGUpIHsKICAgICAgICAgPyAnWyJlbi1MYXRuLVVTLTFhYmMtZm9vYmFyLXZhcmlhbnQtYS1h
YS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAgICAgICAgIDogJ1siZW4tTGF0bi1VUy12YXJpYW50
LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24tdHJ1ZS14LXJlc2VydmVkIl0nCiApOwotLy8gUmVw
bGFjZXMgb3V0ZGF0ZWQgdGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygnbm8tYm9rJykpLCAnWyJuYiJdJyk7Ci0vLyBDYW5vbmljYWxpemVzIHBy
aXZhdGUgdGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuZ2V0Q2Fub25pY2FsTG9j
YWxlcygnWC1zb21lLXRoaW5nJykpLCAnWyJ4LXNvbWUtdGhpbmciXScpOwogLy8gVGhyb3dzIG9u
IHByb2JsZW1zIHdpdGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6
IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKE9iamVjdC5jcmVhdGUobnVsbCwgeyBs
ZW5ndGg6IHsgdmFsdWU6IDEgfSwgMDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0g
fSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMo
WyB7IHRvU3RyaW5nKCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IF0pLCBFcnJvcik7CiAvLyBU
aHJvd3Mgb24gYmFkIHRhZ3MuCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExv
Y2FsZXMoJ25vLWJvaycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0
Q2Fub25pY2FsTG9jYWxlcygneC1zb21lLXRoaW5nJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKFsgNSBdKSwgVHlwZUVycm9yKTsKIHNo
b3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygnJyksIFJhbmdlRXJyb3Ip
Owogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCdhJyksIFJhbmdl
RXJyb3IpOwpAQCAtOTUsNiArOTMsMTMgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ2Vu
LSonKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExv
Y2FsZXMoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygnZW4tLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4g
SW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCdpLWtsaW5nb24nKSwgUmFuZ2VFcnJvcik7IC8vIGdy
YW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBieSBJc1N0cnVjdHVyYWxseVZhbGlkTGFu
Z3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygneC1l
bi1VUy0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygneC0xMjM0NS0xMjM0NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3Vs
ZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygneC1lbi1VUy0xMjM0NS0xMjM0
NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9j
YWxlcygneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwu
Z2V0Q2Fub25pY2FsTG9jYWxlcygneC1lbi11LWZvby11LWJhcicpLCBSYW5nZUVycm9yKTsKKwog
Ly8gQWNjZXB0cyB2YWxpZCB0YWdzCiB2YXIgdmFsaWRMYW5ndWFnZVRhZ3MgPSBbCiAgICAgJ2Rl
JywgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBAIC0xMDYsMTYgKzExMSwxMCBAQCBmdW5jdGlv
biBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAnY21uLWhhbnMtY24nLCAvLyAr
IElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40OSByZWdp
b24gY29kZQogICAgICdlcy00MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29kZSBsb2Nh
bGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0aGVyZWQg
dGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRvbiBzdWJ0
YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdlbm9jaGlh
bi1lbm9jaGlhbicsIC8vIGxhbmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJlIHRoZSBz
YW1lCiAgICAgJ2RlLWdyZWdvcnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQgZXh0ZW5z
aW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28tYmFyJywg
Ly8gdmFyaWFudCBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFn
cwotICAgICd4LWVuLVVTLTEyMzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRlIHVzZSB0
YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1LTEyMzQ1
JywKLSAgICAneC1lbi11LWZvbycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwogZm9yICh2
YXIgdmFsaWRMYW5ndWFnZVRhZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91bGROb3RU
aHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXModmFsaWRMYW5ndWFnZVRhZykpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1wbHVyYWxydWxlcy5qcyBiL0pTVGVzdHMv
c3RyZXNzL2ludGwtcGx1cmFscnVsZXMuanMKaW5kZXggODRkNjg2OGE3MTY2ZWI0ZjU2ZjFmZjdk
MjY3MTYyMjRiYjY0ZDI5OS4uYTEzNmQ0NmY0MWFkNDI3ZTVkZGJjMWFhYTY0NGExMWY1MTI1NDNi
YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1wbHVyYWxydWxlcy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLmpzCkBAIC04NSwxNSArODUsMTMgQEAgZnVu
Y3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgICAgID8gJ1siZW4tTGF0
bi1VUy0xYWJjLWZvb2Jhci12YXJpYW50LWEtYWEtYWFhLXUta24teC1yZXNlcnZlZCJdJwogICAg
ICAgICA6ICdbImVuLUxhdG4tVVMtdmFyaWFudC1mb29iYXItMWFiYy1hLWFhLWFhYS11LWtuLXRy
dWUteC1yZXNlcnZlZCJdJwogKTsKLS8vIFJlcGxhY2VzIG91dGRhdGVkIHRhZ3MuCi1zaG91bGRC
ZShKU09OLnN0cmluZ2lmeShJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignbm8t
Ym9rJykpLCAnWyJuYiJdJyk7Ci0vLyBEb2Vzbid0IHRocm93LCBidXQgaWdub3JlcyBwcml2YXRl
IHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRl
ZExvY2FsZXNPZigneC1zb21lLXRoaW5nJykpLCAnW10nKTsKIC8vIFRocm93cyBvbiBwcm9ibGVt
cyB3aXRoIGxlbmd0aCwgZ2V0LCBvciB0b1N0cmluZy4KIHNob3VsZFRocm93KCgpID0+IEludGwu
UGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5n
dGg6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNy
ZWF0ZShudWxsLCB7IGxlbmd0aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3
IEVycm9yKCk7IH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFs
UnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKFsgeyB0b1N0cmluZygpIHsgdGhyb3cgbmV3IEVycm9y
KCk7IH0gfSBdKSwgRXJyb3IpOwogLy8gVGhyb3dzIG9uIGJhZCB0YWdzLgorc2hvdWxkVGhyb3co
KCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9j
YWxlc09mKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZihbIDUgXSksIFR5cGVFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignJyks
IFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ2EnKSwgUmFuZ2VFcnJvcik7CkBAIC0xMDYsNiArMTA0LDEzIEBAIGZ1bmN0
aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLSonKSwgUmFuZ2VFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignZW4t
JyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBw
b3J0ZWRMb2NhbGVzT2YoJ2VuLS1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+
IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdpLWtsaW5nb24nKSwgUmFuZ2VF
cnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBieSBJc1N0cnVjdHVy
YWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMu
c3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtMTIzNDUt
MTIzNDUtZW4tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJh
bFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVy
cm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxl
c09mKCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Q
bHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VF
cnJvcik7CisKIC8vIEFjY2VwdHMgdmFsaWQgdGFncwogdmFyIHZhbGlkTGFuZ3VhZ2VUYWdzID0g
WwogICAgICdkZScsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtMTE3LDE2ICsxMjIsMTAg
QEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgJ2Ntbi1oYW5z
LWNuJywgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgICdlcy00MTknLCAvLyArIFVO
IE0uNDkgcmVnaW9uIGNvZGUKICAgICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2InLCAvLyArIFVu
aWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24nLCAvLyBncmFu
ZGZhdGhlcmVkIHRhZwogICAgICdjbW4taGFucy1jbi10LWNhLXUtY2EteC10LXUnLCAvLyBzaW5n
bGV0b24gc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKICAg
ICAnZW5vY2hpYW4tZW5vY2hpYW4nLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdzIG1h
eSBiZSB0aGUgc2FtZQogICAgICdkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlhbnQg
YW5kIGV4dGVuc2lvbiBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1hLWZvby14LWEt
Zm9vLWJhcicsIC8vIHZhcmlhbnQgc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUg
dXNlIHN1YnRhZ3MKLSAgICAneC1lbi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdvZXMgaW4gcHJp
dmF0ZSB1c2UgdGFncwotICAgICd4LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAneC1lbi1VUy0x
MjM0NS0xMjM0NScsCi0gICAgJ3gtZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9vLXUtYmFyJwog
XTsKIGZvciAodmFyIHZhbGlkTGFuZ3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAgICAg
c2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2Yo
dmFsaWRMYW5ndWFnZVRhZykpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxh
dGl2ZXRpbWVmb3JtYXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1h
dC5qcwppbmRleCAzZjNhODdhMWYyMmMwYmNkOWE0OTVhYjRhYzQxYzhjNTMyMjgzMjA4Li5mOTFj
MWFiY2UwNTUwNmEwNGVmMGYzZGRiM2E3MDg1MWIyN2JjOTM0IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1hdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9p
bnRsLXJlbGF0aXZldGltZWZvcm1hdC5qcwpAQCAtNjksOSArNjksOSBAQCBmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAgICAgPyAnWyJlbi1MYXRuLVVTLTFhYmMt
Zm9vYmFyLXZhcmlhbnQtYS1hYS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAgICAgICAgIDogJ1si
ZW4tTGF0bi1VUy12YXJpYW50LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24tdHJ1ZS14LXJlc2Vy
dmVkIl0nCiApOwotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5SZWxhdGl2ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKCduby1ib2snKSksICdbIm5iIl0nKTsKLXNob3VsZEJlKEpT
T04uc3RyaW5naWZ5KEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZign
eC1zb21lLXRoaW5nJykpLCAnW10nKTsKIAorc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2
ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCduby1ib2snKSwgUmFuZ2VFcnJvcik7Citz
aG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ3gtc29tZS10aGluZycpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwu
UmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZihPYmplY3QuY3JlYXRlKG51bGws
IHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSksIEVycm9yKTsK
IHNob3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZihPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0
KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKFt7IHRvU3RyaW5n
KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9XSksIEVycm9yKTsKQEAgLTg3LDYgKzg3LDEyIEBA
IGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0qJyksIFJh
bmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3Vw
cG9ydGVkTG9jYWxlc09mKCdlbi0nKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLS1VUycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBv
cnRlZExvY2FsZXNPZignaS1rbGluZ29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVk
IHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitz
aG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRs
LlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtMTIzNDUtMTIzNDUtZW4t
VVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJv
cik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRM
b2NhbGVzT2YoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28tdS1i
YXInKSwgUmFuZ2VFcnJvcik7CiAKIGNvbnN0IHZhbGlkTGFuZ3VhZ2VUYWdzID0gWwogICAgICdk
ZScsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtOTgsMTYgKzEwNCwxMCBAQCBmdW5jdGlv
biBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAnY21uLWhhbnMtY24nLCAvLyAr
IElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40OSByZWdp
b24gY29kZQogICAgICdlcy00MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29kZSBsb2Nh
bGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0aGVyZWQg
dGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRvbiBzdWJ0
YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdlbm9jaGlh
bi1lbm9jaGlhbicsIC8vIGxhbmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJlIHRoZSBz
YW1lCiAgICAgJ2RlLWdyZWdvcnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQgZXh0ZW5z
aW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28tYmFyJywg
Ly8gdmFyaWFudCBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFn
cwotICAgICd4LWVuLVVTLTEyMzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRlIHVzZSB0
YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1LTEyMzQ1
JywKLSAgICAneC1lbi11LWZvbycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwogZm9yIChs
ZXQgdmFsaWRMYW5ndWFnZVRhZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91bGROb3RU
aHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YodmFs
aWRMYW5ndWFnZVRhZykpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLXRvTG9j
YWxlTG93ZXJDYXNlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLXRvTG9jYWxlTG93ZXJDYXNl
LmpzCmluZGV4IGNhNzcwNGUwZGFiNzMxZjVmNjc4MDA4Y2YyNjJhOWMxMDQxYjUxMzYuLmFjZGY2
Y2FkMjgzMmI1YjE5YjVjODQzODJiNDc2NDkzMDFlOTFkNDcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL3N0cmluZy10b0xvY2FsZUxvd2VyQ2FzZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9z
dHJpbmctdG9Mb2NhbGVMb3dlckNhc2UuanMKQEAgLTMwLDggKzMwLDYgQEAgZnVuY3Rpb24gc2hv
dWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRCZSgnQScudG9Mb2NhbGVMb3dlckNh
c2UoOSksICdhJyk7CiAvLyBIYW5kbGVzIGFycmF5LWxpa2Ugb2JqZWN0cyB3aXRoIGhvbGVzLgog
c2hvdWxkQmUoJ1x1MDEzMCcudG9Mb2NhbGVMb3dlckNhc2UoeyBsZW5ndGg6IDQsIDE6ICdheics
IDM6ICdlbicgfSksICdpJyk7Ci0vLyBEb2Vzbid0IHRocm93LCBidXQgaWdub3JlcyBwcml2YXRl
IHRhZ3MuCi1zaG91bGRCZSgnQScudG9Mb2NhbGVMb3dlckNhc2UoJ3gtc29tZS10aGluZycpLCAn
YScpOwogLy8gVGhyb3dzIG9uIHByb2JsZW1zIHdpdGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5n
Lgogc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKE9iamVjdC5jcmVhdGUo
bnVsbCwgeyBsZW5ndGg6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKSB9IH0gfSkpLCBFcnJv
cik7CiBzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoT2JqZWN0LmNyZWF0
ZShudWxsLCB7IGxlbmd0aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVy
cm9yKCkgfSB9IH0pKSwgRXJyb3IpOwpAQCAtNDksNiArNDcsMTQgQEAgZnVuY3Rpb24gc2hvdWxk
VGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVM
b3dlckNhc2UoJ2VuLSonKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiAnQScudG9M
b2NhbGVMb3dlckNhc2UoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+ICdB
Jy50b0xvY2FsZUxvd2VyQ2FzZSgnZW4tLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3co
KCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCduby1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91
bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ3gtc29tZS10aGluZycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgnaS1rbGlu
Z29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQg
YnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitzaG91bGRUaHJvdygoKSA9PiAnQScu
dG9Mb2NhbGVMb3dlckNhc2UoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRU
aHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ3gtMTIzNDUtMTIzNDUtZW4tVVMnKSwg
UmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ3gt
ZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScu
dG9Mb2NhbGVMb3dlckNhc2UoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJv
dygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VF
cnJvcik7CiAKIC8vIENoZWNrIGFzY2lpIGFuZCBhY2NlbnRzLgogc2hvdWxkQmUoJ0FiQ2RFZkdo
SWpLbE1uT3BRUlN0dXZXWHlaMDEyMzQ1Njc4OScudG9Mb2NhbGVMb3dlckNhc2UoKSwgJ2FiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OScpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvc3RyaW5nLXRvTG9jYWxlVXBwZXJDYXNlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3RyaW5n
LXRvTG9jYWxlVXBwZXJDYXNlLmpzCmluZGV4IDBjODY3YmE5ZmNlMmE4NGJmZjQ3NDBmZGUzYTlk
MjY3MjlkMDExNzcuLjNmODYyOTZmYzBlMTg2Y2Q2NDQxODY1OTY2NTVmNGU4NzM2NjgyNDMgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3N0cmluZy10b0xvY2FsZVVwcGVyQ2FzZS5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9Mb2NhbGVVcHBlckNhc2UuanMKQEAgLTMwLDggKzMw
LDYgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRCZSgn
YScudG9Mb2NhbGVVcHBlckNhc2UoOSksICdBJyk7CiAvLyBIYW5kbGVzIGFycmF5LWxpa2Ugb2Jq
ZWN0cyB3aXRoIGhvbGVzLgogc2hvdWxkQmUoJ2knLnRvTG9jYWxlVXBwZXJDYXNlKHsgbGVuZ3Ro
OiA0LCAxOiAnYXonLCAzOiAnZW4nIH0pLCAnXHUwMTMwJyk7Ci0vLyBEb2Vzbid0IHRocm93LCBi
dXQgaWdub3JlcyBwcml2YXRlIHRhZ3MuCi1zaG91bGRCZSgnYScudG9Mb2NhbGVVcHBlckNhc2Uo
J3gtc29tZS10aGluZycpLCAnQScpOwogLy8gVGhyb3dzIG9uIHByb2JsZW1zIHdpdGggbGVuZ3Ro
LCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxkVGhyb3coKCkgPT4gJ2EnLnRvTG9jYWxlVXBwZXJD
YXNlKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJy
b3IoKSB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiAnYScudG9Mb2NhbGVVcHBl
ckNhc2UoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdl
dCgpIHsgdGhyb3cgbmV3IEVycm9yKCkgfSB9IH0pKSwgRXJyb3IpOwpAQCAtNDksNiArNDcsMTQg
QEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRUaHJvdygo
KSA9PiAnYScudG9Mb2NhbGVVcHBlckNhc2UoJ2VuLSonKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRU
aHJvdygoKSA9PiAnYScudG9Mb2NhbGVVcHBlckNhc2UoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNo
b3VsZFRocm93KCgpID0+ICdhJy50b0xvY2FsZVVwcGVyQ2FzZSgnZW4tLVVTJyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBwZXJDYXNlKCduby1ib2snKSwg
UmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ3gt
c29tZS10aGluZycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2Fs
ZVVwcGVyQ2FzZSgnaS1rbGluZ29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVkIHRh
ZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitzaG91
bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ3gtZW4tVVMtMTIzNDUnKSwgUmFu
Z2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ3gtMTIz
NDUtMTIzNDUtZW4tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9M
b2NhbGVVcHBlckNhc2UoJ3gtZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91
bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ3gtZW4tdS1mb28nKSwgUmFuZ2VF
cnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ3gtZW4tdS1m
b28tdS1iYXInKSwgUmFuZ2VFcnJvcik7CiAKIC8vIENoZWNrIGFzY2lpIGFuZCBhY2NlbnRzLgog
c2hvdWxkQmUoJ0FiQ2RFZkdoSWpLbE1uT3BRUlN0dXZXWHlaMDEyMzQ1Njc4OScudG9Mb2NhbGVV
cHBlckNhc2UoKSwgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405815</attachid>
            <date>2020-08-02 18:33:53 -0700</date>
            <delta_ts>2020-08-04 16:22:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215058-20200802183352.patch</filename>
            <type>text/plain</type>
            <size>61384</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWVmNTU2MjEzNWFlNzUzNGE5ZTc5NTlkZTZlZjJhYWM3Mjc3ODZlLi40NzZjODQwZjQzYWRlNTdm
ZThiMmYzNzkyY2ZhZThkNzYyNmRjNDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMC0wOC0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBJbnRsIExhbmd1YWdlIFRhZyBQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTA1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBMYW5ndWFnZVRhZ1BhcnNlciB3aGljaCBwZXJmb3JtcyBpc1N0cnVjdHVyYWxseVZhbGlk
TGFuZ3VhZ2VUYWdbMV0gdmFsaWRhdGlvbiBwcmVjaXNlbHkuCisgICAgICAgIFRoZSBzcGVjIHN0
cmljdGx5IGRlZmluZXMgYWNjZXB0YWJsZSBmb3JtYXQgYXMgbGFuZ3VhZ2UtdGFnIGFuZCB0aGlz
IGlzIG5vdCB0aGUgc2FtZSB0byBJQ1UncyBvbmUgYW5kIHRoaXMKKyAgICAgICAgaXMgZXZlbiB0
ZXN0ZWQgaW4gdGVzdDI2Mi4gV2Ugc2hvdWxkIGhhdmUgTGFuZ3VhZ2VUYWdQYXJzZXIgdG8gdmFs
aWRhdGUgdGhlIGlucHV0LgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3NlYy1pc3N0cnVjdHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKKworICAgICAgICAqIHJ1bnRpbWUv
SW50bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OkxvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6
ZSk6CisgICAgICAgIChKU0M6OkludGxMb2NhbGU6OmluaXRpYWxpemVMb2NhbGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbGl6ZUxv
Y2FsZUxpc3QpOgorICAgICAgICAoSlNDOjpwYXJzZVZhcmlhbnRDb2RlKToKKyAgICAgICAgKEpT
Qzo6Y29udmVydFRvVW5pY29kZVNpbmdsZXRvbkluZGV4KToKKyAgICAgICAgKEpTQzo6aXNVbmlj
b2RlRXh0ZW5zaW9uQXR0cmlidXRlKToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlRXh0ZW5zaW9u
S2V5KToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlRXh0ZW5zaW9uVHlwZUNvbXBvbmVudCk6Cisg
ICAgICAgIChKU0M6OmlzVW5pY29kZVBVRXh0ZW5zaW9uVmFsdWUpOgorICAgICAgICAoSlNDOjpp
c1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlVEtl
eSk6CisgICAgICAgIChKU0M6OmlzVW5pY29kZVRWYWx1ZSk6CisgICAgICAgIChKU0M6Okxhbmd1
YWdlVGFnUGFyc2VyOjpMYW5ndWFnZVRhZ1BhcnNlcik6CisgICAgICAgIChKU0M6Okxhbmd1YWdl
VGFnUGFyc2VyOjppc0VPUyk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpuZXh0
KToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxvY2FsZUlk
KToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxhbmd1YWdl
SWQpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlRXh0ZW5z
aW9uQWZ0ZXJQcmVmaXgpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VU
cmFuc2Zvcm1lZEV4dGVuc2lvbkFmdGVyUHJlZml4KToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VU
YWdQYXJzZXI6OnBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclByZWZpeCk6CisgICAgICAgIChKU0M6
Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVBVRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgpOgorICAgICAg
ICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VFeHRlbnNpb25zQW5kUFVFeHRlbnNpb25z
KToKKyAgICAgICAgKEpTQzo6aXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKToKKyAgICAg
ICAgKEpTQzo6aXNVbmljb2RlTGFuZ3VhZ2VJZCk6CisgICAgICAgICogcnVudGltZS9JbnRsT2Jq
ZWN0Lmg6CisKIDIwMjAtMDgtMDIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCBmaXggQ0xvb3AgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAKaW5kZXggNGVhYzIwMTg0YTcwYjc5MjczZjE3
NzJmMDk3N2RlOGU4YWU0Y2E3Yy4uNGFhMmE1MGJhZjY1ZmE4OTE4OWE3MDA5MzM0NDJkNzczYzg2
NzM0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2Fs
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAK
QEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBJbnRsTG9jYWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAKIGNsYXNzIExvY2FsZUlEQnVpbGRlciBmaW5h
bCB7CiBwdWJsaWM6Ci0gICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IENTdHJpbmcmKTsKKyAgICBi
b29sIGluaXRpYWxpemUoY29uc3QgU3RyaW5nJik7CiAgICAgQ1N0cmluZyB0b0Nhbm9uaWNhbCgp
OwogCiAgICAgdm9pZCBvdmVycmlkZUxhbmd1YWdlU2NyaXB0UmVnaW9uKFN0cmluZ1ZpZXcgbGFu
Z3VhZ2UsIFN0cmluZ1ZpZXcgc2NyaXB0LCBTdHJpbmdWaWV3IHJlZ2lvbik7CkBAIC03OCw5ICs3
OCwxMiBAQCBjbGFzcyBMb2NhbGVJREJ1aWxkZXIgZmluYWwgewogICAgIFZlY3RvcjxjaGFyLCAz
Mj4gbV9idWZmZXI7CiB9OwogCi1ib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25z
dCBDU3RyaW5nJiB0YWcpCitib29sIExvY2FsZUlEQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBT
dHJpbmcmIHRhZykKIHsKLSAgICBtX2J1ZmZlciA9IGxvY2FsZUlEQnVmZmVyRm9yTGFuZ3VhZ2VU
YWcodGFnKTsKKyAgICBpZiAoIWlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyh0YWcpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKHRhZy5pc0FsbEFTQ0lJKCkpOworICAg
IG1fYnVmZmVyID0gbG9jYWxlSURCdWZmZXJGb3JMYW5ndWFnZVRhZyh0YWcuYXNjaWkoKSk7CiAg
ICAgcmV0dXJuIG1fYnVmZmVyLnNpemUoKTsKIH0KIApAQCAtMjE2LDcgKzIxOSw3IEBAIHZvaWQg
SW50bExvY2FsZTo6aW5pdGlhbGl6ZUxvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBTdHJpbmcmIHRhCiAgICAgfQogCiAgICAgTG9jYWxlSURCdWlsZGVyIGxvY2FsZUlE
OwotICAgIGlmICghbG9jYWxlSUQuaW5pdGlhbGl6ZSh0YWcudXRmOCgpKSkgeworICAgIGlmICgh
bG9jYWxlSUQuaW5pdGlhbGl6ZSh0YWcpKSB7CiAgICAgICAgIHRocm93UmFuZ2VFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlLCAiaW52YWxpZCBsYW5ndWFnZSB0YWciX3MpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cAppbmRleCBjNWE2MDg5OThiNjYwNjk0ZjJjYThjMGEyMzdjNmRmNTMwYjBiZjU4Li5jMjQwOWVm
OTIzMTljMGI3YWUxM2I3NDBjODRjMGJhM2Q3MzdkOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtMzkzLDcgKzM5Myw2IEBAIGJvb2wgaXNV
bmljb2RlTG9jYWxlSWRlbnRpZmllclR5cGUoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLS8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFs
bHl2YWxpZGxhbmd1YWdldGFnCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWNhbm9u
aWNhbGl6ZXVuaWNvZGVsb2NhbGVpZAogc3RhdGljIFN0cmluZyBjYW5vbmljYWxpemVMYW5ndWFn
ZVRhZyhjb25zdCBDU3RyaW5nJiB0YWcpCiB7CkBAIC00NTQsMzcgKzQ1MywzNCBAQCBWZWN0b3I8
U3RyaW5nPiBjYW5vbmljYWxpemVMb2NhbGVMaXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgbG9jYQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+
IHJhd1RhZzsKKyAgICAgICAgICAgIFN0cmluZyB0YWc7CiAgICAgICAgICAgICBpZiAoa1ZhbHVl
LmluaGVyaXRzPEludGxMb2NhbGU+KHZtKSkKLSAgICAgICAgICAgICAgICByYXdUYWcgPSBqc0Nh
c3Q8SW50bExvY2FsZSo+KGtWYWx1ZSktPnRvU3RyaW5nKCkudHJ5R2V0VXRmOCgpOworICAgICAg
ICAgICAgICAgIHRhZyA9IGpzQ2FzdDxJbnRsTG9jYWxlKj4oa1ZhbHVlKS0+dG9TdHJpbmcoKTsK
ICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIEpTU3RyaW5nKiB0YWcgPSBrVmFs
dWUudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogc3Ry
aW5nID0ga1ZhbHVlLnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgVmVjdG9yPFN0cmluZz4oKSk7CiAKLSAgICAgICAgICAg
ICAgICBhdXRvIHRhZ1ZhbHVlID0gdGFnLT52YWx1ZShnbG9iYWxPYmplY3QpOworICAgICAgICAg
ICAgICAgIHRhZyA9IHN0cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBWZWN0b3I8U3RyaW5nPigpKTsKLQotICAgICAg
ICAgICAgICAgIHJhd1RhZyA9IHRhZ1ZhbHVlLnRyeUdldFV0ZjgoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmICghcmF3VGFnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJhd1RhZy5l
cnJvcigpID09IFVURjhDb252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KQotICAgICAgICAgICAg
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgU3Ry
aW5nIGNhbm9uaWNhbGl6ZWRUYWcgPSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyhyYXdUYWcudmFs
dWUoKSk7Ci0gICAgICAgICAgICBpZiAoY2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgewotICAg
ICAgICAgICAgICAgIFN0cmluZyBlcnJvck1lc3NhZ2UgPSB0cnlNYWtlU3RyaW5nKCJpbnZhbGlk
IGxhbmd1YWdlIHRhZzogIiwgcmF3VGFnLT5kYXRhKCkpOwotICAgICAgICAgICAgICAgIGlmIChV
TkxJS0VMWSghZXJyb3JNZXNzYWdlKSkgewotICAgICAgICAgICAgICAgICAgICB0aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgaWYg
KGlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyh0YWcpKSB7CisgICAgICAgICAgICAgICAg
QVNTRVJUKHRhZy5pc0FsbEFTQ0lJKCkpOworICAgICAgICAgICAgICAgIFN0cmluZyBjYW5vbmlj
YWxpemVkVGFnID0gY2Fub25pY2FsaXplTGFuZ3VhZ2VUYWcodGFnLmFzY2lpKCkpOworICAgICAg
ICAgICAgICAgIGlmICghY2Fub25pY2FsaXplZFRhZy5pc051bGwoKSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VlblNldC5hZGQoY2Fub25pY2FsaXplZFRhZykuaXNOZXdFbnRyeSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlZW4uYXBwZW5kKGNhbm9uaWNhbGl6ZWRUYWcpOworICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJv
cihnbG9iYWxPYmplY3QsIGVycm9yTWVzc2FnZSkpOwotICAgICAgICAgICAgICAgIHJldHVybiB7
IH07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChzZWVuU2V0LmFkZChjYW5vbmlj
YWxpemVkVGFnKS5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgIHNlZW4uYXBwZW5kKGNhbm9u
aWNhbGl6ZWRUYWcpOworICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRyeU1ha2VT
dHJpbmcoImludmFsaWQgbGFuZ3VhZ2UgdGFnOiAiLCB0YWcpOworICAgICAgICAgICAgaWYgKFVO
TElLRUxZKCFlcnJvck1lc3NhZ2UpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3Qp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihn
bG9iYWxPYmplY3QsIGVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtODQzLDQxICs4MzksNDEyIEBAIGJvb2wgaXNVbmljb2RlVmFy
aWFudFN1YnRhZyhTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gbGVuZ3RoID09IDQgJiYg
aXNBU0NJSURpZ2l0KHN0cmluZ1swXSkgJiYgc3RyaW5nLnN1YnN0cmluZygxKS5pc0FsbFNwZWNp
YWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7CiB9CiAKLS8vIHVuaWNvZGVfbGFu
Z3VhZ2VfaWQsIGJ1dCBpbnRlcnNlY3Rpb24gb2YgQkNQNDcgYW5kIFVUUzM1LgotLy8gdW5pY29k
ZV9sYW5ndWFnZV9pZCA9Ci0vLyAgICAgfCB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVu
aWNvZGVfc2NyaXB0X3N1YnRhZyk/IChzZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1
bmljb2RlX3ZhcmlhbnRfc3VidGFnKSogOwotLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJv
cG9zYWwtaW50bC1kaXNwbGF5bmFtZXMvaXNzdWVzLzc5Ci1ib29sIGlzVW5pY29kZUxhbmd1YWdl
SWQoU3RyaW5nVmlldyBzdHJpbmcpCit1c2luZyBWYXJpYW50Q29kZSA9IHVpbnQ2NF90Oworc3Rh
dGljIFZhcmlhbnRDb2RlIHBhcnNlVmFyaWFudENvZGUoU3RyaW5nVmlldyBzdHJpbmcpCiB7Ci0g
ICAgVmVjdG9yPFN0cmluZ1ZpZXcsIDQ+IHN1YnRhZ3M7Ci0gICAgZm9yIChhdXRvIHN1YnRhZyA6
IHN0cmluZy5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCctJykpCi0gICAgICAgIHN1YnRhZ3Mu
YXBwZW5kKHN1YnRhZyk7CisgICAgQVNTRVJUKGlzVW5pY29kZVZhcmlhbnRTdWJ0YWcoc3RyaW5n
KSk7CisgICAgQVNTRVJUKHN0cmluZy5pc0FsbEFTQ0lJKCkpOworICAgIEFTU0VSVChzdHJpbmcu
bGVuZ3RoKCkgPD0gOCk7CisgICAgQVNTRVJUKHN0cmluZy5sZW5ndGgoKSA+PSAxKTsKKyAgICBz
dHJ1Y3QgQ29kZSB7CisgICAgICAgIExDaGFyIGNoYXJhY3RlcnNbOF0geyB9OworICAgIH07Cisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Vuc2lnbmVkX3Y8TENoYXI+KTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHNpemVvZihWYXJpYW50Q29kZSkgPT0gc2l6ZW9mKENvZGUpKTsKKyAgICBDb2RlIGNv
ZGUgeyB9OworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHN0cmluZy5sZW5n
dGgoKTsgKytpbmRleCkKKyAgICAgICAgY29kZS5jaGFyYWN0ZXJzW2luZGV4XSA9IHN0cmluZ1tp
bmRleF07CisgICAgVmFyaWFudENvZGUgcmVzdWx0ID0gYml0d2lzZV9jYXN0PFZhcmlhbnRDb2Rl
Pihjb2RlKTsKKyAgICBBU1NFUlQoIXJlc3VsdCk7IC8vIE5vdCBwb3NzaWJsZSBzaW5jZSBzb21l
IGNoYXJhY3RlcnMgZXhpc3QuCisgICAgQVNTRVJUKHJlc3VsdCAhPSBzdGF0aWNfY2FzdDxWYXJp
YW50Q29kZT4oLTEpKTsgLy8gTm90IHBvc3NpYmxlIHNpbmNlIGFsbCBjaGFyYWN0ZXJzIGFyZSBB
U0NJSSAobm90IExhdGluLTEpLgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB1bnNp
Z25lZCBjb252ZXJ0VG9Vbmljb2RlU2luZ2xldG9uSW5kZXgoVUNoYXIgc2luZ2xldG9uKQorewor
ICAgIEFTU0VSVChpc0FTQ0lJQWxwaGFudW1lcmljKHNpbmdsZXRvbikpOworICAgIHNpbmdsZXRv
biA9IHRvQVNDSUlMb3dlcihzaW5nbGV0b24pOworICAgIC8vIDAgLSA5ID0+IG51bWVyaWMKKyAg
ICAvLyAxMCAtIDM1ID0+IGFscGhhCisgICAgaWYgKGlzQVNDSUlEaWdpdChzaW5nbGV0b24pKQor
ICAgICAgICByZXR1cm4gc2luZ2xldG9uIC0gJzAnOworICAgIHJldHVybiAoc2luZ2xldG9uIC0g
J2EnKSArIDEwOworfQorc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlVuaWNvZGVT
aW5nbGV0b25zID0gMTAgKyAyNjsgLy8gRGlnaXRzICsgQWxwaGFiZXRzLgorCitzdGF0aWMgYm9v
bCBpc1VuaWNvZGVFeHRlbnNpb25BdHRyaWJ1dGUoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAg
YXV0byBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgaWYgKGxlbmd0aCA+PSAzICYmIGxl
bmd0aCA8PSA4KQorICAgICAgICByZXR1cm4gc3RyaW5nLmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8
aXNBU0NJSUFscGhhbnVtZXJpYz4oKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBi
b29sIGlzVW5pY29kZUV4dGVuc2lvbktleShTdHJpbmdWaWV3IHN0cmluZykKK3sKKyAgICByZXR1
cm4gc3RyaW5nLmxlbmd0aCgpID09IDIgJiYgaXNBU0NJSUFscGhhbnVtZXJpYyhzdHJpbmdbMF0p
ICYmIGlzQVNDSUlBbHBoYShzdHJpbmdbMV0pOworfQorCitzdGF0aWMgYm9vbCBpc1VuaWNvZGVF
eHRlbnNpb25UeXBlQ29tcG9uZW50KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVu
Z3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0g
OCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlB
bHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1Vu
aWNvZGVQVUV4dGVuc2lvblZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVu
Z3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMSAmJiBsZW5ndGggPD0g
OCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlB
bHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBpc1Vu
aWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGF1dG8g
bGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5ndGggPj0gMiAmJiBsZW5ndGgg
PD0gOCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVND
SUlBbHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBp
c1VuaWNvZGVUS2V5KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIHJldHVybiBzdHJpbmcubGVu
Z3RoKCkgPT0gMiAmJiBpc0FTQ0lJQWxwaGEoc3RyaW5nWzBdKSAmJiBpc0FTQ0lJRGlnaXQoc3Ry
aW5nWzFdKTsKK30KKworc3RhdGljIGJvb2wgaXNVbmljb2RlVFZhbHVlKFN0cmluZ1ZpZXcgc3Ry
aW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIGlmIChsZW5n
dGggPj0gMyAmJiBsZW5ndGggPD0gOCkKKyAgICAgICAgcmV0dXJuIHN0cmluZy5pc0FsbFNwZWNp
YWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCisvLyBUaGUgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnIGFic3RyYWN0IG9wZXJh
dGlvbiB2ZXJpZmllcyB0aGF0IHRoZSBsb2NhbGUgYXJndW1lbnQgKHdoaWNoIG11c3QgYmUgYSBT
dHJpbmcgdmFsdWUpCisvLworLy8gICAgIHJlcHJlc2VudHMgYSB3ZWxsLWZvcm1lZCAiVW5pY29k
ZSBCQ1AgNDcgbG9jYWxlIGlkZW50aWZpZXIiIGFzIHNwZWNpZmllZCBpbiBVbmljb2RlIFRlY2hu
aWNhbCBTdGFuZGFyZCAzNSBzZWN0aW9uIDMuMiwKKy8vICAgICBkb2VzIG5vdCBpbmNsdWRlIGR1
cGxpY2F0ZSB2YXJpYW50IHN1YnRhZ3MsIGFuZAorLy8gICAgIGRvZXMgbm90IGluY2x1ZGUgZHVw
bGljYXRlIHNpbmdsZXRvbiBzdWJ0YWdzLgorLy8KKy8vICBUaGUgYWJzdHJhY3Qgb3BlcmF0aW9u
IHJldHVybnMgdHJ1ZSBpZiBsb2NhbGUgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBFQk5GIGdy
YW1tYXIgaW4gc2VjdGlvbiAzLjIgb2YgdGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkIDM1
LAorLy8gIHN0YXJ0aW5nIHdpdGggdW5pY29kZV9sb2NhbGVfaWQsIGFuZCBkb2VzIG5vdCBjb250
YWluIGR1cGxpY2F0ZSB2YXJpYW50IG9yIHNpbmdsZXRvbiBzdWJ0YWdzIChvdGhlciB0aGFuIGFz
IGEgcHJpdmF0ZSB1c2Ugc3VidGFnKS4KKy8vICBJdCByZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4g
VGVybWluYWwgdmFsdWUgY2hhcmFjdGVycyBpbiB0aGUgZ3JhbW1hciBhcmUgaW50ZXJwcmV0ZWQg
YXMgdGhlIFVuaWNvZGUgZXF1aXZhbGVudHMgb2YgdGhlIEFTQ0lJIG9jdGV0IHZhbHVlcyBnaXZl
bi4KKy8vCisvLyBodHRwczovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVW5pY29kZV9sb2Nh
bGVfaWRlbnRpZmllcgorY2xhc3MgTGFuZ3VhZ2VUYWdQYXJzZXIgeworcHVibGljOgorICAgIExh
bmd1YWdlVGFnUGFyc2VyKFN0cmluZ1ZpZXcgdGFnKQorICAgICAgICA6IG1fcmFuZ2UodGFnLnNw
bGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJy0nKSkKKyAgICAgICAgLCBtX2N1cnNvcihtX3Jhbmdl
LmJlZ2luKCkpCisgICAgeworICAgICAgICBBU1NFUlQobV9jdXJzb3IgIT0gbV9yYW5nZS5lbmQo
KSk7CisgICAgICAgIG1fY3VycmVudCA9ICptX2N1cnNvcjsKKyAgICB9CisKKyAgICBib29sIHBh
cnNlVW5pY29kZUxvY2FsZUlkKCk7CisgICAgYm9vbCBwYXJzZVVuaWNvZGVMYW5ndWFnZUlkKCk7
CisKKyAgICBib29sIGlzRU9TKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2N1cnNvciA9PSBt
X3JhbmdlLmVuZCgpOworICAgIH0KKworICAgIGJvb2wgbmV4dCgpCisgICAgeworICAgICAgICBp
ZiAoaXNFT1MoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICArK21fY3Vy
c29yOworICAgICAgICBpZiAoaXNFT1MoKSkgeworICAgICAgICAgICAgbV9jdXJyZW50ID0gU3Ry
aW5nVmlldygpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IG1fY3VycmVudCA9ICptX2N1cnNvcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitw
cml2YXRlOgorICAgIGJvb2wgcGFyc2VFeHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKCk7CisKKyAg
ICBib29sIHBhcnNlVW5pY29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisgICAgYm9vbCBwYXJz
ZVRyYW5zZm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKTsKKyAgICBib29sIHBhcnNlT3RoZXJF
eHRlbnNpb25BZnRlclByZWZpeCgpOworICAgIGJvb2wgcGFyc2VQVUV4dGVuc2lvbkFmdGVyUHJl
Zml4KCk7CisKKyAgICBTdHJpbmdWaWV3OjpTcGxpdFJlc3VsdCBtX3JhbmdlOworICAgIFN0cmlu
Z1ZpZXc6OlNwbGl0UmVzdWx0OjpJdGVyYXRvciBtX2N1cnNvcjsKKyAgICBTdHJpbmdWaWV3IG1f
Y3VycmVudDsKK307CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxvY2Fs
ZUlkKCkKK3sKKyAgICAvLyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2Vf
aWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisgICAgLy8gICAg
ICAgICAgICAgICAgICAgICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgQVNTRVJUKCFpc0VPUygp
KTsKKyAgICBpZiAoIXBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmIChpc0VPUygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIXBh
cnNlRXh0ZW5zaW9uc0FuZFBVRXh0ZW5zaW9ucygpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29k
ZUxhbmd1YWdlSWQoKQoreworICAgIC8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgID0gdW5pY29kZV9s
YW5ndWFnZV9zdWJ0YWcgKHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0YWcpPyAoc2VwIHVuaWNvZGVf
cmVnaW9uX3N1YnRhZyk/IChzZXAgdW5pY29kZV92YXJpYW50X3N1YnRhZykqIDsKKyAgICBBU1NF
UlQoIWlzRU9TKCkpOworICAgIGlmICghaXNVbmljb2RlTGFuZ3VhZ2VTdWJ0YWcobV9jdXJyZW50
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbmV4dCgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmIChpc1VuaWNvZGVTY3JpcHRTdWJ0YWcobV9jdXJyZW50KSkgewor
ICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIGlmIChpc1VuaWNvZGVSZWdpb25TdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpZiAo
IW5leHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIEhhc2hTZXQ8
VmFyaWFudENvZGU+IHZhcmlhbnRDb2RlczsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBp
ZiAoIWlzVW5pY29kZVZhcmlhbnRTdWJ0YWcobV9jdXJyZW50KSkKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWlzc3RydWN0
dXJhbGx5dmFsaWRsYW5ndWFnZXRhZworICAgICAgICAvLyBkb2VzIG5vdCBpbmNsdWRlIGR1cGxp
Y2F0ZSB2YXJpYW50IHN1YnRhZ3MKKyAgICAgICAgaWYgKCF2YXJpYW50Q29kZXMuYWRkKHBhcnNl
VmFyaWFudENvZGUobV9jdXJyZW50KSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUV4dGVuc2lvbkFm
dGVyUHJlZml4KCkKK3sKKyAgICAvLyAoKHNlcCBrZXl3b3JkKSsgfCAoc2VwIGF0dHJpYnV0ZSkr
IChzZXAga2V5d29yZCkqKSA7CisgICAgLy8KKyAgICAvLyBrZXl3b3JkID0ga2V5IChzZXAgdHlw
ZSk/IDsKKyAgICAvLyBrZXkgPSBhbHBoYW51bSBhbHBoYSA7CisgICAgLy8gdHlwZSA9IGFscGhh
bnVtezMsOH0gKHNlcCBhbHBoYW51bXszLDh9KSogOworICAgIC8vIGF0dHJpYnV0ZSA9IGFscGhh
bnVtezMsOH0gOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgYm9vbCBpc0F0dHJpYnV0ZU9y
S2V5d29yZCA9IGZhbHNlOworICAgIGlmIChpc1VuaWNvZGVFeHRlbnNpb25BdHRyaWJ1dGUobV9j
dXJyZW50KSkgeworICAgICAgICBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IHRydWU7CisgICAgICAg
IHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoIWlzVW5pY29kZUV4dGVuc2lvbkF0dHJp
YnV0ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYg
KCFuZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoaXNVbmljb2RlRXh0ZW5zaW9uS2V5KG1fY3VycmVudCkpIHsKKyAgICAgICAg
aXNBdHRyaWJ1dGVPcktleXdvcmQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICAgICAgaWYgKCFpc1VuaWNvZGVFeHRlbnNpb25LZXkobV9jdXJyZW50KSkKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWlzVW5pY29kZUV4dGVuc2lvblR5cGVDb21wb25lbnQobV9jdXJyZW50KSkKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKCFpc0F0dHJpYnV0ZU9yS2V5d29yZCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIExhbmd1YWdlVGFnUGFyc2VyOjpwYXJz
ZVRyYW5zZm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKQoreworICAgIC8vICgoc2VwIHRsYW5n
IChzZXAgdGZpZWxkKSopIHwgKHNlcCB0ZmllbGQpKykgOworICAgIC8vCisgICAgLy8gdGxhbmcg
PSB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2NyaXB0X3N1YnRhZyk/IChz
ZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3ZhcmlhbnRfc3VidGFnKSog
OworICAgIC8vIHRmaWVsZCA9IHRrZXkgdHZhbHVlOworICAgIC8vIHRrZXkgPSBhbHBoYSBkaWdp
dCA7CisgICAgLy8gdHZhbHVlID0gKHNlcCBhbHBoYW51bXszLDh9KSsgOworICAgIEFTU0VSVCgh
aXNFT1MoKSk7CisgICAgYm9vbCBpc1RMYW5nT3JURmllbGQgPSBmYWxzZTsKKyAgICBpZiAoaXNV
bmljb2RlTGFuZ3VhZ2VTdWJ0YWcobV9jdXJyZW50KSkgeworICAgICAgICBpc1RMYW5nT3JURmll
bGQgPSB0cnVlOworICAgICAgICBpZiAoIXBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGlzRU9TKCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CiAKLSAgICBBU1NFUlQoc3VidGFncy5zaXplKCkgPj0gMSk7Ci0g
ICAgdW5zaWduZWQgY3Vyc29yID0gMDsKLSAgICBpZiAoIWlzVW5pY29kZUxhbmd1YWdlU3VidGFn
KHN1YnRhZ3NbY3Vyc29yXSkpCisgICAgaWYgKGlzVW5pY29kZVRLZXkobV9jdXJyZW50KSkgewor
ICAgICAgICBpc1RMYW5nT3JURmllbGQgPSB0cnVlOworICAgICAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICAgICAgaWYgKCFpc1VuaWNvZGVUS2V5KG1fY3VycmVudCkpCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWlzVW5pY29kZVRWYWx1ZShtX2N1cnJlbnQpKQorICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoIWlzVExhbmdPclRGaWVsZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICsrY3Vyc29yOworICAgIHJldHVybiB0cnVlOworfQogCi0gICAgaWYgKGN1cnNvciA9PSBz
dWJ0YWdzLnNpemUoKSkKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlT3RoZXJFeHRlbnNp
b25BZnRlclByZWZpeCgpCit7CisgICAgLy8gKHNlcCBhbHBoYW51bXsyLDh9KSsgOworICAgIEFT
U0VSVCghaXNFT1MoKSk7CisgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKG1f
Y3VycmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW5leHQoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGlzVW5pY29kZVNjcmlwdFN1YnRhZyhzdWJ0YWdzW2N1
cnNvcl0pKQotICAgICAgICArK2N1cnNvcjsKIAotICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5z
aXplKCkpCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCFpc1VuaWNvZGVPdGhlckV4
dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jv
b2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCgpCit7Cisg
ICAgLy8gKHNlcCBhbHBoYW51bXsxLDh9KSsgOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAg
aWYgKCFpc1VuaWNvZGVQVUV4dGVuc2lvblZhbHVlKG1fY3VycmVudCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIW5leHQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KGlzVW5pY29kZVJlZ2lvblN1YnRhZyhzdWJ0YWdzW2N1cnNvcl0pKQotICAgICAgICArK2N1cnNv
cjsKIAogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChjdXJzb3IgPT0gc3VidGFncy5z
aXplKCkpCisgICAgICAgIGlmICghaXNVbmljb2RlUFVFeHRlbnNpb25WYWx1ZShtX2N1cnJlbnQp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICghbmV4dCgpKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICghaXNVbmljb2RlVmFyaWFudFN1YnRhZyhz
dWJ0YWdzW2N1cnNvcl0pKQorICAgIH0KK30KKworYm9vbCBMYW5ndWFnZVRhZ1BhcnNlcjo6cGFy
c2VFeHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKCkKK3sKKyAgICAvLyB1bmljb2RlX2xvY2FsZV9p
ZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnMqCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBwdV9leHRlbnNpb25z
PyA7CisgICAgLy8KKyAgICAvLyBleHRlbnNpb25zID0gdW5pY29kZV9sb2NhbGVfZXh0ZW5zaW9u
cworICAgIC8vICAgICAgICAgICAgfCB0cmFuc2Zvcm1lZF9leHRlbnNpb25zCisgICAgLy8gICAg
ICAgICAgICB8IG90aGVyX2V4dGVuc2lvbnMgOworICAgIC8vCisgICAgLy8gcHVfZXh0ZW5zaW9u
cyA9IHNlcCBbeFhdIChzZXAgYWxwaGFudW17MSw4fSkrIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkp
OworICAgIEJpdG1hcDxudW1iZXJPZlVuaWNvZGVTaW5nbGV0b25zPiBzaW5nbGV0b25zU2V0IHsg
fTsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAobV9jdXJyZW50Lmxlbmd0aCgpICE9
IDEpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgVUNoYXIgcHJlZml4Q29kZSA9
IG1fY3VycmVudFswXTsKKyAgICAgICAgaWYgKCFpc0FTQ0lJQWxwaGFudW1lcmljKHByZWZpeENv
ZGUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gaHR0cHM6Ly90YzM5
LmVzL2VjbWE0MDIvI3NlYy1pc3N0cnVjdHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKKyAgICAgICAg
Ly8gZG9lcyBub3QgaW5jbHVkZSBkdXBsaWNhdGUgc2luZ2xldG9uIHN1YnRhZ3MuCisgICAgICAg
IC8vCisgICAgICAgIC8vIGh0dHBzOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1LyNVbmljb2Rl
X2xvY2FsZV9pZGVudGlmaWVyCisgICAgICAgIC8vIEFzIGlzIG9mdGVuIHRoZSBjYXNlLCB0aGUg
Y29tcGxldGUgc3ludGFjdGljIGNvbnN0cmFpbnRzIGFyZSBub3QgZWFzaWx5IGNhcHR1cmVkIGJ5
IEFCTkYsCisgICAgICAgIC8vIHNvIHRoZXJlIGlzIGEgZnVydGhlciBjb25kaXRpb246IFRoZXJl
IGNhbm5vdCBiZSBtb3JlIHRoYW4gb25lIGV4dGVuc2lvbiB3aXRoIHRoZSBzYW1lIHNpbmdsZXRv
biAoLWEtLCDigKYsIC10LSwgLXUtLCDigKYpLgorICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIHBy
aXZhdGUgdXNlIGV4dGVuc2lvbiAoLXgtKSBtdXN0IGNvbWUgYWZ0ZXIgYWxsIG90aGVyIGV4dGVu
c2lvbnMuCisgICAgICAgIGlmIChzaW5nbGV0b25zU2V0LmdldChjb252ZXJ0VG9Vbmljb2RlU2lu
Z2xldG9uSW5kZXgocHJlZml4Q29kZSkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICArK2N1cnNvcjsKKyAgICAgICAgc2luZ2xldG9uc1NldC5zZXQoY29udmVydFRvVW5pY29k
ZVNpbmdsZXRvbkluZGV4KHByZWZpeENvZGUpLCB0cnVlKTsKKworICAgICAgICBzd2l0Y2ggKHBy
ZWZpeENvZGUpIHsKKyAgICAgICAgY2FzZSAndSc6CisgICAgICAgIGNhc2UgJ1UnOiB7CisgICAg
ICAgICAgICAvLyB1bmljb2RlX2xvY2FsZV9leHRlbnNpb25zID0gc2VwIFt1VV0gKChzZXAga2V5
d29yZCkrIHwgKHNlcCBhdHRyaWJ1dGUpKyAoc2VwIGtleXdvcmQpKikgOworICAgICAgICAgICAg
aWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
aWYgKCFwYXJzZVVuaWNvZGVFeHRlbnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChpc0VPUygpKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgYnJlYWs7IC8vIE5leHQgZXh0ZW5zaW9uLgorICAg
ICAgICB9CisgICAgICAgIGNhc2UgJ3QnOgorICAgICAgICBjYXNlICdUJzogeworICAgICAgICAg
ICAgLy8gdHJhbnNmb3JtZWRfZXh0ZW5zaW9ucyA9IHNlcCBbdFRdICgoc2VwIHRsYW5nIChzZXAg
dGZpZWxkKSopIHwgKHNlcCB0ZmllbGQpKykgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVRyYW5z
Zm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICBpZiAoaXNFT1MoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIGJyZWFrOyAvLyBOZXh0IGV4dGVuc2lvbi4KKyAgICAgICAgfQorICAg
ICAgICBjYXNlICd4JzoKKyAgICAgICAgY2FzZSAnWCc6IHsKKyAgICAgICAgICAgIC8vIHB1X2V4
dGVuc2lvbnMgPSBzZXAgW3hYXSAoc2VwIGFscGhhbnVtezEsOH0pKyA7CisgICAgICAgICAgICBp
ZiAoIW5leHQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBp
ZiAoIXBhcnNlUFVFeHRlbnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBJZiBwdV9leHRlbnNpb25zIGFw
cGVhciwgbm8gZXh0ZW5zaW9ucyBjYW4gZm9sbG93IGFmdGVyIHRoYXQuIFRoaXMgbXVzdCBiZSB0
aGUgZW5kIG9mIHVuaWNvZGVfbG9jYWxlX2lkLgorICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6
IHsKKyAgICAgICAgICAgIC8vIG90aGVyX2V4dGVuc2lvbnMgPSBzZXAgW2FscGhhbnVtLVt0VHVV
eFhdXSAoc2VwIGFscGhhbnVtezIsOH0pKyA7CisgICAgICAgICAgICBpZiAoIW5leHQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXBhcnNlT3RoZXJF
eHRlbnNpb25BZnRlclByZWZpeCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGlmIChpc0VPUygpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7IC8vIE5leHQgZXh0ZW5zaW9uLgorICAgICAgICB9CisgICAgICAgIH0K
ICAgICB9CiB9CiAKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1cmFs
bHl2YWxpZGxhbmd1YWdldGFnCitib29sIGlzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZyhT
dHJpbmdWaWV3IHN0cmluZykKK3sKKyAgICBMYW5ndWFnZVRhZ1BhcnNlciBwYXJzZXIoc3RyaW5n
KTsKKyAgICBpZiAoIXBhcnNlci5wYXJzZVVuaWNvZGVMb2NhbGVJZCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFwYXJzZXIuaXNFT1MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiB0cnVlOworfQorCisvLyB1bmljb2RlX2xhbmd1YWdlX2lkLCBidXQgaW50
ZXJzZWN0aW9uIG9mIEJDUDQ3IGFuZCBVVFMzNS4KKy8vIHVuaWNvZGVfbGFuZ3VhZ2VfaWQgPQor
Ly8gICAgIHwgdW5pY29kZV9sYW5ndWFnZV9zdWJ0YWcgKHNlcCB1bmljb2RlX3NjcmlwdF9zdWJ0
YWcpPyAoc2VwIHVuaWNvZGVfcmVnaW9uX3N1YnRhZyk/IChzZXAgdW5pY29kZV92YXJpYW50X3N1
YnRhZykqIDsKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWludGwtZGlzcGxh
eW5hbWVzL2lzc3Vlcy83OQorYm9vbCBpc1VuaWNvZGVMYW5ndWFnZUlkKFN0cmluZ1ZpZXcgc3Ry
aW5nKQoreworICAgIExhbmd1YWdlVGFnUGFyc2VyIHBhcnNlcihzdHJpbmcpOworICAgIGlmICgh
cGFyc2VyLnBhcnNlVW5pY29kZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghcGFyc2VyLmlzRU9TKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogYm9vbCBpc1dlbGxGb3JtZWRDdXJyZW5jeUNvZGUoU3RyaW5nVmlldyBj
dXJyZW5jeSkKIHsKICAgICByZXR1cm4gY3VycmVuY3kubGVuZ3RoKCkgPT0gMyAmJiBjdXJyZW5j
eS5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYT4oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAppbmRleCAwYjBhN2JiNmJhNDFjMWVmMjkxYTI4
MjIzYjg1MDM4MTg3Zjc2OGQ2Li42OWEyNzUzNjJlNWRmNzA4YTVjZjExNGNjOTUyZTliMGZkNmVh
Mzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCkBAIC0x
MTcsNiArMTE3LDcgQEAgYm9vbCBpc1VuaWNvZGVTY3JpcHRTdWJ0YWcoU3RyaW5nVmlldyk7CiBi
b29sIGlzVW5pY29kZVJlZ2lvblN1YnRhZyhTdHJpbmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlVmFy
aWFudFN1YnRhZyhTdHJpbmdWaWV3KTsKIGJvb2wgaXNVbmljb2RlTGFuZ3VhZ2VJZChTdHJpbmdW
aWV3KTsKK2Jvb2wgaXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKFN0cmluZ1ZpZXcpOwog
CiBib29sIGlzV2VsbEZvcm1lZEN1cnJlbmN5Q29kZShTdHJpbmdWaWV3KTsKIApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyNTZlMjE3MmU5
OTVlOWQ0Y2UzNzRiZmY2ODBjYzQxYjlhZDM2ZWFmLi4zNzEyNTFiMzQwZDdlM2E4MWVkNGFjZTky
YTlmZjI4NTU0MWRlMWNiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTAyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW1wbGVtZW50IEludGwgTGFu
Z3VhZ2UgVGFnIFBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE1MDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdHJlc3MvaW50bC1jb2xsYXRvci5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50
bC1kYXRldGltZWZvcm1hdC5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50bC1sYW5ndWFnZS10YWcu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAoc2hvdWxkTm90VGhy
b3cpOgorICAgICAgICAqIHN0cmVzcy9pbnRsLWxvY2FsZS5qczoKKyAgICAgICAgKiBzdHJlc3Mv
aW50bC1udW1iZXJmb3JtYXQuanM6CisgICAgICAgICogc3RyZXNzL2ludGwtb2JqZWN0LmpzOgor
ICAgICAgICAqIHN0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLmpzOgorICAgICAgICAqIHN0cmVzcy9p
bnRsLXJlbGF0aXZldGltZWZvcm1hdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvc3RyaW5nLXRvTG9j
YWxlTG93ZXJDYXNlLmpzOgorICAgICAgICAqIHN0cmVzcy9zdHJpbmctdG9Mb2NhbGVVcHBlckNh
c2UuanM6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKwogMjAyMC0wNy0z
MCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTa2lwIHN0cmVz
cy9vcGVyYW5kLXNob3VsZC1maXQtaW4tYWJzdHJhY3QtaGVhcC1lbmNvZGVkLXBheWxvYWQtZm9y
bWF0LmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWNvbGxhdG9yLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvaW50bC1jb2xsYXRvci5qcwppbmRleCA5OTkwZGJkNjBkNDYzMWYyYjMzMjQ4
YWIwMDUyYzkzM2NiMjI5OTFhLi5hMmU0MDUwMTRmNTU1NTAyODU2ZTIxZDBmYmQ1MGM0YWY5NmFj
MDQ4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWNvbGxhdG9yLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2ludGwtY29sbGF0b3IuanMKQEAgLTE5NCwxNSArMTk0LDEzIEBAIGZ1bmN0
aW9uIHRlc3RDb2xsYXRvcihjb2xsYXRvciwgcG9zc2libGVPcHRpb25EaWZmZXJlbmNlcykgewog
ICAgICAgICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29iYXItdmFyaWFudC1hLWFhLWFhYS11LWtu
LXgtcmVzZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1MYXRuLVVTLXZhcmlhbnQtZm9vYmFyLTFh
YmMtYS1hYS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQiXScKICk7Ci0vLyBSZXBsYWNlcyBvdXRk
YXRlZCB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5Db2xsYXRvci5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotLy8gRG9lc24ndCB0aHJvdywgYnV0
IGlnbm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5Db2xs
YXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpKSwgJ1tdJyk7CiAvLyBUaHJv
d3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3IgdG9TdHJpbmcuCiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZihPYmplY3QuY3JlYXRlKG51
bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgRXJyb3IoKSB9IH0gfSkpLCBFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZihPYmplY3Qu
Y3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0KCkgeyB0aHJvdyBF
cnJvcigpIH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iu
c3VwcG9ydGVkTG9jYWxlc09mKFsgeyB0b1N0cmluZygpIHsgdGhyb3cgRXJyb3IoKSB9IH0gXSks
IEVycm9yKTsKIC8vIFRocm93cyBvbiBiYWQgdGFncy4KK3Nob3VsZFRocm93KCgpID0+IEludGwu
Q29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCduby1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91
bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRo
aW5nJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBw
b3J0ZWRMb2NhbGVzT2YoWyA1IF0pLCBUeXBlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJycpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRo
cm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCdhJyksIFJhbmdlRXJy
b3IpOwpAQCAtMjE1LDYgKzIxMywxMyBAQCBmdW5jdGlvbiB0ZXN0Q29sbGF0b3IoY29sbGF0b3Is
IHBvc3NpYmxlT3B0aW9uRGlmZmVyZW5jZXMpIHsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29s
bGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0qJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLScpLCBSYW5nZUVy
cm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09m
KCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9y
LnN1cHBvcnRlZExvY2FsZXNPZignaS1rbGluZ29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZh
dGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdl
VGFnCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZign
eC1lbi1VUy0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuQ29s
bGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCd4LTEyMzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2Yo
J3gtZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvbycpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCd4
LWVuLXUtZm9vLXUtYmFyJyksIFJhbmdlRXJyb3IpOworCiAvLyBBY2NlcHRzIHZhbGlkIHRhZ3MK
IHZhciB2YWxpZExhbmd1YWdlVGFncyA9IFsKICAgICAnZGUnLCAvLyBJU08gNjM5IGxhbmd1YWdl
IGNvZGUKQEAgLTIyNiwxNiArMjMxLDEwIEBAIGZ1bmN0aW9uIHRlc3RDb2xsYXRvcihjb2xsYXRv
ciwgcG9zc2libGVPcHRpb25EaWZmZXJlbmNlcykgewogICAgICdjbW4taGFucy1jbicsIC8vICsg
SVNPIDMxNjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lv
biBjb2RlCiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2Fs
ZSBleHRlbnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0
YWcKICAgICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRh
Z3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFu
LWVub2NoaWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNh
bWUKICAgICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNp
b24gc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAv
LyB2YXJpYW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdz
Ci0gICAgJ3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRh
Z3MKLSAgICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUn
LAotICAgICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKHZh
ciB2YWxpZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRo
cm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKHZhbGlkTGFuZ3VhZ2VU
YWcpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0LmpzCmluZGV4IGY3YzVhMDcwMDY2
NDM2MjU5ZDZhMDY0YmRkOTc4MmU4NzEzMzZhNmEuLjZmYmYwM2VkODljYjk4ZWU0ZTRiNjc4Nzkw
N2U5OGM5YmZmYWY5OGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVm
b3JtYXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC5qcwpAQCAt
ODYsMTUgKzg2LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewog
ICAgICAgICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29iYXItdmFyaWFudC1hLWFhLWFhYS11LWtu
LXgtcmVzZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1MYXRuLVVTLXZhcmlhbnQtZm9vYmFyLTFh
YmMtYS1hYS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQiXScKICk7Ci0vLyBSZXBsYWNlcyBvdXRk
YXRlZCB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5EYXRlVGltZUZvcm1hdC5z
dXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotLy8gRG9lc24ndCB0aHJv
dywgYnV0IGlnbm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50
bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpKSwgJ1td
Jyk7CiAvLyBUaHJvd3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3IgdG9TdHJpbmcu
CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNP
ZihPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9y
KCk7IH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFs
dWU6IDEgfSwgMDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7
CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNP
ZihbIHsgdG9TdHJpbmcoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gXSksIEVycm9yKTsKIC8v
IFRocm93cyBvbiBiYWQgdGFncy4KK3Nob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKCduby1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJv
dygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRo
aW5nJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1h
dC5zdXBwb3J0ZWRMb2NhbGVzT2YoWyA1IF0pLCBUeXBlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJycpLCBSYW5nZUVycm9y
KTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxl
c09mKCdhJyksIFJhbmdlRXJyb3IpOwpAQCAtMTA3LDYgKzEwNSwxMyBAQCBmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRp
bWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0qJyksIFJhbmdlRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLScp
LCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3Vw
cG9ydGVkTG9jYWxlc09mKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignaS1rbGluZ29uJyksIFJh
bmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1
Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1l
Rm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NScpLCBSYW5nZUVycm9yKTsK
K3Nob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09m
KCd4LTEyMzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4g
SW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUtMTIz
NDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0
LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRo
cm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLXUt
Zm9vLXUtYmFyJyksIFJhbmdlRXJyb3IpOworCiAvLyBBY2NlcHRzIHZhbGlkIHRhZ3MKIHZhciB2
YWxpZExhbmd1YWdlVGFncyA9IFsKICAgICAnZGUnLCAvLyBJU08gNjM5IGxhbmd1YWdlIGNvZGUK
QEAgLTExOCwxNiArMTIzLDEwIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlw
ZSkgewogICAgICdjbW4taGFucy1jbicsIC8vICsgSVNPIDMxNjYtMSBjb3VudHJ5IGNvZGUKICAg
ICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBjb2RlCiAgICAgJ2VzLTQxOS11LW51LWxh
dG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBleHRlbnNpb24gc2VxdWVuY2UKLSAgICAn
aS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcKICAgICAnY21uLWhhbnMtY24tdC1jYS11
LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2
YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVub2NoaWFuJywgLy8gbGFuZ3VhZ2UgYW5k
IHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnZGUtZ3JlZ29yeS11LWNhLWdy
ZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24gc3VidGFncyBtYXkgYmUgdGhlIHNhbWUK
ICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2YXJpYW50IHN1YnRhZ3MgY2FuIGFsc28g
YmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0gICAgJ3gtZW4tVVMtMTIzNDUnLCAvLyBh
bnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MKLSAgICAneC0xMjM0NS0xMjM0NS1lbi1V
UycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAotICAgICd4LWVuLXUtZm9vJywKLSAgICAn
eC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKHZhciB2YWxpZExhbmd1YWdlVGFnIG9mIHZhbGlk
TGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKHZhbGlkTGFuZ3VhZ2VUYWcpKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2ludGwtbGFuZ3VhZ2UtdGFnLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1s
YW5ndWFnZS10YWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEyNzBlOTRlZmVlZGY0MmE4ZTVkMTczMzgxYTYz
YjZhYTg3OTZhMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbGFuZ3Vh
Z2UtdGFnLmpzCkBAIC0wLDAgKzEsNTggQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVy
cm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEo
ZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4
cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGROb3RUaHJv
dyhmdW5jKSB7CisgICAgZnVuYygpOworfQorCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENh
bm9uaWNhbExvY2FsZXMoImVuLVVTLXUtY2EtdS1udSIpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRo
cm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZW4tVVMtYS1vazEtYS1vazIiKSwg
UmFuZ2VFcnJvcik7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2Fs
ZXMoImVuLVVTLWEtb2sxIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCJkZSIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2Fs
TG9jYWxlcygiZnIiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExv
Y2FsZXMoImphIikpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KCJpLWVub2NoaWFuIiksIFJhbmdlRXJyb3IpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5n
ZXRDYW5vbmljYWxMb2NhbGVzKCJ6aC1IYW50IikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50
bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJ6aC1IYW5zIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4g
SW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzci1DeXJsIikpOworc2hvdWxkTm90VGhyb3coKCkg
PT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzci1MYXRuIikpOworc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJ6aC1jbW4tSGFucy1DTiIpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiY21uLUhh
bnMtQ04iKSk7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoInpo
LXl1ZS1ISyIpLCBSYW5nZUVycm9yKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygieXVlLUhLIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRD
YW5vbmljYWxMb2NhbGVzKCJ6aC1IYW5zLUNOIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50
bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzci1MYXRuLVJTIikpOworc2hvdWxkTm90VGhyb3coKCkg
PT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzbC1yb3phaiIpKTsKK3Nob3VsZE5vdFRocm93
KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygic2wtcm96YWotYmlza2UiKSk7CitzaG91
bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoInNsLXJvemFqLWJpc2tlLWJp
c2tlIiksIFJhbmdlRXJyb3IpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCJzbC1uZWRpcyIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygiZGUtQ0gtMTkwMSIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwu
Z2V0Q2Fub25pY2FsTG9jYWxlcygic2wtSVQtbmVkaXMiKSk7CitzaG91bGROb3RUaHJvdygoKSA9
PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImh5LUxhdG4tSVQtYXJldmVsYSIpKTsKK3Nob3Vs
ZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZGUtREUiKSk7CitzaG91
bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImVuLVVTIikpOworc2hv
dWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJlcy00MTkiKSk7Citz
aG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImRlLUNILXgtcGhv
bmViayIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygi
YXotQXJhYi14LUFaRS1kZXJiZW5kIikpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5v
bmljYWxMb2NhbGVzKCJ4LXdoYXRldmVyIiksIFJhbmdlRXJyb3IpOworc2hvdWxkTm90VGhyb3co
KCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJxYWEtUWFhYS1RTS14LXNvdXRoZXJuIikp
Oworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJkZS1RYWFh
IikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzci1M
YXRuLVFNIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KCJzci1RYWFhLVJTIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxM
b2NhbGVzKCJlbi1VUy11LWlzbGFtY2FsIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5n
ZXRDYW5vbmljYWxMb2NhbGVzKCJ6aC1DTi1hLW15ZXh0LXgtcHJpdmF0ZSIpKTsKK3Nob3VsZE5v
dFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZW4tYS1teWV4dC1iLWFub3Ro
ZXIiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImVu
LVVTLXUtbnUtZnVsbHdpZGUiKSk7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNh
bExvY2FsZXMoImRlLTQxOS1ERSIpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IElu
dGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiYS1ERSIpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93
KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiYXItYS1hYWEtYi1iYmItYS1jY2MiKSwg
UmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMo
IiIpLCBSYW5nZUVycm9yKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxl
LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKaW5kZXggZjQ4NzQxZjM5YTM4Zjdi
ZDYwMDY0NWM3Zjg0ZTZiMzc4OGJkZmM1ZS4uMDRlNTI1OTc5ZmRjMGM0ODQ0ZDEzMzBiZTZkNTRk
M2QzNWMwYzUxZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKQEAgLTQ1LDYgKzQ1LDEyIEBAIGZ1bmN0
aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhyb3coKCkgPT4gbmV3
IEludGwuTG9jYWxlKHt9KSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBuZXcgSW50
bC5Mb2NhbGUoeyB0b1N0cmluZygpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSksIEVycm9yKTsK
IHNob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZShbXSksIFJhbmdlRXJyb3IpOworc2hv
dWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKCdpLWtsaW5nb24nKSwgUmFuZ2VFcnJvcik7
IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBieSBJc1N0cnVjdHVyYWxseVZh
bGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSgneC1lbi1V
Uy0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2Fs
ZSgneC0xMjM0NS0xMjM0NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+
IG5ldyBJbnRsLkxvY2FsZSgneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3No
b3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSgneC1lbi11LWZvbycpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSgneC1lbi11LWZvby11LWJhcicp
LCBSYW5nZUVycm9yKTsKIHNob3VsZE5vdFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSh7IHRv
U3RyaW5nKCkgeyByZXR1cm4gJ2VuJzsgfSB9KSk7CiAKIHNob3VsZFRocm93KCgpID0+IG5ldyBJ
bnRsLkxvY2FsZSgnZW4nLCBudWxsKSwgVHlwZUVycm9yKTsKQEAgLTcyLDE2ICs3OCwxMCBAQCBm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAnY21uLWhhbnMtY24n
LCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40
OSByZWdpb24gY29kZQogICAgICdlcy00MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29k
ZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0
aGVyZWQgdGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRv
biBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdl
bm9jaGlhbi1lbm9jaGlhbicsIC8vIGxhbmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJl
IHRoZSBzYW1lCiAgICAgJ2RlLWdyZWdvcnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQg
ZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28t
YmFyJywgLy8gdmFyaWFudCBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ug
c3VidGFncwotICAgICd4LWVuLVVTLTEyMzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRl
IHVzZSB0YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1
LTEyMzQ1JywKLSAgICAneC1lbi11LWZvbycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwog
Zm9yIChsZXQgdmFsaWRMYW5ndWFnZVRhZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91
bGROb3RUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUodmFsaWRMYW5ndWFnZVRhZykpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQuanMgYi9KU1Rlc3RzL3N0
cmVzcy9pbnRsLW51bWJlcmZvcm1hdC5qcwppbmRleCAzMWJiYzRhMjVjMzRhMWJkNDdhNWYzZjAw
MDUzMTc2OTE4YzFlNTYxLi4yZTk2NWU3ZGFlYWYwYjIzNGMxZDgxOGFjNDc2MGUxZjczMzI3NmJh
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLW51bWJlcmZvcm1hdC5qcwpAQCAtMSw1ICsxLDMgQEAKLS8vQCBy
dW5CaWdJbnRFbmFibGVkCi0KIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
ICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBl
eHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwpAQCAtMjI2LDE1ICsyMjQs
MTMgQEAgZnVuY3Rpb24gdGVzdE51bWJlckZvcm1hdChudW1iZXJGb3JtYXQsIHBvc3NpYmxlRGlm
ZmVyZW5jZXMpIHsKICAgICAgICAgPyAnWyJlbi1MYXRuLVVTLTFhYmMtZm9vYmFyLXZhcmlhbnQt
YS1hYS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAgICAgICAgIDogJ1siZW4tTGF0bi1VUy12YXJp
YW50LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24tdHJ1ZS14LXJlc2VydmVkIl0nCiApOwotLy8g
UmVwbGFjZXMgb3V0ZGF0ZWQgdGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuTnVt
YmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJykpLCAnWyJuYiJdJyk7Ci0vLyBE
b2Vzbid0IHRocm93LCBidXQgaWdub3JlcyBwcml2YXRlIHRhZ3MuCi1zaG91bGRCZShKU09OLnN0
cmluZ2lmeShJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGlu
ZycpKSwgJ1tdJyk7CiAvLyBUaHJvd3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3Ig
dG9TdHJpbmcuCiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRM
b2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyBnZXQoKSB7IHRocm93IG5l
dyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJl
ckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDog
eyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSksIEVy
cm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZihbIHsgdG9TdHJpbmcoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gXSksIEVycm9yKTsK
IC8vIFRocm93cyBvbiBiYWQgdGFncy4KK3Nob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9y
bWF0LnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LXNvbWUtdGhp
bmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5z
dXBwb3J0ZWRMb2NhbGVzT2YoWyA1IF0pLCBUeXBlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4g
SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCcnKSwgUmFuZ2VFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2En
KSwgUmFuZ2VFcnJvcik7CkBAIC0yNDcsNiArMjQzLDEzIEBAIGZ1bmN0aW9uIHRlc3ROdW1iZXJG
b3JtYXQobnVtYmVyRm9ybWF0LCBwb3NzaWJsZURpZmZlcmVuY2VzKSB7CiBzaG91bGRUaHJvdygo
KSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLSonKSwgUmFuZ2VF
cnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2Nh
bGVzT2YoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVy
Rm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignZW4tLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdpLWtsaW5n
b24nKSwgUmFuZ2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBi
eSBJc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+IEludGwu
TnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NScpLCBSYW5nZUVy
cm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZigneC0xMjM0NS0xMjM0NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgp
ID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NS0x
MjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0
LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRo
cm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZv
by11LWJhcicpLCBSYW5nZUVycm9yKTsKKwogLy8gQWNjZXB0cyB2YWxpZCB0YWdzCiB2YXIgdmFs
aWRMYW5ndWFnZVRhZ3MgPSBbCiAgICAgJ2RlJywgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBA
IC0yNTgsMTYgKzI2MSwxMCBAQCBmdW5jdGlvbiB0ZXN0TnVtYmVyRm9ybWF0KG51bWJlckZvcm1h
dCwgcG9zc2libGVEaWZmZXJlbmNlcykgewogICAgICdjbW4taGFucy1jbicsIC8vICsgSVNPIDMx
NjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBjb2Rl
CiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBleHRl
bnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcKICAg
ICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3MgY2Fu
IGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVub2No
aWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAg
ICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24gc3Vi
dGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2YXJp
YW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0gICAg
J3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MKLSAg
ICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAotICAg
ICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKHZhciB2YWxp
ZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93KCgp
ID0+IEludGwuTnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZih2YWxpZExhbmd1YWdlVGFn
KSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW9iamVjdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2ludGwtb2JqZWN0LmpzCmluZGV4IGE2NzExNjg1YTFiMWY3YzZmNDM2MTVkNThjMDAx
OWQ3YWVmODRhMzQuLjM1MzM5NGVhMGMzYmE4ZmY5NjkwNDk5MDAwODFkNGQwN2Q2NjYyZDAgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtb2JqZWN0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtb2JqZWN0LmpzCkBAIC03NCwxNSArNzQsMTMgQEAgZnVuY3Rpb24gc2hvdWxkVGhy
b3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgICAgID8gJ1siZW4tTGF0bi1VUy0xYWJjLWZvb2Jh
ci12YXJpYW50LWEtYWEtYWFhLXUta24teC1yZXNlcnZlZCJdJwogICAgICAgICA6ICdbImVuLUxh
dG4tVVMtdmFyaWFudC1mb29iYXItMWFiYy1hLWFhLWFhYS11LWtuLXRydWUteC1yZXNlcnZlZCJd
JwogKTsKLS8vIFJlcGxhY2VzIG91dGRhdGVkIHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lm
eShJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotLy8gQ2Fu
b25pY2FsaXplcyBwcml2YXRlIHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJbnRsLmdl
dENhbm9uaWNhbExvY2FsZXMoJ1gtc29tZS10aGluZycpKSwgJ1sieC1zb21lLXRoaW5nIl0nKTsK
IC8vIFRocm93cyBvbiBwcm9ibGVtcyB3aXRoIGxlbmd0aCwgZ2V0LCBvciB0b1N0cmluZy4KIHNo
b3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhPYmplY3QuY3JlYXRlKG51
bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSksIEVycm9y
KTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhPYmplY3QuY3Jl
YXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0KCkgeyB0aHJvdyBuZXcg
RXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5v
bmljYWxMb2NhbGVzKFsgeyB0b1N0cmluZygpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSBdKSwg
RXJyb3IpOwogLy8gVGhyb3dzIG9uIGJhZCB0YWdzLgorc2hvdWxkVGhyb3coKCkgPT4gSW50bC5n
ZXRDYW5vbmljYWxMb2NhbGVzKCduby1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygo
KSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ3gtc29tZS10aGluZycpLCBSYW5nZUVycm9y
KTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhbIDUgXSksIFR5
cGVFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJycp
LCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxl
cygnYScpLCBSYW5nZUVycm9yKTsKQEAgLTk1LDYgKzkzLDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRo
cm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCdlbi0qJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5n
ZXRDYW5vbmljYWxMb2NhbGVzKCdlbi0nKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9
PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ2VuLS1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3Vs
ZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygnaS1rbGluZ29uJyksIFJhbmdl
RXJyb3IpOyAvLyBncmFuZGZhdGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1
cmFsbHlWYWxpZExhbmd1YWdlVGFnCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNh
bExvY2FsZXMoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ3gtMTIzNDUtMTIzNDUtZW4tVVMnKSwgUmFuZ2VF
cnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ3gtZW4t
VVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdl
dENhbm9uaWNhbExvY2FsZXMoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJv
dygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFu
Z2VFcnJvcik7CisKIC8vIEFjY2VwdHMgdmFsaWQgdGFncwogdmFyIHZhbGlkTGFuZ3VhZ2VUYWdz
ID0gWwogICAgICdkZScsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtMTA2LDE2ICsxMTEs
MTAgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgJ2Ntbi1o
YW5zLWNuJywgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgICdlcy00MTknLCAvLyAr
IFVOIE0uNDkgcmVnaW9uIGNvZGUKICAgICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2InLCAvLyAr
IFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24nLCAvLyBn
cmFuZGZhdGhlcmVkIHRhZwogICAgICdjbW4taGFucy1jbi10LWNhLXUtY2EteC10LXUnLCAvLyBz
aW5nbGV0b24gc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MK
ICAgICAnZW5vY2hpYW4tZW5vY2hpYW4nLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdz
IG1heSBiZSB0aGUgc2FtZQogICAgICdkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlh
bnQgYW5kIGV4dGVuc2lvbiBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1hLWZvby14
LWEtZm9vLWJhcicsIC8vIHZhcmlhbnQgc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZh
dGUgdXNlIHN1YnRhZ3MKLSAgICAneC1lbi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdvZXMgaW4g
cHJpdmF0ZSB1c2UgdGFncwotICAgICd4LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAneC1lbi1V
Uy0xMjM0NS0xMjM0NScsCi0gICAgJ3gtZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9vLXUtYmFy
JwogXTsKIGZvciAodmFyIHZhbGlkTGFuZ3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAg
ICAgc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKHZhbGlkTGFu
Z3VhZ2VUYWcpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtcGx1cmFscnVsZXMu
anMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLmpzCmluZGV4IDg0ZDY4NjhhNzE2
NmViNGY1NmYxZmY3ZDI2NzE2MjI0YmI2NGQyOTkuLmExMzZkNDZmNDFhZDQyN2U1ZGRiYzFhYWE2
NDRhMTFmNTEyNTQzYmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtcGx1cmFscnVs
ZXMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1wbHVyYWxydWxlcy5qcwpAQCAtODUsMTUg
Kzg1LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgICAg
ICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29iYXItdmFyaWFudC1hLWFhLWFhYS11LWtuLXgtcmVz
ZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1MYXRuLVVTLXZhcmlhbnQtZm9vYmFyLTFhYmMtYS1h
YS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQiXScKICk7Ci0vLyBSZXBsYWNlcyBvdXRkYXRlZCB0
YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRM
b2NhbGVzT2YoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotLy8gRG9lc24ndCB0aHJvdywgYnV0IGln
bm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5QbHVyYWxS
dWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpKSwgJ1tdJyk7CiAvLyBUaHJv
d3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3IgdG9TdHJpbmcuCiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZihPYmplY3QuY3JlYXRl
KG51bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSksIEVy
cm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxl
c09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6IDEgfSwgMDogeyBnZXQo
KSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9
PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZihbIHsgdG9TdHJpbmcoKSB7IHRo
cm93IG5ldyBFcnJvcigpOyB9IH0gXSksIEVycm9yKTsKIC8vIFRocm93cyBvbiBiYWQgdGFncy4K
K3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdu
by1ib2snKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVz
LnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRoaW5nJyksIFJhbmdlRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoWyA1IF0pLCBU
eXBlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRM
b2NhbGVzT2YoJycpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFs
UnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdhJyksIFJhbmdlRXJyb3IpOwpAQCAtMTA2LDYgKzEw
NCwxMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZFRo
cm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0qJyksIFJh
bmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRM
b2NhbGVzT2YoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuUGx1
cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91
bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignaS1rbGlu
Z29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQg
YnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitzaG91bGRUaHJvdygoKSA9PiBJbnRs
LlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NScpLCBSYW5nZUVy
cm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxl
c09mKCd4LTEyMzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUtMTIz
NDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1
cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93
KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLXUtZm9vLXUt
YmFyJyksIFJhbmdlRXJyb3IpOworCiAvLyBBY2NlcHRzIHZhbGlkIHRhZ3MKIHZhciB2YWxpZExh
bmd1YWdlVGFncyA9IFsKICAgICAnZGUnLCAvLyBJU08gNjM5IGxhbmd1YWdlIGNvZGUKQEAgLTEx
NywxNiArMTIyLDEwIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewog
ICAgICdjbW4taGFucy1jbicsIC8vICsgSVNPIDMxNjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMt
NDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBjb2RlCiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3Ut
Ym9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBleHRlbnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGlu
Z29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcKICAgICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgt
dC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVz
ZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVub2NoaWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlh
bnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnkn
LCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24gc3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAn
YWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2YXJpYW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNl
ZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0gICAgJ3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGlu
ZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MKLSAgICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0g
ICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAotICAgICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11
LWZvby11LWJhcicKIF07CiBmb3IgKHZhciB2YWxpZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3Vh
Z2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9y
dGVkTG9jYWxlc09mKHZhbGlkTGFuZ3VhZ2VUYWcpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxh
dGl2ZXRpbWVmb3JtYXQuanMKaW5kZXggM2YzYTg3YTFmMjJjMGJjZDlhNDk1YWI0YWM0MWM4YzUz
MjI4MzIwOC4uZjkxYzFhYmNlMDU1MDZhMDRlZjBmM2RkYjNhNzA4NTFiMjdiYzkzNCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanMKQEAgLTY5LDkgKzY5LDkgQEAg
ZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgICAgID8gJ1siZW4t
TGF0bi1VUy0xYWJjLWZvb2Jhci12YXJpYW50LWEtYWEtYWFhLXUta24teC1yZXNlcnZlZCJdJwog
ICAgICAgICA6ICdbImVuLUxhdG4tVVMtdmFyaWFudC1mb29iYXItMWFiYy1hLWFhLWFhYS11LWtu
LXRydWUteC1yZXNlcnZlZCJdJwogKTsKLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuUmVs
YXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJykpLCAnWyJuYiJdJyk7
Ci1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpKSwgJ1tdJyk7CiAKK3Nob3VsZFRocm93KCgpID0+
IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJyksIFJh
bmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3Vw
cG9ydGVkTG9jYWxlc09mKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0
LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0g
fSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5z
dXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyB2YWx1ZTog
MSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSksIEVycm9yKTsKIHNo
b3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNP
ZihbeyB0b1N0cmluZygpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfV0pLCBFcnJvcik7CkBAIC04
Nyw2ICs4NywxMiBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNo
b3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNP
ZignZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVU
aW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdl
bi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGlt
ZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8g
Z3JhbmRmYXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRM
YW5ndWFnZVRhZworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3Vw
cG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LTEy
MzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5S
ZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1
JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4
LWVuLXUtZm9vLXUtYmFyJyksIFJhbmdlRXJyb3IpOwogCiBjb25zdCB2YWxpZExhbmd1YWdlVGFn
cyA9IFsKICAgICAnZGUnLCAvLyBJU08gNjM5IGxhbmd1YWdlIGNvZGUKQEAgLTk4LDE2ICsxMDQs
MTAgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgJ2Ntbi1o
YW5zLWNuJywgLy8gKyBJU08gMzE2Ni0xIGNvdW50cnkgY29kZQogICAgICdlcy00MTknLCAvLyAr
IFVOIE0uNDkgcmVnaW9uIGNvZGUKICAgICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2InLCAvLyAr
IFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lvbiBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24nLCAvLyBn
cmFuZGZhdGhlcmVkIHRhZwogICAgICdjbW4taGFucy1jbi10LWNhLXUtY2EteC10LXUnLCAvLyBz
aW5nbGV0b24gc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MK
ICAgICAnZW5vY2hpYW4tZW5vY2hpYW4nLCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdz
IG1heSBiZSB0aGUgc2FtZQogICAgICdkZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlh
bnQgYW5kIGV4dGVuc2lvbiBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1hLWZvby14
LWEtZm9vLWJhcicsIC8vIHZhcmlhbnQgc3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZh
dGUgdXNlIHN1YnRhZ3MKLSAgICAneC1lbi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdvZXMgaW4g
cHJpdmF0ZSB1c2UgdGFncwotICAgICd4LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAneC1lbi1V
Uy0xMjM0NS0xMjM0NScsCi0gICAgJ3gtZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9vLXUtYmFy
JwogXTsKIGZvciAobGV0IHZhbGlkTGFuZ3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAg
ICAgc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVk
TG9jYWxlc09mKHZhbGlkTGFuZ3VhZ2VUYWcpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3N0cmluZy10b0xvY2FsZUxvd2VyQ2FzZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3N0cmluZy10b0xv
Y2FsZUxvd2VyQ2FzZS5qcwppbmRleCBjYTc3MDRlMGRhYjczMWY1ZjY3ODAwOGNmMjYyYTljMTA0
MWI1MTM2Li5hY2RmNmNhZDI4MzJiNWIxOWI1Yzg0MzgyYjQ3NjQ5MzAxZTkxZDQ3IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9Mb2NhbGVMb3dlckNhc2UuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvc3RyaW5nLXRvTG9jYWxlTG93ZXJDYXNlLmpzCkBAIC0zMCw4ICszMCw2IEBA
IGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkQmUoJ0EnLnRv
TG9jYWxlTG93ZXJDYXNlKDkpLCAnYScpOwogLy8gSGFuZGxlcyBhcnJheS1saWtlIG9iamVjdHMg
d2l0aCBob2xlcy4KIHNob3VsZEJlKCdcdTAxMzAnLnRvTG9jYWxlTG93ZXJDYXNlKHsgbGVuZ3Ro
OiA0LCAxOiAnYXonLCAzOiAnZW4nIH0pLCAnaScpOwotLy8gRG9lc24ndCB0aHJvdywgYnV0IGln
bm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LXNv
bWUtdGhpbmcnKSwgJ2EnKTsKIC8vIFRocm93cyBvbiBwcm9ibGVtcyB3aXRoIGxlbmd0aCwgZ2V0
LCBvciB0b1N0cmluZy4KIHNob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZShP
YmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCkg
fSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNl
KE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6IDEgfSwgMDogeyBnZXQoKSB7
IHRocm93IG5ldyBFcnJvcigpIH0gfSB9KSksIEVycm9yKTsKQEAgLTQ5LDYgKzQ3LDE0IEBAIGZ1
bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogc2hvdWxkVGhyb3coKCkgPT4g
J0EnLnRvTG9jYWxlTG93ZXJDYXNlKCdlbi0qJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3co
KCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCdlbi0nKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRU
aHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ2VuLS1VUycpLCBSYW5nZUVycm9yKTsK
K3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgnbm8tYm9rJyksIFJhbmdl
RXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LXNvbWUt
dGhpbmcnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dl
ckNhc2UoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3JhbmRmYXRoZXJlZCB0YWcgaXMg
bm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZworc2hvdWxkVGhy
b3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LWVuLVVTLTEyMzQ1JyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LTEyMzQ1LTEy
MzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxl
TG93ZXJDYXNlKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhy
b3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3Ip
Oworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCd4LWVuLXUtZm9vLXUt
YmFyJyksIFJhbmdlRXJyb3IpOwogCiAvLyBDaGVjayBhc2NpaSBhbmQgYWNjZW50cy4KIHNob3Vs
ZEJlKCdBYkNkRWZHaElqS2xNbk9wUVJTdHV2V1h5WjAxMjM0NTY3ODknLnRvTG9jYWxlTG93ZXJD
YXNlKCksICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3N0cmluZy10b0xvY2FsZVVwcGVyQ2FzZS5qcyBiL0pTVGVzdHMv
c3RyZXNzL3N0cmluZy10b0xvY2FsZVVwcGVyQ2FzZS5qcwppbmRleCAwYzg2N2JhOWZjZTJhODRi
ZmY0NzQwZmRlM2E5ZDI2NzI5ZDAxMTc3Li4zZjg2Mjk2ZmMwZTE4NmNkNjQ0MTg2NTk2NjU1ZjRl
ODczNjY4MjQzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9Mb2NhbGVVcHBl
ckNhc2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLXRvTG9jYWxlVXBwZXJDYXNlLmpz
CkBAIC0zMCw4ICszMCw2IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkg
ewogc2hvdWxkQmUoJ2EnLnRvTG9jYWxlVXBwZXJDYXNlKDkpLCAnQScpOwogLy8gSGFuZGxlcyBh
cnJheS1saWtlIG9iamVjdHMgd2l0aCBob2xlcy4KIHNob3VsZEJlKCdpJy50b0xvY2FsZVVwcGVy
Q2FzZSh7IGxlbmd0aDogNCwgMTogJ2F6JywgMzogJ2VuJyB9KSwgJ1x1MDEzMCcpOwotLy8gRG9l
c24ndCB0aHJvdywgYnV0IGlnbm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoJ2EnLnRvTG9j
YWxlVXBwZXJDYXNlKCd4LXNvbWUtdGhpbmcnKSwgJ0EnKTsKIC8vIFRocm93cyBvbiBwcm9ibGVt
cyB3aXRoIGxlbmd0aCwgZ2V0LCBvciB0b1N0cmluZy4KIHNob3VsZFRocm93KCgpID0+ICdhJy50
b0xvY2FsZVVwcGVyQ2FzZShPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IGdldCgpIHsg
dGhyb3cgbmV3IEVycm9yKCkgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gJ2En
LnRvTG9jYWxlVXBwZXJDYXNlKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6
IDEgfSwgMDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpIH0gfSB9KSksIEVycm9yKTsKQEAg
LTQ5LDYgKzQ3LDE0IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewog
c2hvdWxkVGhyb3coKCkgPT4gJ2EnLnRvTG9jYWxlVXBwZXJDYXNlKCdlbi0qJyksIFJhbmdlRXJy
b3IpOwogc2hvdWxkVGhyb3coKCkgPT4gJ2EnLnRvTG9jYWxlVXBwZXJDYXNlKCdlbi0nKSwgUmFu
Z2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiAnYScudG9Mb2NhbGVVcHBlckNhc2UoJ2VuLS1V
UycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2Fz
ZSgnbm8tYm9rJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxl
VXBwZXJDYXNlKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3Jh
bmRmYXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5n
dWFnZVRhZworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBwZXJDYXNlKCd4LWVuLVVT
LTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBw
ZXJDYXNlKCd4LTEyMzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3co
KCkgPT4gJ0EnLnRvTG9jYWxlVXBwZXJDYXNlKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdl
RXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBwZXJDYXNlKCd4LWVuLXUt
Zm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBwZXJD
YXNlKCd4LWVuLXUtZm9vLXUtYmFyJyksIFJhbmdlRXJyb3IpOwogCiAvLyBDaGVjayBhc2NpaSBh
bmQgYWNjZW50cy4KIHNob3VsZEJlKCdBYkNkRWZHaElqS2xNbk9wUVJTdHV2V1h5WjAxMjM0NTY3
ODknLnRvTG9jYWxlVXBwZXJDYXNlKCksICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODknKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBi
L0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA3OWE5M2RkODk0ZDg3N2Nj
ZTdhNzI4MWUxYzUyZDA5NzQwNTk1NmFmLi42NzQ1MTYzZTI1OTY2NTMxMjQ2MmQ0NjRkYmQ5ZDY4
NTc4M2YzMzlhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0xNTg0LDkgKzE1ODQs
NiBAQCB0ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5vbmljYWxMb2NhbGVzL2NvbXBsZXgtcmVnaW9u
LXN1YnRhZy1yZXBsYWNlbWVudC5qczoKIHRlc3QvaW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExv
Y2FsZXMvZ3JhbmRmYXRoZXJlZC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrY21uwrssIMKremjCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2NtbsK7LCDCq3powrspIHRvIGJl
IHRydWUnCi10ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5vbmljYWxMb2NhbGVzL2ludmFsaWQtdGFn
cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogTGFuZ3VhZ2UgdGFnOiBuby1ueW4gRXhw
ZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogTGFuZ3VhZ2UgdGFnOiBu
by1ueW4gRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAyL0ludGwvZ2V0Q2Fub25pY2FsTG9jYWxl
cy9ub24taWFuYS1jYW5vbi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogVGhlIHZhbHVl
IG9mIEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyh0YWcpWzBdIGVxdWFscyB0aGUgdmFsdWUgb2Yg
YGNhbm9uaWNhbGAgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZW4tVVMtdS12YS1wb3NpeMK7LCDCq3Bv
c2l4wrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBUaGUgdmFs
dWUgb2YgSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKHRhZylbMF0gZXF1YWxzIHRoZSB2YWx1ZSBv
ZiBgY2Fub25pY2FsYCBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi1VUy11LXZhLXBvc2l4wrssIMKr
cG9zaXjCuykgdG8gYmUgdHJ1ZScKQEAgLTE1OTksOSArMTU5Niw2IEBAIHRlc3QvaW50bDQwMi9J
bnRsL2dldENhbm9uaWNhbExvY2FsZXMvcHJlZmVycmVkLXZhcmlhbnQuanM6CiB0ZXN0L2ludGw0
MDIvSW50bC9nZXRDYW5vbmljYWxMb2NhbGVzL3RyYW5zZm9ybWVkLWV4dC1jYW5vbmljYWwuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3NsLXQtc2wt
cm96YWotYmlza2UtMTk5NMK7LCDCq3NsLXQtc2wtMTk5NC1iaXNrZS1yb3phasK7KSB0byBiZSB0
cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
c2wtdC1zbC1yb3phai1iaXNrZS0xOTk0wrssIMKrc2wtdC1zbC0xOTk0LWJpc2tlLXJvemFqwrsp
IHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5vbmljYWxMb2NhbGVzL3RyYW5z
Zm9ybWVkLWV4dC1pbnZhbGlkLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBlbi10LXJv
b3QgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogZW4tdC1yb290
IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKIHRlc3QvaW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExvY2FsZXMvdW5p
Y29kZS1leHQtY2Fub25pY2FsaXplLXJlZ2lvbi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdW5kLXUtcmctbm8yM8K7LCDCq3VuZC11LXJnLW5vNTDC
uykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq3VuZC11LXJnLW5vMjPCuywgwqt1bmQtdS1yZy1ubzUwwrspIHRvIGJlIHRydWUn
CkBAIC0xNjEyLDIwICsxNjA2LDE0IEBAIHRlc3QvaW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExv
Y2FsZXMvdW5pY29kZS1leHQtY2Fub25pY2FsaXplLXllcy10by10cnVlLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1bmQtdS1rYi10cnVlwrssIMKr
dW5kLXUta2LCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq3VuZC11LWtiLXRydWXCuywgwqt1bmQtdS1rYsK7KSB0byBiZSB0
cnVlJwogdGVzdC9pbnRsNDAyL0ludGwvZ2V0Q2Fub25pY2FsTG9jYWxlcy91bmljb2RlLWV4dC1r
ZXktd2l0aC1kaWdpdC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBS
YW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJworICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi11LTBjLXllc8K7LCDCq2Vu
LXUtMGPCuykgdG8gYmUgdHJ1ZScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCq2VuLXUtMGMteWVzwrssIMKrZW4tdS0wY8K7KSB0byBiZSB0cnVlJwog
dGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1hcHBseS1vcHRpb25zLWNhbm9uaWNhbGl6
ZXMtdHdpY2UuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq3J1LUFybW4tU1XCuywgwqtydS1Bcm1uLUFNwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtydS1Bcm1uLVNVwrssIMKr
cnUtQXJtbi1BTcK7KSB0byBiZSB0cnVlJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rv
ci1ub24taWFuYS1jYW5vbi5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwu
TG9jYWxlKCJtbyIpLm1heGltaXplKCkudG9TdHJpbmcoKSByZXR1cm5zICJyby1MYXRuLVJPIiBF
eHBlY3RlZCBTYW1lVmFsdWUowqtyb8K7LCDCq3JvLUxhdG4tUk/CuykgdG8gYmUgdHJ1ZScKICAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgibW8iKS5tYXhpbWl6
ZSgpLnRvU3RyaW5nKCkgcmV0dXJucyAicm8tTGF0bi1STyIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
cm/Cuywgwqtyby1MYXRuLVJPwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTG9jYWxlL2Nv
bnN0cnVjdG9yLW9wdGlvbnMtbGFuZ3VhZ2UtdmFsaWQtdW5kZWZpbmVkLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24g
d2FzIHRocm93biBhdCBhbGwnCi10ZXN0L2ludGw0MDIvTG9jYWxlL2NvbnN0cnVjdG9yLW9wdGlv
bnMtbGFuZ3VhZ2UtdmFsaWQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3Qv
aW50bDQwMi9Mb2NhbGUvY29uc3RydWN0b3Itb3B0aW9ucy1udW1lcmljLXVuZGVmaW5lZC5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwuTG9jYWxlKCJlbi11LWtuLXRydWUi
LCB7bnVtZXJpYzogdW5kZWZpbmVkfSkudG9TdHJpbmcoKSByZXR1cm5zICJlbi11LWtuIiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtlbi11LWtuLXRydWXCuywgwqtlbi11LWtuwrspIHRvIGJlIHRydWUn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBuZXcgSW50bC5Mb2NhbGUoImVuLXUta24t
dHJ1ZSIsIHtudW1lcmljOiB1bmRlZmluZWR9KS50b1N0cmluZygpIHJldHVybnMgImVuLXUta24i
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2VuLXUta24tdHJ1ZcK7LCDCq2VuLXUta27CuykgdG8gYmUg
dHJ1ZScKQEAgLTE2MzUsNDIgKzE2MjMsMjEgQEAgdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1
Y3Rvci1vcHRpb25zLW51bWVyaWMtdmFsaWQuanM6CiB0ZXN0L2ludGw0MDIvTG9jYWxlL2NvbnN0
cnVjdG9yLW9wdGlvbnMtcmVnaW9uLXZhbGlkLmpzOgogICBkZWZhdWx0OiAiVGVzdDI2MkVycm9y
OiBuZXcgSW50bC5Mb2NhbGUoJ2VuJywge3JlZ2lvbjogXCI1NTRcIn0pLnRvU3RyaW5nKCkgcmV0
dXJucyBcImVuLU5aXCIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZW4tNTU0wrssIMKrZW4tTlrCuykg
dG8gYmUgdHJ1ZSIKICAgc3RyaWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2Fs
ZSgnZW4nLCB7cmVnaW9uOiBcIjU1NFwifSkudG9TdHJpbmcoKSByZXR1cm5zIFwiZW4tTlpcIiBF
eHBlY3RlZCBTYW1lVmFsdWUowqtlbi01NTTCuywgwqtlbi1OWsK7KSB0byBiZSB0cnVlIgotdGVz
dC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1wYXJzZS10d2ljZS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci10YWcuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgic2wtUk9aQUotQklT
S0UtMTk5NCIpLnRvU3RyaW5nKCkgcmV0dXJucyAic2wtMTk5NC1iaXNrZS1yb3phaiIgRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrc2wtcm96YWotYmlza2UtMTk5NMK7LCDCq3NsLTE5OTQtYmlza2Utcm96
YWrCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRs
LkxvY2FsZSgic2wtUk9aQUotQklTS0UtMTk5NCIpLnRvU3RyaW5nKCkgcmV0dXJucyAic2wtMTk5
NC1iaXNrZS1yb3phaiIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrc2wtcm96YWotYmlza2UtMTk5NMK7
LCDCq3NsLTE5OTQtYmlza2Utcm96YWrCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9Mb2Nh
bGUvZXh0ZW5zaW9ucy1ncmFuZGZhdGhlcmVkLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBh
bGwnCi10ZXN0L2ludGw0MDIvTG9jYWxlL2V4dGVuc2lvbnMtcHJpdmF0ZS5qczoKLSAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9pbnRsNDAyL0xvY2FsZS9nZXR0ZXJzLWdyYW5kZmF0
aGVyZWQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvaW50bDQwMi9Mb2Nh
bGUvZ2V0dGVycy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrZGUtTGF0bi1ERS11LWNhLWdyZWdvcnktY28tcGhvbmViay1oYy1oMjMta2YtdHJ1ZS1r
bi1mYWxzZS1udS1sYXRuwrssIMKrZGUtTGF0bi1ERS11LWNhLWdyZWdvcnktY28tcGhvbmViay1o
Yy1oMjMta2Yta24tZmFsc2UtbnUtbGF0bsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZGUtTGF0bi1ERS11LWNhLWdyZWdv
cnktY28tcGhvbmViay1oYy1oMjMta2YtdHJ1ZS1rbi1mYWxzZS1udS1sYXRuwrssIMKrZGUtTGF0
bi1ERS11LWNhLWdyZWdvcnktY28tcGhvbmViay1oYy1oMjMta2Yta24tZmFsc2UtbnUtbGF0bsK7
KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL0xvY2FsZS9pbnZhbGlkLXRhZy10aHJvd3MuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5vLW55biBpcyBhbiBpbnZhbGlkIHRhZyB2YWx1
ZSBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBuby1ueW4gaXMg
YW4gaW52YWxpZCB0YWcgdmFsdWUgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9s
aWtlbHktc3VidGFncy1ncmFuZGZhdGhlcmVkLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBh
bGwnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2NtbsK7
LCDCq3powrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtjbW7Cuywgwqt6aMK7KSB0byBiZSB0cnVlJwogdGVzdC9pbnRsNDAy
L0xvY2FsZS9saWtlbHktc3VidGFncy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogImVu
LXUtY28iLm1heGltaXplKCkgc2hvdWxkIGJlICJlbi1MYXRuLVVTLXUtY28iIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq2VuLUxhdG4tVVMtdS1jby15ZXPCuywgwqtlbi1MYXRuLVVTLXUtY2/CuykgdG8g
YmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6ICJlbi11LWNvIi5tYXhpbWl6
ZSgpIHNob3VsZCBiZSAiZW4tTGF0bi1VUy11LWNvIiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi1M
YXRuLVVTLXUtY28teWVzwrssIMKrZW4tTGF0bi1VUy11LWNvwrspIHRvIGJlIHRydWUnCiB0ZXN0
L2ludGw0MDIvTG9jYWxlL3Byb3RvdHlwZS9taW5pbWl6ZS9yZW1vdmluZy1saWtlbHktc3VidGFn
cy1maXJzdC1hZGRzLWxpa2VseS1zdWJ0YWdzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiAidW5kIi5taW5pbWl6ZSgpIHNob3VsZCBiZSAiZW4iIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Vu
LXUtdmEtcG9zaXjCuywgwqtlbsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogInVuZCIubWluaW1pemUoKSBzaG91bGQgYmUgImVuIiBFeHBlY3RlZCBTYW1lVmFs
dWUowqtlbi11LXZhLXBvc2l4wrssIMKrZW7CuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9S
ZWxhdGl2ZVRpbWVGb3JtYXQvY29uc3RydWN0b3IvY29uc3RydWN0b3IvbG9jYWxlcy12YWxpZC5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogR3JhbmRmYXRoZXJlZCBFeHBlY3RlZCBhIFJh
bmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBHcmFuZGZhdGhlcmVkIEV4cGVjdGVkIGEg
UmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCcKLXRlc3QvaW50bDQwMi9sYW5ndWFnZS10YWdzLWludmFsaWQuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEludmFsaWQgbGFuZ3VhZ2UgdGFnIG5vLW55biB3YXMgbm90IHJlamVjdGVk
LiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBDb2xsYXRvci4pJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogSW52YWxpZCBsYW5ndWFnZSB0YWcgbm8tbnluIHdhcyBub3QgcmVqZWN0
ZWQuIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIENvbGxhdG9yLiknCiB0ZXN0L2xhbmd1YWdl
L2FyZ3VtZW50cy1vYmplY3QvbWFwcGVkL25vbmNvbmZpZ3VyYWJsZS1ub25lbnVtZXJhYmxlLW5v
bndyaXRhYmxlLWRlc2NyaXB0b3JzLXNldC1ieS1hcmd1bWVudHMuanM6CiAgIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIG9ialswXSB0byBoYXZlIGVudW1lcmFibGU6ZmFsc2UuJwog
dGVzdC9sYW5ndWFnZS9hcmd1bWVudHMtb2JqZWN0L21hcHBlZC9ub25jb25maWd1cmFibGUtbm9u
ZW51bWVyYWJsZS1ub253cml0YWJsZS1kZXNjcmlwdG9ycy1zZXQtYnktcGFyYW0uanM6Cg==
</data>
<flag name="review"
          id="421215"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407058</attachid>
            <date>2020-08-22 15:49:47 -0700</date>
            <delta_ts>2020-08-22 15:49:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215058-20200822154947.patch</filename>
            <type>text/plain</type>
            <size>72748</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ODA1YjY4MWMyOWFmZjcyYTRkZjg2ODk0ZmRjNTllNDJiM2Y0NDYwLi5lZjJkNTk2ODZlNzZlZDhk
ODExODBhOGFlMzQyNGEzNWFmMzM2MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMC0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBJbnRsIExhbmd1YWdlIFRhZyBQYXJzZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTA1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcgYW5kIERhcmluIEFkbGVyLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWRkcyBMYW5ndWFnZVRhZ1BhcnNlciB3aGljaCBwZXJmb3JtcyBpc1N0
cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWdbMV0gdmFsaWRhdGlvbiBwcmVjaXNlbHkuCisgICAg
ICAgIFRoZSBzcGVjIHN0cmljdGx5IGRlZmluZXMgYWNjZXB0YWJsZSBmb3JtYXQgYXMgbGFuZ3Vh
Z2UtdGFnIGFuZCB0aGlzIGlzIG5vdCB0aGUgc2FtZSB0byBJQ1UncyBvbmUgYW5kIHRoaXMKKyAg
ICAgICAgaXMgZXZlbiB0ZXN0ZWQgaW4gdGVzdDI2Mi4gV2Ugc2hvdWxkIGhhdmUgTGFuZ3VhZ2VU
YWdQYXJzZXIgdG8gdmFsaWRhdGUgdGhlIGlucHV0LgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90
YzM5LmVzL2VjbWE0MDIvI3NlYy1pc3N0cnVjdHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKKworICAg
ICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZS5jcHA6CisgICAgICAgIChKU0M6OkxvY2FsZUlEQnVp
bGRlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChKU0M6OkludGxMb2NhbGU6OmluaXRpYWxpemVM
b2NhbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OmNhbm9uaWNhbGl6ZUxvY2FsZUxpc3QpOgorICAgICAgICAoSlNDOjpwYXJzZVZhcmlhbnRDb2Rl
KToKKyAgICAgICAgKEpTQzo6Y29udmVydFRvVW5pY29kZVNpbmdsZXRvbkluZGV4KToKKyAgICAg
ICAgKEpTQzo6aXNVbmljb2RlRXh0ZW5zaW9uQXR0cmlidXRlKToKKyAgICAgICAgKEpTQzo6aXNV
bmljb2RlRXh0ZW5zaW9uS2V5KToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlRXh0ZW5zaW9uVHlw
ZUNvbXBvbmVudCk6CisgICAgICAgIChKU0M6OmlzVW5pY29kZVBVRXh0ZW5zaW9uVmFsdWUpOgor
ICAgICAgICAoSlNDOjppc1VuaWNvZGVPdGhlckV4dGVuc2lvblZhbHVlKToKKyAgICAgICAgKEpT
Qzo6aXNVbmljb2RlVEtleSk6CisgICAgICAgIChKU0M6OmlzVW5pY29kZVRWYWx1ZUNvbXBvbmVu
dCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpMYW5ndWFnZVRhZ1BhcnNlcik6
CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjppc0VPUyk6CisgICAgICAgIChKU0M6
Okxhbmd1YWdlVGFnUGFyc2VyOjpuZXh0KToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJz
ZXI6OnBhcnNlVW5pY29kZUxvY2FsZUlkKToKKyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJz
ZXI6OnBhcnNlVW5pY29kZUxhbmd1YWdlSWQpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1Bh
cnNlcjo6cGFyc2VVbmljb2RlRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgpOgorICAgICAgICAoSlNDOjpM
YW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VUcmFuc2Zvcm1lZEV4dGVuc2lvbkFmdGVyUHJlZml4KToK
KyAgICAgICAgKEpTQzo6TGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlT3RoZXJFeHRlbnNpb25BZnRl
clByZWZpeCk6CisgICAgICAgIChKU0M6Okxhbmd1YWdlVGFnUGFyc2VyOjpwYXJzZVBVRXh0ZW5z
aW9uQWZ0ZXJQcmVmaXgpOgorICAgICAgICAoSlNDOjpMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VF
eHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKToKKyAgICAgICAgKEpTQzo6aXNTdHJ1Y3R1cmFsbHlW
YWxpZExhbmd1YWdlVGFnKToKKyAgICAgICAgKEpTQzo6aXNVbmljb2RlTGFuZ3VhZ2VJZCk6Cisg
ICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisKIDIwMjAtMDgtMjIgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB3b3JrYXJvdW5k
IGZvciBvbGQgSUNVIGhlYWRlcnMgaW4gbWFjT1MgQ2F0YWxpbmEgYm90cwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlLmNwcAppbmRleCA0ZWFjMjAxODRhNzBiNzky
NzNmMTc3MmYwOTc3ZGU4ZThhZTRjYTdjLi40YWEyYTUwYmFmNjVmYTg5MTg5YTcwMDkzMzQ0MmQ3
NzNjODY3MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TG9jYWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxl
LmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEludGxMb2NhbGU6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogY2xhc3MgTG9jYWxlSURCdWlsZGVy
IGZpbmFsIHsKIHB1YmxpYzoKLSAgICBib29sIGluaXRpYWxpemUoY29uc3QgQ1N0cmluZyYpOwor
ICAgIGJvb2wgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmKTsKICAgICBDU3RyaW5nIHRvQ2Fub25p
Y2FsKCk7CiAKICAgICB2b2lkIG92ZXJyaWRlTGFuZ3VhZ2VTY3JpcHRSZWdpb24oU3RyaW5nVmll
dyBsYW5ndWFnZSwgU3RyaW5nVmlldyBzY3JpcHQsIFN0cmluZ1ZpZXcgcmVnaW9uKTsKQEAgLTc4
LDkgKzc4LDEyIEBAIGNsYXNzIExvY2FsZUlEQnVpbGRlciBmaW5hbCB7CiAgICAgVmVjdG9yPGNo
YXIsIDMyPiBtX2J1ZmZlcjsKIH07CiAKLWJvb2wgTG9jYWxlSURCdWlsZGVyOjppbml0aWFsaXpl
KGNvbnN0IENTdHJpbmcmIHRhZykKK2Jvb2wgTG9jYWxlSURCdWlsZGVyOjppbml0aWFsaXplKGNv
bnN0IFN0cmluZyYgdGFnKQogewotICAgIG1fYnVmZmVyID0gbG9jYWxlSURCdWZmZXJGb3JMYW5n
dWFnZVRhZyh0YWcpOworICAgIGlmICghaXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKHRh
ZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlQodGFnLmlzQWxsQVNDSUkoKSk7
CisgICAgbV9idWZmZXIgPSBsb2NhbGVJREJ1ZmZlckZvckxhbmd1YWdlVGFnKHRhZy5hc2NpaSgp
KTsKICAgICByZXR1cm4gbV9idWZmZXIuc2l6ZSgpOwogfQogCkBAIC0yMTYsNyArMjE5LDcgQEAg
dm9pZCBJbnRsTG9jYWxlOjppbml0aWFsaXplTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFN0cmluZyYgdGEKICAgICB9CiAKICAgICBMb2NhbGVJREJ1aWxkZXIgbG9j
YWxlSUQ7Ci0gICAgaWYgKCFsb2NhbGVJRC5pbml0aWFsaXplKHRhZy51dGY4KCkpKSB7CisgICAg
aWYgKCFsb2NhbGVJRC5pbml0aWFsaXplKHRhZykpIHsKICAgICAgICAgdGhyb3dSYW5nZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJpbnZhbGlkIGxhbmd1YWdlIHRhZyJfcyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmpl
Y3QuY3BwCmluZGV4IDgzNmJmMjBiOTJjYmJjMmRhYzcxNjNkNjBhNTU5M2Q5YjZhZTY2NGMuLjJm
MDI3MGQ1YTE2Yjc4NjBmY2U2YmM0NmZlNjRlMGVkOGNmNzJiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC00MjYsNyArNDI2LDYgQEAgYm9v
bCBpc1VuaWNvZGVMb2NhbGVJZGVudGlmaWVyVHlwZShTdHJpbmdWaWV3IHN0cmluZykKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1pc3N0cnVj
dHVyYWxseXZhbGlkbGFuZ3VhZ2V0YWcKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
Y2Fub25pY2FsaXpldW5pY29kZWxvY2FsZWlkCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZUxh
bmd1YWdlVGFnKGNvbnN0IENTdHJpbmcmIHRhZykKIHsKQEAgLTQ4NywzNyArNDg2LDM0IEBAIFZl
Y3RvcjxTdHJpbmc+IGNhbm9uaWNhbGl6ZUxvY2FsZUxpc3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25F
cnJvcj4gcmF3VGFnOworICAgICAgICAgICAgU3RyaW5nIHRhZzsKICAgICAgICAgICAgIGlmIChr
VmFsdWUuaW5oZXJpdHM8SW50bExvY2FsZT4odm0pKQotICAgICAgICAgICAgICAgIHJhd1RhZyA9
IGpzQ2FzdDxJbnRsTG9jYWxlKj4oa1ZhbHVlKS0+dG9TdHJpbmcoKS50cnlHZXRVdGY4KCk7Cisg
ICAgICAgICAgICAgICAgdGFnID0ganNDYXN0PEludGxMb2NhbGUqPihrVmFsdWUpLT50b1N0cmlu
ZygpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgSlNTdHJpbmcqIHRhZyA9
IGtWYWx1ZS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgIEpTU3RyaW5n
KiBzdHJpbmcgPSBrVmFsdWUudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBWZWN0b3I8U3RyaW5nPigpKTsKIAotICAgICAg
ICAgICAgICAgIGF1dG8gdGFnVmFsdWUgPSB0YWctPnZhbHVlKGdsb2JhbE9iamVjdCk7CisgICAg
ICAgICAgICAgICAgdGFnID0gc3RyaW5nLT52YWx1ZShnbG9iYWxPYmplY3QpOwogICAgICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFZlY3RvcjxTdHJpbmc+KCkpOwotCi0g
ICAgICAgICAgICAgICAgcmF3VGFnID0gdGFnVmFsdWUudHJ5R2V0VXRmOCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKCFyYXdUYWcpIHsKLSAgICAgICAgICAgICAgICBpZiAocmF3
VGFnLmVycm9yKCkgPT0gVVRGOENvbnZlcnNpb25FcnJvcjo6T3V0T2ZNZW1vcnkpCi0gICAgICAg
ICAgICAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBTdHJpbmcgY2Fub25pY2FsaXplZFRhZyA9IGNhbm9uaWNhbGl6ZUxhbmd1YWdlVGFnKHJhd1Rh
Zy52YWx1ZSgpKTsKLSAgICAgICAgICAgIGlmIChjYW5vbmljYWxpemVkVGFnLmlzTnVsbCgpKSB7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IHRyeU1ha2VTdHJpbmcoImlu
dmFsaWQgbGFuZ3VhZ2UgdGFnOiAiLCByYXdUYWctPmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAg
aWYgKFVOTElLRUxZKCFlcnJvck1lc3NhZ2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU91dE9mTWVtb3J5RXJyb3IoZ2xv
YmFsT2JqZWN0KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgICAg
ICBpZiAoaXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnKHRhZykpIHsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQodGFnLmlzQWxsQVNDSUkoKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNh
bm9uaWNhbGl6ZWRUYWcgPSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyh0YWcuYXNjaWkoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKCFjYW5vbmljYWxpemVkVGFnLmlzTnVsbCgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChzZWVuU2V0LmFkZChjYW5vbmljYWxpemVkVGFnKS5pc05ld0VudHJ5
KQorICAgICAgICAgICAgICAgICAgICAgICAgc2Vlbi5hcHBlbmQoY2Fub25pY2FsaXplZFRhZyk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5n
ZUVycm9yKGdsb2JhbE9iamVjdCwgZXJyb3JNZXNzYWdlKSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHNlZW5TZXQuYWRkKGNh
bm9uaWNhbGl6ZWRUYWcpLmlzTmV3RW50cnkpCi0gICAgICAgICAgICAgICAgc2Vlbi5hcHBlbmQo
Y2Fub25pY2FsaXplZFRhZyk7CisgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gdHJ5
TWFrZVN0cmluZygiaW52YWxpZCBsYW5ndWFnZSB0YWc6ICIsIHRhZyk7CisgICAgICAgICAgICBp
ZiAoVU5MSUtFTFkoIWVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCkpOworICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVy
cm9yKGdsb2JhbE9iamVjdCwgZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICB9CiAgICAgfQogCkBAIC04NzUsNDEgKzg3MSw0MDAgQEAgYm9vbCBpc1VuaWNv
ZGVWYXJpYW50U3VidGFnKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJldHVybiBsZW5ndGggPT0g
NCAmJiBpc0FTQ0lJRGlnaXQoc3RyaW5nWzBdKSAmJiBzdHJpbmcuc3Vic3RyaW5nKDEpLmlzQWxs
U3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJSUFscGhhbnVtZXJpYz4oKTsKIH0KIAotLy8gdW5pY29k
ZV9sYW5ndWFnZV9pZCwgYnV0IGludGVyc2VjdGlvbiBvZiBCQ1A0NyBhbmQgVVRTMzUuCi0vLyB1
bmljb2RlX2xhbmd1YWdlX2lkID0KLS8vICAgICB8IHVuaWNvZGVfbGFuZ3VhZ2Vfc3VidGFnIChz
ZXAgdW5pY29kZV9zY3JpcHRfc3VidGFnKT8gKHNlcCB1bmljb2RlX3JlZ2lvbl9zdWJ0YWcpPyAo
c2VwIHVuaWNvZGVfdmFyaWFudF9zdWJ0YWcpKiA7Ci0vLyBodHRwczovL2dpdGh1Yi5jb20vdGMz
OS9wcm9wb3NhbC1pbnRsLWRpc3BsYXluYW1lcy9pc3N1ZXMvNzkKLWJvb2wgaXNVbmljb2RlTGFu
Z3VhZ2VJZChTdHJpbmdWaWV3IHN0cmluZykKK3VzaW5nIFZhcmlhbnRDb2RlID0gdWludDY0X3Q7
CitzdGF0aWMgVmFyaWFudENvZGUgcGFyc2VWYXJpYW50Q29kZShTdHJpbmdWaWV3IHN0cmluZykK
IHsKLSAgICBWZWN0b3I8U3RyaW5nVmlldywgND4gc3VidGFnczsKLSAgICBmb3IgKGF1dG8gc3Vi
dGFnIDogc3RyaW5nLnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJy0nKSkKLSAgICAgICAgc3Vi
dGFncy5hcHBlbmQoc3VidGFnKTsKKyAgICBBU1NFUlQoaXNVbmljb2RlVmFyaWFudFN1YnRhZyhz
dHJpbmcpKTsKKyAgICBBU1NFUlQoc3RyaW5nLmlzQWxsQVNDSUkoKSk7CisgICAgQVNTRVJUKHN0
cmluZy5sZW5ndGgoKSA8PSA4KTsKKyAgICBBU1NFUlQoc3RyaW5nLmxlbmd0aCgpID49IDEpOwor
ICAgIHN0cnVjdCBDb2RlIHsKKyAgICAgICAgTENoYXIgY2hhcmFjdGVyc1s4XSB7IH07CisgICAg
fTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdW5zaWduZWRfdjxMQ2hhcj4pOworICAgIHN0
YXRpY19hc3NlcnQoc2l6ZW9mKFZhcmlhbnRDb2RlKSA9PSBzaXplb2YoQ29kZSkpOworICAgIENv
ZGUgY29kZSB7IH07CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgc3RyaW5n
Lmxlbmd0aCgpOyArK2luZGV4KQorICAgICAgICBjb2RlLmNoYXJhY3RlcnNbaW5kZXhdID0gc3Ry
aW5nW2luZGV4XTsKKyAgICBWYXJpYW50Q29kZSByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8VmFyaWFu
dENvZGU+KGNvZGUpOworICAgIEFTU0VSVCghcmVzdWx0KTsgLy8gTm90IHBvc3NpYmxlIHNpbmNl
IHNvbWUgY2hhcmFjdGVycyBleGlzdC4KKyAgICBBU1NFUlQocmVzdWx0ICE9IHN0YXRpY19jYXN0
PFZhcmlhbnRDb2RlPigtMSkpOyAvLyBOb3QgcG9zc2libGUgc2luY2UgYWxsIGNoYXJhY3RlcnMg
YXJlIEFTQ0lJIChub3QgTGF0aW4tMSkuCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGlj
IHVuc2lnbmVkIGNvbnZlcnRUb1VuaWNvZGVTaW5nbGV0b25JbmRleChVQ2hhciBzaW5nbGV0b24p
Cit7CisgICAgQVNTRVJUKGlzQVNDSUlBbHBoYW51bWVyaWMoc2luZ2xldG9uKSk7CisgICAgc2lu
Z2xldG9uID0gdG9BU0NJSUxvd2VyKHNpbmdsZXRvbik7CisgICAgLy8gMCAtIDkgPT4gbnVtZXJp
YworICAgIC8vIDEwIC0gMzUgPT4gYWxwaGEKKyAgICBpZiAoaXNBU0NJSURpZ2l0KHNpbmdsZXRv
bikpCisgICAgICAgIHJldHVybiBzaW5nbGV0b24gLSAnMCc7CisgICAgcmV0dXJuIChzaW5nbGV0
b24gLSAnYScpICsgMTA7Cit9CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mVW5p
Y29kZVNpbmdsZXRvbnMgPSAxMCArIDI2OyAvLyBEaWdpdHMgKyBBbHBoYWJldHMuCisKK3N0YXRp
YyBib29sIGlzVW5pY29kZUV4dGVuc2lvbkF0dHJpYnV0ZShTdHJpbmdWaWV3IHN0cmluZykKK3sK
KyAgICBhdXRvIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICByZXR1cm4gbGVuZ3RoID49
IDMgJiYgbGVuZ3RoIDw9IDggJiYgc3RyaW5nLmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJ
SUFscGhhbnVtZXJpYz4oKTsKK30KKworc3RhdGljIGJvb2wgaXNVbmljb2RlRXh0ZW5zaW9uS2V5
KFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIHJldHVybiBzdHJpbmcubGVuZ3RoKCkgPT0gMiAm
JiBpc0FTQ0lJQWxwaGFudW1lcmljKHN0cmluZ1swXSkgJiYgaXNBU0NJSUFscGhhKHN0cmluZ1sx
XSk7Cit9CisKK3N0YXRpYyBib29sIGlzVW5pY29kZUV4dGVuc2lvblR5cGVDb21wb25lbnQoU3Ry
aW5nVmlldyBzdHJpbmcpCit7CisgICAgYXV0byBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Cisg
ICAgcmV0dXJuIGxlbmd0aCA+PSAzICYmIGxlbmd0aCA8PSA4ICYmIHN0cmluZy5pc0FsbFNwZWNp
YWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7Cit9CisKK3N0YXRpYyBib29sIGlz
VW5pY29kZVBVRXh0ZW5zaW9uVmFsdWUoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgYXV0byBs
ZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgcmV0dXJuIGxlbmd0aCA+PSAxICYmIGxlbmd0
aCA8PSA4ICYmIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVy
aWM+KCk7Cit9CisKK3N0YXRpYyBib29sIGlzVW5pY29kZU90aGVyRXh0ZW5zaW9uVmFsdWUoU3Ry
aW5nVmlldyBzdHJpbmcpCit7CisgICAgYXV0byBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Cisg
ICAgcmV0dXJuIGxlbmd0aCA+PSAyICYmIGxlbmd0aCA8PSA4ICYmIHN0cmluZy5pc0FsbFNwZWNp
YWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYW51bWVyaWM+KCk7Cit9CisKK3N0YXRpYyBib29sIGlz
VW5pY29kZVRLZXkoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAgcmV0dXJuIHN0cmluZy5sZW5n
dGgoKSA9PSAyICYmIGlzQVNDSUlBbHBoYShzdHJpbmdbMF0pICYmIGlzQVNDSUlEaWdpdChzdHJp
bmdbMV0pOworfQogCi0gICAgQVNTRVJUKHN1YnRhZ3Muc2l6ZSgpID49IDEpOwotICAgIHVuc2ln
bmVkIGN1cnNvciA9IDA7Ci0gICAgaWYgKCFpc1VuaWNvZGVMYW5ndWFnZVN1YnRhZyhzdWJ0YWdz
W2N1cnNvcl0pKQorc3RhdGljIGJvb2wgaXNVbmljb2RlVFZhbHVlQ29tcG9uZW50KFN0cmluZ1Zp
ZXcgc3RyaW5nKQoreworICAgIGF1dG8gbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworICAgIHJl
dHVybiBsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0gOCAmJiBzdHJpbmcuaXNBbGxTcGVjaWFsQ2hh
cmFjdGVyczxpc0FTQ0lJQWxwaGFudW1lcmljPigpOworfQorCisvLyBUaGUgSXNTdHJ1Y3R1cmFs
bHlWYWxpZExhbmd1YWdlVGFnIGFic3RyYWN0IG9wZXJhdGlvbiB2ZXJpZmllcyB0aGF0IHRoZSBs
b2NhbGUgYXJndW1lbnQgKHdoaWNoIG11c3QgYmUgYSBTdHJpbmcgdmFsdWUpCisvLworLy8gICAg
IHJlcHJlc2VudHMgYSB3ZWxsLWZvcm1lZCAiVW5pY29kZSBCQ1AgNDcgbG9jYWxlIGlkZW50aWZp
ZXIiIGFzIHNwZWNpZmllZCBpbiBVbmljb2RlIFRlY2huaWNhbCBTdGFuZGFyZCAzNSBzZWN0aW9u
IDMuMiwKKy8vICAgICBkb2VzIG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50IHN1YnRhZ3Ms
IGFuZAorLy8gICAgIGRvZXMgbm90IGluY2x1ZGUgZHVwbGljYXRlIHNpbmdsZXRvbiBzdWJ0YWdz
LgorLy8KKy8vICBUaGUgYWJzdHJhY3Qgb3BlcmF0aW9uIHJldHVybnMgdHJ1ZSBpZiBsb2NhbGUg
Y2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBFQk5GIGdyYW1tYXIgaW4gc2VjdGlvbiAzLjIgb2Yg
dGhlIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkIDM1LAorLy8gIHN0YXJ0aW5nIHdpdGggdW5p
Y29kZV9sb2NhbGVfaWQsIGFuZCBkb2VzIG5vdCBjb250YWluIGR1cGxpY2F0ZSB2YXJpYW50IG9y
IHNpbmdsZXRvbiBzdWJ0YWdzIChvdGhlciB0aGFuIGFzIGEgcHJpdmF0ZSB1c2Ugc3VidGFnKS4K
Ky8vICBJdCByZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4gVGVybWluYWwgdmFsdWUgY2hhcmFjdGVy
cyBpbiB0aGUgZ3JhbW1hciBhcmUgaW50ZXJwcmV0ZWQgYXMgdGhlIFVuaWNvZGUgZXF1aXZhbGVu
dHMgb2YgdGhlIEFTQ0lJIG9jdGV0IHZhbHVlcyBnaXZlbi4KKy8vCisvLyBodHRwczovL3VuaWNv
ZGUub3JnL3JlcG9ydHMvdHIzNS8jVW5pY29kZV9sb2NhbGVfaWRlbnRpZmllcgorY2xhc3MgTGFu
Z3VhZ2VUYWdQYXJzZXIgeworcHVibGljOgorICAgIExhbmd1YWdlVGFnUGFyc2VyKFN0cmluZ1Zp
ZXcgdGFnKQorICAgICAgICA6IG1fcmFuZ2UodGFnLnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMo
Jy0nKSkKKyAgICAgICAgLCBtX2N1cnNvcihtX3JhbmdlLmJlZ2luKCkpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jdXJzb3IgIT0gbV9yYW5nZS5lbmQoKSk7CisgICAgICAgIG1fY3VycmVudCA9
ICptX2N1cnNvcjsKKyAgICB9CisKKyAgICBib29sIHBhcnNlVW5pY29kZUxvY2FsZUlkKCk7Cisg
ICAgYm9vbCBwYXJzZVVuaWNvZGVMYW5ndWFnZUlkKCk7CisKKyAgICBib29sIGlzRU9TKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2N1cnNvciA9PSBtX3JhbmdlLmVuZCgpOworICAgIH0KKwor
ICAgIGJvb2wgbmV4dCgpCisgICAgeworICAgICAgICBpZiAoaXNFT1MoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICArK21fY3Vyc29yOworICAgICAgICBpZiAoaXNFT1Mo
KSkgeworICAgICAgICAgICAgbV9jdXJyZW50ID0gU3RyaW5nVmlldygpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1fY3VycmVudCA9ICptX2N1cnNvcjsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wgcGFyc2VF
eHRlbnNpb25zQW5kUFVFeHRlbnNpb25zKCk7CisKKyAgICBib29sIHBhcnNlVW5pY29kZUV4dGVu
c2lvbkFmdGVyUHJlZml4KCk7CisgICAgYm9vbCBwYXJzZVRyYW5zZm9ybWVkRXh0ZW5zaW9uQWZ0
ZXJQcmVmaXgoKTsKKyAgICBib29sIHBhcnNlT3RoZXJFeHRlbnNpb25BZnRlclByZWZpeCgpOwor
ICAgIGJvb2wgcGFyc2VQVUV4dGVuc2lvbkFmdGVyUHJlZml4KCk7CisKKyAgICBTdHJpbmdWaWV3
OjpTcGxpdFJlc3VsdCBtX3JhbmdlOworICAgIFN0cmluZ1ZpZXc6OlNwbGl0UmVzdWx0OjpJdGVy
YXRvciBtX2N1cnNvcjsKKyAgICBTdHJpbmdWaWV3IG1fY3VycmVudDsKK307CisKK2Jvb2wgTGFu
Z3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5pY29kZUxvY2FsZUlkKCkKK3sKKyAgICAvLyB1bmljb2Rl
X2xvY2FsZV9pZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2VfaWQKKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgIGV4dGVuc2lvbnMqCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICBwdV9l
eHRlbnNpb25zPyA7CisgICAgQVNTRVJUKCFpc0VPUygpKTsKKyAgICBpZiAoIXBhcnNlVW5pY29k
ZUxhbmd1YWdlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpc0VPUygpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoIXBhcnNlRXh0ZW5zaW9uc0FuZFBVRXh0ZW5z
aW9ucygpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgKytjdXJzb3I7CisgICAgcmV0dXJu
IHRydWU7Cit9CiAKLSAgICBpZiAoY3Vyc29yID09IHN1YnRhZ3Muc2l6ZSgpKQorYm9vbCBMYW5n
dWFnZVRhZ1BhcnNlcjo6cGFyc2VVbmljb2RlTGFuZ3VhZ2VJZCgpCit7CisgICAgLy8gdW5pY29k
ZV9sYW5ndWFnZV9pZCAgPSB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2Ny
aXB0X3N1YnRhZyk/IChzZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3Zh
cmlhbnRfc3VidGFnKSogOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgaWYgKCFpc1VuaWNv
ZGVMYW5ndWFnZVN1YnRhZyhtX2N1cnJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFuZXh0KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChpc1VuaWNvZGVTY3Jp
cHRTdWJ0YWcoc3VidGFnc1tjdXJzb3JdKSkKLSAgICAgICAgKytjdXJzb3I7CiAKLSAgICBpZiAo
Y3Vyc29yID09IHN1YnRhZ3Muc2l6ZSgpKQorICAgIGlmIChpc1VuaWNvZGVTY3JpcHRTdWJ0YWco
bV9jdXJyZW50KSkgeworICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGlmIChpc1VuaWNvZGVSZWdpb25TdWJ0YWcobV9jdXJyZW50KSkg
eworICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIEhhc2hTZXQ8VmFyaWFudENvZGU+IHZhcmlhbnRDb2RlczsKKyAgICB3aGlsZSAodHJ1
ZSkgeworICAgICAgICBpZiAoIWlzVW5pY29kZVZhcmlhbnRTdWJ0YWcobV9jdXJyZW50KSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQw
Mi8jc2VjLWlzc3RydWN0dXJhbGx5dmFsaWRsYW5ndWFnZXRhZworICAgICAgICAvLyBkb2VzIG5v
dCBpbmNsdWRlIGR1cGxpY2F0ZSB2YXJpYW50IHN1YnRhZ3MKKyAgICAgICAgaWYgKCF2YXJpYW50
Q29kZXMuYWRkKHBhcnNlVmFyaWFudENvZGUobV9jdXJyZW50KSkuaXNOZXdFbnRyeSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wgTGFuZ3VhZ2VUYWdQYXJzZXI6OnBhcnNlVW5p
Y29kZUV4dGVuc2lvbkFmdGVyUHJlZml4KCkKK3sKKyAgICAvLyAoKHNlcCBrZXl3b3JkKSsgfCAo
c2VwIGF0dHJpYnV0ZSkrIChzZXAga2V5d29yZCkqKSA7CisgICAgLy8KKyAgICAvLyBrZXl3b3Jk
ID0ga2V5IChzZXAgdHlwZSk/IDsKKyAgICAvLyBrZXkgPSBhbHBoYW51bSBhbHBoYSA7CisgICAg
Ly8gdHlwZSA9IGFscGhhbnVtezMsOH0gKHNlcCBhbHBoYW51bXszLDh9KSogOworICAgIC8vIGF0
dHJpYnV0ZSA9IGFscGhhbnVtezMsOH0gOworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgYm9v
bCBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9IGZhbHNlOworICAgIGlmIChpc1VuaWNvZGVFeHRlbnNp
b25BdHRyaWJ1dGUobV9jdXJyZW50KSkgeworICAgICAgICBpc0F0dHJpYnV0ZU9yS2V5d29yZCA9
IHRydWU7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoIWlzVW5pY29k
ZUV4dGVuc2lvbkF0dHJpYnV0ZShtX2N1cnJlbnQpKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXNVbmljb2RlRXh0ZW5zaW9uS2V5KG1fY3VycmVu
dCkpIHsKKyAgICAgICAgaXNBdHRyaWJ1dGVPcktleXdvcmQgPSB0cnVlOworICAgICAgICB3aGls
ZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKCFpc1VuaWNvZGVFeHRlbnNpb25LZXkobV9jdXJy
ZW50KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWlzVW5pY29kZUV4dGVuc2lvblR5cGVDb21wb25lbnQobV9j
dXJyZW50KSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYg
KCFuZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFpc0F0dHJpYnV0ZU9yS2V5d29yZCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIExhbmd1YWdl
VGFnUGFyc2VyOjpwYXJzZVRyYW5zZm9ybWVkRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKQoreworICAg
IC8vICgoc2VwIHRsYW5nIChzZXAgdGZpZWxkKSopIHwgKHNlcCB0ZmllbGQpKykgOworICAgIC8v
CisgICAgLy8gdGxhbmcgPSB1bmljb2RlX2xhbmd1YWdlX3N1YnRhZyAoc2VwIHVuaWNvZGVfc2Ny
aXB0X3N1YnRhZyk/IChzZXAgdW5pY29kZV9yZWdpb25fc3VidGFnKT8gKHNlcCB1bmljb2RlX3Zh
cmlhbnRfc3VidGFnKSogOworICAgIC8vIHRmaWVsZCA9IHRrZXkgdHZhbHVlOworICAgIC8vIHRr
ZXkgPSBhbHBoYSBkaWdpdCA7CisgICAgLy8gdHZhbHVlID0gKHNlcCBhbHBoYW51bXszLDh9KSsg
OworICAgIEFTU0VSVCghaXNFT1MoKSk7CisgICAgYm9vbCBmb3VuZCA9IGZhbHNlOworICAgIGlm
IChpc1VuaWNvZGVMYW5ndWFnZVN1YnRhZyhtX2N1cnJlbnQpKSB7CisgICAgICAgIGZvdW5kID0g
dHJ1ZTsKKyAgICAgICAgaWYgKCFwYXJzZVVuaWNvZGVMYW5ndWFnZUlkKCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChpc0VPUygpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKGlzVW5pY29kZVRLZXkobV9jdXJyZW50KSkgeworICAg
ICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBp
ZiAoIWlzVW5pY29kZVRLZXkobV9jdXJyZW50KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGlmICghaXNVbmljb2RlVFZhbHVlQ29tcG9uZW50KG1fY3VycmVudCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAg
ICAgICAgICAgICAgIGlmICghaXNVbmljb2RlVFZhbHVlQ29tcG9uZW50KG1fY3VycmVudCkpCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghbmV4dCgpKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiBmb3VuZDsKK30KKworYm9vbCBMYW5ndWFnZVRhZ1BhcnNl
cjo6cGFyc2VPdGhlckV4dGVuc2lvbkFmdGVyUHJlZml4KCkKK3sKKyAgICAvLyAoc2VwIGFscGhh
bnVtezIsOH0pKyA7CisgICAgQVNTRVJUKCFpc0VPUygpKTsKKyAgICBpZiAoIWlzVW5pY29kZU90
aGVyRXh0ZW5zaW9uVmFsdWUobV9jdXJyZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghbmV4dCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgIGlmICghaXNVbmljb2RlT3RoZXJFeHRlbnNpb25WYWx1ZShtX2N1cnJlbnQpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitib29sIExhbmd1YWdlVGFnUGFyc2VyOjpwYXJz
ZVBVRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKQoreworICAgIC8vIChzZXAgYWxwaGFudW17MSw4fSkr
IDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOworICAgIGlmICghaXNVbmljb2RlUFVFeHRlbnNpb25W
YWx1ZShtX2N1cnJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFuZXh0KCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChpc1VuaWNvZGVSZWdpb25TdWJ0YWcoc3Vi
dGFnc1tjdXJzb3JdKSkKLSAgICAgICAgKytjdXJzb3I7CiAKICAgICB3aGlsZSAodHJ1ZSkgewot
ICAgICAgICBpZiAoY3Vyc29yID09IHN1YnRhZ3Muc2l6ZSgpKQorICAgICAgICBpZiAoIWlzVW5p
Y29kZVBVRXh0ZW5zaW9uVmFsdWUobV9jdXJyZW50KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBpZiAoIW5leHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
K30KKworYm9vbCBMYW5ndWFnZVRhZ1BhcnNlcjo6cGFyc2VFeHRlbnNpb25zQW5kUFVFeHRlbnNp
b25zKCkKK3sKKyAgICAvLyB1bmljb2RlX2xvY2FsZV9pZCAgICA9IHVuaWNvZGVfbGFuZ3VhZ2Vf
aWQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMqCisgICAgLy8gICAg
ICAgICAgICAgICAgICAgICAgICBwdV9leHRlbnNpb25zPyA7CisgICAgLy8KKyAgICAvLyBleHRl
bnNpb25zID0gdW5pY29kZV9sb2NhbGVfZXh0ZW5zaW9ucworICAgIC8vICAgICAgICAgICAgfCB0
cmFuc2Zvcm1lZF9leHRlbnNpb25zCisgICAgLy8gICAgICAgICAgICB8IG90aGVyX2V4dGVuc2lv
bnMgOworICAgIC8vCisgICAgLy8gcHVfZXh0ZW5zaW9ucyA9IHNlcCBbeFhdIChzZXAgYWxwaGFu
dW17MSw4fSkrIDsKKyAgICBBU1NFUlQoIWlzRU9TKCkpOworICAgIEJpdG1hcDxudW1iZXJPZlVu
aWNvZGVTaW5nbGV0b25zPiBzaW5nbGV0b25zU2V0IHsgfTsKKyAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICBpZiAobV9jdXJyZW50Lmxlbmd0aCgpICE9IDEpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgVUNoYXIgcHJlZml4Q29kZSA9IG1fY3VycmVudFswXTsKKyAgICAgICAg
aWYgKCFpc0FTQ0lJQWxwaGFudW1lcmljKHByZWZpeENvZGUpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIGlmICghaXNVbmljb2RlVmFyaWFudFN1YnRhZyhzdWJ0YWdzW2N1cnNv
cl0pKQorCisgICAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaXNzdHJ1Y3R1
cmFsbHl2YWxpZGxhbmd1YWdldGFnCisgICAgICAgIC8vIGRvZXMgbm90IGluY2x1ZGUgZHVwbGlj
YXRlIHNpbmdsZXRvbiBzdWJ0YWdzLgorICAgICAgICAvLworICAgICAgICAvLyBodHRwczovL3Vu
aWNvZGUub3JnL3JlcG9ydHMvdHIzNS8jVW5pY29kZV9sb2NhbGVfaWRlbnRpZmllcgorICAgICAg
ICAvLyBBcyBpcyBvZnRlbiB0aGUgY2FzZSwgdGhlIGNvbXBsZXRlIHN5bnRhY3RpYyBjb25zdHJh
aW50cyBhcmUgbm90IGVhc2lseSBjYXB0dXJlZCBieSBBQk5GLAorICAgICAgICAvLyBzbyB0aGVy
ZSBpcyBhIGZ1cnRoZXIgY29uZGl0aW9uOiBUaGVyZSBjYW5ub3QgYmUgbW9yZSB0aGFuIG9uZSBl
eHRlbnNpb24gd2l0aCB0aGUgc2FtZSBzaW5nbGV0b24gKC1hLSwg4oCmLCAtdC0sIC11LSwg4oCm
KS4KKyAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSBwcml2YXRlIHVzZSBleHRlbnNpb24gKC14LSkg
bXVzdCBjb21lIGFmdGVyIGFsbCBvdGhlciBleHRlbnNpb25zLgorICAgICAgICBpZiAoc2luZ2xl
dG9uc1NldC5nZXQoY29udmVydFRvVW5pY29kZVNpbmdsZXRvbkluZGV4KHByZWZpeENvZGUpKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgKytjdXJzb3I7CisgICAgICAgIHNp
bmdsZXRvbnNTZXQuc2V0KGNvbnZlcnRUb1VuaWNvZGVTaW5nbGV0b25JbmRleChwcmVmaXhDb2Rl
KSwgdHJ1ZSk7CisKKyAgICAgICAgc3dpdGNoIChwcmVmaXhDb2RlKSB7CisgICAgICAgIGNhc2Ug
J3UnOgorICAgICAgICBjYXNlICdVJzogeworICAgICAgICAgICAgLy8gdW5pY29kZV9sb2NhbGVf
ZXh0ZW5zaW9ucyA9IHNlcCBbdVVdICgoc2VwIGtleXdvcmQpKyB8IChzZXAgYXR0cmlidXRlKSsg
KHNlcCBrZXl3b3JkKSopIDsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghcGFyc2VVbmljb2RlRXh0ZW5zaW9u
QWZ0ZXJQcmVmaXgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpZiAoaXNFT1MoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IGJyZWFrOyAvLyBOZXh0IGV4dGVuc2lvbi4KKyAgICAgICAgfQorICAgICAgICBjYXNlICd0JzoK
KyAgICAgICAgY2FzZSAnVCc6IHsKKyAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVkX2V4dGVuc2lv
bnMgPSBzZXAgW3RUXSAoKHNlcCB0bGFuZyAoc2VwIHRmaWVsZCkqKSB8IChzZXAgdGZpZWxkKSsp
IDsKKyAgICAgICAgICAgIGlmICghbmV4dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIGlmICghcGFyc2VUcmFuc2Zvcm1lZEV4dGVuc2lvbkFmdGVyUHJlZml4
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGlzRU9T
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBicmVhazsgLy8g
TmV4dCBleHRlbnNpb24uCisgICAgICAgIH0KKyAgICAgICAgY2FzZSAneCc6CisgICAgICAgIGNh
c2UgJ1gnOiB7CisgICAgICAgICAgICAvLyBwdV9leHRlbnNpb25zID0gc2VwIFt4WF0gKHNlcCBh
bHBoYW51bXsxLDh9KSsgOworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFwYXJzZVBVRXh0ZW5zaW9uQWZ0ZXJQ
cmVmaXgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsgLy8gSWYgcHVfZXh0ZW5zaW9ucyBhcHBlYXIsIG5vIGV4dGVuc2lvbnMgY2FuIGZv
bGxvdyBhZnRlciB0aGF0LiBUaGlzIG11c3QgYmUgdGhlIGVuZCBvZiB1bmljb2RlX2xvY2FsZV9p
ZC4KKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAvLyBvdGhlcl9l
eHRlbnNpb25zID0gc2VwIFthbHBoYW51bS1bdFR1VXhYXV0gKHNlcCBhbHBoYW51bXsyLDh9KSsg
OworICAgICAgICAgICAgaWYgKCFuZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgaWYgKCFwYXJzZU90aGVyRXh0ZW5zaW9uQWZ0ZXJQcmVmaXgoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoaXNFT1MoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOyAvLyBOZXh0IGV4
dGVuc2lvbi4KKyAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogfQogCisvLyBodHRwczovL3Rj
MzkuZXMvZWNtYTQwMi8jc2VjLWlzc3RydWN0dXJhbGx5dmFsaWRsYW5ndWFnZXRhZworYm9vbCBp
c1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcoU3RyaW5nVmlldyBzdHJpbmcpCit7CisgICAg
TGFuZ3VhZ2VUYWdQYXJzZXIgcGFyc2VyKHN0cmluZyk7CisgICAgaWYgKCFwYXJzZXIucGFyc2VV
bmljb2RlTG9jYWxlSWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghcGFyc2Vy
LmlzRU9TKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ly8gdW5pY29kZV9sYW5ndWFnZV9pZCwgYnV0IGludGVyc2VjdGlvbiBvZiBCQ1A0NyBhbmQgVVRT
MzUuCisvLyB1bmljb2RlX2xhbmd1YWdlX2lkID0KKy8vICAgICB8IHVuaWNvZGVfbGFuZ3VhZ2Vf
c3VidGFnIChzZXAgdW5pY29kZV9zY3JpcHRfc3VidGFnKT8gKHNlcCB1bmljb2RlX3JlZ2lvbl9z
dWJ0YWcpPyAoc2VwIHVuaWNvZGVfdmFyaWFudF9zdWJ0YWcpKiA7CisvLyBodHRwczovL2dpdGh1
Yi5jb20vdGMzOS9wcm9wb3NhbC1pbnRsLWRpc3BsYXluYW1lcy9pc3N1ZXMvNzkKK2Jvb2wgaXNV
bmljb2RlTGFuZ3VhZ2VJZChTdHJpbmdWaWV3IHN0cmluZykKK3sKKyAgICBMYW5ndWFnZVRhZ1Bh
cnNlciBwYXJzZXIoc3RyaW5nKTsKKyAgICBpZiAoIXBhcnNlci5wYXJzZVVuaWNvZGVMYW5ndWFn
ZUlkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXBhcnNlci5pc0VPUygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgaXNXZWxs
Rm9ybWVkQ3VycmVuY3lDb2RlKFN0cmluZ1ZpZXcgY3VycmVuY3kpCiB7CiAgICAgcmV0dXJuIGN1
cnJlbmN5Lmxlbmd0aCgpID09IDMgJiYgY3VycmVuY3kuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxp
c0FTQ0lJQWxwaGE+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmgKaW5kZXggNWVkNGQxNWU2MDQ2ZjAxY2ViMmI1NzI5YWJmMDJmODYwNTFlNzFmMS4uZGFhMmUy
YTdlMDY2ZmU4YjliYWZjYTdlYmMxYzljYmI3OGQxOGVkOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApAQCAtMTE4LDYgKzExOCw3IEBAIGJvb2wgaXNVbmlj
b2RlU2NyaXB0U3VidGFnKFN0cmluZ1ZpZXcpOwogYm9vbCBpc1VuaWNvZGVSZWdpb25TdWJ0YWco
U3RyaW5nVmlldyk7CiBib29sIGlzVW5pY29kZVZhcmlhbnRTdWJ0YWcoU3RyaW5nVmlldyk7CiBi
b29sIGlzVW5pY29kZUxhbmd1YWdlSWQoU3RyaW5nVmlldyk7Citib29sIGlzU3RydWN0dXJhbGx5
VmFsaWRMYW5ndWFnZVRhZyhTdHJpbmdWaWV3KTsKIAogYm9vbCBpc1dlbGxGb3JtZWRDdXJyZW5j
eUNvZGUoU3RyaW5nVmlldyk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODZkNDMyNmEyYzk3YWE1YjUxZjU5ODA1MWQwZTc0NjNlYzU3
YTQxZi4uMDI2NGVlZmMzYmNkZGQ1ZjI4MDBmNTNlYWEwMGFmZWQ4ZWJhOTA3YSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NCBAQAorMjAyMC0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIEltcGxlbWVudCBJbnRsIExhbmd1YWdlIFRhZyBQYXJzZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTA1OAorCisgICAgICAg
IFJldmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcgYW5kIERhcmluIEFkbGVyLgorCisgICAgICAgICog
c3RyZXNzL2ludGwtY29sbGF0b3IuanM6CisgICAgICAgICogc3RyZXNzL2ludGwtZGF0ZXRpbWVm
b3JtYXQuanM6CisgICAgICAgICogc3RyZXNzL2ludGwtbGFuZ3VhZ2UtdGFnLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKHNob3VsZE5vdFRocm93KToKKyAgICAg
ICAgKiBzdHJlc3MvaW50bC1sb2NhbGUuanM6CisgICAgICAgICogc3RyZXNzL2ludGwtbnVtYmVy
Zm9ybWF0LmpzOgorICAgICAgICAqIHN0cmVzcy9pbnRsLW9iamVjdC5qczoKKyAgICAgICAgKiBz
dHJlc3MvaW50bC1wbHVyYWxydWxlcy5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50bC1yZWxhdGl2
ZXRpbWVmb3JtYXQuanM6CisgICAgICAgICogc3RyZXNzL3N0cmluZy10b0xvY2FsZUxvd2VyQ2Fz
ZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc3RyaW5nLXRvTG9jYWxlVXBwZXJDYXNlLmpzOgorICAg
ICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjAtMDgtMjIgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB3b3JrYXJv
dW5kIGZvciBvbGQgSUNVIGhlYWRlcnMgaW4gbWFjT1MgQ2F0YWxpbmEgYm90cwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1jb2xsYXRvci5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwt
Y29sbGF0b3IuanMKaW5kZXggOTk5MGRiZDYwZDQ2MzFmMmIzMzI0OGFiMDA1MmM5MzNjYjIyOTkx
YS4uYTJlNDA1MDE0ZjU1NTUwMjg1NmUyMWQwZmJkNTBjNGFmOTZhYzA0OCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1jb2xsYXRvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRs
LWNvbGxhdG9yLmpzCkBAIC0xOTQsMTUgKzE5NCwxMyBAQCBmdW5jdGlvbiB0ZXN0Q29sbGF0b3Io
Y29sbGF0b3IsIHBvc3NpYmxlT3B0aW9uRGlmZmVyZW5jZXMpIHsKICAgICAgICAgPyAnWyJlbi1M
YXRuLVVTLTFhYmMtZm9vYmFyLXZhcmlhbnQtYS1hYS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAg
ICAgICAgIDogJ1siZW4tTGF0bi1VUy12YXJpYW50LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24t
dHJ1ZS14LXJlc2VydmVkIl0nCiApOwotLy8gUmVwbGFjZXMgb3V0ZGF0ZWQgdGFncy4KLXNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCduby1i
b2snKSksICdbIm5iIl0nKTsKLS8vIERvZXNuJ3QgdGhyb3csIGJ1dCBpZ25vcmVzIHByaXZhdGUg
dGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9j
YWxlc09mKCd4LXNvbWUtdGhpbmcnKSksICdbXScpOwogLy8gVGhyb3dzIG9uIHByb2JsZW1zIHdp
dGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xs
YXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyBn
ZXQoKSB7IHRocm93IEVycm9yKCkgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4g
SW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxl
bmd0aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgRXJyb3IoKSB9IH0gfSkpLCBF
cnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNP
ZihbIHsgdG9TdHJpbmcoKSB7IHRocm93IEVycm9yKCkgfSB9IF0pLCBFcnJvcik7CiAvLyBUaHJv
d3Mgb24gYmFkIHRhZ3MuCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRl
ZExvY2FsZXNPZignbm8tYm9rJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpLCBSYW5nZUVycm9y
KTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKFsg
NSBdKSwgVHlwZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9y
dGVkTG9jYWxlc09mKCcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNv
bGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZignYScpLCBSYW5nZUVycm9yKTsKQEAgLTIxNSw2ICsy
MTMsMTMgQEAgZnVuY3Rpb24gdGVzdENvbGxhdG9yKGNvbGxhdG9yLCBwb3NzaWJsZU9wdGlvbkRp
ZmZlcmVuY2VzKSB7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExv
Y2FsZXNPZignZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuQ29s
bGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0nKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZignZW4tLVVTJyksIFJhbmdl
RXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3JhbmRmYXRoZXJlZCB0YWcgaXMgbm90
IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFnZVRhZworc2hvdWxkVGhyb3co
KCkgPT4gSW50bC5Db2xsYXRvci5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUnKSwg
UmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExv
Y2FsZXNPZigneC0xMjM0NS0xMjM0NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93
KCgpID0+IEludGwuQ29sbGF0b3Iuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1LTEy
MzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5Db2xsYXRvci5zdXBw
b3J0ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygo
KSA9PiBJbnRsLkNvbGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvby11LWJhcicp
LCBSYW5nZUVycm9yKTsKKwogLy8gQWNjZXB0cyB2YWxpZCB0YWdzCiB2YXIgdmFsaWRMYW5ndWFn
ZVRhZ3MgPSBbCiAgICAgJ2RlJywgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBAIC0yMjYsMTYg
KzIzMSwxMCBAQCBmdW5jdGlvbiB0ZXN0Q29sbGF0b3IoY29sbGF0b3IsIHBvc3NpYmxlT3B0aW9u
RGlmZmVyZW5jZXMpIHsKICAgICAnY21uLWhhbnMtY24nLCAvLyArIElTTyAzMTY2LTEgY291bnRy
eSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40OSByZWdpb24gY29kZQogICAgICdlcy00
MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29kZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVl
bmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0aGVyZWQgdGFnCiAgICAgJ2Ntbi1oYW5z
LWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRvbiBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVz
ZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdlbm9jaGlhbi1lbm9jaGlhbicsIC8vIGxh
bmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2RlLWdyZWdv
cnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQgZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJl
IHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28tYmFyJywgLy8gdmFyaWFudCBzdWJ0YWdz
IGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwotICAgICd4LWVuLVVTLTEy
MzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRlIHVzZSB0YWdzCi0gICAgJ3gtMTIzNDUt
MTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1LTEyMzQ1JywKLSAgICAneC1lbi11LWZv
bycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwogZm9yICh2YXIgdmFsaWRMYW5ndWFnZVRh
ZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLkNv
bGxhdG9yLnN1cHBvcnRlZExvY2FsZXNPZih2YWxpZExhbmd1YWdlVGFnKSk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
aW50bC1kYXRldGltZWZvcm1hdC5qcwppbmRleCBmN2M1YTA3MDA2NjQzNjI1OWQ2YTA2NGJkZDk3
ODJlODcxMzM2YTZhLi42ZmJmMDNlZDg5Y2I5OGVlNGU0YjY3ODc5MDdlOThjOWJmZmFmOThiIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0LmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQuanMKQEAgLTg2LDE1ICs4NiwxMyBAQCBm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAgICAgPyAnWyJlbi1M
YXRuLVVTLTFhYmMtZm9vYmFyLXZhcmlhbnQtYS1hYS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAg
ICAgICAgIDogJ1siZW4tTGF0bi1VUy12YXJpYW50LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24t
dHJ1ZS14LXJlc2VydmVkIl0nCiApOwotLy8gUmVwbGFjZXMgb3V0ZGF0ZWQgdGFncy4KLXNob3Vs
ZEJlKEpTT04uc3RyaW5naWZ5KEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09m
KCduby1ib2snKSksICdbIm5iIl0nKTsKLS8vIERvZXNuJ3QgdGhyb3csIGJ1dCBpZ25vcmVzIHBy
aXZhdGUgdGFncy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuRGF0ZVRpbWVGb3JtYXQu
c3VwcG9ydGVkTG9jYWxlc09mKCd4LXNvbWUtdGhpbmcnKSksICdbXScpOwogLy8gVGhyb3dzIG9u
IHByb2JsZW1zIHdpdGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShu
dWxsLCB7IGxlbmd0aDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJv
cik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZihPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0
KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkg
PT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoWyB7IHRvU3RyaW5nKCkg
eyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IF0pLCBFcnJvcik7CiAvLyBUaHJvd3Mgb24gYmFkIHRh
Z3MuCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZignbm8tYm9rJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRl
VGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtc29tZS10aGluZycpLCBSYW5nZUVycm9y
KTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxl
c09mKFsgNSBdKSwgVHlwZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVG
b3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygo
KSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignYScpLCBSYW5nZUVy
cm9yKTsKQEAgLTEwNyw2ICsxMDUsMTMgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRl
ZExvY2FsZXNPZignZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwu
RGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0nKSwgUmFuZ2VFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZign
ZW4tLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3Jh
bmRmYXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5n
dWFnZVRhZworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRM
b2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC0xMjM0NS0xMjM0NS1l
bi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuRGF0ZVRpbWVGb3Jt
YXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdlRXJyb3Ip
Oworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLkRh
dGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvby11LWJhcicpLCBSYW5n
ZUVycm9yKTsKKwogLy8gQWNjZXB0cyB2YWxpZCB0YWdzCiB2YXIgdmFsaWRMYW5ndWFnZVRhZ3Mg
PSBbCiAgICAgJ2RlJywgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBAIC0xMTgsMTYgKzEyMywx
MCBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAnY21uLWhh
bnMtY24nLCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsg
VU4gTS40OSByZWdpb24gY29kZQogICAgICdlcy00MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsg
VW5pY29kZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdy
YW5kZmF0aGVyZWQgdGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNp
bmdsZXRvbiBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwog
ICAgICdlbm9jaGlhbi1lbm9jaGlhbicsIC8vIGxhbmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3Mg
bWF5IGJlIHRoZSBzYW1lCiAgICAgJ2RlLWdyZWdvcnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFu
dCBhbmQgZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgt
YS1mb28tYmFyJywgLy8gdmFyaWFudCBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0
ZSB1c2Ugc3VidGFncwotICAgICd4LWVuLVVTLTEyMzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBw
cml2YXRlIHVzZSB0YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVT
LTEyMzQ1LTEyMzQ1JywKLSAgICAneC1lbi11LWZvbycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXIn
CiBdOwogZm9yICh2YXIgdmFsaWRMYW5ndWFnZVRhZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAg
ICBzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLkRhdGVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZih2YWxpZExhbmd1YWdlVGFnKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRs
LWxhbmd1YWdlLXRhZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbGFuZ3VhZ2UtdGFnLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAxMjcwZTk0ZWZlZWRmNDJhOGU1ZDE3MzM4MWE2M2I2YWE4Nzk2YTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxhbmd1YWdlLXRhZy5qcwpAQCAtMCww
ICsxLDU4IEBACitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBs
ZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2Yg
ZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlw
ZS5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coZnVuYykgeworICAgIGZ1
bmMoKTsKK30KKworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJl
bi1VUy11LWNhLXUtbnUiKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdl
dENhbm9uaWNhbExvY2FsZXMoImVuLVVTLWEtb2sxLWEtb2syIiksIFJhbmdlRXJyb3IpOworc2hv
dWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJlbi1VUy1hLW9rMSIp
KTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZGUiKSk7
CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImZyIikpOwor
c2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJqYSIpKTsKK3No
b3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiaS1lbm9jaGlhbiIpLCBS
YW5nZUVycm9yKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxl
cygiemgtSGFudCIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9j
YWxlcygiemgtSGFucyIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2Fs
TG9jYWxlcygic3ItQ3lybCIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25p
Y2FsTG9jYWxlcygic3ItTGF0biIpKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25p
Y2FsTG9jYWxlcygiemgtY21uLUhhbnMtQ04iKSwgUmFuZ2VFcnJvcik7CitzaG91bGROb3RUaHJv
dygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImNtbi1IYW5zLUNOIikpOworc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJ6aC15dWUtSEsiKSwgUmFuZ2VF
cnJvcik7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoInl1
ZS1ISyIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygi
emgtSGFucy1DTiIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9j
YWxlcygic3ItTGF0bi1SUyIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25p
Y2FsTG9jYWxlcygic2wtcm96YWoiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENh
bm9uaWNhbExvY2FsZXMoInNsLXJvemFqLWJpc2tlIikpOworc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJzbC1yb3phai1iaXNrZS1iaXNrZSIpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygic2wtbmVk
aXMiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImRl
LUNILTE5MDEiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2Fs
ZXMoInNsLUlULW5lZGlzIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCJoeS1MYXRuLUlULWFyZXZlbGEiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJ
bnRsLmdldENhbm9uaWNhbExvY2FsZXMoImRlLURFIikpOworc2hvdWxkTm90VGhyb3coKCkgPT4g
SW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJlbi1VUyIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+
IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZXMtNDE5IikpOworc2hvdWxkTm90VGhyb3coKCkg
PT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJkZS1DSC14LXBob25lYmsiKSk7CitzaG91bGRO
b3RUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoImF6LUFyYWIteC1BWkUtZGVy
YmVuZCIpKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygieC13
aGF0ZXZlciIpLCBSYW5nZUVycm9yKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fu
b25pY2FsTG9jYWxlcygicWFhLVFhYWEtUU0teC1zb3V0aGVybiIpKTsKK3Nob3VsZE5vdFRocm93
KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZGUtUWFhYSIpKTsKK3Nob3VsZE5vdFRo
cm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygic3ItTGF0bi1RTSIpKTsKK3Nob3Vs
ZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygic3ItUWFhYS1SUyIpKTsK
K3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygiZW4tVVMtdS1p
c2xhbWNhbCIpKTsKK3Nob3VsZE5vdFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxl
cygiemgtQ04tYS1teWV4dC14LXByaXZhdGUiKSk7CitzaG91bGROb3RUaHJvdygoKSA9PiBJbnRs
LmdldENhbm9uaWNhbExvY2FsZXMoImVuLWEtbXlleHQtYi1hbm90aGVyIikpOworc2hvdWxkTm90
VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJlbi1VUy11LW51LWZ1bGx3aWRl
IikpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCJkZS00MTkt
REUiKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExv
Y2FsZXMoImEtREUiKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENh
bm9uaWNhbExvY2FsZXMoImFyLWEtYWFhLWItYmJiLWEtY2NjIiksIFJhbmdlRXJyb3IpOworc2hv
dWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCIiKSwgUmFuZ2VFcnJvcik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtbG9jYWxlLmpzCmluZGV4IGY0ODc0MWYzOWEzOGY3YmQ2MDA2NDVjN2Y4NGU2YjM3
ODhiZGZjNWUuLjA0ZTUyNTk3OWZkYzBjNDg0NGQxMzMwYmU2ZDU0ZDNkMzVjMGM1MWQgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2ludGwtbG9jYWxlLmpzCkBAIC00NSw2ICs0NSwxMiBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhm
dW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZFRocm93KCgpID0+IG5ldyBJbnRsLkxvY2FsZSh7fSks
IFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gbmV3IEludGwuTG9jYWxlKHsgdG9TdHJp
bmcoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0pLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9
PiBuZXcgSW50bC5Mb2NhbGUoW10pLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IG5l
dyBJbnRsLkxvY2FsZSgnaS1rbGluZ29uJyksIFJhbmdlRXJyb3IpOyAvLyBncmFuZGZhdGhlcmVk
IHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1cmFsbHlWYWxpZExhbmd1YWdlVGFnCitz
aG91bGRUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VF
cnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUoJ3gtMTIzNDUtMTIzNDUt
ZW4tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUo
J3gtZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBu
ZXcgSW50bC5Mb2NhbGUoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygo
KSA9PiBuZXcgSW50bC5Mb2NhbGUoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VFcnJvcik7CiBz
aG91bGROb3RUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUoeyB0b1N0cmluZygpIHsgcmV0dXJu
ICdlbic7IH0gfSkpOwogCiBzaG91bGRUaHJvdygoKSA9PiBuZXcgSW50bC5Mb2NhbGUoJ2VuJywg
bnVsbCksIFR5cGVFcnJvcik7CkBAIC03MiwxNiArNzgsMTAgQEAgZnVuY3Rpb24gc2hvdWxkVGhy
b3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgJ2Ntbi1oYW5zLWNuJywgLy8gKyBJU08gMzE2Ni0x
IGNvdW50cnkgY29kZQogICAgICdlcy00MTknLCAvLyArIFVOIE0uNDkgcmVnaW9uIGNvZGUKICAg
ICAnZXMtNDE5LXUtbnUtbGF0bi1jdS1ib2InLCAvLyArIFVuaWNvZGUgbG9jYWxlIGV4dGVuc2lv
biBzZXF1ZW5jZQotICAgICdpLWtsaW5nb24nLCAvLyBncmFuZGZhdGhlcmVkIHRhZwogICAgICdj
bW4taGFucy1jbi10LWNhLXUtY2EteC10LXUnLCAvLyBzaW5nbGV0b24gc3VidGFncyBjYW4gYWxz
byBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKICAgICAnZW5vY2hpYW4tZW5vY2hpYW4n
LCAvLyBsYW5ndWFnZSBhbmQgdmFyaWFudCBzdWJ0YWdzIG1heSBiZSB0aGUgc2FtZQogICAgICdk
ZS1ncmVnb3J5LXUtY2EtZ3JlZ29yeScsIC8vIHZhcmlhbnQgYW5kIGV4dGVuc2lvbiBzdWJ0YWdz
IG1heSBiZSB0aGUgc2FtZQogICAgICdhYS1hLWZvby14LWEtZm9vLWJhcicsIC8vIHZhcmlhbnQg
c3VidGFncyBjYW4gYWxzbyBiZSB1c2VkIGFzIHByaXZhdGUgdXNlIHN1YnRhZ3MKLSAgICAneC1l
bi1VUy0xMjM0NScsIC8vIGFueXRoaW5nIGdvZXMgaW4gcHJpdmF0ZSB1c2UgdGFncwotICAgICd4
LTEyMzQ1LTEyMzQ1LWVuLVVTJywKLSAgICAneC1lbi1VUy0xMjM0NS0xMjM0NScsCi0gICAgJ3gt
ZW4tdS1mb28nLAotICAgICd4LWVuLXUtZm9vLXUtYmFyJwogXTsKIGZvciAobGV0IHZhbGlkTGFu
Z3VhZ2VUYWcgb2YgdmFsaWRMYW5ndWFnZVRhZ3MpCiAgICAgc2hvdWxkTm90VGhyb3coKCkgPT4g
bmV3IEludGwuTG9jYWxlKHZhbGlkTGFuZ3VhZ2VUYWcpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2ludGwtbnVtYmVyZm9ybWF0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1udW1iZXJm
b3JtYXQuanMKaW5kZXggZWY3NGE1OWRiY2ExZmEyNTBlY2M3YTUzNTEzZWFkOWI2ZDQwMDI1Zi4u
ODRmOWRkZjhiZTM3ZDc0MzY1YTU2YzMyNTJlMTc4YWQzM2U1NjI1YSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1udW1iZXJmb3JtYXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50
bC1udW1iZXJmb3JtYXQuanMKQEAgLTEsNSArMSwzIEBACi0vL0AgcnVuQmlnSW50RW5hYmxlZAot
CiBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtleHBlY3Rl
ZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKQEAgLTIyOSwxNSArMjI3LDEzIEBAIGZ1bmN0aW9uIHRl
c3ROdW1iZXJGb3JtYXQobnVtYmVyRm9ybWF0LCBwb3NzaWJsZURpZmZlcmVuY2VzKSB7CiAgICAg
ICAgID8gJ1siZW4tTGF0bi1VUy0xYWJjLWZvb2Jhci12YXJpYW50LWEtYWEtYWFhLXUta24teC1y
ZXNlcnZlZCJdJwogICAgICAgICA6ICdbImVuLUxhdG4tVVMtdmFyaWFudC1mb29iYXItMWFiYy1h
LWFhLWFhYS11LWtuLXRydWUteC1yZXNlcnZlZCJdJwogKTsKLS8vIFJlcGxhY2VzIG91dGRhdGVk
IHRhZ3MuCi1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotLy8gRG9lc24ndCB0aHJvdywgYnV0
IGlnbm9yZXMgcHJpdmF0ZSB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5OdW1i
ZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LXNvbWUtdGhpbmcnKSksICdbXScpOwogLy8g
VGhyb3dzIG9uIHByb2JsZW1zIHdpdGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKE9iamVjdC5j
cmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0p
KSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVk
TG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6IDEgfSwgMDog
eyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoWyB7IHRvU3RyaW5n
KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IF0pLCBFcnJvcik7CiAvLyBUaHJvd3Mgb24gYmFk
IHRhZ3MuCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2Nh
bGVzT2YoJ25vLWJvaycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuTnVt
YmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1zb21lLXRoaW5nJyksIFJhbmdlRXJyb3Ip
Owogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09m
KFsgNSBdKSwgVHlwZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuTnVtYmVyRm9ybWF0
LnN1cHBvcnRlZExvY2FsZXNPZignJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4g
SW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdhJyksIFJhbmdlRXJyb3IpOwpA
QCAtMjUwLDYgKzI0NiwxMyBAQCBmdW5jdGlvbiB0ZXN0TnVtYmVyRm9ybWF0KG51bWJlckZvcm1h
dCwgcG9zc2libGVEaWZmZXJlbmNlcykgewogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5OdW1iZXJG
b3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0qJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5OdW1iZXJGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0nKSwgUmFu
Z2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRM
b2NhbGVzT2YoJ2VuLS1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwu
TnVtYmVyRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignaS1rbGluZ29uJyksIFJhbmdlRXJyb3Ip
OyAvLyBncmFuZGZhdGhlcmVkIHRhZyBpcyBub3QgYWNjZXB0ZWQgYnkgSXNTdHJ1Y3R1cmFsbHlW
YWxpZExhbmd1YWdlVGFnCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBw
b3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJv
dygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtMTIzNDUtMTIz
NDUtZW4tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUtMTIzNDUnKSwgUmFuZ2VFcnJv
cik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLk51
bWJlckZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ3gtZW4tdS1mb28tdS1iYXInKSwgUmFuZ2VF
cnJvcik7CisKIC8vIEFjY2VwdHMgdmFsaWQgdGFncwogdmFyIHZhbGlkTGFuZ3VhZ2VUYWdzID0g
WwogICAgICdkZScsIC8vIElTTyA2MzkgbGFuZ3VhZ2UgY29kZQpAQCAtMjYxLDE2ICsyNjQsMTAg
QEAgZnVuY3Rpb24gdGVzdE51bWJlckZvcm1hdChudW1iZXJGb3JtYXQsIHBvc3NpYmxlRGlmZmVy
ZW5jZXMpIHsKICAgICAnY21uLWhhbnMtY24nLCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2Rl
CiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40OSByZWdpb24gY29kZQogICAgICdlcy00MTktdS1u
dS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29kZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0g
ICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0aGVyZWQgdGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQt
Y2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRvbiBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMg
cHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdlbm9jaGlhbi1lbm9jaGlhbicsIC8vIGxhbmd1YWdl
IGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2RlLWdyZWdvcnktdS1j
YS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQgZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBz
YW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28tYmFyJywgLy8gdmFyaWFudCBzdWJ0YWdzIGNhbiBh
bHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwotICAgICd4LWVuLVVTLTEyMzQ1Jywg
Ly8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRlIHVzZSB0YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUt
ZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1LTEyMzQ1JywKLSAgICAneC1lbi11LWZvbycsCi0g
ICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwogZm9yICh2YXIgdmFsaWRMYW5ndWFnZVRhZyBvZiB2
YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91bGROb3RUaHJvdygoKSA9PiBJbnRsLk51bWJlckZv
cm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YodmFsaWRMYW5ndWFnZVRhZykpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1vYmplY3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW9iamVj
dC5qcwppbmRleCBlZmEyOTkxZGM0OTI2OWJkMDg1M2UwMWNhNzk3N2ZjZjc1M2E5YTJkLi40MGNm
ZjY2MTJkMTRiYmE1OGVlMWE5YWE3OWUwOGVlZWZlYmFkZTBkIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLW9iamVjdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW9iamVjdC5q
cwpAQCAtNzQsMTUgKzc0LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlw
ZSkgewogICAgICAgICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29iYXItdmFyaWFudC1hLWFhLWFh
YS11LWtuLXgtcmVzZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1MYXRuLVVTLXZhcmlhbnQtZm9v
YmFyLTFhYmMtYS1hYS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQiXScKICk7Ci0vLyBSZXBsYWNl
cyBvdXRkYXRlZCB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCduby1ib2snKSksICdbIm5iIl0nKTsKLS8vIENhbm9uaWNhbGl6ZXMgcHJpdmF0
ZSB0YWdzLgotc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnkoSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KCdYLXNvbWUtdGhpbmcnKSksICdbIngtc29tZS10aGluZyJdJyk7CiAvLyBUaHJvd3Mgb24gcHJv
YmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3IgdG9TdHJpbmcuCiBzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLmdldENhbm9uaWNhbExvY2FsZXMoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyBn
ZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygo
KSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0
aDogeyB2YWx1ZTogMSB9LCAwOiB7IGdldCgpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0gfSB9KSks
IEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhbIHsg
dG9TdHJpbmcoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gXSksIEVycm9yKTsKIC8vIFRocm93
cyBvbiBiYWQgdGFncy4KK3Nob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxl
cygnbm8tYm9rJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5v
bmljYWxMb2NhbGVzKCd4LXNvbWUtdGhpbmcnKSwgUmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygo
KSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoWyA1IF0pLCBUeXBlRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCcnKSwgUmFuZ2VFcnJvcik7CiBz
aG91bGRUaHJvdygoKSA9PiBJbnRsLmdldENhbm9uaWNhbExvY2FsZXMoJ2EnKSwgUmFuZ2VFcnJv
cik7CkBAIC05NSw2ICs5MywxMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5
cGUpIHsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcygnZW4tKicp
LCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxl
cygnZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRs
LmdldENhbm9uaWNhbExvY2FsZXMoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9yKTsgLy8gZ3JhbmRm
YXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5VmFsaWRMYW5ndWFn
ZVRhZworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCd4LWVuLVVT
LTEyMzQ1JyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmlj
YWxMb2NhbGVzKCd4LTEyMzQ1LTEyMzQ1LWVuLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhy
b3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1Jyks
IFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KCd4LWVuLXUtZm9vJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5nZXRD
YW5vbmljYWxMb2NhbGVzKCd4LWVuLXUtZm9vLXUtYmFyJyksIFJhbmdlRXJyb3IpOworCiAvLyBB
Y2NlcHRzIHZhbGlkIHRhZ3MKIHZhciB2YWxpZExhbmd1YWdlVGFncyA9IFsKICAgICAnZGUnLCAv
LyBJU08gNjM5IGxhbmd1YWdlIGNvZGUKQEAgLTEwNiwxNiArMTExLDEwIEBAIGZ1bmN0aW9uIHNo
b3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgICdjbW4taGFucy1jbicsIC8vICsgSVNP
IDMxNjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBj
b2RlCiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBl
eHRlbnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcK
ICAgICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3Mg
Y2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVu
b2NoaWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUK
ICAgICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24g
c3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2
YXJpYW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0g
ICAgJ3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MK
LSAgICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAot
ICAgICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKHZhciB2
YWxpZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93
KCgpID0+IEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyh2YWxpZExhbmd1YWdlVGFnKSk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLmpzIGIvSlNUZXN0cy9zdHJl
c3MvaW50bC1wbHVyYWxydWxlcy5qcwppbmRleCA4NGQ2ODY4YTcxNjZlYjRmNTZmMWZmN2QyNjcx
NjIyNGJiNjRkMjk5Li5hMTM2ZDQ2ZjQxYWQ0MjdlNWRkYmMxYWFhNjQ0YTExZjUxMjU0M2JjIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBsdXJhbHJ1bGVzLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2ludGwtcGx1cmFscnVsZXMuanMKQEAgLTg1LDE1ICs4NSwxMyBAQCBmdW5jdGlv
biBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAgICAgPyAnWyJlbi1MYXRuLVVT
LTFhYmMtZm9vYmFyLXZhcmlhbnQtYS1hYS1hYWEtdS1rbi14LXJlc2VydmVkIl0nCiAgICAgICAg
IDogJ1siZW4tTGF0bi1VUy12YXJpYW50LWZvb2Jhci0xYWJjLWEtYWEtYWFhLXUta24tdHJ1ZS14
LXJlc2VydmVkIl0nCiApOwotLy8gUmVwbGFjZXMgb3V0ZGF0ZWQgdGFncy4KLXNob3VsZEJlKEpT
T04uc3RyaW5naWZ5KEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCduby1ib2sn
KSksICdbIm5iIl0nKTsKLS8vIERvZXNuJ3QgdGhyb3csIGJ1dCBpZ25vcmVzIHByaXZhdGUgdGFn
cy4KLXNob3VsZEJlKEpTT04uc3RyaW5naWZ5KEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9j
YWxlc09mKCd4LXNvbWUtdGhpbmcnKSksICdbXScpOwogLy8gVGhyb3dzIG9uIHByb2JsZW1zIHdp
dGggbGVuZ3RoLCBnZXQsIG9yIHRvU3RyaW5nLgogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVy
YWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoT2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDog
eyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJv
dygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZihPYmplY3QuY3JlYXRl
KG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJy
b3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxl
cy5zdXBwb3J0ZWRMb2NhbGVzT2YoWyB7IHRvU3RyaW5nKCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsg
fSB9IF0pLCBFcnJvcik7CiAvLyBUaHJvd3Mgb24gYmFkIHRhZ3MuCitzaG91bGRUaHJvdygoKSA9
PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignbm8tYm9rJyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVz
T2YoJ3gtc29tZS10aGluZycpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwu
UGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKFsgNSBdKSwgVHlwZUVycm9yKTsKIHNob3Vs
ZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCcnKSwgUmFu
Z2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExv
Y2FsZXNPZignYScpLCBSYW5nZUVycm9yKTsKQEAgLTEwNiw2ICsxMDQsMTMgQEAgZnVuY3Rpb24g
c2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBs
dXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZignZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3Vs
ZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVsZXMuc3VwcG9ydGVkTG9jYWxlc09mKCdlbi0nKSwg
UmFuZ2VFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRl
ZExvY2FsZXNPZignZW4tLVVTJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50
bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2kta2xpbmdvbicpLCBSYW5nZUVycm9y
KTsgLy8gZ3JhbmRmYXRoZXJlZCB0YWcgaXMgbm90IGFjY2VwdGVkIGJ5IElzU3RydWN0dXJhbGx5
VmFsaWRMYW5ndWFnZVRhZworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBw
b3J0ZWRMb2NhbGVzT2YoJ3gtZW4tVVMtMTIzNDUnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJv
dygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZigneC0xMjM0NS0xMjM0
NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUGx1cmFsUnVs
ZXMuc3VwcG9ydGVkTG9jYWxlc09mKCd4LWVuLVVTLTEyMzQ1LTEyMzQ1JyksIFJhbmdlRXJyb3Ip
Oworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5QbHVyYWxSdWxlcy5zdXBwb3J0ZWRMb2NhbGVzT2Yo
J3gtZW4tdS1mb28nKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlBsdXJh
bFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvby11LWJhcicpLCBSYW5nZUVycm9y
KTsKKwogLy8gQWNjZXB0cyB2YWxpZCB0YWdzCiB2YXIgdmFsaWRMYW5ndWFnZVRhZ3MgPSBbCiAg
ICAgJ2RlJywgLy8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBAIC0xMTcsMTYgKzEyMiwxMCBAQCBm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKICAgICAnY21uLWhhbnMtY24n
LCAvLyArIElTTyAzMTY2LTEgY291bnRyeSBjb2RlCiAgICAgJ2VzLTQxOScsIC8vICsgVU4gTS40
OSByZWdpb24gY29kZQogICAgICdlcy00MTktdS1udS1sYXRuLWN1LWJvYicsIC8vICsgVW5pY29k
ZSBsb2NhbGUgZXh0ZW5zaW9uIHNlcXVlbmNlCi0gICAgJ2kta2xpbmdvbicsIC8vIGdyYW5kZmF0
aGVyZWQgdGFnCiAgICAgJ2Ntbi1oYW5zLWNuLXQtY2EtdS1jYS14LXQtdScsIC8vIHNpbmdsZXRv
biBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ugc3VidGFncwogICAgICdl
bm9jaGlhbi1lbm9jaGlhbicsIC8vIGxhbmd1YWdlIGFuZCB2YXJpYW50IHN1YnRhZ3MgbWF5IGJl
IHRoZSBzYW1lCiAgICAgJ2RlLWdyZWdvcnktdS1jYS1ncmVnb3J5JywgLy8gdmFyaWFudCBhbmQg
ZXh0ZW5zaW9uIHN1YnRhZ3MgbWF5IGJlIHRoZSBzYW1lCiAgICAgJ2FhLWEtZm9vLXgtYS1mb28t
YmFyJywgLy8gdmFyaWFudCBzdWJ0YWdzIGNhbiBhbHNvIGJlIHVzZWQgYXMgcHJpdmF0ZSB1c2Ug
c3VidGFncwotICAgICd4LWVuLVVTLTEyMzQ1JywgLy8gYW55dGhpbmcgZ29lcyBpbiBwcml2YXRl
IHVzZSB0YWdzCi0gICAgJ3gtMTIzNDUtMTIzNDUtZW4tVVMnLAotICAgICd4LWVuLVVTLTEyMzQ1
LTEyMzQ1JywKLSAgICAneC1lbi11LWZvbycsCi0gICAgJ3gtZW4tdS1mb28tdS1iYXInCiBdOwog
Zm9yICh2YXIgdmFsaWRMYW5ndWFnZVRhZyBvZiB2YWxpZExhbmd1YWdlVGFncykKICAgICBzaG91
bGROb3RUaHJvdygoKSA9PiBJbnRsLlBsdXJhbFJ1bGVzLnN1cHBvcnRlZExvY2FsZXNPZih2YWxp
ZExhbmd1YWdlVGFnKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZl
dGltZWZvcm1hdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0Lmpz
CmluZGV4IDNmM2E4N2ExZjIyYzBiY2Q5YTQ5NWFiNGFjNDFjOGM1MzIyODMyMDguLmY5MWMxYWJj
ZTA1NTA2YTA0ZWYwZjNkZGIzYTcwODUxYjI3YmM5MzQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwt
cmVsYXRpdmV0aW1lZm9ybWF0LmpzCkBAIC02OSw5ICs2OSw5IEBAIGZ1bmN0aW9uIHNob3VsZFRo
cm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgICAgICA/ICdbImVuLUxhdG4tVVMtMWFiYy1mb29i
YXItdmFyaWFudC1hLWFhLWFhYS11LWtuLXgtcmVzZXJ2ZWQiXScKICAgICAgICAgOiAnWyJlbi1M
YXRuLVVTLXZhcmlhbnQtZm9vYmFyLTFhYmMtYS1hYS1hYWEtdS1rbi10cnVlLXgtcmVzZXJ2ZWQi
XScKICk7Ci1zaG91bGRCZShKU09OLnN0cmluZ2lmeShJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5z
dXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycpKSwgJ1sibmIiXScpOwotc2hvdWxkQmUoSlNPTi5z
dHJpbmdpZnkoSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKCd4LXNv
bWUtdGhpbmcnKSksICdbXScpOwogCitzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGlt
ZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ25vLWJvaycpLCBSYW5nZUVycm9yKTsKK3Nob3Vs
ZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZign
eC1zb21lLXRoaW5nJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxh
dGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKE9iamVjdC5jcmVhdGUobnVsbCwgeyBs
ZW5ndGg6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSB9IH0pKSwgRXJyb3IpOwogc2hv
dWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09m
KE9iamVjdC5jcmVhdGUobnVsbCwgeyBsZW5ndGg6IHsgdmFsdWU6IDEgfSwgMDogeyBnZXQoKSB7
IHRocm93IG5ldyBFcnJvcigpOyB9IH0gfSkpLCBFcnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoW3sgdG9TdHJpbmcoKSB7
IHRocm93IG5ldyBFcnJvcigpOyB9IH1dKSwgRXJyb3IpOwpAQCAtODcsNiArODcsMTIgQEAgZnVu
Y3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiBzaG91bGRUaHJvdygoKSA9PiBJ
bnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YoJ2VuLSonKSwgUmFuZ2VF
cnJvcik7CiBzaG91bGRUaHJvdygoKSA9PiBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdC5zdXBwb3J0
ZWRMb2NhbGVzT2YoJ2VuLScpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+IEludGwu
UmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZignZW4tLVVTJyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVk
TG9jYWxlc09mKCdpLWtsaW5nb24nKSwgUmFuZ2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFn
IGlzIG5vdCBhY2NlcHRlZCBieSBJc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3Vs
ZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZign
eC1lbi1VUy0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUmVs
YXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC0xMjM0NS0xMjM0NS1lbi1VUycp
LCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0
LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsK
K3Nob3VsZFRocm93KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2Fs
ZXNPZigneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+IEludGwu
UmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZigneC1lbi11LWZvby11LWJhcicp
LCBSYW5nZUVycm9yKTsKIAogY29uc3QgdmFsaWRMYW5ndWFnZVRhZ3MgPSBbCiAgICAgJ2RlJywg
Ly8gSVNPIDYzOSBsYW5ndWFnZSBjb2RlCkBAIC05OCwxNiArMTA0LDEwIEBAIGZ1bmN0aW9uIHNo
b3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgICdjbW4taGFucy1jbicsIC8vICsgSVNP
IDMxNjYtMSBjb3VudHJ5IGNvZGUKICAgICAnZXMtNDE5JywgLy8gKyBVTiBNLjQ5IHJlZ2lvbiBj
b2RlCiAgICAgJ2VzLTQxOS11LW51LWxhdG4tY3UtYm9iJywgLy8gKyBVbmljb2RlIGxvY2FsZSBl
eHRlbnNpb24gc2VxdWVuY2UKLSAgICAnaS1rbGluZ29uJywgLy8gZ3JhbmRmYXRoZXJlZCB0YWcK
ICAgICAnY21uLWhhbnMtY24tdC1jYS11LWNhLXgtdC11JywgLy8gc2luZ2xldG9uIHN1YnRhZ3Mg
Y2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCiAgICAgJ2Vub2NoaWFuLWVu
b2NoaWFuJywgLy8gbGFuZ3VhZ2UgYW5kIHZhcmlhbnQgc3VidGFncyBtYXkgYmUgdGhlIHNhbWUK
ICAgICAnZGUtZ3JlZ29yeS11LWNhLWdyZWdvcnknLCAvLyB2YXJpYW50IGFuZCBleHRlbnNpb24g
c3VidGFncyBtYXkgYmUgdGhlIHNhbWUKICAgICAnYWEtYS1mb28teC1hLWZvby1iYXInLCAvLyB2
YXJpYW50IHN1YnRhZ3MgY2FuIGFsc28gYmUgdXNlZCBhcyBwcml2YXRlIHVzZSBzdWJ0YWdzCi0g
ICAgJ3gtZW4tVVMtMTIzNDUnLCAvLyBhbnl0aGluZyBnb2VzIGluIHByaXZhdGUgdXNlIHRhZ3MK
LSAgICAneC0xMjM0NS0xMjM0NS1lbi1VUycsCi0gICAgJ3gtZW4tVVMtMTIzNDUtMTIzNDUnLAot
ICAgICd4LWVuLXUtZm9vJywKLSAgICAneC1lbi11LWZvby11LWJhcicKIF07CiBmb3IgKGxldCB2
YWxpZExhbmd1YWdlVGFnIG9mIHZhbGlkTGFuZ3VhZ2VUYWdzKQogICAgIHNob3VsZE5vdFRocm93
KCgpID0+IEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZih2YWxpZExh
bmd1YWdlVGFnKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9Mb2NhbGVM
b3dlckNhc2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9Mb2NhbGVMb3dlckNhc2UuanMK
aW5kZXggY2E3NzA0ZTBkYWI3MzFmNWY2NzgwMDhjZjI2MmE5YzEwNDFiNTEzNi4uYWNkZjZjYWQy
ODMyYjViMTliNWM4NDM4MmI0NzY0OTMwMWU5MWQ0NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvc3RyaW5nLXRvTG9jYWxlTG93ZXJDYXNlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3N0cmlu
Zy10b0xvY2FsZUxvd2VyQ2FzZS5qcwpAQCAtMzAsOCArMzAsNiBAQCBmdW5jdGlvbiBzaG91bGRU
aHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZEJlKCdBJy50b0xvY2FsZUxvd2VyQ2FzZSg5
KSwgJ2EnKTsKIC8vIEhhbmRsZXMgYXJyYXktbGlrZSBvYmplY3RzIHdpdGggaG9sZXMuCiBzaG91
bGRCZSgnXHUwMTMwJy50b0xvY2FsZUxvd2VyQ2FzZSh7IGxlbmd0aDogNCwgMTogJ2F6JywgMzog
J2VuJyB9KSwgJ2knKTsKLS8vIERvZXNuJ3QgdGhyb3csIGJ1dCBpZ25vcmVzIHByaXZhdGUgdGFn
cy4KLXNob3VsZEJlKCdBJy50b0xvY2FsZUxvd2VyQ2FzZSgneC1zb21lLXRoaW5nJyksICdhJyk7
CiAvLyBUaHJvd3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdldCwgb3IgdG9TdHJpbmcuCiBz
aG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoT2JqZWN0LmNyZWF0ZShudWxs
LCB7IGxlbmd0aDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigpIH0gfSB9KSksIEVycm9yKTsK
IHNob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZShPYmplY3QuY3JlYXRlKG51
bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0KCkgeyB0aHJvdyBuZXcgRXJyb3Io
KSB9IH0gfSkpLCBFcnJvcik7CkBAIC00OSw2ICs0NywxNCBAQCBmdW5jdGlvbiBzaG91bGRUaHJv
dyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2Vy
Q2FzZSgnZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2Fs
ZUxvd2VyQ2FzZSgnZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRv
TG9jYWxlTG93ZXJDYXNlKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7CitzaG91bGRUaHJvdygoKSA9
PiAnQScudG9Mb2NhbGVMb3dlckNhc2UoJ25vLWJvaycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRo
cm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgneC1zb21lLXRoaW5nJyksIFJhbmdlRXJy
b3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlTG93ZXJDYXNlKCdpLWtsaW5nb24n
KSwgUmFuZ2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlzIG5vdCBhY2NlcHRlZCBieSBJ
c1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xv
Y2FsZUxvd2VyQ2FzZSgneC1lbi1VUy0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93
KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgneC0xMjM0NS0xMjM0NS1lbi1VUycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgneC1lbi1V
Uy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xv
Y2FsZUxvd2VyQ2FzZSgneC1lbi11LWZvbycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgp
ID0+ICdBJy50b0xvY2FsZUxvd2VyQ2FzZSgneC1lbi11LWZvby11LWJhcicpLCBSYW5nZUVycm9y
KTsKIAogLy8gQ2hlY2sgYXNjaWkgYW5kIGFjY2VudHMuCiBzaG91bGRCZSgnQWJDZEVmR2hJakts
TW5PcFFSU3R1dldYeVowMTIzNDU2Nzg5Jy50b0xvY2FsZUxvd2VyQ2FzZSgpLCAnYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Jyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9zdHJpbmctdG9Mb2NhbGVVcHBlckNhc2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctdG9M
b2NhbGVVcHBlckNhc2UuanMKaW5kZXggMGM4NjdiYTlmY2UyYTg0YmZmNDc0MGZkZTNhOWQyNjcy
OWQwMTE3Ny4uM2Y4NjI5NmZjMGUxODZjZDY0NDE4NjU5NjY1NWY0ZTg3MzY2ODI0MyAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLXRvTG9jYWxlVXBwZXJDYXNlLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3N0cmluZy10b0xvY2FsZVVwcGVyQ2FzZS5qcwpAQCAtMzAsOCArMzAsNiBA
QCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZEJlKCdhJy50
b0xvY2FsZVVwcGVyQ2FzZSg5KSwgJ0EnKTsKIC8vIEhhbmRsZXMgYXJyYXktbGlrZSBvYmplY3Rz
IHdpdGggaG9sZXMuCiBzaG91bGRCZSgnaScudG9Mb2NhbGVVcHBlckNhc2UoeyBsZW5ndGg6IDQs
IDE6ICdheicsIDM6ICdlbicgfSksICdcdTAxMzAnKTsKLS8vIERvZXNuJ3QgdGhyb3csIGJ1dCBp
Z25vcmVzIHByaXZhdGUgdGFncy4KLXNob3VsZEJlKCdhJy50b0xvY2FsZVVwcGVyQ2FzZSgneC1z
b21lLXRoaW5nJyksICdBJyk7CiAvLyBUaHJvd3Mgb24gcHJvYmxlbXMgd2l0aCBsZW5ndGgsIGdl
dCwgb3IgdG9TdHJpbmcuCiBzaG91bGRUaHJvdygoKSA9PiAnYScudG9Mb2NhbGVVcHBlckNhc2Uo
T2JqZWN0LmNyZWF0ZShudWxsLCB7IGxlbmd0aDogeyBnZXQoKSB7IHRocm93IG5ldyBFcnJvcigp
IH0gfSB9KSksIEVycm9yKTsKIHNob3VsZFRocm93KCgpID0+ICdhJy50b0xvY2FsZVVwcGVyQ2Fz
ZShPYmplY3QuY3JlYXRlKG51bGwsIHsgbGVuZ3RoOiB7IHZhbHVlOiAxIH0sIDA6IHsgZ2V0KCkg
eyB0aHJvdyBuZXcgRXJyb3IoKSB9IH0gfSkpLCBFcnJvcik7CkBAIC00OSw2ICs0NywxNCBAQCBm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIHNob3VsZFRocm93KCgpID0+
ICdhJy50b0xvY2FsZVVwcGVyQ2FzZSgnZW4tKicpLCBSYW5nZUVycm9yKTsKIHNob3VsZFRocm93
KCgpID0+ICdhJy50b0xvY2FsZVVwcGVyQ2FzZSgnZW4tJyksIFJhbmdlRXJyb3IpOwogc2hvdWxk
VGhyb3coKCkgPT4gJ2EnLnRvTG9jYWxlVXBwZXJDYXNlKCdlbi0tVVMnKSwgUmFuZ2VFcnJvcik7
CitzaG91bGRUaHJvdygoKSA9PiAnQScudG9Mb2NhbGVVcHBlckNhc2UoJ25vLWJvaycpLCBSYW5n
ZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2FzZSgneC1zb21l
LXRoaW5nJyksIFJhbmdlRXJyb3IpOworc2hvdWxkVGhyb3coKCkgPT4gJ0EnLnRvTG9jYWxlVXBw
ZXJDYXNlKCdpLWtsaW5nb24nKSwgUmFuZ2VFcnJvcik7IC8vIGdyYW5kZmF0aGVyZWQgdGFnIGlz
IG5vdCBhY2NlcHRlZCBieSBJc1N0cnVjdHVyYWxseVZhbGlkTGFuZ3VhZ2VUYWcKK3Nob3VsZFRo
cm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2FzZSgneC1lbi1VUy0xMjM0NScpLCBSYW5nZUVy
cm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2FzZSgneC0xMjM0NS0x
MjM0NS1lbi1VUycpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2Fs
ZVVwcGVyQ2FzZSgneC1lbi1VUy0xMjM0NS0xMjM0NScpLCBSYW5nZUVycm9yKTsKK3Nob3VsZFRo
cm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2FzZSgneC1lbi11LWZvbycpLCBSYW5nZUVycm9y
KTsKK3Nob3VsZFRocm93KCgpID0+ICdBJy50b0xvY2FsZVVwcGVyQ2FzZSgneC1lbi11LWZvby11
LWJhcicpLCBSYW5nZUVycm9yKTsKIAogLy8gQ2hlY2sgYXNjaWkgYW5kIGFjY2VudHMuCiBzaG91
bGRCZSgnQWJDZEVmR2hJaktsTW5PcFFSU3R1dldYeVowMTIzNDU2Nzg5Jy50b0xvY2FsZVVwcGVy
Q2FzZSgpLCAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5Jyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggM2E5NGU2MGU3NWQyZGExYjJiOGIyYWRmMzYyMGYxNGUz
ZTE5NzI1Yi4uNGQxOWE0Zjk4ZTFjMTk1ZmJkNjRhNmI1NWYwZmIyYTliNDFlMDQ5NSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTU1MSwxNSArMTU1MSwxNSBAQCB0ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL29mL25ldy1pbnN0YW5jZS11c2luZy1jdXN0b20t
Y3Rvci5qczoKIHRlc3QvaW50bDQwMi9Db2xsYXRvci9taXNzaW5nLXVuaWNvZGUtZXh0LXZhbHVl
LWRlZmF1bHRzLXRvLXRydWUuanM6CiAgIGRlZmF1bHQ6ICJUZXN0MjYyRXJyb3I6IFwia24tdHJ1
ZVwiIGlzIHJldHVybmVkIGluIGxvY2FsZSwgYnV0IHNob3VsZG4ndCBiZS4gRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrN8K7LCDCqy0xwrspIHRvIGJlIHRydWUiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2
MkVycm9yOiBcImtuLXRydWVcIiBpcyByZXR1cm5lZCBpbiBsb2NhbGUsIGJ1dCBzaG91bGRuJ3Qg
YmUuIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzfCuywgwqstMcK7KSB0byBiZSB0cnVlIgordGVzdC9p
bnRsNDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvdGltZWRhdGVzdHlsZS1lbi5q
czoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXC
uywgwqsxNDoxMjo0NyBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7KSB0byBiZSB0cnVlJwor
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXC
uywgwqsxNDoxMjo0NyBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7KSB0byBiZSB0cnVlJwog
dGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRSYW5nZS9lbi1VUy5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMS8zLzIw
MTnigInigJPigIkxLzUvMjAxOcK7LCDCqzEvMy8yMDE5IOKAkyAxLzUvMjAxOcK7KSB0byBiZSB0
cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
MS8zLzIwMTnigInigJPigIkxLzUvMjAxOcK7LCDCqzEvMy8yMDE5IOKAkyAxLzUvMjAxOcK7KSB0
byBiZSB0cnVlJwogdGVzdC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9yZXNvbHZl
ZE9wdGlvbnMvaG91ckN5Y2xlLWRlZmF1bHQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2gyNMK7LCDCq2gyM8K7KSB0byBiZSB0cnVlJwogICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrssIMKraDIz
wrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zv
cm1hdC90aW1lZGF0ZXN0eWxlLWVuLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZXN1
bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0NyBQTSBDb29y
ZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVkIFVuaXZlcnNh
bCBUaW1lwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZXN1
bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0NyBQTSBDb29y
ZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVkIFVuaXZlcnNh
bCBUaW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5vbmljYWxMb2Nh
bGVzL2Nhbm9uaWNhbGl6ZWQtdGFncy5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrY21uwrssIMKremjCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2NtbsK7LCDCq3powrspIHRv
IGJlIHRydWUnCkBAIC0xNTcyLDkgKzE1NzIsNiBAQCB0ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5v
bmljYWxMb2NhbGVzL2NvbXBsZXgtcmVnaW9uLXN1YnRhZy1yZXBsYWNlbWVudC5qczoKIHRlc3Qv
aW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExvY2FsZXMvZ3JhbmRmYXRoZXJlZC5qczoKICAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrY21uwrssIMKremjCuykg
dG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq2NtbsK7LCDCq3powrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvSW50bC9nZXRD
YW5vbmljYWxMb2NhbGVzL2ludmFsaWQtdGFncy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogTGFuZ3VhZ2UgdGFnOiBuby1ueW4gRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogTGFuZ3VhZ2UgdGFnOiBuby1ueW4gRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRs
NDAyL0ludGwvZ2V0Q2Fub25pY2FsTG9jYWxlcy9ub24taWFuYS1jYW5vbi5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogVGhlIHZhbHVlIG9mIEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyh0
YWcpWzBdIGVxdWFscyB0aGUgdmFsdWUgb2YgYGNhbm9uaWNhbGAgRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrZW4tVVMtdS12YS1wb3NpeMK7LCDCq3Bvc2l4wrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBUaGUgdmFsdWUgb2YgSW50bC5nZXRDYW5vbmljYWxMb2NhbGVz
KHRhZylbMF0gZXF1YWxzIHRoZSB2YWx1ZSBvZiBgY2Fub25pY2FsYCBFeHBlY3RlZCBTYW1lVmFs
dWUowqtlbi1VUy11LXZhLXBvc2l4wrssIMKrcG9zaXjCuykgdG8gYmUgdHJ1ZScKQEAgLTE1ODcs
OSArMTU4NCw2IEBAIHRlc3QvaW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExvY2FsZXMvcHJlZmVy
cmVkLXZhcmlhbnQuanM6CiB0ZXN0L2ludGw0MDIvSW50bC9nZXRDYW5vbmljYWxMb2NhbGVzL3Ry
YW5zZm9ybWVkLWV4dC1jYW5vbmljYWwuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq3NsLXQtc2wtcm96YWotYmlza2UtMTk5NMK7LCDCq3NsLXQtc2wt
MTk5NC1iaXNrZS1yb3phasK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrc2wtdC1zbC1yb3phai1iaXNrZS0xOTk0wrssIMKr
c2wtdC1zbC0xOTk0LWJpc2tlLXJvemFqwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvSW50
bC9nZXRDYW5vbmljYWxMb2NhbGVzL3RyYW5zZm9ybWVkLWV4dC1pbnZhbGlkLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBlbi10LXJvb3QgRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogZW4tdC1yb290IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvaW50bDQwMi9J
bnRsL2dldENhbm9uaWNhbExvY2FsZXMvdW5pY29kZS1leHQtY2Fub25pY2FsaXplLXJlZ2lvbi5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdW5kLXUt
cmctbm8yM8K7LCDCq3VuZC11LXJnLW5vNTDCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3VuZC11LXJnLW5vMjPCuywgwqt1
bmQtdS1yZy1ubzUwwrspIHRvIGJlIHRydWUnCkBAIC0xNjAwLDIwICsxNTk0LDE0IEBAIHRlc3Qv
aW50bDQwMi9JbnRsL2dldENhbm9uaWNhbExvY2FsZXMvdW5pY29kZS1leHQtY2Fub25pY2FsaXpl
LXllcy10by10cnVlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqt1bmQtdS1rYi10cnVlwrssIMKrdW5kLXUta2LCuykgdG8gYmUgdHJ1ZScKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3VuZC11LWtiLXRy
dWXCuywgwqt1bmQtdS1rYsK7KSB0byBiZSB0cnVlJwogdGVzdC9pbnRsNDAyL0ludGwvZ2V0Q2Fu
b25pY2FsTG9jYWxlcy91bmljb2RlLWV4dC1rZXktd2l0aC1kaWdpdC5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqtlbi11LTBjLXllc8K7LCDCq2VuLXUtMGPCuykgdG8gYmUgdHJ1ZScKKyAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2VuLXUtMGMteWVzwrss
IMKrZW4tdS0wY8K7KSB0byBiZSB0cnVlJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rv
ci1hcHBseS1vcHRpb25zLWNhbm9uaWNhbGl6ZXMtdHdpY2UuanM6CiAgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3J1LUFybW4tU1XCuywgwqtydS1Bcm1uLUFN
wrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqtydS1Bcm1uLVNVwrssIMKrcnUtQXJtbi1BTcK7KSB0byBiZSB0cnVlJwogdGVz
dC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1ub24taWFuYS1jYW5vbi5qczoKICAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogbmV3IEludGwuTG9jYWxlKCJtbyIpLm1heGltaXplKCkudG9TdHJp
bmcoKSByZXR1cm5zICJyby1MYXRuLVJPIiBFeHBlY3RlZCBTYW1lVmFsdWUowqtyb8K7LCDCq3Jv
LUxhdG4tUk/CuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IG5l
dyBJbnRsLkxvY2FsZSgibW8iKS5tYXhpbWl6ZSgpLnRvU3RyaW5nKCkgcmV0dXJucyAicm8tTGF0
bi1STyIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrcm/Cuywgwqtyby1MYXRuLVJPwrspIHRvIGJlIHRy
dWUnCi10ZXN0L2ludGw0MDIvTG9jYWxlL2NvbnN0cnVjdG9yLW9wdGlvbnMtbGFuZ3VhZ2UtdmFs
aWQtdW5kZWZpbmVkLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJh
bmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi10ZXN0L2ludGw0
MDIvTG9jYWxlL2NvbnN0cnVjdG9yLW9wdGlvbnMtbGFuZ3VhZ2UtdmFsaWQuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKIHRlc3QvaW50bDQwMi9Mb2NhbGUvY29uc3RydWN0b3Itb3B0
aW9ucy1udW1lcmljLXVuZGVmaW5lZC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogbmV3
IEludGwuTG9jYWxlKCJlbi11LWtuLXRydWUiLCB7bnVtZXJpYzogdW5kZWZpbmVkfSkudG9TdHJp
bmcoKSByZXR1cm5zICJlbi11LWtuIiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi11LWtuLXRydWXC
uywgwqtlbi11LWtuwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBuZXcgSW50bC5Mb2NhbGUoImVuLXUta24tdHJ1ZSIsIHtudW1lcmljOiB1bmRlZmluZWR9KS50
b1N0cmluZygpIHJldHVybnMgImVuLXUta24iIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2VuLXUta24t
dHJ1ZcK7LCDCq2VuLXUta27CuykgdG8gYmUgdHJ1ZScKQEAgLTE2MjMsMzAgKzE2MTEsMTUgQEAg
dGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1vcHRpb25zLW51bWVyaWMtdmFsaWQuanM6
CiB0ZXN0L2ludGw0MDIvTG9jYWxlL2NvbnN0cnVjdG9yLW9wdGlvbnMtcmVnaW9uLXZhbGlkLmpz
OgogICBkZWZhdWx0OiAiVGVzdDI2MkVycm9yOiBuZXcgSW50bC5Mb2NhbGUoJ2VuJywge3JlZ2lv
bjogXCI1NTRcIn0pLnRvU3RyaW5nKCkgcmV0dXJucyBcImVuLU5aXCIgRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrZW4tNTU0wrssIMKrZW4tTlrCuykgdG8gYmUgdHJ1ZSIKICAgc3RyaWN0IG1vZGU6ICJU
ZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgnZW4nLCB7cmVnaW9uOiBcIjU1NFwifSkudG9T
dHJpbmcoKSByZXR1cm5zIFwiZW4tTlpcIiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi01NTTCuywg
wqtlbi1OWsK7KSB0byBiZSB0cnVlIgotdGVzdC9pbnRsNDAyL0xvY2FsZS9jb25zdHJ1Y3Rvci1w
YXJzZS10d2ljZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5n
ZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwot
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9pbnRsNDAy
L0xvY2FsZS9jb25zdHJ1Y3Rvci10YWcuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5l
dyBJbnRsLkxvY2FsZSgic2wtUk9aQUotQklTS0UtMTk5NCIpLnRvU3RyaW5nKCkgcmV0dXJucyAi
c2wtMTk5NC1iaXNrZS1yb3phaiIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrc2wtcm96YWotYmlza2Ut
MTk5NMK7LCDCq3NsLTE5OTQtYmlza2Utcm96YWrCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IG5ldyBJbnRsLkxvY2FsZSgic2wtUk9aQUotQklTS0UtMTk5NCIp
LnRvU3RyaW5nKCkgcmV0dXJucyAic2wtMTk5NC1iaXNrZS1yb3phaiIgRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrc2wtcm96YWotYmlza2UtMTk5NMK7LCDCq3NsLTE5OTQtYmlza2Utcm96YWrCuykgdG8g
YmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9Mb2NhbGUvZXh0ZW5zaW9ucy1ncmFuZGZhdGhlcmVkLmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi10ZXN0L2ludGw0MDIvTG9jYWxlL2V4dGVu
c2lvbnMtcHJpdmF0ZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBS
YW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9pbnRs
NDAyL0xvY2FsZS9nZXR0ZXJzLWdyYW5kZmF0aGVyZWQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCcKIHRlc3QvaW50bDQwMi9Mb2NhbGUvZ2V0dGVycy5qczoKICAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZGUtTGF0bi1ERS11LWNhLWdyZWdvcnkt
Y28tcGhvbmViay1oYy1oMjMta2YtdHJ1ZS1rbi1mYWxzZS1udS1sYXRuwrssIMKrZGUtTGF0bi1E
RS11LWNhLWdyZWdvcnktY28tcGhvbmViay1oYy1oMjMta2Yta24tZmFsc2UtbnUtbGF0bsK7KSB0
byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrZGUtTGF0bi1ERS11LWNhLWdyZWdvcnktY28tcGhvbmViay1oYy1oMjMta2YtdHJ1ZS1r
bi1mYWxzZS1udS1sYXRuwrssIMKrZGUtTGF0bi1ERS11LWNhLWdyZWdvcnktY28tcGhvbmViay1o
Yy1oMjMta2Yta24tZmFsc2UtbnUtbGF0bsK7KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL0xv
Y2FsZS9pbnZhbGlkLXRhZy10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IG5v
LW55biBpcyBhbiBpbnZhbGlkIHRhZyB2YWx1ZSBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBuby1ueW4gaXMgYW4gaW52YWxpZCB0YWcgdmFsdWUgRXhwZWN0ZWQg
YSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQg
YWxsJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9saWtlbHktc3VidGFncy1ncmFuZGZhdGhlcmVkLmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2NtbsK7LCDCq3powrspIHRvIGJlIHRydWUnCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtjbW7Cuywgwqt6aMK7
KSB0byBiZSB0cnVlJwogdGVzdC9pbnRsNDAyL0xvY2FsZS9saWtlbHktc3VidGFncy5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogImVuLXUtY28iLm1heGltaXplKCkgc2hvdWxkIGJlICJl
bi1MYXRuLVVTLXUtY28iIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2VuLUxhdG4tVVMtdS1jby15ZXPC
uywgwqtlbi1MYXRuLVVTLXUtY2/CuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6ICJlbi11LWNvIi5tYXhpbWl6ZSgpIHNob3VsZCBiZSAiZW4tTGF0bi1VUy11LWNv
IiBFeHBlY3RlZCBTYW1lVmFsdWUowqtlbi1MYXRuLVVTLXUtY28teWVzwrssIMKrZW4tTGF0bi1V
Uy11LWNvwrspIHRvIGJlIHRydWUnCkBAIC0xNjU2LDEyMCArMTYyOSw2IEBAIHRlc3QvaW50bDQw
Mi9Mb2NhbGUvcHJvdG90eXBlL21pbmltaXplL3JlbW92aW5nLWxpa2VseS1zdWJ0YWdzLWZpcnN0
LWFkZHMtbGlrZWx5CiB0ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L2RmdC1jdXJyZW5jeS1tbmZk
LXJhbmdlLWNoZWNrLW14ZmQuanM6CiAgIGRlZmF1bHQ6ICdSYW5nZUVycm9yOiBtYXhpbXVtRnJh
Y3Rpb25EaWdpdHMgaXMgb3V0IG9mIHJhbmdlJwogICBzdHJpY3QgbW9kZTogJ1JhbmdlRXJyb3I6
IG1heGltdW1GcmFjdGlvbkRpZ2l0cyBpcyBvdXQgb2YgcmFuZ2UnCi10ZXN0L2ludGw0MDIvTnVt
YmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvZW5naW5lZXJpbmctc2NpZW50aWZpYy1kZS1ERS5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLeKInkUw
wrssIMKrLeKInsK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrLeKInkUwwrssIMKrLeKInsK7KSB0byBiZSB0cnVlJwotdGVz
dC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5cGUvZm9ybWF0L2VuZ2luZWVyaW5nLXNjaWVu
dGlmaWMtZW4tVVMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCqy3iiJ5FMMK7LCDCqy3iiJ7CuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy3iiJ5FMMK7LCDCqy3iiJ7CuykgdG8g
YmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdC9lbmdp
bmVlcmluZy1zY2llbnRpZmljLWphLUpQLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBTYW1lVmFsdWUowqst4oieRTDCuywgwqst4oiewrspIHRvIGJlIHRydWUnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqst4oieRTDCuywg
wqst4oiewrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlw
ZS9mb3JtYXQvZW5naW5lZXJpbmctc2NpZW50aWZpYy1rby1LUi5qczoKLSAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLeKInkUwwrssIMKrLeKInsK7KSB0byBi
ZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrLeKInkUwwrssIMKrLeKInsK7KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL051bWJlckZv
cm1hdC9wcm90b3R5cGUvZm9ybWF0L2VuZ2luZWVyaW5nLXNjaWVudGlmaWMtemgtVFcuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy3iiJ5FMMK7LCDC
qy3iiJ7CuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqy3iiJ5FMMK7LCDCqy3iiJ7CuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50
bDQwMi9OdW1iZXJGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdC9zaWduRGlzcGxheS1jdXJyZW5jeS1k
ZS1ERS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
LTAsMDDCoCTCuywgwqswLDAwwqAkwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqstMCwwMMKgJMK7LCDCqzAsMDDCoCTCuykg
dG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdC9z
aWduRGlzcGxheS1jdXJyZW5jeS1lbi1VUy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrKCQwLjAwKcK7LCDCqyQwLjAwwrspIHRvIGJlIHRydWUnCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsoJDAuMDAp
wrssIMKrJDAuMDDCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvcHJv
dG90eXBlL2Zvcm1hdC9zaWduRGlzcGxheS1jdXJyZW5jeS1qYS1KUC5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrKCQwLjAwKcK7LCDCqyQwLjAwwrsp
IHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqsoJDAuMDApwrssIMKrJDAuMDDCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9O
dW1iZXJGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdC9zaWduRGlzcGxheS1jdXJyZW5jeS1rby1LUi5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrKFVTJDAu
MDApwrssIMKrVVMkMC4wMMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrKFVTJDAuMDApwrssIMKrVVMkMC4wMMK7KSB0byBi
ZSB0cnVlJwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5cGUvZm9ybWF0L3NpZ25E
aXNwbGF5LWN1cnJlbmN5LXpoLVRXLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqsoVVMkMC4wMCnCuywgwqtVUyQwLjAwwrspIHRvIGJlIHRydWUnCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsoVVMkMC4w
MCnCuywgwqtVUyQwLjAwwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0
L3Byb3RvdHlwZS9mb3JtYXQvc2lnbkRpc3BsYXktZGUtREUuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IC0wLjAwMDEgKGV4Y2VwdFplcm8pIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrss
IMKrMMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLTAuMDAw
MSAoZXhjZXB0WmVybykgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRy
dWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvc2lnbkRpc3Bs
YXktZW4tVVMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IC0wLjAwMDEgKGV4Y2VwdFpl
cm8pIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLTAuMDAwMSAoZXhjZXB0WmVybykgRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9y
bWF0L3Byb3RvdHlwZS9mb3JtYXQvc2lnbkRpc3BsYXktamEtSlAuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IC0wLjAwMDEgKGV4Y2VwdFplcm8pIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0w
wrssIMKrMMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLTAu
MDAwMSAoZXhjZXB0WmVybykgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJl
IHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvc2lnbkRp
c3BsYXkta28tS1IuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IC0wLjAwMDEgKGV4Y2Vw
dFplcm8pIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKrMMK7KSB0byBiZSB0cnVlJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLTAuMDAwMSAoZXhjZXB0WmVybykgRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVy
Rm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvc2lnbkRpc3BsYXktcm91bmRpbmcuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqyswwrssIMKrMMK7KSB0byBi
ZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrKzDCuywgwqswwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3By
b3RvdHlwZS9mb3JtYXQvc2lnbkRpc3BsYXktemgtVFcuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IC0wLjAwMDEgKGV4Y2VwdFplcm8pIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy0wwrssIMKr
MMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLTAuMDAwMSAo
ZXhjZXB0WmVybykgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrLTDCuywgwqswwrspIHRvIGJlIHRydWUn
Ci10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvdW5pdC1qYS1KUC5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr5pmC6YCf
LTk4N+OCreODreODoeODvOODiOODq8K7LCDCq+aZgumAnyAtOTg3IOOCreODreODoeODvOODiOOD
q8K7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
U2FtZVZhbHVlKMKr5pmC6YCfLTk4N+OCreODreODoeODvOODiOODq8K7LCDCq+aZgumAnyAtOTg3
IOOCreODreODoeODvOODiOODq8K7KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL051bWJlckZv
cm1hdC9wcm90b3R5cGUvZm9ybWF0L3VuaXQtemgtVFcuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqy05ODflhazph4wv5bCP5pmCwrssIMKrLTk4NyDl
hazph4wv5bCP5pmCwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqstOTg35YWs6YeML+Wwj+aZgsK7LCDCqy05ODcg5YWs6YeM
L+Wwj+aZgsK7KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5
cGUvZm9ybWF0VG9QYXJ0cy9lbmdpbmVlcmluZy1zY2llbnRpZmljLWRlLURFLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiAtSW5maW5pdHkgLSBlbmdpbmVlcmluZzogbGVuZ3RoIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzTCuywgwqsywrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiAtSW5maW5pdHkgLSBlbmdpbmVlcmluZzogbGVuZ3RoIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCqzTCuywgwqsywrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9y
bWF0L3Byb3RvdHlwZS9mb3JtYXRUb1BhcnRzL2VuZ2luZWVyaW5nLXNjaWVudGlmaWMtZW4tVVMu
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IC1JbmZpbml0eSAtIGVuZ2luZWVyaW5nOiBs
ZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrNMK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IC1JbmZpbml0eSAtIGVuZ2luZWVyaW5nOiBsZW5ndGgg
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrNMK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQw
Mi9OdW1iZXJGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdFRvUGFydHMvZW5naW5lZXJpbmctc2NpZW50
aWZpYy1qYS1KUC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogLUluZmluaXR5IC0gZW5n
aW5lZXJpbmc6IGxlbmd0aCBFeHBlY3RlZCBTYW1lVmFsdWUowqs0wrssIMKrMsK7KSB0byBiZSB0
cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogLUluZmluaXR5IC0gZW5naW5lZXJp
bmc6IGxlbmd0aCBFeHBlY3RlZCBTYW1lVmFsdWUowqs0wrssIMKrMsK7KSB0byBiZSB0cnVlJwot
dGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5cGUvZm9ybWF0VG9QYXJ0cy9lbmdpbmVl
cmluZy1zY2llbnRpZmljLWtvLUtSLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAtSW5m
aW5pdHkgLSBlbmdpbmVlcmluZzogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzTCuywgwqsy
wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiAtSW5maW5pdHkg
LSBlbmdpbmVlcmluZzogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzTCuywgwqsywrspIHRv
IGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRUb1Bh
cnRzL2VuZ2luZWVyaW5nLXNjaWVudGlmaWMtemgtVFcuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IC1JbmZpbml0eSAtIGVuZ2luZWVyaW5nOiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrNMK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IC1JbmZpbml0eSAtIGVuZ2luZWVyaW5nOiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrNMK7
LCDCqzLCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvcHJvdG90eXBl
L2Zvcm1hdFRvUGFydHMvc2lnbkRpc3BsYXktY3VycmVuY3ktZGUtREUuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IHVuZGVmaW5lZDogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzbC
uywgwqs1wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiB1bmRl
ZmluZWQ6IGxlbmd0aCBFeHBlY3RlZCBTYW1lVmFsdWUowqs2wrssIMKrNcK7KSB0byBiZSB0cnVl
JwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5cGUvZm9ybWF0VG9QYXJ0cy9zaWdu
RGlzcGxheS1jdXJyZW5jeS1lbi1VUy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogdW5k
ZWZpbmVkOiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrNsK7LCDCqzTCuykgdG8gYmUgdHJ1
ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHVuZGVmaW5lZDogbGVuZ3RoIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzbCuywgwqs0wrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVt
YmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRUb1BhcnRzL3NpZ25EaXNwbGF5LWN1cnJlbmN5LWph
LUpQLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiB1bmRlZmluZWQ6IGxlbmd0aCBFeHBl
Y3RlZCBTYW1lVmFsdWUowqs2wrssIMKrNMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogdW5kZWZpbmVkOiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrNsK7
LCDCqzTCuykgdG8gYmUgdHJ1ZScKLXRlc3QvaW50bDQwMi9OdW1iZXJGb3JtYXQvcHJvdG90eXBl
L2Zvcm1hdFRvUGFydHMvc2lnbkRpc3BsYXktY3VycmVuY3kta28tS1IuanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IHVuZGVmaW5lZDogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzbC
uywgwqs0wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiB1bmRl
ZmluZWQ6IGxlbmd0aCBFeHBlY3RlZCBTYW1lVmFsdWUowqs2wrssIMKrNMK7KSB0byBiZSB0cnVl
JwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1hdC9wcm90b3R5cGUvZm9ybWF0VG9QYXJ0cy9zaWdu
RGlzcGxheS1jdXJyZW5jeS16aC1UVy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogdW5k
ZWZpbmVkOiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrNsK7LCDCqzTCuykgdG8gYmUgdHJ1
ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHVuZGVmaW5lZDogbGVuZ3RoIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzbCuywgwqs0wrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVt
YmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRUb1BhcnRzL3NpZ25EaXNwbGF5LWRlLURFLmpzOgot
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4
cGVjdGVkIFNhbWVWYWx1ZSjCqzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCqzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9y
bWF0L3Byb3RvdHlwZS9mb3JtYXRUb1BhcnRzL3NpZ25EaXNwbGF5LWVuLVVTLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVk
IFNhbWVWYWx1ZSjCqzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3By
b3RvdHlwZS9mb3JtYXRUb1BhcnRzL3NpZ25EaXNwbGF5LWphLUpQLmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVW
YWx1ZSjCqzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzLC
uywgwqsxwrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlw
ZS9mb3JtYXRUb1BhcnRzL3NpZ25EaXNwbGF5LWtvLUtSLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjC
qzLCuywgwqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiAt
MC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzLCuywgwqsx
wrspIHRvIGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3Jt
YXRUb1BhcnRzL3NpZ25EaXNwbGF5LXpoLVRXLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiAtMC4wMDAxIChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzLCuywg
wqsxwrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiAtMC4wMDAx
IChleGNlcHRaZXJvKTogbGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzLCuywgwqsxwrspIHRv
IGJlIHRydWUnCi10ZXN0L2ludGw0MDIvTnVtYmVyRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXRUb1Bh
cnRzL3VuaXQtamEtSlAuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHVuZGVmaW5lZDog
bGVuZ3RoIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzTCuywgwqs2wrspIHRvIGJlIHRydWUnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiB1bmRlZmluZWQ6IGxlbmd0aCBFeHBlY3RlZCBTYW1l
VmFsdWUowqs0wrssIMKrNsK7KSB0byBiZSB0cnVlJwotdGVzdC9pbnRsNDAyL051bWJlckZvcm1h
dC9wcm90b3R5cGUvZm9ybWF0VG9QYXJ0cy91bml0LXpoLVRXLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiB1bmRlZmluZWQ6IGxlbmd0aCBFeHBlY3RlZCBTYW1lVmFsdWUowqszwrssIMKr
NMK7KSB0byBiZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogdW5kZWZpbmVk
OiBsZW5ndGggRXhwZWN0ZWQgU2FtZVZhbHVlKMKrM8K7LCDCqzTCuykgdG8gYmUgdHJ1ZScKLXRl
c3QvaW50bDQwMi9SZWxhdGl2ZVRpbWVGb3JtYXQvY29uc3RydWN0b3IvY29uc3RydWN0b3IvbG9j
YWxlcy12YWxpZC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogR3JhbmRmYXRoZXJlZCBF
eHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBHcmFuZGZhdGhlcmVk
IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKLXRlc3QvaW50bDQwMi9TZWdtZW50ZXIvY29uc3RydWN0b3IvY29uc3Ry
dWN0b3IvbG9jYWxlcy12YWxpZC5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogR3JhbmRm
YXRoZXJlZCBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBHcmFu
ZGZhdGhlcmVkIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2Vw
dGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvaW50bDQwMi9sYW5ndWFnZS10YWdzLWludmFs
aWQuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEludmFsaWQgbGFuZ3VhZ2UgdGFnIG5v
LW55biB3YXMgbm90IHJlamVjdGVkLiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBDb2xsYXRv
ci4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogSW52YWxpZCBsYW5ndWFnZSB0YWcg
bm8tbnluIHdhcyBub3QgcmVqZWN0ZWQuIEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIENvbGxh
dG9yLiknCiB0ZXN0L2xhbmd1YWdlL2FyZ3VtZW50cy1vYmplY3QvbWFwcGVkL25vbmNvbmZpZ3Vy
YWJsZS1ub25lbnVtZXJhYmxlLW5vbndyaXRhYmxlLWRlc2NyaXB0b3JzLXNldC1ieS1hcmd1bWVu
dHMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIG9ialswXSB0byBoYXZl
IGVudW1lcmFibGU6ZmFsc2UuJwogdGVzdC9sYW5ndWFnZS9hcmd1bWVudHMtb2JqZWN0L21hcHBl
ZC9ub25jb25maWd1cmFibGUtbm9uZW51bWVyYWJsZS1ub253cml0YWJsZS1kZXNjcmlwdG9ycy1z
ZXQtYnktcGFyYW0uanM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>