<?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>214294</bug_id>
          
          <creation_ts>2020-07-13 22:23:50 -0700</creation_ts>
          <short_desc>Remove ArrayNode::m_optional</short_desc>
          <delta_ts>2020-07-23 01:25:17 -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=154042</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=190668</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671282</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-13 22:23:50 -0700</bug_when>
    <thetext>Remove ArrayNode::m_optional</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671283</commentid>
    <comment_count>1</comment_count>
      <attachid>404211</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-13 22:26:54 -0700</bug_when>
    <thetext>Created attachment 404211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671289</commentid>
    <comment_count>2</comment_count>
      <attachid>404211</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-13 23:16:47 -0700</bug_when>
    <thetext>Comment on attachment 404211
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        m_optional has undescriptive name, its value depends solely on which ArrayNode
&gt; +        constructor overload was used, and causes ArrayNode::isSimpleArray() to return
&gt; +        `false` for empty array literals. 

Can you explain what the intention of m_optional was in the first place, and why it is ok to remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671826</commentid>
    <comment_count>3</comment_count>
      <attachid>404211</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-15 11:23:45 -0700</bug_when>
    <thetext>Comment on attachment 404211
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        `false` for empty array literals. 
&gt; 
&gt; Can you explain what the intention of m_optional was in the first place, and why it is ok to remove it?

m_optional dates back to before the WebKit project began. It was already in KJS when we started the WebKit project, although back then it was named &quot;opt&quot;:

https://trac.webkit.org/browser/webkit/trunk/JavaScriptCore/kjs/nodes.h?rev=6

During that early stage KJS reflected many misunderstandings of the JavaScript language specification that we cleared up over time.

If you look carefully you can see that the opt boolean only ever meant &quot;is this an array with elisions, an empty array, or one with a trailing comma&quot;. That wasn’t an important distinction. I don’t think this ever had a valuable function.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:509
&gt; -    if (m_elision || m_optional)
&gt; +    if (m_elision)

This is the only behavior change, so this is where we should focus. This is obviously correct. Nothing about an empty array or one with a trailing comma makes it different, or necessary to return false to this predicate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672055</commentid>
    <comment_count>4</comment_count>
      <attachid>404211</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-15 23:16:48 -0700</bug_when>
    <thetext>Comment on attachment 404211
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:509
&gt;&gt; +    if (m_elision)
&gt; 
&gt; This is the only behavior change, so this is where we should focus. This is obviously correct. Nothing about an empty array or one with a trailing comma makes it different, or necessary to return false to this predicate.

Sounds correct to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673378</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-20 22:24:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/65866088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673504</commentid>
    <comment_count>6</comment_count>
      <attachid>404836</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-21 10:46:13 -0700</bug_when>
    <thetext>Created attachment 404836
Patch

Rewrite ChangeLog, benchmark arrays with trailing commas, convert isSpreadExpression() check to an ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673507</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-21 10:54:51 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; If you look carefully you can see that the opt boolean only ever meant &quot;is
&gt; this an array with elisions, an empty array, or one with a trailing comma&quot;.
&gt; That wasn’t an important distinction. I don’t think this ever had a valuable
&gt; function.

Thank you, Darin. I appreciate the write-up.
I&apos;ve updated the patch with far more real-world microbenchmarks (trailing comma).

```
Warmed-up runs, --outer 50:

                                           r264376                    patch

function-dot-apply-array-literal      258.1299+-7.6209     ^     22.5709+-2.0999        ^ definitely 11.4364x faster
destructuring-array-literal            50.5916+-2.9614     ^     32.4705+-1.3748        ^ definitely 1.5581x faster

&lt;geometric&gt;                           113.6893+-2.9768     ^     26.8028+-1.0915        ^ definitely 4.2417x faster
```

