<?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>214589</bug_id>
          
          <creation_ts>2020-07-21 05:11:02 -0700</creation_ts>
          <short_desc>REGRESSION(r264639): Intl.DisplayNames tests failing on all architectures</short_desc>
          <delta_ts>2020-07-24 08:05:20 -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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1673415</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 05:11:02 -0700</bug_when>
    <thetext>The new tests added in r264639 are failing in all architectures (aarch64, ppc64le, and s390x) on Red Hat&apos;s internal cloop CI. (x86_64 is currently broken due to bug #214491.)

Running stress/intl-displaynames.js.default
stress/intl-displaynames.js.default: Exception: Error: bad value: BZ
stress/intl-displaynames.js.default: shouldBe@intl-displaynames.js:4:24
stress/intl-displaynames.js.default: global code@intl-displaynames.js:47:13
stress/intl-displaynames.js.default: ERROR: Unexpected exit code: 3
FAIL: stress/intl-displaynames.js.default

Running stress/intl-parse-unicode-subtags.js.default
stress/intl-parse-unicode-subtags.js.default: Exception: Error: bad value: Simplified Chinese (Hong Kong SAR China)
stress/intl-parse-unicode-subtags.js.default: shouldBe@intl-parse-unicode-subtags.js:4:24
stress/intl-parse-unicode-subtags.js.default: global code@intl-parse-unicode-subtags.js:53:17
stress/intl-parse-unicode-subtags.js.default: ERROR: Unexpected exit code: 3
FAIL: stress/intl-parse-unicode-subtags.js.default

I&apos;ll haven&apos;t looked closely yet, but I suspect the test results are making assumptions about the ICU version in use. In the past, we&apos;ve had to work around these by modifying the test itself to expect multiple possibilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673427</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 06:27:42 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #0)
&gt; stress/intl-displaynames.js.default: Exception: Error: bad value: BZ

The test expects regionNames.of(&apos;BZ&apos;) to return &quot;Belize&quot; but it is returning &quot;BZ&quot; because HAVE_ICU_U_LOCALE_DISPLAY_NAMES requires ICU 61, but RHEL 8 uses ICU 60. I&apos;ll try updating the test to only run if ICU version is 61 or higher.

&gt; stress/intl-parse-unicode-subtags.js.default: Exception: Error: bad value:
&gt; Simplified Chinese (Hong Kong SAR China)

This one is simple enough. languageNames.of(&apos;zh-Hans-HK&apos;) used to return &quot;Simplified Chinese (Hong Kong SAR China)&quot; but now returns &quot;Chinese, Simplified (Hong Kong)&quot; so I&apos;ll try to make the test account for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673517</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 11:05:34 -0700</bug_when>
    <thetext>All of the affected code is guarded by:

if ($vm.icuVersion() &gt;= 61)

I&apos;ll continue to investigate.

Yusuke, you have in several places these guards:

if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)

Is this really intentional? ICU 64, 65, and 66 had different behavior, then ICU 67 switched back to the original behavior, in all of these different places?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673535</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 11:35:04 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
&gt; 
&gt; Is this really intentional? ICU 64, 65, and 66 had different behavior, then
&gt; ICU 67 switched back to the original behavior, in all of these different
&gt; places?

No, because on my host system with ICU 65.1, I see:

stress/intl-displaynames.js.default: Exception: Error: bad value: Traditional Chinese

The test would pass if not for the if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66) guard. I don&apos;t understand the purpose of this guard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673562</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 12:14:14 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #1)
&gt; The test expects regionNames.of(&apos;BZ&apos;) to return &quot;Belize&quot; but it is returning
&gt; &quot;BZ&quot; because HAVE_ICU_U_LOCALE_DISPLAY_NAMES requires ICU 61, but RHEL 8
&gt; uses ICU 60. 

I think our internal CI may be using some custom environment with a strange version of ICU. I&apos;ve asked to learn more. I thought it more likely that $vm.icuVersion() was returning a bogus result, but it seems to work perfectly fine on my desktop with ICU 65.1 (where it returns &quot;65&quot;).

Both these tests are broken on my desktop in addition to our CI. To make the tests pass, I had to do this:

diff --git a/JSTests/stress/intl-displaynames.js b/JSTests/stress/intl-displaynames.js
index ff15457fb37..d39437ac423 100644
--- a/JSTests/stress/intl-displaynames.js
+++ b/JSTests/stress/intl-displaynames.js
@@ -62,10 +62,7 @@ if ($vm.icuVersion() &gt;= 61) {
     shouldBe(languageNames.of(&apos;fr&apos;), &quot;French&quot;);
     shouldBe(languageNames.of(&apos;de&apos;), &quot;German&quot;);
     shouldBe(languageNames.of(&apos;fr-CA&apos;), &quot;Canadian French&quot;);
-    if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Chinese, Traditional&quot;);
-    else
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
+    shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
     shouldBe(languageNames.of(&apos;en-US&apos;), &quot;American English&quot;);
     shouldBe(languageNames.of(&apos;zh-TW&apos;), &quot;Chinese (Taiwan)&quot;);
 
@@ -79,10 +76,7 @@ if ($vm.icuVersion() &gt;= 61) {
     shouldBe(languageNames.of(&apos;fr&apos;), &quot;French&quot;);
     shouldBe(languageNames.of(&apos;de&apos;), &quot;German&quot;);
     shouldBe(languageNames.of(&apos;fr-CA&apos;), &quot;Canadian French&quot;);
-    if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Chinese, Traditional&quot;);
-    else
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
+    shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
     shouldBe(languageNames.of(&apos;en-US&apos;), &quot;US English&quot;);
     shouldBe(languageNames.of(&apos;zh-TW&apos;), &quot;Chinese (Taiwan)&quot;);
 
@@ -90,10 +84,7 @@ if ($vm.icuVersion() &gt;= 61) {
     shouldBe(languageNames.of(&apos;fr&apos;), &quot;French&quot;);
     shouldBe(languageNames.of(&apos;de&apos;), &quot;German&quot;);
     shouldBe(languageNames.of(&apos;fr-CA&apos;), &quot;Canadian French&quot;);
-    if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Chinese, Traditional&quot;);
-    else
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
+    shouldBe(languageNames.of(&apos;zh-Hant&apos;), &quot;Traditional Chinese&quot;);
     shouldBe(languageNames.of(&apos;en-US&apos;), &quot;US English&quot;);
     shouldBe(languageNames.of(&apos;zh-TW&apos;), &quot;Chinese (Taiwan)&quot;);

And:

diff --git a/JSTests/stress/intl-parse-unicode-subtags.js b/JSTests/stress/intl-parse-unicode-subtags.js
index f087cef4f28..997ade666f7 100644
--- a/JSTests/stress/intl-parse-unicode-subtags.js
+++ b/JSTests/stress/intl-parse-unicode-subtags.js
@@ -45,13 +45,8 @@ if ($vm.icuVersion() &gt;= 61) {
     shouldThrow(() =&gt; languageNames.of(&quot;root-US&quot;), `RangeError: argument is not a language id`);
     if ($vm.icuVersion() &gt;= 64)
         shouldBe(languageNames.of(&quot;es-419&quot;), `Latin American Spanish`);
-    if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66) {
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), `Chinese, Traditional`);
-        shouldBe(languageNames.of(&apos;zh-Hans-HK&apos;), `Chinese, Simplified (Hong Kong)`);
-    } else {
-        shouldBe(languageNames.of(&apos;zh-Hant&apos;), `Traditional Chinese`);
-        shouldBe(languageNames.of(&apos;zh-Hans-HK&apos;), `Simplified Chinese (Hong Kong)`);
-    }
+    shouldBe(languageNames.of(&apos;zh-Hant&apos;), `Traditional Chinese`);
+    shouldBe(languageNames.of(&apos;zh-Hans-HK&apos;), `Simplified Chinese (Hong Kong)`);
     shouldThrow(() =&gt; languageNames.of(&quot;Hant&quot;), `RangeError: argument is not a language id`); // Script only
     shouldBe(languageNames.of(&apos;sr-Latn&apos;), `Serbian (Latin)`); // Language-Script
     shouldBe(languageNames.of(&apos;sr-Cyrl&apos;), `Serbian (Cyrillic)`); // Language-Script</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673640</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-21 15:25:57 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; (In reply to Michael Catanzaro from comment #2)
&gt; &gt; if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
&gt; &gt; 
&gt; &gt; Is this really intentional? ICU 64, 65, and 66 had different behavior, then
&gt; &gt; ICU 67 switched back to the original behavior, in all of these different
&gt; &gt; places?
&gt; 
&gt; No, because on my host system with ICU 65.1, I see:
&gt; 
&gt; stress/intl-displaynames.js.default: Exception: Error: bad value:
&gt; Traditional Chinese
&gt; 
&gt; The test would pass if not for the if ($vm.icuVersion() &gt;= 64 &amp;&amp;
&gt; $vm.icuVersion() &lt;= 66) guard. I don&apos;t understand the purpose of this guard.

