<?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>199292</bug_id>
          
          <creation_ts>2019-06-27 15:24:51 -0700</creation_ts>
          <short_desc>JSON.parse incorrectly handles array proxies</short_desc>
          <delta_ts>2020-08-30 02:35:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=163446</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548635</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-06-27 15:24:51 -0700</bug_when>
    <thetext>1. Arrays should be detected using `isArray`:

ECMA262: https://tc39.es/ecma262/#sec-internalizejsonproperty (step 2.a)
Test262: https://test262.report/browse/built-ins/JSON/parse/revived-proxy.js

2. &quot;length&quot; lookup should be observable by proxies:

ECMA262: https://tc39.es/ecma262/#sec-internalizejsonproperty (step 2.b.ii)
Test262:
  https://test262.report/browse/built-ins/JSON/parse/reviver-array-length-get-err.js
  https://test262.report/browse/built-ins/JSON/parse/reviver-array-length-coerce-err.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548638</commentid>
    <comment_count>1</comment_count>
      <attachid>373059</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-06-27 15:34:57 -0700</bug_when>
    <thetext>Created attachment 373059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549716</commentid>
    <comment_count>2</comment_count>
      <attachid>373059</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-07-02 14:26:48 -0700</bug_when>
    <thetext>Comment on attachment 373059
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        1. Use isArray to correctly detect proxied arrays.
&gt; +        2. Make &quot;length&quot; lookup observable to array proxies and handle exceptions.

Let&apos;s add each test in addition to test262 to ensure this behavior.

&gt; Source/JavaScriptCore/runtime/JSONObject.cpp:675
&gt; +                ASSERT(isArray(m_exec, inValue));
&gt;                  if (markedStack.size() &gt; maximumFilterRecursion)
&gt;                      return throwStackOverflowError(m_exec, scope);
&gt;  
&gt; -                JSArray* array = asArray(inValue);
&gt; +                auto array = asObject(inValue);
&gt;                  markedStack.appendWithCrashOnOverflow(array);
&gt; -                arrayLengthStack.append(array-&gt;length());
&gt; +                unsigned length = isJSArray(array)
&gt; +                    ? asArray(array)-&gt;length()
&gt; +                    : array-&gt;get(m_exec, vm.propertyNames-&gt;length).toUInt32(m_exec);
&gt; +                RETURN_IF_EXCEPTION(scope, { });
&gt; +                arrayLengthStack.append(length);

`isArray` is user-observable, side-effect operations. When we encounter the revoked Proxy, then we throw an error.
So,

1. When `isArray` is used, we need to do error-handling correctly.
2. Since this error is observable (like, throwing an error before/after the other operations, which can be observable to users), when calling `isArray` becomes important.

Is this `isArray()` call specified in the spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550545</commentid>
    <comment_count>3</comment_count>
      <attachid>373546</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-07-05 15:19:44 -0700</bug_when>
    <thetext>Created attachment 373546
Patch

Remove isArray from ASSERTs, add stress tests for 1, 2, and isArray order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550551</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-07-05 15:29:36 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 373059 [details]
&gt; Patch
&gt; 
&gt; 1. When `isArray` is used, we need to do error-handling correctly.
&gt; 2. Since this error is observable (like, throwing an error before/after the
&gt; other operations, which can be observable to users), when calling `isArray`
&gt; becomes important.
&gt; 
&gt; Is this `isArray()` call specified in the spec?

Nice catch, thanks. I&apos;ve replaced ASSERTs with comments and added error-handling for isArray call in StateUnknown (that one is per spec).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561782</commentid>
    <comment_count>5</comment_count>
      <attachid>376429</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-08-15 15:16:09 -0700</bug_when>
    <thetext>Created attachment 376429
Patch

Replace comments with real ASSERTs, use toLength.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566845</commentid>
    <comment_count>6</comment_count>
      <attachid>376429</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-08-30 15:37:58 -0700</bug_when>
    <thetext>Comment on attachment 376429
Patch

nice. Can you verify this doesn&apos;t make JSON parsing slower?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567242</commentid>
    <comment_count>7</comment_count>
      <attachid>377862</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-09-02 15:20:47 -0700</bug_when>
    <thetext>Created attachment 377862
Patch

Add 4 microbenchmarks and set reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567244</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-09-02 15:22:41 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #6)
&gt; Comment on attachment 376429 [details]
&gt; Patch
&gt; 
&gt; nice. Can you verify this doesn&apos;t make JSON parsing slower?

Please note that changes in Walker::walk may affect only JSON.parse with custom reviver (2nd argument).
I&apos;ve added two sets of microbenchmarks: reviver returning same or different value.
We will find them useful in https://bugs.webkit.org/show_bug.cgi?id=163446 as well.

Cold runs, --outer 16:

                                            rev. 249368              patch

json-parse-object-reviver-same-value      196.5163+-1.1350      198.7460+-1.4635
json-parse-array-reviver-same-value       143.3628+-1.1241      150.7418+-1.2160
json-parse-object-reviver                 217.9791+-1.2748      223.2554+-1.9196
json-parse-array-reviver                  197.3965+-3.8484      198.1227+-1.9369

&lt;geometric&gt;                               186.5654+-1.0157      190.7782+-0.8042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577881</commentid>
    <comment_count>9</comment_count>
      <attachid>380451</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2019-10-08 12:32:12 -0700</bug_when>
    <thetext>Created attachment 380451
Patch

Rebase patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577944</commentid>
    <comment_count>10</comment_count>
      <attachid>380451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 14:23:22 -0700</bug_when>
    <thetext>Comment on attachment 380451
Patch

Clearing flags on attachment: 380451

Committed r250860: &lt;https://trac.webkit.org/changeset/250860&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577945</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 14:23:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577947</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-08 14:24:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/56088749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684004</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-30 02:35:43 -0700</bug_when>
    <thetext>*** Bug 155267 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373059</attachid>
            <date>2019-06-27 15:34:57 -0700</date>
            <delta_ts>2019-07-05 15:19:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199292-20190628013456.patch</filename>
            <type>text/plain</type>
            <size>5756</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDY5MDcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDE5LTA2LTI3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBKU09OLnBhcnNlIGluY29ycmVjdGx5IGhhbmRsZXMgYXJy
YXkgcHJveGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOiBNYXJrIDYgdGVzdCBjYXNlcyBhcyBwYXNz
aW5nLgorCiAyMDE5LTA2LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIHNwZWNpZXNDb25zdHJ1Y3QgbmVlZHMgdG8gdGhyb3cgaWYgdGhlIHJlc3Vs
dCBpcyBhIERhdGFWaWV3CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCShyZXZpc2lv
biAyNDY4NDEpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMzcsMTUgKzEwMzcsNiBAQCB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90
b3R5cGUvdG9TdHJpCiB0ZXN0L2J1aWx0LWlucy9HZW5lcmF0b3JGdW5jdGlvbi9wcm90by1mcm9t
LWN0b3ItcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFR5cGUgZXJyb3InCiAgIHN0
cmljdCBtb2RlOiAnVHlwZUVycm9yOiBUeXBlIGVycm9yJwotdGVzdC9idWlsdC1pbnMvSlNPTi9w
YXJzZS9yZXZpdmVkLXByb3h5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBwcm94eSBm
b3IgYXJyYXkgRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqt0cnVlw4LCuywgw4LCq2ZhbHNlw4LCuykg
dG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHByb3h5IGZvciBhcnJh
eSBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq3RydWXDgsK7LCDDgsKrZmFsc2XDgsK7KSB0byBiZSB0
cnVlJwotdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZpdmVyLWFycmF5LWxlbmd0aC1jb2Vy
Y2UtZXJyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1p
bnMvSlNPTi9wYXJzZS9yZXZpdmVyLWFycmF5LWxlbmd0aC1nZXQtZXJyLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9idWlsdC1pbnMvTWFwL3Byb3RvLWZyb20tY3Rv
ci1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMOCwqtbb2JqZWN0IE1hcF3DgsK7LCDDgsKrW29iamVjdCBNYXBdw4LCuykgdG8gYmUgdHJ1ZScK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29i
amVjdCBNYXBdw4LCuywgw4LCq1tvYmplY3QgTWFwXcOCwrspIHRvIGJlIHRydWUnCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Njg0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0w
Ni0yNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAg
SlNPTi5wYXJzZSBpbmNvcnJlY3RseSBoYW5kbGVzIGFycmF5IHByb3hpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTI5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEuIFVzZSBpc0FycmF5IHRvIGNv
cnJlY3RseSBkZXRlY3QgcHJveGllZCBhcnJheXMuCisgICAgICAgIDIuIE1ha2UgImxlbmd0aCIg
bG9va3VwIG9ic2VydmFibGUgdG8gYXJyYXkgcHJveGllcyBhbmQgaGFuZGxlIGV4Y2VwdGlvbnMu
CisKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpXYWxr
ZXI6OndhbGspOgorCiAyMDE5LTA2LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIHJlbW92ZSB1bm5lZWRlZCBkaWRCZWNvbWVQcm90b3R5cGUoKSBj
YWxscwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5j
cHAJKHJldmlzaW9uIDI0Njg0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjIsMjAgKzY2MiwyMyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgIHN3aXRjaCAoc3RhdGUp
IHsKICAgICAgICAgICAgIGFycmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXlT
dGFydFN0YXRlOiB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0czxKU0Fy
cmF5Pih2bSkpOworICAgICAgICAgICAgICAgIEFTU0VSVChpc0FycmF5KG1fZXhlYywgaW5WYWx1
ZSkpOwogICAgICAgICAgICAgICAgIGlmIChtYXJrZWRTdGFjay5zaXplKCkgPiBtYXhpbXVtRmls
dGVyUmVjdXJzaW9uKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJm
bG93RXJyb3IobV9leGVjLCBzY29wZSk7CiAKLSAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkoaW5WYWx1ZSk7CisgICAgICAgICAgICAgICAgYXV0byBhcnJheSA9IGFzT2Jq
ZWN0KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIG1hcmtlZFN0YWNrLmFwcGVuZFdpdGhDcmFz
aE9uT3ZlcmZsb3coYXJyYXkpOwotICAgICAgICAgICAgICAgIGFycmF5TGVuZ3RoU3RhY2suYXBw
ZW5kKGFycmF5LT5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0g
aXNKU0FycmF5KGFycmF5KQorICAgICAgICAgICAgICAgICAgICA/IGFzQXJyYXkoYXJyYXkpLT5s
ZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICA6IGFycmF5LT5nZXQobV9leGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgpLnRvVUludDMyKG1fZXhlYyk7CisgICAgICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgICAgICBhcnJheUxlbmd0
aFN0YWNrLmFwcGVuZChsZW5ndGgpOwogICAgICAgICAgICAgICAgIGluZGV4U3RhY2suYXBwZW5k
KDApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYXJyYXlTdGFydFZpc2l0TWVtYmVyOgog
ICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgICAgICBjYXNlIEFycmF5U3RhcnRWaXNp
dE1lbWJlcjogewotICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0ganNDYXN0PEpTQXJy
YXkqPihtYXJrZWRTdGFjay5sYXN0KCkpOworICAgICAgICAgICAgICAgIGF1dG8gYXJyYXkgPSBh
c09iamVjdChtYXJrZWRTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGlu
ZGV4ID0gaW5kZXhTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYXJyYXlM
ZW5ndGggPSBhcnJheUxlbmd0aFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICBpZiAoaW5k
ZXggPT0gYXJyYXlMZW5ndGgpIHsKQEAgLTcwNCw3ICs3MDcsNyBAQCBORVZFUl9JTkxJTkUgSlNW
YWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIEFycmF5RW5kVmlzaXRNZW1iZXI6IHsKLSAg
ICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4obWFya2VkU3Rh
Y2subGFzdCgpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGFycmF5ID0gYXNPYmplY3QobWFya2Vk
U3RhY2subGFzdCgpKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGZpbHRlcmVkVmFsdWUgPSBj
YWxsUmV2aXZlcihhcnJheSwganNTdHJpbmcobV9leGVjLCBTdHJpbmc6Om51bWJlcihpbmRleFN0
YWNrLmxhc3QoKSkpLCBvdXRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRWYWx1ZS5pc1Vu
ZGVmaW5lZCgpKQpAQCAtNzE4LDcgKzcyMSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtl
cjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgIG9iamVjdFN0YXJ0U3RhdGU6CiAgICAgICAgICAg
ICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1
ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIWFzT2JqZWN0KGluVmFsdWUp
LT5pbmhlcml0czxKU0FycmF5Pih2bSkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghaXNBcnJh
eShtX2V4ZWMsIGluVmFsdWUpKTsKICAgICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6
ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywgc2NvcGUpOwogCkBAIC03NzksNyArNzgy
LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgSlNP
YmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGluVmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAgICAgICAgICAgICAgICBpZiAoaXNBcnJh
eShtX2V4ZWMsIG9iamVjdCkpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gYXJyYXlTdGFydFN0
YXRlOwogICAgICAgICAgICAgICAgIGdvdG8gb2JqZWN0U3RhcnRTdGF0ZTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373546</attachid>
            <date>2019-07-05 15:19:44 -0700</date>
            <delta_ts>2019-08-15 15:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199292-20190706011942.patch</filename>
            <type>text/plain</type>
            <size>8461</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDcxODEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE5LTA3LTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBKU09OLnBhcnNlIGluY29ycmVjdGx5IGhhbmRsZXMgYXJy
YXkgcHJveGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2Vz
IGFzIHBhc3NpbmcuCisKIDIwMTktMDctMDUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hA
Z21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIENsZWFuIHVwIEFycmF5U3BlY2llc0NyZWF0ZQpJ
bmRleDogSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZlci1hcnJheS1wcm94
eS5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL3N0cmVzcy9qc29uLXBhcnNlLXJldml2ZXIt
YXJyYXktcHJveHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2NvbnN0IGpzb24gPSAneyJhIjogMSwgImIiOiAyfSc7CisKK2ZvciAobGV0IGkgPSAxOyBpIDwg
MTAwMDA7IGkrKykgeworICAgIGxldCBrZXlzID0gW107CisgICAgbGV0IHByb3h5ID0gbmV3IFBy
b3h5KFsyLCAzXSwgeworICAgICAgICBnZXQ6IGZ1bmN0aW9uKHRhcmdldCwga2V5KSB7CisgICAg
ICAgICAgICBrZXlzLnB1c2goa2V5KTsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXRba2V5XTsK
KyAgICAgICAgfSwKKyAgICAgICAgb3duS2V5czogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ1tbT3duUHJvcGVydHlLZXlzXV0gc2hvdWxkIG5vdCBiZSBjYWxsZWQn
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGpz
b24sIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHsKKyAgICAgICAgaWYgKGtleSA9PT0gJ2EnKQorICAg
ICAgICAgICAgdGhpcy5iID0gcHJveHk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9KTsK
KworICAgIHNob3VsZEJlKGtleXMudG9TdHJpbmcoKSwgJ2xlbmd0aCwwLDEnKTsKKyAgICBzaG91
bGRCZShKU09OLnN0cmluZ2lmeShyZXN1bHQpLCAneyJhIjoxLCJiIjpbMiwzXX0nKTsKK30KSW5k
ZXg6IEpTVGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZlci1yZXZva2VkLXByb3h5LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZlci1yZXZva2VkLXBy
b3h5LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZl
ci1yZXZva2VkLXByb3h5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCitmdW5jdGlvbiByZXZpdmVkT2JqUHJveHkoa2V5LCB2YWx1ZSkgeworICAgIGlmIChrZXkg
PT09ICdhJykgeworICAgICAgICBsZXQge3Byb3h5LCByZXZva2V9ID0gUHJveHkucmV2b2NhYmxl
KHt9LCB7fSk7CisgICAgICAgIHJldm9rZSgpOworICAgICAgICB0aGlzLmIgPSBwcm94eTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK2Z1bmN0aW9uIHJldml2ZWRBcnJQcm94eShr
ZXksIHZhbHVlKSB7CisgICAgaWYgKGtleSA9PT0gJzAnKSB7CisgICAgICAgIGxldCB7cHJveHks
IHJldm9rZX0gPSBQcm94eS5yZXZvY2FibGUoW10sIHt9KTsKKyAgICAgICAgcmV2b2tlKCk7Cisg
ICAgICAgIHRoaXNbMV0gPSBwcm94eTsKKyAgICB9CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisK
K2NvbnN0IG9iakpTT04gPSAneyJhIjogMSwgImIiOiAyfSc7Citjb25zdCBhcnJKU09OID0gJ1sz
LCA0XSc7Citjb25zdCBpc0FycmF5RXJyb3IgPSAnVHlwZUVycm9yOiBBcnJheS5pc0FycmF5IGNh
bm5vdCBiZSBjYWxsZWQgb24gYSBQcm94eSB0aGF0IGhhcyBiZWVuIHJldm9rZWQnOworCitmb3Ig
KGxldCBpID0gMTsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgSlNPTi5wYXJzZShvYmpKU09OLCByZXZpdmVkT2JqUHJveHkpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBzaG91bGRCZShlcnJvci50
b1N0cmluZygpLCBpc0FycmF5RXJyb3IpOworfQorCitmb3IgKGxldCBpID0gMTsgaSA8IDEwMDAw
OyBpKyspIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgSlNPTi5wYXJzZShh
cnJKU09OLCByZXZpdmVkQXJyUHJveHkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJy
b3IgPSBlOworICAgIH0KKyAgICBzaG91bGRCZShlcnJvci50b1N0cmluZygpLCBpc0FycmF5RXJy
b3IpOworfQpJbmRleDogSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkocmV2aXNpb24gMjQ3MTY0
KQorKysgSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDM3LDE1ICsxMDM3LDYgQEAgdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3Rv
U3RyaQogdGVzdC9idWlsdC1pbnMvR2VuZXJhdG9yRnVuY3Rpb24vcHJvdG8tZnJvbS1jdG9yLXJl
YWxtLmpzOgogICBkZWZhdWx0OiAnVHlwZUVycm9yOiBUeXBlIGVycm9yJwogICBzdHJpY3QgbW9k
ZTogJ1R5cGVFcnJvcjogVHlwZSBlcnJvcicKLXRlc3QvYnVpbHQtaW5zL0pTT04vcGFyc2UvcmV2
aXZlZC1wcm94eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogcHJveHkgZm9yIGFycmF5
IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrdHJ1ZcOCwrssIMOCwqtmYWxzZcOCwrspIHRvIGJlIHRy
dWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBwcm94eSBmb3IgYXJyYXkgRXhwZWN0
ZWQgU2FtZVZhbHVlKMOCwqt0cnVlw4LCuywgw4LCq2ZhbHNlw4LCuykgdG8gYmUgdHJ1ZScKLXRl
c3QvYnVpbHQtaW5zL0pTT04vcGFyc2UvcmV2aXZlci1hcnJheS1sZW5ndGgtY29lcmNlLWVyci5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL0pTT04v
cGFyc2UvcmV2aXZlci1hcnJheS1sZW5ndGgtZ2V0LWVyci5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCcKIHRlc3QvYnVpbHQtaW5zL01hcC9wcm90by1mcm9tLWN0b3ItcmVhbG0u
anM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29i
amVjdCBNYXBdw4LCuywgw4LCq1tvYmplY3QgTWFwXcOCwrspIHRvIGJlIHRydWUnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq1tvYmplY3QgTWFw
XcOCwrssIMOCwqtbb2JqZWN0IE1hcF3DgsK7KSB0byBiZSB0cnVlJwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDcxNjQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDctMDUgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEpTT04ucGFy
c2UgaW5jb3JyZWN0bHkgaGFuZGxlcyBhcnJheSBwcm94aWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyOTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAxLiBVc2UgaXNBcnJheSB0byBjb3JyZWN0bHkg
ZGV0ZWN0IHByb3hpZWQgYXJyYXlzLgorICAgICAgICAyLiBNYWtlICJsZW5ndGgiIGxvb2t1cCBv
YnNlcnZhYmxlIHRvIGFycmF5IHByb3hpZXMgYW5kIGhhbmRsZSBleGNlcHRpb25zLgorCisgICAg
ICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxr
KToKKwogMjAxOS0wNy0wNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ3MTE1LgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDI0NzE2NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJy
YXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJMaXRl
cmFsUGFyc2VyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkBAIC02NjIsMjAgKzY2MywyMSBAQCBO
RVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgIHN3aXRjaCAo
c3RhdGUpIHsKICAgICAgICAgICAgIGFycmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2Ug
QXJyYXlTdGFydFN0YXRlOiB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmpl
Y3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0
czxKU0FycmF5Pih2bSkpOworICAgICAgICAgICAgICAgIC8vIGlzQXJyYXkoaW5WYWx1ZSkgaXMg
dHJ1ZQogICAgICAgICAgICAgICAgIGlmIChtYXJrZWRTdGFjay5zaXplKCkgPiBtYXhpbXVtRmls
dGVyUmVjdXJzaW9uKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJm
bG93RXJyb3IobV9leGVjLCBzY29wZSk7CiAKLSAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkoaW5WYWx1ZSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0g
YXNPYmplY3QoaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgbWFya2VkU3RhY2suYXBwZW5kV2l0
aENyYXNoT25PdmVyZmxvdyhhcnJheSk7Ci0gICAgICAgICAgICAgICAgYXJyYXlMZW5ndGhTdGFj
ay5hcHBlbmQoYXJyYXktPmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5n
dGggPSB0b0xlbmd0aChtX2V4ZWMsIGFycmF5KTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICAgICAgICAgIGFycmF5TGVuZ3RoU3RhY2su
YXBwZW5kKGxlbmd0aCk7CiAgICAgICAgICAgICAgICAgaW5kZXhTdGFjay5hcHBlbmQoMCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBhcnJheVN0YXJ0VmlzaXRNZW1iZXI6CiAgICAgICAg
ICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFZpc2l0TWVtYmVy
OiB7Ci0gICAgICAgICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KG1h
cmtlZFN0YWNrLmxhc3QoKSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gYXNP
YmplY3QobWFya2VkU3RhY2subGFzdCgpKTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbmRl
eCA9IGluZGV4U3RhY2subGFzdCgpOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFycmF5TGVu
Z3RoID0gYXJyYXlMZW5ndGhTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgaWYgKGluZGV4
ID09IGFycmF5TGVuZ3RoKSB7CkBAIC03MDQsNyArNzA2LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBBcnJheUVuZFZpc2l0TWVtYmVyOiB7Ci0gICAg
ICAgICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KG1hcmtlZFN0YWNr
Lmxhc3QoKSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gYXNPYmplY3QobWFy
a2VkU3RhY2subGFzdCgpKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGZpbHRlcmVkVmFsdWUg
PSBjYWxsUmV2aXZlcihhcnJheSwganNTdHJpbmcobV9leGVjLCBTdHJpbmc6Om51bWJlcihpbmRl
eFN0YWNrLmxhc3QoKSkpLCBvdXRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRWYWx1ZS5p
c1VuZGVmaW5lZCgpKQpAQCAtNzE4LDcgKzcyMCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdh
bGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgIG9iamVjdFN0YXJ0U3RhdGU6CiAgICAgICAg
ICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5W
YWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIWFzT2JqZWN0KGluVmFs
dWUpLT5pbmhlcml0czxKU0FycmF5Pih2bSkpOworICAgICAgICAgICAgICAgIC8vIGlzQXJyYXko
aW5WYWx1ZSkgaXMgZmFsc2UKICAgICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgp
ID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRo
cm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywgc2NvcGUpOwogCkBAIC03NzgsOCArNzgwLDkg
QEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAg
ICAgICAgICBvdXRWYWx1ZSA9IGluVmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3QoaW5WYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNB
cnJheT4odm0pKQorICAgICAgICAgICAgICAgIGJvb2wgdmFsdWVJc0FycmF5ID0gaXNBcnJheSht
X2V4ZWMsIGluVmFsdWUpOworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlSXNBcnJheSkKICAgICAgICAgICAg
ICAgICAgICAgZ290byBhcnJheVN0YXJ0U3RhdGU7CiAgICAgICAgICAgICAgICAgZ290byBvYmpl
Y3RTdGFydFN0YXRlOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376429</attachid>
            <date>2019-08-15 15:16:09 -0700</date>
            <delta_ts>2019-09-02 15:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199292-20190816011607.patch</filename>
            <type>text/plain</type>
            <size>8502</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDg3NDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE5LTA4LTE1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBKU09OLnBhcnNlIGluY29ycmVjdGx5IGhhbmRsZXMgYXJy
YXkgcHJveGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2Vz
IGFzIHBhc3NpbmcuCisKIDIwMTktMDgtMTUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hA
Z21haWwuY29tPgogCiAgICAgICAgIERhdGVDb252ZXJzaW9uOjpmb3JtYXREYXRlVGltZSBpbmNv
cnJlY3RseSBmb3JtYXRzIG5lZ2F0aXZlIHllYXJzCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9qc29u
LXBhcnNlLXJldml2ZXItYXJyYXktcHJveHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJl
c3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzCShub25leGlzdGVudCkKKysrIEpT
VGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZlci1hcnJheS1wcm94eS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI4IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworY29uc3QganNvbiA9ICd7ImEiOiAxLCAi
YiI6IDJ9JzsKKworZm9yIChsZXQgaSA9IDE7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IGtl
eXMgPSBbXTsKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkoWzIsIDNdLCB7CisgICAgICAgIGdl
dDogZnVuY3Rpb24odGFyZ2V0LCBrZXkpIHsKKyAgICAgICAgICAgIGtleXMucHVzaChrZXkpOwor
ICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtrZXldOworICAgICAgICB9LAorICAgICAgICBvd25L
ZXlzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1tPd25Qcm9w
ZXJ0eUtleXNdXSBzaG91bGQgbm90IGJlIGNhbGxlZCcpOworICAgICAgICB9LAorICAgIH0pOwor
CisgICAgbGV0IHJlc3VsdCA9IEpTT04ucGFyc2UoanNvbiwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkg
eworICAgICAgICBpZiAoa2V5ID09PSAnYScpCisgICAgICAgICAgICB0aGlzLmIgPSBwcm94eTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0pOworCisgICAgc2hvdWxkQmUoa2V5cy50b1N0
cmluZygpLCAnbGVuZ3RoLDAsMScpOworICAgIHNob3VsZEJlKEpTT04uc3RyaW5naWZ5KHJlc3Vs
dCksICd7ImEiOjEsImIiOlsyLDNdfScpOworfQpJbmRleDogSlNUZXN0cy9zdHJlc3MvanNvbi1w
YXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJl
c3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanMJKG5vbmV4aXN0ZW50KQorKysg
SlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHJldml2ZWRPYmpQ
cm94eShrZXksIHZhbHVlKSB7CisgICAgaWYgKGtleSA9PT0gJ2EnKSB7CisgICAgICAgIGxldCB7
cHJveHksIHJldm9rZX0gPSBQcm94eS5yZXZvY2FibGUoe30sIHt9KTsKKyAgICAgICAgcmV2b2tl
KCk7CisgICAgICAgIHRoaXMuYiA9IHByb3h5OworICAgIH0KKworICAgIHJldHVybiB2YWx1ZTsK
K30KKworZnVuY3Rpb24gcmV2aXZlZEFyclByb3h5KGtleSwgdmFsdWUpIHsKKyAgICBpZiAoa2V5
ID09PSAnMCcpIHsKKyAgICAgICAgbGV0IHtwcm94eSwgcmV2b2tlfSA9IFByb3h5LnJldm9jYWJs
ZShbXSwge30pOworICAgICAgICByZXZva2UoKTsKKyAgICAgICAgdGhpc1sxXSA9IHByb3h5Owor
ICAgIH0KKworICAgIHJldHVybiB2YWx1ZTsKK30KKworY29uc3Qgb2JqSlNPTiA9ICd7ImEiOiAx
LCAiYiI6IDJ9JzsKK2NvbnN0IGFyckpTT04gPSAnWzMsIDRdJzsKK2NvbnN0IGlzQXJyYXlFcnJv
ciA9ICdUeXBlRXJyb3I6IEFycmF5LmlzQXJyYXkgY2Fubm90IGJlIGNhbGxlZCBvbiBhIFByb3h5
IHRoYXQgaGFzIGJlZW4gcmV2b2tlZCc7CisKK2ZvciAobGV0IGkgPSAxOyBpIDwgMTAwMDA7IGkr
KykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBKU09OLnBhcnNlKG9iakpT
T04sIHJldml2ZWRPYmpQcm94eSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9
IGU7CisgICAgfQorICAgIHNob3VsZEJlKGVycm9yLnRvU3RyaW5nKCksIGlzQXJyYXlFcnJvcik7
Cit9CisKK2ZvciAobGV0IGkgPSAxOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCBlcnJvcjsK
KyAgICB0cnkgeworICAgICAgICBKU09OLnBhcnNlKGFyckpTT04sIHJldml2ZWRBcnJQcm94eSk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIHNob3Vs
ZEJlKGVycm9yLnRvU3RyaW5nKCksIGlzQXJyYXlFcnJvcik7Cit9CkluZGV4OiBKU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCShyZXZpc2lvbiAyNDg3MDUpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTEyMTgsMTUgKzEyMTgsNiBAQCB0ZXN0
L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUvdG9TdHJpCiB0ZXN0L2J1aWx0LWlucy9HZW5l
cmF0b3JGdW5jdGlvbi9wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUeXBl
RXJyb3I6IFR5cGUgZXJyb3InCiAgIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBUeXBlIGVycm9y
JwotdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZpdmVkLXByb3h5LmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBwcm94eSBmb3IgYXJyYXkgRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqt0
cnVlw4LCuywgw4LCq2ZhbHNlw4LCuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IHByb3h5IGZvciBhcnJheSBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq3RydWXDgsK7
LCDDgsKrZmFsc2XDgsK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9y
ZXZpdmVyLWFycmF5LWxlbmd0aC1jb2VyY2UtZXJyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZpdmVyLWFycmF5LWxlbmd0
aC1nZXQtZXJyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3Qy
NjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9idWls
dC1pbnMvTWFwL3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqtbb2JqZWN0IE1hcF3DgsK7LCDDgsKrW29iamVj
dCBNYXBdw4LCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVjdCBNYXBdw4LCuywgw4LCq1tvYmplY3QgTWFwXcOC
wrspIHRvIGJlIHRydWUnCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0
ODcwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0xNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgSlNPTi5wYXJzZSBpbmNvcnJlY3RseSBoYW5kbGVzIGFy
cmF5IHByb3hpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTI5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIDEuIFVzZSBpc0FycmF5IHRvIGNvcnJlY3RseSBkZXRlY3QgcHJveGllZCBhcnJheXMuCisg
ICAgICAgIDIuIE1ha2UgImxlbmd0aCIgbG9va3VwIG9ic2VydmFibGUgdG8gYXJyYXkgcHJveGll
cyBhbmQgaGFuZGxlIGV4Y2VwdGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGspOgorCiAyMDE5LTA4LTE0ICBLZWl0aCBS
b2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3Ig
bWFjT1MgPCAxMC4xMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAJKHJldmlzaW9uIDI0ODcwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiSlNBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgiCiAjaW5jbHVkZSAiTG9v
a3VwLmgiCkBAIC02NjMsMTkgKzY2NCwyMSBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6
OndhbGsoSlNWYWx1CiAgICAgICAgICAgICBhcnJheVN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBj
YXNlIEFycmF5U3RhcnRTdGF0ZTogewogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlz
T2JqZWN0KCkpOwotICAgICAgICAgICAgICAgIEFTU0VSVChhc09iamVjdChpblZhbHVlKS0+aW5o
ZXJpdHM8SlNBcnJheT4odm0pKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGlu
VmFsdWUpIHx8IGluVmFsdWUuaW5oZXJpdHM8UHJveHlPYmplY3Q+KHZtKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKG1hcmtlZFN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMs
IHNjb3BlKTsKIAotICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShpblZh
bHVlKTsKKyAgICAgICAgICAgICAgICBKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChpblZhbHVl
KTsKICAgICAgICAgICAgICAgICBtYXJrZWRTdGFjay5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93
KGFycmF5KTsKLSAgICAgICAgICAgICAgICBhcnJheUxlbmd0aFN0YWNrLmFwcGVuZChhcnJheS0+
bGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRvTGVuZ3RoKG1f
ZXhlYywgYXJyYXkpOworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgICAgICAgICAgICAgYXJyYXlMZW5ndGhTdGFjay5hcHBlbmQobGVuZ3RoKTsK
ICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGFycmF5U3RhcnRWaXNpdE1lbWJlcjoKICAgICAgICAgICAgIEZBTExUSFJPVUdI
OwogICAgICAgICAgICAgY2FzZSBBcnJheVN0YXJ0VmlzaXRNZW1iZXI6IHsKLSAgICAgICAgICAg
ICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4obWFya2VkU3RhY2subGFzdCgp
KTsKKyAgICAgICAgICAgICAgICBKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChtYXJrZWRTdGFj
ay5sYXN0KCkpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gaW5kZXhTdGFjay5s
YXN0KCk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgYXJyYXlMZW5ndGggPSBhcnJheUxlbmd0
aFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT0gYXJyYXlMZW5ndGgp
IHsKQEAgLTcwNCw3ICs3MDcsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGso
SlNWYWx1CiAgICAgICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBjYXNlIEFycmF5RW5kVmlzaXRNZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBKU0Fy
cmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4obWFya2VkU3RhY2subGFzdCgpKTsKKyAgICAg
ICAgICAgICAgICBKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChtYXJrZWRTdGFjay5sYXN0KCkp
OwogICAgICAgICAgICAgICAgIEpTVmFsdWUgZmlsdGVyZWRWYWx1ZSA9IGNhbGxSZXZpdmVyKGFy
cmF5LCBqc1N0cmluZyhtX2V4ZWMsIFN0cmluZzo6bnVtYmVyKGluZGV4U3RhY2subGFzdCgpKSks
IG91dFZhbHVlKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZFZhbHVlLmlzVW5kZWZpbmVkKCkpCkBA
IC03MTgsNyArNzIxLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFs
dQogICAgICAgICAgICAgb2JqZWN0U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgT2JqZWN0
U3RhcnRTdGF0ZTogewogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkp
OwotICAgICAgICAgICAgICAgIEFTU0VSVCghYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRzPEpT
QXJyYXk+KHZtKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFpc0pTQXJyYXkoaW5WYWx1ZSkp
OwogICAgICAgICAgICAgICAgIGlmIChtYXJrZWRTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVy
UmVjdXJzaW9uKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93
RXJyb3IobV9leGVjLCBzY29wZSk7CiAKQEAgLTc3OCw4ICs3ODEsOSBAQCBORVZFUl9JTkxJTkUg
SlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAgICAgIG91dFZhbHVl
ID0gaW5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsK
LSAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU0FycmF5Pih2bSkpCisgICAg
ICAgICAgICAgICAgYm9vbCB2YWx1ZUlzQXJyYXkgPSBpc0FycmF5KG1fZXhlYywgaW5WYWx1ZSk7
CisgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWVJc0FycmF5KQogICAgICAgICAgICAgICAgICAgICBnb3RvIGFy
cmF5U3RhcnRTdGF0ZTsKICAgICAgICAgICAgICAgICBnb3RvIG9iamVjdFN0YXJ0U3RhdGU7CiAg
ICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377862</attachid>
            <date>2019-09-02 15:20:47 -0700</date>
            <delta_ts>2019-10-08 12:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199292-20190903012045.patch</filename>
            <type>text/plain</type>
            <size>10523</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDk0MTQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDE5LTA5LTAyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBKU09OLnBhcnNlIGluY29ycmVjdGx5IGhhbmRsZXMgYXJy
YXkgcHJveGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1hcnJheS1yZXZpdmVyLXNhbWUtdmFsdWUuanM6
IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2
ZXIuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLW9iamVj
dC1yZXZpdmVyLXNhbWUtdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9qc29uLXBhcnNlLW9iamVjdC1yZXZpdmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3Mv
anNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJl
c3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanM6IEFkZGVkLgorICAgICAgICAq
IHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKIDIwMTktMDgtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBHZW5lcmF0ZSBuZXcudGFyZ2V0IHJlZ2lzdGVyIG9ubHkgd2hlbiBpdCBpcyB1
c2VkCkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2
ZXItc2FtZS12YWx1ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9q
c29uLXBhcnNlLWFycmF5LXJldml2ZXItc2FtZS12YWx1ZS5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2ZXItc2FtZS12YWx1
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK2NvbnN0IGpzb24gPSBKU09OLnN0
cmluZ2lmeShbMCwxLDIsMyw0LDUsNiw3LDgsOV0pOworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTU7
ICsraSkKKyAgICBKU09OLnBhcnNlKGpzb24sIChfa2V5LCB2YWwpID0+IHZhbCk7CkluZGV4OiBK
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2ZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1hcnJheS1yZXZpdmVy
LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2pzb24tcGFyc2Ut
YXJyYXktcmV2aXZlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKK2NvbnN0IGpz
b24gPSBKU09OLnN0cmluZ2lmeShbMCwxLDIsMyw0LDUsNiw3LDgsOV0pOworZm9yIChsZXQgaSA9
IDA7IGkgPCAxZTU7ICsraSkKKyAgICBKU09OLnBhcnNlKGpzb24sIChfa2V5LCB2YWwpID0+IHZh
bCArIDEpOwpJbmRleDogSlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1vYmplY3Qt
cmV2aXZlci1zYW1lLXZhbHVlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2pzb24tcGFyc2Utb2JqZWN0LXJldml2ZXItc2FtZS12YWx1ZS5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLW9iamVjdC1yZXZpdmVyLXNh
bWUtdmFsdWUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACitjb25zdCBqc29uID0g
SlNPTi5zdHJpbmdpZnkoe2E6MCxiOjEsYzoyLGQ6MyxlOjQsZjo1LGc6NixoOjcsaTo4LGo6OX0p
OworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTU7ICsraSkKKyAgICBKU09OLnBhcnNlKGpzb24sIChf
a2V5LCB2YWwpID0+IHZhbCk7CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29uLXBh
cnNlLW9iamVjdC1yZXZpdmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2pzb24tcGFyc2Utb2JqZWN0LXJldml2ZXIuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1vYmplY3QtcmV2aXZlci5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMgQEAKK2NvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh7YTowLGI6
MSxjOjIsZDozLGU6NCxmOjUsZzo2LGg6NyxpOjgsajo5fSk7Citmb3IgKGxldCBpID0gMDsgaSA8
IDFlNTsgKytpKQorICAgIEpTT04ucGFyc2UoanNvbiwgKF9rZXksIHZhbCkgPT4gdmFsICsgMSk7
CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9qc29uLXBhcnNlLXJldml2ZXItYXJyYXktcHJveHkuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXBy
b3h5LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL2pzb24tcGFyc2UtcmV2aXZl
ci1hcnJheS1wcm94eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworY29uc3QganNvbiA9ICd7ImEiOiAxLCAiYiI6IDJ9JzsKKworZm9yIChsZXQgaSA9IDE7IGkg
PCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IGtleXMgPSBbXTsKKyAgICBsZXQgcHJveHkgPSBuZXcg
UHJveHkoWzIsIDNdLCB7CisgICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0LCBrZXkpIHsKKyAg
ICAgICAgICAgIGtleXMucHVzaChrZXkpOworICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtrZXld
OworICAgICAgICB9LAorICAgICAgICBvd25LZXlzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcignW1tPd25Qcm9wZXJ0eUtleXNdXSBzaG91bGQgbm90IGJlIGNhbGxl
ZCcpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgbGV0IHJlc3VsdCA9IEpTT04ucGFyc2Uo
anNvbiwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkgeworICAgICAgICBpZiAoa2V5ID09PSAnYScpCisg
ICAgICAgICAgICB0aGlzLmIgPSBwcm94eTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0p
OworCisgICAgc2hvdWxkQmUoa2V5cy50b1N0cmluZygpLCAnbGVuZ3RoLDAsMScpOworICAgIHNo
b3VsZEJlKEpTT04uc3RyaW5naWZ5KHJlc3VsdCksICd7ImEiOjEsImIiOlsyLDNdfScpOworfQpJ
bmRleDogSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQt
cHJveHkuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZp
dmVyLXJldm9rZWQtcHJveHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIHJldml2ZWRPYmpQcm94eShrZXksIHZhbHVlKSB7CisgICAgaWYgKGtl
eSA9PT0gJ2EnKSB7CisgICAgICAgIGxldCB7cHJveHksIHJldm9rZX0gPSBQcm94eS5yZXZvY2Fi
bGUoe30sIHt9KTsKKyAgICAgICAgcmV2b2tlKCk7CisgICAgICAgIHRoaXMuYiA9IHByb3h5Owor
ICAgIH0KKworICAgIHJldHVybiB2YWx1ZTsKK30KKworZnVuY3Rpb24gcmV2aXZlZEFyclByb3h5
KGtleSwgdmFsdWUpIHsKKyAgICBpZiAoa2V5ID09PSAnMCcpIHsKKyAgICAgICAgbGV0IHtwcm94
eSwgcmV2b2tlfSA9IFByb3h5LnJldm9jYWJsZShbXSwge30pOworICAgICAgICByZXZva2UoKTsK
KyAgICAgICAgdGhpc1sxXSA9IHByb3h5OworICAgIH0KKworICAgIHJldHVybiB2YWx1ZTsKK30K
KworY29uc3Qgb2JqSlNPTiA9ICd7ImEiOiAxLCAiYiI6IDJ9JzsKK2NvbnN0IGFyckpTT04gPSAn
WzMsIDRdJzsKK2NvbnN0IGlzQXJyYXlFcnJvciA9ICdUeXBlRXJyb3I6IEFycmF5LmlzQXJyYXkg
Y2Fubm90IGJlIGNhbGxlZCBvbiBhIFByb3h5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZCc7CisKK2Zv
ciAobGV0IGkgPSAxOyBpIDwgMTAwMDA7IGkrKykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkg
eworICAgICAgICBKU09OLnBhcnNlKG9iakpTT04sIHJldml2ZWRPYmpQcm94eSk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIHNob3VsZEJlKGVycm9y
LnRvU3RyaW5nKCksIGlzQXJyYXlFcnJvcik7Cit9CisKK2ZvciAobGV0IGkgPSAxOyBpIDwgMTAw
MDA7IGkrKykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBKU09OLnBhcnNl
KGFyckpTT04sIHJldml2ZWRBcnJQcm94eSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBl
cnJvciA9IGU7CisgICAgfQorICAgIHNob3VsZEJlKGVycm9yLnRvU3RyaW5nKCksIGlzQXJyYXlF
cnJvcik7Cit9CkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCShyZXZpc2lvbiAyNDkz
NjgpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcgY29weSkK
QEAgLTEyMDAsMTUgKzEyMDAsNiBAQCB0ZXN0L2J1aWx0LWlucy9GdW5jdGlvbi9wcm90b3R5cGUv
dG9TdHJpCiB0ZXN0L2J1aWx0LWlucy9HZW5lcmF0b3JGdW5jdGlvbi9wcm90by1mcm9tLWN0b3It
cmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFR5cGUgZXJyb3InCiAgIHN0cmljdCBt
b2RlOiAnVHlwZUVycm9yOiBUeXBlIGVycm9yJwotdGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9y
ZXZpdmVkLXByb3h5LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBwcm94eSBmb3IgYXJy
YXkgRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqt0cnVlw4LCuywgw4LCq2ZhbHNlw4LCuykgdG8gYmUg
dHJ1ZScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHByb3h5IGZvciBhcnJheSBFeHBl
Y3RlZCBTYW1lVmFsdWUow4LCq3RydWXDgsK7LCDDgsKrZmFsc2XDgsK7KSB0byBiZSB0cnVlJwot
dGVzdC9idWlsdC1pbnMvSlNPTi9wYXJzZS9yZXZpdmVyLWFycmF5LWxlbmd0aC1jb2VyY2UtZXJy
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwotdGVzdC9idWlsdC1pbnMvSlNP
Ti9wYXJzZS9yZXZpdmVyLWFycmF5LWxlbmd0aC1nZXQtZXJyLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsJwogdGVzdC9idWlsdC1pbnMvTWFwL3Byb3RvLWZyb20tY3Rvci1yZWFs
bS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqtb
b2JqZWN0IE1hcF3DgsK7LCDDgsKrW29iamVjdCBNYXBdw4LCuykgdG8gYmUgdHJ1ZScKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVjdCBN
YXBdw4LCuywgw4LCq1tvYmplY3QgTWFwXcOCwrspIHRvIGJlIHRydWUnCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTM2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOS0wMiAg
QWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgSlNPTi5w
YXJzZSBpbmNvcnJlY3RseSBoYW5kbGVzIGFycmF5IHByb3hpZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTI5MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIDEuIFVzZSBpc0FycmF5IHRvIGNvcnJlY3RseSBk
ZXRlY3QgcHJveGllZCBhcnJheXMuCisgICAgICAgIDIuIE1ha2UgImxlbmd0aCIgbG9va3VwIG9i
c2VydmFibGUgdG8gYXJyYXkgcHJveGllcyBhbmQgaGFuZGxlIGV4Y2VwdGlvbnMuCisKKyAgICAg
ICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGsp
OgorCiAyMDE5LTA5LTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTcGVjdWxhdGl2ZSBidWlsZCBmaXggZm9yIEFSTXY3IGFuZCBNSVBTLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDI0OTM2
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgorI2luY2x1ZGUgIkpT
QXJyYXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJM
aXRlcmFsUGFyc2VyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCkBAIC02NjMsMTkgKzY2NCwyMSBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICBh
cnJheVN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIEFycmF5U3RhcnRTdGF0ZTogewogICAg
ICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwotICAgICAgICAgICAgICAg
IEFTU0VSVChhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGluVmFsdWUpIHx8IGluVmFsdWUuaW5oZXJpdHM8
UHJveHlPYmplY3Q+KHZtKSk7CiAgICAgICAgICAgICAgICAgaWYgKG1hcmtlZFN0YWNrLnNpemUo
KSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMsIHNjb3BlKTsKIAotICAgICAgICAgICAgICAg
IEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShpblZhbHVlKTsKKyAgICAgICAgICAgICAgICBKU09i
amVjdCogYXJyYXkgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAgICBtYXJrZWRT
dGFjay5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGFycmF5KTsKLSAgICAgICAgICAgICAgICBh
cnJheUxlbmd0aFN0YWNrLmFwcGVuZChhcnJheS0+bGVuZ3RoKCkpOworICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCA9IHRvTGVuZ3RoKG1fZXhlYywgYXJyYXkpOworICAgICAgICAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICAgICAgYXJy
YXlMZW5ndGhTdGFjay5hcHBlbmQobGVuZ3RoKTsKICAgICAgICAgICAgICAgICBpbmRleFN0YWNr
LmFwcGVuZCgwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFycmF5U3RhcnRWaXNpdE1l
bWJlcjoKICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICAgICAgY2FzZSBBcnJheVN0
YXJ0VmlzaXRNZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2Fz
dDxKU0FycmF5Kj4obWFya2VkU3RhY2subGFzdCgpKTsKKyAgICAgICAgICAgICAgICBKU09iamVj
dCogYXJyYXkgPSBhc09iamVjdChtYXJrZWRTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAg
IHVpbnQzMl90IGluZGV4ID0gaW5kZXhTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgdW5z
aWduZWQgYXJyYXlMZW5ndGggPSBhcnJheUxlbmd0aFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAg
ICAgICBpZiAoaW5kZXggPT0gYXJyYXlMZW5ndGgpIHsKQEAgLTcwNCw3ICs3MDcsNyBAQCBORVZF
Ul9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICAgICAgRkFM
TFRIUk9VR0g7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIEFycmF5RW5kVmlzaXRN
ZW1iZXI6IHsKLSAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5
Kj4obWFya2VkU3RhY2subGFzdCgpKTsKKyAgICAgICAgICAgICAgICBKU09iamVjdCogYXJyYXkg
PSBhc09iamVjdChtYXJrZWRTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUg
ZmlsdGVyZWRWYWx1ZSA9IGNhbGxSZXZpdmVyKGFycmF5LCBqc1N0cmluZyh2bSwgU3RyaW5nOjpu
dW1iZXIoaW5kZXhTdGFjay5sYXN0KCkpKSwgb3V0VmFsdWUpOwogICAgICAgICAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgICAgICAgICAgICAgaWYgKGZpbHRl
cmVkVmFsdWUuaXNVbmRlZmluZWQoKSkKQEAgLTcxOCw3ICs3MjEsNyBAQCBORVZFUl9JTkxJTkUg
SlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1CiAgICAgICAgICAgICBvYmplY3RTdGFydFN0YXRl
OgogICAgICAgICAgICAgY2FzZSBPYmplY3RTdGFydFN0YXRlOiB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFhc09i
amVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKKyAgICAgICAgICAgICAgICBB
U1NFUlQoIWlzSlNBcnJheShpblZhbHVlKSk7CiAgICAgICAgICAgICAgICAgaWYgKG1hcmtlZFN0
YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMsIHNjb3BlKTsKIApAQCAtNzc4
LDggKzc4MSw5IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAg
ICAgICAgICAgICAgICAgICAgb3V0VmFsdWUgPSBpblZhbHVlOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KGluVmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmlu
aGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAgICAgICAgICAgICAgICBib29sIHZhbHVlSXNBcnJheSA9
IGlzQXJyYXkobV9leGVjLCBpblZhbHVlKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZUlzQXJyYXkpCiAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gYXJyYXlTdGFydFN0YXRlOwogICAgICAgICAgICAgICAg
IGdvdG8gb2JqZWN0U3RhcnRTdGF0ZTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380451</attachid>
            <date>2019-10-08 12:32:12 -0700</date>
            <delta_ts>2019-10-08 14:23:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199292-20191008223211.patch</filename>
            <type>text/plain</type>
            <size>10696</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTA4NDgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBKU09OLnBhcnNlIGluY29ycmVjdGx5IGhhbmRsZXMgYXJy
YXkgcHJveGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk5MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1hcnJheS1yZXZpdmVyLXNhbWUtdmFsdWUuanM6
IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2
ZXIuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLW9iamVj
dC1yZXZpdmVyLXNhbWUtdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9qc29uLXBhcnNlLW9iamVjdC1yZXZpdmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3Mv
anNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJl
c3MvanNvbi1wYXJzZS1yZXZpdmVyLXJldm9rZWQtcHJveHkuanM6IEFkZGVkLgorICAgICAgICAq
IHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNiB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKIDIwMTktMTAtMDggIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgog
CiAgICAgICAgIFVwZGF0ZSB0ZXN0MjYyICgyMDE5LjEwLjA4KS4KSW5kZXg6IEpTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL2pzb24tcGFyc2UtYXJyYXktcmV2aXZlci1zYW1lLXZhbHVlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2pzb24tcGFyc2UtYXJyYXktcmV2aXZl
ci1zYW1lLXZhbHVlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2pzb24tcGFyc2UtYXJyYXktcmV2aXZlci1zYW1lLXZhbHVlLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMyBAQAorY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KFswLDEsMiwzLDQsNSw2
LDcsOCw5XSk7Citmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKQorICAgIEpTT04ucGFyc2Uo
anNvbiwgKF9rZXksIHZhbCkgPT4gdmFsKTsKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2pzb24tcGFyc2UtYXJyYXktcmV2aXZlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9qc29uLXBhcnNlLWFycmF5LXJldml2ZXIuanMJKG5vbmV4aXN0ZW50KQorKysg
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1hcnJheS1yZXZpdmVyLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KFsw
LDEsMiwzLDQsNSw2LDcsOCw5XSk7Citmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKQorICAg
IEpTT04ucGFyc2UoanNvbiwgKF9rZXksIHZhbCkgPT4gdmFsICsgMSk7CkluZGV4OiBKU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9qc29uLXBhcnNlLW9iamVjdC1yZXZpdmVyLXNhbWUtdmFsdWUuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1vYmplY3Qt
cmV2aXZlci1zYW1lLXZhbHVlLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL2pzb24tcGFyc2Utb2JqZWN0LXJldml2ZXItc2FtZS12YWx1ZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDMgQEAKK2NvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh7YTowLGI6
MSxjOjIsZDozLGU6NCxmOjUsZzo2LGg6NyxpOjgsajo5fSk7Citmb3IgKGxldCBpID0gMDsgaSA8
IDFlNTsgKytpKQorICAgIEpTT04ucGFyc2UoanNvbiwgKF9rZXksIHZhbCkgPT4gdmFsKTsKSW5k
ZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2pzb24tcGFyc2Utb2JqZWN0LXJldml2ZXIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvanNvbi1wYXJzZS1vYmplY3Qt
cmV2aXZlci5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9qc29u
LXBhcnNlLW9iamVjdC1yZXZpdmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAor
Y29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHthOjAsYjoxLGM6MixkOjMsZTo0LGY6NSxnOjYs
aDo3LGk6OCxqOjl9KTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyArK2kpCisgICAgSlNPTi5w
YXJzZShqc29uLCAoX2tleSwgdmFsKSA9PiB2YWwgKyAxKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNz
L2pzb24tcGFyc2UtcmV2aXZlci1hcnJheS1wcm94eS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3N0cmVzcy9qc29uLXBhcnNlLXJldml2ZXItYXJyYXktcHJveHkuanMJKG5vbmV4aXN0ZW50KQor
KysgSlNUZXN0cy9zdHJlc3MvanNvbi1wYXJzZS1yZXZpdmVyLWFycmF5LXByb3h5LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitjb25zdCBqc29uID0gJ3siYSI6
IDEsICJiIjogMn0nOworCitmb3IgKGxldCBpID0gMTsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBs
ZXQga2V5cyA9IFtdOworICAgIGxldCBwcm94eSA9IG5ldyBQcm94eShbMiwgM10sIHsKKyAgICAg
ICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIGtleSkgeworICAgICAgICAgICAga2V5cy5wdXNoKGtl
eSk7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV07CisgICAgICAgIH0sCisgICAgICAg
IG93bktleXM6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbW093
blByb3BlcnR5S2V5c11dIHNob3VsZCBub3QgYmUgY2FsbGVkJyk7CisgICAgICAgIH0sCisgICAg
fSk7CisKKyAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShqc29uLCBmdW5jdGlvbihrZXksIHZh
bHVlKSB7CisgICAgICAgIGlmIChrZXkgPT09ICdhJykKKyAgICAgICAgICAgIHRoaXMuYiA9IHBy
b3h5OworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfSk7CisKKyAgICBzaG91bGRCZShrZXlz
LnRvU3RyaW5nKCksICdsZW5ndGgsMCwxJyk7CisgICAgc2hvdWxkQmUoSlNPTi5zdHJpbmdpZnko
cmVzdWx0KSwgJ3siYSI6MSwiYiI6WzIsM119Jyk7Cit9CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9q
c29uLXBhcnNlLXJldml2ZXItcmV2b2tlZC1wcm94eS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3Rz
L3N0cmVzcy9qc29uLXBhcnNlLXJldml2ZXItcmV2b2tlZC1wcm94eS5qcwkobm9uZXhpc3RlbnQp
CisrKyBKU1Rlc3RzL3N0cmVzcy9qc29uLXBhcnNlLXJldml2ZXItcmV2b2tlZC1wcm94eS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gcmV2aXZl
ZE9ialByb3h5KGtleSwgdmFsdWUpIHsKKyAgICBpZiAoa2V5ID09PSAnYScpIHsKKyAgICAgICAg
bGV0IHtwcm94eSwgcmV2b2tlfSA9IFByb3h5LnJldm9jYWJsZSh7fSwge30pOworICAgICAgICBy
ZXZva2UoKTsKKyAgICAgICAgdGhpcy5iID0gcHJveHk7CisgICAgfQorCisgICAgcmV0dXJuIHZh
bHVlOworfQorCitmdW5jdGlvbiByZXZpdmVkQXJyUHJveHkoa2V5LCB2YWx1ZSkgeworICAgIGlm
IChrZXkgPT09ICcwJykgeworICAgICAgICBsZXQge3Byb3h5LCByZXZva2V9ID0gUHJveHkucmV2
b2NhYmxlKFtdLCB7fSk7CisgICAgICAgIHJldm9rZSgpOworICAgICAgICB0aGlzWzFdID0gcHJv
eHk7CisgICAgfQorCisgICAgcmV0dXJuIHZhbHVlOworfQorCitjb25zdCBvYmpKU09OID0gJ3si
YSI6IDEsICJiIjogMn0nOworY29uc3QgYXJySlNPTiA9ICdbMywgNF0nOworY29uc3QgaXNBcnJh
eUVycm9yID0gJ1R5cGVFcnJvcjogQXJyYXkuaXNBcnJheSBjYW5ub3QgYmUgY2FsbGVkIG9uIGEg
UHJveHkgdGhhdCBoYXMgYmVlbiByZXZva2VkJzsKKworZm9yIChsZXQgaSA9IDE7IGkgPCAxMDAw
MDsgaSsrKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIEpTT04ucGFyc2Uo
b2JqSlNPTiwgcmV2aXZlZE9ialByb3h5KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisgICAgc2hvdWxkQmUoZXJyb3IudG9TdHJpbmcoKSwgaXNBcnJheUVy
cm9yKTsKK30KKworZm9yIChsZXQgaSA9IDE7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgbGV0IGVy
cm9yOworICAgIHRyeSB7CisgICAgICAgIEpTT04ucGFyc2UoYXJySlNPTiwgcmV2aXZlZEFyclBy
b3h5KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAg
c2hvdWxkQmUoZXJyb3IudG9TdHJpbmcoKSwgaXNBcnJheUVycm9yKTsKK30KSW5kZXg6IEpTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1MDg0OCkKKysrIEpTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTIwNiwxNSArMTIwNiw2IEBA
IHRlc3QvYnVpbHQtaW5zL0Z1bmN0aW9uL3Byb3RvdHlwZS90b1N0cmkKIHRlc3QvYnVpbHQtaW5z
L0dlbmVyYXRvckZ1bmN0aW9uL3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMOCwqtbb2JqZWN0IEdlbmVyYXRvckZ1
bmN0aW9uXcOCwrssIMOCwqtbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXcOCwrspIHRvIGJlIHRy
dWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LC
q1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dw4LCuywgw4LCq1tvYmplY3QgR2VuZXJhdG9yRnVu
Y3Rpb25dw4LCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL0pTT04vcGFyc2UvcmV2aXZl
ZC1wcm94eS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogcHJveHkgZm9yIGFycmF5IEV4
cGVjdGVkIFNhbWVWYWx1ZSjDgsKrdHJ1ZcOCwrssIMOCwqtmYWxzZcOCwrspIHRvIGJlIHRydWUn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBwcm94eSBmb3IgYXJyYXkgRXhwZWN0ZWQg
U2FtZVZhbHVlKMOCwqt0cnVlw4LCuywgw4LCq2ZhbHNlw4LCuykgdG8gYmUgdHJ1ZScKLXRlc3Qv
YnVpbHQtaW5zL0pTT04vcGFyc2UvcmV2aXZlci1hcnJheS1sZW5ndGgtY29lcmNlLWVyci5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUg
dGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKLXRlc3QvYnVpbHQtaW5zL0pTT04vcGFy
c2UvcmV2aXZlci1hcnJheS1sZW5ndGgtZ2V0LWVyci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCcKIHRlc3QvYnVpbHQtaW5zL01hcC9wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjDgsKrW29iamVj
dCBNYXBdw4LCuywgw4LCq1tvYmplY3QgTWFwXcOCwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUow4LCq1tvYmplY3QgTWFwXcOC
wrssIMOCwqtbb2JqZWN0IE1hcF3DgsK7KSB0byBiZSB0cnVlJwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTA4NDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTAtMDggIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIEpTT04ucGFyc2Ug
aW5jb3JyZWN0bHkgaGFuZGxlcyBhcnJheSBwcm94aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBT
YWFtIEJhcmF0aS4KKworICAgICAgICAxLiBVc2UgaXNBcnJheSB0byBjb3JyZWN0bHkgZGV0ZWN0
IHByb3hpZWQgYXJyYXlzLgorICAgICAgICAyLiBNYWtlICJsZW5ndGgiIGxvb2t1cCBvYnNlcnZh
YmxlIHRvIGFycmF5IHByb3hpZXMgYW5kIGhhbmRsZSBleGNlcHRpb25zLgorCisgICAgICAgICog
cnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxrKToKKwog
MjAxOS0xMC0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIEZUTCB2bUNhbGwgc2hvdWxkIGNoZWNrICMgb2YgYXJndW1lbnRzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMjUw
ODQ4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCisjaW5jbHVkZSAi
SlNBcnJheUlubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUg
IkxpdGVyYWxQYXJzZXIuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKQEAgLTY2MywxOSArNjY0LDIx
IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAg
IGFycmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFN0YXRlOiB7CiAg
ICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKGFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0czxKU0FycmF5Pih2bSkpOworICAg
ICAgICAgICAgICAgIEFTU0VSVChpc0pTQXJyYXkoaW5WYWx1ZSkgfHwgaW5WYWx1ZS5pbmhlcml0
czxQcm94eU9iamVjdD4odm0pKTsKICAgICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6
ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywgc2NvcGUpOwogCi0gICAgICAgICAgICAg
ICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGluVmFsdWUpOworICAgICAgICAgICAgICAgIEpT
T2JqZWN0KiBhcnJheSA9IGFzT2JqZWN0KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIG1hcmtl
ZFN0YWNrLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3coYXJyYXkpOwotICAgICAgICAgICAgICAg
IGFycmF5TGVuZ3RoU3RhY2suYXBwZW5kKGFycmF5LT5sZW5ndGgoKSk7CisgICAgICAgICAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gdG9MZW5ndGgobV9leGVjLCBhcnJheSk7CisgICAgICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgICAgICBh
cnJheUxlbmd0aFN0YWNrLmFwcGVuZChsZW5ndGgpOwogICAgICAgICAgICAgICAgIGluZGV4U3Rh
Y2suYXBwZW5kKDApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYXJyYXlTdGFydFZpc2l0
TWVtYmVyOgogICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgICAgICAgICBjYXNlIEFycmF5
U3RhcnRWaXNpdE1lbWJlcjogewotICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0ganND
YXN0PEpTQXJyYXkqPihtYXJrZWRTdGFjay5sYXN0KCkpOworICAgICAgICAgICAgICAgIEpTT2Jq
ZWN0KiBhcnJheSA9IGFzT2JqZWN0KG1hcmtlZFN0YWNrLmxhc3QoKSk7CiAgICAgICAgICAgICAg
ICAgdWludDMyX3QgaW5kZXggPSBpbmRleFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBhcnJheUxlbmd0aCA9IGFycmF5TGVuZ3RoU3RhY2subGFzdCgpOwogICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA9PSBhcnJheUxlbmd0aCkgewpAQCAtNzA0LDcgKzcwNyw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgICAgICBG
QUxMVEhST1VHSDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgQXJyYXlFbmRWaXNp
dE1lbWJlcjogewotICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0ganNDYXN0PEpTQXJy
YXkqPihtYXJrZWRTdGFjay5sYXN0KCkpOworICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBhcnJh
eSA9IGFzT2JqZWN0KG1hcmtlZFN0YWNrLmxhc3QoKSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1
ZSBmaWx0ZXJlZFZhbHVlID0gY2FsbFJldml2ZXIoYXJyYXksIGpzU3RyaW5nKHZtLCBTdHJpbmc6
Om51bWJlcihpbmRleFN0YWNrLmxhc3QoKSkpLCBvdXRWYWx1ZSk7CiAgICAgICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgICAgICAgICBpZiAoZmls
dGVyZWRWYWx1ZS5pc1VuZGVmaW5lZCgpKQpAQCAtNzE4LDcgKzcyMSw3IEBAIE5FVkVSX0lOTElO
RSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHUKICAgICAgICAgICAgIG9iamVjdFN0YXJ0U3Rh
dGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAgICAgICAgICAg
ICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIWFz
T2JqZWN0KGluVmFsdWUpLT5pbmhlcml0czxKU0FycmF5Pih2bSkpOworICAgICAgICAgICAgICAg
IEFTU0VSVCghaXNKU0FycmF5KGluVmFsdWUpKTsKICAgICAgICAgICAgICAgICBpZiAobWFya2Vk
U3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywgc2NvcGUpOwogCkBAIC03
NzgsOCArNzgxLDkgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQog
ICAgICAgICAgICAgICAgICAgICBvdXRWYWx1ZSA9IGluVmFsdWU7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBKU09iamVjdCog
b2JqZWN0ID0gYXNPYmplY3QoaW5WYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+
aW5oZXJpdHM8SlNBcnJheT4odm0pKQorICAgICAgICAgICAgICAgIGJvb2wgdmFsdWVJc0FycmF5
ID0gaXNBcnJheShtX2V4ZWMsIGluVmFsdWUpOworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlSXNBcnJheSkK
ICAgICAgICAgICAgICAgICAgICAgZ290byBhcnJheVN0YXJ0U3RhdGU7CiAgICAgICAgICAgICAg
ICAgZ290byBvYmplY3RTdGFydFN0YXRlOwogICAgICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>