Without DFG/FTL, destructuring progresses by a factor of 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674133</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-23 01:25:16 -0700</bug_when>
    <thetext>Committed r264750: &lt;https://trac.webkit.org/changeset/264750&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404836.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404211</attachid>
            <date>2020-07-13 22:26:54 -0700</date>
            <delta_ts>2020-07-21 10:46:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214294-20200714082652.patch</filename>
            <type>text/plain</type>
            <size>7018</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQzMzEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTEzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgQXJyYXlOb2RlOjptX29wdGlvbmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyOTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVuY2ht
YXJrcy9kZXN0cnVjdHVyaW5nLWFycmF5LWxpdGVyYWwtZW1wdHkuanM6IEFkZGVkLgorICAgICAg
ICAqIG1pY3JvYmVuY2htYXJrcy9mdW5jdGlvbi1kb3QtYXBwbHktYXJyYXktbGl0ZXJhbC1lbXB0
eS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2FwcGx5LXNlY29uZC1hcmd1bWVudC1tdXN0
LWJlLWFycmF5LWxpa2UuanM6CisgICAgICAgICogc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdu
bWVudC1zeW50YXguanM6CisKIDIwMjAtMDctMTMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgcmV0dXJuRWFybHlGcm9tSW5maW5pdGVMb29wc0ZvckZ1enppbmcg
YW5kIHZhbGlkYXRlRG9lc0dDIG1heSBmYWlsIHdoZW4gdXNlZCB0b2dldGhlciBpbiB0aGUgRlRM
CkluZGV4OiBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZXN0cnVjdHVyaW5nLWFycmF5LWxpdGVy
YWwtZW1wdHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGVzdHJ1
Y3R1cmluZy1hcnJheS1saXRlcmFsLWVtcHR5LmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL2Rlc3RydWN0dXJpbmctYXJyYXktbGl0ZXJhbC1lbXB0eS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHZhciBb
XSA9IFtdOworICAgIGxldCBbXSA9IFtdOworICAgIGNvbnN0IFtdID0gW107Cit9CisKK25vSW5s
aW5lKHRlc3QpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNzsgKytpKQorICAgIHRlc3QoKTsK
SW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Z1bmN0aW9uLWRvdC1hcHBseS1hcnJheS1s
aXRlcmFsLWVtcHR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Z1
bmN0aW9uLWRvdC1hcHBseS1hcnJheS1saXRlcmFsLWVtcHR5LmpzCShub25leGlzdGVudCkKKysr
IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Z1bmN0aW9uLWRvdC1hcHBseS1hcnJheS1saXRlcmFs
LWVtcHR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorZnVuY3Rpb24gZm4oKSB7
fQorCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNzsgKytpKQorICAgIGZuLmFwcGx5KG51bGwsIFtd
KTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2FwcGx5LXNlY29uZC1hcmd1bWVudC1tdXN0LWJlLWFy
cmF5LWxpa2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvYXBwbHktc2Vjb25kLWFy
Z3VtZW50LW11c3QtYmUtYXJyYXktbGlrZS5qcwkocmV2aXNpb24gMjY0MzIwKQorKysgSlNUZXN0
cy9zdHJlc3MvYXBwbHktc2Vjb25kLWFyZ3VtZW50LW11c3QtYmUtYXJyYXktbGlrZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMTgsMTkgKzE4LDYgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZXhwcikg
ewogICAgIH0KIH0KIAotZnVuY3Rpb24gc2hvdWxkTm90VGhyb3coZXhwcikgewotICAgIGxldCB0
ZXN0RnVuYyA9IG5ldyBGdW5jdGlvbihleHByKTsKLSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEw
MDAwOyBpKyspIHsKLSAgICAgICAgbGV0IGVycm9yOwotICAgICAgICB0cnkgewotICAgICAgICAg
ICAgdGVzdEZ1bmMoKTsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgZXJyb3Ig
PSBlOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydCghZXJyb3IpOwotICAgIH0KLX0KLQogZnVu
Y3Rpb24gZm9vKCkgeyB9CiAKIHNob3VsZFRocm93KCJmb28uYXBwbHkodW5kZWZpbmVkLCB0cnVl
KSIpOwpAQCAtNDIsOCArMjksMTYgQEAgc2hvdWxkVGhyb3coImZvby5hcHBseSh1bmRlZmluZWQs
IDEuMC8wKQogc2hvdWxkVGhyb3coImZvby5hcHBseSh1bmRlZmluZWQsICdoZWxsbycpIik7CiBz
aG91bGRUaHJvdygiZm9vLmFwcGx5KHVuZGVmaW5lZCwgU3ltYm9sKCkpIik7CiAKLXNob3VsZE5v
dFRocm93KCJmb28uYXBwbHkodW5kZWZpbmVkLCB1bmRlZmluZWQpIik7Ci1zaG91bGROb3RUaHJv
dygiZm9vLmFwcGx5KHVuZGVmaW5lZCwgbnVsbCkiKTsKLXNob3VsZE5vdFRocm93KCJmb28uYXBw
bHkodW5kZWZpbmVkLCB7fSkiKTsKLXNob3VsZE5vdFRocm93KCJmb28uYXBwbHkodW5kZWZpbmVk
LCBbXSkiKTsKLXNob3VsZE5vdFRocm93KCJmb28uYXBwbHkodW5kZWZpbmVkLCBmdW5jdGlvbigp
e30pIik7CitmdW5jdGlvbiBiYXIoKSB7CisgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg7Cit9
CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgIG5ldyBGdW5jdGlvbihg
CisgICAgICAgIGFzc2VydChiYXIuYXBwbHkodW5kZWZpbmVkLCB1bmRlZmluZWQpID09PSAwKTsK
KyAgICAgICAgYXNzZXJ0KGJhci5hcHBseSh1bmRlZmluZWQsIG51bGwpID09PSAwKTsKKyAgICAg
ICAgYXNzZXJ0KGJhci5hcHBseSh1bmRlZmluZWQsIHt9KSA9PT0gMCk7CisgICAgICAgIGFzc2Vy
dChiYXIuYXBwbHkodW5kZWZpbmVkLCBbXSkgPT09IDApOworICAgICAgICBhc3NlcnQoYmFyLmFw
cGx5KHVuZGVmaW5lZCwgZnVuY3Rpb24oKSB7fSkgPT09IDApOworICAgIGApKCk7Cit9CkluZGV4
OiBKU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVyaW5nLWFzc2lnbm1lbnQtc3ludGF4LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1zeW50YXgu
anMJKHJldmlzaW9uIDI2NDMyMCkKKysrIEpTVGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNz
aWdubWVudC1zeW50YXguanMJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDEwIEBAIGZ1bmN0
aW9uIHRlc3RTeW50YXhFcnJvcihzY3JpcHQsIG1lc3NhZ2UKICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKIH0KIAordGVzdFN5bnRheCgiW10g
PSBbXSIpOwordGVzdFN5bnRheCgiW10gPSBbMV0iKTsKK3Rlc3RTeW50YXgoIlthXSA9IFtdIik7
CisKIHRlc3RTeW50YXgoIih7IGE6IHRoaXMuYSB9ID0ge30pIik7CiB0ZXN0U3ludGF4KCIoeyBh
OiB0aGlzWydhJ10gfSA9IHt9KSIpOwogdGVzdFN5bnRheCgiKHsgYTogdGhpc1tcImFcIl0gfSA9
IHt9KSIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjQzMjApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMjAtMDctMTMgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwu
Y29tPgorCisgICAgICAgIFJlbW92ZSBBcnJheU5vZGU6Om1fb3B0aW9uYWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI5NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIG1fb3B0aW9uYWwgaGFzIHVuZGVz
Y3JpcHRpdmUgbmFtZSwgaXRzIHZhbHVlIGRlcGVuZHMgc29sZWx5IG9uIHdoaWNoIEFycmF5Tm9k
ZQorICAgICAgICBjb25zdHJ1Y3RvciBvdmVybG9hZCB3YXMgdXNlZCwgYW5kIGNhdXNlcyBBcnJh
eU5vZGU6OmlzU2ltcGxlQXJyYXkoKSB0byByZXR1cm4KKyAgICAgICAgYGZhbHNlYCBmb3IgZW1w
dHkgYXJyYXkgbGl0ZXJhbHMuIAorCisgICAgICAgIFRoaXMgcGF0Y2ggY29tcGxldGVseSByZW1v
dmVzIG1fb3B0aW9uYWwsIGJyaW5naW5nIDZ4IGFuZCAxMXggc3BlZWQtdXBzCisgICAgICAgIGZv
ciBkZXN0cnVjdHVyaW5nIGFuZCBAYXBwbHkoKSBtaWNyb2JlbmNobWFya3MgcmVzcGVjdGl2ZWx5
LiBSZWZsZWN0LmFwcGx5KCkKKyAgICAgICAgb3B0aW1pemF0aW9uIChodHRwczovL3dlYmtpdC5v
cmcvYi8xOTA2NjgpIHdpbGwgYWxzbyBiZW5lZml0IGZyb20gdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlO
b2RlOjppc1NpbXBsZUFycmF5IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QXJyYXlOb2RlOjp0b0Fy
Z3VtZW50TGlzdCBjb25zdCk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoK
KyAgICAgICAgKEpTQzo6QXJyYXlOb2RlOjpBcnJheU5vZGUpOgorICAgICAgICAqIHBhcnNlci9O
b2Rlcy5oOgorCiAyMDIwLTA3LTEzICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmUtbGFuZGluZyByMjY0MjQyIHdpdGggY3Jhc2ggZml4
ZWQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCShyZXZpc2lvbiAyNjQzMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwNiw3
ICs1MDYsNyBAQCBoYW5kbGVTcHJlYWQ6CiAKIGJvb2wgQXJyYXlOb2RlOjppc1NpbXBsZUFycmF5
KCkgY29uc3QKIHsKLSAgICBpZiAobV9lbGlzaW9uIHx8IG1fb3B0aW9uYWwpCisgICAgaWYgKG1f
ZWxpc2lvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGZvciAoRWxlbWVudE5vZGUqIHB0
ciA9IG1fZWxlbWVudDsgcHRyOyBwdHIgPSBwdHItPm5leHQoKSkgewogICAgICAgICBpZiAocHRy
LT5lbGlzaW9uKCkpCkBAIC01MTksNyArNTE5LDcgQEAgYm9vbCBBcnJheU5vZGU6OmlzU2ltcGxl
QXJyYXkoKSBjb25zdAogCiBBcmd1bWVudExpc3ROb2RlKiBBcnJheU5vZGU6OnRvQXJndW1lbnRM
aXN0KFBhcnNlckFyZW5hJiBwYXJzZXJBcmVuYSwgaW50IGxpbmVOdW1iZXIsIGludCBzdGFydFBv
c2l0aW9uKSBjb25zdAogewotICAgIEFTU0VSVCghbV9lbGlzaW9uICYmICFtX29wdGlvbmFsKTsK
KyAgICBBU1NFUlQoIW1fZWxpc2lvbik7CiAgICAgRWxlbWVudE5vZGUqIHB0ciA9IG1fZWxlbWVu
dDsKICAgICBpZiAoIXB0cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAkocmV2aXNpb24g
MjY0MzIwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNiw3ICsyMjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2VsZW1lbnQobnVs
bHB0cikKICAgICAgICAgLCBtX2VsaXNpb24oZWxpc2lvbikKLSAgICAgICAgLCBtX29wdGlvbmFs
KHRydWUpCiAgICAgewogICAgIH0KIApAQCAtMjM0LDcgKzIzMyw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1fZWxlbWVu
dChlbGVtZW50KQogICAgICAgICAsIG1fZWxpc2lvbigwKQotICAgICAgICAsIG1fb3B0aW9uYWwo
ZmFsc2UpCiAgICAgewogICAgIH0KIApAQCAtMjQyLDcgKzI0MCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1fZWxlbWVu
dChlbGVtZW50KQogICAgICAgICAsIG1fZWxpc2lvbihlbGlzaW9uKQotICAgICAgICAsIG1fb3B0
aW9uYWwodHJ1ZSkKICAgICB7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCShyZXZpc2lvbiAyNjQzMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxNiw3ICs3MTYsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBFbGVtZW50Tm9kZSogbV9lbGVtZW50OwogICAgICAgICBpbnQgbV9l
bGlzaW9uOwotICAgICAgICBib29sIG1fb3B0aW9uYWw7CiAgICAgfTsKIAogICAgIGVudW0gY2xh
c3MgQ2xhc3NFbGVtZW50VGFnIDogdWludDhfdCB7IE5vLCBJbnN0YW5jZSwgU3RhdGljLCBMYXN0
VGFnIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404836</attachid>
            <date>2020-07-21 10:46:13 -0700</date>
            <delta_ts>2020-07-23 01:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214294-20200721204612.patch</filename>
            <type>text/plain</type>
            <size>7981</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjQ2NjIpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgQXJyYXlOb2RlOjptX29wdGlvbmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyOTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9kZXN0cnVjdHVyaW5nLWFycmF5LWxpdGVyYWwuanM6IEFkZGVkLgorICAgICAgICAqIG1pY3Jv
