<?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>202582</bug_id>
          
          <creation_ts>2019-10-04 06:24:47 -0700</creation_ts>
          <short_desc>Update Array.prototype.sort to be consistent with tightened spec</short_desc>
          <delta_ts>2020-09-24 20:26:25 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=216955</see_also>
          <bug_file_loc>https://github.com/tc39/ecma262/pull/1585</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>ljharb</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mathias</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576834</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-10-04 06:24:47 -0700</bug_when>
    <thetext>https://github.com/tc39/ecma262/pull/1585 Makes a couple of changes to the JS spec. We should figure of if these are compatible and if they have any negative perf impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680363</commentid>
    <comment_count>1</comment_count>
      <attachid>406610</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-14 11:05:20 -0700</bug_when>
    <thetext>Created attachment 406610
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686888</commentid>
    <comment_count>2</comment_count>
      <attachid>408305</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-08 20:16:25 -0700</bug_when>
    <thetext>Created attachment 408305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686889</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-08 20:17:27 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #2)
&gt; Created attachment 408305 [details]
&gt; Patch

--outer 50:

                                                  r266703                    patch

array-prototype-sort-large-array-comparator    42.5801+-0.9797     ?     43.6993+-1.8978        ? might be 1.0263x slower
array-prototype-sort-medium-array-comparator  133.5314+-1.1700     ?    133.7426+-4.0513        ?
array-prototype-sort-small-array-comparator    52.4552+-0.8312     ^     45.2888+-0.8978        ^ definitely 1.1582x faster

array-prototype-sort-large-array               75.0851+-1.2930     ^     66.5084+-1.1930        ^ definitely 1.1290x faster
array-prototype-sort-medium-array             262.5951+-4.4579     ^    200.2939+-3.7561        ^ definitely 1.3110x faster
array-prototype-sort-small-array               86.0947+-1.4513     ^     70.4338+-1.3429        ^ definitely 1.2223x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686997</commentid>
    <comment_count>4</comment_count>
      <attachid>408329</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-09 09:26:47 -0700</bug_when>
    <thetext>Created attachment 408329
Patch

Adjust a stress test and expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687070</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-09-09 11:28:29 -0700</bug_when>
    <thetext>Can you try test patch against Dromaeo? My memory is that JQuery performance is very sensitive to sort order because JQuery sorts DOM nodes in every API that returns DOM nodes (e.g. the $ API).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687624</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-10 18:22:12 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Can you try test patch against Dromaeo? My memory is that JQuery performance
&gt; is very sensitive to sort order because JQuery sorts DOM nodes in every API
&gt; that returns DOM nodes (e.g. the $ API).

I appreciate your insight: even the latest jQuery, judging by its source code, performs sorting based on Node::compareDocumentPosition().


dromaeo-jslib, 10 samples, runs/s:

                            r266894       patch

DOM Modification (jQuery)     4794         4734
DOM Traversal (jQuery)         613          618
Total (jQuery + Prototype)    1702         1712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687812</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-09-11 14:38:32 -0700</bug_when>
    <thetext>Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688002</commentid>
    <comment_count>8</comment_count>
      <attachid>408329</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 15:27:23 -0700</bug_when>
    <thetext>Comment on attachment 408329
Patch

Test failing is:

regress-157652.js.mozilla-llint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688003</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 15:31:56 -0700</bug_when>
    <thetext>Since sorting based on compareDocumentPosition is so inefficient, I wonder if we could replace it with an efficient implementation. Something like: Find a common ancestor, put all the nodes to be sorted into a map, then do a single tree walk from the common ancestor, pulling the nodes out of the map in order. This could be implemented as a public DOM API for explicit use, and we could also do the additional work to detect cases where we can safely optimize by replacing with a call to that DOM API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688442</commentid>
    <comment_count>10</comment_count>
      <attachid>408753</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-14 15:35:56 -0700</bug_when>
    <thetext>Created attachment 408753
Patch

Adjust Mozilla regress test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688500</commentid>
    <comment_count>11</comment_count>
      <attachid>408753</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-14 17:30:21 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

I’m probably not the right reviewer for this; back when I did work on our sorting it was written in C++ and wrong in a lot of ways!

When testing a user land comparator, you chose the &quot;numeric comparison&quot; one, one that we may choose to do special optimizations for. I would want a test that used an unusual comparator that we’re highly unlikely to ever optimize with a special code path, like maybe one that reverses the characters in a string?

