<?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>227690</bug_id>
          
          <creation_ts>2021-07-05 14:24:44 -0700</creation_ts>
          <short_desc>ReadableStream&apos;s pipeTo() and pipeThrough() don&apos;t handle options in spec-perfect way</short_desc>
          <delta_ts>2021-08-03 08:59:36 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/29880</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774850</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-05 14:24:44 -0700</bug_when>
    <thetext>Streams spec for pipeThrough(): https://streams.spec.whatwg.org/#rs-pipe-through
WebIDL spec for dictionary types: https://heycam.github.io/webidl/#es-dictionary
Implementation: https://github.com/WebKit/WebKit/blob/3cd76abcda098f91d46fb0ad42e1eab68b6ddb12/Source/WebCore/Modules/streams/ReadableStream.js#L122

&gt; if (@isReadableStreamLocked(this))
&gt;     throw @makeTypeError(&quot;ReadableStream is locked&quot;);

While this is the first step of pipeThrough() algorithm, it should happen after all arguments (including `options`) are checked / handled.

&gt; if (options === @undefined)
&gt;     options = { };

This causes properties to queried from Object.prototype; the WebIDL spec doesn&apos;t perform [[Get]] for non-objects at all.
@Object.@create(null) may be used instead.

&gt; let signal;
&gt; if (&quot;signal&quot; in options) {
&gt;     signal = options[&quot;signal&quot;];

This is observable is options is a Proxy; the WebIDL spec merely compares [[Get]] result with undefined.

&gt; const preventClose = !!options[&quot;preventClose&quot;];
&gt; const preventAbort = !!options[&quot;preventAbort&quot;];
&gt; const preventCancel = !!options[&quot;preventCancel&quot;];

For these 3, lookup order matches the member declaration order of Streams spec.
However, the WebIDL spec requires &quot;lexicographical order&quot;; does it translate to 1) &quot;preventAbort&quot; 2) &quot;preventCancel&quot; 3) &quot;preventClose&quot;?
Either way, `options.signal` should be queried after these 3, which is observable by a userland getter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776452</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-12 14:25:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80482144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781229</commentid>
    <comment_count>2</comment_count>
      <attachid>434748</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 06:32:13 -0700</bug_when>
    <thetext>Created attachment 434748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781230</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-02 06:33:01 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781262</commentid>
    <comment_count>4</comment_count>
      <attachid>434748</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-08-02 09:15:43 -0700</bug_when>
    <thetext>Comment on attachment 434748
Patch

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