YmVuY2htYXJrcy9mdW5jdGlvbi1kb3QtYXBwbHktYXJyYXktbGl0ZXJhbC5qczogQWRkZWQuCisg
ICAgICAgICogc3RyZXNzL2FwcGx5LXNlY29uZC1hcmd1bWVudC1tdXN0LWJlLWFycmF5LWxpa2Uu
anM6CisgICAgICAgICogc3RyZXNzL2Rlc3RydWN0dXJpbmctYXNzaWdubWVudC1zeW50YXguanM6
CisKIDIwMjAtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbRUNNQS00MDJdIEltcGxlbWVudCBJbnRsLkRpc3BsYXlOYW1lcwpJbmRleDogSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvZGVzdHJ1Y3R1cmluZy1hcnJheS1saXRlcmFsLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Rlc3RydWN0dXJpbmctYXJyYXktbGl0ZXJh
bC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZXN0cnVjdHVy
aW5nLWFycmF5LWxpdGVyYWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACitmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgdmFyIFtdID0gW107CisgICAgdmFyIFth
XSA9IFsxLF07CisgICAgdmFyIFtiLCBjXSA9IFsxLCAyLF07Cit9CkluZGV4OiBKU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9mdW5jdGlvbi1kb3QtYXBwbHktYXJyYXktbGl0ZXJhbC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9mdW5jdGlvbi1kb3QtYXBwbHktYXJyYXkt
bGl0ZXJhbC5qcwkobm9uZXhpc3RlbnQpCisrKyBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9mdW5j
dGlvbi1kb3QtYXBwbHktYXJyYXktbGl0ZXJhbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDggQEAKK2Z1bmN0aW9uIGZuKCkge30KK25vSW5saW5lKEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBs
eSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU3OyArK2kpIHsKKyAgICBmbi5hcHBseShudWxs
LCBbXSk7CisgICAgZm4uYXBwbHkobnVsbCwgWzEsXSk7CisgICAgZm4uYXBwbHkobnVsbCwgWzEs
IDIsXSk7Cit9CkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9hcHBseS1zZWNvbmQtYXJndW1lbnQtbXVz
dC1iZS1hcnJheS1saWtlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2FwcGx5LXNl
Y29uZC1hcmd1bWVudC1tdXN0LWJlLWFycmF5LWxpa2UuanMJKHJldmlzaW9uIDI2NDY2MikKKysr
IEpTVGVzdHMvc3RyZXNzL2FwcGx5LXNlY29uZC1hcmd1bWVudC1tdXN0LWJlLWFycmF5LWxpa2Uu
anMJKHdvcmtpbmcgY29weSkKQEAgLTE4LDE5ICsxOCw2IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93
KGV4cHIpIHsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIHNob3VsZE5vdFRocm93KGV4cHIpIHsKLSAg
ICBsZXQgdGVzdEZ1bmMgPSBuZXcgRnVuY3Rpb24oZXhwcik7Ci0gICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDsgaSsrKSB7Ci0gICAgICAgIGxldCBlcnJvcjsKLSAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHRlc3RGdW5jKCk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAg
IGVycm9yID0gZTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQoIWVycm9yKTsKLSAgICB9Ci19
Ci0KIGZ1bmN0aW9uIGZvbygpIHsgfQogCiBzaG91bGRUaHJvdygiZm9vLmFwcGx5KHVuZGVmaW5l
ZCwgdHJ1ZSkiKTsKQEAgLTQyLDggKzI5LDE2IEBAIHNob3VsZFRocm93KCJmb28uYXBwbHkodW5k
ZWZpbmVkLCAxLjAvMCkKIHNob3VsZFRocm93KCJmb28uYXBwbHkodW5kZWZpbmVkLCAnaGVsbG8n
KSIpOwogc2hvdWxkVGhyb3coImZvby5hcHBseSh1bmRlZmluZWQsIFN5bWJvbCgpKSIpOwogCi1z
aG91bGROb3RUaHJvdygiZm9vLmFwcGx5KHVuZGVmaW5lZCwgdW5kZWZpbmVkKSIpOwotc2hvdWxk
Tm90VGhyb3coImZvby5hcHBseSh1bmRlZmluZWQsIG51bGwpIik7Ci1zaG91bGROb3RUaHJvdygi
Zm9vLmFwcGx5KHVuZGVmaW5lZCwge30pIik7Ci1zaG91bGROb3RUaHJvdygiZm9vLmFwcGx5KHVu
ZGVmaW5lZCwgW10pIik7Ci1zaG91bGROb3RUaHJvdygiZm9vLmFwcGx5KHVuZGVmaW5lZCwgZnVu
Y3Rpb24oKXt9KSIpOworZnVuY3Rpb24gYmFyKCkgeworICAgIHJldHVybiBhcmd1bWVudHMubGVu
Z3RoOworfQorCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICBuZXcgRnVu
Y3Rpb24oYAorICAgICAgICBhc3NlcnQoYmFyLmFwcGx5KHVuZGVmaW5lZCwgdW5kZWZpbmVkKSA9
PT0gMCk7CisgICAgICAgIGFzc2VydChiYXIuYXBwbHkodW5kZWZpbmVkLCBudWxsKSA9PT0gMCk7
CisgICAgICAgIGFzc2VydChiYXIuYXBwbHkodW5kZWZpbmVkLCB7fSkgPT09IDApOworICAgICAg
ICBhc3NlcnQoYmFyLmFwcGx5KHVuZGVmaW5lZCwgW10pID09PSAwKTsKKyAgICAgICAgYXNzZXJ0
KGJhci5hcHBseSh1bmRlZmluZWQsIGZ1bmN0aW9uKCkge30pID09PSAwKTsKKyAgICBgKSgpOwor
fQpJbmRleDogSlNUZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXN5bnRheC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVyaW5nLWFzc2lnbm1lbnQt
c3ludGF4LmpzCShyZXZpc2lvbiAyNjQ2NjIpCisrKyBKU1Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVy
aW5nLWFzc2lnbm1lbnQtc3ludGF4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiwxMSBA
QCBmdW5jdGlvbiB0ZXN0U3ludGF4RXJyb3Ioc2NyaXB0LCBtZXNzYWdlCiAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7CiB9CiAKK3Rlc3RTeW50
YXgoIltdID0gW10iKTsKK3Rlc3RTeW50YXgoIltdID0gWyxdIik7Cit0ZXN0U3ludGF4KCJbLF0g
PSBbLF0iKTsKK3Rlc3RTeW50YXgoIlssXSA9IFtdIik7CisKIHRlc3RTeW50YXgoIih7IGE6IHRo
aXMuYSB9ID0ge30pIik7CiB0ZXN0U3ludGF4KCIoeyBhOiB0aGlzWydhJ10gfSA9IHt9KSIpOwog
dGVzdFN5bnRheCgiKHsgYTogdGhpc1tcImFcIl0gfSA9IHt9KSIpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjQ2NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDctMjEgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlbW92ZSBB
cnJheU5vZGU6Om1fb3B0aW9uYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNDI5NAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgIG1fb3B0aW9uYWwsIHdoaWNoIGRhdGVzIGJhY2sgdG8gS0pTIGVyYSwgbWVhbnMg
ImlzIHRoaXMgYW4gYXJyYXkgd2l0aCBvcHRpb25hbCB0cmFpbGluZyBjb21tYSwKKyAgICAgICAg
d2l0aCBlbGlzaW9uLCBvciBhbiBlbXB0eSBhcnJheSIuIEl0IHdhcyB1c2VkIGJ5IEFycmF5Tm9k
ZTo6c3RyZWFtVG8oKSB0byBwcmVzZXJ2ZSBhIHRyYWlsaW5nCisgICAgICAgIGNvbW1hIHdoZW4g
Y29udmVydGluZyBhcnJheSBub2RlIHRvIHNvdXJjZSBzdHJpbmcsIGFzIHdlbGwgYXMgaW4gZmV3
IG90aGVyIHBsYWNlcywKKyAgICAgICAgYmVmb3JlIEVDTUEtMjYyIGNsYXJpZmllZCB0cmFpbGlu
ZyBjb21tYSBpbiBhcnJheSBsaXRlcmFscyBbMV0uCisKKyAgICAgICAgQ3VycmVudGx5LCBtX29w
dGlvbmFsIGlzIHVzZWQgb25seSBieSBBcnJheU5vZGU6OmlzU2ltcGxlQXJyYXkoKSwgYWxvbmcg
d2l0aCBtX2VsaXNpb24uCisgICAgICAgIENoZWNraW5nIG1fZWxpc2lvbiBpcyBlbm91Z2ggc2lu
Y2UgdHJhaWxpbmcgY29tbWEgZG9lc24ndCBhZGQgZXh0cmEgYHVuZGVmaW5lZGAgZWxlbWVudC4K
KworICAgICAgICBUaGlzIHBhdGNoIGNvbXBsZXRlbHkgcmVtb3ZlcyBtX29wdGlvbmFsLCBzcGVl
ZGluZyB1cCBkZXN0cnVjdHVyaW5nIGFuZCBmdW5jdGlvbi5hcHBseSgpCisgICAgICAgIHdpdGgg
ZW1wdHkgYXJyYXlzIGFuZCBhcnJheXMgd2l0aCB0cmFpbGluZyBjb21tYXMgYnkgfjU1JSBhbmQg
YSBmYWN0b3Igb2YgMTEgcmVzcGVjdGl2ZWx5LgorICAgICAgICBSZWZsZWN0LmFwcGx5KCkgb3B0
aW1pemF0aW9uIChodHRwczovL3dlYmtpdC5vcmcvYi8xOTA2NjgpIHdpbGwgYWxzbyBiZW5lZml0
IGZyb20gdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgQWxzbywgdGhpcyBjaGFuZ2UgY29udmVydHMg
aXNTcHJlYWRFeHByZXNzaW9uKCkgY2hlY2sgdG8gYW4gQVNTRVJUICh3YXMgZW5hYmxlZCBieSBy
MTk2MzIzKS4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJy
YXktaW5pdGlhbGl6ZXIKKworICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
OgorICAgICAgICAoSlNDOjpBcnJheU5vZGU6OmlzU2ltcGxlQXJyYXkgY29uc3QpOgorICAgICAg
ICAoSlNDOjpBcnJheU5vZGU6OnRvQXJndW1lbnRMaXN0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6
QXJyYXlOb2RlOjplbWl0RGlyZWN0QmluZGluZyk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlOb2RlOjpBcnJheU5vZGUpOgorICAgICAg
ICAqIHBhcnNlci9Ob2Rlcy5oOgorCiAyMDIwLTA3LTIxICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJv
ICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXcgbm9uLXVuaWZpZWQgc291
cmNlIGJ1aWxkIGZpeApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMjY0NjYyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MDYsNyArNTA2LDcgQEAgaGFuZGxlU3ByZWFkOgogCiBib29sIEFycmF5Tm9kZTo6aXNT
aW1wbGVBcnJheSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZWxpc2lvbiB8fCBtX29wdGlvbmFsKQor
ICAgIGlmIChtX2VsaXNpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3IgKEVsZW1l
bnROb2RlKiBwdHIgPSBtX2VsZW1lbnQ7IHB0cjsgcHRyID0gcHRyLT5uZXh0KCkpIHsKICAgICAg
ICAgaWYgKHB0ci0+ZWxpc2lvbigpKQpAQCAtNTE5LDcgKzUxOSw3IEBAIGJvb2wgQXJyYXlOb2Rl
Ojppc1NpbXBsZUFycmF5KCkgY29uc3QKIAogQXJndW1lbnRMaXN0Tm9kZSogQXJyYXlOb2RlOjp0
b0FyZ3VtZW50TGlzdChQYXJzZXJBcmVuYSYgcGFyc2VyQXJlbmEsIGludCBsaW5lTnVtYmVyLCBp
bnQgc3RhcnRQb3NpdGlvbikgY29uc3QKIHsKLSAgICBBU1NFUlQoIW1fZWxpc2lvbiAmJiAhbV9v
cHRpb25hbCk7CisgICAgQVNTRVJUKCFtX2VsaXNpb24pOwogICAgIEVsZW1lbnROb2RlKiBwdHIg
PSBtX2VsZW1lbnQ7CiAgICAgaWYgKCFwdHIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NTEwNyw4ICs1MTA3LDcgQEAgUmVnaXN0ZXJJRCogQXJyYXlQYXR0ZXJuTm9kZTo6ZW1pdERpcmVj
dAogICAgIFZlY3RvcjxFeHByZXNzaW9uTm9kZSo+IGVsZW1lbnRzOwogICAgIGZvciAoOyBlbGVt
ZW50Tm9kZXM7IGVsZW1lbnROb2RlcyA9IGVsZW1lbnROb2Rlcy0+bmV4dCgpKSB7CiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiB2YWx1ZSA9IGVsZW1lbnROb2Rlcy0+dmFsdWUoKTsKLSAgICAgICAg
aWYgKHZhbHVlLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBBU1NFUlQoIXZhbHVlLT5pc1NwcmVhZEV4cHJlc3Npb24oKSk7CiAgICAg
ICAgIGVsZW1lbnRzLmFwcGVuZCh2YWx1ZSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAkocmV2aXNpb24gMjY0NjYy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyNiw3ICsyMjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2VsZW1lbnQobnVsbHB0cikK
ICAgICAgICAgLCBtX2VsaXNpb24oZWxpc2lvbikKLSAgICAgICAgLCBtX29wdGlvbmFsKHRydWUp
CiAgICAgewogICAgIH0KIApAQCAtMjM0LDcgKzIzMyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1fZWxlbWVudChlbGVt
ZW50KQogICAgICAgICAsIG1fZWxpc2lvbigwKQotICAgICAgICAsIG1fb3B0aW9uYWwoZmFsc2Up
CiAgICAgewogICAgIH0KIApAQCAtMjQyLDcgKzI0MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1fZWxlbWVudChlbGVt
ZW50KQogICAgICAgICAsIG1fZWxpc2lvbihlbGlzaW9uKQotICAgICAgICAsIG1fb3B0aW9uYWwo
dHJ1ZSkKICAgICB7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCShyZXZpc2lvbiAyNjQ2NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxNiw3ICs3MTYsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBFbGVtZW50Tm9kZSogbV9lbGVtZW50OwogICAgICAgICBpbnQgbV9lbGlzaW9u
OwotICAgICAgICBib29sIG1fb3B0aW9uYWw7CiAgICAgfTsKIAogICAgIGVudW0gY2xhc3MgQ2xh
c3NFbGVtZW50VGFnIDogdWludDhfdCB7IE5vLCBJbnN0YW5jZSwgU3RhdGljLCBMYXN0VGFnIH07
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>