(Looking at these tests it makes me wonder if we will ever find we want to do constant folding on sort; just a random thought.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689011</commentid>
    <comment_count>12</comment_count>
      <attachid>408753</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-15 23:44:53 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

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

r=me with comments.

&gt; Source/JavaScriptCore/ChangeLog:33
&gt; +        Optimization #1: replace char-by-char comparison loop with &gt; operator, aligning
&gt; +        JSC with V8 and SpiderMonkey. This semantically equivalent change alone is a ~15%
&gt; +        progression for string sort.

Lol, nice.

&gt; Source/JavaScriptCore/ChangeLog:46
&gt; +        Optimization #4: always return sorted array instead of copying, even if it&apos;s the buffer.
&gt; +        Also, create the buffer with correct length.

Nice.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:326
&gt; +        return aString &gt; bString ? 1 : -1;

Nice.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:358
&gt; +            @appendMemcpy(receiver, sorted, 0);

Let&apos;s check the receiver is JSArray since @appendMemcpy only accepts JSArrays. So, receiver and sorted must be JSArray. While sorted is always JSArray, receiver is not (user can call Array#sort with non arrays). @isJSArray(receiver) is required.
And I think `@assert(@isJSArray(sorted))` here would be nice.
Can you add a test exercising this case?

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:383
&gt; +                    right++;

Use `++right` for consistency since we are not using post-increment feature here.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:391
&gt; +                    right++;

Ditto.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:397
&gt; +            left++;

Ditto.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:426
&gt; +                dst++;

Ditto.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:437
&gt; +                dst++;

Ditto.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:446
&gt; +                @putByValDirect(buckets, c, [entry]);

Let&apos;s use `[ entry ]` (adding spaces before and after [ ]).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689013</commentid>
    <comment_count>13</comment_count>
      <attachid>408753</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-15 23:51:20 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

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

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:338
&gt; +                    undefinedCount++;

Ditto.

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:342
&gt; +                    compactedIndex++;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689015</commentid>
    <comment_count>14</comment_count>
      <attachid>408753</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-15 23:55:40 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

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

&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:335
&gt; +            if (i in receiver) {

One behavior change here is that `I in receiver` can return true when Array.prototype[I] etc. is defined while own property is not defined.
Is it aligned to the behavior of the other engines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689043</commentid>
    <comment_count>15</comment_count>
      <attachid>408753</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-16 01:33:07 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

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

&gt;&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:335
&gt;&gt; +            if (i in receiver) {
&gt; 
&gt; One behavior change here is that `I in receiver` can return true when Array.prototype[I] etc. is defined while own property is not defined.
&gt; Is it aligned to the behavior of the other engines?

V8 is checking own property, while SpiderMonkey is checking via `in`. Possibly either is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690790</commentid>
    <comment_count>16</comment_count>
      <attachid>408753</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-09-22 11:41:37 -0700</bug_when>
    <thetext>Comment on attachment 408753
Patch

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

r=me too with some more comments.

&gt;&gt; Source/JavaScriptCore/ChangeLog:33
&gt;&gt; +        progression for string sort.
&gt; 
&gt; Lol, nice.

Oof, lol

&gt;&gt;&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:335
&gt;&gt;&gt; +            if (i in receiver) {
&gt;&gt; 
&gt;&gt; One behavior change here is that `I in receiver` can return true when Array.prototype[I] etc. is defined while own property is not defined.
&gt;&gt; Is it aligned to the behavior of the other engines?
&gt; 
&gt; V8 is checking own property, while SpiderMonkey is checking via `in`. Possibly either is OK.

It seems that the new spec uses `HasProperty`, which is the same as `in`.

&gt;&gt; Source/JavaScriptCore/builtins/ArrayPrototype.js:358
&gt;&gt; +            @appendMemcpy(receiver, sorted, 0);
&gt; 
&gt; Let&apos;s check the receiver is JSArray since @appendMemcpy only accepts JSArrays. So, receiver and sorted must be JSArray. While sorted is always JSArray, receiver is not (user can call Array#sort with non arrays). @isJSArray(receiver) is required.
&gt; And I think `@assert(@isJSArray(sorted))` here would be nice.
&gt; Can you add a test exercising this case?

Ditto on the isJSArray check. Also, did you confirm that this is faster if the array contains non-numbers? @appendMemcpy should be fast in almost all cases (except if there are accessors but that&apos;s not worth worrying about). If it&apos;s not maybe we should see why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690880</commentid>
    <comment_count>17</comment_count>
      <attachid>409408</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-22 15:22:07 -0700</bug_when>
    <thetext>Created attachment 409408
Patch

Use pre-increment, add @isJSArray check &amp; assert, and add spaces to array literals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690908</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-22 15:50:20 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #16)
&gt; &gt; Let&apos;s check the receiver is JSArray since @appendMemcpy only accepts JSArrays. So, receiver and sorted must be JSArray. While sorted is always JSArray, receiver is not (user can call Array#sort with non arrays). @isJSArray(receiver) is required.
&gt; &gt; And I think `@assert(@isJSArray(sorted))` here would be nice.
&gt; &gt; Can you add a test exercising this case?
&gt; 
&gt; Ditto on the isJSArray check.

I&apos;ve added the check, but couldn&apos;t come up with a test that crashes the previous patch.
Although @appendMemcpy casts `receiver` to JSArray, moveElements() path is taken w/o an error.

This patch is adding LayoutTests/js/dom/script-tests/array-sort-proxy.js, which calls sort() on a Proxy.
Also, there are a few tests with JSFinalObject receiver:
  test262/test/built-ins/Array/prototype/sort/
    S15.4.4.11_A3_T1.js
    S15.4.4.11_A3_T2.js
    S15.4.4.11_A4_T3.js
    S15.4.4.11_A6_T2.js

&gt; Also, did you confirm that this is faster if the array contains non-numbers?
&gt; @appendMemcpy should be fast in almost all cases (except if there are accessors
&gt; but that&apos;s not worth worrying about). If it&apos;s not maybe we should see why?

I can confirm it is faster if the array contains 1-char strings.
@appendMemcpy is indeed fast (unless ArrayWithUndecided gets converted).
It would be nice to drop this &quot;heuristic&quot;. Maybe JS to C++ call is slowing things down?

&gt; &gt; V8 is checking own property, while SpiderMonkey is checking via `in`. Possibly either is OK.
&gt; 
&gt; It seems that the new spec uses `HasProperty`, which is the same as `in`.

I believe it is for consistency with other pre-harmony Array.prototype methods like forEach().
It is a nice find, I will check the tests and file test262 issue to make sure it&apos;s well-covered.

(In reply to Yusuke Suzuki from comment #12)
&gt; Use `++right` for consistency since we are not using post-increment feature
&gt; here.

&gt; Let&apos;s use `[ entry ]` (adding spaces before and after [ ]).

We may consider using ESLint: it provides rules to enforce spacing and disallow `==` out-of-box, while being easily pluggable.
It&apos;s parser might need a small tweak to handle @intrinsics though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691360</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 19:46:46 -0700</bug_when>
    <thetext>Committed r267514: &lt;https://trac.webkit.org/changeset/267514&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409408.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691361</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 19:47:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/69475072&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406610</attachid>
            <date>2020-08-14 11:05:20 -0700</date>
            <delta_ts>2020-09-08 20:16:22 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-202582-20200814110519.patch</filename>
            <type>text/plain</type>
            <size>9881</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YjA4YmQ4NGFiOThlMWNhNDk5ZDQ3YjAzYTc5ZjM4Mzc1MzgxYWQ5Li45ZTRlNDExZmZkY2VhODg2
OWYyNTYzMDk2YjgzNjIwM2NhZjVkODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMC0wOC0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJvdG90eXBlLnNvcnQgdG8gYmUgY29uc2lz
dGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBWZXJ5IHJvdWdoIHN0YXJ0IHRvIGZpeGluZyBzb3J0LgorCisgICAg
ICAgICogYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanM6CisgICAgICAgIChzb3J0LmNvbXBhY3RT
cGFyc2UpOgorICAgICAgICAoc29ydC5jb21wYWN0U2xvdyk6CisgICAgICAgIChzb3J0LmNvbXBh
Y3QpOgorICAgICAgICAoc29ydC5jb21taXQpOgorICAgICAgICAoc29ydC5tZXJnZSk6CisgICAg
ICAgIChzb3J0Lm1lcmdlU29ydCk6CisgICAgICAgIChzb3J0LmJ1Y2tldFNvcnQpOgorICAgICAg
ICAoc29ydC5jb21wYXJhdG9yU29ydCk6CisgICAgICAgIChzb3J0LnN0cmluZ1NvcnQpOgorICAg
ICAgICAoc29ydCk6CisKIDIwMjAtMDctMjEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IEZpbmFsaXphdGlvblJlZ2lzdHJ5IEdDIGZpbmFsaXpl
ciBpbnRlcmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQ
cm90b3R5cGUuanMKaW5kZXggYmI3ZTFjNGQ0MDcwZGQ1NmE1NTUzYmNmOTQyMzFmYWVkYWQ3NDg1
Yy4uNWZjYmU1YzE2OGI5NDM4ZGQ3YjllZThhNmNiYWYxN2VhNDI2MTc2MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwpAQCAtMzEwLDYg
KzMxMCwxMCBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiB7CiAgICAgInVzZSBzdHJpY3Qi
OwogCisgICAgdmFyIHZhbHVlQ291bnQgPSAwOworICAgIHZhciBob2xlQ291bnQgPSAwOworICAg
IHZhciB1bmRlZmluZWRDb3VudCA9IDA7CisKICAgICBmdW5jdGlvbiBtaW4oYSwgYikKICAgICB7
CiAgICAgICAgIHJldHVybiBhIDwgYiA/IGEgOiBiOwpAQCAtMzM3LDQ5ICszNDEsNDYgQEAgZnVu
Y3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gYUxlbmd0aCAtIGJMZW5ndGg7
CiAgICAgfQogCi0gICAgLy8gTW92ZSB1bmRlZmluZWRzIGFuZCBob2xlcyB0byB0aGUgZW5kIG9m
IGEgc3BhcnNlIGFycmF5LiBSZXN1bHQgaXMgW3ZhbHVlcy4uLiwgdW5kZWZpbmVkcy4uLiwgaG9s
ZXMuLi5dLgotICAgIGZ1bmN0aW9uIGNvbXBhY3RTcGFyc2UoYXJyYXksIGRzdCwgc3JjLCBsZW5n
dGgpCisgICAgZnVuY3Rpb24gY29tcGFjdFNwYXJzZShhcnJheSwgcmVzdWx0LCBkc3QsIHNyYywg
bGVuZ3RoKQogICAgIHsKLSAgICAgICAgdmFyIHZhbHVlcyA9IFsgXTsKICAgICAgICAgdmFyIHNl
ZW4gPSB7IH07Ci0gICAgICAgIHZhciB2YWx1ZUNvdW50ID0gMDsKLSAgICAgICAgdmFyIHVuZGVm
aW5lZENvdW50ID0gMDsKIAogICAgICAgICAvLyBDbGVhbiB1cCBhZnRlciB0aGUgaW4tcHJvZ3Jl
c3Mgbm9uLXNwYXJzZSBjb21wYWN0aW9uIHRoYXQgZmFpbGVkLgotICAgICAgICBmb3IgKHZhciBp
ID0gZHN0OyBpIDwgc3JjOyArK2kpCi0gICAgICAgICAgICBkZWxldGUgYXJyYXlbaV07CisgICAg
ICAgIC8vIGZvciAodmFyIGkgPSBkc3Q7IGkgPCBzcmM7ICsraSkKKyAgICAgICAgLy8gICAgIGRl
bGV0ZSBhcnJheVtpXTsKIAogICAgICAgICBmb3IgKHZhciBvYmplY3QgPSBhcnJheTsgb2JqZWN0
OyBvYmplY3QgPSBAT2JqZWN0LkBnZXRQcm90b3R5cGVPZihvYmplY3QpKSB7CiAgICAgICAgICAg
ICB2YXIgcHJvcGVydHlOYW1lcyA9IEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMob2JqZWN0
KTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHByb3BlcnR5TmFtZXNbaV07Cisg
ICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gQGdldEJ5VmFsRGlyZWN0KHByb3BlcnR5TmFtZXMs
IGkpOwogICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCkgeyAvLyBFeGNsdWRlIG5v
bi1udW1lcmljIHByb3BlcnRpZXMgYW5kIHByb3BlcnRpZXMgcGFzdCBsZW5ndGguCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChzZWVuW2luZGV4XSkgLy8gRXhjbHVkZSBkdXBsaWNhdGVzLgorICAg
ICAgICAgICAgICAgICAgICBpZiAoQGdldEJ5VmFsRGlyZWN0KHNlZW4sIGluZGV4KSkgLy8gRXhj
bHVkZSBkdXBsaWNhdGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAgICAgICAgIHNlZW5baW5kZXhdID0gMTsKKyAgICAgICAgICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KHNlZW4sIGluZGV4LCAxKTsKIAogICAgICAgICAgICAgICAgICAgICB2YXIg
dmFsdWUgPSBhcnJheVtpbmRleF07Ci0gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBhcnJheVtp
bmRleF07CisgICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBhcnJheVtpbmRleF07CiAKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBAdW5kZWZpbmVkKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICArK3VuZGVmaW5lZENvdW50OwogICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBh
cnJheVt2YWx1ZUNvdW50KytdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEBwdXRCeVZh
bERpcmVjdChyZXN1bHQsIHZhbHVlQ291bnQrKywgdmFsdWUpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGZvciAodmFyIGkgPSB2YWx1ZUNv
dW50OyBpIDwgdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyArK2kpCi0gICAgICAgICAgICBh
cnJheVtpXSA9IEB1bmRlZmluZWQ7CisgICAgICAgIC8vIGZvciAodmFyIGkgPSB2YWx1ZUNvdW50
OyBpIDwgdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyArK2kpCisgICAgICAgIC8vICAgICBh
cnJheVtpXSA9IEB1bmRlZmluZWQ7CiAKLSAgICAgICAgcmV0dXJuIHZhbHVlQ291bnQ7CisgICAg
ICAgIGhvbGVDb3VudCA9IGxlbmd0aCAtIHZhbHVlQ291bnQgLSB1bmRlZmluZWRDb3VudDsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBjb21wYWN0U2xvdyhh
cnJheSwgbGVuZ3RoKQorICAgIGZ1bmN0aW9uIGNvbXBhY3RTbG93KGFycmF5LCByZXN1bHQsIGks
IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHZhciBob2xlQ291bnQgPSAwOworICAgICAgICBob2xl
Q291bnQgPSAwOwogCiAgICAgICAgIHZhciBkc3QgPSAwOwogICAgICAgICB2YXIgc3JjID0gMDsK
QEAgLTM4OCwzNyArMzg5LDU0IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAg
ICAgICAgICArK2hvbGVDb3VudDsKICAgICAgICAgICAgICAgICBpZiAoaG9sZUNvdW50IDwgMjU2
KQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
Y29tcGFjdFNwYXJzZShhcnJheSwgZHN0LCBzcmMsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbXBhY3RTcGFyc2UoYXJyYXksIHJlc3VsdCwgZHN0LCBzcmMsIGxlbmd0aCk7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W3NyY107CiAgICAg
ICAgICAgICBpZiAodmFsdWUgPT09IEB1bmRlZmluZWQpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIGFycmF5W2RzdCsrXSA9IHZhbHVlOworICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KHJlc3VsdCwgZHN0KyssIHZhbHVlKTsKICAgICAgICAgfQogCi0gICAgICAg
IHZhciB2YWx1ZUNvdW50ID0gZHN0OwotICAgICAgICB2YXIgdW5kZWZpbmVkQ291bnQgPSBsZW5n
dGggLSB2YWx1ZUNvdW50IC0gaG9sZUNvdW50OworICAgICAgICB2YWx1ZUNvdW50ID0gZHN0Owor
ICAgICAgICB1bmRlZmluZWRDb3VudCA9IGxlbmd0aCAtIHZhbHVlQ291bnQgLSBob2xlQ291bnQ7
CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5k
ZWZpbmVkQ291bnQ7ICsraSkKLSAgICAgICAgICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKKyAg
ICAgICAgLy8gZm9yICh2YXIgaSA9IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5kZWZp
bmVkQ291bnQ7ICsraSkKKyAgICAgICAgLy8gICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKIAot
ICAgICAgICBmb3IgKHZhciBpID0gdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyBpIDwgbGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICBkZWxldGUgYXJyYXlbaV07CisgICAgICAgIC8vIGZvciAo
dmFyIGkgPSB2YWx1ZUNvdW50ICsgdW5kZWZpbmVkQ291bnQ7IGkgPCBsZW5ndGg7ICsraSkKKyAg
ICAgICAgLy8gICAgIGRlbGV0ZSBhcnJheVtpXTsKIAotICAgICAgICByZXR1cm4gdmFsdWVDb3Vu
dDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICAvLyBNb3ZlIHVuZGVmaW5l
ZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYW4gYXJyYXkuIFJlc3VsdCBpcyBbdmFsdWVzLi4u
LCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCisgICAgLy8gTW92ZSBhbmQgY29weSB1bmRlZmlu
ZWRzIGFuZCBob2xlcyB0byB0aGUgZW5kIG9mIGFuIGFycmF5LiByZXR1cm5zIFt2YWx1ZXMuLi4s
IHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXSBhbmQgc2V0cyAuCiAgICAgZnVuY3Rpb24gY29tcGFj
dChhcnJheSwgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJh
eS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGFycmF5W2ldID09PSBAdW5kZWZpbmVk
KQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKTsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IEBuZXdBcnJheVdpdGhTaXplKGxlbmd0aCk7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBpdGVtID0g
YXJyYXlbaV07CisgICAgICAgICAgICBpZiAoaXRlbSA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY29tcGFjdFNsb3coYXJyYXksIHJlc3VsdCwgaSwgbGVuZ3RoKTsKKyAg
ICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGksIGl0ZW0pOwogICAgICAgICB9CiAK
LSAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgdmFsdWVDb3VudCA9IGxlbmd0aDsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjb21taXQoc3JjLCBk
c3QpCisgICAgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBtZW1jcHkuCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVDb3VudDsgKytpKQorICAgICAgICAgICAg
ZHN0W2ldID0gc3JjW2ldOworCisgICAgICAgIGZvciAoOyBpIDwgdW5kZWZpbmVkQ291bnQ7ICsr
aSkKKyAgICAgICAgICAgIGRzdFtpXSA9IEB1bmRlZmluZWQ7CisKKyAgICAgICAgZm9yICg7IGkg
PCBob2xlQ291bnQ7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSBkc3RbaV07CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBzcmMsIHNyY0luZGV4LCBzcmNFbmQsIHdpZHRoLCBjb21w
YXJhdG9yKQpAQCAtNDI5LDIxICs0NDcsMjYgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQog
ICAgICAgICB2YXIgcmlnaHRFbmQgPSBtaW4ocmlnaHQgKyB3aWR0aCwgc3JjRW5kKTsKIAogICAg
ICAgICBmb3IgKHZhciBkc3RJbmRleCA9IGxlZnQ7IGRzdEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0
SW5kZXgpIHsKKyAgICAgICAgICAgIHZhciByaWdodFZhbHVlID0gQGdldEJ5VmFsRGlyZWN0KHNy
YywgcmlnaHQpOworICAgICAgICAgICAgdmFyIGxlZnRWYWx1ZSA9IEBnZXRCeVZhbERpcmVjdChz
cmMsIGxlZnQpOwogICAgICAgICAgICAgaWYgKHJpZ2h0IDwgcmlnaHRFbmQpIHsKICAgICAgICAg
ICAgICAgICBpZiAobGVmdCA+PSBsZWZ0RW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRzdFtk
c3RJbmRleF0gPSBzcmNbcmlnaHQrK107CisgICAgICAgICAgICAgICAgICAgIEBwdXRCeVZhbERp
cmVjdChkc3QsIGRzdEluZGV4LCByaWdodFZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgcmln
aHQrKzsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQog
Ci0gICAgICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJhdG9yKHNyY1ty
aWdodF0sIHNyY1tsZWZ0XSk7CisgICAgICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQg
PSBjb21wYXJhdG9yKHJpZ2h0VmFsdWUsIGxlZnRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYg
KCh0eXBlb2YgY29tcGFyaXNvblJlc3VsdCA9PT0gImJvb2xlYW4iICYmICFjb21wYXJpc29uUmVz
dWx0KSB8fCBjb21wYXJpc29uUmVzdWx0IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBkc3Rb
ZHN0SW5kZXhdID0gc3JjW3JpZ2h0KytdOworICAgICAgICAgICAgICAgICAgICBAcHV0QnlWYWxE
aXJlY3QoZHN0LCBkc3RJbmRleCwgcmlnaHRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJp
Z2h0Kys7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW2xlZnQr
K107CisgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgbGVmdFZhbHVl
KTsKKyAgICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDY1LDcgKzQ4
OCw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKIAogICAgICAgICBpZiAoc3JjICE9IGFy
cmF5KSB7CiAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgdmFsdWVDb3VudDsgaSsrKQot
ICAgICAgICAgICAgICAgIGFycmF5W2ldID0gc3JjW2ldOworICAgICAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChhcnJheSwgaSwgQGdldEJ5VmFsRGlyZWN0KHNyYywgaSkpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC00NzQsNyArNDk3LDcgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQog
ICAgICAgICBpZiAoYnVja2V0Lmxlbmd0aCA8IDMyIHx8IGRlcHRoID4gMzIpIHsKICAgICAgICAg
ICAgIG1lcmdlU29ydChidWNrZXQsIGJ1Y2tldC5sZW5ndGgsIHN0cmluZ0NvbXBhcmF0b3IpOwog
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWNrZXQubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICAgICAgYXJyYXlbZHN0KytdID0gYnVja2V0W2ldLnZhbHVlOworICAgICAgICAgICAg
ICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgZHN0KyssIGJ1Y2tldFtpXS52YWx1ZSk7CiAgICAg
ICAgICAgICByZXR1cm4gZHN0OwogICAgICAgICB9CiAKQEAgLTQ4MywxOCArNTA2LDIxIEBAIGZ1
bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgICAgIHZhciBlbnRyeSA9IGJ1Y2tldFtp
XTsKICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBlbnRyeS5zdHJpbmc7CiAgICAgICAgICAgICBp
ZiAoc3RyaW5nLmxlbmd0aCA9PSBkZXB0aCkgewotICAgICAgICAgICAgICAgIGFycmF5W2RzdCsr
XSA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIEBwdXREaXJlY3RCeVZhbChhcnJheSwg
ZHN0KyssIGVudHJ5LnZhbHVlKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgdmFyIGMgPSBzdHJpbmcuQGNoYXJDb2RlQXQoZGVwdGgpOwot
ICAgICAgICAgICAgaWYgKCFidWNrZXRzW2NdKQotICAgICAgICAgICAgICAgIGJ1Y2tldHNbY10g
PSBbIF07Ci0gICAgICAgICAgICBidWNrZXRzW2NdW2J1Y2tldHNbY10ubGVuZ3RoXSA9IGVudHJ5
OworICAgICAgICAgICAgdmFyIGNCdWNrZXQgPSBAZ2V0QnlWYWxEaXJlY3QoYnVja2V0cywgYyk7
CisgICAgICAgICAgICBpZiAoIWNCdWNrZXQpIHsKKyAgICAgICAgICAgICAgICBjQnVja2V0ID0g
WyBdOworICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChidWNrZXRzLCBjLCBjQnVja2V0
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChjQnVja2V0LCBj
QnVja2V0Lmxlbmd0aCwgZW50cnkpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBidWNrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIWJ1Y2tldHNb
aV0pCisgICAgICAgICAgICBpZiAoIUBnZXRCeVZhbERpcmVjdChidWNrZXRzLCBpKSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGRzdCA9IGJ1Y2tldFNvcnQoYXJyYXks
IGRzdCwgYnVja2V0c1tpXSwgZGVwdGggKyAxKTsKICAgICAgICAgfQpAQCAtNTA0LDE5ICs1MzAs
MjAgQEAgZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogCiAgICAgZnVuY3Rpb24gY29tcGFyYXRv
clNvcnQoYXJyYXksIGxlbmd0aCwgY29tcGFyYXRvcikKICAgICB7Ci0gICAgICAgIHZhciB2YWx1
ZUNvdW50ID0gY29tcGFjdChhcnJheSwgbGVuZ3RoKTsKLSAgICAgICAgbWVyZ2VTb3J0KGFycmF5
LCB2YWx1ZUNvdW50LCBjb21wYXJhdG9yKTsKKyAgICAgICAgdmFyIHRtcEFycmF5ID0gY29tcGFj
dChhcnJheSwgbGVuZ3RoKTsKKyAgICAgICAgbWVyZ2VTb3J0KHRtcEFycmF5LCB2YWx1ZUNvdW50
LCBjb21wYXJhdG9yKTsKKyAgICAgICAgY29tbWl0KHRtcEFycmF5LCBhcnJheSk7CiAgICAgfQog
CiAgICAgZnVuY3Rpb24gc3RyaW5nU29ydChhcnJheSwgbGVuZ3RoKQogICAgIHsKLSAgICAgICAg
dmFyIHZhbHVlQ291bnQgPSBjb21wYWN0KGFycmF5LCBsZW5ndGgpOwotCisgICAgICAgIHZhciB0
bXBBcnJheSA9IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7CiAgICAgICAgIHZhciBzdHJpbmdzID0g
QG5ld0FycmF5V2l0aFNpemUodmFsdWVDb3VudCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdmFsdWVDb3VudDsgKytpKQotICAgICAgICAgICAgc3RyaW5nc1tpXSA9IHsgc3RyaW5nOiBA
dG9TdHJpbmcoYXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0gfTsKKyAgICAgICAgICAgIEBwdXRE
aXJlY3RCeVZhbChzdHJpbmdzLCBpLCB7IHN0cmluZzogQHRvU3RyaW5nKHRtcEFycmF5W2ldKSwg
dmFsdWU6IHRtcEFycmF5W2ldIH0pOwogCiAgICAgICAgIGJ1Y2tldFNvcnQoYXJyYXksIDAsIHN0
cmluZ3MsIDApOworICAgICAgICBjb21taXQodG1wQXJyYXksIGFycmF5KTsKICAgICB9CiAKICAg
ICB2YXIgc29ydEZ1bmN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408305</attachid>
            <date>2020-09-08 20:16:25 -0700</date>
            <delta_ts>2020-09-09 09:26:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202582-20200909061624.patch</filename>
            <type>text/plain</type>
            <size>54526</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjY3NTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI0IEBACisyMDIwLTA5LTA4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJvdG90eXBlLnNvcnQgdG8gYmUg
Y29uc2lzdGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlZCBtaWNyb2JlbmNobWFya3MgdGVzdCByZWNl
aXZlcnMgdGhhdCBhcmUgaGFsZi1zb3J0ZWQ6IDUwJSBvZiB0aGVpcgorICAgICAgICBpdGVtcyBh
bmQgaXRlbSBwYWlycyAodG8gYWNjb21vZGF0ZSBtZXJnZSBzb3J0KSBhcmUgYXQgdGhlIHJpZ2h0
IHBsYWNlLgorCisgICAgICAgIEFycmF5cyBvZiBtdWx0aXBsZSBzaXplcyAoOC8yNC82NCBpdGVt
cykgYXJlIHRlc3RlZCB3aXRoIGJvdGggdXNlcmxhbmQKKyAgICAgICAgYW5kIGRlZmF1bHQgY29t
cGFyYXRvciAodG8gY292ZXIgYnVja2V0IHNvcnQpLgorCisgICAgICAgICogQ2hha3JhQ29yZS90
ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUtanNjOiBGaXggdHlwbyBpbiBlcnJvciBtZXNz
YWdlLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJn
ZS1hcnJheS1jb21wYXJhdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mv
YXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1tZWRpdW0tYXJyYXktY29tcGFyYXRv
ci5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LW1lZGl1bS1hcnJheS5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2Fy
cmF5LXByb3RvdHlwZS1zb3J0LXNtYWxsLWFycmF5LWNvbXBhcmF0b3IuanM6IEFkZGVkLgorICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5q
czogQWRkZWQuCisKIDIwMjAtMDktMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBTcGVjaWFsIHByb3BlcnR5IGNhY2hpbmcgc2hvdWxkIGNoZWNr
IFN0cnVjdHVyZSdzIGNhY2hlYWJpbGl0eQpJbmRleDogSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3Qv
QXJyYXkvYXJyYXlfc29ydC5iYXNlbGluZS1qc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9DaGFr
cmFDb3JlL3Rlc3QvQXJyYXkvYXJyYXlfc29ydC5iYXNlbGluZS1qc2MJKHJldmlzaW9uIDI2Njcw
MykKKysrIEpTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUt
anNjCSh3b3JraW5nIGNvcHkpCkBAIC03LDUgKzcsNSBAQCBmb3Isc2FtcGxlLHNvbWUsc3RyaW5n
cyx0ZXN0aW5nIC0gT3V0cHV0CiAxLDIsMwogMTAKIDEsMS4yLDQsNC44LDEyCi1UeXBlRXJyb3I6
IEFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJzaW9uIGZ1bmN0aW9uIGJl
IGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkCitUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5zb3J0
IHJlcXVpcmVzIHRoZSBjb21wYXJhdG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5k
ZWZpbmVkCiAxLDIsMwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90
eXBlLXNvcnQtbGFyZ2UtYXJyYXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJheS1jb21wYXJh
dG9yLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXBy
b3RvdHlwZS1zb3J0LWxhcmdlLWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw5IEBACit2YXIgY29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIFsKKyAgICAgICAgMCwxLDIsMyw0LDUsNiw3
LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwzMSwzMCwyOSwyOCwyNywyNiwyNSwyNCwyMywyMiwyMSwy
MCwxOSwKKyAgICAgICAgMTgsMTcsMTYsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIs
NDMsNDQsNDUsNDYsNDcsNjMsNjIsNjEsNjAsNTksNTgsNTcsCisgICAgICAgIDU2LDU1LDU0LDUz
LDUyLDUxLDUwLDQ5LDQ4CisgICAgXS5zb3J0KGNvbXBhcmF0b3IpOworfQpJbmRleDogSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQt
bGFyZ2UtYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
YXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3IEBACitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgWworICAgICAg
ICAiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjoiLCI7IiwiPCIsIj0i
LCI+IiwiPyIsIk8iLCJOIiwiTSIsIkwiLCJLIiwiSiIsIkkiLAorICAgICAgICAiSCIsIkciLCJG
IiwiRSIsIkQiLCJDIiwiQiIsIkEiLCJAIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlci
LCJYIiwiWSIsIloiLCJbIiwiXFwiLCJdIiwKKyAgICAgICAgIl4iLCJfIiwibyIsIm4iLCJtIiwi
bCIsImsiLCJqIiwiaSIsImgiLCJnIiwiZiIsImUiLCJkIiwiYyIsImIiLCJhIiwiYCIKKyAgICBd
LnNvcnQoKTsKK30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlw
ZS1zb3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJheS1jb21wYXJh
dG9yLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXBy
b3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNSBAQAordmFyIGNvbXBhcmF0b3IgPSAoYSwgYikgPT4gYSAtIGI7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKKyAgICBbMCwxLDIsMyw0LDUsMTEsMTAsOSw4LDcs
NiwxMiwxMywxNCwxNSwxNiwxNywyMywyMiwyMSwyMCwxOSwxOF0uc29ydChjb21wYXJhdG9yKTsK
K30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1l
ZGl1bS1hcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJh
eS1wcm90b3R5cGUtc29ydC1tZWRpdW0tYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsr
aSkgeworICAgIFsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiTCIsIksiLCJKIiwiSSIsIkgiLCJH
IiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiWCIsIlciLCJWIiwiVSIsIlQiLCJTIl0uc29ydCgp
OworfQpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQt
c21hbGwtYXJyYXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS1jb21wYXJhdG9yLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LXNtYWxsLWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
IEBACit2YXIgY29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTU7ICsraSkgeworICAgIFswLDEsMiwzLDcsNiw1LDRdLnNvcnQoY29tcGFyYXRvcik7
Cit9CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1z
bWFsbC1hcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJh
eS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kp
IHsKKyAgICBbIkEiLCJCIiwiQyIsIkQiLCJIIiwiRyIsIkYiLCJFIl0uc29ydCgpOworfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjY3MDMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIw
MjAtMDktMDggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAg
ICAgIFVwZGF0ZSBBcnJheS5wcm90b3R5cGUuc29ydCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGln
aHRlbmVkIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgc3BlYyBjaGFuZ2UgWzFdIHRoYXQgcmVkdWNl
cyBhbW91bnQgb2YgY2FzZXMgcmVzdWx0aW5nCisgICAgICAgIGluIGFuIGltcGxlbWVudGF0aW9u
LWRlZmluZWQgc29ydCBvcmRlciwgYWxpZ25pbmcgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtl
eS4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHdlIGNvbGxlY3QgYWxsIGV4aXN0aW5nIG5v
bi11bmRlZmluZWQgcmVjZWl2ZXIgZWxlbWVudHMgdG8gYQorICAgICAgICB0ZW1wb3JhcnkgYXJy
YXksIHNvcnQgaXQsIGFuZCB3cml0ZSBiYWNrIHNvcnRlZCBpdGVtcywgZm9sbG93ZWQgYnkgYHVu
ZGVmaW5lZGAKKyAgICAgICAgdmFsdWVzIGFuZCBob2xlcy4KKworICAgICAgICBUaGlzIGNoYW5n
ZSBpcyBwcm92ZW4gdG8gYmUgd2ViLWNvbXBhdGlibGUgKHNoaXBwaW5nIHNpbmNlIENocm9tZSA3
NikgYW5kIG5ldXRyYWwKKyAgICAgICAgb24gcGVhayBtZW1vcnkgY29uc3VtcHRpb24gaW4gdGhl
IHdpbGQuCisKKyAgICAgICAgQWx0aG91Z2ggd2UgY2FuIHVub2JzZXJ2YWJseSBkZXRlY3Qgc3Bh
cnNlIHJlY2VpdmVycywgd2UgY2FuJ3QgYXZvaWQgY3JlYXRpbmcgYQorICAgICAgICB0ZW1wb3Jh
cnkgYXJyYXkgZm9yIGNvbW1vbiBjYXNlIHNpbmNlIHVzZXJsYW5kIGNvbXBhcmF0b3JzIG1heSB0
aHJvdzsgc3RyaW5nCisgICAgICAgIHNvcnRpbmcgd29uJ3QgbWVhc3VyYWJseSBiZW5lZml0IGZy
b20gdGhpcywgb25seSBpbmNyZWFzaW5nIGNvZGUgY29tcGxleGl0eS4KKworICAgICAgICBUaGlz
IHBhdGNoIHVzZXMgQHB1dEJ5VmFsRGlyZWN0IHVubGVzcyB0aGUgc3BlYyByZXF1aXJlcyBbW1Nl
dF1dLCBhdm9pZHMgdXNpbmcKKyAgICAgICAgY2xvc3VyZSB2YXJpYWJsZXMsIGFuZCBhZGRzIGEg
ZmV3IGRyaXZlLWJ5IG9wdGltaXphdGlvbnMsIHJlc3VsdGluZyBpbiB+MjIlCisgICAgICAgIGZh
c3RlciBzdHJpbmcgc29ydGluZyBhbmQgMTMlIHNwZWVkLXVwIGZvciB1c2VybGFuZCBjb21wYXJh
dG9ycy4KKworICAgICAgICBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvcHVs
bC8xNTg1CisKKyAgICAgICAgKiBidWlsdGlucy9BcnJheVByb3RvdHlwZS5qczoKKyAgICAgICAg
KHNvcnQuc3RyaW5nQ29tcGFyYXRvcik6CisgICAgICAgIE9wdGltaXphdGlvbiAjMTogcmVwbGFj
ZSBjaGFyLWJ5LWNoYXIgY29tcGFyaXNvbiBsb29wIHdpdGggPiBvcGVyYXRvciwgYWxpZ25pbmcK
KyAgICAgICAgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleS4gVGhpcyBzZW1hbnRpY2FsbHkg
ZXF1aXZhbGVudCBjaGFuZ2UgYWxvbmUgaXMgYSB+MTUlCisgICAgICAgIHByb2dyZXNzaW9uIGZv
ciBzdHJpbmcgc29ydC4KKworICAgICAgICAoc29ydC5jb21wYWN0KToKKyAgICAgICAgKHNvcnQu
Y29tbWl0KToKKyAgICAgICAgT3B0aW1pemF0aW9uICMyOiBjb3B5IGxhcmdlIG5vbi1udW1lcmlj
IGFycmF5cyB3aXRoIEBhcHBlbmRNZW1jcHkgaW5zdGVhZCBvZiBhIGxvb3AuCisgICAgICAgIFVz
aW5nIEBhcHBlbmRNZW1jcHkgdW5jb25kaXRpb25hbGx5IHJlZ3Jlc3NlcyBwcm92aWRlZCBtaWNy
b2JlbmNobWFya3MgYXMgaXQncyBjb3N0bHkKKyAgICAgICAgdG8gY2FsbCBkdWUgdG8gbWFueSBj
aGVja3MuCisKKyAgICAgICAgKHNvcnQubWVyZ2UpOgorICAgICAgICBPcHRpbWl6YXRpb24gIzM6
IHJlcGxhY2UgYHR5cGVvZmAgY2hlY2sgJiBuZWdhdGlvbiB3aXRoIHN0cmljdCBlcXVhbGl0eS4K
KworICAgICAgICAoc29ydC5tZXJnZVNvcnQpOgorICAgICAgICBPcHRpbWl6YXRpb24gIzQ6IGFs
d2F5cyByZXR1cm4gc29ydGVkIGFycmF5LCBldmVuIGlmIGl0J3MgdGhlIGJ1ZmZlciwgaW5zdGVh
ZCBvZiBjb3B5aW5nLgorICAgICAgICBBbHNvLCBjcmVhdGUgdGhlIGJ1ZmZlciB3aXRoIGNvcnJl
Y3QgbGVuZ3RoLgorCisgICAgICAgIChzb3J0LmJ1Y2tldFNvcnQpOgorICAgICAgICAoc29ydCk6
IEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCisgICAgICAgIChzb3J0LmNvbXBhY3RTcGFyc2Up
OiBEZWxldGVkLgorICAgICAgICAoc29ydC5jb21wYWN0U2xvdyk6IERlbGV0ZWQuCisgICAgICAg
IChzb3J0LmNvbXBhcmF0b3JTb3J0KTogRGVsZXRlZC4KKyAgICAgICAgKHNvcnQuc3RyaW5nU29y
dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IFJlbW92ZSBAT2JqZWN0LkBnZXRQcm90b3R5cGVPZiBhcyBpdCdzIG5vdyB1bnVzZWQgYW5kIHdl
IGhhdmUgQGdldFByb3RvdHlwZU9mIGludHJpbnNpYyBhbnl3YXkuCisKIDIwMjAtMDktMDcgIEpv
b25naHVuIFBhcmsgIDxqaDcxOC5wYXJrQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFJlbW92ZSB0aGUgYnVpbGQgd2FybmluZyBiZWxvdyBzaW5jZSByMjY2NTY3LgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwko
cmV2aXNpb24gMjY2NzAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5
UHJvdG90eXBlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTA1ICszMjAsNTMgQEAgZnVuY3Rp
b24gc29ydChjb21wYXJhdG9yKQogICAgICAgICB2YXIgYVN0cmluZyA9IGEuc3RyaW5nOwogICAg
ICAgICB2YXIgYlN0cmluZyA9IGIuc3RyaW5nOwogCi0gICAgICAgIHZhciBhTGVuZ3RoID0gYVN0
cmluZy5sZW5ndGg7Ci0gICAgICAgIHZhciBiTGVuZ3RoID0gYlN0cmluZy5sZW5ndGg7Ci0gICAg
ICAgIHZhciBsZW5ndGggPSBtaW4oYUxlbmd0aCwgYkxlbmd0aCk7Ci0KLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGFDaGFyQ29kZSA9
IGFTdHJpbmcuQGNoYXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICB2YXIgYkNoYXJDb2RlID0gYlN0
cmluZy5AY2hhckNvZGVBdChpKTsKKyAgICAgICAgaWYgKGFTdHJpbmcgPT09IGJTdHJpbmcpCisg
ICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICAgICAgaWYgKGFDaGFyQ29kZSA9PSBiQ2hh
ckNvZGUpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBh
Q2hhckNvZGUgLSBiQ2hhckNvZGU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYUxlbmd0
aCAtIGJMZW5ndGg7CisgICAgICAgIHJldHVybiBhU3RyaW5nID4gYlN0cmluZyA/IDEgOiAtMTsK
ICAgICB9CiAKLSAgICAvLyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2Yg
YSBzcGFyc2UgYXJyYXkuIFJlc3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xl
cy4uLl0uCi0gICAgZnVuY3Rpb24gY29tcGFjdFNwYXJzZShhcnJheSwgZHN0LCBzcmMsIGxlbmd0
aCkKKyAgICBmdW5jdGlvbiBjb21wYWN0KHJlY2VpdmVyLCByZWNlaXZlckxlbmd0aCwgY29tcGFj
dGVkLCBpc1N0cmluZ1NvcnQpCiAgICAgewotICAgICAgICB2YXIgdmFsdWVzID0gWyBdOwotICAg
ICAgICB2YXIgc2VlbiA9IHsgfTsKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSAwOwogICAgICAg
ICB2YXIgdW5kZWZpbmVkQ291bnQgPSAwOworICAgICAgICB2YXIgY29tcGFjdGVkSW5kZXggPSAw
OwogCi0gICAgICAgIC8vIENsZWFuIHVwIGFmdGVyIHRoZSBpbi1wcm9ncmVzcyBub24tc3BhcnNl
IGNvbXBhY3Rpb24gdGhhdCBmYWlsZWQuCi0gICAgICAgIGZvciAodmFyIGkgPSBkc3Q7IGkgPCBz
cmM7ICsraSkKLSAgICAgICAgICAgIGRlbGV0ZSBhcnJheVtpXTsKLQotICAgICAgICBmb3IgKHZh
ciBvYmplY3QgPSBhcnJheTsgb2JqZWN0OyBvYmplY3QgPSBAT2JqZWN0LkBnZXRQcm90b3R5cGVP
ZihvYmplY3QpKSB7Ci0gICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lcyA9IEBPYmplY3QuQGdl
dE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcHJvcGVydHlOYW1lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBpbmRl
eCA9IHByb3BlcnR5TmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3Ro
KSB7IC8vIEV4Y2x1ZGUgbm9uLW51bWVyaWMgcHJvcGVydGllcyBhbmQgcHJvcGVydGllcyBwYXN0
IGxlbmd0aC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHNlZW5baW5kZXhdKSAvLyBFeGNsdWRl
IGR1cGxpY2F0ZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgICAgICAgICAgc2VlbltpbmRleF0gPSAxOwotCi0gICAgICAgICAgICAgICAgICAgIHZhciB2
YWx1ZSA9IGFycmF5W2luZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFycmF5W2lu
ZGV4XTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IEB1bmRlZmluZWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICsrdW5kZWZpbmVkQ291bnQ7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgICAgIGFycmF5W3ZhbHVlQ291bnQrK10gPSB2YWx1ZTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNlaXZlckxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSBpbiBy
ZWNlaXZlcikgeworICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlY2VpdmVyW2ldOworICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAg
ICAgdW5kZWZpbmVkQ291bnQrKzsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGNvbXBhY3RlZCwgY29tcGFjdGVkSW5kZXgsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgaXNTdHJpbmdTb3J0ID8ge3N0cmluZzogQHRvU3RyaW5nKHZh
bHVlKSwgdmFsdWV9IDogdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBjb21wYWN0ZWRJbmRl
eCsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIGZvciAodmFyIGkgPSB2YWx1ZUNvdW50OyBpIDwgdmFsdWVDb3VudCArIHVuZGVmaW5lZENv
dW50OyArK2kpCi0gICAgICAgICAgICBhcnJheVtpXSA9IEB1bmRlZmluZWQ7Ci0KLSAgICAgICAg
cmV0dXJuIHZhbHVlQ291bnQ7CisgICAgICAgIHJldHVybiB1bmRlZmluZWRDb3VudDsKICAgICB9
CiAKLSAgICBmdW5jdGlvbiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKQorICAgIC8vIE1vdmUg
dW5kZWZpbmVkcyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhbiBhcnJheS4gUmVzdWx0IGlzIFt2
YWx1ZXMuLi4sIHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KKyAgICBmdW5jdGlvbiBjb21taXQo
cmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENvdW50KQogICAgIHsK
LSAgICAgICAgdmFyIGhvbGVDb3VudCA9IDA7Ci0KLSAgICAgICAgdmFyIGRzdCA9IDA7Ci0gICAg
ICAgIHZhciBzcmMgPSAwOwotICAgICAgICBmb3IgKDsgc3JjIDwgbGVuZ3RoOyArK3NyYykgewot
ICAgICAgICAgICAgaWYgKCEoc3JjIGluIGFycmF5KSkgewotICAgICAgICAgICAgICAgICsraG9s
ZUNvdW50OwotICAgICAgICAgICAgICAgIGlmIChob2xlQ291bnQgPCAyNTYpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U3BhcnNl
KGFycmF5LCBkc3QsIHNyYywgbGVuZ3RoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgdmFyIHNv
cnRlZExlbmd0aCA9IHNvcnRlZC5sZW5ndGg7CisgICAgICAgIEBhc3NlcnQoc29ydGVkTGVuZ3Ro
ICsgdW5kZWZpbmVkQ291bnQgPD0gcmVjZWl2ZXJMZW5ndGgpOwogCi0gICAgICAgICAgICB2YXIg
dmFsdWUgPSBhcnJheVtzcmNdOwotICAgICAgICAgICAgaWYgKHZhbHVlID09PSBAdW5kZWZpbmVk
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBhcnJheVtkc3QrK10g
PSB2YWx1ZTsKKyAgICAgICAgdmFyIGkgPSAwOworICAgICAgICBpZiAoc29ydGVkTGVuZ3RoID49
IDY0ICYmIHR5cGVvZiBzb3J0ZWRbMF0gIT09ICJudW1iZXIiKSB7IC8vIGhldXJpc3RpYworICAg
ICAgICAgICAgQGFwcGVuZE1lbWNweShyZWNlaXZlciwgc29ydGVkLCAwKTsKKyAgICAgICAgICAg
IGkgPSBzb3J0ZWRMZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKDsg
aSA8IHNvcnRlZExlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHJlY2VpdmVyW2ldID0gc29y
dGVkW2ldOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSBkc3Q7Ci0gICAg
ICAgIHZhciB1bmRlZmluZWRDb3VudCA9IGxlbmd0aCAtIHZhbHVlQ291bnQgLSBob2xlQ291bnQ7
Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5k
ZWZpbmVkQ291bnQ7ICsraSkKLSAgICAgICAgICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKLQot
ICAgICAgICBmb3IgKHZhciBpID0gdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyBpIDwgbGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICBkZWxldGUgYXJyYXlbaV07CisgICAgICAgIGZvciAoOyBp
IDwgc29ydGVkTGVuZ3RoICsgdW5kZWZpbmVkQ291bnQ7ICsraSkKKyAgICAgICAgICAgIHJlY2Vp
dmVyW2ldID0gQHVuZGVmaW5lZDsKIAotICAgICAgICByZXR1cm4gdmFsdWVDb3VudDsKLSAgICB9
Ci0KLSAgICAvLyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYW4gYXJy
YXkuIFJlc3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCi0gICAg
ZnVuY3Rpb24gY29tcGFjdChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGFycmF5W2ld
ID09PSBAdW5kZWZpbmVkKQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U2xvdyhhcnJh
eSwgbGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAg
IGZvciAoOyBpIDwgcmVjZWl2ZXJMZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSByZWNl
aXZlcltpXTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgs
IHNyY0VuZCwgd2lkdGgsIGNvbXBhcmF0b3IpCkBAIC00MzEsMjYgKzM3OSwyOSBAQCBmdW5jdGlv
biBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAgIGZvciAodmFyIGRzdEluZGV4ID0gbGVmdDsgZHN0
SW5kZXggPCByaWdodEVuZDsgKytkc3RJbmRleCkgewogICAgICAgICAgICAgaWYgKHJpZ2h0IDwg
cmlnaHRFbmQpIHsKICAgICAgICAgICAgICAgICBpZiAobGVmdCA+PSBsZWZ0RW5kKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleF0gPSBzcmNbcmlnaHQrK107CisgICAgICAgICAg
ICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChkc3QsIGRzdEluZGV4LCBzcmNbcmlnaHRdKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmlnaHQrKzsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgyNSBvbiBib29sZWFuIHNwZWNpYWwtY2Fz
aW5nCiAgICAgICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJhdG9yKHNy
Y1tyaWdodF0sIHNyY1tsZWZ0XSk7Ci0gICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgY29tcGFy
aXNvblJlc3VsdCA9PT0gImJvb2xlYW4iICYmICFjb21wYXJpc29uUmVzdWx0KSB8fCBjb21wYXJp
c29uUmVzdWx0IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3Jj
W3JpZ2h0KytdOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJpc29uUmVzdWx0ID09PSBmYWxz
ZSB8fCBjb21wYXJpc29uUmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICBAcHV0QnlW
YWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgc3JjW3JpZ2h0XSk7CisgICAgICAgICAgICAgICAgICAg
IHJpZ2h0Kys7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IH0KLQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW2xl
ZnQrK107CisgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgc3JjW2xl
ZnRdKTsKKyAgICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgfQogICAgIH0KIAotICAgIGZ1bmN0
aW9uIG1lcmdlU29ydChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcikKKyAgICBmdW5jdGlv
biBtZXJnZVNvcnQoYXJyYXksIGNvbXBhcmF0b3IpCiAgICAgewotICAgICAgICB2YXIgYnVmZmVy
ID0gWyBdOwotICAgICAgICBidWZmZXIubGVuZ3RoID0gdmFsdWVDb3VudDsKKyAgICAgICAgdmFy
IHZhbHVlQ291bnQgPSBhcnJheS5sZW5ndGg7CisgICAgICAgIHZhciBidWZmZXIgPSBAbmV3QXJy
YXlXaXRoU2l6ZSh2YWx1ZUNvdW50KTsKIAogICAgICAgICB2YXIgZHN0ID0gYnVmZmVyOwogICAg
ICAgICB2YXIgc3JjID0gYXJyYXk7CkBAIC00NjMsMTggKzQxNCwxNyBAQCBmdW5jdGlvbiBzb3J0
KGNvbXBhcmF0b3IpCiAgICAgICAgICAgICBkc3QgPSB0bXA7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoc3JjICE9IGFycmF5KSB7Ci0gICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgdmFs
dWVDb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIGFycmF5W2ldID0gc3JjW2ldOwotICAgICAg
ICB9CisgICAgICAgIHJldHVybiBzcmM7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYnVja2V0U29y
dChhcnJheSwgZHN0LCBidWNrZXQsIGRlcHRoKQogICAgIHsKICAgICAgICAgaWYgKGJ1Y2tldC5s
ZW5ndGggPCAzMiB8fCBkZXB0aCA+IDMyKSB7Ci0gICAgICAgICAgICBtZXJnZVNvcnQoYnVja2V0
LCBidWNrZXQubGVuZ3RoLCBzdHJpbmdDb21wYXJhdG9yKTsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYnVja2V0Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGFycmF5W2Rz
dCsrXSA9IGJ1Y2tldFtpXS52YWx1ZTsKKyAgICAgICAgICAgIHZhciBzb3J0ZWQgPSBtZXJnZVNv
cnQoYnVja2V0LCBzdHJpbmdDb21wYXJhdG9yKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc29ydGVkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KGFycmF5LCBkc3QsIHNvcnRlZFtpXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgZHN0Kys7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gZHN0OwogICAgICAgICB9CiAKQEAg
LTQ4MywxNCArNDMzLDE3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgICAg
IHZhciBlbnRyeSA9IGJ1Y2tldFtpXTsKICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBlbnRyeS5z
dHJpbmc7CiAgICAgICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PSBkZXB0aCkgewotICAgICAg
ICAgICAgICAgIGFycmF5W2RzdCsrXSA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIEBw
dXRCeVZhbERpcmVjdChhcnJheSwgZHN0LCBlbnRyeS52YWx1ZSk7CisgICAgICAgICAgICAgICAg
ZHN0Kys7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIHZhciBjID0gc3RyaW5nLkBjaGFyQ29kZUF0KGRlcHRoKTsKLSAgICAgICAgICAgIGlm
ICghYnVja2V0c1tjXSkKLSAgICAgICAgICAgICAgICBidWNrZXRzW2NdID0gWyBdOwotICAgICAg
ICAgICAgYnVja2V0c1tjXVtidWNrZXRzW2NdLmxlbmd0aF0gPSBlbnRyeTsKKyAgICAgICAgICAg
IHZhciBjQnVja2V0ID0gYnVja2V0c1tjXTsKKyAgICAgICAgICAgIGlmIChjQnVja2V0KQorICAg
ICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChjQnVja2V0LCBjQnVja2V0Lmxlbmd0aCwgZW50
cnkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChi
dWNrZXRzLCBjLCBbZW50cnldKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYnVja2V0cy5sZW5ndGg7ICsraSkgewpAQCAtNTAyLDQyICs0NTUsMzIgQEAgZnVuY3Rp
b24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gZHN0OwogICAgIH0KIAotICAgIGZ1
bmN0aW9uIGNvbXBhcmF0b3JTb3J0KGFycmF5LCBsZW5ndGgsIGNvbXBhcmF0b3IpCi0gICAgewot
ICAgICAgICB2YXIgdmFsdWVDb3VudCA9IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7Ci0gICAgICAg
IG1lcmdlU29ydChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcik7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gc3RyaW5nU29ydChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgdmFyIHZh
bHVlQ291bnQgPSBjb21wYWN0KGFycmF5LCBsZW5ndGgpOwotCi0gICAgICAgIHZhciBzdHJpbmdz
ID0gQG5ld0FycmF5V2l0aFNpemUodmFsdWVDb3VudCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdmFsdWVDb3VudDsgKytpKQotICAgICAgICAgICAgc3RyaW5nc1tpXSA9IHsgc3RyaW5n
OiBAdG9TdHJpbmcoYXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0gfTsKLQotICAgICAgICBidWNr
ZXRTb3J0KGFycmF5LCAwLCBzdHJpbmdzLCAwKTsKLSAgICB9Ci0KLSAgICB2YXIgc29ydEZ1bmN0
aW9uOwotICAgIGlmIChAaXNDYWxsYWJsZShjb21wYXJhdG9yKSkKLSAgICAgICAgc29ydEZ1bmN0
aW9uID0gY29tcGFyYXRvclNvcnQ7Ci0gICAgZWxzZSBpZiAoY29tcGFyYXRvciA9PT0gQHVuZGVm
aW5lZCkKLSAgICAgICAgc29ydEZ1bmN0aW9uID0gc3RyaW5nU29ydDsKLSAgICBlbHNlCi0gICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhlIGNv
bXBhcnNpb24gZnVuY3Rpb24gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQiKTsKLQotICAgIHZh
ciBhcnJheSA9IEB0b09iamVjdCh0aGlzLCAiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMg
dGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgbGVuZ3Ro
ID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7Ci0KKyAgICB2YXIgaXNTdHJpbmdTb3J0ID0gZmFs
c2U7CisgICAgaWYgKGNvbXBhcmF0b3IgPT09IEB1bmRlZmluZWQpCisgICAgICAgIGlzU3RyaW5n
U29ydCA9IHRydWU7CisgICAgZWxzZSBpZiAoIUBpc0NhbGxhYmxlKGNvbXBhcmF0b3IpKQorICAg
ICAgICBAdGhyb3dUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBj
b21wYXJhdG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkIik7CisKKyAg
ICB2YXIgcmVjZWl2ZXIgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5zb3J0IHJl
cXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAgIHZhciBy
ZWNlaXZlckxlbmd0aCA9IEB0b0xlbmd0aChyZWNlaXZlci5sZW5ndGgpOworICAgIAogICAgIC8v
IEZvciBjb21wYXRpYmlsaXR5IHdpdGggRmlyZWZveCBhbmQgQ2hyb21lLCBkbyBub3RoaW5nIG9i
c2VydmFibGUKICAgICAvLyB0byB0aGUgdGFyZ2V0IGFycmF5IGlmIGl0IGhhcyAwIG9yIDEgc29y
dGFibGUgcHJvcGVydGllcy4KLSAgICBpZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGFy
cmF5OworICAgIGlmIChyZWNlaXZlckxlbmd0aCA8IDIpCisgICAgICAgIHJldHVybiByZWNlaXZl
cjsKIAotICAgIHNvcnRGdW5jdGlvbihhcnJheSwgbGVuZ3RoLCBjb21wYXJhdG9yKTsKLSAgICBy
ZXR1cm4gYXJyYXk7CisgICAgdmFyIGNvbXBhY3RlZCA9IFtdOworICAgIHZhciBzb3J0ZWQgPSBu
dWxsOworICAgIHZhciB1bmRlZmluZWRDb3VudCA9IGNvbXBhY3QocmVjZWl2ZXIsIHJlY2VpdmVy
TGVuZ3RoLCBjb21wYWN0ZWQsIGlzU3RyaW5nU29ydCk7CisKKyAgICBpZiAoaXNTdHJpbmdTb3J0
KSB7CisgICAgICAgIHNvcnRlZCA9IEBuZXdBcnJheVdpdGhTaXplKGNvbXBhY3RlZC5sZW5ndGgp
OworICAgICAgICBidWNrZXRTb3J0KHNvcnRlZCwgMCwgY29tcGFjdGVkLCAwKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgc29ydGVkID0gbWVyZ2VTb3J0KGNvbXBhY3RlZCwgY29tcGFyYXRvcik7CisK
KyAgICBjb21taXQocmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENv
dW50KTsKKyAgICByZXR1cm4gcmVjZWl2ZXI7CiB9CiAKIEBnbG9iYWxQcml2YXRlCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiAyNjY3MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQCB2
b2lkIE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWCiAKICAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5jcmVhdGVQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmRlZmluZVByb3BlcnR5UHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0
b3JEZWZpbmVQcm9wZXJ0eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lU
SU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByb3RvdHlwZU9mUHJpdmF0
ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmdldE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3Rvckdl
dE93blByb3BlcnR5TmFtZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCAxKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY2NzAzKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMjAt
MDktMDggIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IFVwZGF0ZSBBcnJheS5wcm90b3R5cGUuc29ydCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGlnaHRl
bmVkIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoaWxlIGFkZGluZyBuZXcgTGF5b3V0VGVzdHMgZm9yIEpTLW9ubHkgZmVhdHVyZXMgaXMgdW5k
ZXNpcmFibGUsIGl0J3MgYQorICAgICAgICBxdWljay1hbmQtZGlydHkgd2F5IHRvIGltcG9ydCB0
aGUgdGVzdHMgWzFdIGFuZCBmaXggdGhlIGNhbGwgY291bnQvb3JkZXIKKyAgICAgICAgb2Ygb2Jz
ZXJ2YWJsZSBvcGVyYXRpb25zIHZpYSBkZWJ1ZygpIGFuZCB0ZXh0IGV4cGVjdGF0aW9ucy4KKwor
ICAgICAgICBUaGUgdGVzdHMgYXJlIGltcG9ydGVkIGludG8gTGF5b3V0VGVzdHMvanMvZG9tIGlu
c3RlYWQgb2YgTGF5b3V0VGVzdHMvanMgZm9yCisgICAgICAgIHJ1bi1qYXZhc2NyaXB0Y29yZS10
ZXN0cyB0byBpZ25vcmUgdGhlbSBhcyB0aGV5IHJlcXVpcmUgYXJyYXktc29ydC1oYXJuZXNzLmpz
LgorCisgICAgICAgIFRoZXNlIGZpbGVzIHdpbGwgYmUgcmVtb3ZlZCBzaG9ydGx5IGluIGZhdm9y
IG9mIHRob3JvdWdoIHRlc3QyNjIgY292ZXJhZ2UsCisgICAgICAgIHdoaWNoIGlzIHJlcXVpcmVk
IGZvciB0aGUgcHJvcG9zYWwgWzJdIHRvIGJlIG1lcmdlZC4KKworICAgICAgICBbMV06IGh0dHBz
Oi8vZ2lzdC5naXRodWIuY29tL3N6dWVuZC8wNWFlMTViNGUxMzI5YjI2NGFiNGM5YTFjZGEwOTI0
MgorICAgICAgICBbMl06IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvcHVsbC8xNTg1
CisKKyAgICAgICAgKiBqcy9kb20vYXJyYXktc29ydC0qLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvZG9tL2FycmF5LXNvcnQtKi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9k
b20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtKi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVz
b3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qczogQWRkZWQuCisKIDIwMjAtMDktMDYgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgVGV4dENvZGVjQ0pLIGFu
ZCBUZXh0Q29kZWNTaW5nbGVCeXRlIHRocmVhZC1zYWZlIGFuZCByZWZhY3RvciBhIGJpdCB0byBz
aGFyZSBjb2RlCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1h
ZGRzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29y
LWFkZHMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVu
ZGVmaW5lZCxob2xlLGZvbyxiYXIsZm9vLGJhcgorLnNvcnQoKToKK2EsYixjLGQsdW5kZWZpbmVk
LHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxmb28sYmFyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50cy5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLWFkZHMtdHdvLWVsZW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVt
ZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNy
ZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KCk6CitiLGMsdW5kZWZpbmVkLHVu
ZGVmaW5lZAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmluZWQs
dW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVh
c2VzLWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1z
b3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJy
YXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRl
bGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLWRlbGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmlu
ZWQsdW5kZWZpbmVkLGhvbGUKKy5zb3J0KCk6CithLGhvbGUsYyxkLHVuZGVmaW5lZCx1bmRlZmlu
ZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nv
ci1kZWxldGVzLXByZWRlY2Vzc29yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
ZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMt
cHJlZGVjZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXkt
c29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3IuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3Vj
Y2Vzc29yLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydCgpOgorYSxjLGQsaG9sZSx1bmRlZmluZWQs
dW5kZWZpbmVkLGhvbGUsaG9sZQorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5l
ZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVs
ZXRlcy1zdWNjZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJy
YXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1s
ZW5ndGgtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGgtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVm
aW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUsaG9sZSxob2xlLGhvbGUsaG9sZQorLnNvcnQo
KToKK2EsYixjLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxob2xlLGhvbGUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3Ro
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNz
b3ItaW5jcmVhc2VzLWxlbmd0aC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGguaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFj
Y2Vzc29yLWluY3JlYXNlcy1sZW5ndGguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10d28t
ZWxlbWVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1yZW1v
dmVzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4
IEBACisuc29ydCgpOgorYixjLHVuZGVmaW5lZCx1bmRlZmluZWQKKy5zb3J0KGNvbXBhcmF0b3Ip
OgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10
d28tZWxlbWVudHMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNz
b3ItcmVtb3Zlcy10d28tZWxlbWVudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNl
c3Nvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5
LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNl
c3Nvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydChj
b21wYXJhdG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQor
LnNvcnQoKToKK2EsZm9vYmFyLGMsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nv
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLXNldHMtcHJlZGVjZXNzb3IuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1h
Y2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vz
c29yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3It
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoKToKK2Es
YyxkLGZvb2Jhcix1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlCisuc29ydChjb21w
YXJhdG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0
cy1zdWNjZXNzb3IuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0
cy1zdWNjZXNzb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24t
YXJyYXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMiBAQAorLnNvcnQoY29tcGFyYXRvcik6CitnZXQgWzJdCitnZXQgWzNdCitz
ZXQgWzJdIHdpdGggZAorc2V0IFszXSB3aXRoIHVuZGVmaW5lZAorZ2V0IFsyXQorZ2V0IFszXQor
YyxhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXkuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXku
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3NvcnMtb24tYXJyYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJy
YXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorZ2V0IFsyXQorc2V0IFsyXSB3aXRo
IGEKK2MsYixob2xlLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24t
b2JqZWN0LXByb3RvLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Jz
LW9uLW9iamVjdC1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5v
bi1jb25maWd1cmFibGUtZWxlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK1BBU1MgYXJyYXkuc29ydCgp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuYWJsZSB0byBkZWxldGUgcHJvcGVydHkuLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25m
aWd1cmFibGUtZWxlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZp
Z3VyYWJsZS1lbGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
bm9uLWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhv
bGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNiBAQAorLnNvcnQoKToK
K2EsYixjLGQsZm9vLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8t
aG9sZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0
LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJs
ZS1wcm90by1ob2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRl
YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorUEFTUyBhcnJheS5zb3J0KChhLCBiKSA9PiBhIC0g
YikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFk
b25seSBwcm9wZXJ0eS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRl
YWJsZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5
LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1u
b24td3JpdGVhYmxlLWVsZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitQQVNTIGFycmF5LnNv
cnQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJl
YWRvbmx5IHByb3BlcnR5Li4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3Jp
dGVhYmxlLXByb3RvLWhvbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9h
cnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJv
eHktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LXByb3h5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBA
Cisuc29ydCgpOgorZ2V0IFsnbGVuZ3RoJ10KK2hhcyBbJzAnXQorZ2V0IFsnMCddCitoYXMgWycx
J10KK2dldCBbJzEnXQoraGFzIFsnMiddCitoYXMgWyczJ10KK2dldCBbJzMnXQoraGFzIFsnNCdd
CitnZXQgWyc0J10KK2hhcyBbJzUnXQoraGFzIFsnNiddCitnZXQgWyc2J10KK2hhcyBbJzcnXQor
Z2V0IFsnNyddCitzZXQgWycwJ10gPSBhCitzZXQgWycxJ10gPSBiCitzZXQgWycyJ10gPSBjCitz
ZXQgWyczJ10gPSBkCitzZXQgWyc0J10gPSB1bmRlZmluZWQKK3NldCBbJzUnXSA9IHVuZGVmaW5l
ZAorZGVsZXRlIFsnNiddCitkZWxldGUgWyc3J10KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1wcm94eS1wcm90by1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtcHJveHktcHJvdG8tZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgoraGFz
IFsnMiddCitoYXMgWyc1J10KK3NldCBbJzInXSA9IGEKK3NldCBbJzUnXSA9IHVuZGVmaW5lZAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktcHJvdG8uaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1wcm90by5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2FycmF5LXNvcnQtcHJveHktcHJvdG8uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHkuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1w
cm94eS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJheXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXNob3J0LWFycmF5cy1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtc2hvcnQtYXJy
YXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACisuc29ydChj
b21wYXJhdG9yKSAwLWxlbmd0aCBhcnJheToKK2dldCBbMF0KK3VuZGVmaW5lZAorLnNvcnQoKSAx
LWxlbmd0aCBhcnJheToKK2dldCBbMF0KK3NldCBbMF0gd2l0aCBiYXIKK2dldCBbMF0KK2Jhcix1
bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJheXMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJh
eXMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1z
aG9ydC1hcnJheXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXkt
c29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVs
ZW1lbnRzLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50cy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9
IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2En
LCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7
IGFycmF5LnB1c2goJ2ZvbycpOyBhcnJheS5wdXNoKCdiYXInKTsgcmV0dXJuIHRoaXMuZm9vOyB9
LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFy
YXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOworCith
cnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUq
LywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBn
ZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgIGFycmF5LnB1c2goJ2Zvbycp
OyBhcnJheS5wdXNoKCdiYXInKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0
KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0
LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5n
dGguanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0aG9yOiBTaW1vbiBa
w7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVm
aW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5
LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheS5sZW5ndGggPSBhcnJheS5sZW5ndGggLSAyOyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVn
KCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5k
ZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2Qn
XTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aCAt
IDI7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsK
K2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVk
ZWNlc3Nvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5qcwkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3It
ZGVsZXRlcy1wcmVkZWNlc3Nvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisv
LyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypo
b2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVm
aW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IGRlbGV0ZSBhcnJheVsxXTsgcmV0
dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1
ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Cits
b2coYXJyYXkpOworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5k
ZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJy
YXksICcyJywgeworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgZGVs
ZXRlIGFycmF5WzFdOyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsK
K2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3IuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vz
c29yLWRlbGV0ZXMtc3VjY2Vzc29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5k
CisKK2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVk
LCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcy
JywgeworICBnZXQoKSB7IGRlbGV0ZSBhcnJheVszXTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBz
ZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2FycmF5
LnNvcnQoKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUq
LywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBz
ZXQodikgeyBkZWxldGUgYXJyYXlbM107IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcu
c29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhh
cnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9IFt1bmRlZmlu
ZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOwor
CitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IGFycmF5Lmxl
bmd0aCA9IGFycmF5Lmxlbmd0aCArIDI7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsg
dGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworYXJy
YXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5kZWZp
bmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsK
KworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1cm4g
dGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aCArIDI7
IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgp
OworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJy
YXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zl
cy10d28tZWxlbWVudHMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKwor
bGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8q
aG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7
CisgIGdldCgpIHsgYXJyYXkucG9wKCk7IGFycmF5LnBvcCgpOyByZXR1cm4gdGhpcy5mb287IH0s
CisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydCgpOicpOwor
YXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8q
aG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1cm4gdGhpcy5mb287IH0s
CisgIHNldCh2KSB7IGFycmF5LnBvcCgpOyBhcnJheS5wb3AoKTsgdGhpcy5mb28gPSB2OyB9Cit9
KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikgPT4g
YSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRz
LXByZWRlY2Vzc29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworbGV0IGFy
cmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSov
LCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdl
dCgpIHsgYXJyYXlbMV0gPSAnZm9vYmFyJzsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikg
eyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7Cith
cnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOworCithcnJheSA9IFt1bmRl
ZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCdd
OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IHJldHVy
biB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgYXJyYXlbMV0gPSAnZm9vYmFyJzsgdGhpcy5mb28g
PSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJy
YXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFj
Y2Vzc29yLXNldHMtc3VjY2Vzc29yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5qcwkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3Itc2V0cy1zdWNjZXNzb3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBA
QAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycs
IC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0
LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheVszXSA9ICdmb29i
YXInOyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7
CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJy
YXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8s
ICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0
KCkgeyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5WzNdID0gJ2Zvb2Jhcic7
IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK2Fy
cmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1h
Y2Nlc3NvcnMtb24tYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE3IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFy
cmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSov
LCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdl
dCgpIHsgZGVidWcoJ2dldCBbMl0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBk
ZWJ1Zyhgc2V0IFsyXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworT2JqZWN0
LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMycsIHsKKyAgZ2V0KCkgeyBkZWJ1ZygnZ2V0IFszXScp
OyByZXR1cm4gdGhpcy5iYXI7IH0sCisgIHNldCh2KSB7IGRlYnVnKGBzZXQgWzNdIHdpdGggJHt2
fWApOyB0aGlzLmJhciA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7
CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3Qt
cHJvdG8uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9h
cnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uanMJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1v
YmplY3QtcHJvdG8uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorLy8gYXV0aG9y
OiBTaW1vbiBaw7xuZAorCitjb25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8s
ICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitjb25zdCBvYmplY3QgPSB7
fTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJzInLCB7CisgIGdldCgpIHsgZGVi
dWcoJ2dldCBbMl0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBkZWJ1Zyhgc2V0
IFsyXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KG9iamVjdCwgJzMnLCB7CisgIGdldCgpIHsgZGVidWcoJ2dldCBbM10nKTsgcmV0dXJu
IHRoaXMuYmFyOyB9LAorICBzZXQodikgeyBkZWJ1Zyhgc2V0IFszXSB3aXRoICR7dn1gKTsgdGhp
cy5iYXIgPSB2OyB9Cit9KTsKKworYXJyYXkuX19wcm90b19fID0gb2JqZWN0OworCitkZWJ1Zygn
LnNvcnQoY29tcGFyYXRvcik6Jyk7CitBcnJheS5wcm90b3R5cGUuc29ydC5jYWxsKGFycmF5LCAo
YSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1j
b25maWd1cmFibGUtZWxlbWVudC5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKwor
Y29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwg
Lypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnNics
IHsKKyAgdmFsdWU6ICdhJywKKyAgY29uZmlndXJhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJsZTog
dHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCit9KTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFy
cmF5LCAnNycsIHsKKyAgdmFsdWU6ICdkJywKKyAgY29uZmlndXJhYmxlOiBmYWxzZSwKKyAgZW51
bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCit9KTsKKworc2hvdWxkVGhyb3coJ2Fy
cmF5LnNvcnQoKScsICciVHlwZUVycm9yOiBVbmFibGUgdG8gZGVsZXRlIHByb3BlcnR5LiInKTsK
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29u
ZmlndXJhYmxlLXByb3RvLWhvbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5qcwko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNv
cnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTQgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5wcm90b3R5cGUsICcyJywgeworICB2YWx1ZTogJ2ZvbycsCisgIGNvbmZpZ3VyYWJs
ZTogZmFsc2UsCisgIGVudW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorfSk7CisK
K2NvbnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQs
IC8qaG9sZSovLCAnYScsICdkJ107CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgp
OworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJy
YXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVk
LCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKwor
T2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMScsIHsKKyAgdmFsdWU6ICdjJywKKyAgY29u
ZmlndXJhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogZmFsc2Us
Cit9KTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMycsIHsKKyAgdmFsdWU6ICdi
JywKKyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJs
ZTogZmFsc2UsCit9KTsKKworc2hvdWxkVGhyb3coJ2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBi
KScsICciVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5
LiInKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1u
b24td3JpdGVhYmxlLXByb3RvLWhvbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5qcwko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNv
cnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTIgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KE9i
amVjdC5wcm90b3R5cGUsICcyJywgeworICB2YWx1ZTogJ2ZvbycsCisgIGNvbmZpZ3VyYWJsZTog
dHJ1ZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IGZhbHNlLAorfSk7CisKK2Nv
bnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8q
aG9sZSovLCAnYScsICdkJ107CisKK3Nob3VsZFRocm93KCdhcnJheS5zb3J0KCknLCAnIlR5cGVF
cnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4iJyk7CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHktcHJvdG8u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1z
b3J0LXByb3h5LXByb3RvLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS1wcm90by5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMxIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFycmF5ID0gW3Vu
ZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdk
J107CisKK2NvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9LCB7CisgIGdldDogKHRhcmdldCwgbmFt
ZSkgPT4geworICAgIGRlYnVnKCJnZXQgWyciICsgbmFtZSArICInXSIpOworICAgIHJldHVybiB0
YXJnZXRbbmFtZV07CisgIH0sCisKKyAgc2V0OiAodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgPT4gewor
ICAgIGRlYnVnKCJzZXQgWyciICsgbmFtZSArICInXSA9ICIgKyB2YWx1ZSk7CisgICAgdGFyZ2V0
W25hbWVdID0gdmFsdWU7CisgICAgcmV0dXJuIHRydWU7CisgIH0sCisKKyAgaGFzOiAodGFyZ2V0
LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImhhcyBbJyIgKyBuYW1lICsgIiddIik7CisgICAgcmV0
dXJuIG5hbWUgaW4gdGFyZ2V0OworICB9LAorCisgIGRlbGV0ZVByb3BlcnR5OiAodGFyZ2V0LCBu
YW1lKSA9PiB7CisgICAgZGVidWcoImRlbGV0ZSBbJyIgKyBuYW1lICsgIiddIik7CisgICAgcmV0
dXJuIGRlbGV0ZSB0YXJnZXRbbmFtZV07CisgIH0KK30pOworCithcnJheS5fX3Byb3RvX18gPSBw
cm94eTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworQXJyYXkucHJvdG90eXBlLnNv
cnQuY2FsbChhcnJheSwgKGEsIGIpID0+IGEgLSBiKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHkuanMJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQK
KworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5l
ZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworY29uc3QgcHJveHkgPSBuZXcgUHJveHkoYXJyYXks
IHsKKyAgZ2V0OiAodGFyZ2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImdldCBbJyIgKyBuYW1l
ICsgIiddIik7CisgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgfSwKKworICBzZXQ6ICh0YXJn
ZXQsIG5hbWUsIHZhbHVlKSA9PiB7CisgICAgZGVidWcoInNldCBbJyIgKyBuYW1lICsgIiddID0g
IiArIHZhbHVlKTsKKyAgICB0YXJnZXRbbmFtZV0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdHJ1ZTsK
KyAgfSwKKworICBoYXM6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiaGFzIFsnIiAr
IG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4gbmFtZSBpbiB0YXJnZXQ7CisgIH0sCisKKyAgZGVs
ZXRlUHJvcGVydHk6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiZGVsZXRlIFsnIiAr
IG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4gZGVsZXRlIHRhcmdldFtuYW1lXTsKKyAgfQorfSk7
CisKK2RlYnVnKCcuc29ydCgpOicpOworQXJyYXkucHJvdG90eXBlLnNvcnQuY2FsbChwcm94eSk7
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtc2hvcnQt
YXJyYXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1zaG9ydC1hcnJheXMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE3IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFy
cmF5ID0gW107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzAnLCB7CisgIGdldCgp
IHsgZGVidWcoJ2dldCBbMF0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBkZWJ1
Zyhgc2V0IFswXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoIi5z
b3J0KGNvbXBhcmF0b3IpIDAtbGVuZ3RoIGFycmF5OiIpOworYXJyYXkuc29ydCgoYSwgYikgPT4g
YSAtIGIpOworbG9nKGFycmF5KTsKKworZGVidWcoIi5zb3J0KCkgMS1sZW5ndGggYXJyYXk6Iik7
CithcnJheS5wdXNoKCdiYXInKTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBsb2coYXJyYXkpIHsK
KyAgbGV0IGJ1ZiA9ICcnOworICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXkubGVu
Z3RoOyBpbmRleCsrKSB7CisgICAgaWYgKGFycmF5Lmhhc093blByb3BlcnR5KGluZGV4KSkgewor
ICAgICAgYnVmICs9IFN0cmluZyhhcnJheVtpbmRleF0pOworICAgIH0gZWxzZSB7CisgICAgICBi
dWYgKz0gJ2hvbGUnOworICAgIH0KKyAgICBpZiAoaW5kZXggPCBhcnJheS5sZW5ndGggLSAxKSBi
dWYgKz0gJywnOworICB9CisgIGRlYnVnKGJ1Zik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408329</attachid>
            <date>2020-09-09 09:26:47 -0700</date>
            <delta_ts>2020-09-14 15:35:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202582-20200909192645.patch</filename>
            <type>text/plain</type>
            <size>56066</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjY3NzgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI1IEBACisyMDIwLTA5LTA5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJvdG90eXBlLnNvcnQgdG8gYmUg
Y29uc2lzdGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlZCBtaWNyb2JlbmNobWFya3MgdGVzdCByZWNl
aXZlcnMgdGhhdCBhcmUgaGFsZi1zb3J0ZWQ6IDUwJSBvZiB0aGVpcgorICAgICAgICBpdGVtcyBh
bmQgaXRlbSBwYWlycyAodG8gYWNjb21vZGF0ZSBtZXJnZSBzb3J0KSBhcmUgYXQgdGhlIHJpZ2h0
IHBsYWNlLgorCisgICAgICAgIEFycmF5cyBvZiBtdWx0aXBsZSBzaXplcyAoOC8yNC82NCBpdGVt
cykgYXJlIHRlc3RlZCB3aXRoIGJvdGggdXNlcmxhbmQKKyAgICAgICAgYW5kIGRlZmF1bHQgY29t
cGFyYXRvciAodG8gY292ZXIgYnVja2V0IHNvcnQpLgorCisgICAgICAgICogQ2hha3JhQ29yZS90
ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUtanNjOiBGaXggdHlwbyBpbiBlcnJvciBtZXNz
YWdlLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJn
ZS1hcnJheS1jb21wYXJhdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mv
YXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1tZWRpdW0tYXJyYXktY29tcGFyYXRv
ci5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LW1lZGl1bS1hcnJheS5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2Fy
cmF5LXByb3RvdHlwZS1zb3J0LXNtYWxsLWFycmF5LWNvbXBhcmF0b3IuanM6IEFkZGVkLgorICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5q
czogQWRkZWQuCisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTg4NTc3LmpzOiBSZXBsYWNlIHNv
cnQoKSB3aXRoIHVuc2hpZnQoKSBhbmQgcmVmYWN0b3IuCisKIDIwMjAtMDktMDkgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIERvbid0IGVtaXREaXJl
Y3RCaW5kaW5nKCkgaWYgdGhlcmUgaXMgYSBbLi4ucmVzdF0gZWxlbWVudCBiaW5kaW5nCkluZGV4
OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9BcnJheS9hcnJheV9zb3J0LmJhc2VsaW5lLWpzYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9BcnJheS9hcnJheV9zb3J0LmJh
c2VsaW5lLWpzYwkocmV2aXNpb24gMjY2Nzc3KQorKysgSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3Qv
QXJyYXkvYXJyYXlfc29ydC5iYXNlbGluZS1qc2MJKHdvcmtpbmcgY29weSkKQEAgLTcsNSArNyw1
IEBAIGZvcixzYW1wbGUsc29tZSxzdHJpbmdzLHRlc3RpbmcgLSBPdXRwdXQKIDEsMiwzCiAxMAog
MSwxLjIsNCw0LjgsMTIKLVR5cGVFcnJvcjogQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMg
dGhlIGNvbXBhcnNpb24gZnVuY3Rpb24gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQKK1R5cGVF
cnJvcjogQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhlIGNvbXBhcmF0b3IgYXJndW1l
bnQgdG8gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQKIDEsMiwzCkluZGV4OiBKU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJheS1jb21wYXJhdG9y
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlw
ZS1zb3J0LWxhcmdlLWFycmF5LWNvbXBhcmF0b3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXktY29tcGFy
YXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK3ZhciBjb21wYXJhdG9yID0g
KGEsIGIpID0+IGEgLSBiOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAg
WworICAgICAgICAwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDMxLDMwLDI5
LDI4LDI3LDI2LDI1LDI0LDIzLDIyLDIxLDIwLDE5LAorICAgICAgICAxOCwxNywxNiwzMiwzMywz
NCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw2Myw2Miw2MSw2MCw1OSw1
OCw1NywKKyAgICAgICAgNTYsNTUsNTQsNTMsNTIsNTEsNTAsNDksNDgKKyAgICBdLnNvcnQoY29t
cGFyYXRvcik7Cit9CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1sYXJnZS1hcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJheS5qcwkobm9uZXhpc3RlbnQpCisr
KyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJh
eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MWU0OyArK2kpIHsKKyAgICBbCisgICAgICAgICIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2Iiwi
NyIsIjgiLCI5IiwiOiIsIjsiLCI8IiwiPSIsIj4iLCI/IiwiTyIsIk4iLCJNIiwiTCIsIksiLCJK
IiwiSSIsCisgICAgICAgICJIIiwiRyIsIkYiLCJFIiwiRCIsIkMiLCJCIiwiQSIsIkAiLCJQIiwi
USIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsIlsiLCJcXCIsIl0iLAorICAg
ICAgICAiXiIsIl8iLCJvIiwibiIsIm0iLCJsIiwiayIsImoiLCJpIiwiaCIsImciLCJmIiwiZSIs
ImQiLCJjIiwiYiIsImEiLCJgIgorICAgIF0uc29ydCgpOworfQpJbmRleDogSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LWNvbXBhcmF0b3Iu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBl
LXNvcnQtbWVkaXVtLWFycmF5LWNvbXBhcmF0b3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LWNvbXBh
cmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACit2YXIgY29tcGFyYXRvciA9
IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkgeworICAg
IFswLDEsMiwzLDQsNSwxMSwxMCw5LDgsNyw2LDEyLDEzLDE0LDE1LDE2LDE3LDIzLDIyLDIxLDIw
LDE5LDE4XS5zb3J0KGNvbXBhcmF0b3IpOworfQpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJheS5q
cwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1tZWRpdW0tYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACitm
b3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgWyJBIiwiQiIsIkMiLCJEIiwiRSIs
IkYiLCJMIiwiSyIsIkoiLCJJIiwiSCIsIkciLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJYIiwi
VyIsIlYiLCJVIiwiVCIsIlMiXS5zb3J0KCk7Cit9CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS1jb21wYXJhdG9yLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LXNt
YWxsLWFycmF5LWNvbXBhcmF0b3IuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtc21hbGwtYXJyYXktY29tcGFyYXRvci5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK3ZhciBjb21wYXJhdG9yID0gKGEsIGIpID0+
IGEgLSBiOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgWzAsMSwyLDMs
Nyw2LDUsNF0uc29ydChjb21wYXJhdG9yKTsKK30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LXNtYWxsLWFycmF5LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LXNtYWxsLWFycmF5Lmpz
CShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlw
ZS1zb3J0LXNtYWxsLWFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkgeworICAgIFsiQSIsIkIiLCJDIiwiRCIsIkgiLCJH
IiwiRiIsIkUiXS5zb3J0KCk7Cit9CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4ODU3
Ny5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4ODU3Ny5qcwkocmV2
aXNpb24gMjY2Nzc3KQorKysgSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xODg1NzcuanMJKHdvcmtp
bmcgY29weSkKQEAgLTIsMTYgKzIsMTEgQEAKIAogdmFyIGV4Y2VwdGlvbjsKIHRyeSB7Ci0gICAg
dmFyIGkgPSAyNTAwMDsKLSAgICB2YXIgYXJncyA9IFtdOwotICAgIHZhciB2MzsKLSAgICB3aGls
ZSAoaS0tKQotICAgICAgICBhcmdzW2ldID0gImEiOwotICAgIHZhciBhcmdzTGlzdCA9IGFyZ3Mu
am9pbigpOwotICAgIHNldHRlciA9IEZ1bmN0aW9uKGFyZ3NMaXN0LCAiIik7Ci0gICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KGFyZ3MsICcwJywge3NldDogc2V0dGVyfSk7Ci0gICAgYXJncy5zb3J0
KCk7Ci0KKyAgICB2YXIgYXJncyA9IG5ldyBBcnJheSgyNTAwMCkuZmlsbCgiYSIpOworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShhcmdzLCAiMCIsIHsKKyAgICAgICAgc2V0OiBuZXcgRnVuY3Rp
b24oYXJncy5qb2luKCksICIiKSwKKyAgICB9KTsKKyAgICBhcmdzLnVuc2hpZnQoMSk7CiB9IGNh
dGNoIChlKSB7CiAgICAgZXhjZXB0aW9uID0gZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjY2Nzc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDIwLTA5LTA5ICBBbGV4ZXkgU2h2
YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJv
dG90eXBlLnNvcnQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgdGhlIHNwZWMgY2hhbmdlIFsxXSB0aGF0IHJlZHVjZXMgYW1vdW50IG9mIGNhc2VzIHJl
c3VsdGluZworICAgICAgICBpbiBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHNvcnQgb3JkZXIs
IGFsaWduaW5nIEpTQyB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisKKyAgICAgICAgVG8gYWNo
aWV2ZSB0aGlzLCB3ZSBjb2xsZWN0IGFsbCBleGlzdGluZyBub24tdW5kZWZpbmVkIHJlY2VpdmVy
IGVsZW1lbnRzIHRvIGEKKyAgICAgICAgdGVtcG9yYXJ5IGFycmF5LCBzb3J0IGl0LCBhbmQgd3Jp
dGUgYmFjayBzb3J0ZWQgaXRlbXMsIGZvbGxvd2VkIGJ5IGB1bmRlZmluZWRgCisgICAgICAgIHZh
bHVlcyBhbmQgaG9sZXMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgcHJvdmVuIHRvIGJlIHdl
Yi1jb21wYXRpYmxlIChzaGlwcGluZyBzaW5jZSBDaHJvbWUgNzYpIGFuZCBuZXV0cmFsCisgICAg
ICAgIG9uIHBlYWsgbWVtb3J5IGNvbnN1bXB0aW9uIGluIHRoZSB3aWxkLgorCisgICAgICAgIEFs
dGhvdWdoIHdlIGNhbiB1bm9ic2VydmFibHkgZGV0ZWN0IHNwYXJzZSByZWNlaXZlcnMsIHdlIGNh
bid0IGF2b2lkIGNyZWF0aW5nIGEKKyAgICAgICAgdGVtcG9yYXJ5IGFycmF5IGZvciBjb21tb24g
Y2FzZSBzaW5jZSB1c2VybGFuZCBjb21wYXJhdG9ycyBtYXkgdGhyb3c7IHN0cmluZworICAgICAg
ICBzb3J0aW5nIHdvbid0IG1lYXN1cmFibHkgYmVuZWZpdCBmcm9tIHRoaXMsIG9ubHkgaW5jcmVh
c2luZyBjb2RlIGNvbXBsZXhpdHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1c2VzIEBwdXRCeVZh
bERpcmVjdCB1bmxlc3MgdGhlIHNwZWMgcmVxdWlyZXMgW1tTZXRdXSwgYXZvaWRzIHVzaW5nCisg
ICAgICAgIGNsb3N1cmUgdmFyaWFibGVzLCBhbmQgYWRkcyBhIGZldyBkcml2ZS1ieSBvcHRpbWl6
YXRpb25zLCByZXN1bHRpbmcgaW4gfjIyJQorICAgICAgICBmYXN0ZXIgc3RyaW5nIHNvcnRpbmcg
YW5kIDEzJSBzcGVlZC11cCBmb3IgdXNlcmxhbmQgY29tcGFyYXRvcnMuCisKKyAgICAgICAgWzFd
OiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9lY21hMjYyL3B1bGwvMTU4NQorCisgICAgICAgICog
YnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanM6CisgICAgICAgIChzb3J0LnN0cmluZ0NvbXBhcmF0
b3IpOgorICAgICAgICBPcHRpbWl6YXRpb24gIzE6IHJlcGxhY2UgY2hhci1ieS1jaGFyIGNvbXBh
cmlzb24gbG9vcCB3aXRoID4gb3BlcmF0b3IsIGFsaWduaW5nCisgICAgICAgIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXkuIFRoaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgY2hhbmdlIGFs
b25lIGlzIGEgfjE1JQorICAgICAgICBwcm9ncmVzc2lvbiBmb3Igc3RyaW5nIHNvcnQuCisKKyAg
ICAgICAgKHNvcnQuY29tcGFjdCk6CisgICAgICAgIChzb3J0LmNvbW1pdCk6CisgICAgICAgIE9w
dGltaXphdGlvbiAjMjogY29weSBsYXJnZSBub24tbnVtZXJpYyBhcnJheXMgd2l0aCBAYXBwZW5k
TWVtY3B5IGluc3RlYWQgb2YgYSBsb29wLgorICAgICAgICBVc2luZyBAYXBwZW5kTWVtY3B5IHVu
Y29uZGl0aW9uYWxseSByZWdyZXNzZXMgcHJvdmlkZWQgbWljcm9iZW5jaG1hcmtzIGFzIGl0J3Mg
Y29zdGx5CisgICAgICAgIHRvIGNhbGwgZHVlIHRvIG1hbnkgY2hlY2tzLgorCisgICAgICAgIChz
b3J0Lm1lcmdlKToKKyAgICAgICAgT3B0aW1pemF0aW9uICMzOiByZXBsYWNlIGB0eXBlb2ZgIGNo
ZWNrICYgbmVnYXRpb24gd2l0aCBzdHJpY3QgZXF1YWxpdHkuCisKKyAgICAgICAgKHNvcnQubWVy
Z2VTb3J0KToKKyAgICAgICAgT3B0aW1pemF0aW9uICM0OiBhbHdheXMgcmV0dXJuIHNvcnRlZCBh
cnJheSwgZXZlbiBpZiBpdCdzIHRoZSBidWZmZXIsIGluc3RlYWQgb2YgY29weWluZy4KKyAgICAg
ICAgQWxzbywgY3JlYXRlIHRoZSBidWZmZXIgd2l0aCBjb3JyZWN0IGxlbmd0aC4KKworICAgICAg
ICAoc29ydC5idWNrZXRTb3J0KToKKyAgICAgICAgKHNvcnQpOiBGaXggdHlwbyBpbiBlcnJvciBt
ZXNzYWdlLgorICAgICAgICAoc29ydC5jb21wYWN0U3BhcnNlKTogRGVsZXRlZC4KKyAgICAgICAg
KHNvcnQuY29tcGFjdFNsb3cpOiBEZWxldGVkLgorICAgICAgICAoc29ydC5jb21wYXJhdG9yU29y
dCk6IERlbGV0ZWQuCisgICAgICAgIChzb3J0LnN0cmluZ1NvcnQpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICBSZW1vdmUgQE9iamVjdC5AZ2V0
UHJvdG90eXBlT2YgYXMgaXQncyBub3cgdW51c2VkIGFuZCB3ZSBoYXZlIEBnZXRQcm90b3R5cGVP
ZiBpbnRyaW5zaWMgYW55d2F5LgorCiAyMDIwLTA5LTA5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBEb24ndCBlbWl0RGlyZWN0QmluZGluZygpIGlm
IHRoZXJlIGlzIGEgWy4uLnJlc3RdIGVsZW1lbnQgYmluZGluZwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwkocmV2aXNpb24gMjY2
Nzc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTA1ICszMjAsNTMgQEAgZnVuY3Rpb24gc29ydChjb21w
YXJhdG9yKQogICAgICAgICB2YXIgYVN0cmluZyA9IGEuc3RyaW5nOwogICAgICAgICB2YXIgYlN0
cmluZyA9IGIuc3RyaW5nOwogCi0gICAgICAgIHZhciBhTGVuZ3RoID0gYVN0cmluZy5sZW5ndGg7
Ci0gICAgICAgIHZhciBiTGVuZ3RoID0gYlN0cmluZy5sZW5ndGg7Ci0gICAgICAgIHZhciBsZW5n
dGggPSBtaW4oYUxlbmd0aCwgYkxlbmd0aCk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGFDaGFyQ29kZSA9IGFTdHJpbmcuQGNo
YXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICB2YXIgYkNoYXJDb2RlID0gYlN0cmluZy5AY2hhckNv
ZGVBdChpKTsKKyAgICAgICAgaWYgKGFTdHJpbmcgPT09IGJTdHJpbmcpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKIAotICAgICAgICAgICAgaWYgKGFDaGFyQ29kZSA9PSBiQ2hhckNvZGUpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBhQ2hhckNvZGUgLSBi
Q2hhckNvZGU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYUxlbmd0aCAtIGJMZW5ndGg7
CisgICAgICAgIHJldHVybiBhU3RyaW5nID4gYlN0cmluZyA/IDEgOiAtMTsKICAgICB9CiAKLSAg
ICAvLyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYSBzcGFyc2UgYXJy
YXkuIFJlc3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCi0gICAg
ZnVuY3Rpb24gY29tcGFjdFNwYXJzZShhcnJheSwgZHN0LCBzcmMsIGxlbmd0aCkKKyAgICBmdW5j
dGlvbiBjb21wYWN0KHJlY2VpdmVyLCByZWNlaXZlckxlbmd0aCwgY29tcGFjdGVkLCBpc1N0cmlu
Z1NvcnQpCiAgICAgewotICAgICAgICB2YXIgdmFsdWVzID0gWyBdOwotICAgICAgICB2YXIgc2Vl
biA9IHsgfTsKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSAwOwogICAgICAgICB2YXIgdW5kZWZp
bmVkQ291bnQgPSAwOworICAgICAgICB2YXIgY29tcGFjdGVkSW5kZXggPSAwOwogCi0gICAgICAg
IC8vIENsZWFuIHVwIGFmdGVyIHRoZSBpbi1wcm9ncmVzcyBub24tc3BhcnNlIGNvbXBhY3Rpb24g
dGhhdCBmYWlsZWQuCi0gICAgICAgIGZvciAodmFyIGkgPSBkc3Q7IGkgPCBzcmM7ICsraSkKLSAg
ICAgICAgICAgIGRlbGV0ZSBhcnJheVtpXTsKLQotICAgICAgICBmb3IgKHZhciBvYmplY3QgPSBh
cnJheTsgb2JqZWN0OyBvYmplY3QgPSBAT2JqZWN0LkBnZXRQcm90b3R5cGVPZihvYmplY3QpKSB7
Ci0gICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lcyA9IEBPYmplY3QuQGdldE93blByb3BlcnR5
TmFtZXMob2JqZWN0KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlO
YW1lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHByb3BlcnR5
TmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7IC8vIEV4Y2x1
ZGUgbm9uLW51bWVyaWMgcHJvcGVydGllcyBhbmQgcHJvcGVydGllcyBwYXN0IGxlbmd0aC4KLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHNlZW5baW5kZXhdKSAvLyBFeGNsdWRlIGR1cGxpY2F0ZXMu
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAg
c2VlbltpbmRleF0gPSAxOwotCi0gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5
W2luZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFycmF5W2luZGV4XTsKLQotICAg
ICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IEB1bmRlZmluZWQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICsrdW5kZWZpbmVkQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIGFy
cmF5W3ZhbHVlQ291bnQrK10gPSB2YWx1ZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNlaXZlckxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSBpbiByZWNlaXZlcikgewor
ICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlY2VpdmVyW2ldOworICAgICAgICAgICAgICAg
IGlmICh2YWx1ZSA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVk
Q291bnQrKzsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQHB1
dEJ5VmFsRGlyZWN0KGNvbXBhY3RlZCwgY29tcGFjdGVkSW5kZXgsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgaXNTdHJpbmdTb3J0ID8ge3N0cmluZzogQHRvU3RyaW5nKHZhbHVlKSwgdmFsdWV9
IDogdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBjb21wYWN0ZWRJbmRleCsrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGZvciAodmFy
IGkgPSB2YWx1ZUNvdW50OyBpIDwgdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyArK2kpCi0g
ICAgICAgICAgICBhcnJheVtpXSA9IEB1bmRlZmluZWQ7Ci0KLSAgICAgICAgcmV0dXJuIHZhbHVl
Q291bnQ7CisgICAgICAgIHJldHVybiB1bmRlZmluZWRDb3VudDsKICAgICB9CiAKLSAgICBmdW5j
dGlvbiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKQorICAgIC8vIE1vdmUgdW5kZWZpbmVkcyBh
bmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhbiBhcnJheS4gUmVzdWx0IGlzIFt2YWx1ZXMuLi4sIHVu
ZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KKyAgICBmdW5jdGlvbiBjb21taXQocmVjZWl2ZXIsIHJl
Y2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENvdW50KQogICAgIHsKLSAgICAgICAgdmFy
IGhvbGVDb3VudCA9IDA7Ci0KLSAgICAgICAgdmFyIGRzdCA9IDA7Ci0gICAgICAgIHZhciBzcmMg
PSAwOwotICAgICAgICBmb3IgKDsgc3JjIDwgbGVuZ3RoOyArK3NyYykgewotICAgICAgICAgICAg
aWYgKCEoc3JjIGluIGFycmF5KSkgewotICAgICAgICAgICAgICAgICsraG9sZUNvdW50OwotICAg
ICAgICAgICAgICAgIGlmIChob2xlQ291bnQgPCAyNTYpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U3BhcnNlKGFycmF5LCBkc3Qs
IHNyYywgbGVuZ3RoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgdmFyIHNvcnRlZExlbmd0aCA9
IHNvcnRlZC5sZW5ndGg7CisgICAgICAgIEBhc3NlcnQoc29ydGVkTGVuZ3RoICsgdW5kZWZpbmVk
Q291bnQgPD0gcmVjZWl2ZXJMZW5ndGgpOwogCi0gICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJh
eVtzcmNdOwotICAgICAgICAgICAgaWYgKHZhbHVlID09PSBAdW5kZWZpbmVkKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBhcnJheVtkc3QrK10gPSB2YWx1ZTsKKyAg
ICAgICAgdmFyIGkgPSAwOworICAgICAgICBpZiAoc29ydGVkTGVuZ3RoID49IDY0ICYmIHR5cGVv
ZiBzb3J0ZWRbMF0gIT09ICJudW1iZXIiKSB7IC8vIGhldXJpc3RpYworICAgICAgICAgICAgQGFw
cGVuZE1lbWNweShyZWNlaXZlciwgc29ydGVkLCAwKTsKKyAgICAgICAgICAgIGkgPSBzb3J0ZWRM
ZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKDsgaSA8IHNvcnRlZExl
bmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHJlY2VpdmVyW2ldID0gc29ydGVkW2ldOwogICAg
ICAgICB9CiAKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSBkc3Q7Ci0gICAgICAgIHZhciB1bmRl
ZmluZWRDb3VudCA9IGxlbmd0aCAtIHZhbHVlQ291bnQgLSBob2xlQ291bnQ7Ci0KLSAgICAgICAg
Zm9yICh2YXIgaSA9IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5kZWZpbmVkQ291bnQ7
ICsraSkKLSAgICAgICAgICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKLQotICAgICAgICBmb3Ig
KHZhciBpID0gdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyBpIDwgbGVuZ3RoOyArK2kpCi0g
ICAgICAgICAgICBkZWxldGUgYXJyYXlbaV07CisgICAgICAgIGZvciAoOyBpIDwgc29ydGVkTGVu
Z3RoICsgdW5kZWZpbmVkQ291bnQ7ICsraSkKKyAgICAgICAgICAgIHJlY2VpdmVyW2ldID0gQHVu
ZGVmaW5lZDsKIAotICAgICAgICByZXR1cm4gdmFsdWVDb3VudDsKLSAgICB9Ci0KLSAgICAvLyBN
b3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYW4gYXJyYXkuIFJlc3VsdCBp
cyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCi0gICAgZnVuY3Rpb24gY29t
cGFjdChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBh
cnJheS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGFycmF5W2ldID09PSBAdW5kZWZp
bmVkKQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIGZvciAoOyBpIDwg
cmVjZWl2ZXJMZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSByZWNlaXZlcltpXTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwgd2lk
dGgsIGNvbXBhcmF0b3IpCkBAIC00MzEsMjYgKzM3OSwyOSBAQCBmdW5jdGlvbiBzb3J0KGNvbXBh
cmF0b3IpCiAgICAgICAgIGZvciAodmFyIGRzdEluZGV4ID0gbGVmdDsgZHN0SW5kZXggPCByaWdo
dEVuZDsgKytkc3RJbmRleCkgewogICAgICAgICAgICAgaWYgKHJpZ2h0IDwgcmlnaHRFbmQpIHsK
ICAgICAgICAgICAgICAgICBpZiAobGVmdCA+PSBsZWZ0RW5kKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGRzdFtkc3RJbmRleF0gPSBzcmNbcmlnaHQrK107CisgICAgICAgICAgICAgICAgICAgIEBw
dXRCeVZhbERpcmVjdChkc3QsIGRzdEluZGV4LCBzcmNbcmlnaHRdKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmlnaHQrKzsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgfQogCisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NzgyNSBvbiBib29sZWFuIHNwZWNpYWwtY2FzaW5nCiAgICAgICAg
ICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJhdG9yKHNyY1tyaWdodF0sIHNy
Y1tsZWZ0XSk7Ci0gICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgY29tcGFyaXNvblJlc3VsdCA9
PT0gImJvb2xlYW4iICYmICFjb21wYXJpc29uUmVzdWx0KSB8fCBjb21wYXJpc29uUmVzdWx0IDwg
MCkgewotICAgICAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW3JpZ2h0KytdOwor
ICAgICAgICAgICAgICAgIGlmIChjb21wYXJpc29uUmVzdWx0ID09PSBmYWxzZSB8fCBjb21wYXJp
c29uUmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0
LCBkc3RJbmRleCwgc3JjW3JpZ2h0XSk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Kys7CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLQogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW2xlZnQrK107CisgICAg
ICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgc3JjW2xlZnRdKTsKKyAgICAg
ICAgICAgIGxlZnQrKzsKICAgICAgICAgfQogICAgIH0KIAotICAgIGZ1bmN0aW9uIG1lcmdlU29y
dChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcikKKyAgICBmdW5jdGlvbiBtZXJnZVNvcnQo
YXJyYXksIGNvbXBhcmF0b3IpCiAgICAgewotICAgICAgICB2YXIgYnVmZmVyID0gWyBdOwotICAg
ICAgICBidWZmZXIubGVuZ3RoID0gdmFsdWVDb3VudDsKKyAgICAgICAgdmFyIHZhbHVlQ291bnQg
PSBhcnJheS5sZW5ndGg7CisgICAgICAgIHZhciBidWZmZXIgPSBAbmV3QXJyYXlXaXRoU2l6ZSh2
YWx1ZUNvdW50KTsKIAogICAgICAgICB2YXIgZHN0ID0gYnVmZmVyOwogICAgICAgICB2YXIgc3Jj
ID0gYXJyYXk7CkBAIC00NjMsMTggKzQxNCwxNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3Ip
CiAgICAgICAgICAgICBkc3QgPSB0bXA7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc3JjICE9
IGFycmF5KSB7Ci0gICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgdmFsdWVDb3VudDsgaSsr
KQotICAgICAgICAgICAgICAgIGFycmF5W2ldID0gc3JjW2ldOwotICAgICAgICB9CisgICAgICAg
IHJldHVybiBzcmM7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYnVja2V0U29ydChhcnJheSwgZHN0
LCBidWNrZXQsIGRlcHRoKQogICAgIHsKICAgICAgICAgaWYgKGJ1Y2tldC5sZW5ndGggPCAzMiB8
fCBkZXB0aCA+IDMyKSB7Ci0gICAgICAgICAgICBtZXJnZVNvcnQoYnVja2V0LCBidWNrZXQubGVu
Z3RoLCBzdHJpbmdDb21wYXJhdG9yKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
YnVja2V0Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGFycmF5W2RzdCsrXSA9IGJ1Y2tl
dFtpXS52YWx1ZTsKKyAgICAgICAgICAgIHZhciBzb3J0ZWQgPSBtZXJnZVNvcnQoYnVja2V0LCBz
dHJpbmdDb21wYXJhdG9yKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVk
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBk
c3QsIHNvcnRlZFtpXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgZHN0Kys7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICByZXR1cm4gZHN0OwogICAgICAgICB9CiAKQEAgLTQ4MywxNCArNDMz
LDE3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgICAgIHZhciBlbnRyeSA9
IGJ1Y2tldFtpXTsKICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBlbnRyeS5zdHJpbmc7CiAgICAg
ICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PSBkZXB0aCkgewotICAgICAgICAgICAgICAgIGFy
cmF5W2RzdCsrXSA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVj
dChhcnJheSwgZHN0LCBlbnRyeS52YWx1ZSk7CisgICAgICAgICAgICAgICAgZHN0Kys7CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHZhciBj
ID0gc3RyaW5nLkBjaGFyQ29kZUF0KGRlcHRoKTsKLSAgICAgICAgICAgIGlmICghYnVja2V0c1tj
XSkKLSAgICAgICAgICAgICAgICBidWNrZXRzW2NdID0gWyBdOwotICAgICAgICAgICAgYnVja2V0
c1tjXVtidWNrZXRzW2NdLmxlbmd0aF0gPSBlbnRyeTsKKyAgICAgICAgICAgIHZhciBjQnVja2V0
ID0gYnVja2V0c1tjXTsKKyAgICAgICAgICAgIGlmIChjQnVja2V0KQorICAgICAgICAgICAgICAg
IEBwdXRCeVZhbERpcmVjdChjQnVja2V0LCBjQnVja2V0Lmxlbmd0aCwgZW50cnkpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChidWNrZXRzLCBjLCBb
ZW50cnldKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVja2V0
cy5sZW5ndGg7ICsraSkgewpAQCAtNTAyLDQyICs0NTUsMzIgQEAgZnVuY3Rpb24gc29ydChjb21w
YXJhdG9yKQogICAgICAgICByZXR1cm4gZHN0OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNvbXBh
cmF0b3JTb3J0KGFycmF5LCBsZW5ndGgsIGNvbXBhcmF0b3IpCi0gICAgewotICAgICAgICB2YXIg
dmFsdWVDb3VudCA9IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7Ci0gICAgICAgIG1lcmdlU29ydChh
cnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3Ry
aW5nU29ydChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSBj
b21wYWN0KGFycmF5LCBsZW5ndGgpOwotCi0gICAgICAgIHZhciBzdHJpbmdzID0gQG5ld0FycmF5
V2l0aFNpemUodmFsdWVDb3VudCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVD
b3VudDsgKytpKQotICAgICAgICAgICAgc3RyaW5nc1tpXSA9IHsgc3RyaW5nOiBAdG9TdHJpbmco
YXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0gfTsKLQotICAgICAgICBidWNrZXRTb3J0KGFycmF5
LCAwLCBzdHJpbmdzLCAwKTsKLSAgICB9Ci0KLSAgICB2YXIgc29ydEZ1bmN0aW9uOwotICAgIGlm
IChAaXNDYWxsYWJsZShjb21wYXJhdG9yKSkKLSAgICAgICAgc29ydEZ1bmN0aW9uID0gY29tcGFy
YXRvclNvcnQ7Ci0gICAgZWxzZSBpZiAoY29tcGFyYXRvciA9PT0gQHVuZGVmaW5lZCkKLSAgICAg
ICAgc29ydEZ1bmN0aW9uID0gc3RyaW5nU29ydDsKLSAgICBlbHNlCi0gICAgICAgIEB0aHJvd1R5
cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhlIGNvbXBhcnNpb24gZnVu
Y3Rpb24gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQiKTsKLQotICAgIHZhciBhcnJheSA9IEB0
b09iamVjdCh0aGlzLCAiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhhdCB8dGhpc3wg
bm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3Ro
KGFycmF5Lmxlbmd0aCk7Ci0KKyAgICB2YXIgaXNTdHJpbmdTb3J0ID0gZmFsc2U7CisgICAgaWYg
KGNvbXBhcmF0b3IgPT09IEB1bmRlZmluZWQpCisgICAgICAgIGlzU3RyaW5nU29ydCA9IHRydWU7
CisgICAgZWxzZSBpZiAoIUBpc0NhbGxhYmxlKGNvbXBhcmF0b3IpKQorICAgICAgICBAdGhyb3dU
eXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJhdG9yIGFy
Z3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkIik7CisKKyAgICB2YXIgcmVjZWl2
ZXIgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoYXQg
fHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAgIHZhciByZWNlaXZlckxlbmd0
aCA9IEB0b0xlbmd0aChyZWNlaXZlci5sZW5ndGgpOworICAgIAogICAgIC8vIEZvciBjb21wYXRp
YmlsaXR5IHdpdGggRmlyZWZveCBhbmQgQ2hyb21lLCBkbyBub3RoaW5nIG9ic2VydmFibGUKICAg
ICAvLyB0byB0aGUgdGFyZ2V0IGFycmF5IGlmIGl0IGhhcyAwIG9yIDEgc29ydGFibGUgcHJvcGVy
dGllcy4KLSAgICBpZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGFycmF5OworICAgIGlm
IChyZWNlaXZlckxlbmd0aCA8IDIpCisgICAgICAgIHJldHVybiByZWNlaXZlcjsKIAotICAgIHNv
cnRGdW5jdGlvbihhcnJheSwgbGVuZ3RoLCBjb21wYXJhdG9yKTsKLSAgICByZXR1cm4gYXJyYXk7
CisgICAgdmFyIGNvbXBhY3RlZCA9IFtdOworICAgIHZhciBzb3J0ZWQgPSBudWxsOworICAgIHZh
ciB1bmRlZmluZWRDb3VudCA9IGNvbXBhY3QocmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBjb21w
YWN0ZWQsIGlzU3RyaW5nU29ydCk7CisKKyAgICBpZiAoaXNTdHJpbmdTb3J0KSB7CisgICAgICAg
IHNvcnRlZCA9IEBuZXdBcnJheVdpdGhTaXplKGNvbXBhY3RlZC5sZW5ndGgpOworICAgICAgICBi
dWNrZXRTb3J0KHNvcnRlZCwgMCwgY29tcGFjdGVkLCAwKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
c29ydGVkID0gbWVyZ2VTb3J0KGNvbXBhY3RlZCwgY29tcGFyYXRvcik7CisKKyAgICBjb21taXQo
cmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENvdW50KTsKKyAgICBy
ZXR1cm4gcmVjZWl2ZXI7CiB9CiAKIEBnbG9iYWxQcml2YXRlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZpc2lv
biAyNjY3NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQCB2b2lkIE9iamVjdENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWCiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jcmVhdGVQ
cml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmRlZmluZVByb3BlcnR5UHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9w
ZXJ0eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByb3RvdHlwZU9mUHJpdmF0ZU5hbWUoKSwgb2Jq
ZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldE93blBy
b3BlcnR5TmFtZXNQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5
TmFtZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAxKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY2Nzc3KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDktMDkgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBBcnJh
eS5wcm90b3R5cGUuc29ydCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGlnaHRlbmVkIHNwZWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU4MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIGFkZGlu
ZyBuZXcgTGF5b3V0VGVzdHMgZm9yIEpTLW9ubHkgZmVhdHVyZXMgaXMgdW5kZXNpcmFibGUsIGl0
J3MgYQorICAgICAgICBxdWljay1hbmQtZGlydHkgd2F5IHRvIGltcG9ydCB0aGUgdGVzdHMgWzFd
IGFuZCBmaXggdGhlIGNhbGwgY291bnQvb3JkZXIKKyAgICAgICAgb2Ygb2JzZXJ2YWJsZSBvcGVy
YXRpb25zIHZpYSBkZWJ1ZygpIGFuZCB0ZXh0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICBUaGUg
dGVzdHMgYXJlIGltcG9ydGVkIGludG8gTGF5b3V0VGVzdHMvanMvZG9tIGluc3RlYWQgb2YgTGF5
b3V0VGVzdHMvanMgZm9yCisgICAgICAgIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyB0byBpZ25v
cmUgdGhlbSBhcyB0aGV5IHJlcXVpcmUgYXJyYXktc29ydC1oYXJuZXNzLmpzLgorCisgICAgICAg
IFRoZXNlIGZpbGVzIHdpbGwgYmUgcmVtb3ZlZCBzaG9ydGx5IGluIGZhdm9yIG9mIHRob3JvdWdo
IHRlc3QyNjIgY292ZXJhZ2UsCisgICAgICAgIHdoaWNoIGlzIHJlcXVpcmVkIGZvciB0aGUgcHJv
cG9zYWwgWzJdIHRvIGJlIG1lcmdlZC4KKworICAgICAgICBbMV06IGh0dHBzOi8vZ2lzdC5naXRo
dWIuY29tL3N6dWVuZC8wNWFlMTViNGUxMzI5YjI2NGFiNGM5YTFjZGEwOTI0MgorICAgICAgICBb
Ml06IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvcHVsbC8xNTg1CisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOiBNYXJrIGEgdGVzdCBhcyBzbG93LgorICAgICAgICAqIGpzL2Rv
bS9hcnJheS1zb3J0LSotZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vYXJy
YXktc29ydC0qLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvYXJy
YXktc29ydC0qLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZXNvdXJjZXMvYXJyYXktc29ydC1o
YXJuZXNzLmpzOiBBZGRlZC4KKwogMjAyMC0wOS0wOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nIGFmdGVyIHIy
NjY3NjEuCkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI2Njc3NykKKysrIExheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTE4NDgsNiArMTg0OCw3
IEBAIHdlYmtpdC5vcmcvYi8xMjE0NTIgWyBEZWJ1ZyBdIGZhc3QvZnJhbWUKIHdlYmtpdC5vcmcv
Yi8xMjE0NTIgWyBEZWJ1ZyBdIGZhc3QvZnJhbWVzL2xvdHMtb2YtaWZyYW1lcy5odG1sIFsgU2xv
dyBdCiB3ZWJraXQub3JnL2IvMTM1MDUzIFsgRGVidWcgXSBodG1sNWxpYi93ZWJraXQtcmVzdW1l
ci5odG1sIFsgU2xvdyBdCiBbIERlYnVnIF0ganMvZGZnLWRvdWJsZS12b3RlLWZ1enouaHRtbCBb
IFNsb3cgXQorWyBEZWJ1ZyBdIGpzL2FycmF5LXNvcnQtc21hbGwtc3BhcnNlLWFycmF5LXdpdGgt
bGFyZ2UtbGVuZ3RoLmh0bWwgWyBTbG93IF0KIFsgRGVidWcgXSBqcy9kb20vc3RyaW5nLXJlcGxh
Y2VtZW50LW91dG9mbWVtb3J5Lmh0bWwgWyBTbG93IF0KIFsgRGVidWcgXSBqcy9kZmctb3NyLWVu
dHJ5LWhvaXN0ZWQtY2xvYmJlcmVkLXN0cnVjdHVyZS1jaGVjay5odG1sIFsgU2xvdyBdCiBbIERl
YnVnIF0gZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS1jaGFyYWN0ZXItYnJ1dGUtZm9yY2UuaHRt
bCBbIFNsb3cgXQpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3It
YWRkcy10d28tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nv
ci1hZGRzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4IEBACisuc29ydChjb21wYXJhdG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1
bmRlZmluZWQsaG9sZSxmb28sYmFyLGZvbyxiYXIKKy5zb3J0KCk6CithLGIsYyxkLHVuZGVmaW5l
ZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUsZm9vLGJhcgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1hZGRzLXR3by1lbGVtZW50cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEg
QEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxl
bWVudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVj
cmVhc2VzLWxlbmd0aC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydCgpOgorYixjLHVuZGVmaW5lZCx1
bmRlZmluZWQKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVk
LHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3Jl
YXNlcy1sZW5ndGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1k
ZWxldGVzLXByZWRlY2Vzc29yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZp
bmVkLHVuZGVmaW5lZCxob2xlCisuc29ydCgpOgorYSxob2xlLGMsZCx1bmRlZmluZWQsdW5kZWZp
bmVkLHVuZGVmaW5lZCxob2xlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNz
b3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3IuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVz
LXByZWRlY2Vzc29yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5
LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1
Y2Nlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoKToKK2EsYyxkLGhvbGUsdW5kZWZpbmVk
LHVuZGVmaW5lZCxob2xlLGhvbGUKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmlu
ZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRl
bGV0ZXMtc3VjY2Vzc29yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fy
cmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMt
bGVuZ3RoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRl
ZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlLGhvbGUsaG9sZSxob2xlLGhvbGUKKy5zb3J0
KCk6CithLGIsYyxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUsaG9sZSxob2xl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLWluY3JlYXNlcy1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1h
Y2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdv
LWVsZW1lbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVt
b3Zlcy10d28tZWxlbWVudHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
OCBAQAorLnNvcnQoKToKK2IsYyx1bmRlZmluZWQsdW5kZWZpbmVkCisuc29ydChjb21wYXJhdG9y
KToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMt
dHdvLWVsZW1lbnRzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10d28tZWxlbWVudHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vz
c29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVj
ZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVj
ZXNzb3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQo
Y29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUK
Ky5zb3J0KCk6CithLGZvb2JhcixjLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9s
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVjZXNz
b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1zZXRzLXByZWRlY2Vzc29yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nl
c3Nvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5
LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29y
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KCk6Cith
LGMsZCxmb29iYXIsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorLnNvcnQoY29t
cGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNl
dHMtc3VjY2Vzc29yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXNl
dHMtc3VjY2Vzc29yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9u
LWFycmF5LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTIgQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorZ2V0IFsyXQorZ2V0IFszXQor
c2V0IFsyXSB3aXRoIGQKK3NldCBbM10gd2l0aCB1bmRlZmluZWQKK2dldCBbMl0KK2dldCBbM10K
K2MsYSxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNj
ZXNzb3JzLW9uLWFycmF5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fy
cmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXkuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw4IEBACisuc29ydChjb21wYXJhdG9yKToKK2dldCBbMl0KK3NldCBbMl0gd2l0
aCBhCitjLGIsaG9sZSxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9u
LW9iamVjdC1wcm90by5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29y
cy1vbi1vYmplY3QtcHJvdG8uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1u
b24tY29uZmlndXJhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitQQVNTIGFycmF5LnNvcnQo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmFibGUgdG8gZGVsZXRlIHByb3BlcnR5Li4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29u
ZmlndXJhYmxlLWVsZW1lbnQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9k
b20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25m
aWd1cmFibGUtZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0
LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1o
b2xlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKKy5zb3J0KCk6
CithLGIsYyxkLGZvbyx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9k
b20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3Rv
LWhvbGUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFi
bGUtcHJvdG8taG9sZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0
ZWFibGUtZWxlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK1BBU1MgYXJyYXkuc29ydCgoYSwgYikgPT4gYSAt
IGIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVh
ZG9ubHkgcHJvcGVydHkuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0
ZWFibGUtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
bm9uLXdyaXRlYWJsZS1lbGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9s
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorUEFTUyBhcnJheS5z
b3J0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byBy
ZWFkb25seSBwcm9wZXJ0eS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdy
aXRlYWJsZS1wcm90by1ob2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXBy
b3h5LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1wcm94eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBA
QAorLnNvcnQoKToKK2dldCBbJ2xlbmd0aCddCitoYXMgWycwJ10KK2dldCBbJzAnXQoraGFzIFsn
MSddCitnZXQgWycxJ10KK2hhcyBbJzInXQoraGFzIFsnMyddCitnZXQgWyczJ10KK2hhcyBbJzQn
XQorZ2V0IFsnNCddCitoYXMgWyc1J10KK2hhcyBbJzYnXQorZ2V0IFsnNiddCitoYXMgWyc3J10K
K2dldCBbJzcnXQorc2V0IFsnMCddID0gYQorc2V0IFsnMSddID0gYgorc2V0IFsnMiddID0gYwor
c2V0IFsnMyddID0gZAorc2V0IFsnNCddID0gdW5kZWZpbmVkCitzZXQgWyc1J10gPSB1bmRlZmlu
ZWQKK2RlbGV0ZSBbJzYnXQorZGVsZXRlIFsnNyddCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5
LXNvcnQtcHJveHktcHJvdG8tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1wcm90by1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACisuc29ydChjb21wYXJhdG9yKToKK2hh
cyBbJzInXQoraGFzIFsnNSddCitzZXQgWycyJ10gPSBhCitzZXQgWyc1J10gPSB1bmRlZmluZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1wcm90by5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktcHJvdG8u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9hcnJheS1zb3J0LXByb3h5LXByb3RvLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHkuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
cHJveHkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtc2hvcnQtYXJyYXlzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJheXMtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXNob3J0LWFy
cmF5cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorLnNvcnQo
Y29tcGFyYXRvcikgMC1sZW5ndGggYXJyYXk6CitnZXQgWzBdCit1bmRlZmluZWQKKy5zb3J0KCkg
MS1sZW5ndGggYXJyYXk6CitnZXQgWzBdCitzZXQgWzBdIHdpdGggYmFyCitnZXQgWzBdCitiYXIs
dW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtc2hvcnQtYXJyYXlzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtc2hvcnQtYXJy
YXlzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
c2hvcnQtYXJyYXlzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5
LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1zaG9ydC1hcnJheXMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJh
eS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1l
bGVtZW50cy5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkg
PSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdh
JywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkg
eyBhcnJheS5wdXNoKCdmb28nKTsgYXJyYXkucHVzaCgnYmFyJyk7IHJldHVybiB0aGlzLmZvbzsg
fSwKKyAgc2V0KHYpIHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBh
cmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKKwor
YXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xl
Ki8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAg
Z2V0KCkgeyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7ICBhcnJheS5wdXNoKCdmb28n
KTsgYXJyYXkucHVzaCgnYmFyJyk7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29y
dCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVu
Z3RoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24g
WsO8bmQKKworbGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRl
ZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJh
eSwgJzInLCB7CisgIGdldCgpIHsgYXJyYXkubGVuZ3RoID0gYXJyYXkubGVuZ3RoIC0gMjsgcmV0
dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1
ZygnLnNvcnQoKTonKTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3Vu
ZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdk
J107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0
dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBhcnJheS5sZW5ndGggPSBhcnJheS5sZW5ndGgg
LSAyOyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7
CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJl
ZGVjZXNzb3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3IuanMJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29y
LWRlbGV0ZXMtcHJlZGVjZXNzb3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAor
Ly8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8q
aG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRl
ZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBkZWxldGUgYXJyYXlbMV07IHJl
dHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVi
dWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOwor
bG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVu
ZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFy
cmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGRl
bGV0ZSBhcnJheVsxXTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7
CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3Nj
cmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nl
c3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3Iu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xu
ZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5l
ZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAn
MicsIHsKKyAgZ2V0KCkgeyBkZWxldGUgYXJyYXlbM107IHJldHVybiB0aGlzLmZvbzsgfSwKKyAg
c2V0KHYpIHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CithcnJh
eS5zb3J0KCk7Citsb2coYXJyYXkpOworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xl
Ki8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5l
UHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAg
c2V0KHYpIHsgZGVsZXRlIGFycmF5WzNdOyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1Zygn
LnNvcnQoY29tcGFyYXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2co
YXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0
LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGgu
anMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJh
eS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGguanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyMyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZp
bmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsK
KworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheS5s
ZW5ndGggPSBhcnJheS5sZW5ndGggKyAyOyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7
IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK2Fy
cmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVm
aW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107
CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJu
IHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBhcnJheS5sZW5ndGggPSBhcnJheS5sZW5ndGggKyAy
OyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2FycmF5LnNvcnQo
KTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10d28tZWxlbWVudHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92
ZXMtdHdvLWVsZW1lbnRzLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisK
K2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAv
KmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywg
eworICBnZXQoKSB7IGFycmF5LnBvcCgpOyBhcnJheS5wb3AoKTsgcmV0dXJuIHRoaXMuZm9vOyB9
LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsK
K2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAv
KmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5k
ZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9
LAorICBzZXQodikgeyBhcnJheS5wb3AoKTsgYXJyYXkucG9wKCk7IHRoaXMuZm9vID0gdjsgfQor
fSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+
IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0
cy1wcmVkZWNlc3Nvci5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBh
cnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUq
LywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBn
ZXQoKSB7IGFycmF5WzFdID0gJ2Zvb2Jhcic7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYp
IHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOwor
YXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5k
ZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2Qn
XTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5WzFdID0gJ2Zvb2Jhcic7IHRoaXMuZm9v
ID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFy
cmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1h
Y2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3IuanMJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0
LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMg
QEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworbGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2Mn
LCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgYXJyYXlbM10gPSAnZm9v
YmFyJzsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30p
OworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CisKK2Fy
cmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSov
LCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdl
dCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBhcnJheVszXSA9ICdmb29iYXIn
OyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7Cith
cnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3JzLW9uLWFycmF5LmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXkuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBh
cnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUq
LywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBn
ZXQoKSB7IGRlYnVnKCdnZXQgWzJdJyk7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsg
ZGVidWcoYHNldCBbMl0gd2l0aCAke3Z9YCk7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzMnLCB7CisgIGdldCgpIHsgZGVidWcoJ2dldCBbM10n
KTsgcmV0dXJuIHRoaXMuYmFyOyB9LAorICBzZXQodikgeyBkZWJ1Zyhgc2V0IFszXSB3aXRoICR7
dn1gKTsgdGhpcy5iYXIgPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicp
OworYXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0
LXByb3RvLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLmpzCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3NvcnMtb24t
b2JqZWN0LXByb3RvLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjEgQEAKKy8vIGF1dGhv
cjogU2ltb24gWsO8bmQKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSov
LCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworY29uc3Qgb2JqZWN0ID0g
e307CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsICcyJywgeworICBnZXQoKSB7IGRl
YnVnKCdnZXQgWzJdJyk7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgZGVidWcoYHNl
dCBbMl0gd2l0aCAke3Z9YCk7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmplY3QsICczJywgeworICBnZXQoKSB7IGRlYnVnKCdnZXQgWzNdJyk7IHJldHVy
biB0aGlzLmJhcjsgfSwKKyAgc2V0KHYpIHsgZGVidWcoYHNldCBbM10gd2l0aCAke3Z9YCk7IHRo
aXMuYmFyID0gdjsgfQorfSk7CisKK2FycmF5Ll9fcHJvdG9fXyA9IG9iamVjdDsKKworZGVidWco
Jy5zb3J0KGNvbXBhcmF0b3IpOicpOworQXJyYXkucHJvdG90eXBlLnNvcnQuY2FsbChhcnJheSwg
KGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24t
Y29uZmlndXJhYmxlLWVsZW1lbnQuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisK
K2NvbnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQs
IC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzYn
LCB7CisgIHZhbHVlOiAnYScsCisgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCisgIGVudW1lcmFibGU6
IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorfSk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShh
cnJheSwgJzcnLCB7CisgIHZhbHVlOiAnZCcsCisgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCisgIGVu
dW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorfSk7CisKK3Nob3VsZFRocm93KCdh
cnJheS5zb3J0KCknLCAnIlR5cGVFcnJvcjogVW5hYmxlIHRvIGRlbGV0ZSBwcm9wZXJ0eS4iJyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNv
bmZpZ3VyYWJsZS1wcm90by1ob2xlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUuanMJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1z
b3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE0IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK09iamVjdC5kZWZpbmVQcm9wZXJ0
eShPYmplY3QucHJvdG90eXBlLCAnMicsIHsKKyAgdmFsdWU6ICdmb28nLAorICBjb25maWd1cmFi
bGU6IGZhbHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogdHJ1ZSwKK30pOwor
Citjb25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVk
LCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2FycmF5LnNvcnQo
KTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQu
anMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJh
eS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE5IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFycmF5ID0gW3VuZGVmaW5l
ZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisK
K09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzEnLCB7CisgIHZhbHVlOiAnYycsCisgIGNv
bmZpZ3VyYWJsZTogdHJ1ZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IGZhbHNl
LAorfSk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzMnLCB7CisgIHZhbHVlOiAn
YicsCisgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFi
bGU6IGZhbHNlLAorfSk7CisKK3Nob3VsZFRocm93KCdhcnJheS5zb3J0KChhLCBiKSA9PiBhIC0g
YiknLCAnIlR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0
eS4iJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
bm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuanMJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1z
b3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEyIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QucHJvdG90eXBlLCAnMicsIHsKKyAgdmFsdWU6ICdmb28nLAorICBjb25maWd1cmFibGU6
IHRydWUsCisgIGVudW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiBmYWxzZSwKK30pOworCitj
b25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAv
KmhvbGUqLywgJ2EnLCAnZCddOworCitzaG91bGRUaHJvdygnYXJyYXkuc29ydCgpJywgJyJUeXBl
RXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuIicpOwpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5LXByb3Rv
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXkt
c29ydC1wcm94eS1wcm90by5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHktcHJvdG8uanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzMSBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBhcnJheSA9IFt1
bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAn
ZCddOworCitjb25zdCBwcm94eSA9IG5ldyBQcm94eSh7fSwgeworICBnZXQ6ICh0YXJnZXQsIG5h
bWUpID0+IHsKKyAgICBkZWJ1ZygiZ2V0IFsnIiArIG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4g
dGFyZ2V0W25hbWVdOworICB9LAorCisgIHNldDogKHRhcmdldCwgbmFtZSwgdmFsdWUpID0+IHsK
KyAgICBkZWJ1Zygic2V0IFsnIiArIG5hbWUgKyAiJ10gPSAiICsgdmFsdWUpOworICAgIHRhcmdl
dFtuYW1lXSA9IHZhbHVlOworICAgIHJldHVybiB0cnVlOworICB9LAorCisgIGhhczogKHRhcmdl
dCwgbmFtZSkgPT4geworICAgIGRlYnVnKCJoYXMgWyciICsgbmFtZSArICInXSIpOworICAgIHJl
dHVybiBuYW1lIGluIHRhcmdldDsKKyAgfSwKKworICBkZWxldGVQcm9wZXJ0eTogKHRhcmdldCwg
bmFtZSkgPT4geworICAgIGRlYnVnKCJkZWxldGUgWyciICsgbmFtZSArICInXSIpOworICAgIHJl
dHVybiBkZWxldGUgdGFyZ2V0W25hbWVdOworICB9Cit9KTsKKworYXJyYXkuX19wcm90b19fID0g
cHJveHk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK0FycmF5LnByb3RvdHlwZS5z
b3J0LmNhbGwoYXJyYXksIChhLCBiKSA9PiBhIC0gYik7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHkuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5LmpzCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5k
CisKK2NvbnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmlu
ZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK2NvbnN0IHByb3h5ID0gbmV3IFByb3h5KGFycmF5
LCB7CisgIGdldDogKHRhcmdldCwgbmFtZSkgPT4geworICAgIGRlYnVnKCJnZXQgWyciICsgbmFt
ZSArICInXSIpOworICAgIHJldHVybiB0YXJnZXRbbmFtZV07CisgIH0sCisKKyAgc2V0OiAodGFy
Z2V0LCBuYW1lLCB2YWx1ZSkgPT4geworICAgIGRlYnVnKCJzZXQgWyciICsgbmFtZSArICInXSA9
ICIgKyB2YWx1ZSk7CisgICAgdGFyZ2V0W25hbWVdID0gdmFsdWU7CisgICAgcmV0dXJuIHRydWU7
CisgIH0sCisKKyAgaGFzOiAodGFyZ2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImhhcyBbJyIg
KyBuYW1lICsgIiddIik7CisgICAgcmV0dXJuIG5hbWUgaW4gdGFyZ2V0OworICB9LAorCisgIGRl
bGV0ZVByb3BlcnR5OiAodGFyZ2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImRlbGV0ZSBbJyIg
KyBuYW1lICsgIiddIik7CisgICAgcmV0dXJuIGRlbGV0ZSB0YXJnZXRbbmFtZV07CisgIH0KK30p
OworCitkZWJ1ZygnLnNvcnQoKTonKTsKK0FycmF5LnByb3RvdHlwZS5zb3J0LmNhbGwocHJveHkp
OwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0
LWFycmF5cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2FycmF5LXNvcnQtc2hvcnQtYXJyYXlzLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1zaG9ydC1hcnJheXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBh
cnJheSA9IFtdOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcwJywgeworICBnZXQo
KSB7IGRlYnVnKCdnZXQgWzBdJyk7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgZGVi
dWcoYHNldCBbMF0gd2l0aCAke3Z9YCk7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCIu
c29ydChjb21wYXJhdG9yKSAwLWxlbmd0aCBhcnJheToiKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+
IGEgLSBiKTsKK2xvZyhhcnJheSk7CisKK2RlYnVnKCIuc29ydCgpIDEtbGVuZ3RoIGFycmF5OiIp
OworYXJyYXkucHVzaCgnYmFyJyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDog
TGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3Mu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gbG9nKGFycmF5KSB7
CisgIGxldCBidWYgPSAnJzsKKyAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxl
bmd0aDsgaW5kZXgrKykgeworICAgIGlmIChhcnJheS5oYXNPd25Qcm9wZXJ0eShpbmRleCkpIHsK
KyAgICAgIGJ1ZiArPSBTdHJpbmcoYXJyYXlbaW5kZXhdKTsKKyAgICB9IGVsc2UgeworICAgICAg
YnVmICs9ICdob2xlJzsKKyAgICB9CisgICAgaWYgKGluZGV4IDwgYXJyYXkubGVuZ3RoIC0gMSkg
YnVmICs9ICcsJzsKKyAgfQorICBkZWJ1ZyhidWYpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408753</attachid>
            <date>2020-09-14 15:35:56 -0700</date>
            <delta_ts>2020-09-22 15:22:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202582-20200915013554.patch</filename>
            <type>text/plain</type>
            <size>56923</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjcwNDIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI2IEBACisyMDIwLTA5LTE0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJvdG90eXBlLnNvcnQgdG8gYmUg
Y29uc2lzdGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlZCBtaWNyb2JlbmNobWFya3MgdGVzdCByZWNl
aXZlcnMgdGhhdCBhcmUgaGFsZi1zb3J0ZWQ6IDUwJSBvZiB0aGVpcgorICAgICAgICBpdGVtcyBh
bmQgaXRlbSBwYWlycyAodG8gYWNjb21vZGF0ZSBtZXJnZSBzb3J0KSBhcmUgYXQgdGhlIHJpZ2h0
IHBsYWNlLgorCisgICAgICAgIEFycmF5cyBvZiBtdWx0aXBsZSBzaXplcyAoOC8yNC82NCBpdGVt
cykgYXJlIHRlc3RlZCB3aXRoIGJvdGggdXNlcmxhbmQKKyAgICAgICAgYW5kIGRlZmF1bHQgY29t
cGFyYXRvciAodG8gY292ZXIgYnVja2V0IHNvcnQpLgorCisgICAgICAgICogQ2hha3JhQ29yZS90
ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUtanNjOiBGaXggdHlwbyBpbiBlcnJvciBtZXNz
YWdlLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJn
ZS1hcnJheS1jb21wYXJhdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mv
YXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1tZWRpdW0tYXJyYXktY29tcGFyYXRv
ci5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LW1lZGl1bS1hcnJheS5qczogQWRkZWQuCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2Fy
cmF5LXByb3RvdHlwZS1zb3J0LXNtYWxsLWFycmF5LWNvbXBhcmF0b3IuanM6IEFkZGVkLgorICAg
ICAgICAqIG1pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5q
czogQWRkZWQuCisgICAgICAgICogbW96aWxsYS9qczFfNS9BcnJheS9yZWdyZXNzLTE1NzY1Mi5q
czogU2tpcCBzb3J0aW5nIHNwYXJzZSBhcnJheSBvZiBVSU5UX01BWCBzaXplLgorICAgICAgICAq
IHN0cmVzcy9yZWdyZXNzLTE4ODU3Ny5qczogUmVwbGFjZSBzb3J0KCkgd2l0aCB1bnNoaWZ0KCkg
YW5kIHJlZmFjdG9yLgorCiAyMDIwLTA5LTE0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KIAogICAgICAgICBQcm94eSdzICJvd25LZXlzIiB0cmFwIHJlc3VsdCBzaG91
bGQgbm90IGJlIHNvcnRlZApJbmRleDogSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvQXJyYXkvYXJy
YXlfc29ydC5iYXNlbGluZS1qc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9DaGFrcmFDb3JlL3Rl
c3QvQXJyYXkvYXJyYXlfc29ydC5iYXNlbGluZS1qc2MJKHJldmlzaW9uIDI2NzA0MikKKysrIEpT
VGVzdHMvQ2hha3JhQ29yZS90ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUtanNjCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDUgKzcsNSBAQCBmb3Isc2FtcGxlLHNvbWUsc3RyaW5ncyx0ZXN0aW5n
IC0gT3V0cHV0CiAxLDIsMwogMTAKIDEsMS4yLDQsNC44LDEyCi1UeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJzaW9uIGZ1bmN0aW9uIGJlIGEgZnVuY3Rp
b24gb3IgdW5kZWZpbmVkCitUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVz
IHRoZSBjb21wYXJhdG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkCiAx
LDIsMwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQt
bGFyZ2UtYXJyYXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJheS1jb21wYXJhdG9yLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LWxhcmdlLWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
IEBACit2YXIgY29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIFsKKyAgICAgICAgMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwx
MSwxMiwxMywxNCwxNSwzMSwzMCwyOSwyOCwyNywyNiwyNSwyNCwyMywyMiwyMSwyMCwxOSwKKyAg
ICAgICAgMTgsMTcsMTYsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUs
NDYsNDcsNjMsNjIsNjEsNjAsNTksNTgsNTcsCisgICAgICAgIDU2LDU1LDU0LDUzLDUyLDUxLDUw
LDQ5LDQ4CisgICAgXS5zb3J0KGNvbXBhcmF0b3IpOworfQpJbmRleDogSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJy
YXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJv
dG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBA
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgWworICAgICAgICAiMCIsIjEi
LCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjoiLCI7IiwiPCIsIj0iLCI+IiwiPyIs
Ik8iLCJOIiwiTSIsIkwiLCJLIiwiSiIsIkkiLAorICAgICAgICAiSCIsIkciLCJGIiwiRSIsIkQi
LCJDIiwiQiIsIkEiLCJAIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIs
IloiLCJbIiwiXFwiLCJdIiwKKyAgICAgICAgIl4iLCJfIiwibyIsIm4iLCJtIiwibCIsImsiLCJq
IiwiaSIsImgiLCJnIiwiZiIsImUiLCJkIiwiYyIsImIiLCJhIiwiYCIKKyAgICBdLnNvcnQoKTsK
K30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1l
ZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NSBAQAordmFyIGNvbXBhcmF0b3IgPSAoYSwgYikgPT4gYSAtIGI7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMWU1OyArK2kpIHsKKyAgICBbMCwxLDIsMyw0LDUsMTEsMTAsOSw4LDcsNiwxMiwxMywx
NCwxNSwxNiwxNywyMywyMiwyMSwyMCwxOSwxOF0uc29ydChjb21wYXJhdG9yKTsKK30KSW5kZXg6
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJh
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1tZWRpdW0tYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMyBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkgeworICAg
IFsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiTCIsIksiLCJKIiwiSSIsIkgiLCJHIiwiTSIsIk4i
LCJPIiwiUCIsIlEiLCJSIiwiWCIsIlciLCJWIiwiVSIsIlQiLCJTIl0uc29ydCgpOworfQpJbmRl
eDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtc21hbGwtYXJy
YXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9h
cnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS1jb21wYXJhdG9yLmpzCShub25leGlzdGVu
dCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LXNtYWxs
LWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACit2YXIg
Y29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7
ICsraSkgeworICAgIFswLDEsMiwzLDcsNiw1LDRdLnNvcnQoY29tcGFyYXRvcik7Cit9CkluZGV4
OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJh
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1zbWFsbC1hcnJheS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKKyAgICBb
IkEiLCJCIiwiQyIsIkQiLCJIIiwiRyIsIkYiLCJFIl0uc29ydCgpOworfQpJbmRleDogSlNUZXN0
cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTU3NjUyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbW96aWxsYS9qczFfNS9BcnJheS9yZWdyZXNzLTE1NzY1Mi5qcwkocmV2aXNpb24gMjY3
MDQyKQorKysgSlNUZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTU3NjUyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTcsOSArMTE3LDEyIEBAIHByaW50QnVnTnVtYmVyKGJ1Zyk7CiBw
cmludFN0YXR1cyhzdW1tYXJ5KTsKIAogLy8gSlNDIGRvZXNuJ3QgcnVuIG91dCBvZiBtZW1vcnks
IHNvIHdlIGRvbid0IGV4cGVjdCBhbiBhYm5vcm1hbCBleGl0IGNvZGUgCi0vL2V4cGVjdEV4aXRD
b2RlKDMpOwotdmFyIElOX1JISU5PID0gaW5SaGlubygpOworLy8gZXhwZWN0RXhpdENvZGUoMyk7
CiAKKy8vIEFzIG9mIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwMjU4MiwgSlNDIGNvcGllcyBpbnRl
cm5hbCBzcGFyZSBhcnJheSB0byBhCisvLyB0ZW1wb3JhcnkgYnVmZmVyIGxpa2UgUmhpbm8sIFNw
aWRlck1vbmtleSwgYW5kIFY4LgorLy8gdmFyIElOX1JISU5PID0gaW5SaGlubygpOwordmFyIElO
X1JISU5PID0gdHJ1ZTsKIGlmICghSU5fUkhJTk8pCiB7CiAgIHZhciBhMT1BcnJheSgweEZGRkZG
RkZGKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg4NTc3LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg4NTc3LmpzCShyZXZpc2lvbiAyNjcwNDIpCisr
KyBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4ODU3Ny5qcwkod29ya2luZyBjb3B5KQpAQCAtMiwx
NiArMiwxMSBAQAogCiB2YXIgZXhjZXB0aW9uOwogdHJ5IHsKLSAgICB2YXIgaSA9IDI1MDAwOwot
ICAgIHZhciBhcmdzID0gW107Ci0gICAgdmFyIHYzOwotICAgIHdoaWxlIChpLS0pCi0gICAgICAg
IGFyZ3NbaV0gPSAiYSI7Ci0gICAgdmFyIGFyZ3NMaXN0ID0gYXJncy5qb2luKCk7Ci0gICAgc2V0
dGVyID0gRnVuY3Rpb24oYXJnc0xpc3QsICIiKTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
YXJncywgJzAnLCB7c2V0OiBzZXR0ZXJ9KTsKLSAgICBhcmdzLnNvcnQoKTsKLQorICAgIHZhciBh
cmdzID0gbmV3IEFycmF5KDI1MDAwKS5maWxsKCJhIik7CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGFyZ3MsICIwIiwgeworICAgICAgICBzZXQ6IG5ldyBGdW5jdGlvbihhcmdzLmpvaW4oKSwg
IiIpLAorICAgIH0pOworICAgIGFyZ3MudW5zaGlmdCgxKTsKIH0gY2F0Y2ggKGUpIHsKICAgICBl
eGNlcHRpb24gPSBlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NjcwNDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjAgQEAKKzIwMjAtMDktMTQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxl
c2hAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBBcnJheS5wcm90b3R5cGUuc29ydCB0byBi
ZSBjb25zaXN0ZW50IHdpdGggdGlnaHRlbmVkIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgc3BlYyBj
aGFuZ2UgWzFdIHRoYXQgcmVkdWNlcyBhbW91bnQgb2YgY2FzZXMgcmVzdWx0aW5nCisgICAgICAg
IGluIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgc29ydCBvcmRlciwgYWxpZ25pbmcgSlNDIHdp
dGggVjggYW5kIFNwaWRlck1vbmtleS4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHdlIGNv
bGxlY3QgYWxsIGV4aXN0aW5nIG5vbi11bmRlZmluZWQgcmVjZWl2ZXIgZWxlbWVudHMgdG8gYQor
ICAgICAgICB0ZW1wb3JhcnkgYXJyYXksIHNvcnQgaXQsIGFuZCB3cml0ZSBiYWNrIHNvcnRlZCBp
dGVtcywgZm9sbG93ZWQgYnkgYHVuZGVmaW5lZGAKKyAgICAgICAgdmFsdWVzIGFuZCBob2xlcy4K
KworICAgICAgICBUaGlzIGNoYW5nZSBpcyBwcm92ZW4gdG8gYmUgd2ViLWNvbXBhdGlibGUgKHNo
aXBwaW5nIHNpbmNlIENocm9tZSA3NikgYW5kIG5ldXRyYWwKKyAgICAgICAgb24gcGVhayBtZW1v
cnkgY29uc3VtcHRpb24gaW4gdGhlIHdpbGQuCisKKyAgICAgICAgQWx0aG91Z2ggd2UgY2FuIHVu
b2JzZXJ2YWJseSBkZXRlY3Qgc3BhcnNlIHJlY2VpdmVycywgd2UgY2FuJ3QgYXZvaWQgY3JlYXRp
bmcgYQorICAgICAgICB0ZW1wb3JhcnkgYXJyYXkgZm9yIGNvbW1vbiBjYXNlIHNpbmNlIHVzZXJs
YW5kIGNvbXBhcmF0b3JzIG1heSB0aHJvdzsgc3RyaW5nCisgICAgICAgIHNvcnRpbmcgd29uJ3Qg
bWVhc3VyYWJseSBiZW5lZml0IGZyb20gdGhpcywgb25seSBpbmNyZWFzaW5nIGNvZGUgY29tcGxl
eGl0eS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgQHB1dEJ5VmFsRGlyZWN0IHVubGVzcyB0
aGUgc3BlYyByZXF1aXJlcyBbW1NldF1dLCBhdm9pZHMgdXNpbmcKKyAgICAgICAgY2xvc3VyZSB2
YXJpYWJsZXMsIGFuZCBhZGRzIGEgZmV3IGRyaXZlLWJ5IG9wdGltaXphdGlvbnMsIHJlc3VsdGlu
ZyBpbiB+MjIlCisgICAgICAgIGZhc3RlciBzdHJpbmcgc29ydGluZyBhbmQgMTMlIHNwZWVkLXVw
IGZvciB1c2VybGFuZCBjb21wYXJhdG9ycy4KKyAgICAgICAgRHJvbWFlby9qc2xpYiBpcyBuZXV0
cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvZWNtYTI2Mi9wdWxs
LzE1ODUKKworICAgICAgICAqIGJ1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAo
c29ydC5zdHJpbmdDb21wYXJhdG9yKToKKyAgICAgICAgT3B0aW1pemF0aW9uICMxOiByZXBsYWNl
IGNoYXItYnktY2hhciBjb21wYXJpc29uIGxvb3Agd2l0aCA+IG9wZXJhdG9yLCBhbGlnbmluZwor
ICAgICAgICBKU0Mgd2l0aCBWOCBhbmQgU3BpZGVyTW9ua2V5LiBUaGlzIHNlbWFudGljYWxseSBl
cXVpdmFsZW50IGNoYW5nZSBhbG9uZSBpcyBhIH4xNSUKKyAgICAgICAgcHJvZ3Jlc3Npb24gZm9y
IHN0cmluZyBzb3J0LgorCisgICAgICAgIChzb3J0LmNvbXBhY3QpOgorICAgICAgICAoc29ydC5j
b21taXQpOgorICAgICAgICBPcHRpbWl6YXRpb24gIzI6IGNvcHkgbGFyZ2Ugbm9uLW51bWVyaWMg
YXJyYXlzIHdpdGggQGFwcGVuZE1lbWNweSBpbnN0ZWFkIG9mIGEgbG9vcC4KKyAgICAgICAgVXNp
bmcgQGFwcGVuZE1lbWNweSB1bmNvbmRpdGlvbmFsbHkgcmVncmVzc2VzIHByb3ZpZGVkIG1pY3Jv
YmVuY2htYXJrcyBhcyBpdCdzIGNvc3RseQorICAgICAgICB0byBjYWxsIGR1ZSB0byBtYW55IGNo
ZWNrcy4KKworICAgICAgICAoc29ydC5tZXJnZSk6CisgICAgICAgIE9wdGltaXphdGlvbiAjMzog
cmVwbGFjZSBgdHlwZW9mYCBjaGVjayAmIG5lZ2F0aW9uIHdpdGggc3RyaWN0IGVxdWFsaXR5Lgor
CisgICAgICAgIChzb3J0Lm1lcmdlU29ydCk6CisgICAgICAgIE9wdGltaXphdGlvbiAjNDogYWx3
YXlzIHJldHVybiBzb3J0ZWQgYXJyYXkgaW5zdGVhZCBvZiBjb3B5aW5nLCBldmVuIGlmIGl0J3Mg
dGhlIGJ1ZmZlci4KKyAgICAgICAgQWxzbywgY3JlYXRlIHRoZSBidWZmZXIgd2l0aCBjb3JyZWN0
IGxlbmd0aC4KKworICAgICAgICAoc29ydC5idWNrZXRTb3J0KToKKyAgICAgICAgKHNvcnQpOiBG
aXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAoc29ydC5jb21wYWN0U3BhcnNlKTog
RGVsZXRlZC4KKyAgICAgICAgKHNvcnQuY29tcGFjdFNsb3cpOiBEZWxldGVkLgorICAgICAgICAo
c29ydC5jb21wYXJhdG9yU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChzb3J0LnN0cmluZ1NvcnQp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICBS
ZW1vdmUgQE9iamVjdC5AZ2V0UHJvdG90eXBlT2YgYXMgaXQncyBub3cgdW51c2VkIGFuZCB3ZSBo
YXZlIEBnZXRQcm90b3R5cGVPZiBpbnRyaW5zaWMgYW55d2F5LgorCiAyMDIwLTA5LTE0ICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBQcm94eSdzICJv
d25LZXlzIiB0cmFwIHJlc3VsdCBzaG91bGQgbm90IGJlIHNvcnRlZApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9BcnJheVByb3RvdHlwZS5qcwkocmV2aXNpb24g
MjY3MDQyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsMTA1ICszMjAsNTMgQEAgZnVuY3Rpb24gc29ydChj
b21wYXJhdG9yKQogICAgICAgICB2YXIgYVN0cmluZyA9IGEuc3RyaW5nOwogICAgICAgICB2YXIg
YlN0cmluZyA9IGIuc3RyaW5nOwogCi0gICAgICAgIHZhciBhTGVuZ3RoID0gYVN0cmluZy5sZW5n
dGg7Ci0gICAgICAgIHZhciBiTGVuZ3RoID0gYlN0cmluZy5sZW5ndGg7Ci0gICAgICAgIHZhciBs
ZW5ndGggPSBtaW4oYUxlbmd0aCwgYkxlbmd0aCk7Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGFDaGFyQ29kZSA9IGFTdHJpbmcu
QGNoYXJDb2RlQXQoaSk7Ci0gICAgICAgICAgICB2YXIgYkNoYXJDb2RlID0gYlN0cmluZy5AY2hh
ckNvZGVBdChpKTsKKyAgICAgICAgaWYgKGFTdHJpbmcgPT09IGJTdHJpbmcpCisgICAgICAgICAg
ICByZXR1cm4gMDsKIAotICAgICAgICAgICAgaWYgKGFDaGFyQ29kZSA9PSBiQ2hhckNvZGUpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBhQ2hhckNvZGUg
LSBiQ2hhckNvZGU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYUxlbmd0aCAtIGJMZW5n
dGg7CisgICAgICAgIHJldHVybiBhU3RyaW5nID4gYlN0cmluZyA/IDEgOiAtMTsKICAgICB9CiAK
LSAgICAvLyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYSBzcGFyc2Ug
YXJyYXkuIFJlc3VsdCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCi0g
ICAgZnVuY3Rpb24gY29tcGFjdFNwYXJzZShhcnJheSwgZHN0LCBzcmMsIGxlbmd0aCkKKyAgICBm
dW5jdGlvbiBjb21wYWN0KHJlY2VpdmVyLCByZWNlaXZlckxlbmd0aCwgY29tcGFjdGVkLCBpc1N0
cmluZ1NvcnQpCiAgICAgewotICAgICAgICB2YXIgdmFsdWVzID0gWyBdOwotICAgICAgICB2YXIg
c2VlbiA9IHsgfTsKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSAwOwogICAgICAgICB2YXIgdW5k
ZWZpbmVkQ291bnQgPSAwOworICAgICAgICB2YXIgY29tcGFjdGVkSW5kZXggPSAwOwogCi0gICAg
ICAgIC8vIENsZWFuIHVwIGFmdGVyIHRoZSBpbi1wcm9ncmVzcyBub24tc3BhcnNlIGNvbXBhY3Rp
b24gdGhhdCBmYWlsZWQuCi0gICAgICAgIGZvciAodmFyIGkgPSBkc3Q7IGkgPCBzcmM7ICsraSkK
LSAgICAgICAgICAgIGRlbGV0ZSBhcnJheVtpXTsKLQotICAgICAgICBmb3IgKHZhciBvYmplY3Qg
PSBhcnJheTsgb2JqZWN0OyBvYmplY3QgPSBAT2JqZWN0LkBnZXRQcm90b3R5cGVPZihvYmplY3Qp
KSB7Ci0gICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lcyA9IEBPYmplY3QuQGdldE93blByb3Bl
cnR5TmFtZXMob2JqZWN0KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVy
dHlOYW1lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHByb3Bl
cnR5TmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7IC8vIEV4
Y2x1ZGUgbm9uLW51bWVyaWMgcHJvcGVydGllcyBhbmQgcHJvcGVydGllcyBwYXN0IGxlbmd0aC4K
LSAgICAgICAgICAgICAgICAgICAgaWYgKHNlZW5baW5kZXhdKSAvLyBFeGNsdWRlIGR1cGxpY2F0
ZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAg
ICAgc2VlbltpbmRleF0gPSAxOwotCi0gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFy
cmF5W2luZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGFycmF5W2luZGV4XTsKLQot
ICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IEB1bmRlZmluZWQpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICsrdW5kZWZpbmVkQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAg
IGFycmF5W3ZhbHVlQ291bnQrK10gPSB2YWx1ZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNlaXZlckxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSBpbiByZWNlaXZlcikg
eworICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlY2VpdmVyW2ldOworICAgICAgICAgICAg
ICAgIGlmICh2YWx1ZSA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAgICAgdW5kZWZp
bmVkQ291bnQrKzsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
QHB1dEJ5VmFsRGlyZWN0KGNvbXBhY3RlZCwgY29tcGFjdGVkSW5kZXgsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgaXNTdHJpbmdTb3J0ID8ge3N0cmluZzogQHRvU3RyaW5nKHZhbHVlKSwgdmFs
dWV9IDogdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBjb21wYWN0ZWRJbmRleCsrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGZvciAo
dmFyIGkgPSB2YWx1ZUNvdW50OyBpIDwgdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyArK2kp
Ci0gICAgICAgICAgICBhcnJheVtpXSA9IEB1bmRlZmluZWQ7Ci0KLSAgICAgICAgcmV0dXJuIHZh
bHVlQ291bnQ7CisgICAgICAgIHJldHVybiB1bmRlZmluZWRDb3VudDsKICAgICB9CiAKLSAgICBm
dW5jdGlvbiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKQorICAgIC8vIE1vdmUgdW5kZWZpbmVk
cyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhbiBhcnJheS4gUmVzdWx0IGlzIFt2YWx1ZXMuLi4s
IHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KKyAgICBmdW5jdGlvbiBjb21taXQocmVjZWl2ZXIs
IHJlY2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENvdW50KQogICAgIHsKLSAgICAgICAg
dmFyIGhvbGVDb3VudCA9IDA7Ci0KLSAgICAgICAgdmFyIGRzdCA9IDA7Ci0gICAgICAgIHZhciBz
cmMgPSAwOwotICAgICAgICBmb3IgKDsgc3JjIDwgbGVuZ3RoOyArK3NyYykgewotICAgICAgICAg
ICAgaWYgKCEoc3JjIGluIGFycmF5KSkgewotICAgICAgICAgICAgICAgICsraG9sZUNvdW50Owot
ICAgICAgICAgICAgICAgIGlmIChob2xlQ291bnQgPCAyNTYpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U3BhcnNlKGFycmF5LCBk
c3QsIHNyYywgbGVuZ3RoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgdmFyIHNvcnRlZExlbmd0
aCA9IHNvcnRlZC5sZW5ndGg7CisgICAgICAgIEBhc3NlcnQoc29ydGVkTGVuZ3RoICsgdW5kZWZp
bmVkQ291bnQgPD0gcmVjZWl2ZXJMZW5ndGgpOwogCi0gICAgICAgICAgICB2YXIgdmFsdWUgPSBh
cnJheVtzcmNdOwotICAgICAgICAgICAgaWYgKHZhbHVlID09PSBAdW5kZWZpbmVkKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBhcnJheVtkc3QrK10gPSB2YWx1ZTsK
KyAgICAgICAgdmFyIGkgPSAwOworICAgICAgICBpZiAoc29ydGVkTGVuZ3RoID49IDY0ICYmIHR5
cGVvZiBzb3J0ZWRbMF0gIT09ICJudW1iZXIiKSB7IC8vIGhldXJpc3RpYworICAgICAgICAgICAg
QGFwcGVuZE1lbWNweShyZWNlaXZlciwgc29ydGVkLCAwKTsKKyAgICAgICAgICAgIGkgPSBzb3J0
ZWRMZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKDsgaSA8IHNvcnRl
ZExlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHJlY2VpdmVyW2ldID0gc29ydGVkW2ldOwog
ICAgICAgICB9CiAKLSAgICAgICAgdmFyIHZhbHVlQ291bnQgPSBkc3Q7Ci0gICAgICAgIHZhciB1
bmRlZmluZWRDb3VudCA9IGxlbmd0aCAtIHZhbHVlQ291bnQgLSBob2xlQ291bnQ7Ci0KLSAgICAg
ICAgZm9yICh2YXIgaSA9IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5kZWZpbmVkQ291
bnQ7ICsraSkKLSAgICAgICAgICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKLQotICAgICAgICBm
b3IgKHZhciBpID0gdmFsdWVDb3VudCArIHVuZGVmaW5lZENvdW50OyBpIDwgbGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBkZWxldGUgYXJyYXlbaV07CisgICAgICAgIGZvciAoOyBpIDwgc29ydGVk
TGVuZ3RoICsgdW5kZWZpbmVkQ291bnQ7ICsraSkKKyAgICAgICAgICAgIHJlY2VpdmVyW2ldID0g
QHVuZGVmaW5lZDsKIAotICAgICAgICByZXR1cm4gdmFsdWVDb3VudDsKLSAgICB9Ci0KLSAgICAv
LyBNb3ZlIHVuZGVmaW5lZHMgYW5kIGhvbGVzIHRvIHRoZSBlbmQgb2YgYW4gYXJyYXkuIFJlc3Vs
dCBpcyBbdmFsdWVzLi4uLCB1bmRlZmluZWRzLi4uLCBob2xlcy4uLl0uCi0gICAgZnVuY3Rpb24g
Y29tcGFjdChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcnJheS5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKGFycmF5W2ldID09PSBAdW5k
ZWZpbmVkKQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3Ro
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIGZvciAoOyBp
IDwgcmVjZWl2ZXJMZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSByZWNlaXZlcltpXTsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwg
d2lkdGgsIGNvbXBhcmF0b3IpCkBAIC00MzEsMjYgKzM3OSwyOSBAQCBmdW5jdGlvbiBzb3J0KGNv
bXBhcmF0b3IpCiAgICAgICAgIGZvciAodmFyIGRzdEluZGV4ID0gbGVmdDsgZHN0SW5kZXggPCBy
aWdodEVuZDsgKytkc3RJbmRleCkgewogICAgICAgICAgICAgaWYgKHJpZ2h0IDwgcmlnaHRFbmQp
IHsKICAgICAgICAgICAgICAgICBpZiAobGVmdCA+PSBsZWZ0RW5kKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRzdFtkc3RJbmRleF0gPSBzcmNbcmlnaHQrK107CisgICAgICAgICAgICAgICAgICAg
IEBwdXRCeVZhbERpcmVjdChkc3QsIGRzdEluZGV4LCBzcmNbcmlnaHRdKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmlnaHQrKzsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NzgyNSBvbiBib29sZWFuIHNwZWNpYWwtY2FzaW5nCiAgICAg
ICAgICAgICAgICAgdmFyIGNvbXBhcmlzb25SZXN1bHQgPSBjb21wYXJhdG9yKHNyY1tyaWdodF0s
IHNyY1tsZWZ0XSk7Ci0gICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgY29tcGFyaXNvblJlc3Vs
dCA9PT0gImJvb2xlYW4iICYmICFjb21wYXJpc29uUmVzdWx0KSB8fCBjb21wYXJpc29uUmVzdWx0
IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW3JpZ2h0Kytd
OworICAgICAgICAgICAgICAgIGlmIChjb21wYXJpc29uUmVzdWx0ID09PSBmYWxzZSB8fCBjb21w
YXJpc29uUmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3Qo
ZHN0LCBkc3RJbmRleCwgc3JjW3JpZ2h0XSk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Kys7
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLQogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW2xlZnQrK107Cisg
ICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgc3JjW2xlZnRdKTsKKyAg
ICAgICAgICAgIGxlZnQrKzsKICAgICAgICAgfQogICAgIH0KIAotICAgIGZ1bmN0aW9uIG1lcmdl
U29ydChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcikKKyAgICBmdW5jdGlvbiBtZXJnZVNv
cnQoYXJyYXksIGNvbXBhcmF0b3IpCiAgICAgewotICAgICAgICB2YXIgYnVmZmVyID0gWyBdOwot
ICAgICAgICBidWZmZXIubGVuZ3RoID0gdmFsdWVDb3VudDsKKyAgICAgICAgdmFyIHZhbHVlQ291
bnQgPSBhcnJheS5sZW5ndGg7CisgICAgICAgIHZhciBidWZmZXIgPSBAbmV3QXJyYXlXaXRoU2l6
ZSh2YWx1ZUNvdW50KTsKIAogICAgICAgICB2YXIgZHN0ID0gYnVmZmVyOwogICAgICAgICB2YXIg
c3JjID0gYXJyYXk7CkBAIC00NjMsMTggKzQxNCwxNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0
b3IpCiAgICAgICAgICAgICBkc3QgPSB0bXA7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc3Jj
ICE9IGFycmF5KSB7Ci0gICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgdmFsdWVDb3VudDsg
aSsrKQotICAgICAgICAgICAgICAgIGFycmF5W2ldID0gc3JjW2ldOwotICAgICAgICB9CisgICAg
ICAgIHJldHVybiBzcmM7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gYnVja2V0U29ydChhcnJheSwg
ZHN0LCBidWNrZXQsIGRlcHRoKQogICAgIHsKICAgICAgICAgaWYgKGJ1Y2tldC5sZW5ndGggPCAz
MiB8fCBkZXB0aCA+IDMyKSB7Ci0gICAgICAgICAgICBtZXJnZVNvcnQoYnVja2V0LCBidWNrZXQu
bGVuZ3RoLCBzdHJpbmdDb21wYXJhdG9yKTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYnVja2V0Lmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGFycmF5W2RzdCsrXSA9IGJ1
Y2tldFtpXS52YWx1ZTsKKyAgICAgICAgICAgIHZhciBzb3J0ZWQgPSBtZXJnZVNvcnQoYnVja2V0
LCBzdHJpbmdDb21wYXJhdG9yKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29y
dGVkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5
LCBkc3QsIHNvcnRlZFtpXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgZHN0Kys7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm4gZHN0OwogICAgICAgICB9CiAKQEAgLTQ4MywxNCAr
NDMzLDE3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgICAgIHZhciBlbnRy
eSA9IGJ1Y2tldFtpXTsKICAgICAgICAgICAgIHZhciBzdHJpbmcgPSBlbnRyeS5zdHJpbmc7CiAg
ICAgICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PSBkZXB0aCkgewotICAgICAgICAgICAgICAg
IGFycmF5W2RzdCsrXSA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIEBwdXRCeVZhbERp
cmVjdChhcnJheSwgZHN0LCBlbnRyeS52YWx1ZSk7CisgICAgICAgICAgICAgICAgZHN0Kys7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHZh
ciBjID0gc3RyaW5nLkBjaGFyQ29kZUF0KGRlcHRoKTsKLSAgICAgICAgICAgIGlmICghYnVja2V0
c1tjXSkKLSAgICAgICAgICAgICAgICBidWNrZXRzW2NdID0gWyBdOwotICAgICAgICAgICAgYnVj
a2V0c1tjXVtidWNrZXRzW2NdLmxlbmd0aF0gPSBlbnRyeTsKKyAgICAgICAgICAgIHZhciBjQnVj
a2V0ID0gYnVja2V0c1tjXTsKKyAgICAgICAgICAgIGlmIChjQnVja2V0KQorICAgICAgICAgICAg
ICAgIEBwdXRCeVZhbERpcmVjdChjQnVja2V0LCBjQnVja2V0Lmxlbmd0aCwgZW50cnkpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChidWNrZXRzLCBj
LCBbZW50cnldKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVj
a2V0cy5sZW5ndGg7ICsraSkgewpAQCAtNTAyLDQyICs0NTUsMzIgQEAgZnVuY3Rpb24gc29ydChj
b21wYXJhdG9yKQogICAgICAgICByZXR1cm4gZHN0OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNv
bXBhcmF0b3JTb3J0KGFycmF5LCBsZW5ndGgsIGNvbXBhcmF0b3IpCi0gICAgewotICAgICAgICB2
YXIgdmFsdWVDb3VudCA9IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7Ci0gICAgICAgIG1lcmdlU29y
dChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RyaW5nU29ydChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgdmFyIHZhbHVlQ291bnQg
PSBjb21wYWN0KGFycmF5LCBsZW5ndGgpOwotCi0gICAgICAgIHZhciBzdHJpbmdzID0gQG5ld0Fy
cmF5V2l0aFNpemUodmFsdWVDb3VudCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFs
dWVDb3VudDsgKytpKQotICAgICAgICAgICAgc3RyaW5nc1tpXSA9IHsgc3RyaW5nOiBAdG9TdHJp
bmcoYXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0gfTsKLQotICAgICAgICBidWNrZXRTb3J0KGFy
cmF5LCAwLCBzdHJpbmdzLCAwKTsKLSAgICB9Ci0KLSAgICB2YXIgc29ydEZ1bmN0aW9uOwotICAg
IGlmIChAaXNDYWxsYWJsZShjb21wYXJhdG9yKSkKLSAgICAgICAgc29ydEZ1bmN0aW9uID0gY29t
cGFyYXRvclNvcnQ7Ci0gICAgZWxzZSBpZiAoY29tcGFyYXRvciA9PT0gQHVuZGVmaW5lZCkKLSAg
ICAgICAgc29ydEZ1bmN0aW9uID0gc3RyaW5nU29ydDsKLSAgICBlbHNlCi0gICAgICAgIEB0aHJv
d1R5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhlIGNvbXBhcnNpb24g
ZnVuY3Rpb24gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQiKTsKLQotICAgIHZhciBhcnJheSA9
IEB0b09iamVjdCh0aGlzLCAiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgbGVuZ3RoID0gQHRvTGVu
Z3RoKGFycmF5Lmxlbmd0aCk7Ci0KKyAgICB2YXIgaXNTdHJpbmdTb3J0ID0gZmFsc2U7CisgICAg
aWYgKGNvbXBhcmF0b3IgPT09IEB1bmRlZmluZWQpCisgICAgICAgIGlzU3RyaW5nU29ydCA9IHRy
dWU7CisgICAgZWxzZSBpZiAoIUBpc0NhbGxhYmxlKGNvbXBhcmF0b3IpKQorICAgICAgICBAdGhy
b3dUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJhdG9y
IGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkIik7CisKKyAgICB2YXIgcmVj
ZWl2ZXIgPSBAdG9PYmplY3QodGhpcywgIkFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRo
YXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpOworICAgIHZhciByZWNlaXZlckxl
bmd0aCA9IEB0b0xlbmd0aChyZWNlaXZlci5sZW5ndGgpOworICAgIAogICAgIC8vIEZvciBjb21w
YXRpYmlsaXR5IHdpdGggRmlyZWZveCBhbmQgQ2hyb21lLCBkbyBub3RoaW5nIG9ic2VydmFibGUK
ICAgICAvLyB0byB0aGUgdGFyZ2V0IGFycmF5IGlmIGl0IGhhcyAwIG9yIDEgc29ydGFibGUgcHJv
cGVydGllcy4KLSAgICBpZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGFycmF5OworICAg
IGlmIChyZWNlaXZlckxlbmd0aCA8IDIpCisgICAgICAgIHJldHVybiByZWNlaXZlcjsKIAotICAg
IHNvcnRGdW5jdGlvbihhcnJheSwgbGVuZ3RoLCBjb21wYXJhdG9yKTsKLSAgICByZXR1cm4gYXJy
YXk7CisgICAgdmFyIGNvbXBhY3RlZCA9IFtdOworICAgIHZhciBzb3J0ZWQgPSBudWxsOworICAg
IHZhciB1bmRlZmluZWRDb3VudCA9IGNvbXBhY3QocmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBj
b21wYWN0ZWQsIGlzU3RyaW5nU29ydCk7CisKKyAgICBpZiAoaXNTdHJpbmdTb3J0KSB7CisgICAg
ICAgIHNvcnRlZCA9IEBuZXdBcnJheVdpdGhTaXplKGNvbXBhY3RlZC5sZW5ndGgpOworICAgICAg
ICBidWNrZXRTb3J0KHNvcnRlZCwgMCwgY29tcGFjdGVkLCAwKTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgc29ydGVkID0gbWVyZ2VTb3J0KGNvbXBhY3RlZCwgY29tcGFyYXRvcik7CisKKyAgICBjb21t
aXQocmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBzb3J0ZWQsIHVuZGVmaW5lZENvdW50KTsKKyAg
ICByZXR1cm4gcmVjZWl2ZXI7CiB9CiAKIEBnbG9iYWxQcml2YXRlCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCShyZXZp
c2lvbiAyNjcwNDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQCB2b2lkIE9iamVj
dENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWCiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jcmVh
dGVQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmRlZmluZVByb3BlcnR5UHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQ
cm9wZXJ0eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByb3RvdHlwZU9mUHJpdmF0ZU5hbWUoKSwg
b2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldE93
blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3Bl
cnR5TmFtZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY3MDQyKQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDktMTQgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBB
cnJheS5wcm90b3R5cGUuc29ydCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGlnaHRlbmVkIHNwZWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIGFk
ZGluZyBuZXcgTGF5b3V0VGVzdHMgZm9yIEpTLW9ubHkgZmVhdHVyZXMgaXMgdW5kZXNpcmFibGUs
IGl0J3MgYQorICAgICAgICBxdWljay1hbmQtZGlydHkgd2F5IHRvIGltcG9ydCB0aGUgdGVzdHMg
WzFdIGFuZCBmaXggdGhlIGNhbGwgY291bnQvb3JkZXIKKyAgICAgICAgb2Ygb2JzZXJ2YWJsZSBv
cGVyYXRpb25zIHZpYSBkZWJ1ZygpIGFuZCB0ZXh0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICBU
aGUgdGVzdHMgYXJlIGltcG9ydGVkIGludG8gTGF5b3V0VGVzdHMvanMvZG9tIGluc3RlYWQgb2Yg
TGF5b3V0VGVzdHMvanMgZm9yCisgICAgICAgIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyB0byBp
Z25vcmUgdGhlbSBhcyB0aGV5IHJlcXVpcmUgYXJyYXktc29ydC1oYXJuZXNzLmpzLgorCisgICAg
ICAgIFRoZXNlIGZpbGVzIHdpbGwgYmUgcmVtb3ZlZCBzaG9ydGx5IGluIGZhdm9yIG9mIHRob3Jv
dWdoIHRlc3QyNjIgY292ZXJhZ2UsCisgICAgICAgIHdoaWNoIGlzIHJlcXVpcmVkIGZvciB0aGUg
cHJvcG9zYWwgWzJdIHRvIGJlIG1lcmdlZC4KKworICAgICAgICBbMV06IGh0dHBzOi8vZ2lzdC5n
aXRodWIuY29tL3N6dWVuZC8wNWFlMTViNGUxMzI5YjI2NGFiNGM5YTFjZGEwOTI0MgorICAgICAg
ICBbMl06IGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvcHVsbC8xNTg1CisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOiBNYXJrIGEgdGVzdCBhcyBzbG93LgorICAgICAgICAqIGpz
L2RvbS9hcnJheS1zb3J0LSotZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
YXJyYXktc29ydC0qLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC0qLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZXNvdXJjZXMvYXJyYXktc29y
dC1oYXJuZXNzLmpzOiBBZGRlZC4KKwogMjAyMC0wOS0xNCAgSGVjdG9yIExvcGV6ICA8aGVjdG9y
X2lfbG9wZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgaU9TIERlYnVnIF0gaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZWxlY3Rpb24vKjogNCB0ZXN0cyBhcmUgZmxha3kg
dGltZW91dHMKSW5kZXg6IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjY3MDQyKQorKysgTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTg1NCw2ICsxODU0
LDcgQEAgd2Via2l0Lm9yZy9iLzEyMTQ1MiBbIERlYnVnIF0gZmFzdC9mcmFtZQogd2Via2l0Lm9y
Zy9iLzEyMTQ1MiBbIERlYnVnIF0gZmFzdC9mcmFtZXMvbG90cy1vZi1pZnJhbWVzLmh0bWwgWyBT
bG93IF0KIHdlYmtpdC5vcmcvYi8xMzUwNTMgWyBEZWJ1ZyBdIGh0bWw1bGliL3dlYmtpdC1yZXN1
bWVyLmh0bWwgWyBTbG93IF0KIFsgRGVidWcgXSBqcy9kZmctZG91YmxlLXZvdGUtZnV6ei5odG1s
IFsgU2xvdyBdCitbIERlYnVnIF0ganMvYXJyYXktc29ydC1zbWFsbC1zcGFyc2UtYXJyYXktd2l0
aC1sYXJnZS1sZW5ndGguaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGpzL2RvbS9zdHJpbmctcmVw
bGFjZW1lbnQtb3V0b2ZtZW1vcnkuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGpzL2RmZy1vc3It
ZW50cnktaG9pc3RlZC1jbG9iYmVyZWQtc3RydWN0dXJlLWNoZWNrLmh0bWwgWyBTbG93IF0KIFsg
RGVidWcgXSBlZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5LWNoYXJhY3Rlci1icnV0ZS1mb3JjZS5o
dG1sIFsgU2xvdyBdCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nv
ci1hZGRzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLWFkZHMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVk
LHVuZGVmaW5lZCxob2xlLGZvbyxiYXIsZm9vLGJhcgorLnNvcnQoKToKK2EsYixjLGQsdW5kZWZp
bmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxmb28sYmFyCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50
cy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFj
Y2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1l
bGVtZW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1k
ZWNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KCk6CitiLGMsdW5kZWZpbmVk
LHVuZGVmaW5lZAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmlu
ZWQsdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVj
cmVhc2VzLWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29y
LWRlbGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFj
Y2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRl
ZmluZWQsdW5kZWZpbmVkLGhvbGUKKy5zb3J0KCk6CithLGhvbGUsYyxkLHVuZGVmaW5lZCx1bmRl
ZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0
ZXMtcHJlZGVjZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJy
YXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3Iu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMt
c3VjY2Vzc29yLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9k
b20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydCgpOgorYSxjLGQsaG9sZSx1bmRlZmlu
ZWQsdW5kZWZpbmVkLGhvbGUsaG9sZQorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVm
aW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3It
ZGVsZXRlcy1zdWNjZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29y
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNl
cy1sZW5ndGgtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGgtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVu
ZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUsaG9sZSxob2xlLGhvbGUsaG9sZQorLnNv
cnQoKToKK2EsYixjLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxob2xlLGhv
bGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVu
Z3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNj
ZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGguaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0
LWFjY2Vzc29yLWluY3JlYXNlcy1sZW5ndGguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10
d28tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1y
ZW1vdmVzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4IEBACisuc29ydCgpOgorYixjLHVuZGVmaW5lZCx1bmRlZmluZWQKKy5zb3J0KGNvbXBhcmF0
b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zl
cy10d28tZWxlbWVudHMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNj
ZXNzb3ItcmVtb3Zlcy10d28tZWxlbWVudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVk
ZWNlc3Nvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVk
ZWNlc3Nvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29y
dChjb21wYXJhdG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9s
ZQorLnNvcnQoKToKK2EsZm9vYmFyLGMsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxo
b2xlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNl
c3Nvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFj
Y2Vzc29yLXNldHMtcHJlZGVjZXNzb3IuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3Vj
Y2Vzc29yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNz
b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoKToK
K2EsYyxkLGZvb2Jhcix1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlCisuc29ydChj
b21wYXJhdG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3It
c2V0cy1zdWNjZXNzb3IuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3It
c2V0cy1zdWNjZXNzb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMt
b24tYXJyYXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorLnNvcnQoY29tcGFyYXRvcik6CitnZXQgWzJdCitnZXQgWzNd
CitzZXQgWzJdIHdpdGggZAorc2V0IFszXSB3aXRoIHVuZGVmaW5lZAorZ2V0IFsyXQorZ2V0IFsz
XQorYyxhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJyYXkuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tYXJy
YXkuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1h
Y2Nlc3NvcnMtb24tYXJyYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3Rv
LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorZ2V0IFsyXQorc2V0IFsyXSB3
aXRoIGEKK2MsYixob2xlLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMt
b24tb2JqZWN0LXByb3RvLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNz
b3JzLW9uLW9iamVjdC1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0
LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUgQEAKK1BBU1MgYXJyYXkuc29y
dCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuYWJsZSB0byBkZWxldGUgcHJvcGVydHku
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVu
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1j
b25maWd1cmFibGUtZWxlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtZWxlbWVudC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNv
bmZpZ3VyYWJsZS1lbGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9s
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3Rv
LWhvbGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNiBAQAorLnNvcnQo
KToKK2EsYixjLGQsZm9vLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJv
dG8taG9sZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1z
b3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3Vy
YWJsZS1wcm90by1ob2xlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdy
aXRlYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorUEFTUyBhcnJheS5zb3J0KChhLCBiKSA9PiBh
IC0gYikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byBy
ZWFkb25seSBwcm9wZXJ0eS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdy
aXRlYWJsZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1ub24td3JpdGVhYmxlLWVsZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1o
b2xlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9s
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitQQVNTIGFycmF5
LnNvcnQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRv
IHJlYWRvbmx5IHByb3BlcnR5Li4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24t
d3JpdGVhYmxlLXByb3RvLWhvbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9k
b20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuaHRtbAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhv
bGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
cHJveHktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LXByb3h5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4
IEBACisuc29ydCgpOgorZ2V0IFsnbGVuZ3RoJ10KK2hhcyBbJzAnXQorZ2V0IFsnMCddCitoYXMg
WycxJ10KK2dldCBbJzEnXQoraGFzIFsnMiddCitoYXMgWyczJ10KK2dldCBbJzMnXQoraGFzIFsn
NCddCitnZXQgWyc0J10KK2hhcyBbJzUnXQoraGFzIFsnNiddCitnZXQgWyc2J10KK2hhcyBbJzcn
XQorZ2V0IFsnNyddCitzZXQgWycwJ10gPSBhCitzZXQgWycxJ10gPSBiCitzZXQgWycyJ10gPSBj
CitzZXQgWyczJ10gPSBkCitzZXQgWyc0J10gPSB1bmRlZmluZWQKK3NldCBbJzUnXSA9IHVuZGVm
aW5lZAorZGVsZXRlIFsnNiddCitkZWxldGUgWyc3J10KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1wcm94eS1wcm90by1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktcHJvdG8tZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgor
aGFzIFsnMiddCitoYXMgWyc1J10KK3NldCBbJzInXSA9IGEKK3NldCBbJzUnXSA9IHVuZGVmaW5l
ZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktcHJvdG8uaHRtbAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1wcm90
by5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtcHJveHktcHJvdG8uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHkuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1wcm94eS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJheXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXNob3J0LWFycmF5cy1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtc2hvcnQt
YXJyYXlzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACisuc29y
dChjb21wYXJhdG9yKSAwLWxlbmd0aCBhcnJheToKK2dldCBbMF0KK3VuZGVmaW5lZAorLnNvcnQo
KSAxLWxlbmd0aCBhcnJheToKK2dldCBbMF0KK3NldCBbMF0gd2l0aCBiYXIKK2dldCBbMF0KK2Jh
cix1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1hcnJheXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1zaG9ydC1h
cnJheXMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1zaG9ydC1hcnJheXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJy
YXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdv
LWVsZW1lbnRzLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJh
eSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywg
J2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQo
KSB7IGFycmF5LnB1c2goJ2ZvbycpOyBhcnJheS5wdXNoKCdiYXInKTsgcmV0dXJuIHRoaXMuZm9v
OyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29t
cGFyYXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwor
CithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhv
bGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgewor
ICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgIGFycmF5LnB1c2goJ2Zv
bycpOyBhcnJheS5wdXNoKCdiYXInKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5z
b3J0KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGgu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1z
b3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1s
ZW5ndGguanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0aG9yOiBTaW1v
biBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVu
ZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFy
cmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheS5sZW5ndGggPSBhcnJheS5sZW5ndGggLSAyOyBy
ZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2Rl
YnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBb
dW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywg
J2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBy
ZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5Lmxlbmd0aCA9IGFycmF5Lmxlbmd0
aCAtIDI7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTon
KTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1w
cmVkZWNlc3Nvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5qcwkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNz
b3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBA
CisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywg
Lypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IGRlbGV0ZSBhcnJheVsxXTsg
cmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitk
ZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7
Citsb2coYXJyYXkpOworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywg
dW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHko
YXJyYXksICcyJywgeworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsg
ZGVsZXRlIGFycmF5WzFdOyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTon
KTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3IuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFj
Y2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nv
ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrD
vG5kCisKK2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZp
bmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXks
ICcyJywgeworICBnZXQoKSB7IGRlbGV0ZSBhcnJheVszXTsgcmV0dXJuIHRoaXMuZm9vOyB9LAor
ICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2Fy
cmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhv
bGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZp
bmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9LAor
ICBzZXQodikgeyBkZWxldGUgYXJyYXlbM107IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVn
KCcuc29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xv
ZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNv
cnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0
aC5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9IFt1bmRl
ZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCdd
OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IGFycmF5
Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aCArIDI7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYp
IHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOwor
YXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5k
ZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2Qn
XTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5Lmxlbmd0aCA9IGFycmF5Lmxlbmd0aCAr
IDI7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29y
dCgpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVt
b3Zlcy10d28tZWxlbWVudHMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQK
KworbGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQs
IC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzIn
LCB7CisgIGdldCgpIHsgYXJyYXkucG9wKCk7IGFycmF5LnBvcCgpOyByZXR1cm4gdGhpcy5mb287
IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydCgpOicp
OworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycs
IC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0
LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1cm4gdGhpcy5mb287
IH0sCisgIHNldCh2KSB7IGFycmF5LnBvcCgpOyBhcnJheS5wb3AoKTsgdGhpcy5mb28gPSB2OyB9
Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikg
PT4gYSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1z
ZXRzLXByZWRlY2Vzc29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworbGV0
IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9s
ZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7Cisg
IGdldCgpIHsgYXJyYXlbMV0gPSAnZm9vYmFyJzsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQo
dikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7
CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOworCithcnJheSA9IFt1
bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAn
ZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IHJl
dHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgYXJyYXlbMV0gPSAnZm9vYmFyJzsgdGhpcy5m
b28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2co
YXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0
LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5qcwko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNv
cnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MyBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAn
YycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheVszXSA9ICdm
b29iYXInOyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQor
fSk7CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKwor
YXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xl
Ki8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAg
Z2V0KCkgeyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGFycmF5WzNdID0gJ2Zvb2Jh
cic7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsK
K2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1hY2Nlc3NvcnMtb24tYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0
IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9s
ZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7Cisg
IGdldCgpIHsgZGVidWcoJ2dldCBbMl0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikg
eyBkZWJ1Zyhgc2V0IFsyXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMycsIHsKKyAgZ2V0KCkgeyBkZWJ1ZygnZ2V0IFsz
XScpOyByZXR1cm4gdGhpcy5iYXI7IH0sCisgIHNldCh2KSB7IGRlYnVnKGBzZXQgWzNdIHdpdGgg
JHt2fWApOyB0aGlzLmJhciA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6
Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDogTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmpl
Y3QtcHJvdG8uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uanMJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1v
bi1vYmplY3QtcHJvdG8uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorLy8gYXV0
aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xl
Ki8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitjb25zdCBvYmplY3Qg
PSB7fTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJzInLCB7CisgIGdldCgpIHsg
ZGVidWcoJ2dldCBbMl0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBkZWJ1Zyhg
c2V0IFsyXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KG9iamVjdCwgJzMnLCB7CisgIGdldCgpIHsgZGVidWcoJ2dldCBbM10nKTsgcmV0
dXJuIHRoaXMuYmFyOyB9LAorICBzZXQodikgeyBkZWJ1Zyhgc2V0IFszXSB3aXRoICR7dn1gKTsg
dGhpcy5iYXIgPSB2OyB9Cit9KTsKKworYXJyYXkuX19wcm90b19fID0gb2JqZWN0OworCitkZWJ1
ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7CitBcnJheS5wcm90b3R5cGUuc29ydC5jYWxsKGFycmF5
LCAoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5v
bi1jb25maWd1cmFibGUtZWxlbWVudC5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50Lmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQK
KworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5l
ZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAn
NicsIHsKKyAgdmFsdWU6ICdhJywKKyAgY29uZmlndXJhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJs
ZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCit9KTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5
KGFycmF5LCAnNycsIHsKKyAgdmFsdWU6ICdkJywKKyAgY29uZmlndXJhYmxlOiBmYWxzZSwKKyAg
ZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IHRydWUsCit9KTsKKworc2hvdWxkVGhyb3co
J2FycmF5LnNvcnQoKScsICciVHlwZUVycm9yOiBVbmFibGUgdG8gZGVsZXRlIHByb3BlcnR5LiIn
KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24t
Y29uZmlndXJhYmxlLXByb3RvLWhvbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTQgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5wcm90b3R5cGUsICcyJywgeworICB2YWx1ZTogJ2ZvbycsCisgIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsCisgIGVudW1lcmFibGU6IHRydWUsCisgIHdyaXRhYmxlOiB0cnVlLAorfSk7
CisKK2NvbnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmlu
ZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29y
dCgpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVu
dC5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Fy
cmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1lbGVtZW50LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworY29uc3QgYXJyYXkgPSBbdW5kZWZp
bmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsK
KworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMScsIHsKKyAgdmFsdWU6ICdjJywKKyAg
Y29uZmlndXJhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogZmFs
c2UsCit9KTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMycsIHsKKyAgdmFsdWU6
ICdiJywKKyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0
YWJsZTogZmFsc2UsCit9KTsKKworc2hvdWxkVGhyb3coJ2FycmF5LnNvcnQoKGEsIGIpID0+IGEg
LSBiKScsICciVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3Bl
cnR5LiInKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29y
dC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTIgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5wcm90b3R5cGUsICcyJywgeworICB2YWx1ZTogJ2ZvbycsCisgIGNvbmZpZ3VyYWJs
ZTogdHJ1ZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3JpdGFibGU6IGZhbHNlLAorfSk7CisK
K2NvbnN0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQs
IC8qaG9sZSovLCAnYScsICdkJ107CisKK3Nob3VsZFRocm93KCdhcnJheS5zb3J0KCknLCAnIlR5
cGVFcnJvcjogQXR0ZW1wdGVkIHRvIGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4iJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHktcHJv
dG8uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJh
eS1zb3J0LXByb3h5LXByb3RvLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS1wcm90by5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDMxIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFycmF5ID0g
W3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScs
ICdkJ107CisKK2NvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9LCB7CisgIGdldDogKHRhcmdldCwg
bmFtZSkgPT4geworICAgIGRlYnVnKCJnZXQgWyciICsgbmFtZSArICInXSIpOworICAgIHJldHVy
biB0YXJnZXRbbmFtZV07CisgIH0sCisKKyAgc2V0OiAodGFyZ2V0LCBuYW1lLCB2YWx1ZSkgPT4g
eworICAgIGRlYnVnKCJzZXQgWyciICsgbmFtZSArICInXSA9ICIgKyB2YWx1ZSk7CisgICAgdGFy
Z2V0W25hbWVdID0gdmFsdWU7CisgICAgcmV0dXJuIHRydWU7CisgIH0sCisKKyAgaGFzOiAodGFy
Z2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImhhcyBbJyIgKyBuYW1lICsgIiddIik7CisgICAg
cmV0dXJuIG5hbWUgaW4gdGFyZ2V0OworICB9LAorCisgIGRlbGV0ZVByb3BlcnR5OiAodGFyZ2V0
LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImRlbGV0ZSBbJyIgKyBuYW1lICsgIiddIik7CisgICAg
cmV0dXJuIGRlbGV0ZSB0YXJnZXRbbmFtZV07CisgIH0KK30pOworCithcnJheS5fX3Byb3RvX18g
PSBwcm94eTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworQXJyYXkucHJvdG90eXBl
LnNvcnQuY2FsbChhcnJheSwgKGEsIGIpID0+IGEgLSBiKTsKSW5kZXg6IExheW91dFRlc3RzL2pz
L2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHkuanMJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8
bmQKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVm
aW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworY29uc3QgcHJveHkgPSBuZXcgUHJveHkoYXJy
YXksIHsKKyAgZ2V0OiAodGFyZ2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImdldCBbJyIgKyBu
YW1lICsgIiddIik7CisgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgfSwKKworICBzZXQ6ICh0
YXJnZXQsIG5hbWUsIHZhbHVlKSA9PiB7CisgICAgZGVidWcoInNldCBbJyIgKyBuYW1lICsgIidd
ID0gIiArIHZhbHVlKTsKKyAgICB0YXJnZXRbbmFtZV0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgfSwKKworICBoYXM6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiaGFzIFsn
IiArIG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4gbmFtZSBpbiB0YXJnZXQ7CisgIH0sCisKKyAg
ZGVsZXRlUHJvcGVydHk6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiZGVsZXRlIFsn
IiArIG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4gZGVsZXRlIHRhcmdldFtuYW1lXTsKKyAgfQor
fSk7CisKK2RlYnVnKCcuc29ydCgpOicpOworQXJyYXkucHJvdG90eXBlLnNvcnQuY2FsbChwcm94
eSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtc2hv
cnQtYXJyYXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvYXJyYXktc29ydC1zaG9ydC1hcnJheXMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0
IGFycmF5ID0gW107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzAnLCB7CisgIGdl
dCgpIHsgZGVidWcoJ2dldCBbMF0nKTsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBk
ZWJ1Zyhgc2V0IFswXSB3aXRoICR7dn1gKTsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWco
Ii5zb3J0KGNvbXBhcmF0b3IpIDAtbGVuZ3RoIGFycmF5OiIpOworYXJyYXkuc29ydCgoYSwgYikg
PT4gYSAtIGIpOworbG9nKGFycmF5KTsKKworZGVidWcoIi5zb3J0KCkgMS1sZW5ndGggYXJyYXk6
Iik7CithcnJheS5wdXNoKCdiYXInKTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVz
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBsb2coYXJyYXkp
IHsKKyAgbGV0IGJ1ZiA9ICcnOworICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXku
bGVuZ3RoOyBpbmRleCsrKSB7CisgICAgaWYgKGFycmF5Lmhhc093blByb3BlcnR5KGluZGV4KSkg
eworICAgICAgYnVmICs9IFN0cmluZyhhcnJheVtpbmRleF0pOworICAgIH0gZWxzZSB7CisgICAg
ICBidWYgKz0gJ2hvbGUnOworICAgIH0KKyAgICBpZiAoaW5kZXggPCBhcnJheS5sZW5ndGggLSAx
KSBidWYgKz0gJywnOworICB9CisgIGRlYnVnKGJ1Zik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409408</attachid>
            <date>2020-09-22 15:22:07 -0700</date>
            <delta_ts>2020-09-23 19:46:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202582-20200923012205.patch</filename>
            <type>text/plain</type>
            <size>56997</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjc0MjEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI2IEBACisyMDIwLTA5LTIyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBVcGRhdGUgQXJyYXkucHJvdG90eXBlLnNvcnQgdG8gYmUg
Y29uc2lzdGVudCB3aXRoIHRpZ2h0ZW5lZCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1
a2UgU3V6dWtpIGFuZCBLZWl0aCBNaWxsZXIuCisKKyAgICAgICAgUHJvdmlkZWQgbWljcm9iZW5j
aG1hcmtzIHRlc3QgcmVjZWl2ZXJzIHRoYXQgYXJlIGhhbGYtc29ydGVkOiA1MCUgb2YgdGhlaXIK
KyAgICAgICAgaXRlbXMgYW5kIGl0ZW0gcGFpcnMgKHRvIGFjY29tb2RhdGUgbWVyZ2Ugc29ydCkg
YXJlIGF0IHRoZSByaWdodCBwbGFjZS4KKworICAgICAgICBBcnJheXMgb2YgbXVsdGlwbGUgc2l6
ZXMgKDgvMjQvNjQgaXRlbXMpIGFyZSB0ZXN0ZWQgd2l0aCBib3RoIHVzZXJsYW5kCisgICAgICAg
IGFuZCBkZWZhdWx0IGNvbXBhcmF0b3IgKHRvIGNvdmVyIGJ1Y2tldCBzb3J0KS4KKworICAgICAg
ICAqIENoYWtyYUNvcmUvdGVzdC9BcnJheS9hcnJheV9zb3J0LmJhc2VsaW5lLWpzYzogRml4IHR5
cG8gaW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvYXJyYXktcHJv
dG90eXBlLXNvcnQtbGFyZ2UtYXJyYXktY29tcGFyYXRvci5qczogQWRkZWQuCisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LWxhcmdlLWFycmF5LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVt
LWFycmF5LWNvbXBhcmF0b3IuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9h
cnJheS1wcm90b3R5cGUtc29ydC1tZWRpdW0tYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS1jb21wYXJhdG9y
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNv
cnQtc21hbGwtYXJyYXkuanM6IEFkZGVkLgorICAgICAgICAqIG1vemlsbGEvanMxXzUvQXJyYXkv
cmVncmVzcy0xNTc2NTIuanM6IFNraXAgc29ydGluZyBzcGFyc2UgYXJyYXkgb2YgVUlOVF9NQVgg
c2l6ZS4KKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xODg1NzcuanM6IFJlcGxhY2Ugc29ydCgp
IHdpdGggdW5zaGlmdCgpIGFuZCByZWZhY3Rvci4KKwogMjAyMC0wOS0yMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEJpZ0ludCBzaG91bGQgd29y
ayB3aXRoIE1hcCAvIFNldApJbmRleDogSlNUZXN0cy9DaGFrcmFDb3JlL3Rlc3QvQXJyYXkvYXJy
YXlfc29ydC5iYXNlbGluZS1qc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9DaGFrcmFDb3JlL3Rl
c3QvQXJyYXkvYXJyYXlfc29ydC5iYXNlbGluZS1qc2MJKHJldmlzaW9uIDI2NzQyMSkKKysrIEpT
VGVzdHMvQ2hha3JhQ29yZS90ZXN0L0FycmF5L2FycmF5X3NvcnQuYmFzZWxpbmUtanNjCSh3b3Jr
aW5nIGNvcHkpCkBAIC03LDUgKzcsNSBAQCBmb3Isc2FtcGxlLHNvbWUsc3RyaW5ncyx0ZXN0aW5n
IC0gT3V0cHV0CiAxLDIsMwogMTAKIDEsMS4yLDQsNC44LDEyCi1UeXBlRXJyb3I6IEFycmF5LnBy
b3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJzaW9uIGZ1bmN0aW9uIGJlIGEgZnVuY3Rp
b24gb3IgdW5kZWZpbmVkCitUeXBlRXJyb3I6IEFycmF5LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVz
IHRoZSBjb21wYXJhdG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gb3IgdW5kZWZpbmVkCiAx
LDIsMwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQt
bGFyZ2UtYXJyYXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1sYXJnZS1hcnJheS1jb21wYXJhdG9yLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LWxhcmdlLWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
IEBACit2YXIgY29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIFsKKyAgICAgICAgMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwx
MSwxMiwxMywxNCwxNSwzMSwzMCwyOSwyOCwyNywyNiwyNSwyNCwyMywyMiwyMSwyMCwxOSwKKyAg
ICAgICAgMTgsMTcsMTYsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUs
NDYsNDcsNjMsNjIsNjEsNjAsNTksNTgsNTcsCisgICAgICAgIDU2LDU1LDU0LDUzLDUyLDUxLDUw
LDQ5LDQ4CisgICAgXS5zb3J0KGNvbXBhcmF0b3IpOworfQpJbmRleDogSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbGFyZ2UtYXJy
YXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJv
dG90eXBlLXNvcnQtbGFyZ2UtYXJyYXkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBA
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgWworICAgICAgICAiMCIsIjEi
LCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjoiLCI7IiwiPCIsIj0iLCI+IiwiPyIs
Ik8iLCJOIiwiTSIsIkwiLCJLIiwiSiIsIkkiLAorICAgICAgICAiSCIsIkciLCJGIiwiRSIsIkQi
LCJDIiwiQiIsIkEiLCJAIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIs
IloiLCJbIiwiXFwiLCJdIiwKKyAgICAgICAgIl4iLCJfIiwibyIsIm4iLCJtIiwibCIsImsiLCJq
IiwiaSIsImgiLCJnIiwiZiIsImUiLCJkIiwiYyIsImIiLCJhIiwiYCIKKyAgICBdLnNvcnQoKTsK
K30KSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1l
ZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCShu
b25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1z
b3J0LW1lZGl1bS1hcnJheS1jb21wYXJhdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NSBAQAordmFyIGNvbXBhcmF0b3IgPSAoYSwgYikgPT4gYSAtIGI7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMWU1OyArK2kpIHsKKyAgICBbMCwxLDIsMyw0LDUsMTEsMTAsOSw4LDcsNiwxMiwxMywx
NCwxNSwxNiwxNywyMywyMiwyMSwyMCwxOSwxOF0uc29ydChjb21wYXJhdG9yKTsKK30KSW5kZXg6
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LW1lZGl1bS1hcnJh
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1tZWRpdW0tYXJyYXkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtbWVkaXVtLWFycmF5LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMyBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkgeworICAg
IFsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiTCIsIksiLCJKIiwiSSIsIkgiLCJHIiwiTSIsIk4i
LCJPIiwiUCIsIlEiLCJSIiwiWCIsIlciLCJWIiwiVSIsIlQiLCJTIl0uc29ydCgpOworfQpJbmRl
eDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvYXJyYXktcHJvdG90eXBlLXNvcnQtc21hbGwtYXJy
YXktY29tcGFyYXRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9h
cnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS1jb21wYXJhdG9yLmpzCShub25leGlzdGVu
dCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2FycmF5LXByb3RvdHlwZS1zb3J0LXNtYWxs
LWFycmF5LWNvbXBhcmF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACit2YXIg
Y29tcGFyYXRvciA9IChhLCBiKSA9PiBhIC0gYjsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7
ICsraSkgeworICAgIFswLDEsMiwzLDcsNiw1LDRdLnNvcnQoY29tcGFyYXRvcik7Cit9CkluZGV4
OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJh
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9hcnJheS1wcm90b3R5
cGUtc29ydC1zbWFsbC1hcnJheS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9hcnJheS1wcm90b3R5cGUtc29ydC1zbWFsbC1hcnJheS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKKyAgICBb
IkEiLCJCIiwiQyIsIkQiLCJIIiwiRyIsIkYiLCJFIl0uc29ydCgpOworfQpJbmRleDogSlNUZXN0
cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTU3NjUyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvbW96aWxsYS9qczFfNS9BcnJheS9yZWdyZXNzLTE1NzY1Mi5qcwkocmV2aXNpb24gMjY3
NDIxKQorKysgSlNUZXN0cy9tb3ppbGxhL2pzMV81L0FycmF5L3JlZ3Jlc3MtMTU3NjUyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTcsOSArMTE3LDEyIEBAIHByaW50QnVnTnVtYmVyKGJ1Zyk7CiBw
cmludFN0YXR1cyhzdW1tYXJ5KTsKIAogLy8gSlNDIGRvZXNuJ3QgcnVuIG91dCBvZiBtZW1vcnks
IHNvIHdlIGRvbid0IGV4cGVjdCBhbiBhYm5vcm1hbCBleGl0IGNvZGUgCi0vL2V4cGVjdEV4aXRD
b2RlKDMpOwotdmFyIElOX1JISU5PID0gaW5SaGlubygpOworLy8gZXhwZWN0RXhpdENvZGUoMyk7
CiAKKy8vIEFzIG9mIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwMjU4MiwgSlNDIGNvcGllcyBpbnRl
cm5hbCBzcGFyZSBhcnJheSB0byBhCisvLyB0ZW1wb3JhcnkgYnVmZmVyIGxpa2UgUmhpbm8sIFNw
aWRlck1vbmtleSwgYW5kIFY4LgorLy8gdmFyIElOX1JISU5PID0gaW5SaGlubygpOwordmFyIElO
X1JISU5PID0gdHJ1ZTsKIGlmICghSU5fUkhJTk8pCiB7CiAgIHZhciBhMT1BcnJheSgweEZGRkZG
RkZGKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg4NTc3LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTg4NTc3LmpzCShyZXZpc2lvbiAyNjc0MjEpCisr
KyBKU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE4ODU3Ny5qcwkod29ya2luZyBjb3B5KQpAQCAtMiwx
NiArMiwxMSBAQAogCiB2YXIgZXhjZXB0aW9uOwogdHJ5IHsKLSAgICB2YXIgaSA9IDI1MDAwOwot
ICAgIHZhciBhcmdzID0gW107Ci0gICAgdmFyIHYzOwotICAgIHdoaWxlIChpLS0pCi0gICAgICAg
IGFyZ3NbaV0gPSAiYSI7Ci0gICAgdmFyIGFyZ3NMaXN0ID0gYXJncy5qb2luKCk7Ci0gICAgc2V0
dGVyID0gRnVuY3Rpb24oYXJnc0xpc3QsICIiKTsKLSAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
YXJncywgJzAnLCB7c2V0OiBzZXR0ZXJ9KTsKLSAgICBhcmdzLnNvcnQoKTsKLQorICAgIHZhciBh
cmdzID0gbmV3IEFycmF5KDI1MDAwKS5maWxsKCJhIik7CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KGFyZ3MsICIwIiwgeworICAgICAgICBzZXQ6IG5ldyBGdW5jdGlvbihhcmdzLmpvaW4oKSwg
IiIpLAorICAgIH0pOworICAgIGFyZ3MudW5zaGlmdCgxKTsKIH0gY2F0Y2ggKGUpIHsKICAgICBl
eGNlcHRpb24gPSBlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
Njc0MjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNjIgQEAKKzIwMjAtMDktMjIgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxl
c2hAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0ZSBBcnJheS5wcm90b3R5cGUuc29ydCB0byBi
ZSBjb25zaXN0ZW50IHdpdGggdGlnaHRlbmVkIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1
c3VrZSBTdXp1a2kgYW5kIEtlaXRoIE1pbGxlci4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxl
bWVudHMgdGhlIHNwZWMgY2hhbmdlIFsxXSB0aGF0IHJlZHVjZXMgYW1vdW50IG9mIGNhc2VzIHJl
c3VsdGluZworICAgICAgICBpbiBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHNvcnQgb3JkZXIs
IGFsaWduaW5nIEpTQyB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuCisKKyAgICAgICAgVG8gYWNo
aWV2ZSB0aGlzLCB3ZSBjb2xsZWN0IGFsbCBleGlzdGluZyBub24tdW5kZWZpbmVkIHJlY2VpdmVy
IGVsZW1lbnRzIHRvIGEKKyAgICAgICAgdGVtcG9yYXJ5IGFycmF5LCBzb3J0IGl0LCBhbmQgd3Jp
dGUgYmFjayBzb3J0ZWQgaXRlbXMsIGZvbGxvd2VkIGJ5IGB1bmRlZmluZWRgCisgICAgICAgIHZh
bHVlcyBhbmQgaG9sZXMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgcHJvdmVuIHRvIGJlIHdl
Yi1jb21wYXRpYmxlIChzaGlwcGluZyBzaW5jZSBDaHJvbWUgNzYpIGFuZCBuZXV0cmFsCisgICAg
ICAgIG9uIHBlYWsgbWVtb3J5IGNvbnN1bXB0aW9uIGluIHRoZSB3aWxkLgorCisgICAgICAgIEFs
dGhvdWdoIHdlIGNhbiB1bm9ic2VydmFibHkgZGV0ZWN0IHNwYXJzZSByZWNlaXZlcnMsIHdlIGNh
bid0IGF2b2lkIGNyZWF0aW5nIGEKKyAgICAgICAgdGVtcG9yYXJ5IGFycmF5IGZvciBjb21tb24g
Y2FzZSBzaW5jZSB1c2VybGFuZCBjb21wYXJhdG9ycyBtYXkgdGhyb3c7IHN0cmluZworICAgICAg
ICBzb3J0aW5nIHdvbid0IG1lYXN1cmFibHkgYmVuZWZpdCBmcm9tIHRoaXMsIG9ubHkgaW5jcmVh
c2luZyBjb2RlIGNvbXBsZXhpdHkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgdXNlcyBAcHV0QnlW
YWxEaXJlY3QgdW5sZXNzIHRoZSBzcGVjIHJlcXVpcmVzIFtbU2V0XV0sIGF2b2lkcyB1c2luZwor
ICAgICAgICBjbG9zdXJlIHZhcmlhYmxlcywgYW5kIGFkZHMgYSBmZXcgZHJpdmUtYnkgb3B0aW1p
emF0aW9ucywgcmVzdWx0aW5nIGluIH4yMiUKKyAgICAgICAgZmFzdGVyIHN0cmluZyBzb3J0aW5n
IGFuZCAxMyUgc3BlZWQtdXAgZm9yIHVzZXJsYW5kIGNvbXBhcmF0b3JzLgorICAgICAgICBEcm9t
YWVvL2pzbGliIGlzIG5ldXRyYWwuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20v
dGMzOS9lY21hMjYyL3B1bGwvMTU4NQorCisgICAgICAgICogYnVpbHRpbnMvQXJyYXlQcm90b3R5
cGUuanM6CisgICAgICAgIChzb3J0LnN0cmluZ0NvbXBhcmF0b3IpOgorICAgICAgICBPcHRpbWl6
YXRpb24gIzE6IHJlcGxhY2UgY2hhci1ieS1jaGFyIGNvbXBhcmlzb24gbG9vcCB3aXRoID4gb3Bl
cmF0b3IsIGFsaWduaW5nCisgICAgICAgIEpTQyB3aXRoIFY4IGFuZCBTcGlkZXJNb25rZXkuIFRo
aXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgY2hhbmdlIGFsb25lIGlzIGEgfjE1JQorICAgICAg
ICBwcm9ncmVzc2lvbiBmb3Igc3RyaW5nIHNvcnQuCisKKyAgICAgICAgKHNvcnQuY29tcGFjdCk6
CisgICAgICAgIChzb3J0LmNvbW1pdCk6CisgICAgICAgIE9wdGltaXphdGlvbiAjMjogY29weSBs
YXJnZSBub24tbnVtZXJpYyBhcnJheXMgaW4gYSBsb29wIHJhdGhlciB0aGFuIEBhcHBlbmRNZW1j
cHkuCisgICAgICAgIFVzaW5nIHRoZSBsYXR0ZXIgdW5jb25kaXRpb25hbGx5IHJlZ3Jlc3NlcyBw
cm92aWRlZCBtaWNyb2JlbmNobWFya3MuCisKKyAgICAgICAgKHNvcnQubWVyZ2UpOgorICAgICAg
ICBPcHRpbWl6YXRpb24gIzM6IHJlcGxhY2UgYHR5cGVvZmAgY2hlY2sgYW5kIG5lZ2F0aW9uIHdp
dGggc3RyaWN0IGVxdWFsaXR5LgorCisgICAgICAgIChzb3J0Lm1lcmdlU29ydCk6CisgICAgICAg
IE9wdGltaXphdGlvbiAjNDogYWx3YXlzIHJldHVybiBzb3J0ZWQgYXJyYXkgaW5zdGVhZCBvZiBj
b3B5aW5nLCBldmVuIGlmIGl0J3MgdGhlIGJ1ZmZlci4KKyAgICAgICAgVHdlYWs6IGNyZWF0ZSB0
aGUgYnVmZmVyIHdpdGggY29ycmVjdCBsZW5ndGguCisKKyAgICAgICAgKHNvcnQuYnVja2V0U29y
dCk6CisgICAgICAgIE9wdGltaXphdGlvbiAjNTogYXZvaWQgZW1pdHRpbmcgMiBleHRyYSBnZXRf
YnlfdmFsIG9wcyBieSBzYXZpbmcgYnVja2V0IGxvb2t1cCB0byBhIHZhcmlhYmxlLgorICAgICAg
ICBUd2VhazogY3JlYXRlIG5ldyBidWNrZXQgdmlhIGFycmF5IGxpdGVyYWwuCisKKyAgICAgICAg
KHNvcnQpOiBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAoc29ydC5jb21wYWN0
U3BhcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKHNvcnQuY29tcGFjdFNsb3cpOiBEZWxldGVkLgor
ICAgICAgICAoc29ydC5jb21wYXJhdG9yU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChzb3J0LnN0
cmluZ1NvcnQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICBSZW1vdmUgQE9iamVjdC5AZ2V0UHJvdG90eXBlT2YgYXMgaXQncyBub3cgdW51c2Vk
IGFuZCB3ZSBoYXZlIEBnZXRQcm90b3R5cGVPZiBpbnRyaW5zaWMgYW55d2F5LgorCiAyMDIwLTA5
LTIxICBQYXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBNSVBT
IGxlYWksbGVhcCB3aGVuIG9mZnNldCBpcyBub256ZXJvCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0FycmF5UHJvdG90eXBlLmpzCShyZXZpc2lvbiAyNjc0MjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlQcm90b3R5cGUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTMyMCwxMDUgKzMyMCw1NCBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0
b3IpCiAgICAgICAgIHZhciBhU3RyaW5nID0gYS5zdHJpbmc7CiAgICAgICAgIHZhciBiU3RyaW5n
ID0gYi5zdHJpbmc7CiAKLSAgICAgICAgdmFyIGFMZW5ndGggPSBhU3RyaW5nLmxlbmd0aDsKLSAg
ICAgICAgdmFyIGJMZW5ndGggPSBiU3RyaW5nLmxlbmd0aDsKLSAgICAgICAgdmFyIGxlbmd0aCA9
IG1pbihhTGVuZ3RoLCBiTGVuZ3RoKTsKLQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgYUNoYXJDb2RlID0gYVN0cmluZy5AY2hhckNv
ZGVBdChpKTsKLSAgICAgICAgICAgIHZhciBiQ2hhckNvZGUgPSBiU3RyaW5nLkBjaGFyQ29kZUF0
KGkpOworICAgICAgICBpZiAoYVN0cmluZyA9PT0gYlN0cmluZykKKyAgICAgICAgICAgIHJldHVy
biAwOwogCi0gICAgICAgICAgICBpZiAoYUNoYXJDb2RlID09IGJDaGFyQ29kZSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgcmV0dXJuIGFDaGFyQ29kZSAtIGJDaGFy
Q29kZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBhTGVuZ3RoIC0gYkxlbmd0aDsKKyAg
ICAgICAgcmV0dXJuIGFTdHJpbmcgPiBiU3RyaW5nID8gMSA6IC0xOwogICAgIH0KIAotICAgIC8v
IE1vdmUgdW5kZWZpbmVkcyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhIHNwYXJzZSBhcnJheS4g
UmVzdWx0IGlzIFt2YWx1ZXMuLi4sIHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KLSAgICBmdW5j
dGlvbiBjb21wYWN0U3BhcnNlKGFycmF5LCBkc3QsIHNyYywgbGVuZ3RoKQorICAgIGZ1bmN0aW9u
IGNvbXBhY3QocmVjZWl2ZXIsIHJlY2VpdmVyTGVuZ3RoLCBjb21wYWN0ZWQsIGlzU3RyaW5nU29y
dCkKICAgICB7Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbIF07Ci0gICAgICAgIHZhciBzZWVuID0g
eyB9OwotICAgICAgICB2YXIgdmFsdWVDb3VudCA9IDA7CiAgICAgICAgIHZhciB1bmRlZmluZWRD
b3VudCA9IDA7CisgICAgICAgIHZhciBjb21wYWN0ZWRJbmRleCA9IDA7CiAKLSAgICAgICAgLy8g
Q2xlYW4gdXAgYWZ0ZXIgdGhlIGluLXByb2dyZXNzIG5vbi1zcGFyc2UgY29tcGFjdGlvbiB0aGF0
IGZhaWxlZC4KLSAgICAgICAgZm9yICh2YXIgaSA9IGRzdDsgaSA8IHNyYzsgKytpKQotICAgICAg
ICAgICAgZGVsZXRlIGFycmF5W2ldOwotCi0gICAgICAgIGZvciAodmFyIG9iamVjdCA9IGFycmF5
OyBvYmplY3Q7IG9iamVjdCA9IEBPYmplY3QuQGdldFByb3RvdHlwZU9mKG9iamVjdCkpIHsKLSAg
ICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gQE9iamVjdC5AZ2V0T3duUHJvcGVydHlOYW1l
cyhvYmplY3QpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gcHJvcGVydHlOYW1l
c1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBsZW5ndGgpIHsgLy8gRXhjbHVkZSBu
b24tbnVtZXJpYyBwcm9wZXJ0aWVzIGFuZCBwcm9wZXJ0aWVzIHBhc3QgbGVuZ3RoLgotICAgICAg
ICAgICAgICAgICAgICBpZiAoc2VlbltpbmRleF0pIC8vIEV4Y2x1ZGUgZHVwbGljYXRlcy4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBzZWVu
W2luZGV4XSA9IDE7Ci0KLSAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5k
ZXhdOwotICAgICAgICAgICAgICAgICAgICBkZWxldGUgYXJyYXlbaW5kZXhdOwotCi0gICAgICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gQHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgKyt1bmRlZmluZWRDb3VudDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgYXJyYXlb
dmFsdWVDb3VudCsrXSA9IHZhbHVlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY2Vp
dmVyTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpIGluIHJlY2VpdmVyKSB7CisgICAg
ICAgICAgICAgICAgdmFyIHZhbHVlID0gcmVjZWl2ZXJbaV07CisgICAgICAgICAgICAgICAgaWYg
KHZhbHVlID09PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgICArK3VuZGVmaW5lZENv
dW50OworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBAcHV0QnlW
YWxEaXJlY3QoY29tcGFjdGVkLCBjb21wYWN0ZWRJbmRleCwgCisgICAgICAgICAgICAgICAgICAg
ICAgICBpc1N0cmluZ1NvcnQgPyB7c3RyaW5nOiBAdG9TdHJpbmcodmFsdWUpLCB2YWx1ZX0gOiB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICsrY29tcGFjdGVkSW5kZXg7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZm9yICh2YXIgaSA9
IHZhbHVlQ291bnQ7IGkgPCB2YWx1ZUNvdW50ICsgdW5kZWZpbmVkQ291bnQ7ICsraSkKLSAgICAg
ICAgICAgIGFycmF5W2ldID0gQHVuZGVmaW5lZDsKLQotICAgICAgICByZXR1cm4gdmFsdWVDb3Vu
dDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb21wYWN0U2xvdyhhcnJheSwgbGVuZ3RoKQotICAg
IHsKLSAgICAgICAgdmFyIGhvbGVDb3VudCA9IDA7Ci0KLSAgICAgICAgdmFyIGRzdCA9IDA7Ci0g
ICAgICAgIHZhciBzcmMgPSAwOwotICAgICAgICBmb3IgKDsgc3JjIDwgbGVuZ3RoOyArK3NyYykg
ewotICAgICAgICAgICAgaWYgKCEoc3JjIGluIGFycmF5KSkgewotICAgICAgICAgICAgICAgICsr
aG9sZUNvdW50OwotICAgICAgICAgICAgICAgIGlmIChob2xlQ291bnQgPCAyNTYpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBjb21wYWN0U3Bh
cnNlKGFycmF5LCBkc3QsIHNyYywgbGVuZ3RoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgdmFyIHZhbHVlID0gYXJyYXlbc3JjXTsKLSAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gQHVu
ZGVmaW5lZCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgYXJyYXlb
ZHN0KytdID0gdmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgdmFsdWVDb3VudCA9IGRz
dDsKLSAgICAgICAgdmFyIHVuZGVmaW5lZENvdW50ID0gbGVuZ3RoIC0gdmFsdWVDb3VudCAtIGhv
bGVDb3VudDsKLQotICAgICAgICBmb3IgKHZhciBpID0gdmFsdWVDb3VudDsgaSA8IHZhbHVlQ291
bnQgKyB1bmRlZmluZWRDb3VudDsgKytpKQotICAgICAgICAgICAgYXJyYXlbaV0gPSBAdW5kZWZp
bmVkOwotCi0gICAgICAgIGZvciAodmFyIGkgPSB2YWx1ZUNvdW50ICsgdW5kZWZpbmVkQ291bnQ7
IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGRlbGV0ZSBhcnJheVtpXTsKLQotICAgICAg
ICByZXR1cm4gdmFsdWVDb3VudDsKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZENvdW50OwogICAg
IH0KIAogICAgIC8vIE1vdmUgdW5kZWZpbmVkcyBhbmQgaG9sZXMgdG8gdGhlIGVuZCBvZiBhbiBh
cnJheS4gUmVzdWx0IGlzIFt2YWx1ZXMuLi4sIHVuZGVmaW5lZHMuLi4sIGhvbGVzLi4uXS4KLSAg
ICBmdW5jdGlvbiBjb21wYWN0KGFycmF5LCBsZW5ndGgpCisgICAgZnVuY3Rpb24gY29tbWl0KHJl
Y2VpdmVyLCByZWNlaXZlckxlbmd0aCwgc29ydGVkLCB1bmRlZmluZWRDb3VudCkKICAgICB7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgIGlmIChhcnJheVtpXSA9PT0gQHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICByZXR1cm4g
Y29tcGFjdFNsb3coYXJyYXksIGxlbmd0aCk7CisgICAgICAgIEBhc3NlcnQoQGlzSlNBcnJheShz
b3J0ZWQpKTsKKyAgICAgICAgdmFyIHNvcnRlZExlbmd0aCA9IHNvcnRlZC5sZW5ndGg7CisgICAg
ICAgIEBhc3NlcnQoc29ydGVkTGVuZ3RoICsgdW5kZWZpbmVkQ291bnQgPD0gcmVjZWl2ZXJMZW5n
dGgpOworCisgICAgICAgIHZhciBpID0gMDsKKyAgICAgICAgaWYgKEBpc0pTQXJyYXkocmVjZWl2
ZXIpICYmIHNvcnRlZExlbmd0aCA+PSA2NCAmJiB0eXBlb2Ygc29ydGVkWzBdICE9PSAibnVtYmVy
IikgeyAvLyBoZXVyaXN0aWMKKyAgICAgICAgICAgIEBhcHBlbmRNZW1jcHkocmVjZWl2ZXIsIHNv
cnRlZCwgMCk7CisgICAgICAgICAgICBpID0gc29ydGVkTGVuZ3RoOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgZm9yICg7IGkgPCBzb3J0ZWRMZW5ndGg7ICsraSkKKyAgICAgICAgICAg
ICAgICByZWNlaXZlcltpXSA9IHNvcnRlZFtpXTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVy
biBsZW5ndGg7CisgICAgICAgIGZvciAoOyBpIDwgc29ydGVkTGVuZ3RoICsgdW5kZWZpbmVkQ291
bnQ7ICsraSkKKyAgICAgICAgICAgIHJlY2VpdmVyW2ldID0gQHVuZGVmaW5lZDsKKworICAgICAg
ICBmb3IgKDsgaSA8IHJlY2VpdmVyTGVuZ3RoOyArK2kpCisgICAgICAgICAgICBkZWxldGUgcmVj
ZWl2ZXJbaV07CiAgICAgfQogCiAgICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBzcmMsIHNyY0luZGV4
LCBzcmNFbmQsIHdpZHRoLCBjb21wYXJhdG9yKQpAQCAtNDMxLDI2ICszODAsMzAgQEAgZnVuY3Rp
b24gc29ydChjb21wYXJhdG9yKQogICAgICAgICBmb3IgKHZhciBkc3RJbmRleCA9IGxlZnQ7IGRz
dEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0SW5kZXgpIHsKICAgICAgICAgICAgIGlmIChyaWdodCA8
IHJpZ2h0RW5kKSB7CiAgICAgICAgICAgICAgICAgaWYgKGxlZnQgPj0gbGVmdEVuZCkgewotICAg
ICAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXhdID0gc3JjW3JpZ2h0KytdOworICAgICAgICAg
ICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoZHN0LCBkc3RJbmRleCwgc3JjW3JpZ2h0XSk7Cisg
ICAgICAgICAgICAgICAgICAgICsrcmlnaHQ7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc4MjUgb24gYm9vbGVhbiBzcGVjaWFsLWNh
c2luZwogICAgICAgICAgICAgICAgIHZhciBjb21wYXJpc29uUmVzdWx0ID0gY29tcGFyYXRvcihz
cmNbcmlnaHRdLCBzcmNbbGVmdF0pOwotICAgICAgICAgICAgICAgIGlmICgodHlwZW9mIGNvbXBh
cmlzb25SZXN1bHQgPT09ICJib29sZWFuIiAmJiAhY29tcGFyaXNvblJlc3VsdCkgfHwgY29tcGFy
aXNvblJlc3VsdCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IHNy
Y1tyaWdodCsrXTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyaXNvblJlc3VsdCA9PT0gZmFs
c2UgfHwgY29tcGFyaXNvblJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQHB1dEJ5
VmFsRGlyZWN0KGRzdCwgZHN0SW5kZXgsIHNyY1tyaWdodF0pOworICAgICAgICAgICAgICAgICAg
ICArK3JpZ2h0OwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IHNyY1ts
ZWZ0KytdOworICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGRzdCwgZHN0SW5kZXgsIHNyY1ts
ZWZ0XSk7CisgICAgICAgICAgICArK2xlZnQ7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmdW5j
dGlvbiBtZXJnZVNvcnQoYXJyYXksIHZhbHVlQ291bnQsIGNvbXBhcmF0b3IpCisgICAgZnVuY3Rp
b24gbWVyZ2VTb3J0KGFycmF5LCBjb21wYXJhdG9yKQogICAgIHsKLSAgICAgICAgdmFyIGJ1ZmZl
ciA9IFsgXTsKLSAgICAgICAgYnVmZmVyLmxlbmd0aCA9IHZhbHVlQ291bnQ7CisgICAgICAgIHZh
ciB2YWx1ZUNvdW50ID0gYXJyYXkubGVuZ3RoOworICAgICAgICB2YXIgYnVmZmVyID0gQG5ld0Fy
cmF5V2l0aFNpemUodmFsdWVDb3VudCk7CiAKICAgICAgICAgdmFyIGRzdCA9IGJ1ZmZlcjsKICAg
ICAgICAgdmFyIHNyYyA9IGFycmF5OwpAQCAtNDYzLDE4ICs0MTYsMTcgQEAgZnVuY3Rpb24gc29y
dChjb21wYXJhdG9yKQogICAgICAgICAgICAgZHN0ID0gdG1wOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKHNyYyAhPSBhcnJheSkgewotICAgICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IHZh
bHVlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHNyY1tpXTsKLSAgICAg
ICAgfQorICAgICAgICByZXR1cm4gc3JjOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGJ1Y2tldFNv
cnQoYXJyYXksIGRzdCwgYnVja2V0LCBkZXB0aCkKICAgICB7CiAgICAgICAgIGlmIChidWNrZXQu
bGVuZ3RoIDwgMzIgfHwgZGVwdGggPiAzMikgewotICAgICAgICAgICAgbWVyZ2VTb3J0KGJ1Y2tl
dCwgYnVja2V0Lmxlbmd0aCwgc3RyaW5nQ29tcGFyYXRvcik7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGJ1Y2tldC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBhcnJheVtk
c3QrK10gPSBidWNrZXRbaV0udmFsdWU7CisgICAgICAgICAgICB2YXIgc29ydGVkID0gbWVyZ2VT
b3J0KGJ1Y2tldCwgc3RyaW5nQ29tcGFyYXRvcik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHNvcnRlZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIEBwdXRCeVZhbERp
cmVjdChhcnJheSwgZHN0LCBzb3J0ZWRbaV0udmFsdWUpOworICAgICAgICAgICAgICAgICsrZHN0
OworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGRzdDsKICAgICAgICAgfQogCkBA
IC00ODMsMTQgKzQzNSwxNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAgICAgICAg
ICB2YXIgZW50cnkgPSBidWNrZXRbaV07CiAgICAgICAgICAgICB2YXIgc3RyaW5nID0gZW50cnku
c3RyaW5nOwogICAgICAgICAgICAgaWYgKHN0cmluZy5sZW5ndGggPT0gZGVwdGgpIHsKLSAgICAg
ICAgICAgICAgICBhcnJheVtkc3QrK10gPSBlbnRyeS52YWx1ZTsKKyAgICAgICAgICAgICAgICBA
cHV0QnlWYWxEaXJlY3QoYXJyYXksIGRzdCwgZW50cnkudmFsdWUpOworICAgICAgICAgICAgICAg
ICsrZHN0OwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICB2YXIgYyA9IHN0cmluZy5AY2hhckNvZGVBdChkZXB0aCk7Ci0gICAgICAgICAgICBp
ZiAoIWJ1Y2tldHNbY10pCi0gICAgICAgICAgICAgICAgYnVja2V0c1tjXSA9IFsgXTsKLSAgICAg
ICAgICAgIGJ1Y2tldHNbY11bYnVja2V0c1tjXS5sZW5ndGhdID0gZW50cnk7CisgICAgICAgICAg
ICB2YXIgY0J1Y2tldCA9IGJ1Y2tldHNbY107CisgICAgICAgICAgICBpZiAoY0J1Y2tldCkKKyAg
ICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QoY0J1Y2tldCwgY0J1Y2tldC5sZW5ndGgsIGVu
dHJ5KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3Qo
YnVja2V0cywgYywgWyBlbnRyeSBdKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgYnVja2V0cy5sZW5ndGg7ICsraSkgewpAQCAtNTAyLDQyICs0NTcsMzIgQEAgZnVu
Y3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gZHN0OwogICAgIH0KIAotICAg
IGZ1bmN0aW9uIGNvbXBhcmF0b3JTb3J0KGFycmF5LCBsZW5ndGgsIGNvbXBhcmF0b3IpCi0gICAg
ewotICAgICAgICB2YXIgdmFsdWVDb3VudCA9IGNvbXBhY3QoYXJyYXksIGxlbmd0aCk7Ci0gICAg
ICAgIG1lcmdlU29ydChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcik7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gc3RyaW5nU29ydChhcnJheSwgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgdmFy
IHZhbHVlQ291bnQgPSBjb21wYWN0KGFycmF5LCBsZW5ndGgpOwotCi0gICAgICAgIHZhciBzdHJp
bmdzID0gQG5ld0FycmF5V2l0aFNpemUodmFsdWVDb3VudCk7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdmFsdWVDb3VudDsgKytpKQotICAgICAgICAgICAgc3RyaW5nc1tpXSA9IHsgc3Ry
aW5nOiBAdG9TdHJpbmcoYXJyYXlbaV0pLCB2YWx1ZTogYXJyYXlbaV0gfTsKLQotICAgICAgICBi
dWNrZXRTb3J0KGFycmF5LCAwLCBzdHJpbmdzLCAwKTsKLSAgICB9Ci0KLSAgICB2YXIgc29ydEZ1
bmN0aW9uOwotICAgIGlmIChAaXNDYWxsYWJsZShjb21wYXJhdG9yKSkKLSAgICAgICAgc29ydEZ1
bmN0aW9uID0gY29tcGFyYXRvclNvcnQ7Ci0gICAgZWxzZSBpZiAoY29tcGFyYXRvciA9PT0gQHVu
ZGVmaW5lZCkKLSAgICAgICAgc29ydEZ1bmN0aW9uID0gc3RyaW5nU29ydDsKLSAgICBlbHNlCi0g
ICAgICAgIEB0aHJvd1R5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVxdWlyZXMgdGhl
IGNvbXBhcnNpb24gZnVuY3Rpb24gYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWQiKTsKKyAgICB2
YXIgaXNTdHJpbmdTb3J0ID0gZmFsc2U7CisgICAgaWYgKGNvbXBhcmF0b3IgPT09IEB1bmRlZmlu
ZWQpCisgICAgICAgIGlzU3RyaW5nU29ydCA9IHRydWU7CisgICAgZWxzZSBpZiAoIUBpc0NhbGxh
YmxlKGNvbXBhcmF0b3IpKQorICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlw
ZS5zb3J0IHJlcXVpcmVzIHRoZSBjb21wYXJhdG9yIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24g
b3IgdW5kZWZpbmVkIik7CiAKLSAgICB2YXIgYXJyYXkgPSBAdG9PYmplY3QodGhpcywgIkFycmF5
LnByb3RvdHlwZS5zb3J0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVm
aW5lZCIpOwotCi0gICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpOworICAg
IHZhciByZWNlaXZlciA9IEB0b09iamVjdCh0aGlzLCAiQXJyYXkucHJvdG90eXBlLnNvcnQgcmVx
dWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisgICAgdmFyIHJl
Y2VpdmVyTGVuZ3RoID0gQHRvTGVuZ3RoKHJlY2VpdmVyLmxlbmd0aCk7CiAKICAgICAvLyBGb3Ig
Y29tcGF0aWJpbGl0eSB3aXRoIEZpcmVmb3ggYW5kIENocm9tZSwgZG8gbm90aGluZyBvYnNlcnZh
YmxlCiAgICAgLy8gdG8gdGhlIHRhcmdldCBhcnJheSBpZiBpdCBoYXMgMCBvciAxIHNvcnRhYmxl
IHByb3BlcnRpZXMuCi0gICAgaWYgKGxlbmd0aCA8IDIpCi0gICAgICAgIHJldHVybiBhcnJheTsK
KyAgICBpZiAocmVjZWl2ZXJMZW5ndGggPCAyKQorICAgICAgICByZXR1cm4gcmVjZWl2ZXI7CiAK
LSAgICBzb3J0RnVuY3Rpb24oYXJyYXksIGxlbmd0aCwgY29tcGFyYXRvcik7Ci0gICAgcmV0dXJu
IGFycmF5OworICAgIHZhciBjb21wYWN0ZWQgPSBbIF07CisgICAgdmFyIHNvcnRlZCA9IG51bGw7
CisgICAgdmFyIHVuZGVmaW5lZENvdW50ID0gY29tcGFjdChyZWNlaXZlciwgcmVjZWl2ZXJMZW5n
dGgsIGNvbXBhY3RlZCwgaXNTdHJpbmdTb3J0KTsKKworICAgIGlmIChpc1N0cmluZ1NvcnQpIHsK
KyAgICAgICAgc29ydGVkID0gQG5ld0FycmF5V2l0aFNpemUoY29tcGFjdGVkLmxlbmd0aCk7Cisg
ICAgICAgIGJ1Y2tldFNvcnQoc29ydGVkLCAwLCBjb21wYWN0ZWQsIDApOworICAgIH0gZWxzZQor
ICAgICAgICBzb3J0ZWQgPSBtZXJnZVNvcnQoY29tcGFjdGVkLCBjb21wYXJhdG9yKTsKKworICAg
IGNvbW1pdChyZWNlaXZlciwgcmVjZWl2ZXJMZW5ndGgsIHNvcnRlZCwgdW5kZWZpbmVkQ291bnQp
OworICAgIHJldHVybiByZWNlaXZlcjsKIH0KIAogQGdsb2JhbFByaXZhdGUKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDI2NzQyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNiBAQCB2b2lkIE9i
amVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWCiAKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5j
cmVhdGVQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmRlZmluZVByb3BlcnR5UHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JEZWZp
bmVQcm9wZXJ0eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByb3RvdHlwZU9mUHJpdmF0ZU5hbWUo
KSwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdl
dE93blByb3BlcnR5TmFtZXNQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5TmFtZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCAxKTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY3NDIxKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDktMjIg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFVwZGF0
ZSBBcnJheS5wcm90b3R5cGUuc29ydCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGlnaHRlbmVkIHNw
ZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU4
MgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kgYW5kIEtlaXRoIE1pbGxlci4K
KworICAgICAgICBXaGlsZSBhZGRpbmcgbmV3IExheW91dFRlc3RzIGZvciBKUy1vbmx5IGZlYXR1
cmVzIGlzIHVuZGVzaXJhYmxlLCBpdCdzIGEKKyAgICAgICAgcXVpY2stYW5kLWRpcnR5IHdheSB0
byBpbXBvcnQgdGhlIHRlc3RzIFsxXSBhbmQgZml4IHRoZSBjYWxsIGNvdW50L29yZGVyCisgICAg
ICAgIG9mIG9ic2VydmFibGUgb3BlcmF0aW9ucyB2aWEgZGVidWcoKSBhbmQgdGV4dCBleHBlY3Rh
dGlvbnMuCisKKyAgICAgICAgVGhlIHRlc3RzIGFyZSBpbXBvcnRlZCBpbnRvIExheW91dFRlc3Rz
L2pzL2RvbSBpbnN0ZWFkIG9mIExheW91dFRlc3RzL2pzIGZvcgorICAgICAgICBydW4tamF2YXNj
cmlwdGNvcmUtdGVzdHMgdG8gaWdub3JlIHRoZW0gYXMgdGhleSByZXF1aXJlIGFycmF5LXNvcnQt
aGFybmVzcy5qcy4KKworICAgICAgICBUaGVzZSBmaWxlcyB3aWxsIGJlIHJlbW92ZWQgc2hvcnRs
eSBpbiBmYXZvciBvZiB0aG9yb3VnaCB0ZXN0MjYyIGNvdmVyYWdlLAorICAgICAgICB3aGljaCBp
cyByZXF1aXJlZCBmb3IgdGhlIHByb3Bvc2FsIFsyXSB0byBiZSBtZXJnZWQuCisKKyAgICAgICAg
WzFdOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zenVlbmQvMDVhZTE1YjRlMTMyOWIyNjRhYjRj
OWExY2RhMDkyNDIKKyAgICAgICAgWzJdOiBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9lY21hMjYy
L3B1bGwvMTU4NQorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogTWFyayBhIHRlc3QgYXMg
c2xvdy4KKyAgICAgICAgKiBqcy9kb20vYXJyYXktc29ydC0qLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvZG9tL2FycmF5LXNvcnQtKi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtKi5qczogQWRkZWQuCisgICAgICAgICoganMv
cmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qczogQWRkZWQuCisKIDIwMjAtMDktMjIgIERp
ZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVW5y
ZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gTWFyayBzZXZlcmFsIGF1ZGlvIHJlbGF0ZWQgdGVzdHMg
YXMgZmFpbHVyZSBhZnRlciByMjY3MzgzLgpJbmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAyNjc0MjEpCisrKyBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkp
CkBAIC0xODI0LDYgKzE4MjQsNyBAQCB3ZWJraXQub3JnL2IvMTIxNDUyIFsgRGVidWcgXSBmYXN0
L2ZyYW1lCiB3ZWJraXQub3JnL2IvMTIxNDUyIFsgRGVidWcgXSBmYXN0L2ZyYW1lcy9sb3RzLW9m
LWlmcmFtZXMuaHRtbCBbIFNsb3cgXQogd2Via2l0Lm9yZy9iLzEzNTA1MyBbIERlYnVnIF0gaHRt
bDVsaWIvd2Via2l0LXJlc3VtZXIuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGpzL2RmZy1kb3Vi
bGUtdm90ZS1mdXp6Lmh0bWwgWyBTbG93IF0KK1sgRGVidWcgXSBqcy9hcnJheS1zb3J0LXNtYWxs
LXNwYXJzZS1hcnJheS13aXRoLWxhcmdlLWxlbmd0aC5odG1sIFsgU2xvdyBdCiBbIERlYnVnIF0g
anMvZG9tL3N0cmluZy1yZXBsYWNlbWVudC1vdXRvZm1lbW9yeS5odG1sIFsgU2xvdyBdCiBbIERl
YnVnIF0ganMvZGZnLW9zci1lbnRyeS1ob2lzdGVkLWNsb2JiZXJlZC1zdHJ1Y3R1cmUtY2hlY2su
aHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktY2hhcmFj
dGVyLWJydXRlLWZvcmNlLmh0bWwgWyBTbG93IF0KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1l
bGVtZW50cy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVu
ZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLGhvbGUsZm9vLGJhcixmb28sYmFyCisuc29ydCgp
OgorYSxiLGMsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xlLGZvbyxiYXIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50cy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29y
LWFkZHMtdHdvLWVsZW1lbnRzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
ZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFj
Y2Vzc29yLWFkZHMtdHdvLWVsZW1lbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1s
ZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGgtZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1s
ZW5ndGgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQo
KToKK2IsYyx1bmRlZmluZWQsdW5kZWZpbmVkCisuc29ydChjb21wYXJhdG9yKToKK2MsYixhLGQs
dW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXkt
c29ydC1hY2Nlc3Nvci1kZWNyZWFzZXMtbGVuZ3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRl
Y3JlYXNlcy1sZW5ndGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJy
YXktc29ydC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWRlY3JlYXNlcy1sZW5ndGguanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2Fy
cmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1w
cmVkZWNlc3Nvci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
ZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydChjb21wYXJhdG9yKToKK2MsYixh
LGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorLnNvcnQoKToKK2EsaG9sZSxj
LGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtcHJlZGVjZXNzb3IuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXByZWRl
Y2Vzc29yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNv
cnQtYWNjZXNzb3ItZGVsZXRlcy1wcmVkZWNlc3Nvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVs
ZXRlcy1wcmVkZWNlc3Nvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
YWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29y
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KCk6Cith
LGMsZCxob2xlLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxob2xlCisuc29ydChjb21wYXJhdG9y
KToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLWRlbGV0ZXMtc3VjY2Vzc29yLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRl
cy1zdWNjZXNzb3IuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXN1Y2Nlc3Nvci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3It
ZGVsZXRlcy1zdWNjZXNzb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
YWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisuc29ydChjb21wYXJh
dG9yKToKK2MsYixhLGQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsaG9sZSxob2xlLGhv
bGUsaG9sZSxob2xlCisuc29ydCgpOgorYSxiLGMsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVm
aW5lZCxob2xlLGhvbGUsaG9sZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vz
c29yLWluY3JlYXNlcy1sZW5ndGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9k
b20vYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxl
bmd0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1M
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItaW5jcmVhc2VzLWxlbmd0aC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1h
Y2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10d28tZWxlbWVu
dHMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDggQEAKKy5zb3J0KCk6CitiLGMsdW5kZWZpbmVkLHVuZGVmaW5l
ZAorLnNvcnQoY29tcGFyYXRvcik6CitjLGIsYSxkLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZp
bmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zlcy10d28t
ZWxlbWVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29y
dC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvYXJyYXktc29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1h
Y2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1h
Y2Nlc3Nvci1zZXRzLXByZWRlY2Vzc29yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDggQEAKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZp
bmVkLHVuZGVmaW5lZCxob2xlCisuc29ydCgpOgorYSxmb29iYXIsYyxkLHVuZGVmaW5lZCx1bmRl
ZmluZWQsdW5kZWZpbmVkLGhvbGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1zZXRzLXByZWRlY2Vzc29yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
ZG9tL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1wcmVkZWNlc3Nvci5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVj
ZXNzb3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRN
TD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVjZXNzb3IuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
YWNjZXNzb3Itc2V0cy1zdWNjZXNzb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nl
c3Nvci1zZXRzLXN1Y2Nlc3Nvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4IEBACisuc29ydCgpOgorYSxjLGQsZm9vYmFyLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZp
bmVkLGhvbGUKKy5zb3J0KGNvbXBhcmF0b3IpOgorYyxiLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVk
LHVuZGVmaW5lZCxob2xlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3It
c2V0cy1zdWNjZXNzb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJy
YXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtc3VjY2Vzc29yLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJy
YXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24t
YXJyYXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLWFycmF5LWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACisuc29ydChjb21wYXJhdG9yKToK
K2dldCBbMl0KK2dldCBbM10KK3NldCBbMl0gd2l0aCBkCitzZXQgWzNdIHdpdGggdW5kZWZpbmVk
CitnZXQgWzJdCitnZXQgWzNdCitjLGEsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1
bmRlZmluZWQsaG9sZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1v
bi1hcnJheS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0
LWFjY2Vzc29ycy1vbi1hcnJheS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pz
L2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Jz
LW9uLWFycmF5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8tZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29y
cy1vbi1vYmplY3QtcHJvdG8tZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8tZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOCBAQAorLnNvcnQoY29tcGFyYXRvcik6Citn
ZXQgWzJdCitzZXQgWzJdIHdpdGggYQorYyxiLGhvbGUsZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVu
ZGVmaW5lZCxob2xlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9u
LW9iamVjdC1wcm90by5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LWFjY2Vzc29ycy1vbi1vYmplY3QtcHJvdG8uaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1hY2Nlc3NvcnMtb24tb2JqZWN0LXByb3RvLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1jb25m
aWd1cmFibGUtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmln
dXJhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBA
QAorUEFTUyBhcnJheS5zb3J0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5hYmxlIHRv
IGRlbGV0ZSBwcm9wZXJ0eS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNv
bmZpZ3VyYWJsZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50Lmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLWVsZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZp
Z3VyYWJsZS1wcm90by1ob2xlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi1j
b25maWd1cmFibGUtcHJvdG8taG9sZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2IEBACisuc29ydCgpOgorYSxiLGMsZCxmb28sdW5kZWZpbmVkLHVuZGVmaW5lZCxob2xl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1o
b2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9u
LWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1wcm90by1ob2xlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXkt
c29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJs
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVu
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitQQVNTIGFycmF5
LnNvcnQoKGEsIGIpID0+IGEgLSBiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0
ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5Li4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQuaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24td3JpdGVhYmxl
LWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1ub24t
d3JpdGVhYmxlLXByb3RvLWhvbGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtbm9uLXdy
aXRlYWJsZS1wcm90by1ob2xlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUgQEAKK1BBU1MgYXJyYXkuc29ydCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVt
cHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LW5vbi13
cml0ZWFibGUtcHJvdG8taG9sZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLXdyaXRlYWJsZS1wcm90by1ob2xlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LXByb3h5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9kb20vYXJyYXktc29ydC1wcm94eS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjggQEAKKy5zb3J0KCk6CitnZXQgWydsZW5ndGgnXQoraGFzIFsnMCdd
CitnZXQgWycwJ10KK2hhcyBbJzEnXQorZ2V0IFsnMSddCitoYXMgWycyJ10KK2hhcyBbJzMnXQor
Z2V0IFsnMyddCitoYXMgWyc0J10KK2dldCBbJzQnXQoraGFzIFsnNSddCitoYXMgWyc2J10KK2dl
dCBbJzYnXQoraGFzIFsnNyddCitnZXQgWyc3J10KK3NldCBbJzAnXSA9IGEKK3NldCBbJzEnXSA9
IGIKK3NldCBbJzInXSA9IGMKK3NldCBbJzMnXSA9IGQKK3NldCBbJzQnXSA9IHVuZGVmaW5lZAor
c2V0IFsnNSddID0gdW5kZWZpbmVkCitkZWxldGUgWyc2J10KK2RlbGV0ZSBbJzcnXQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXByb3h5LXByb3RvLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1wcm94eS1wcm90by1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJv
eHktcHJvdG8tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorLnNv
cnQoY29tcGFyYXRvcik6CitoYXMgWycyJ10KK2hhcyBbJzUnXQorc2V0IFsnMiddID0gYQorc2V0
IFsnNSddID0gdW5kZWZpbmVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtcHJveHkt
cHJvdG8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1w
cm94eS1wcm90by5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9hcnJh
eS1zb3J0LXByb3h5LXByb3RvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FycmF5LXNvcnQtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvYXJyYXktc29ydC1wcm94eS1wcm90by5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vYXJyYXktc29ydC1w
cm94eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXBy
b3h5Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQt
cHJveHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRN
TD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXJyYXktc29ydC1o
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9hcnJheS1zb3J0LXByb3h5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1zb3J0LXNob3J0LWFycmF5cy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2FycmF5LXNvcnQtc2hvcnQt
YXJyYXlzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
YXJyYXktc29ydC1zaG9ydC1hcnJheXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKKy5zb3J0KGNvbXBhcmF0b3IpIDAtbGVuZ3RoIGFycmF5OgorZ2V0IFswXQor
dW5kZWZpbmVkCisuc29ydCgpIDEtbGVuZ3RoIGFycmF5OgorZ2V0IFswXQorc2V0IFswXSB3aXRo
IGJhcgorZ2V0IFswXQorYmFyLHVuZGVmaW5lZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9hcnJheS1z
b3J0LXNob3J0LWFycmF5cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9h
cnJheS1zb3J0LXNob3J0LWFycmF5cy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hcnJheS1zb3J0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtc2hvcnQtYXJyYXlz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1hZGRzLXR3by1lbGVtZW50cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3ItYWRkcy10d28tZWxlbWVudHMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLWFkZHMtdHdvLWVsZW1l
bnRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24g
WsO8bmQKKworbGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRl
ZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJh
eSwgJzInLCB7CisgIGdldCgpIHsgYXJyYXkucHVzaCgnZm9vJyk7IGFycmF5LnB1c2goJ2Jhcicp
OyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisK
K2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBi
KTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2In
LCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0
eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikg
eyAgYXJyYXkucHVzaCgnZm9vJyk7IGFycmF5LnB1c2goJ2JhcicpOyB0aGlzLmZvbyA9IHY7IH0K
K30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2FycmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3It
ZGVjcmVhc2VzLWxlbmd0aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC5qcwkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNj
ZXNzb3ItZGVjcmVhc2VzLWxlbmd0aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBA
CisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywg
Lypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7IGFycmF5Lmxlbmd0aCA9IGFy
cmF5Lmxlbmd0aCAtIDI7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgdGhpcy5mb28g
PSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJy
YXkpOworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVk
LCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcy
JywgeworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgYXJyYXkubGVu
Z3RoID0gYXJyYXkubGVuZ3RoIC0gMjsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5z
b3J0KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFy
cmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1h
Y2Nlc3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXByZWRlY2Vz
c29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
YXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVzLXByZWRlY2Vzc29yLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKworbGV0IGFycmF5ID0g
W3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScs
ICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsg
ZGVsZXRlIGFycmF5WzFdOyByZXR1cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9v
ID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQo
KGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJheSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2Mn
LCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9v
OyB9LAorICBzZXQodikgeyBkZWxldGUgYXJyYXlbMV07IHRoaXMuZm9vID0gdjsgfQorfSk7CisK
K2RlYnVnKCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1kZWxldGVz
LXN1Y2Nlc3Nvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItZGVsZXRlcy1zdWNjZXNzb3IuanMJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29y
LWRlbGV0ZXMtc3VjY2Vzc29yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8v
IGF1dGhvcjogU2ltb24gWsO8bmQKKworbGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhv
bGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZp
bmVQcm9wZXJ0eShhcnJheSwgJzInLCB7CisgIGdldCgpIHsgZGVsZXRlIGFycmF5WzNdOyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVn
KCcuc29ydCgpOicpOworYXJyYXkuc29ydCgpOworbG9nKGFycmF5KTsKKworYXJyYXkgPSBbdW5k
ZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2Qn
XTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyByZXR1
cm4gdGhpcy5mb287IH0sCisgIHNldCh2KSB7IGRlbGV0ZSBhcnJheVszXTsgdGhpcy5mb28gPSB2
OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwg
YikgPT4gYSAtIGIpOworbG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nv
ci1pbmNyZWFzZXMtbGVuZ3RoLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1pbmNyZWFzZXMtbGVuZ3RoLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQKKwor
bGV0IGFycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8q
aG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzInLCB7
CisgIGdldCgpIHsgYXJyYXkubGVuZ3RoID0gYXJyYXkubGVuZ3RoICsgMjsgcmV0dXJuIHRoaXMu
Zm9vOyB9LAorICBzZXQodikgeyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQo
Y29tcGFyYXRvcik6Jyk7CithcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkp
OworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAv
KmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywg
eworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgYXJyYXkubGVuZ3Ro
ID0gYXJyYXkubGVuZ3RoICsgMjsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0
KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXJlbW92ZXMtdHdvLWVsZW1lbnRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXkt
c29ydC1hY2Nlc3Nvci1yZW1vdmVzLXR3by1lbGVtZW50cy5qcwkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3ItcmVtb3Zl
cy10d28tZWxlbWVudHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0
aG9yOiBTaW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSov
LCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheS5wb3AoKTsgYXJyYXkucG9wKCk7
IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKwor
ZGVidWcoJy5zb3J0KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOworCithcnJheSA9
IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2En
LCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQoKSB7
IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsgYXJyYXkucG9wKCk7IGFycmF5LnBvcCgp
OyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7Cith
cnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVjZXNz
b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJh
eS1zb3J0LWFjY2Vzc29yLXNldHMtcHJlZGVjZXNzb3IuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXNldHMtcHJl
ZGVjZXNzb3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorLy8gYXV0aG9yOiBT
aW1vbiBaw7xuZAorCitsZXQgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYics
IHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5
KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBhcnJheVsxXSA9ICdmb29iYXInOyByZXR1cm4gdGhp
cy5mb287IH0sCisgIHNldCh2KSB7IHRoaXMuZm9vID0gdjsgfQorfSk7CisKK2RlYnVnKCcuc29y
dChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhhcnJh
eSk7CisKK2FycmF5ID0gW3VuZGVmaW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQs
IC8qaG9sZSovLCAnYScsICdkJ107CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgJzIn
LCB7CisgIGdldCgpIHsgcmV0dXJuIHRoaXMuZm9vOyB9LAorICBzZXQodikgeyBhcnJheVsxXSA9
ICdmb29iYXInOyB0aGlzLmZvbyA9IHY7IH0KK30pOworCitkZWJ1ZygnLnNvcnQoKTonKTsKK2Fy
cmF5LnNvcnQoKTsKK2xvZyhhcnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3Itc2V0cy1zdWNjZXNzb3IuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29yLXNl
dHMtc3VjY2Vzc29yLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvYXJyYXktc29ydC1hY2Nlc3Nvci1zZXRzLXN1Y2Nlc3Nvci5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIzIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2xldCBhcnJh
eSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywg
J2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcyJywgeworICBnZXQo
KSB7IGFycmF5WzNdID0gJ2Zvb2Jhcic7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsg
dGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CithcnJheS5zb3J0KCk7
Citsb2coYXJyYXkpOworCithcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywg
dW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHko
YXJyYXksICcyJywgeworICBnZXQoKSB7IHJldHVybiB0aGlzLmZvbzsgfSwKKyAgc2V0KHYpIHsg
YXJyYXlbM10gPSAnZm9vYmFyJzsgdGhpcy5mb28gPSB2OyB9Cit9KTsKKworZGVidWcoJy5zb3J0
KGNvbXBhcmF0b3IpOicpOworYXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpOworbG9nKGFycmF5
KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1hY2Nl
c3NvcnMtb24tYXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9hcnJheS1zb3J0LWFjY2Vzc29ycy1vbi1hcnJheS5qcwkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9u
LWFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vIGF1dGhvcjogU2lt
b24gWsO8bmQKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYics
IHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5
KGFycmF5LCAnMicsIHsKKyAgZ2V0KCkgeyBkZWJ1ZygnZ2V0IFsyXScpOyByZXR1cm4gdGhpcy5m
b287IH0sCisgIHNldCh2KSB7IGRlYnVnKGBzZXQgWzJdIHdpdGggJHt2fWApOyB0aGlzLmZvbyA9
IHY7IH0KK30pOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICczJywgeworICBnZXQo
KSB7IGRlYnVnKCdnZXQgWzNdJyk7IHJldHVybiB0aGlzLmJhcjsgfSwKKyAgc2V0KHYpIHsgZGVi
dWcoYHNldCBbM10gd2l0aCAke3Z9YCk7IHRoaXMuYmFyID0gdjsgfQorfSk7CisKK2RlYnVnKCcu
c29ydChjb21wYXJhdG9yKTonKTsKK2FycmF5LnNvcnQoKGEsIGIpID0+IGEgLSBiKTsKK2xvZyhh
cnJheSk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQt
YWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by5q
cwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5
LXNvcnQtYWNjZXNzb3JzLW9uLW9iamVjdC1wcm90by5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIxIEBACisvLyBhdXRob3I6IFNpbW9uIFrDvG5kCisKK2NvbnN0IGFycmF5ID0gW3VuZGVm
aW5lZCwgJ2MnLCAvKmhvbGUqLywgJ2InLCB1bmRlZmluZWQsIC8qaG9sZSovLCAnYScsICdkJ107
CisKK2NvbnN0IG9iamVjdCA9IHt9OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCAn
MicsIHsKKyAgZ2V0KCkgeyBkZWJ1ZygnZ2V0IFsyXScpOyByZXR1cm4gdGhpcy5mb287IH0sCisg
IHNldCh2KSB7IGRlYnVnKGBzZXQgWzJdIHdpdGggJHt2fWApOyB0aGlzLmZvbyA9IHY7IH0KK30p
OworCitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCAnMycsIHsKKyAgZ2V0KCkgeyBkZWJ1
ZygnZ2V0IFszXScpOyByZXR1cm4gdGhpcy5iYXI7IH0sCisgIHNldCh2KSB7IGRlYnVnKGBzZXQg
WzNdIHdpdGggJHt2fWApOyB0aGlzLmJhciA9IHY7IH0KK30pOworCithcnJheS5fX3Byb3RvX18g
PSBvYmplY3Q7CisKK2RlYnVnKCcuc29ydChjb21wYXJhdG9yKTonKTsKK0FycmF5LnByb3RvdHlw
ZS5zb3J0LmNhbGwoYXJyYXksIChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOwpJbmRleDog
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFi
bGUtZWxlbWVudC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3VyYWJsZS1lbGVtZW50LmpzCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29uZmln
dXJhYmxlLWVsZW1lbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorLy8gYXV0
aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xl
Ki8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5l
UHJvcGVydHkoYXJyYXksICc2JywgeworICB2YWx1ZTogJ2EnLAorICBjb25maWd1cmFibGU6IGZh
bHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogdHJ1ZSwKK30pOworCitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICc3JywgeworICB2YWx1ZTogJ2QnLAorICBjb25maWd1
cmFibGU6IGZhbHNlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJsZTogdHJ1ZSwKK30p
OworCitzaG91bGRUaHJvdygnYXJyYXkuc29ydCgpJywgJyJUeXBlRXJyb3I6IFVuYWJsZSB0byBk
ZWxldGUgcHJvcGVydHkuIicpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9hcnJheS1zb3J0LW5vbi1jb25maWd1cmFibGUtcHJvdG8taG9sZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLWNvbmZpZ3Vy
YWJsZS1wcm90by1ob2xlLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24tY29uZmlndXJhYmxlLXByb3RvLWhvbGUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitP
YmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgJzInLCB7CisgIHZhbHVlOiAn
Zm9vJywKKyAgY29uZmlndXJhYmxlOiBmYWxzZSwKKyAgZW51bWVyYWJsZTogdHJ1ZSwKKyAgd3Jp
dGFibGU6IHRydWUsCit9KTsKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9s
ZSovLCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworZGVidWcoJy5zb3J0
KCk6Jyk7CithcnJheS5zb3J0KCk7Citsb2coYXJyYXkpOwpJbmRleDogTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtZWxlbWVudC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9u
LXdyaXRlYWJsZS1lbGVtZW50LmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24td3JpdGVhYmxlLWVsZW1lbnQuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitjb25z
dCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypob2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhv
bGUqLywgJ2EnLCAnZCddOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICcxJywgewor
ICB2YWx1ZTogJ2MnLAorICBjb25maWd1cmFibGU6IHRydWUsCisgIGVudW1lcmFibGU6IHRydWUs
CisgIHdyaXRhYmxlOiBmYWxzZSwKK30pOworCitPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXks
ICczJywgeworICB2YWx1ZTogJ2InLAorICBjb25maWd1cmFibGU6IHRydWUsCisgIGVudW1lcmFi
bGU6IHRydWUsCisgIHdyaXRhYmxlOiBmYWxzZSwKK30pOworCitzaG91bGRUaHJvdygnYXJyYXku
c29ydCgoYSwgYikgPT4gYSAtIGIpJywgJyJUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24g
dG8gcmVhZG9ubHkgcHJvcGVydHkuIicpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9hcnJheS1zb3J0LW5vbi13cml0ZWFibGUtcHJvdG8taG9sZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtbm9uLXdyaXRl
YWJsZS1wcm90by1ob2xlLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9z
Y3JpcHQtdGVzdHMvYXJyYXktc29ydC1ub24td3JpdGVhYmxlLXByb3RvLWhvbGUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorLy8gYXV0aG9yOiBTaW1vbiBaw7xuZAorCitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgJzInLCB7CisgIHZhbHVlOiAnZm9v
JywKKyAgY29uZmlndXJhYmxlOiB0cnVlLAorICBlbnVtZXJhYmxlOiB0cnVlLAorICB3cml0YWJs
ZTogZmFsc2UsCit9KTsKKworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSov
LCAnYicsIHVuZGVmaW5lZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworc2hvdWxkVGhyb3coJ2Fy
cmF5LnNvcnQoKScsICciVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5
IHByb3BlcnR5LiInKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJy
YXktc29ydC1wcm94eS1wcm90by5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20v
c2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtcHJveHktcHJvdG8uanMJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5LXByb3RvLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKy8vIGF1dGhvcjogU2ltb24gWsO8bmQK
KworY29uc3QgYXJyYXkgPSBbdW5kZWZpbmVkLCAnYycsIC8qaG9sZSovLCAnYicsIHVuZGVmaW5l
ZCwgLypob2xlKi8sICdhJywgJ2QnXTsKKworY29uc3QgcHJveHkgPSBuZXcgUHJveHkoe30sIHsK
KyAgZ2V0OiAodGFyZ2V0LCBuYW1lKSA9PiB7CisgICAgZGVidWcoImdldCBbJyIgKyBuYW1lICsg
IiddIik7CisgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgfSwKKworICBzZXQ6ICh0YXJnZXQs
IG5hbWUsIHZhbHVlKSA9PiB7CisgICAgZGVidWcoInNldCBbJyIgKyBuYW1lICsgIiddID0gIiAr
IHZhbHVlKTsKKyAgICB0YXJnZXRbbmFtZV0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAg
fSwKKworICBoYXM6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiaGFzIFsnIiArIG5h
bWUgKyAiJ10iKTsKKyAgICByZXR1cm4gbmFtZSBpbiB0YXJnZXQ7CisgIH0sCisKKyAgZGVsZXRl
UHJvcGVydHk6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBkZWJ1ZygiZGVsZXRlIFsnIiArIG5h
bWUgKyAiJ10iKTsKKyAgICByZXR1cm4gZGVsZXRlIHRhcmdldFtuYW1lXTsKKyAgfQorfSk7CisK
K2FycmF5Ll9fcHJvdG9fXyA9IHByb3h5OworCitkZWJ1ZygnLnNvcnQoY29tcGFyYXRvcik6Jyk7
CitBcnJheS5wcm90b3R5cGUuc29ydC5jYWxsKGFycmF5LCAoYSwgYikgPT4gYSAtIGIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXByb3h5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvYXJyYXktc29ydC1w
cm94eS5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2FycmF5LXNvcnQtcHJveHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorLy8g
YXV0aG9yOiBTaW1vbiBaw7xuZAorCitjb25zdCBhcnJheSA9IFt1bmRlZmluZWQsICdjJywgLypo
b2xlKi8sICdiJywgdW5kZWZpbmVkLCAvKmhvbGUqLywgJ2EnLCAnZCddOworCitjb25zdCBwcm94
eSA9IG5ldyBQcm94eShhcnJheSwgeworICBnZXQ6ICh0YXJnZXQsIG5hbWUpID0+IHsKKyAgICBk
ZWJ1ZygiZ2V0IFsnIiArIG5hbWUgKyAiJ10iKTsKKyAgICByZXR1cm4gdGFyZ2V0W25hbWVdOwor
ICB9LAorCisgIHNldDogKHRhcmdldCwgbmFtZSwgdmFsdWUpID0+IHsKKyAgICBkZWJ1Zygic2V0
IFsnIiArIG5hbWUgKyAiJ10gPSAiICsgdmFsdWUpOworICAgIHRhcmdldFtuYW1lXSA9IHZhbHVl
OworICAgIHJldHVybiB0cnVlOworICB9LAorCisgIGhhczogKHRhcmdldCwgbmFtZSkgPT4gewor
ICAgIGRlYnVnKCJoYXMgWyciICsgbmFtZSArICInXSIpOworICAgIHJldHVybiBuYW1lIGluIHRh
cmdldDsKKyAgfSwKKworICBkZWxldGVQcm9wZXJ0eTogKHRhcmdldCwgbmFtZSkgPT4geworICAg
IGRlYnVnKCJkZWxldGUgWyciICsgbmFtZSArICInXSIpOworICAgIHJldHVybiBkZWxldGUgdGFy
Z2V0W25hbWVdOworICB9Cit9KTsKKworZGVidWcoJy5zb3J0KCk6Jyk7CitBcnJheS5wcm90b3R5
cGUuc29ydC5jYWxsKHByb3h5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvYXJyYXktc29ydC1zaG9ydC1hcnJheXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvZG9tL3NjcmlwdC10ZXN0cy9hcnJheS1zb3J0LXNob3J0LWFycmF5cy5qcwkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2FycmF5LXNvcnQtc2hvcnQt
YXJyYXlzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKKy8vIGF1dGhvcjogU2lt
b24gWsO8bmQKKworY29uc3QgYXJyYXkgPSBbXTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KGFy
cmF5LCAnMCcsIHsKKyAgZ2V0KCkgeyBkZWJ1ZygnZ2V0IFswXScpOyByZXR1cm4gdGhpcy5mb287
IH0sCisgIHNldCh2KSB7IGRlYnVnKGBzZXQgWzBdIHdpdGggJHt2fWApOyB0aGlzLmZvbyA9IHY7
IH0KK30pOworCitkZWJ1ZygiLnNvcnQoY29tcGFyYXRvcikgMC1sZW5ndGggYXJyYXk6Iik7Cith
cnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7Citsb2coYXJyYXkpOworCitkZWJ1ZygiLnNvcnQo
KSAxLWxlbmd0aCBhcnJheToiKTsKK2FycmF5LnB1c2goJ2JhcicpOworYXJyYXkuc29ydCgpOwor
bG9nKGFycmF5KTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3Jlc291cmNlcy9hcnJheS1zb3J0LWhh
cm5lc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2FycmF5LXNv
cnQtaGFybmVzcy5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMv
YXJyYXktc29ydC1oYXJuZXNzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1
bmN0aW9uIGxvZyhhcnJheSkgeworICBsZXQgYnVmID0gJyc7CisgIGZvciAobGV0IGluZGV4ID0g
MDsgaW5kZXggPCBhcnJheS5sZW5ndGg7IGluZGV4KyspIHsKKyAgICBpZiAoYXJyYXkuaGFzT3du
UHJvcGVydHkoaW5kZXgpKSB7CisgICAgICBidWYgKz0gU3RyaW5nKGFycmF5W2luZGV4XSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIGJ1ZiArPSAnaG9sZSc7CisgICAgfQorICAgIGlmIChpbmRleCA8
IGFycmF5Lmxlbmd0aCAtIDEpIGJ1ZiArPSAnLCc7CisgIH0KKyAgZGVidWcoYnVmKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>