This is because ICU 64 and ICU 66 have different outputs for these strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673661</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-21 16:22:02 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #5)
&gt; This is because ICU 64 and ICU 66 have different outputs for these strings.

But your condition is:

if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)

This implies that there are two sets of behavior:

 * One behavior for ICU 63 and earlier and for ICU 67 and later
 * One behavior for ICU 64, 65, and 66 alone

That is, it implies that the behavior changed in ICU 64, then changed back to the way it was before in ICU 67. This seems unlikely. Did you intend to write the conditions that way?

Also, because I&apos;m seeing &quot;Traditional Chinese&quot; and &quot;Simplified Chinese (Hong Kong)&quot; with ICU 65, not &quot;Chinese, Traditional&quot; and &quot;Chinese, Simplified (Hong Kong)&quot;, I know the check cannot be right. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673663</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-21 16:31:12 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; (In reply to Yusuke Suzuki from comment #5)
&gt; &gt; This is because ICU 64 and ICU 66 have different outputs for these strings.
&gt; 
&gt; But your condition is:
&gt; 
&gt; if ($vm.icuVersion() &gt;= 64 &amp;&amp; $vm.icuVersion() &lt;= 66)
&gt; 
&gt; This implies that there are two sets of behavior:
&gt; 
&gt;  * One behavior for ICU 63 and earlier and for ICU 67 and later
&gt;  * One behavior for ICU 64, 65, and 66 alone
&gt; 
&gt; That is, it implies that the behavior changed in ICU 64, then changed back
&gt; to the way it was before in ICU 67. This seems unlikely. Did you intend to
&gt; write the conditions that way?
&gt; 
&gt; Also, because I&apos;m seeing &quot;Traditional Chinese&quot; and &quot;Simplified Chinese (Hong
&gt; Kong)&quot; with ICU 65, not &quot;Chinese, Traditional&quot; and &quot;Chinese, Simplified
&gt; (Hong Kong)&quot;, I know the check cannot be right. :)

Yeah, IIRC, I tested 61, 64, 66, and 67. And 64 and 66 shows the same behavior while 61 and 67 shows the same behavior. So I putted &gt;= 64 and &lt;= 66. If 65 has different behavior, please add it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673819</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-22 08:00:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; I think our internal CI may be using some custom environment with a strange
&gt; version of ICU. I&apos;ve asked to learn more.

Turns out it&apos;s running Fedora 31, which has ICU 63. Surprise for me.

So in summary, you have tested ICU 61, 64, 66, and 67, while I&apos;ve tested ICU 63 and 65. You found ICU 61 and 67 print &quot;Traditional Chinese&quot; while ICU 64 and 66 print &quot;Chinese, Traditional&quot;. Meanwhile, I found that both ICU 63 and 65 print &quot;Traditional Chinese&quot;.

Conclusion: odd-numbered versions use &quot;Traditional Chinese&quot; while even-numbered versions use &quot;Chinese, Traditional&quot; so we need only check $vm.icuVersion() % 2 :D

More seriously, I&apos;ll guess the behavior has maybe been changed in minor release versions, but I&apos;ve failed to find any relevant commit in the ICU git repo. Probably I&apos;ll try to make the test work either way without checking the version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674407</commentid>
    <comment_count>9</comment_count>
      <attachid>405083</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-23 15:16:27 -0700</bug_when>
    <thetext>Created attachment 405083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674434</commentid>
    <comment_count>10</comment_count>
      <attachid>405083</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-23 15:57:10 -0700</bug_when>
    <thetext>Comment on attachment 405083
Patch

Great to do this for now. Later, we should reflect on how OK we are with all of this poor behavior in new WebKit with old ICU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674444</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-23 16:07:57 -0700</bug_when>
    <thetext>FWIW I would say that new internationalization features are just not expected to work with old versions of ICU. Nothing wrong with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674446</commentid>
    <comment_count>12</comment_count>
      <attachid>405083</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-07-23 16:08:58 -0700</bug_when>
    <thetext>Comment on attachment 405083
Patch