&gt; Source/WebCore/Modules/streams/ReadableStream.js:133
&gt; +        if (options != @undefined) {

Aha, this fixes very important issue that I&apos;ve missed.
Seems like before this change, a TypeError was thrown (from `in` operator) for `options` that is `null` instead of using the defaults (step 1 of https://heycam.github.io/webidl/#es-dictionary).
This does fix it, yet we should rather use @isUndefinedOrNull built-in because `== @undefined` is false-positive for `document.all`.

It would be nice to have `options = null` test case if we haven&apos;t already.

&gt; Source/WebCore/Modules/streams/ReadableStream.js:134
&gt; +            preventAbort = !!options[&quot;preventAbort&quot;];

Also, we should throw here `if (!@isObject(options))` per step 1 to avoid lookups on primitives, which are observable. A test would be nice.

&gt; Source/WebCore/Modules/streams/ReadableStream.js:136
&gt; +            preventClose = !!options[&quot;preventClose&quot;];

Since we are changing these lines, could we please use (semantically equivalent) `options.preventAbort` syntax?
Square bracket access is normally used with a variable rather than string literal.

&gt; Source/WebCore/Modules/streams/ReadableStream.js:139
&gt; +            if (signal !== @undefined &amp;&amp; !(signal instanceof @AbortSignal))

It would be nice to have `{ signal: undefined }` test case if we haven&apos;t already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781328</commentid>
    <comment_count>5</comment_count>
      <attachid>434777</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:27:00 -0700</bug_when>
    <thetext>Created attachment 434777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781330</commentid>
    <comment_count>6</comment_count>
      <attachid>434779</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:33:34 -0700</bug_when>
    <thetext>Created attachment 434779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781340</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 11:43:37 -0700</bug_when>
    <thetext>https://github.com/youennf/wpt/tree/wpt-export-for-webkit-227690</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781554</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 23:47:53 -0700</bug_when>
    <thetext>Thanks Alexey, I updated tests accordingly.

&gt; &gt; Source/WebCore/Modules/streams/ReadableStream.js:136
&gt; &gt; +            preventClose = !!options[&quot;preventClose&quot;];
&gt; 
&gt; Since we are changing these lines, could we please use (semantically
&gt; equivalent) `options.preventAbort` syntax?
&gt; Square bracket access is normally used with a variable rather than string
&gt; literal.

I kept the way the spec is written and the way it is done for now in other stream related implementation files.
I guess it is a tad shorter so there is a small gain to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781555</commentid>
    <comment_count>9</comment_count>
      <attachid>434779</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-02 23:48:42 -0700</bug_when>
    <thetext>Comment on attachment 434779
Patch

bot error is unrelated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781586</commentid>
    <comment_count>10</comment_count>
      <attachid>434779</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-08-03 05:41:44 -0700</bug_when>
    <thetext>Comment on attachment 434779
Patch

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

r=me with 2 nits. Thank you for fixing this, Youenn!

&gt; Source/WebCore/ChangeLog:9
&gt; +        Make one getter for signal.

Technically, `in` doesn&apos;t invoke a getter, only a Proxy trap.
Apart from not invoking getters on Object.prototype and tweaking their order, this patch also fixed `options = null` case, added exception for primitive `options`, and fixed exception handling in pipeTo().
It would be nice to mention that in ChangeLog.

&gt; Source/WebCore/Modules/streams/ReadableStream.js:182
&gt; +            try {

It&apos;s nice to have this fixed.
A suggestion: what if we limit try { ... } scope only to rethrow userland errors, while returning rejected Promises for non-object `options` and incorrect `signal`? Like


    if (!@isObject(options))
        return @Promise.@reject(@makeTypeError(&quot;options must be an object&quot;));

    try {
        preventAbort = !!options[&quot;preventAbort&quot;];
        preventCancel = !!options[&quot;preventCancel&quot;];
        preventClose = !!options[&quot;preventClose&quot;];

        signal = options[&quot;signal&quot;];
    } catch(e) {
        return @Promise.@reject(e);
    }

    if (signal !== @undefined &amp;&amp; !(signal instanceof @AbortSignal))
        return @Promise.@reject(@makeTypeError(&quot;options.signal must be AbortSignal&quot;));


This way it&apos;s more clear that we are handling getter errors, and it&apos;s consistent with the rest of the checks like if (!@isWritableStream(destination)) etc.
`instanceof` can&apos;t throw for @AbortSignal (and it will be replaced with @isAbortSignal after this patch is landed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781613</commentid>
    <comment_count>11</comment_count>
      <attachid>434833</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-03 08:12:17 -0700</bug_when>
    <thetext>Created attachment 434833
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781615</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-03 08:15:18 -0700</bug_when>
    <thetext>Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/29880</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781617</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-03 08:16:14 -0700</bug_when>
    <thetext>Thanks for the review, I updated the change log and reduced the try/catch as you suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781627</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-03 08:59:34 -0700</bug_when>
    <thetext>Committed r280593 (240215@main): &lt;https://commits.webkit.org/240215@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434833.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434748</attachid>
            <date>2021-08-02 06:32:13 -0700</date>
            <delta_ts>2021-08-02 11:26:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227690-20210802153211.patch</filename>
            <type>text/plain</type>
            <size>8163</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTczOWY2NDMwYWQzMjZl
OGIxNzc4YWRmOTE1NDE0YjZhNjY2NDhkZS4uNTdjZTI1OTgyZjlkNjMxMjQ3MmQxYmE4NzVmYzJl
MGIyODIyYmI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA4LTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdz
IHBpcGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMt
cGVyZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVk
IHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6Cisg
ICAgICAgIChwaXBlVGhyb3VnaCk6CisgICAgICAgIE1ha2Ugb25lIGdldHRlciBmb3Igc2lnbmFs
LgorICAgICAgICBPcmRlciBnZXR0ZXJzIGFzIHBlciBzcGVjLgorICAgICAgICBJZiBvcHRpb25z
IGlzIHVuZGVmaW5lZCwgc2tpcCBjYWxsaW5nIGFueSBnZXR0ZXIuCisKIDIwMjEtMDctMzEgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFWVmlkZW9DYXB0dXJl
U291cmNlIHNob3VsZCBub3Qgc3RhcnQvc3RvcCB0aGUgY2FtZXJhIGlmIHRyeWluZyB0byBhcHBs
eSB0aGUgc2FtZSBzaXplL2ZyYW1lIHJhdGUgY29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IGM5NmViMTI1Zjlh
ZDhkYzNiZjIyZmI4Yzk1ZjQyMzYwZGRiZmQxMDYuLjIyODlmYTRhNzI4M2ExYjllMzY1MmMzNDli
ODljYjA1NjdjNTA5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uanMKQEAgLTExNiwxMiArMTE2LDYgQEAgZnVuY3Rpb24gcGlwZVRocm91
Z2goc3RyZWFtcywgb3B0aW9ucykKICAgICAidXNlIHN0cmljdCI7CiAKICAgICBpZiAoQHdyaXRh
YmxlU3RyZWFtQVBJRW5hYmxlZCgpKSB7Ci0gICAgICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW0o
dGhpcykpCi0gICAgICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRhYmxlU3Ry
ZWFtIiwgInBpcGVUaHJvdWdoIik7Ci0KLSAgICAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtTG9j
a2VkKHRoaXMpKQotICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIlJlYWRhYmxlU3Ry
ZWFtIGlzIGxvY2tlZCIpOwotCiAgICAgICAgIGNvbnN0IHRyYW5zZm9ybXMgPSBzdHJlYW1zOwog
CiAgICAgICAgIGNvbnN0IHJlYWRhYmxlID0gdHJhbnNmb3Jtc1sicmVhZGFibGUiXTsKQEAgLTEz
MiwxOSArMTI2LDI1IEBAIGZ1bmN0aW9uIHBpcGVUaHJvdWdoKHN0cmVhbXMsIG9wdGlvbnMpCiAg
ICAgICAgIGlmICghQGlzV3JpdGFibGVTdHJlYW0od3JpdGFibGUpKQogICAgICAgICAgICAgdGhy
b3cgQG1ha2VUeXBlRXJyb3IoIndyaXRhYmxlIHNob3VsZCBiZSBXcml0YWJsZVN0cmVhbSIpOwog
Ci0gICAgICAgIGlmIChvcHRpb25zID09PSBAdW5kZWZpbmVkKQotICAgICAgICAgICAgb3B0aW9u
cyA9IHsgfTsKLQorICAgICAgICBsZXQgcHJldmVudENsb3NlID0gZmFsc2U7CisgICAgICAgIGxl
dCBwcmV2ZW50QWJvcnQgPSBmYWxzZTsKKyAgICAgICAgbGV0IHByZXZlbnRDYW5jZWwgPSBmYWxz
ZTsKICAgICAgICAgbGV0IHNpZ25hbDsKLSAgICAgICAgaWYgKCJzaWduYWwiIGluIG9wdGlvbnMp
IHsKKyAgICAgICAgaWYgKG9wdGlvbnMgIT0gQHVuZGVmaW5lZCkgeworICAgICAgICAgICAgcHJl
dmVudEFib3J0ID0gISFvcHRpb25zWyJwcmV2ZW50QWJvcnQiXTsKKyAgICAgICAgICAgIHByZXZl
bnRDYW5jZWwgPSAhIW9wdGlvbnNbInByZXZlbnRDYW5jZWwiXTsKKyAgICAgICAgICAgIHByZXZl
bnRDbG9zZSA9ICEhb3B0aW9uc1sicHJldmVudENsb3NlIl07CisKICAgICAgICAgICAgIHNpZ25h
bCA9IG9wdGlvbnNbInNpZ25hbCJdOwotICAgICAgICAgICAgaWYgKCEoc2lnbmFsIGluc3RhbmNl
b2YgQEFib3J0U2lnbmFsKSkKKyAgICAgICAgICAgIGlmIChzaWduYWwgIT09IEB1bmRlZmluZWQg
JiYgIShzaWduYWwgaW5zdGFuY2VvZiBAQWJvcnRTaWduYWwpKQogICAgICAgICAgICAgICAgIHRo
cm93IEBtYWtlVHlwZUVycm9yKCJvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIik7
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBwcmV2ZW50Q2xvc2UgPSAhIW9wdGlvbnNbInBy
ZXZlbnRDbG9zZSJdOwotICAgICAgICBjb25zdCBwcmV2ZW50QWJvcnQgPSAhIW9wdGlvbnNbInBy
ZXZlbnRBYm9ydCJdOwotICAgICAgICBjb25zdCBwcmV2ZW50Q2FuY2VsID0gISFvcHRpb25zWyJw
cmV2ZW50Q2FuY2VsIl07CisgICAgICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW0odGhpcykpCisg
ICAgICAgICAgICB0aHJvdyBAbWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIiwgInBp
cGVUaHJvdWdoIik7CisKKyAgICAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKHRoaXMp
KQorICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxv
Y2tlZCIpOwogCiAgICAgICAgIGlmIChAaXNXcml0YWJsZVN0cmVhbUxvY2tlZCh3cml0YWJsZSkp
CiAgICAgICAgICAgICB0aHJvdyBAbWFrZVR5cGVFcnJvcigiV3JpdGFibGVTdHJlYW0gaXMgbG9j
a2VkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAwMzYyMGYzYTFmZWRhYmFj
MjNkNjA5MzhmOWRjYjc4YWE4MjM4NjdiLi41ZmNmMjViNGQxMWYxZjg2YjNjYjNkOGI3OWE1YTJj
NTliYWUzOGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMS0wOC0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVhZGFibGVTdHJlYW0ncyBwaXBlVG8oKSBhbmQgcGlwZVRocm91Z2goKSBkb24ndCBoYW5k
bGUgb3B0aW9ucyBpbiBzcGVjLXBlcmZlY3Qgd2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgw
NDgyMTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnktZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9w
aXBlLXRocm91Z2guYW55LmpzOgorICAgICAgICAodHJ5UGlwZVRocm91Z2gpOgorICAgICAgICAo
dGVzdC5nZXQgYXNzZXJ0X2VxdWFscyk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAy
MS0wNy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODA0ODguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhy
b3VnaC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55LWV4cGVjdGVkLnR4dApp
bmRleCBlZjM5OWJlMmExZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0MjUzLi4xY2RjZWU2YzVm
ZmQwNDJmNDYzZDMxZTYwZWQ3ZGRlNWUwOGM4ZDBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3Vn
aC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS1leHBlY3RlZC50eHQK
QEAgLTQxLDQgKzQxLDUgQEAgUEFTUyBwcmV2ZW50Q2FuY2VsIHNob3VsZCB3b3JrCiBQQVNTIHBy
ZXZlbnRDbG9zZSBzaG91bGQgd29yawogUEFTUyBwcmV2ZW50QWJvcnQgc2hvdWxkIHdvcmsKIFBB
U1MgcGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0aW9uIGdldHRlciBncmFicyBh
IHdyaXRlcgorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0
dGVyIHRocm93cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUt
dGhyb3VnaC5hbnkuanMKaW5kZXggMzVkYmI0NTZiM2UyYzZkMDJhMThhOTUwNWJjMjEzOGE1NzQ3
NDg4Ny4uZjQ5NzgzZmIxYmQ4ZDJjM2YyYjk2OGQxYWFmMDlhM2YyNzc3ZWViNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3Bp
cGluZy9waXBlLXRocm91Z2guYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS5qcwpAQCAt
MjY2LDMgKzI2Niw5OSBAQCB0ZXN0KCgpID0+IHsKICAgICB9CiAgIH0pLCAncGlwZVRocm91Z2gg
c2hvdWxkIHRocm93Jyk7CiB9LCAncGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0
aW9uIGdldHRlciBncmFicyBhIHdyaXRlcicpOworCitmdW5jdGlvbiB0cnlQaXBlVGhyb3VnaChv
cHRpb25zLCBwYWlyKQoreworICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICBp
ZiAoIXBhaXIpCisgICAgcGFpciA9IHtyZWFkYWJsZTpuZXcgUmVhZGFibGVTdHJlYW0oKSwgd3Jp
dGFibGU6bmV3IFdyaXRhYmxlU3RyZWFtKCl9OworICB0cnkgeworICAgIHJzLnBpcGVUaHJvdWdo
KHBhaXIsIG9wdGlvbnMpCisgIH0gY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4gZTsKKyAgfQorfQor
Cit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlc3VsdCA9IHRyeVBpcGVUaHJvdWdoKHsKKyAgICBnZXQg
cHJldmVudEFib3J0KCkgeworICAgICAgdGhyb3cgInByZXZlbnRBYm9ydCB0aHJldyI7CisgICAg
fQorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJwcmV2ZW50QWJvcnQgdGhyZXciKTsK
KworICByZXN1bHQgPSB0cnlQaXBlVGhyb3VnaCh7CisgICAgZ2V0IHByZXZlbnRDbG9zZSgpIHsK
KyAgICAgIHRocm93ICJwcmV2ZW50Q2xvc2UgdGhyZXciOworICAgIH0KKyAgfSk7CisgIGFzc2Vy
dF9lcXVhbHMocmVzdWx0LCAicHJldmVudENsb3NlIHRocmV3Iik7CisKKyAgcmVzdWx0ID0gdHJ5
UGlwZVRocm91Z2goeworICAgIGdldCBwcmV2ZW50QWJvcnQoKSB7CisgICAgICB0aHJvdyAicHJl
dmVudEFib3J0IHRocmV3IjsKKyAgICB9LAorICAgIGdldCBwcmV2ZW50Q2xvc2UoKSB7CisgICAg
ICB0aHJvdyAicHJldmVudENsb3NlIHRocmV3IjsKKyAgICB9CisgIH0pOworICBhc3NlcnRfZXF1
YWxzKHJlc3VsdCwgInByZXZlbnRBYm9ydCB0aHJldyIpOworCisgIHJlc3VsdCA9IHRyeVBpcGVU
aHJvdWdoKHsKKyAgICBnZXQgcHJldmVudENsb3NlKCkgeworICAgICAgdGhyb3cgInByZXZlbnRD
bG9zZSB0aHJldyI7CisgICAgfSwKKyAgICBnZXQgcHJldmVudENhbmNlbCgpIHsKKyAgICAgIHRo
cm93ICJwcmV2ZW50Q2FuY2VsIHRocmV3IjsKKyAgICB9CisgIH0pOworICBhc3NlcnRfZXF1YWxz
KHJlc3VsdCwgInByZXZlbnRDYW5jZWwgdGhyZXciKTsKKworICByZXN1bHQgPSB0cnlQaXBlVGhy
b3VnaCh7CisgICAgZ2V0IHByZXZlbnRBYm9ydCgpIHsKKyAgICAgIHRocm93ICJwcmV2ZW50QWJv
cnQgdGhyZXciOworICAgIH0sCisgICAgZ2V0IHByZXZlbnRDbG9zZSgpIHsKKyAgICAgIHRocm93
ICJwcmV2ZW50Q2xvc2UgdGhyZXciOworICAgIH0sCisgICAgZ2V0IHByZXZlbnRDYW5jZWwoKSB7
CisgICAgICB0aHJvdyAicHJldmVudENhbmNlbCB0aHJldyI7CisgICAgfQorICB9KTsKKyAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQsICJwcmV2ZW50QWJvcnQgdGhyZXciKTsKKworICByZXN1bHQgPSB0
cnlQaXBlVGhyb3VnaCh7CisgICAgZ2V0IHByZXZlbnRDbG9zZSgpIHsKKyAgICAgIHRocm93ICJw
cmV2ZW50Q2xvc2UgdGhyZXciOworICAgIH0sCisgICAgZ2V0IHNpZ25hbCgpIHsKKyAgICAgIHRo
cm93ICJzaWduYWwgdGhyZXciOworICAgIH0KKyAgfSk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0
LCAicHJldmVudENsb3NlIHRocmV3Iik7CisKKyAgcmVzdWx0ID0gdHJ5UGlwZVRocm91Z2goeyB9
LCB7CisgICAgZ2V0IHJlYWRhYmxlKCkgeworICAgICAgdGhyb3cgInJlYWRhYmxlIHRocmV3IjsK
KyAgICB9LAorICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAgIHRocm93ICJ3cml0YWJsZSB0aHJl
dyI7CisgICAgfQorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJyZWFkYWJsZSB0aHJl
dyIpOworCisKKyAgcmVzdWx0ID0gdHJ5UGlwZVRocm91Z2goeworICAgIGdldCBwcmV2ZW50QWJv
cnQoKSB7CisgICAgICB0aHJvdyAicHJldmVudEFib3J0IHRocmV3IjsKKyAgICB9IH0sIHsKKyAg
ICBnZXQgcmVhZGFibGUoKSB7CisgICAgICB0aHJvdyAicmVhZGFibGUgdGhyZXciOworICAgIH0s
CisgICAgZ2V0IHdyaXRhYmxlKCkgeworICAgICAgdGhyb3cgIndyaXRhYmxlIHRocmV3IjsKKyAg
ICB9CisgIH0pOworICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgInJlYWRhYmxlIHRocmV3Iik7CisK
K30sICdwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0dGVyIHRocm93
cycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlw
aW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBlZjM5OWJlMmEx
ZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0MjUzLi4xY2RjZWU2YzVmZmQwNDJmNDYzZDMxZTYw
ZWQ3ZGRlNWUwOGM4ZDBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtNDEsNCArNDEsNSBAQCBQQVNTIHByZXZlbnRDYW5jZWwgc2hvdWxkIHdvcmsKIFBBU1MgcHJl
dmVudENsb3NlIHNob3VsZCB3b3JrCiBQQVNTIHByZXZlbnRBYm9ydCBzaG91bGQgd29yawogUEFT
UyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0dGVyIGdyYWJzIGEg
d3JpdGVyCitQQVNTIHBpcGVUaHJvdWdoKCkgc2hvdWxkIHRocm93IGlmIGFuIG9wdGlvbiBnZXR0
ZXIgdGhyb3dzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434777</attachid>
            <date>2021-08-02 11:27:00 -0700</date>
            <delta_ts>2021-08-02 11:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227690-20210802202658.patch</filename>
            <type>text/plain</type>
            <size>18031</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTczOWY2NDMwYWQzMjZl
OGIxNzc4YWRmOTE1NDE0YjZhNjY2NDhkZS4uNDBkNDY1ZjBjNzNlOGFlOGJhNDgyMWI0NzEzNGM5
NTA4NWNiMTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA4LTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdz
IHBpcGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMt
cGVyZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBvbmUgZ2V0dGVyIGZv
ciBzaWduYWwuCisgICAgICAgIE9yZGVyIGdldHRlcnMgYXMgcGVyIHNwZWMuCisgICAgICAgIElm
IG9wdGlvbnMgaXMgdW5kZWZpbmVkLCBza2lwIGNhbGxpbmcgYW55IGdldHRlci4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKHBpcGVUaHJvdWdoKToKKyAgICAgICAgKHBpcGVU
byk6CisKIDIwMjEtMDctMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFWVmlkZW9DYXB0dXJlU291cmNlIHNob3VsZCBub3Qgc3RhcnQvc3RvcCB0aGUgY2Ft
ZXJhIGlmIHRyeWluZyB0byBhcHBseSB0aGUgc2FtZSBzaXplL2ZyYW1lIHJhdGUgY29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmpzCmluZGV4IGM5NmViMTI1ZjlhZDhkYzNiZjIyZmI4Yzk1ZjQyMzYwZGRiZmQxMDYuLmJjMmNi
ZWQ4MmFkNjA1Yjc2ZDk4Njk0ZDE2ZmU5MWU4ZjQ4ODU3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTExNiwxMiArMTE2LDYg
QEAgZnVuY3Rpb24gcGlwZVRocm91Z2goc3RyZWFtcywgb3B0aW9ucykKICAgICAidXNlIHN0cmlj
dCI7CiAKICAgICBpZiAoQHdyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCgpKSB7Ci0gICAgICAgIGlm
ICghQGlzUmVhZGFibGVTdHJlYW0odGhpcykpCi0gICAgICAgICAgICB0aHJvdyBAbWFrZVRoaXNU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIiwgInBpcGVUaHJvdWdoIik7Ci0KLSAgICAgICAgaWYg
KEBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKHRoaXMpKQotICAgICAgICAgICAgdGhyb3cgQG1ha2VU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwotCiAgICAgICAgIGNvbnN0IHRy
YW5zZm9ybXMgPSBzdHJlYW1zOwogCiAgICAgICAgIGNvbnN0IHJlYWRhYmxlID0gdHJhbnNmb3Jt
c1sicmVhZGFibGUiXTsKQEAgLTEzMiwxOSArMTI2LDI4IEBAIGZ1bmN0aW9uIHBpcGVUaHJvdWdo
KHN0cmVhbXMsIG9wdGlvbnMpCiAgICAgICAgIGlmICghQGlzV3JpdGFibGVTdHJlYW0od3JpdGFi
bGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIndyaXRhYmxlIHNob3VsZCBi
ZSBXcml0YWJsZVN0cmVhbSIpOwogCi0gICAgICAgIGlmIChvcHRpb25zID09PSBAdW5kZWZpbmVk
KQotICAgICAgICAgICAgb3B0aW9ucyA9IHsgfTsKLQorICAgICAgICBsZXQgcHJldmVudENsb3Nl
ID0gZmFsc2U7CisgICAgICAgIGxldCBwcmV2ZW50QWJvcnQgPSBmYWxzZTsKKyAgICAgICAgbGV0
IHByZXZlbnRDYW5jZWwgPSBmYWxzZTsKICAgICAgICAgbGV0IHNpZ25hbDsKLSAgICAgICAgaWYg
KCJzaWduYWwiIGluIG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKCFAaXNVbmRlZmluZWRPck51bGwo
b3B0aW9ucykpIHsKKyAgICAgICAgICAgIGlmICghQGlzT2JqZWN0KG9wdGlvbnMpKQorICAgICAg
ICAgICAgICAgIHRocm93IEBtYWtlVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0
Iik7CisKKyAgICAgICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9uc1sicHJldmVudEFib3J0
Il07CisgICAgICAgICAgICBwcmV2ZW50Q2FuY2VsID0gISFvcHRpb25zWyJwcmV2ZW50Q2FuY2Vs
Il07CisgICAgICAgICAgICBwcmV2ZW50Q2xvc2UgPSAhIW9wdGlvbnNbInByZXZlbnRDbG9zZSJd
OworCiAgICAgICAgICAgICBzaWduYWwgPSBvcHRpb25zWyJzaWduYWwiXTsKLSAgICAgICAgICAg
IGlmICghKHNpZ25hbCBpbnN0YW5jZW9mIEBBYm9ydFNpZ25hbCkpCisgICAgICAgICAgICBpZiAo
c2lnbmFsICE9PSBAdW5kZWZpbmVkICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFib3J0U2lnbmFs
KSkKICAgICAgICAgICAgICAgICB0aHJvdyBAbWFrZVR5cGVFcnJvcigib3B0aW9ucy5zaWduYWwg
bXVzdCBiZSBBYm9ydFNpZ25hbCIpOwogICAgICAgICB9CiAKLSAgICAgICAgY29uc3QgcHJldmVu
dENsb3NlID0gISFvcHRpb25zWyJwcmV2ZW50Q2xvc2UiXTsKLSAgICAgICAgY29uc3QgcHJldmVu
dEFib3J0ID0gISFvcHRpb25zWyJwcmV2ZW50QWJvcnQiXTsKLSAgICAgICAgY29uc3QgcHJldmVu
dENhbmNlbCA9ICEhb3B0aW9uc1sicHJldmVudENhbmNlbCJdOworICAgICAgICBpZiAoIUBpc1Jl
YWRhYmxlU3RyZWFtKHRoaXMpKQorICAgICAgICAgICAgdGhyb3cgQG1ha2VUaGlzVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVGhyb3VnaCIpOworCisgICAgICAgIGlmIChAaXNSZWFk
YWJsZVN0cmVhbUxvY2tlZCh0aGlzKSkKKyAgICAgICAgICAgIHRocm93IEBtYWtlVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQiKTsKIAogICAgICAgICBpZiAoQGlzV3JpdGFibGVT
dHJlYW1Mb2NrZWQod3JpdGFibGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3Io
IldyaXRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwpAQCAtMTcxLDI2ICsxNzQsMzIgQEAgZnVuY3Rp
b24gcGlwZVRvKGRlc3RpbmF0aW9uKQogICAgIGxldCBvcHRpb25zID0gYXJndW1lbnRzWzFdOwog
CiAgICAgaWYgKEB3cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoKSkgewotICAgICAgICBpZiAoIUBp
c1JlYWRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWpl
Y3QoQG1ha2VUaGlzVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVG8iKSk7CisgICAg
ICAgIGxldCBwcmV2ZW50Q2xvc2UgPSBmYWxzZTsKKyAgICAgICAgbGV0IHByZXZlbnRBYm9ydCA9
IGZhbHNlOworICAgICAgICBsZXQgcHJldmVudENhbmNlbCA9IGZhbHNlOworICAgICAgICBsZXQg
c2lnbmFsOworICAgICAgICBpZiAoIUBpc1VuZGVmaW5lZE9yTnVsbChvcHRpb25zKSkgeworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoIUBpc09iamVjdChvcHRpb25zKSkK
KyAgICAgICAgICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBi
ZSBhbiBvYmplY3QiKTsKKworICAgICAgICAgICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9u
c1sicHJldmVudEFib3J0Il07CisgICAgICAgICAgICAgICAgcHJldmVudENhbmNlbCA9ICEhb3B0
aW9uc1sicHJldmVudENhbmNlbCJdOworICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZSA9ICEh
b3B0aW9uc1sicHJldmVudENsb3NlIl07CisKKyAgICAgICAgICAgICAgICBzaWduYWwgPSBvcHRp
b25zWyJzaWduYWwiXTsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmFsICE9PSBAdW5kZWZpbmVk
ICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFib3J0U2lnbmFsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIm9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWdu
YWwiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBA
UHJvbWlzZS5AcmVqZWN0KGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFAaXNXcml0YWJsZVN0cmVhbShkZXN0aW5hdGlvbikpCiAgICAgICAgICAgICByZXR1cm4g
QFByb21pc2UuQHJlamVjdChAbWFrZVR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gcGlwZVRvIHJl
cXVpcmVzIGEgV3JpdGFibGVTdHJlYW0iKSk7CiAKLSAgICAgICAgaWYgKG9wdGlvbnMgPT09IEB1
bmRlZmluZWQpCi0gICAgICAgICAgICBvcHRpb25zID0geyB9OwotCi0gICAgICAgIC8vIEZJWE1F
LiBXZSBzaG91bGQgY2F0Y2ggZXhjZXB0aW9ucyBhbmQgcmVqZWN0LgotICAgICAgICBsZXQgc2ln
bmFsOwotICAgICAgICBpZiAoInNpZ25hbCIgaW4gb3B0aW9ucykgewotICAgICAgICAgICAgc2ln
bmFsID0gb3B0aW9uc1sic2lnbmFsIl07Ci0gICAgICAgICAgICBpZiAoIShzaWduYWwgaW5zdGFu
Y2VvZiBAQWJvcnRTaWduYWwpKQotICAgICAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVq
ZWN0KEBtYWtlVHlwZUVycm9yKCJvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIikp
OwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgcHJldmVudENsb3NlID0gISFvcHRpb25zWyJw
cmV2ZW50Q2xvc2UiXTsKLSAgICAgICAgY29uc3QgcHJldmVudEFib3J0ID0gISFvcHRpb25zWyJw
cmV2ZW50QWJvcnQiXTsKLSAgICAgICAgY29uc3QgcHJldmVudENhbmNlbCA9ICEhb3B0aW9uc1si
cHJldmVudENhbmNlbCJdOworICAgICAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQor
ICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VUaGlzVHlwZUVycm9yKCJS
ZWFkYWJsZVN0cmVhbSIsICJwaXBlVG8iKSk7CiAKICAgICAgICAgaWYgKEBpc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkKHRoaXMpKQogICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1h
a2VUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDAzNjIwZjNhMWZlZGFiYWMyM2Q2MDkzOGY5ZGNiNzhhYTgyMzg2
N2IuLjQ4MTJhMmZhMDVlNzliMDA2M2YyMjQ5ZTk0MjJhMGNmNzViZjEzN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA4LTAyICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdzIHBp
cGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMtcGVy
ZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRo
cm91Z2guYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3Ry
ZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS5qczoKKyAgICAgICAgKHRyeVBpcGVUaHJvdWdo
KToKKyAgICAgICAgKHRlc3QuZ2V0IGFzc2VydF9lcXVhbHMpOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93
aW5nLW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dDoKKwogMjAyMS0wNy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODA0ODguCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5n
L2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBlMjI0ZGIxYzczMzI3NTA1NzQ4NGUzN2M0NzNkNTNmMGUyZjg1ZGQuLmU1NTY3YjJkNWVj
NTExMGQ0NWQxNTgzNmM1NTFhNGI3N2Y4Y2JlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsx
Miw1IEBAIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVjdGlvbiBmcm9tIHB1bGwgc2hvdWxkIGNhdXNl
IHBpcGVUbygpIHRvIHJlamVjdCB3aGVuIHByZXZlCiBQQVNTIGFuIHVuZGVmaW5lZCByZWplY3Rp
b24gZnJvbSB3cml0ZSBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmVu
dENhbmNlbCBpcyB0cnVlCiBQQVNTIGFuIHVuZGVmaW5lZCByZWplY3Rpb24gZnJvbSB3cml0ZSBz
aG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmVudENhbmNlbCBpcyBmYWxz
ZQogUEFTUyBwaXBlVG8oKSBzaG91bGQgcmVqZWN0IGlmIGFuIG9wdGlvbiBnZXR0ZXIgZ3JhYnMg
YSB3cml0ZXIKLUZBSUwgcGlwZVRvKCkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBpZiBudWxsIGlz
IHBhc3NlZCBudWxsIGlzIG5vdCBhbiBPYmplY3QuCitQQVNTIHBpcGVUbygpIHByb21pc2Ugc2hv
dWxkIHJlc29sdmUgaWYgbnVsbCBpcyBwYXNzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDBlMjI0ZGIxYzczMzI3NTA1NzQ4NGUzN2M0NzNkNTNmMGUyZjg1ZGQuLmU1NTY3YjJk
NWVjNTExMGQ0NWQxNTgzNmM1NTFhNGI3N2Y4Y2JlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2dlbmVyYWwuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTEyLDUgKzEyLDUgQEAgUEFTUyBhbiB1bmRlZmluZWQgcmVqZWN0aW9uIGZyb20g
cHVsbCBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmUKIFBBU1MgYW4g
dW5kZWZpbmVkIHJlamVjdGlvbiBmcm9tIHdyaXRlIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byBy
ZWplY3Qgd2hlbiBwcmV2ZW50Q2FuY2VsIGlzIHRydWUKIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVj
dGlvbiBmcm9tIHdyaXRlIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3Qgd2hlbiBwcmV2
ZW50Q2FuY2VsIGlzIGZhbHNlCiBQQVNTIHBpcGVUbygpIHNob3VsZCByZWplY3QgaWYgYW4gb3B0
aW9uIGdldHRlciBncmFicyBhIHdyaXRlcgotRkFJTCBwaXBlVG8oKSBwcm9taXNlIHNob3VsZCBy
ZXNvbHZlIGlmIG51bGwgaXMgcGFzc2VkIG51bGwgaXMgbm90IGFuIE9iamVjdC4KK1BBU1MgcGlw
ZVRvKCkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBpZiBudWxsIGlzIHBhc3NlZAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMv
cGlwaW5nL3BpcGUtdGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55
LWV4cGVjdGVkLnR4dAppbmRleCBlZjM5OWJlMmExZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0
MjUzLi5lOWYzZmFjZjkyYzAxY2U2ZjU0MjlhY2JkYWU5ZmI5MDMwNjUwODRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlw
aW5nL3BpcGUtdGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFu
eS1leHBlY3RlZC50eHQKQEAgLTQxLDQgKzQxLDUgQEAgUEFTUyBwcmV2ZW50Q2FuY2VsIHNob3Vs
ZCB3b3JrCiBQQVNTIHByZXZlbnRDbG9zZSBzaG91bGQgd29yawogUEFTUyBwcmV2ZW50QWJvcnQg
c2hvdWxkIHdvcmsKIFBBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0aW9u
IGdldHRlciBncmFicyBhIHdyaXRlcgorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBp
ZiByZWFkYWJsZS93cml0YWJsZSBnZXR0ZXJzIHRocm93CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10
aHJvdWdoLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS5qcwppbmRleCAzNWRiYjQ1NmIzZTJj
NmQwMmExOGE5NTA1YmMyMTM4YTU3NDc0ODg3Li42ZDg5NDQ1YzMyMDg2MjQ5ODFkODU2ZGM3OTYx
NGFiNDYwYzVhY2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9w
aXBlLXRocm91Z2guYW55LmpzCkBAIC0yNjYsMyArMjY2LDUyIEBAIHRlc3QoKCkgPT4gewogICAg
IH0KICAgfSksICdwaXBlVGhyb3VnaCBzaG91bGQgdGhyb3cnKTsKIH0sICdwaXBlVGhyb3VnaCgp
IHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0dGVyIGdyYWJzIGEgd3JpdGVyJyk7CisKK2Z1
bmN0aW9uIHRyeVBpcGVUaHJvdWdoKHBhaXIsIG9wdGlvbnMpCit7CisgIGNvbnN0IHJzID0gbmV3
IFJlYWRhYmxlU3RyZWFtKCk7CisgIGlmICghcGFpcikKKyAgICBwYWlyID0ge3JlYWRhYmxlOm5l
dyBSZWFkYWJsZVN0cmVhbSgpLCB3cml0YWJsZTpuZXcgV3JpdGFibGVTdHJlYW0oKX07CisgIHRy
eSB7CisgICAgcnMucGlwZVRocm91Z2gocGFpciwgb3B0aW9ucykKKyAgfSBjYXRjaCAoZSkgewor
ICAgIHJldHVybiBlOworICB9Cit9CisKK3Rlc3QoKCkgPT4geworICBsZXQgcmVzdWx0ID0gdHJ5
UGlwZVRocm91Z2goeworICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgIHJldHVybiBuZXcgUmVh
ZGFibGVTdHJlYW0oKTsKKyAgICB9LAorICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAgIHRocm93
ICJ3cml0YWJsZSB0aHJldyI7CisgICAgfQorICB9LCB7IH0pOworICBhc3NlcnRfZXF1YWxzKHJl
c3VsdCwgIndyaXRhYmxlIHRocmV3Iik7CisKKyAgcmVzdWx0ID0gdHJ5UGlwZVRocm91Z2goewor
ICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgIHRocm93ICJyZWFkYWJsZSB0aHJldyI7CisgICAg
fSwKKyAgICBnZXQgd3JpdGFibGUoKSB7CisgICAgICB0aHJvdyAid3JpdGFibGUgdGhyZXciOwor
ICAgIH0KKyAgfSwgeyB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJyZWFkYWJsZSB0aHJl
dyIpOworCisgIHJlc3VsdCA9IHRyeVBpcGVUaHJvdWdoKHsKKyAgICBnZXQgcmVhZGFibGUoKSB7
CisgICAgICB0aHJvdyAicmVhZGFibGUgdGhyZXciOworICAgIH0sCisgICAgZ2V0IHdyaXRhYmxl
KCkgeworICAgICAgdGhyb3cgIndyaXRhYmxlIHRocmV3IjsKKyAgICB9CisgIH0sIHsKKyAgICBn
ZXQgcHJldmVudEFib3J0KCkgeworICAgICAgdGhyb3cgInByZXZlbnRBYm9ydCB0aHJldyI7Cisg
ICAgfQorICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJyZWFkYWJsZSB0aHJldyIpOwor
Cit9LCAncGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgcmVhZGFibGUvd3JpdGFibGUgZ2V0
dGVycyB0aHJvdycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBl
ZjM5OWJlMmExZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0MjUzLi5lOWYzZmFjZjkyYzAxY2U2
ZjU0MjlhY2JkYWU5ZmI5MDMwNjUwODRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtNDEsNCArNDEsNSBAQCBQQVNTIHByZXZlbnRDYW5jZWwgc2hvdWxkIHdvcmsK
IFBBU1MgcHJldmVudENsb3NlIHNob3VsZCB3b3JrCiBQQVNTIHByZXZlbnRBYm9ydCBzaG91bGQg
d29yawogUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0dGVy
IGdyYWJzIGEgd3JpdGVyCitQQVNTIHBpcGVUaHJvdWdoKCkgc2hvdWxkIHRocm93IGlmIHJlYWRh
YmxlL3dyaXRhYmxlIGdldHRlcnMgdGhyb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRp
b25zLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4
dAppbmRleCA1YTYxMTVhY2VmMTZmZmYzYmU1ZDI4MTM2ZTZjMTk5NWU3NDIwYWRhLi4wODA5ZGVm
NDg2NTJlZTFkYzljNDEwNmRhZWIxOTI3NWVjNmFjMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5n
LW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55LWV4
cGVjdGVkLnR4dApAQCAtMSwyMiArMSwxMCBAQAogCi1GQUlMIHBpcGVUbyBzaG91bGQgc3RvcCBh
ZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MgcHJvbWlzZV9yZWplY3RzX2pzOiBwaXBl
VG8gc2hvdWxkIHJlamVjdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAo
IlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJv
cigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIkVycm9yIikKLUZBSUwgcGlwZVRocm91Z2gg
c2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzIGFzc2VydF90aHJv
d3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkgPT4gbmV3IFJlYWRh
YmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgpLCBvcHRpb25zKSIg
dGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWdu
YWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9u
IEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVG8g
c2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cyBwcm9taXNlX3Jl
amVjdHNfanM6IHBpcGVUbyBzaG91bGQgcmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRo
cm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUg
QWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJ
TCBwaXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhy
b3dzIGFzc2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAi
KCkgPT4gbmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVh
bSgpLCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11
c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVu
Y3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3Ii
KQotRkFJTCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhy
b3dzIHByb21pc2VfcmVqZWN0c19qczogcGlwZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5z
aWduYWwgbXVzdCBiZSBBYm9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5j
ZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
KCJFcnJvciIpCi1GQUlMIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJl
dmVudENsb3NlIHRocm93cyBhc3NlcnRfdGhyb3dzX2pzOiBwaXBlVGhyb3VnaCBzaG91bGQgdGhy
b3cgZnVuY3Rpb24gIigpID0+IG5ldyBSZWFkYWJsZVN0cmVhbSgpLnBpcGVUaHJvdWdoKG5ldyBU
cmFuc2Zvcm1TdHJlYW0oKSwgb3B0aW9ucykiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRp
b25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGlu
c3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiAoIkVycm9yIikKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2ln
bmFsIHRocm93cyBzaWduYWwKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0
dGluZyBzaWduYWwgdGhyb3dzIGFzc2VydF9hcnJheV9lcXVhbHM6IG9wdGlvbnMgc2hvdWxkIGJl
IHRvdWNoZWQgaW4gdGhlIHJpZ2h0IG9yZGVyIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJh
eSBbInByZXZlbnRBYm9ydCIsICJwcmV2ZW50Q2FuY2VsIiwgInByZXZlbnRDbG9zZSIsICJzaWdu
YWwiXSBsZW5ndGggNCwgZ290IFsic2lnbmFsIl0gbGVuZ3RoIDEKK1BBU1MgcGlwZVRvIHNob3Vs
ZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBwaXBlVGhyb3Vn
aCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MKK1BBU1MgcGlw
ZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJvd3MKK1BBU1Mg
cGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93
cworUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhy
b3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENs
b3NlIHRocm93cworUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwg
dGhyb3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2lnbmFs
IHRocm93cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggNWE2MTE1YWNlZjE2ZmZmM2JlNWQyODEzNmU2YzE5OTVlNzQyMGFkYS4uMDgwOWRlZjQ4NjUy
ZWUxZGM5YzQxMDZkYWViMTkyNzVlYzZhYzBlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRp
b25zLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwyMiArMSwxMCBAQAogCi1GQUlMIHBpcGVUbyBzaG91
bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MgcHJvbWlzZV9yZWplY3Rz
X2pzOiBwaXBlVG8gc2hvdWxkIHJlamVjdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0
U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5j
dGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIkVycm9yIikKLUZBSUwgcGlw
ZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzIGFz
c2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkgPT4g
bmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgpLCBv
cHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUg
QWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJ
TCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cyBw
cm9taXNlX3JlamVjdHNfanM6IHBpcGVUbyBzaG91bGQgcmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFs
IG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2Yg
ZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJy
b3IiKQotRkFJTCBwaXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRD
YW5jZWwgdGhyb3dzIGFzc2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBm
dW5jdGlvbiAiKCkgPT4gbmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5z
Zm9ybVN0cmVhbSgpLCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMu
c2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFu
Y2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
ICgiRXJyb3IiKQotRkFJTCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50
Q2xvc2UgdGhyb3dzIHByb21pc2VfcmVqZWN0c19qczogcGlwZVRvIHNob3VsZCByZWplY3QgZnVu
Y3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjog
b3B0aW9ucy5zaWduYWwgbXVzdCBiZSBBYm9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3Rl
ZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBj
b2RlXQotfSIgKCJFcnJvciIpCi1GQUlMIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdl
dHRpbmcgcHJldmVudENsb3NlIHRocm93cyBhc3NlcnRfdGhyb3dzX2pzOiBwaXBlVGhyb3VnaCBz
aG91bGQgdGhyb3cgZnVuY3Rpb24gIigpID0+IG5ldyBSZWFkYWJsZVN0cmVhbSgpLnBpcGVUaHJv
dWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0oKSwgb3B0aW9ucykiIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4
cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0
aXZlIGNvZGVdCi19IiAoIkVycm9yIikKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdl
dHRpbmcgc2lnbmFsIHRocm93cyBzaWduYWwKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3Ag
YWZ0ZXIgZ2V0dGluZyBzaWduYWwgdGhyb3dzIGFzc2VydF9hcnJheV9lcXVhbHM6IG9wdGlvbnMg
c2hvdWxkIGJlIHRvdWNoZWQgaW4gdGhlIHJpZ2h0IG9yZGVyIGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCBhcnJheSBbInByZXZlbnRBYm9ydCIsICJwcmV2ZW50Q2FuY2VsIiwgInByZXZlbnRDbG9z
ZSIsICJzaWduYWwiXSBsZW5ndGggNCwgZ290IFsic2lnbmFsIl0gbGVuZ3RoIDEKK1BBU1MgcGlw
ZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBw
aXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MK
K1BBU1MgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJv
d3MKK1BBU1MgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2Fu
Y2VsIHRocm93cworUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50
Q2xvc2UgdGhyb3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcg
cHJldmVudENsb3NlIHRocm93cworUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGlu
ZyBzaWduYWwgdGhyb3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRp
bmcgc2lnbmFsIHRocm93cwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434779</attachid>
            <date>2021-08-02 11:33:34 -0700</date>
            <delta_ts>2021-08-03 08:12:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227690-20210802203333.patch</filename>
            <type>text/plain</type>
            <size>18760</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTczOWY2NDMwYWQzMjZl
OGIxNzc4YWRmOTE1NDE0YjZhNjY2NDhkZS4uNDBkNDY1ZjBjNzNlOGFlOGJhNDgyMWI0NzEzNGM5
NTA4NWNiMTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA4LTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdz
IHBpcGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMt
cGVyZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBvbmUgZ2V0dGVyIGZv
ciBzaWduYWwuCisgICAgICAgIE9yZGVyIGdldHRlcnMgYXMgcGVyIHNwZWMuCisgICAgICAgIElm
IG9wdGlvbnMgaXMgdW5kZWZpbmVkLCBza2lwIGNhbGxpbmcgYW55IGdldHRlci4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKHBpcGVUaHJvdWdoKToKKyAgICAgICAgKHBpcGVU
byk6CisKIDIwMjEtMDctMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFWVmlkZW9DYXB0dXJlU291cmNlIHNob3VsZCBub3Qgc3RhcnQvc3RvcCB0aGUgY2Ft
ZXJhIGlmIHRyeWluZyB0byBhcHBseSB0aGUgc2FtZSBzaXplL2ZyYW1lIHJhdGUgY29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmpzCmluZGV4IGM5NmViMTI1ZjlhZDhkYzNiZjIyZmI4Yzk1ZjQyMzYwZGRiZmQxMDYuLmJjMmNi
ZWQ4MmFkNjA1Yjc2ZDk4Njk0ZDE2ZmU5MWU4ZjQ4ODU3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTExNiwxMiArMTE2LDYg
QEAgZnVuY3Rpb24gcGlwZVRocm91Z2goc3RyZWFtcywgb3B0aW9ucykKICAgICAidXNlIHN0cmlj
dCI7CiAKICAgICBpZiAoQHdyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCgpKSB7Ci0gICAgICAgIGlm
ICghQGlzUmVhZGFibGVTdHJlYW0odGhpcykpCi0gICAgICAgICAgICB0aHJvdyBAbWFrZVRoaXNU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIiwgInBpcGVUaHJvdWdoIik7Ci0KLSAgICAgICAgaWYg
KEBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKHRoaXMpKQotICAgICAgICAgICAgdGhyb3cgQG1ha2VU
eXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwotCiAgICAgICAgIGNvbnN0IHRy
YW5zZm9ybXMgPSBzdHJlYW1zOwogCiAgICAgICAgIGNvbnN0IHJlYWRhYmxlID0gdHJhbnNmb3Jt
c1sicmVhZGFibGUiXTsKQEAgLTEzMiwxOSArMTI2LDI4IEBAIGZ1bmN0aW9uIHBpcGVUaHJvdWdo
KHN0cmVhbXMsIG9wdGlvbnMpCiAgICAgICAgIGlmICghQGlzV3JpdGFibGVTdHJlYW0od3JpdGFi
bGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIndyaXRhYmxlIHNob3VsZCBi
ZSBXcml0YWJsZVN0cmVhbSIpOwogCi0gICAgICAgIGlmIChvcHRpb25zID09PSBAdW5kZWZpbmVk
KQotICAgICAgICAgICAgb3B0aW9ucyA9IHsgfTsKLQorICAgICAgICBsZXQgcHJldmVudENsb3Nl
ID0gZmFsc2U7CisgICAgICAgIGxldCBwcmV2ZW50QWJvcnQgPSBmYWxzZTsKKyAgICAgICAgbGV0
IHByZXZlbnRDYW5jZWwgPSBmYWxzZTsKICAgICAgICAgbGV0IHNpZ25hbDsKLSAgICAgICAgaWYg
KCJzaWduYWwiIGluIG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKCFAaXNVbmRlZmluZWRPck51bGwo
b3B0aW9ucykpIHsKKyAgICAgICAgICAgIGlmICghQGlzT2JqZWN0KG9wdGlvbnMpKQorICAgICAg
ICAgICAgICAgIHRocm93IEBtYWtlVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0
Iik7CisKKyAgICAgICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9uc1sicHJldmVudEFib3J0
Il07CisgICAgICAgICAgICBwcmV2ZW50Q2FuY2VsID0gISFvcHRpb25zWyJwcmV2ZW50Q2FuY2Vs
Il07CisgICAgICAgICAgICBwcmV2ZW50Q2xvc2UgPSAhIW9wdGlvbnNbInByZXZlbnRDbG9zZSJd
OworCiAgICAgICAgICAgICBzaWduYWwgPSBvcHRpb25zWyJzaWduYWwiXTsKLSAgICAgICAgICAg
IGlmICghKHNpZ25hbCBpbnN0YW5jZW9mIEBBYm9ydFNpZ25hbCkpCisgICAgICAgICAgICBpZiAo
c2lnbmFsICE9PSBAdW5kZWZpbmVkICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFib3J0U2lnbmFs
KSkKICAgICAgICAgICAgICAgICB0aHJvdyBAbWFrZVR5cGVFcnJvcigib3B0aW9ucy5zaWduYWwg
bXVzdCBiZSBBYm9ydFNpZ25hbCIpOwogICAgICAgICB9CiAKLSAgICAgICAgY29uc3QgcHJldmVu
dENsb3NlID0gISFvcHRpb25zWyJwcmV2ZW50Q2xvc2UiXTsKLSAgICAgICAgY29uc3QgcHJldmVu
dEFib3J0ID0gISFvcHRpb25zWyJwcmV2ZW50QWJvcnQiXTsKLSAgICAgICAgY29uc3QgcHJldmVu
dENhbmNlbCA9ICEhb3B0aW9uc1sicHJldmVudENhbmNlbCJdOworICAgICAgICBpZiAoIUBpc1Jl
YWRhYmxlU3RyZWFtKHRoaXMpKQorICAgICAgICAgICAgdGhyb3cgQG1ha2VUaGlzVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVGhyb3VnaCIpOworCisgICAgICAgIGlmIChAaXNSZWFk
YWJsZVN0cmVhbUxvY2tlZCh0aGlzKSkKKyAgICAgICAgICAgIHRocm93IEBtYWtlVHlwZUVycm9y
KCJSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQiKTsKIAogICAgICAgICBpZiAoQGlzV3JpdGFibGVT
dHJlYW1Mb2NrZWQod3JpdGFibGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3Io
IldyaXRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwpAQCAtMTcxLDI2ICsxNzQsMzIgQEAgZnVuY3Rp
b24gcGlwZVRvKGRlc3RpbmF0aW9uKQogICAgIGxldCBvcHRpb25zID0gYXJndW1lbnRzWzFdOwog
CiAgICAgaWYgKEB3cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoKSkgewotICAgICAgICBpZiAoIUBp
c1JlYWRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWpl
Y3QoQG1ha2VUaGlzVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVG8iKSk7CisgICAg
ICAgIGxldCBwcmV2ZW50Q2xvc2UgPSBmYWxzZTsKKyAgICAgICAgbGV0IHByZXZlbnRBYm9ydCA9
IGZhbHNlOworICAgICAgICBsZXQgcHJldmVudENhbmNlbCA9IGZhbHNlOworICAgICAgICBsZXQg
c2lnbmFsOworICAgICAgICBpZiAoIUBpc1VuZGVmaW5lZE9yTnVsbChvcHRpb25zKSkgeworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoIUBpc09iamVjdChvcHRpb25zKSkK
KyAgICAgICAgICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBi
ZSBhbiBvYmplY3QiKTsKKworICAgICAgICAgICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9u
c1sicHJldmVudEFib3J0Il07CisgICAgICAgICAgICAgICAgcHJldmVudENhbmNlbCA9ICEhb3B0
aW9uc1sicHJldmVudENhbmNlbCJdOworICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZSA9ICEh
b3B0aW9uc1sicHJldmVudENsb3NlIl07CisKKyAgICAgICAgICAgICAgICBzaWduYWwgPSBvcHRp
b25zWyJzaWduYWwiXTsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmFsICE9PSBAdW5kZWZpbmVk
ICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFib3J0U2lnbmFsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIm9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWdu
YWwiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBA
UHJvbWlzZS5AcmVqZWN0KGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFAaXNXcml0YWJsZVN0cmVhbShkZXN0aW5hdGlvbikpCiAgICAgICAgICAgICByZXR1cm4g
QFByb21pc2UuQHJlamVjdChAbWFrZVR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gcGlwZVRvIHJl
cXVpcmVzIGEgV3JpdGFibGVTdHJlYW0iKSk7CiAKLSAgICAgICAgaWYgKG9wdGlvbnMgPT09IEB1
bmRlZmluZWQpCi0gICAgICAgICAgICBvcHRpb25zID0geyB9OwotCi0gICAgICAgIC8vIEZJWE1F
LiBXZSBzaG91bGQgY2F0Y2ggZXhjZXB0aW9ucyBhbmQgcmVqZWN0LgotICAgICAgICBsZXQgc2ln
bmFsOwotICAgICAgICBpZiAoInNpZ25hbCIgaW4gb3B0aW9ucykgewotICAgICAgICAgICAgc2ln
bmFsID0gb3B0aW9uc1sic2lnbmFsIl07Ci0gICAgICAgICAgICBpZiAoIShzaWduYWwgaW5zdGFu
Y2VvZiBAQWJvcnRTaWduYWwpKQotICAgICAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVq
ZWN0KEBtYWtlVHlwZUVycm9yKCJvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIikp
OwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgcHJldmVudENsb3NlID0gISFvcHRpb25zWyJw
cmV2ZW50Q2xvc2UiXTsKLSAgICAgICAgY29uc3QgcHJldmVudEFib3J0ID0gISFvcHRpb25zWyJw
cmV2ZW50QWJvcnQiXTsKLSAgICAgICAgY29uc3QgcHJldmVudENhbmNlbCA9ICEhb3B0aW9uc1si
cHJldmVudENhbmNlbCJdOworICAgICAgICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQor
ICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1ha2VUaGlzVHlwZUVycm9yKCJS
ZWFkYWJsZVN0cmVhbSIsICJwaXBlVG8iKSk7CiAKICAgICAgICAgaWYgKEBpc1JlYWRhYmxlU3Ry
ZWFtTG9ja2VkKHRoaXMpKQogICAgICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3QoQG1h
a2VUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDAzNjIwZjNhMWZlZGFiYWMyM2Q2MDkzOGY5ZGNiNzhhYTgyMzg2
N2IuLjQ4MTJhMmZhMDVlNzliMDA2M2YyMjQ5ZTk0MjJhMGNmNzViZjEzN2QgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA4LTAyICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdzIHBp
cGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMtcGVy
ZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRo
cm91Z2guYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3Ry
ZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS5qczoKKyAgICAgICAgKHRyeVBpcGVUaHJvdWdo
KToKKyAgICAgICAgKHRlc3QuZ2V0IGFzc2VydF9lcXVhbHMpOgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93
aW5nLW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dDoKKwogMjAyMS0wNy0zMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODA0ODguCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5n
L2dlbmVyYWwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBlMjI0ZGIxYzczMzI3NTA1NzQ4NGUzN2M0NzNkNTNmMGUyZjg1ZGQuLmU1NTY3YjJkNWVj
NTExMGQ0NWQxNTgzNmM1NTFhNGI3N2Y4Y2JlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xMiw1ICsx
Miw1IEBAIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVjdGlvbiBmcm9tIHB1bGwgc2hvdWxkIGNhdXNl
IHBpcGVUbygpIHRvIHJlamVjdCB3aGVuIHByZXZlCiBQQVNTIGFuIHVuZGVmaW5lZCByZWplY3Rp
b24gZnJvbSB3cml0ZSBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmVu
dENhbmNlbCBpcyB0cnVlCiBQQVNTIGFuIHVuZGVmaW5lZCByZWplY3Rpb24gZnJvbSB3cml0ZSBz
aG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmVudENhbmNlbCBpcyBmYWxz
ZQogUEFTUyBwaXBlVG8oKSBzaG91bGQgcmVqZWN0IGlmIGFuIG9wdGlvbiBnZXR0ZXIgZ3JhYnMg
YSB3cml0ZXIKLUZBSUwgcGlwZVRvKCkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBpZiBudWxsIGlz
IHBhc3NlZCBudWxsIGlzIG5vdCBhbiBPYmplY3QuCitQQVNTIHBpcGVUbygpIHByb21pc2Ugc2hv
dWxkIHJlc29sdmUgaWYgbnVsbCBpcyBwYXNzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDBlMjI0ZGIxYzczMzI3NTA1NzQ4NGUzN2M0NzNkNTNmMGUyZjg1ZGQuLmU1NTY3YjJk
NWVjNTExMGQ0NWQxNTgzNmM1NTFhNGI3N2Y4Y2JlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2dlbmVyYWwuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTEyLDUgKzEyLDUgQEAgUEFTUyBhbiB1bmRlZmluZWQgcmVqZWN0aW9uIGZyb20g
cHVsbCBzaG91bGQgY2F1c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmUKIFBBU1MgYW4g
dW5kZWZpbmVkIHJlamVjdGlvbiBmcm9tIHdyaXRlIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byBy
ZWplY3Qgd2hlbiBwcmV2ZW50Q2FuY2VsIGlzIHRydWUKIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVj
dGlvbiBmcm9tIHdyaXRlIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3Qgd2hlbiBwcmV2
ZW50Q2FuY2VsIGlzIGZhbHNlCiBQQVNTIHBpcGVUbygpIHNob3VsZCByZWplY3QgaWYgYW4gb3B0
aW9uIGdldHRlciBncmFicyBhIHdyaXRlcgotRkFJTCBwaXBlVG8oKSBwcm9taXNlIHNob3VsZCBy
ZXNvbHZlIGlmIG51bGwgaXMgcGFzc2VkIG51bGwgaXMgbm90IGFuIE9iamVjdC4KK1BBU1MgcGlw
ZVRvKCkgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSBpZiBudWxsIGlzIHBhc3NlZAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMv
cGlwaW5nL3BpcGUtdGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55
LWV4cGVjdGVkLnR4dAppbmRleCBlZjM5OWJlMmExZjIyZDVkOTEwOGY1MDBhMzVkZWY4YWVlNjQ0
MjUzLi5lMGJjYTI1ZGMxOTUzMjQyYWFiZGVmYmJjNTlhOWYwZjlhYTIyNmJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlw
aW5nL3BpcGUtdGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFu
eS1leHBlY3RlZC50eHQKQEAgLTQxLDQgKzQxLDcgQEAgUEFTUyBwcmV2ZW50Q2FuY2VsIHNob3Vs
ZCB3b3JrCiBQQVNTIHByZXZlbnRDbG9zZSBzaG91bGQgd29yawogUEFTUyBwcmV2ZW50QWJvcnQg
c2hvdWxkIHdvcmsKIFBBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0aW9u
IGdldHRlciBncmFicyBhIHdyaXRlcgorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCBub3QgdGhy
b3cgaWYgb3B0aW9uIGlzIG51bGwKK1BBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgbm90IHRocm93
IGlmIHNpZ25hbCBpcyB1bmRlZmluZWQKK1BBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cg
aWYgcmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUt
dGhyb3VnaC5hbnkuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkuanMKaW5kZXggMzVkYmI0NTZiM2Uy
YzZkMDJhMThhOTUwNWJjMjEzOGE1NzQ3NDg4Ny4uYjM0Y2EwMjlmMjY3YTQyNjJmYmY4NTMxNTc2
ZTE0OTU0NTVlYTUzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55LmpzCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcv
cGlwZS10aHJvdWdoLmFueS5qcwpAQCAtMjY2LDMgKzI2Niw2NiBAQCB0ZXN0KCgpID0+IHsKICAg
ICB9CiAgIH0pLCAncGlwZVRocm91Z2ggc2hvdWxkIHRocm93Jyk7CiB9LCAncGlwZVRocm91Z2go
KSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0aW9uIGdldHRlciBncmFicyBhIHdyaXRlcicpOworCit0
ZXN0KCgpID0+IHsKKyAgY29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgY29uc3Qg
cmVhZGFibGUgPSBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgY29uc3Qgd3JpdGFibGUgPSBuZXcg
V3JpdGFibGVTdHJlYW0oKTsKKyAgcnMucGlwZVRocm91Z2goe3JlYWRhYmxlLCB3cml0YWJsZX0s
IG51bGwpOworfSwgJ3BpcGVUaHJvdWdoKCkgc2hvdWxkIG5vdCB0aHJvdyBpZiBvcHRpb24gaXMg
bnVsbCcpOworCit0ZXN0KCgpID0+IHsKKyAgY29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJlYW0o
KTsKKyAgY29uc3QgcmVhZGFibGUgPSBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgY29uc3Qgd3Jp
dGFibGUgPSBuZXcgV3JpdGFibGVTdHJlYW0oKTsKKyAgcnMucGlwZVRocm91Z2goe3JlYWRhYmxl
LCB3cml0YWJsZX0sIHtzaWduYWw6dW5kZWZpbmVkfSk7Cit9LCAncGlwZVRocm91Z2goKSBzaG91
bGQgbm90IHRocm93IGlmIHNpZ25hbCBpcyB1bmRlZmluZWQnKTsKKworZnVuY3Rpb24gdHJ5UGlw
ZVRocm91Z2gocGFpciwgb3B0aW9ucykKK3sKKyAgY29uc3QgcnMgPSBuZXcgUmVhZGFibGVTdHJl
YW0oKTsKKyAgaWYgKCFwYWlyKQorICAgIHBhaXIgPSB7cmVhZGFibGU6bmV3IFJlYWRhYmxlU3Ry
ZWFtKCksIHdyaXRhYmxlOm5ldyBXcml0YWJsZVN0cmVhbSgpfTsKKyAgdHJ5IHsKKyAgICBycy5w
aXBlVGhyb3VnaChwYWlyLCBvcHRpb25zKQorICB9IGNhdGNoIChlKSB7CisgICAgcmV0dXJuIGU7
CisgIH0KK30KKwordGVzdCgoKSA9PiB7CisgIGxldCByZXN1bHQgPSB0cnlQaXBlVGhyb3VnaCh7
CisgICAgZ2V0IHJlYWRhYmxlKCkgeworICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSgp
OworICAgIH0sCisgICAgZ2V0IHdyaXRhYmxlKCkgeworICAgICAgdGhyb3cgIndyaXRhYmxlIHRo
cmV3IjsKKyAgICB9CisgIH0sIHsgfSk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAid3JpdGFi
bGUgdGhyZXciKTsKKworICByZXN1bHQgPSB0cnlQaXBlVGhyb3VnaCh7CisgICAgZ2V0IHJlYWRh
YmxlKCkgeworICAgICAgdGhyb3cgInJlYWRhYmxlIHRocmV3IjsKKyAgICB9LAorICAgIGdldCB3
cml0YWJsZSgpIHsKKyAgICAgIHRocm93ICJ3cml0YWJsZSB0aHJldyI7CisgICAgfQorICB9LCB7
IH0pOworICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgInJlYWRhYmxlIHRocmV3Iik7CisKKyAgcmVz
dWx0ID0gdHJ5UGlwZVRocm91Z2goeworICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgIHRocm93
ICJyZWFkYWJsZSB0aHJldyI7CisgICAgfSwKKyAgICBnZXQgd3JpdGFibGUoKSB7CisgICAgICB0
aHJvdyAid3JpdGFibGUgdGhyZXciOworICAgIH0KKyAgfSwgeworICAgIGdldCBwcmV2ZW50QWJv
cnQoKSB7CisgICAgICB0aHJvdyAicHJldmVudEFib3J0IHRocmV3IjsKKyAgICB9CisgIH0pOwor
ICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgInJlYWRhYmxlIHRocmV3Iik7CisKK30sICdwaXBlVGhy
b3VnaCgpIHNob3VsZCB0aHJvdyBpZiByZWFkYWJsZS93cml0YWJsZSBnZXR0ZXJzIHRocm93Jyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcv
cGlwZS10aHJvdWdoLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGVmMzk5YmUyYTFmMjJk
NWQ5MTA4ZjUwMGEzNWRlZjhhZWU2NDQyNTMuLmUwYmNhMjVkYzE5NTMyNDJhYWJkZWZiYmM1OWE5
ZjBmOWFhMjI2YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS53b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC00
MSw0ICs0MSw3IEBAIFBBU1MgcHJldmVudENhbmNlbCBzaG91bGQgd29yawogUEFTUyBwcmV2ZW50
Q2xvc2Ugc2hvdWxkIHdvcmsKIFBBU1MgcHJldmVudEFib3J0IHNob3VsZCB3b3JrCiBQQVNTIHBp
cGVUaHJvdWdoKCkgc2hvdWxkIHRocm93IGlmIGFuIG9wdGlvbiBnZXR0ZXIgZ3JhYnMgYSB3cml0
ZXIKK1BBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgbm90IHRocm93IGlmIG9wdGlvbiBpcyBudWxs
CitQQVNTIHBpcGVUaHJvdWdoKCkgc2hvdWxkIG5vdCB0aHJvdyBpZiBzaWduYWwgaXMgdW5kZWZp
bmVkCitQQVNTIHBpcGVUaHJvdWdoKCkgc2hvdWxkIHRocm93IGlmIHJlYWRhYmxlL3dyaXRhYmxl
IGdldHRlcnMgdGhyb3cKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRpb25zLmFueS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4dAppbmRleCA1YTYx
MTVhY2VmMTZmZmYzYmU1ZDI4MTM2ZTZjMTk5NWU3NDIwYWRhLi4wODA5ZGVmNDg2NTJlZTFkYzlj
NDEwNmRhZWIxOTI3NWVjNmFjMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55LWV4cGVjdGVkLnR4dApA
QCAtMSwyMiArMSwxMCBAQAogCi1GQUlMIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5n
IHByZXZlbnRBYm9ydCB0aHJvd3MgcHJvbWlzZV9yZWplY3RzX2pzOiBwaXBlVG8gc2hvdWxkIHJl
amVjdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlw
ZUVycm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIp
IGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiAoIkVycm9yIikKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3Ag
YWZ0ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzIGFzc2VydF90aHJvd3NfanM6IHBpcGVU
aHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkgPT4gbmV3IFJlYWRhYmxlU3RyZWFtKCku
cGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgpLCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0
ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVy
cm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVG8gc2hvdWxkIHN0b3Ag
YWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cyBwcm9taXNlX3JlamVjdHNfanM6IHBp
cGVUbyBzaG91bGQgcmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwi
ICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVy
cm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVGhyb3Vn
aCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dzIGFzc2VydF90
aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkgPT4gbmV3IFJl
YWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgpLCBvcHRpb25z
KSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRT
aWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0
aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBl
VG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhyb3dzIHByb21pc2Vf
cmVqZWN0c19qczogcGlwZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
dGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBi
ZSBBYm9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1G
QUlMIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENsb3NlIHRo
cm93cyBhc3NlcnRfdGhyb3dzX2pzOiBwaXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgZnVuY3Rpb24g
IigpID0+IG5ldyBSZWFkYWJsZVN0cmVhbSgpLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJl
YW0oKSwgb3B0aW9ucykiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNpZ25hbCBt
dXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1
bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIkVycm9y
IikKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2lnbmFsIHRocm93cyBz
aWduYWwKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwg
dGhyb3dzIGFzc2VydF9hcnJheV9lcXVhbHM6IG9wdGlvbnMgc2hvdWxkIGJlIHRvdWNoZWQgaW4g
dGhlIHJpZ2h0IG9yZGVyIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInByZXZlbnRB
Ym9ydCIsICJwcmV2ZW50Q2FuY2VsIiwgInByZXZlbnRDbG9zZSIsICJzaWduYWwiXSBsZW5ndGgg
NCwgZ290IFsic2lnbmFsIl0gbGVuZ3RoIDEKK1BBU1MgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVy
IGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBwaXBlVGhyb3VnaCBzaG91bGQgc3Rv
cCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MKK1BBU1MgcGlwZVRvIHNob3VsZCBz
dG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJvd3MKK1BBU1MgcGlwZVRocm91Z2gg
c2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cworUEFTUyBwaXBl
VG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhyb3dzCitQQVNTIHBp
cGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENsb3NlIHRocm93cwor
UEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwgdGhyb3dzCitQQVNT
IHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2lnbmFsIHRocm93cwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0
cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5n
L3Rocm93aW5nLW9wdGlvbnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNWE2MTE1YWNl
ZjE2ZmZmM2JlNWQyODEzNmU2YzE5OTVlNzQyMGFkYS4uMDgwOWRlZjQ4NjUyZWUxZGM5YzQxMDZk
YWViMTkyNzVlYzZhYzBlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRpb25zLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSwyMiArMSwxMCBAQAogCi1GQUlMIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRl
ciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MgcHJvbWlzZV9yZWplY3RzX2pzOiBwaXBlVG8g
c2hvdWxkIHJlamVjdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9i
amVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5
cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIkVycm9yIikKLUZBSUwgcGlwZVRocm91Z2ggc2hv
dWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzIGFzc2VydF90aHJvd3Nf
anM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkgPT4gbmV3IFJlYWRhYmxl
U3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgpLCBvcHRpb25zKSIgdGhy
ZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwi
ICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVy
cm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVG8gc2hv
dWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cyBwcm9taXNlX3JlamVj
dHNfanM6IHBpcGVUbyBzaG91bGQgcmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJv
cnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1
bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBw
aXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dz
IGFzc2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiKCkg
PT4gbmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSgp
LCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3Qg
YmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rp
b24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQot
RkFJTCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhyb3dz
IHByb21pc2VfcmVqZWN0c19qczogcGlwZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWdu
YWwgbXVzdCBiZSBBYm9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBv
ZiBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJF
cnJvciIpCi1GQUlMIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVu
dENsb3NlIHRocm93cyBhc3NlcnRfdGhyb3dzX2pzOiBwaXBlVGhyb3VnaCBzaG91bGQgdGhyb3cg
ZnVuY3Rpb24gIigpID0+IG5ldyBSZWFkYWJsZVN0cmVhbSgpLnBpcGVUaHJvdWdoKG5ldyBUcmFu
c2Zvcm1TdHJlYW0oKSwgb3B0aW9ucykiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25z
LnNpZ25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3Rh
bmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiAoIkVycm9yIikKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2lnbmFs
IHRocm93cyBzaWduYWwKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGlu
ZyBzaWduYWwgdGhyb3dzIGFzc2VydF9hcnJheV9lcXVhbHM6IG9wdGlvbnMgc2hvdWxkIGJlIHRv
dWNoZWQgaW4gdGhlIHJpZ2h0IG9yZGVyIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBb
InByZXZlbnRBYm9ydCIsICJwcmV2ZW50Q2FuY2VsIiwgInByZXZlbnRDbG9zZSIsICJzaWduYWwi
XSBsZW5ndGggNCwgZ290IFsic2lnbmFsIl0gbGVuZ3RoIDEKK1BBU1MgcGlwZVRvIHNob3VsZCBz
dG9wIGFmdGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBwaXBlVGhyb3VnaCBz
aG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MKK1BBU1MgcGlwZVRv
IHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJvd3MKK1BBU1MgcGlw
ZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cwor
UEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhyb3dz
CitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENsb3Nl
IHRocm93cworUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwgdGhy
b3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgc2lnbmFsIHRo
cm93cwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434833</attachid>
            <date>2021-08-03 08:12:17 -0700</date>
            <delta_ts>2021-08-03 08:59:35 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227690-20210803171216.patch</filename>
            <type>text/plain</type>
            <size>18933</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTczOWY2NDMwYWQzMjZl
OGIxNzc4YWRmOTE1NDE0YjZhNjY2NDhkZS4uYTA4NDhjMzZlN2FmZjhhMDEzZjQyYjJkYWJkODYy
NGFlZGMyMzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA4LTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkYWJsZVN0cmVhbSdz
IHBpcGVUbygpIGFuZCBwaXBlVGhyb3VnaCgpIGRvbid0IGhhbmRsZSBvcHRpb25zIGluIHNwZWMt
cGVyZmVjdCB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzY5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODA0ODIxNDQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFNodmF5a2EuCisKKyAgICAgICAgT3JkZXIgZ2V0dGVycyBhcyBw
ZXIgc3BlYyBmb3IgcGlwZVRvIGFuZCBwaXBlVGhyb3VnaC4KKyAgICAgICAgSGFuZGxlIHRoZSBj
YXNlIG9mIG51bGwgZGljdGlvbmFyaWVzIGFzIGlmIHRoZXkgYXJlIHVuZGVmaW5lZAorICAgICAg
ICBVc2UgZ2V0dGVyIGluc3RlYWQgb2YgdXNpbmcgJ2luJyBhcyBwZXIgV2ViSURMIHNwZWMuCisg
ICAgICAgIElmIG9wdGlvbnMgaXMgdW5kZWZpbmVkLCBza2lwIGNhbGxpbmcgYW55IGdldHRlci4K
KworICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKHBpcGVUaHJvdWdoKToKKyAgICAg
ICAgKHBpcGVUbyk6CisKIDIwMjEtMDctMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFWVmlkZW9DYXB0dXJlU291cmNlIHNob3VsZCBub3Qgc3RhcnQvc3Rv
cCB0aGUgY2FtZXJhIGlmIHRyeWluZyB0byBhcHBseSB0aGUgc2FtZSBzaXplL2ZyYW1lIHJhdGUg
Y29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmpzCmluZGV4IGM5NmViMTI1ZjlhZDhkYzNiZjIyZmI4Yzk1ZjQyMzYwZGRiZmQx
MDYuLjMxZmY1OTEyOWM0ODE1NjFmMGVhZWI4OTZmNzBkZGU5ZWI2MTNlOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTExNiwx
MiArMTE2LDYgQEAgZnVuY3Rpb24gcGlwZVRocm91Z2goc3RyZWFtcywgb3B0aW9ucykKICAgICAi
dXNlIHN0cmljdCI7CiAKICAgICBpZiAoQHdyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCgpKSB7Ci0g
ICAgICAgIGlmICghQGlzUmVhZGFibGVTdHJlYW0odGhpcykpCi0gICAgICAgICAgICB0aHJvdyBA
bWFrZVRoaXNUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIiwgInBpcGVUaHJvdWdoIik7Ci0KLSAg
ICAgICAgaWYgKEBpc1JlYWRhYmxlU3RyZWFtTG9ja2VkKHRoaXMpKQotICAgICAgICAgICAgdGhy
b3cgQG1ha2VUeXBlRXJyb3IoIlJlYWRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwotCiAgICAgICAg
IGNvbnN0IHRyYW5zZm9ybXMgPSBzdHJlYW1zOwogCiAgICAgICAgIGNvbnN0IHJlYWRhYmxlID0g
dHJhbnNmb3Jtc1sicmVhZGFibGUiXTsKQEAgLTEzMiwxOSArMTI2LDI4IEBAIGZ1bmN0aW9uIHBp
cGVUaHJvdWdoKHN0cmVhbXMsIG9wdGlvbnMpCiAgICAgICAgIGlmICghQGlzV3JpdGFibGVTdHJl
YW0od3JpdGFibGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VUeXBlRXJyb3IoIndyaXRhYmxl
IHNob3VsZCBiZSBXcml0YWJsZVN0cmVhbSIpOwogCi0gICAgICAgIGlmIChvcHRpb25zID09PSBA
dW5kZWZpbmVkKQotICAgICAgICAgICAgb3B0aW9ucyA9IHsgfTsKLQorICAgICAgICBsZXQgcHJl
dmVudENsb3NlID0gZmFsc2U7CisgICAgICAgIGxldCBwcmV2ZW50QWJvcnQgPSBmYWxzZTsKKyAg
ICAgICAgbGV0IHByZXZlbnRDYW5jZWwgPSBmYWxzZTsKICAgICAgICAgbGV0IHNpZ25hbDsKLSAg
ICAgICAgaWYgKCJzaWduYWwiIGluIG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKCFAaXNVbmRlZmlu
ZWRPck51bGwob3B0aW9ucykpIHsKKyAgICAgICAgICAgIGlmICghQGlzT2JqZWN0KG9wdGlvbnMp
KQorICAgICAgICAgICAgICAgIHRocm93IEBtYWtlVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUg
YW4gb2JqZWN0Iik7CisKKyAgICAgICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9uc1sicHJl
dmVudEFib3J0Il07CisgICAgICAgICAgICBwcmV2ZW50Q2FuY2VsID0gISFvcHRpb25zWyJwcmV2
ZW50Q2FuY2VsIl07CisgICAgICAgICAgICBwcmV2ZW50Q2xvc2UgPSAhIW9wdGlvbnNbInByZXZl
bnRDbG9zZSJdOworCiAgICAgICAgICAgICBzaWduYWwgPSBvcHRpb25zWyJzaWduYWwiXTsKLSAg
ICAgICAgICAgIGlmICghKHNpZ25hbCBpbnN0YW5jZW9mIEBBYm9ydFNpZ25hbCkpCisgICAgICAg
ICAgICBpZiAoc2lnbmFsICE9PSBAdW5kZWZpbmVkICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFi
b3J0U2lnbmFsKSkKICAgICAgICAgICAgICAgICB0aHJvdyBAbWFrZVR5cGVFcnJvcigib3B0aW9u
cy5zaWduYWwgbXVzdCBiZSBBYm9ydFNpZ25hbCIpOwogICAgICAgICB9CiAKLSAgICAgICAgY29u
c3QgcHJldmVudENsb3NlID0gISFvcHRpb25zWyJwcmV2ZW50Q2xvc2UiXTsKLSAgICAgICAgY29u
c3QgcHJldmVudEFib3J0ID0gISFvcHRpb25zWyJwcmV2ZW50QWJvcnQiXTsKLSAgICAgICAgY29u
c3QgcHJldmVudENhbmNlbCA9ICEhb3B0aW9uc1sicHJldmVudENhbmNlbCJdOworICAgICAgICBp
ZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQorICAgICAgICAgICAgdGhyb3cgQG1ha2VUaGlz
VHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVGhyb3VnaCIpOworCisgICAgICAgIGlm
IChAaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCh0aGlzKSkKKyAgICAgICAgICAgIHRocm93IEBtYWtl
VHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQiKTsKIAogICAgICAgICBpZiAoQGlz
V3JpdGFibGVTdHJlYW1Mb2NrZWQod3JpdGFibGUpKQogICAgICAgICAgICAgdGhyb3cgQG1ha2VU
eXBlRXJyb3IoIldyaXRhYmxlU3RyZWFtIGlzIGxvY2tlZCIpOwpAQCAtMTcxLDI2ICsxNzQsMzMg
QEAgZnVuY3Rpb24gcGlwZVRvKGRlc3RpbmF0aW9uKQogICAgIGxldCBvcHRpb25zID0gYXJndW1l
bnRzWzFdOwogCiAgICAgaWYgKEB3cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoKSkgewotICAgICAg
ICBpZiAoIUBpc1JlYWRhYmxlU3RyZWFtKHRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIEBQcm9t
aXNlLkByZWplY3QoQG1ha2VUaGlzVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSIsICJwaXBlVG8i
KSk7Ci0KLSAgICAgICAgaWYgKCFAaXNXcml0YWJsZVN0cmVhbShkZXN0aW5hdGlvbikpCi0gICAg
ICAgICAgICByZXR1cm4gQFByb21pc2UuQHJlamVjdChAbWFrZVR5cGVFcnJvcigiUmVhZGFibGVT
dHJlYW0gcGlwZVRvIHJlcXVpcmVzIGEgV3JpdGFibGVTdHJlYW0iKSk7Ci0KLSAgICAgICAgaWYg
KG9wdGlvbnMgPT09IEB1bmRlZmluZWQpCi0gICAgICAgICAgICBvcHRpb25zID0geyB9OwotCi0g
ICAgICAgIC8vIEZJWE1FLiBXZSBzaG91bGQgY2F0Y2ggZXhjZXB0aW9ucyBhbmQgcmVqZWN0Lgor
ICAgICAgICBsZXQgcHJldmVudENsb3NlID0gZmFsc2U7CisgICAgICAgIGxldCBwcmV2ZW50QWJv
cnQgPSBmYWxzZTsKKyAgICAgICAgbGV0IHByZXZlbnRDYW5jZWwgPSBmYWxzZTsKICAgICAgICAg
bGV0IHNpZ25hbDsKLSAgICAgICAgaWYgKCJzaWduYWwiIGluIG9wdGlvbnMpIHsKLSAgICAgICAg
ICAgIHNpZ25hbCA9IG9wdGlvbnNbInNpZ25hbCJdOwotICAgICAgICAgICAgaWYgKCEoc2lnbmFs
IGluc3RhbmNlb2YgQEFib3J0U2lnbmFsKSkKKyAgICAgICAgaWYgKCFAaXNVbmRlZmluZWRPck51
bGwob3B0aW9ucykpIHsKKyAgICAgICAgICAgIGlmICghQGlzT2JqZWN0KG9wdGlvbnMpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBtYWtlVHlwZUVycm9yKCJvcHRp
b25zIG11c3QgYmUgYW4gb2JqZWN0IikpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAg
ICAgICAgIHByZXZlbnRBYm9ydCA9ICEhb3B0aW9uc1sicHJldmVudEFib3J0Il07CisgICAgICAg
ICAgICAgICAgcHJldmVudENhbmNlbCA9ICEhb3B0aW9uc1sicHJldmVudENhbmNlbCJdOworICAg
ICAgICAgICAgICAgIHByZXZlbnRDbG9zZSA9ICEhb3B0aW9uc1sicHJldmVudENsb3NlIl07CisK
KyAgICAgICAgICAgICAgICBzaWduYWwgPSBvcHRpb25zWyJzaWduYWwiXTsKKyAgICAgICAgICAg
IH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KGUp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc2lnbmFsICE9PSBAdW5kZWZpbmVk
ICYmICEoc2lnbmFsIGluc3RhbmNlb2YgQEFib3J0U2lnbmFsKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gQFByb21pc2UuQHJlamVjdChAbWFrZVR5cGVFcnJvcigib3B0aW9ucy5zaWduYWwgbXVz
dCBiZSBBYm9ydFNpZ25hbCIpKTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHByZXZlbnRD
bG9zZSA9ICEhb3B0aW9uc1sicHJldmVudENsb3NlIl07Ci0gICAgICAgIGNvbnN0IHByZXZlbnRB
Ym9ydCA9ICEhb3B0aW9uc1sicHJldmVudEFib3J0Il07Ci0gICAgICAgIGNvbnN0IHByZXZlbnRD
YW5jZWwgPSAhIW9wdGlvbnNbInByZXZlbnRDYW5jZWwiXTsKKyAgICAgICAgaWYgKCFAaXNXcml0
YWJsZVN0cmVhbShkZXN0aW5hdGlvbikpCisgICAgICAgICAgICByZXR1cm4gQFByb21pc2UuQHJl
amVjdChAbWFrZVR5cGVFcnJvcigiUmVhZGFibGVTdHJlYW0gcGlwZVRvIHJlcXVpcmVzIGEgV3Jp
dGFibGVTdHJlYW0iKSk7CisKKyAgICAgICAgaWYgKCFAaXNSZWFkYWJsZVN0cmVhbSh0aGlzKSkK
KyAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBtYWtlVGhpc1R5cGVFcnJvcigi
UmVhZGFibGVTdHJlYW0iLCAicGlwZVRvIikpOwogCiAgICAgICAgIGlmIChAaXNSZWFkYWJsZVN0
cmVhbUxvY2tlZCh0aGlzKSkKICAgICAgICAgICAgIHJldHVybiBAUHJvbWlzZS5AcmVqZWN0KEBt
YWtlVHlwZUVycm9yKCJSZWFkYWJsZVN0cmVhbSBpcyBsb2NrZWQiKSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCAwMzYyMGYzYTFmZWRhYmFjMjNkNjA5MzhmOWRjYjc4YWE4MjM4
NjdiLi5kZGMyMzI1MmY2NzQ5MDVmNmM0ZDE3MDU1YmQyNjUyMjlhNDFkMTdlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wOC0wMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVhZGFibGVTdHJlYW0ncyBw
aXBlVG8oKSBhbmQgcGlwZVRocm91Z2goKSBkb24ndCBoYW5kbGUgb3B0aW9ucyBpbiBzcGVjLXBl
cmZlY3Qgd2F5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjc2OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwNDgyMTQ0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXhleSBTaHZheWthIC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2dlbmVyYWwuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUt
dGhyb3VnaC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9z
dHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55LmpzOgorICAgICAgICAodHJ5UGlwZVRocm91
Z2gpOgorICAgICAgICAodGVzdC5nZXQgYXNzZXJ0X2VxdWFscyk6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdGhy
b3dpbmctb3B0aW9ucy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRpb25zLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0OgorCiAyMDIxLTA3LTMxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4MDQ4OC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBp
bmcvZ2VuZXJhbC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS1leHBlY3RlZC50eHQK
aW5kZXggMGUyMjRkYjFjNzMzMjc1MDU3NDg0ZTM3YzQ3M2Q1M2YwZTJmODVkZC4uZTU1NjdiMmQ1
ZWM1MTEwZDQ1ZDE1ODM2YzU1MWE0Yjc3ZjhjYmU2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFu
eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFsLmFueS1leHBlY3RlZC50eHQKQEAgLTEyLDUg
KzEyLDUgQEAgUEFTUyBhbiB1bmRlZmluZWQgcmVqZWN0aW9uIGZyb20gcHVsbCBzaG91bGQgY2F1
c2UgcGlwZVRvKCkgdG8gcmVqZWN0IHdoZW4gcHJldmUKIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVj
dGlvbiBmcm9tIHdyaXRlIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3Qgd2hlbiBwcmV2
ZW50Q2FuY2VsIGlzIHRydWUKIFBBU1MgYW4gdW5kZWZpbmVkIHJlamVjdGlvbiBmcm9tIHdyaXRl
IHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3Qgd2hlbiBwcmV2ZW50Q2FuY2VsIGlzIGZh
bHNlCiBQQVNTIHBpcGVUbygpIHNob3VsZCByZWplY3QgaWYgYW4gb3B0aW9uIGdldHRlciBncmFi
cyBhIHdyaXRlcgotRkFJTCBwaXBlVG8oKSBwcm9taXNlIHNob3VsZCByZXNvbHZlIGlmIG51bGwg
aXMgcGFzc2VkIG51bGwgaXMgbm90IGFuIE9iamVjdC4KK1BBU1MgcGlwZVRvKCkgcHJvbWlzZSBz
aG91bGQgcmVzb2x2ZSBpZiBudWxsIGlzIHBhc3NlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2dlbmVyYWwu
YW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2dlbmVyYWwuYW55Lndvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggMGUyMjRkYjFjNzMzMjc1MDU3NDg0ZTM3YzQ3M2Q1M2YwZTJmODVkZC4uZTU1Njdi
MmQ1ZWM1MTEwZDQ1ZDE1ODM2YzU1MWE0Yjc3ZjhjYmU2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9nZW5lcmFs
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMTIsNSArMTIsNSBAQCBQQVNTIGFuIHVuZGVmaW5lZCByZWplY3Rpb24gZnJv
bSBwdWxsIHNob3VsZCBjYXVzZSBwaXBlVG8oKSB0byByZWplY3Qgd2hlbiBwcmV2ZQogUEFTUyBh
biB1bmRlZmluZWQgcmVqZWN0aW9uIGZyb20gd3JpdGUgc2hvdWxkIGNhdXNlIHBpcGVUbygpIHRv
IHJlamVjdCB3aGVuIHByZXZlbnRDYW5jZWwgaXMgdHJ1ZQogUEFTUyBhbiB1bmRlZmluZWQgcmVq
ZWN0aW9uIGZyb20gd3JpdGUgc2hvdWxkIGNhdXNlIHBpcGVUbygpIHRvIHJlamVjdCB3aGVuIHBy
ZXZlbnRDYW5jZWwgaXMgZmFsc2UKIFBBU1MgcGlwZVRvKCkgc2hvdWxkIHJlamVjdCBpZiBhbiBv
cHRpb24gZ2V0dGVyIGdyYWJzIGEgd3JpdGVyCi1GQUlMIHBpcGVUbygpIHByb21pc2Ugc2hvdWxk
IHJlc29sdmUgaWYgbnVsbCBpcyBwYXNzZWQgbnVsbCBpcyBub3QgYW4gT2JqZWN0LgorUEFTUyBw
aXBlVG8oKSBwcm9taXNlIHNob3VsZCByZXNvbHZlIGlmIG51bGwgaXMgcGFzc2VkCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFt
cy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IGVmMzk5YmUyYTFmMjJkNWQ5MTA4ZjUwMGEzNWRlZjhhZWU2
NDQyNTMuLmUwYmNhMjVkYzE5NTMyNDJhYWJkZWZiYmM1OWE5ZjBmOWFhMjI2YmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9w
aXBpbmcvcGlwZS10aHJvdWdoLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2gu
YW55LWV4cGVjdGVkLnR4dApAQCAtNDEsNCArNDEsNyBAQCBQQVNTIHByZXZlbnRDYW5jZWwgc2hv
dWxkIHdvcmsKIFBBU1MgcHJldmVudENsb3NlIHNob3VsZCB3b3JrCiBQQVNTIHByZXZlbnRBYm9y
dCBzaG91bGQgd29yawogUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRp
b24gZ2V0dGVyIGdyYWJzIGEgd3JpdGVyCitQQVNTIHBpcGVUaHJvdWdoKCkgc2hvdWxkIG5vdCB0
aHJvdyBpZiBvcHRpb24gaXMgbnVsbAorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCBub3QgdGhy
b3cgaWYgc2lnbmFsIGlzIHVuZGVmaW5lZAorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCB0aHJv
dyBpZiByZWFkYWJsZS93cml0YWJsZSBnZXR0ZXJzIHRocm93CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvcGlw
ZS10aHJvdWdoLmFueS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS5qcwppbmRleCAzNWRiYjQ1NmIz
ZTJjNmQwMmExOGE5NTA1YmMyMTM4YTU3NDc0ODg3Li5iMzRjYTAyOWYyNjdhNDI2MmZiZjg1MzE1
NzZlMTQ5NTQ1NWVhNTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3BpcGUtdGhyb3VnaC5hbnkuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGlu
Zy9waXBlLXRocm91Z2guYW55LmpzCkBAIC0yNjYsMyArMjY2LDY2IEBAIHRlc3QoKCkgPT4gewog
ICAgIH0KICAgfSksICdwaXBlVGhyb3VnaCBzaG91bGQgdGhyb3cnKTsKIH0sICdwaXBlVGhyb3Vn
aCgpIHNob3VsZCB0aHJvdyBpZiBhbiBvcHRpb24gZ2V0dGVyIGdyYWJzIGEgd3JpdGVyJyk7CisK
K3Rlc3QoKCkgPT4geworICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICBjb25z
dCByZWFkYWJsZSA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICBjb25zdCB3cml0YWJsZSA9IG5l
dyBXcml0YWJsZVN0cmVhbSgpOworICBycy5waXBlVGhyb3VnaCh7cmVhZGFibGUsIHdyaXRhYmxl
fSwgbnVsbCk7Cit9LCAncGlwZVRocm91Z2goKSBzaG91bGQgbm90IHRocm93IGlmIG9wdGlvbiBp
cyBudWxsJyk7CisKK3Rlc3QoKCkgPT4geworICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0cmVh
bSgpOworICBjb25zdCByZWFkYWJsZSA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICBjb25zdCB3
cml0YWJsZSA9IG5ldyBXcml0YWJsZVN0cmVhbSgpOworICBycy5waXBlVGhyb3VnaCh7cmVhZGFi
bGUsIHdyaXRhYmxlfSwge3NpZ25hbDp1bmRlZmluZWR9KTsKK30sICdwaXBlVGhyb3VnaCgpIHNo
b3VsZCBub3QgdGhyb3cgaWYgc2lnbmFsIGlzIHVuZGVmaW5lZCcpOworCitmdW5jdGlvbiB0cnlQ
aXBlVGhyb3VnaChwYWlyLCBvcHRpb25zKQoreworICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0
cmVhbSgpOworICBpZiAoIXBhaXIpCisgICAgcGFpciA9IHtyZWFkYWJsZTpuZXcgUmVhZGFibGVT
dHJlYW0oKSwgd3JpdGFibGU6bmV3IFdyaXRhYmxlU3RyZWFtKCl9OworICB0cnkgeworICAgIHJz
LnBpcGVUaHJvdWdoKHBhaXIsIG9wdGlvbnMpCisgIH0gY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4g
ZTsKKyAgfQorfQorCit0ZXN0KCgpID0+IHsKKyAgbGV0IHJlc3VsdCA9IHRyeVBpcGVUaHJvdWdo
KHsKKyAgICBnZXQgcmVhZGFibGUoKSB7CisgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFt
KCk7CisgICAgfSwKKyAgICBnZXQgd3JpdGFibGUoKSB7CisgICAgICB0aHJvdyAid3JpdGFibGUg
dGhyZXciOworICAgIH0KKyAgfSwgeyB9KTsKKyAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICJ3cml0
YWJsZSB0aHJldyIpOworCisgIHJlc3VsdCA9IHRyeVBpcGVUaHJvdWdoKHsKKyAgICBnZXQgcmVh
ZGFibGUoKSB7CisgICAgICB0aHJvdyAicmVhZGFibGUgdGhyZXciOworICAgIH0sCisgICAgZ2V0
IHdyaXRhYmxlKCkgeworICAgICAgdGhyb3cgIndyaXRhYmxlIHRocmV3IjsKKyAgICB9CisgIH0s
IHsgfSk7CisgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAicmVhZGFibGUgdGhyZXciKTsKKworICBy
ZXN1bHQgPSB0cnlQaXBlVGhyb3VnaCh7CisgICAgZ2V0IHJlYWRhYmxlKCkgeworICAgICAgdGhy
b3cgInJlYWRhYmxlIHRocmV3IjsKKyAgICB9LAorICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAg
IHRocm93ICJ3cml0YWJsZSB0aHJldyI7CisgICAgfQorICB9LCB7CisgICAgZ2V0IHByZXZlbnRB
Ym9ydCgpIHsKKyAgICAgIHRocm93ICJwcmV2ZW50QWJvcnQgdGhyZXciOworICAgIH0KKyAgfSk7
CisgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAicmVhZGFibGUgdGhyZXciKTsKKworfSwgJ3BpcGVU
aHJvdWdoKCkgc2hvdWxkIHRocm93IGlmIHJlYWRhYmxlL3dyaXRhYmxlIGdldHRlcnMgdGhyb3cn
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc3RyZWFtcy9waXBpbmcvcGlwZS10aHJvdWdoLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGlu
Zy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZWYzOTliZTJhMWYy
MmQ1ZDkxMDhmNTAwYTM1ZGVmOGFlZTY0NDI1My4uZTBiY2EyNWRjMTk1MzI0MmFhYmRlZmJiYzU5
YTlmMGY5YWEyMjZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTQxLDQgKzQxLDcgQEAgUEFTUyBwcmV2ZW50Q2FuY2VsIHNob3VsZCB3b3JrCiBQQVNTIHByZXZl
bnRDbG9zZSBzaG91bGQgd29yawogUEFTUyBwcmV2ZW50QWJvcnQgc2hvdWxkIHdvcmsKIFBBU1Mg
cGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgYW4gb3B0aW9uIGdldHRlciBncmFicyBhIHdy
aXRlcgorUEFTUyBwaXBlVGhyb3VnaCgpIHNob3VsZCBub3QgdGhyb3cgaWYgb3B0aW9uIGlzIG51
bGwKK1BBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgbm90IHRocm93IGlmIHNpZ25hbCBpcyB1bmRl
ZmluZWQKK1BBU1MgcGlwZVRocm91Z2goKSBzaG91bGQgdGhyb3cgaWYgcmVhZGFibGUvd3JpdGFi
bGUgZ2V0dGVycyB0aHJvdwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDVh
NjExNWFjZWYxNmZmZjNiZTVkMjgxMzZlNmMxOTk1ZTc0MjBhZGEuLjA4MDlkZWY0ODY1MmVlMWRj
OWM0MTA2ZGFlYjE5Mjc1ZWM2YWMwZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnktZXhwZWN0ZWQudHh0
CkBAIC0xLDIyICsxLDEwIEBACiAKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFmdGVyIGdldHRp
bmcgcHJldmVudEFib3J0IHRocm93cyBwcm9taXNlX3JlamVjdHNfanM6IHBpcGVUbyBzaG91bGQg
cmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJU
eXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9y
IikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAg
IFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVGhyb3VnaCBzaG91bGQgc3Rv
cCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MgYXNzZXJ0X3Rocm93c19qczogcGlw
ZVRocm91Z2ggc2hvdWxkIHRocm93IGZ1bmN0aW9uICIoKSA9PiBuZXcgUmVhZGFibGVTdHJlYW0o
KS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKCksIG9wdGlvbnMpIiB0aHJldyBvYmpl
Y3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBiZSBBYm9ydFNpZ25hbCIgKCJUeXBl
RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3IoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1GQUlMIHBpcGVUbyBzaG91bGQgc3Rv
cCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dzIHByb21pc2VfcmVqZWN0c19qczog
cGlwZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBiZSBBYm9ydFNpZ25h
bCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
RXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1GQUlMIHBpcGVUaHJv
dWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJvd3MgYXNzZXJ0
X3Rocm93c19qczogcGlwZVRocm91Z2ggc2hvdWxkIHRocm93IGZ1bmN0aW9uICIoKSA9PiBuZXcg
UmVhZGFibGVTdHJlYW0oKS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKCksIG9wdGlv
bnMpIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBiZSBBYm9y
dFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVu
Y3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1GQUlMIHBp
cGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDbG9zZSB0aHJvd3MgcHJvbWlz
ZV9yZWplY3RzX2pzOiBwaXBlVG8gc2hvdWxkIHJlamVjdCBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNpZ25hbCBtdXN0
IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIkVycm9yIikK
LUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2Ug
dGhyb3dzIGFzc2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyBmdW5jdGlv
biAiKCkgPT4gbmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0
cmVhbSgpLCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFs
IG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2Yg
ZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJy
b3IiKQotRkFJTCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwgdGhyb3dz
IHNpZ25hbAotRkFJTCBwaXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHNpZ25h
bCB0aHJvd3MgYXNzZXJ0X2FycmF5X2VxdWFsczogb3B0aW9ucyBzaG91bGQgYmUgdG91Y2hlZCBp
biB0aGUgcmlnaHQgb3JkZXIgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsicHJldmVu
dEFib3J0IiwgInByZXZlbnRDYW5jZWwiLCAicHJldmVudENsb3NlIiwgInNpZ25hbCJdIGxlbmd0
aCA0LCBnb3QgWyJzaWduYWwiXSBsZW5ndGggMQorUEFTUyBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0
ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzCitQQVNTIHBpcGVUaHJvdWdoIHNob3VsZCBz
dG9wIGFmdGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBwaXBlVG8gc2hvdWxk
IHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cworUEFTUyBwaXBlVGhyb3Vn
aCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dzCitQQVNTIHBp
cGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDbG9zZSB0aHJvd3MKK1BBU1Mg
cGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xvc2UgdGhyb3dz
CitQQVNTIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHNpZ25hbCB0aHJvd3MKK1BB
U1MgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwgdGhyb3dzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c3RyZWFtcy9waXBpbmcvdGhyb3dpbmctb3B0aW9ucy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBp
bmcvdGhyb3dpbmctb3B0aW9ucy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA1YTYxMTVh
Y2VmMTZmZmYzYmU1ZDI4MTM2ZTZjMTk5NWU3NDIwYWRhLi4wODA5ZGVmNDg2NTJlZTFkYzljNDEw
NmRhZWIxOTI3NWVjNmFjMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL3Rocm93aW5nLW9wdGlvbnMuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy90aHJvd2luZy1vcHRpb25zLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDIyICsxLDEwIEBACiAKLUZBSUwgcGlwZVRvIHNob3VsZCBzdG9wIGFm
dGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cyBwcm9taXNlX3JlamVjdHNfanM6IHBpcGVU
byBzaG91bGQgcmVqZWN0IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcg
b2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlvbnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwiICgi
VHlwZUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9y
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVGhyb3VnaCBz
aG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRBYm9ydCB0aHJvd3MgYXNzZXJ0X3Rocm93
c19qczogcGlwZVRocm91Z2ggc2hvdWxkIHRocm93IGZ1bmN0aW9uICIoKSA9PiBuZXcgUmVhZGFi
bGVTdHJlYW0oKS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKCksIG9wdGlvbnMpIiB0
aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBiZSBBYm9ydFNpZ25h
bCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
RXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1GQUlMIHBpcGVUbyBz
aG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dzIHByb21pc2VfcmVq
ZWN0c19qczogcGlwZVRvIHNob3VsZCByZWplY3QgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhy
b3cgZSB9IiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVzdCBiZSBB
Ym9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAi
ZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIpCi1GQUlM
IHBpcGVUaHJvdWdoIHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudENhbmNlbCB0aHJv
d3MgYXNzZXJ0X3Rocm93c19qczogcGlwZVRocm91Z2ggc2hvdWxkIHRocm93IGZ1bmN0aW9uICIo
KSA9PiBuZXcgUmVhZGFibGVTdHJlYW0oKS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFt
KCksIG9wdGlvbnMpIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogb3B0aW9ucy5zaWduYWwgbXVz
dCBiZSBBYm9ydFNpZ25hbCIgKCJUeXBlRXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5j
dGlvbiAiZnVuY3Rpb24gRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJFcnJvciIp
Ci1GQUlMIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDbG9zZSB0aHJv
d3MgcHJvbWlzZV9yZWplY3RzX2pzOiBwaXBlVG8gc2hvdWxkIHJlamVjdCBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBvcHRpb25zLnNp
Z25hbCBtdXN0IGJlIEFib3J0U2lnbmFsIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNl
IG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAo
IkVycm9yIikKLUZBSUwgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2
ZW50Q2xvc2UgdGhyb3dzIGFzc2VydF90aHJvd3NfanM6IHBpcGVUaHJvdWdoIHNob3VsZCB0aHJv
dyBmdW5jdGlvbiAiKCkgPT4gbmV3IFJlYWRhYmxlU3RyZWFtKCkucGlwZVRocm91Z2gobmV3IFRy
YW5zZm9ybVN0cmVhbSgpLCBvcHRpb25zKSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IG9wdGlv
bnMuc2lnbmFsIG11c3QgYmUgQWJvcnRTaWduYWwiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgaW5z
dGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iICgiRXJyb3IiKQotRkFJTCBwaXBlVG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWdu
YWwgdGhyb3dzIHNpZ25hbAotRkFJTCBwaXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0
aW5nIHNpZ25hbCB0aHJvd3MgYXNzZXJ0X2FycmF5X2VxdWFsczogb3B0aW9ucyBzaG91bGQgYmUg
dG91Y2hlZCBpbiB0aGUgcmlnaHQgb3JkZXIgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5
IFsicHJldmVudEFib3J0IiwgInByZXZlbnRDYW5jZWwiLCAicHJldmVudENsb3NlIiwgInNpZ25h
bCJdIGxlbmd0aCA0LCBnb3QgWyJzaWduYWwiXSBsZW5ndGggMQorUEFTUyBwaXBlVG8gc2hvdWxk
IHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50QWJvcnQgdGhyb3dzCitQQVNTIHBpcGVUaHJvdWdo
IHNob3VsZCBzdG9wIGFmdGVyIGdldHRpbmcgcHJldmVudEFib3J0IHRocm93cworUEFTUyBwaXBl
VG8gc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2FuY2VsIHRocm93cworUEFTUyBw
aXBlVGhyb3VnaCBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDYW5jZWwgdGhyb3dz
CitQQVNTIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHByZXZlbnRDbG9zZSB0aHJv
d3MKK1BBU1MgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBwcmV2ZW50Q2xv
c2UgdGhyb3dzCitQQVNTIHBpcGVUbyBzaG91bGQgc3RvcCBhZnRlciBnZXR0aW5nIHNpZ25hbCB0
aHJvd3MKK1BBU1MgcGlwZVRocm91Z2ggc2hvdWxkIHN0b3AgYWZ0ZXIgZ2V0dGluZyBzaWduYWwg
dGhyb3dzCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>