I got a bit eager here, let&apos;s wait for the remaining JSC EWS, just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674638</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-24 08:04:43 -0700</bug_when>
    <thetext>Committed r264823: &lt;https://trac.webkit.org/changeset/264823&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405083.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674639</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-24 08:05:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/66053870&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405083</attachid>
            <date>2020-07-23 15:16:27 -0700</date>
            <delta_ts>2020-07-24 08:04:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214589-20200723171626.patch</filename>
            <type>text/plain</type>
            <size>8510</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NjYzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQxMjE3YjI0MGVmMGFhZjAwOTVmMjBlYjAwNmMy
MDQwNDliZmY1ZGMuLjdmNTRkODI0NTUxOWZhZGFmOTllMTEyNGUzODFhMDM2ZWFkMmFmZDkgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMjAtMDctMjMgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjY0NjM5KTogSW50bC5EaXNwbGF5TmFt
ZXMgdGVzdHMgZmFpbGluZyBvbiBhbGwgYXJjaGl0ZWN0dXJlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NTg5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFzc2FnZSB0aGUgdGVzdHMgZm9yIGNvbXBh
dGliaWxpdHkgd2l0aCBJQ1UgNjMuMS4gSSBkb24ndCB1bmRlcnN0YW5kIGhvdyBleGFjdGx5IElD
VSdzCisgICAgICAgIGJlaGF2aW9yIGhhcyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMsIGFuZCBz
b21lIG9mIHRoZSBjb25kaXRpb25zIG5lZWQgdG8gYmUgYWRkZWQgaW4KKyAgICAgICAgc29tZXdo
YXQgc3RyYW5nZSBwbGFjZXMsIGJ1dCB0aGlzIGF0IGxlYXN0IG1ha2VzIHRoZSB0ZXN0cyBwYXNz
LgorCisgICAgICAgICogc3RyZXNzL2ludGwtZGlzcGxheW5hbWVzLmpzOgorICAgICAgICAodm0u
aWN1VmVyc2lvbik6CisgICAgICAgICogc3RyZXNzL2ludGwtcGFyc2UtdW5pY29kZS1zdWJ0YWdz
LmpzOgorICAgICAgICAodm0uaWN1VmVyc2lvbik6CisKIDIwMjAtMDctMjAgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbRUNNQS00MDJdIEltcGxlbWVudCBJ
bnRsLkRpc3BsYXlOYW1lcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1kaXNwbGF5
bmFtZXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRpc3BsYXluYW1lcy5qcwppbmRleCBmZjE1
NDU3ZmIzN2RlOWQ2NThlYTc4N2MwOGJhZTI4M2QxZDYzOGMyLi44OWIzMzc1NDliZDM5ZTYwNGU0
OTNiZTkwOTQ2Y2Q4YWIxOTNiZjNmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRp
c3BsYXluYW1lcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRpc3BsYXluYW1lcy5qcwpA
QCAtMjUsMzQgKzI1LDM4IEBAIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDYxKSB7CiAKICAgICAv
LyBHZXQgZGlzcGxheSBuYW1lcyBvZiByZWdpb24gaW4gRW5nbGlzaAogICAgIHZhciByZWdpb25O
YW1lcyA9IG5ldyBJbnRsLkRpc3BsYXlOYW1lcyhbJ2VuJ10sIHt0eXBlOiAncmVnaW9uJ30pOwot
ICAgIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDY0KQorICAgIGlmICgkdm0uaWN1VmVyc2lvbigp
ID49IDY0KSB7CiAgICAgICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVzLm9mKCc0MTknKSwgIkxhdGlu
IEFtZXJpY2EiKTsKLSAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignQlonKSwgIkJlbGl6ZSIp
OworICAgICAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignQlonKSwgIkJlbGl6ZSIpOworICAg
IH0KICAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignVVMnKSwgIlVuaXRlZCBTdGF0ZXMiKTsK
ICAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignQkEnKSwgIkJvc25pYSAmIEhlcnplZ292aW5h
Iik7CiAgICAgc2hvdWxkQmUocmVnaW9uTmFtZXMub2YoJ01NJyksICJNeWFubWFyIChCdXJtYSki
KTsKIAogICAgIC8vIEdldCBkaXNwbGF5IG5hbWVzIG9mIHJlZ2lvbiBpbiBUcmFkaXRpb25hbCBD
aGluZXNlCiAgICAgcmVnaW9uTmFtZXMgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoWyd6aC1IYW50
J10sIHt0eXBlOiAncmVnaW9uJ30pOwotICAgIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDY0KQor
ICAgIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDY0KSB7CiAgICAgICAgIHNob3VsZEJlKHJlZ2lv
bk5hbWVzLm9mKCc0MTknKSwgIuaLieS4gee+jua0siIpOwotICAgIHNob3VsZEJlKHJlZ2lvbk5h
bWVzLm9mKCdCWicpLCAi6LKd6YeM5pavIik7CisgICAgICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVz
Lm9mKCdCWicpLCAi6LKd6YeM5pavIik7CisgICAgfQogICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVz
Lm9mKCdVUycpLCAi576O5ZyLIik7CiAgICAgc2hvdWxkQmUocmVnaW9uTmFtZXMub2YoJ0JBJyks
ICLms6Llo6vlsLzkup7oiIfotavloZ7lk6Xntq3ntI0iKTsKICAgICBzaG91bGRCZShyZWdpb25O
YW1lcy5vZignTU0nKSwgIue3rOeUuCIpOwogCiAgICAgcmVnaW9uTmFtZXMgPSBuZXcgSW50bC5E
aXNwbGF5TmFtZXMoWydlbiddLCB7dHlwZTogJ3JlZ2lvbicsIHN0eWxlOiAnc2hvcnQnfSk7Ci0g
ICAgaWYgKCR2bS5pY3VWZXJzaW9uKCkgPj0gNjQpCisgICAgaWYgKCR2bS5pY3VWZXJzaW9uKCkg
Pj0gNjQpIHsKICAgICAgICAgc2hvdWxkQmUocmVnaW9uTmFtZXMub2YoJzQxOScpLCAiTGF0aW4g
QW1lcmljYSIpOwotICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVzLm9mKCdCWicpLCAiQmVsaXplIik7
CisgICAgICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVzLm9mKCdCWicpLCAiQmVsaXplIik7CisgICAg
fQogICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVzLm9mKCdVUycpLCAiVVMiKTsKICAgICBzaG91bGRC
ZShyZWdpb25OYW1lcy5vZignQkEnKSwgIkJvc25pYSIpOwogICAgIHNob3VsZEJlKHJlZ2lvbk5h
bWVzLm9mKCdNTScpLCAiTXlhbm1hciIpOwogCiAgICAgcmVnaW9uTmFtZXMgPSBuZXcgSW50bC5E
aXNwbGF5TmFtZXMoWydlbiddLCB7dHlwZTogJ3JlZ2lvbicsIHN0eWxlOiAnbmFycm93J30pOwot
ICAgIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDY0KQorICAgIGlmICgkdm0uaWN1VmVyc2lvbigp
ID49IDY0KSB7CiAgICAgICAgIHNob3VsZEJlKHJlZ2lvbk5hbWVzLm9mKCc0MTknKSwgIkxhdGlu
IEFtZXJpY2EiKTsKLSAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignQlonKSwgIkJlbGl6ZSIp
OworICAgICAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignQlonKSwgIkJlbGl6ZSIpOworICAg
IH0KICAgICBzaG91bGRCZShyZWdpb25OYW1lcy5vZignVVMnKSwgIlVTIik7CiAgICAgc2hvdWxk
QmUocmVnaW9uTmFtZXMub2YoJ0JBJyksICJCb3NuaWEiKTsKICAgICBzaG91bGRCZShyZWdpb25O
YW1lcy5vZignTU0nKSwgIk15YW5tYXIiKTsKQEAgLTYyLDkgKzY2LDcgQEAgaWYgKCR2bS5pY3VW
ZXJzaW9uKCkgPj0gNjEpIHsKICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCdmcicpLCAi
RnJlbmNoIik7CiAgICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZignZGUnKSwgIkdlcm1hbiIp
OwogICAgIHNob3VsZEJlKGxhbmd1YWdlTmFtZXMub2YoJ2ZyLUNBJyksICJDYW5hZGlhbiBGcmVu
Y2giKTsKLSAgICBpZiAoJHZtLmljdVZlcnNpb24oKSA+PSA2NCAmJiAkdm0uaWN1VmVyc2lvbigp
IDw9IDY2KQotICAgICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1IYW50JyksICJD
aGluZXNlLCBUcmFkaXRpb25hbCIpOwotICAgIGVsc2UKKyAgICBpZiAobGFuZ3VhZ2VOYW1lcy5v
ZignemgtSGFudCcpICE9PSAiQ2hpbmVzZSwgVHJhZGl0aW9uYWwiKQogICAgICAgICBzaG91bGRC
ZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1IYW50JyksICJUcmFkaXRpb25hbCBDaGluZXNlIik7CiAg
ICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZignZW4tVVMnKSwgIkFtZXJpY2FuIEVuZ2xpc2gi
KTsKICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1UVycpLCAiQ2hpbmVzZSAoVGFp
d2FuKSIpOwpAQCAtNzksMjggKzgxLDI3IEBAIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDYxKSB7
CiAgICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZignZnInKSwgIkZyZW5jaCIpOwogICAgIHNo
b3VsZEJlKGxhbmd1YWdlTmFtZXMub2YoJ2RlJyksICJHZXJtYW4iKTsKICAgICBzaG91bGRCZShs
YW5ndWFnZU5hbWVzLm9mKCdmci1DQScpLCAiQ2FuYWRpYW4gRnJlbmNoIik7Ci0gICAgaWYgKCR2
bS5pY3VWZXJzaW9uKCkgPj0gNjQgJiYgJHZtLmljdVZlcnNpb24oKSA8PSA2NikKLSAgICAgICAg
c2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZignemgtSGFudCcpLCAiQ2hpbmVzZSwgVHJhZGl0aW9u
YWwiKTsKLSAgICBlbHNlCisgICAgaWYgKGxhbmd1YWdlTmFtZXMub2YoJ3poLUhhbnQnKSAhPT0g
IkNoaW5lc2UsIFRyYWRpdGlvbmFsIikKICAgICAgICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5v
ZignemgtSGFudCcpLCAiVHJhZGl0aW9uYWwgQ2hpbmVzZSIpOwogICAgIHNob3VsZEJlKGxhbmd1
YWdlTmFtZXMub2YoJ2VuLVVTJyksICJVUyBFbmdsaXNoIik7Ci0gICAgc2hvdWxkQmUobGFuZ3Vh
Z2VOYW1lcy5vZignemgtVFcnKSwgIkNoaW5lc2UgKFRhaXdhbikiKTsKKyAgICBpZiAobGFuZ3Vh
Z2VOYW1lcy5vZignemgtVFcnKSAhPT0gIkNoaW5lc2UgKFRXKSIpCisgICAgICAgIHNob3VsZEJl
KGxhbmd1YWdlTmFtZXMub2YoJ3poLVRXJyksICJDaGluZXNlIChUYWl3YW4pIik7CiAKICAgICBs
YW5ndWFnZU5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFsnZW4nXSwge3R5cGU6ICdsYW5n
dWFnZScsIHN0eWxlOiAnbmFycm93J30pOwogICAgIHNob3VsZEJlKGxhbmd1YWdlTmFtZXMub2Yo
J2ZyJyksICJGcmVuY2giKTsKICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCdkZScpLCAi
R2VybWFuIik7CiAgICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZignZnItQ0EnKSwgIkNhbmFk
aWFuIEZyZW5jaCIpOwotICAgIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDY0ICYmICR2bS5pY3VW
ZXJzaW9uKCkgPD0gNjYpCi0gICAgICAgIHNob3VsZEJlKGxhbmd1YWdlTmFtZXMub2YoJ3poLUhh
bnQnKSwgIkNoaW5lc2UsIFRyYWRpdGlvbmFsIik7Ci0gICAgZWxzZQorICAgIGlmIChsYW5ndWFn
ZU5hbWVzLm9mKCd6aC1IYW50JykgIT09ICJDaGluZXNlLCBUcmFkaXRpb25hbCIpCiAgICAgICAg
IHNob3VsZEJlKGxhbmd1YWdlTmFtZXMub2YoJ3poLUhhbnQnKSwgIlRyYWRpdGlvbmFsIENoaW5l
c2UiKTsKICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCdlbi1VUycpLCAiVVMgRW5nbGlz
aCIpOwotICAgIHNob3VsZEJlKGxhbmd1YWdlTmFtZXMub2YoJ3poLVRXJyksICJDaGluZXNlIChU
YWl3YW4pIik7CisgICAgaWYgKGxhbmd1YWdlTmFtZXMub2YoJ3poLVRXJykgIT09ICJDaGluZXNl
IChUVykiKQorICAgICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1UVycpLCAiQ2hp
bmVzZSAoVGFpd2FuKSIpOwogCiAgICAgLy8gR2V0IGRpc3BsYXkgbmFtZXMgb2Ygc2NyaXB0IGlu
IEVuZ2xpc2gKICAgICB2YXIgc2NyaXB0TmFtZXMgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoWydl
biddLCB7dHlwZTogJ3NjcmlwdCd9KTsKICAgICAvLyBHZXQgc2NyaXB0IG5hbWVzCi0gICAgc2hv
dWxkQmUoc2NyaXB0TmFtZXMub2YoJ0xhdG4nKSwgIkxhdGluIik7CisgICAgaWYgKCR2bS5pY3VW
ZXJzaW9uKCkgPj0gNjQpCisgICAgICAgIHNob3VsZEJlKHNjcmlwdE5hbWVzLm9mKCdMYXRuJyks
ICJMYXRpbiIpOwogICAgIHNob3VsZEJlKHNjcmlwdE5hbWVzLm9mKCdBcmFiJyksICJBcmFiaWMi
KTsKICAgICBzaG91bGRCZShzY3JpcHROYW1lcy5vZignS2FuYScpLCAiS2F0YWthbmEiKTsKIApA
QCAtMTEwLDE1ICsxMTEsMTcgQEAgaWYgKCR2bS5pY3VWZXJzaW9uKCkgPj0gNjEpIHsKICAgICBz
aG91bGRCZShzY3JpcHROYW1lcy5vZignQXJhYicpLCAi6Zi/5ouJ5Lyv5paHIik7CiAgICAgc2hv
dWxkQmUoc2NyaXB0TmFtZXMub2YoJ0thbmEnKSwgIueJh+WBh+WQjSIpOwogCi0gICAgc2NyaXB0
TmFtZXMgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoWydlbiddLCB7dHlwZTogJ3NjcmlwdCcsIHN0
eWxlOiAnc2hvcnQnfSk7Ci0gICAgc2hvdWxkQmUoc2NyaXB0TmFtZXMub2YoJ0xhdG4nKSwgIkxh
dGluIik7Ci0gICAgc2hvdWxkQmUoc2NyaXB0TmFtZXMub2YoJ0FyYWInKSwgIkFyYWJpYyIpOwot
ICAgIHNob3VsZEJlKHNjcmlwdE5hbWVzLm9mKCdLYW5hJyksICJLYXRha2FuYSIpOworICAgIGlm
ICgkdm0uaWN1VmVyc2lvbigpID49IDY0KSB7CisgICAgICAgIHNjcmlwdE5hbWVzID0gbmV3IElu
dGwuRGlzcGxheU5hbWVzKFsnZW4nXSwge3R5cGU6ICdzY3JpcHQnLCBzdHlsZTogJ3Nob3J0J30p
OworICAgICAgICBzaG91bGRCZShzY3JpcHROYW1lcy5vZignTGF0bicpLCAiTGF0aW4iKTsKKyAg
ICAgICAgc2hvdWxkQmUoc2NyaXB0TmFtZXMub2YoJ0FyYWInKSwgIkFyYWJpYyIpOworICAgICAg
ICBzaG91bGRCZShzY3JpcHROYW1lcy5vZignS2FuYScpLCAiS2F0YWthbmEiKTsKIAotICAgIHNj
cmlwdE5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFsnZW4nXSwge3R5cGU6ICdzY3JpcHQn
LCBzdHlsZTogJ25hcnJvdyd9KTsKLSAgICBzaG91bGRCZShzY3JpcHROYW1lcy5vZignTGF0bicp
LCAiTGF0aW4iKTsKLSAgICBzaG91bGRCZShzY3JpcHROYW1lcy5vZignQXJhYicpLCAiQXJhYmlj
Iik7Ci0gICAgc2hvdWxkQmUoc2NyaXB0TmFtZXMub2YoJ0thbmEnKSwgIkthdGFrYW5hIik7Cisg
ICAgICAgIHNjcmlwdE5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFsnZW4nXSwge3R5cGU6
ICdzY3JpcHQnLCBzdHlsZTogJ25hcnJvdyd9KTsKKyAgICAgICAgc2hvdWxkQmUoc2NyaXB0TmFt
ZXMub2YoJ0xhdG4nKSwgIkxhdGluIik7CisgICAgICAgIHNob3VsZEJlKHNjcmlwdE5hbWVzLm9m
KCdBcmFiJyksICJBcmFiaWMiKTsKKyAgICAgICAgc2hvdWxkQmUoc2NyaXB0TmFtZXMub2YoJ0th
bmEnKSwgIkthdGFrYW5hIik7CisgICAgfQogCiAgICAgLy8gR2V0IGRpc3BsYXkgbmFtZXMgb2Yg
Y3VycmVuY3kgY29kZSBpbiBFbmdsaXNoCiAgICAgdmFyIGN1cnJlbmN5TmFtZXMgPSBuZXcgSW50
bC5EaXNwbGF5TmFtZXMoWydlbiddLCB7dHlwZTogJ2N1cnJlbmN5J30pOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1wYXJzZS11bmljb2RlLXN1YnRhZ3MuanMgYi9KU1Rlc3RzL3N0
cmVzcy9pbnRsLXBhcnNlLXVuaWNvZGUtc3VidGFncy5qcwppbmRleCBmMDg3Y2VmNGYyOGQzNDI2
ZDU3YWIzOTBjZTY1MmU4ODRmNzcwNjQ4Li4xNWZhZGJmYWZjMTJjNGZiZWE2MDZkMmNmMmVkMWE4
MDViZWRiM2M0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBhcnNlLXVuaWNvZGUt
c3VidGFncy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLXBhcnNlLXVuaWNvZGUtc3VidGFn
cy5qcwpAQCAtNDUsMTMgKzQ1LDEwIEBAIGlmICgkdm0uaWN1VmVyc2lvbigpID49IDYxKSB7CiAg
ICAgc2hvdWxkVGhyb3coKCkgPT4gbGFuZ3VhZ2VOYW1lcy5vZigicm9vdC1VUyIpLCBgUmFuZ2VF
cnJvcjogYXJndW1lbnQgaXMgbm90IGEgbGFuZ3VhZ2UgaWRgKTsKICAgICBpZiAoJHZtLmljdVZl
cnNpb24oKSA+PSA2NCkKICAgICAgICAgc2hvdWxkQmUobGFuZ3VhZ2VOYW1lcy5vZigiZXMtNDE5
IiksIGBMYXRpbiBBbWVyaWNhbiBTcGFuaXNoYCk7Ci0gICAgaWYgKCR2bS5pY3VWZXJzaW9uKCkg
Pj0gNjQgJiYgJHZtLmljdVZlcnNpb24oKSA8PSA2NikgewotICAgICAgICBzaG91bGRCZShsYW5n
dWFnZU5hbWVzLm9mKCd6aC1IYW50JyksIGBDaGluZXNlLCBUcmFkaXRpb25hbGApOwotICAgICAg
ICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1IYW5zLUhLJyksIGBDaGluZXNlLCBTaW1w
bGlmaWVkIChIb25nIEtvbmcpYCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAobGFuZ3VhZ2VOYW1l
cy5vZignemgtSGFudCcpICE9PSBgQ2hpbmVzZSwgVHJhZGl0aW9uYWxgKQogICAgICAgICBzaG91
bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1IYW50JyksIGBUcmFkaXRpb25hbCBDaGluZXNlYCk7
CisgICAgaWYgKGxhbmd1YWdlTmFtZXMub2YoJ3poLUhhbnMtSEsnKSAhPT0gYENoaW5lc2UsIFNp
bXBsaWZpZWQgKEhvbmcgS29uZylgICYmIGxhbmd1YWdlTmFtZXMub2YoJ3poLUhhbnMtSEsnKSAh
PT0gYFNpbXBsaWZpZWQgQ2hpbmVzZSAoSG9uZyBLb25nIFNBUiBDaGluYSlgKQogICAgICAgICBz
aG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCd6aC1IYW5zLUhLJyksIGBTaW1wbGlmaWVkIENoaW5l
c2UgKEhvbmcgS29uZylgKTsKLSAgICB9CiAgICAgc2hvdWxkVGhyb3coKCkgPT4gbGFuZ3VhZ2VO
YW1lcy5vZigiSGFudCIpLCBgUmFuZ2VFcnJvcjogYXJndW1lbnQgaXMgbm90IGEgbGFuZ3VhZ2Ug
aWRgKTsgLy8gU2NyaXB0IG9ubHkKICAgICBzaG91bGRCZShsYW5ndWFnZU5hbWVzLm9mKCdzci1M
YXRuJyksIGBTZXJiaWFuIChMYXRpbilgKTsgLy8gTGFuZ3VhZ2UtU2NyaXB0CiAgICAgc2hvdWxk
QmUobGFuZ3VhZ2VOYW1lcy5vZignc3ItQ3lybCcpLCBgU2VyYmlhbiAoQ3lyaWxsaWMpYCk7IC8v
IExhbmd1YWdlLVNjcmlwdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>