<?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>213007</bug_id>
          
          <creation_ts>2020-06-09 20:36:04 -0700</creation_ts>
          <short_desc>REGRESSION(r260697): [Intl] &quot;missing script&quot; locales like zh-TW are no longer mapped</short_desc>
          <delta_ts>2020-06-12 13:56:47 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</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>1661066</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-09 20:36:04 -0700</bug_when>
    <thetext>REGRESSION(r260697): [Intl] &quot;&quot;missing script&quot; locales like zh-TW are no longer mapped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661070</commentid>
    <comment_count>1</comment_count>
      <attachid>401510</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-09 20:57:23 -0700</bug_when>
    <thetext>Created attachment 401510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661239</commentid>
    <comment_count>2</comment_count>
      <attachid>401510</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-10 11:17:29 -0700</bug_when>
    <thetext>Comment on attachment 401510
Patch

Not thrilled that the test coverage exactly matches our hard-coded exception list. Is there a way to figure out what is expected and desired and make a broader test, even if some of the less important cases fail at this time?

Generally not thrilled with tests that only test the positive cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661240</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-10 11:17:47 -0700</bug_when>
    <thetext>Is there a reason this isn’t covered in Web Platform Tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661300</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-10 12:49:47 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 401510 [details]
&gt; Patch
&gt; 
&gt; Not thrilled that the test coverage exactly matches our hard-coded exception
&gt; list. Is there a way to figure out what is expected and desired and make a
&gt; broader test, even if some of the less important cases fail at this time?
&gt; 
&gt; Generally not thrilled with tests that only test the positive cases.

Like the ChangeLog indicates, there&apos;s an ongoing discussion about what the right set of locales here should be (since SpiderMonkey has the same hardcoded list):
https://github.com/tc39/ecma402/issues/159

I got worried about sitting on this regression for too long (because not a few users will be upset if a mainline release goes out this way) so this is just meant as a partial revert, but I also figured that not adding a test would be a bad look.

That said, I think my comment that &quot;we can&apos;t just add xx-ZZ for every available xx-Yyyy-ZZ locale&quot; may be wrong. Just because ICU4C doesn&apos;t have an explicit xx-ZZ available doesn&apos;t mean that it won&apos;t fall back properly. I should try this general approach after all.

(In reply to Darin Adler from comment #3)
&gt; Is there a reason this isn’t covered in Web Platform Tests?

It should be covered in test262 pending the resolution of the above discussion. (There are some tests indirectly assuming that zh-TW is a Hant locale, but...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661438</commentid>
    <comment_count>5</comment_count>
      <attachid>401605</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-10 16:59:08 -0700</bug_when>
    <thetext>Created attachment 401605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661445</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-10 17:04:54 -0700</bug_when>
    <thetext>Uploaded a new version which keeps the regression test but doesn&apos;t use a hardcoded locale list.

I think this is better but I hope I&apos;m doing the createStaticStringImpl part correctly; we&apos;re still filling a NeverDestroyed&lt;HashSet&lt;String&gt;&gt; but now some of these are of our own creation (and some duplicate adds will occur).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661452</commentid>
    <comment_count>7</comment_count>
      <attachid>401605</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-10 17:15:30 -0700</bug_when>
    <thetext>Comment on attachment 401605
Patch

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

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:197
&gt; +    Vector&lt;StringView&gt; subtags;

Make this Vector&lt;StringView, 3&gt; to avoid one memory allocation.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:198
&gt; +    for (auto subtag : locale.splitAllowingEmptyEntries(&apos;-&apos;)) 

Do you really want the &quot;allowing empty entries&quot; version? Seems wrong to me.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:199
&gt; +        subtags.append(subtag);

To cut down memory allocation a bit more, write:

    if (subtags.size() &gt;= 3)
        return;

Before the call to append.

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:211
&gt; +    Vector&lt;char, 12&gt; buffer;
&gt; +    ASSERT(subtags[0].is8Bit() &amp;&amp; subtags[0].isAllASCII());
&gt; +    buffer.append(reinterpret_cast&lt;const char*&gt;(subtags[0].characters8()), subtags[0].length());
&gt; +    buffer.append(&apos;-&apos;);
&gt; +    ASSERT(subtags[2].is8Bit() &amp;&amp; subtags[2].isAllASCII());
&gt; +    buffer.append(reinterpret_cast&lt;const char*&gt;(subtags[2].characters8()), subtags[2].length());
&gt; +
&gt; +    availableLocales.add(StringImpl::createStaticStringImpl(buffer.data(), buffer.size()));

If it wasn’t for this StaticString thing, we could get rid of all those asserts and just write:

    availableLocales.add(makeString(subtags[0], &apos;-&apos;, subtags[2]);

But, as last time, I don’t really understand why StaticString is important here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661458</commentid>
    <comment_count>8</comment_count>
      <attachid>401609</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-10 17:39:48 -0700</bug_when>
    <thetext>Created attachment 401609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661477</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-10 19:20:55 -0700</bug_when>
    <thetext>Committed r262890: &lt;https://trac.webkit.org/changeset/262890&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401609.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661478</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-10 19:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/64235612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661777</commentid>
    <comment_count>11</comment_count>
      <attachid>401609</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-11 16:06:08 -0700</bug_when>
    <thetext>Comment on attachment 401609
Patch

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

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:204
&gt; +    if (subtags.size() &lt; 3 || subtags[1].length() != 4 || subtags[2].length() &gt; 3)

Realized that this should be &quot;!= 3&quot; rather than &quot;&lt; 3&quot; for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662096</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-12 12:37:32 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; Comment on attachment 401609 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401609&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/IntlObject.cpp:204
&gt; &gt; +    if (subtags.size() &lt; 3 || subtags[1].length() != 4 || subtags[2].length() &gt; 3)
&gt; 
&gt; Realized that this should be &quot;!= 3&quot; rather than &quot;&lt; 3&quot; for clarity.

Hmm, I changed this from `!=` to `&lt;` when I added the loop-internal early out you suggested, aiming to underscore the fact that we&apos;d be gone already if we tried to grow beyond 3. I can switch it if it&apos;s inadvertently confusing though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662129</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-12 13:42:00 -0700</bug_when>
    <thetext>I think the narrower condition is simply easier to understand and more logical.

From a &quot;policy&quot; point of view, we only want to run the code below if the size is exactly 3, and thus that’s what the code should say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662140</commentid>
    <comment_count>14</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-12 13:56:47 -0700</bug_when>
    <thetext>Works for me.

Committed r262974: &lt;https://trac.webkit.org/changeset/262974&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401510</attachid>
            <date>2020-06-09 20:57:23 -0700</date>
            <delta_ts>2020-06-10 17:39:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213007-20200609205722.patch</filename>
            <type>text/plain</type>
            <size>5487</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2NmY4MGFlYzk3OWM0YTYxYjUzMTJmZjgzOTE4MmJlZTEzMzJlLi5kZTIwNjY4YjhkMTVkMDdl
ODY0NWIzN2RlNDRlZjEwYTdmMDAyMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wNi0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYwNjk3KTogW0ludGxdICJtaXNzaW5nIHNj
cmlwdCIgbG9jYWxlcyBsaWtlIHpoLVRXIGFyZSBubyBsb25nZXIgbWFwcGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMwMDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGRNaXNzaW5nU2NyaXB0TG9j
YWxlcyB3YXMgcmVtb3ZlZCBmcm9tIEludGxPYmplY3Qgd2hlbiBjaGFuZ2luZyBvdXIgbG9jYWxl
IHJlc29sdXRpb24gdG8gZGVwZW5kIG1vcmUgZGlyZWN0bHkKKyAgICAgICAgb24gSUNVLCBidXQg
YXBwYXJlbnRseSBldmVuIGxhdGVzdCBJQ1Ugd29uJ3QgcGVyZm9ybSB0aGlzIGxlZ2FjeSAicmVn
aW9uIGltcGxpZXMgc2NyaXB0IiBtYXBwaW5nIGZvciB1cy4KKworICAgICAgICBJQ1UgNjUrIGRv
ZXMgaGF2ZSB1bG9jX29wZW5BdmFpbGFibGVCeVR5cGUgd2hpY2ggd2lsbCBkbyB0aGUgdHJpY2ss
IHNvIHBlcmhhcHMgd2Ugc2hvdWxkIHVzZSB0aGlzIGluIHRoZSBmdXR1cmUsCisgICAgICAgIGJ1
dCBpdCBzdGlsbCBkb2Vzbid0IHNlZW0gdG8gaGVscCB1cyB3aXRoIENvbGxhdG9yLCB3aGljaCBo
YXMgaXRzIG93biBzZXBhcmF0ZSBzZXQgb2YgImF2YWlsYWJsZSBsb2NhbGVzIi4KKworICAgICAg
ICBGdXJ0aGVybW9yZSwgd2UgY2FuJ3QganVzdCBhZGQgeHgtWlogZm9yIGV2ZXJ5IGF2YWlsYWJs
ZSB4eC1ZeXl5LVpaIGxvY2FsZSwgYXMgbm90IGFsbCBvZiB0aG9zZSBhbGlhc2VzIGV4aXN0Lgor
CisgICAgICAgIFRoZSBleGFjdCBzZXQgb2YgbG9jYWxlcyB3aGljaCBzaG91bGQgYmUgbWFwcGVk
IGlzIGN1cnJlbnRseSB1bmRlciBkaXNjdXNzaW9uIGhlcmU6CisgICAgICAgIGh0dHBzOi8vZ2l0
aHViLmNvbS90YzM5L2VjbWE0MDIvaXNzdWVzLzE1OQorCisgICAgICAgIEJ1dCBsb2NhbGVzIGxp
a2UgemgtVFcsIHpoLUhLLCBldGMuIGFyZSBjb21tb24gZW5vdWdoIHRoYXQgd2Ugb3VnaHQgdG8g
cmVpbnN0YXRlIHRoZSBvbGQgc3RhdGljIG1hcHBpbmcgZm9yIG5vdywKKyAgICAgICAgYXQgbGVh
c3QgdW50aWwgd2UgZmluZCBhIGJldHRlciBsb25nLXRlcm0gc29sdXRpb24uCisKKyAgICAgICAg
KiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjphZGRNaXNzaW5nU2NyaXB0
TG9jYWxlcyk6CisgICAgICAgIChKU0M6OmludGxBdmFpbGFibGVMb2NhbGVzKToKKyAgICAgICAg
KEpTQzo6aW50bENvbGxhdG9yQXZhaWxhYmxlTG9jYWxlcyk6CisKIDIwMjAtMDYtMDkgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRDb3Jl
OiBTdXBwb3J0IHR2T1MgYW5kIHdhdGNoT1MgYnVpbGRzIHdpdGggdGhlIHB1YmxpYyBTREsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggMmQ0MWI0
OThjNzUzZWJhMDg1ZWY5ZGVkZmU5NDFhZmU0NzhmNGI3Yy4uZmI3ZGJjMTBmZTdiZjkyZDEyNzI4
NDZiNjk5MTljYzRiNjg4ODA3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5jcHAKQEAgLTE4OCw2ICsxODgsMjUgQEAgU3RyaW5nIGxhbmd1YWdlVGFnRm9y
TG9jYWxlSUQoY29uc3QgY2hhciogbG9jYWxlSUQsIGJvb2wgaXNJbW1vcnRhbCkKICAgICByZXR1
cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogfQogCitzdGF0aWMgdm9p
ZCBhZGRNaXNzaW5nU2NyaXB0TG9jYWxlcyhIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2Fs
ZXMpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gcGFQSyhNQUtF
X1NUQVRJQ19TVFJJTkdfSU1QTCgicGEtUEsiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PGNvbnN0IFN0cmluZz4gemhDTihNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiemgtQ04iKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gemhISyhNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiemgtSEsiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0
cmluZz4gemhTRyhNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiemgtU0ciKSk7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gemhUVyhNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgiemgtVFciKSk7CisgICAgaWYgKGF2YWlsYWJsZUxvY2FsZXMuY29udGFpbnMoInBhLUFyYWIt
UEsiKSkKKyAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5hZGQocGFQSy5nZXQoKSk7CisgICAgaWYg
KGF2YWlsYWJsZUxvY2FsZXMuY29udGFpbnMoInpoLUhhbnMtQ04iKSkKKyAgICAgICAgYXZhaWxh
YmxlTG9jYWxlcy5hZGQoemhDTi5nZXQoKSk7CisgICAgaWYgKGF2YWlsYWJsZUxvY2FsZXMuY29u
dGFpbnMoInpoLUhhbnQtSEsiKSkKKyAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5hZGQoemhISy5n
ZXQoKSk7CisgICAgaWYgKGF2YWlsYWJsZUxvY2FsZXMuY29udGFpbnMoInpoLUhhbnMtU0ciKSkK
KyAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5hZGQoemhTRy5nZXQoKSk7CisgICAgaWYgKGF2YWls
YWJsZUxvY2FsZXMuY29udGFpbnMoInpoLUhhbnQtVFciKSkKKyAgICAgICAgYXZhaWxhYmxlTG9j
YWxlcy5hZGQoemhUVy5nZXQoKSk7Cit9CisKIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50bEF2
YWlsYWJsZUxvY2FsZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0
cmluZz4+IGNhY2hlZEF2YWlsYWJsZUxvY2FsZXM7CkBAIC0yMDMsNiArMjIyLDcgQEAgY29uc3Qg
SGFzaFNldDxTdHJpbmc+JiBpbnRsQXZhaWxhYmxlTG9jYWxlcygpCiAgICAgICAgICAgICBpZiAo
IWxvY2FsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5hZGQo
bG9jYWxlKTsKICAgICAgICAgfQorICAgICAgICBhZGRNaXNzaW5nU2NyaXB0TG9jYWxlcyhhdmFp
bGFibGVMb2NhbGVzKTsKICAgICB9KTsKICAgICByZXR1cm4gYXZhaWxhYmxlTG9jYWxlczsKIH0K
QEAgLTIyMiw2ICsyNDIsNyBAQCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGludGxDb2xsYXRvckF2
YWlsYWJsZUxvY2FsZXMoKQogICAgICAgICAgICAgaWYgKCFsb2NhbGUuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXMuYWRkKGxvY2FsZSk7CiAgICAgICAgIH0KKyAg
ICAgICAgYWRkTWlzc2luZ1NjcmlwdExvY2FsZXMoYXZhaWxhYmxlTG9jYWxlcyk7CiAgICAgfSk7
CiAgICAgcmV0dXJuIGF2YWlsYWJsZUxvY2FsZXM7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNjNGY2YTljYzFiYTMzMWY0MTExMDEx
OWM4YTNhZTcxOTZlMmRiMjEuLjZmNWEzMTcxZDkzZWI5NzdiNjY2NTUzMTBjZWI5MzhhOTg5YjA2
ZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDYtMDkgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNs
aW5nQHNvbnkuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI2MDY5Nyk6IFtJbnRsXSAibWlz
c2luZyBzY3JpcHQiIGxvY2FsZXMgbGlrZSB6aC1UVyBhcmUgbm8gbG9uZ2VyIG1hcHBlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMDA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvaW50
bC1taXNzaW5nLXNjcmlwdC1sb2NhbGVzLmpzOiBBZGRlZC4KKwogMjAyMC0wNi0wOCAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0ludGxdIFVwZGF0
ZSB0ZXN0cyB0byBzdXBwb3J0IElDVSA2NwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50
bC1taXNzaW5nLXNjcmlwdC1sb2NhbGVzLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1taXNzaW5n
LXNjcmlwdC1sb2NhbGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5Njk1M2RiY2EzNzEwMDY3ZGRlNzJlOTgw
NjU1NzQ4YWMxYTM5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW1p
c3Npbmctc2NyaXB0LWxvY2FsZXMuanMKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICBwcmludChgZXhwZWN0ZWQgJHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKK30K
KworY29uc3QgbG9jYWxlcyA9IFsKKyAgWydwYS1QSycsICdwYS1BcmFiLVBLJ10sCisgIFsnemgt
Q04nLCAnemgtSGFucy1DTiddLAorICBbJ3poLUhLJywgJ3poLUhhbnQtSEsnXSwKKyAgWyd6aC1T
RycsICd6aC1IYW5zLVNHJ10sCisgIFsnemgtVFcnLCAnemgtSGFudC1UVyddCitdOworCisvLyBD
b2xsYXRvciBpcyB0aGUgb25seSBjbGFzcyB3aXRoIGRpZmZlcmluZyAiYXZhaWxhYmxlIGxvY2Fs
ZXMiOworLy8gRGF0ZVRpbWVGb3JtYXQgaXMgdXNlZCBoZXJlIGFzIGEgcmVwcmVzZW50YXRpdmUg
Zm9yIHRoZSByZXN0LgorZm9yIChsZXQgW2FsaWFzLCBsb2NhbGVdIG9mIGxvY2FsZXMpIHsKKyAg
aWYgKG5ldyBJbnRsLkNvbGxhdG9yKGxvY2FsZSkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlID09
PSBsb2NhbGUpCisgICAgc2hvdWxkQmUobmV3IEludGwuQ29sbGF0b3IoYWxpYXMpLnJlc29sdmVk
T3B0aW9ucygpLmxvY2FsZSwgYWxpYXMpOworCisgIGlmIChuZXcgSW50bC5EYXRlVGltZUZvcm1h
dChsb2NhbGUpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSA9PT0gbG9jYWxlKQorICAgIHNob3Vs
ZEJlKG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGFsaWFzKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2Nh
bGUsIGFsaWFzKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401605</attachid>
            <date>2020-06-10 16:59:08 -0700</date>
            <delta_ts>2020-06-10 17:34:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213007-20200610165907.patch</filename>
            <type>text/plain</type>
            <size>5836</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2NmY4MGFlYzk3OWM0YTYxYjUzMTJmZjgzOTE4MmJlZTEzMzJlLi40OGU4NzQyNWNlYWYwNDMz
NDQxMzI3YTM5ZjZjZTRhZGNmMTIwNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wNi0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYwNjk3KTogW0ludGxdICJtaXNzaW5nIHNj
cmlwdCIgbG9jYWxlcyBsaWtlIHpoLVRXIGFyZSBubyBsb25nZXIgbWFwcGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMwMDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGRNaXNzaW5nU2NyaXB0TG9j
YWxlcyB3YXMgcmVtb3ZlZCBmcm9tIEludGxPYmplY3Qgd2hlbiBjaGFuZ2luZyBvdXIgbG9jYWxl
IHJlc29sdXRpb24gdG8gZGVwZW5kIG1vcmUgZGlyZWN0bHkKKyAgICAgICAgb24gSUNVLCBidXQg
YXBwYXJlbnRseSBldmVuIGxhdGVzdCBJQ1Ugd29uJ3QgcGVyZm9ybSB0aGlzIGxlZ2FjeSAicmVn
aW9uIGltcGxpZXMgc2NyaXB0IiBtYXBwaW5nIGZvciB1cy4KKworICAgICAgICBJQ1UgNjUrIGRv
ZXMgaGF2ZSB1bG9jX29wZW5BdmFpbGFibGVCeVR5cGUgd2hpY2ggd2lsbCBkbyB0aGUgdHJpY2ss
IHNvIHBlcmhhcHMgd2Ugc2hvdWxkIHVzZSB0aGlzIGluIHRoZSBmdXR1cmUsCisgICAgICAgIGJ1
dCBpdCBzdGlsbCBkb2Vzbid0IHNlZW0gdG8gaGVscCB1cyB3aXRoIENvbGxhdG9yLCB3aGljaCBo
YXMgaXRzIG93biBzZXBhcmF0ZSBzZXQgb2YgImF2YWlsYWJsZSBsb2NhbGVzIi4KKworICAgICAg
ICBUaGUgZXhhY3Qgc2V0IG9mIGxvY2FsZXMgd2hpY2ggc2hvdWxkIGJlIG1hcHBlZCBpcyBjdXJy
ZW50bHkgdW5kZXIgZGlzY3Vzc2lvbiBoZXJlOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20v
dGMzOS9lY21hNDAyL2lzc3Vlcy8xNTkKKyAgICAgICAgQnV0IHRoZSBjcnV4IHNlZW1zIHRvIGJl
IHRoYXQgd2Ugc2hvdWxkIGVuc3VyZSB3ZSBoYXZlIGFuIHh4LVpaIGFsaWFzIGZvciBhbGwgYXZh
aWxhYmxlIHh4LVl5eXktWlogbG9jYWxlcy4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OmFkZFNjcmlwdGxlc3NMb2NhbGVJZk5lZWRlZCk6CisgICAg
ICAgIChKU0M6OmludGxBdmFpbGFibGVMb2NhbGVzKToKKyAgICAgICAgKEpTQzo6aW50bENvbGxh
dG9yQXZhaWxhYmxlTG9jYWxlcyk6CisKIDIwMjAtMDYtMDkgIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRDb3JlOiBTdXBwb3J0IHR2T1Mg
YW5kIHdhdGNoT1MgYnVpbGRzIHdpdGggdGhlIHB1YmxpYyBTREsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggMmQ0MWI0OThjNzUzZWJhMDg1ZWY5
ZGVkZmU5NDFhZmU0NzhmNGI3Yy4uNDA0NjdmZDZlZTY3NjUxYjhjNTBmZGYxOTg2N2M1OTkzMGIz
MzAwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAK
QEAgLTE4OCw2ICsxODgsMjkgQEAgU3RyaW5nIGxhbmd1YWdlVGFnRm9yTG9jYWxlSUQoY29uc3Qg
Y2hhciogbG9jYWxlSUQsIGJvb2wgaXNJbW1vcnRhbCkKICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
ci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogfQogCisvLyBFbnN1cmUgd2UgaGF2ZSB4eC1aWiB3
aGVuZXZlciB3ZSBoYXZlIHh4LVl5eXktWlouCitzdGF0aWMgdm9pZCBhZGRTY3JpcHRsZXNzTG9j
YWxlSWZOZWVkZWQoSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBTdHJpbmdWaWV3
IGxvY2FsZSkKK3sKKyAgICBpZiAobG9jYWxlLmxlbmd0aCgpIDwgMTApCisgICAgICAgIHJldHVy
bjsKKworICAgIFZlY3RvcjxTdHJpbmdWaWV3PiBzdWJ0YWdzOworICAgIGZvciAoYXV0byBzdWJ0
YWcgOiBsb2NhbGUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygnLScpKSAKKyAgICAgICAgc3Vi
dGFncy5hcHBlbmQoc3VidGFnKTsKKworICAgIGlmIChzdWJ0YWdzLnNpemUoKSAhPSAzIHx8IHN1
YnRhZ3NbMV0ubGVuZ3RoKCkgIT0gNCB8fCBzdWJ0YWdzWzJdLmxlbmd0aCgpID4gMykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgVmVjdG9yPGNoYXIsIDEyPiBidWZmZXI7CisgICAgQVNTRVJUKHN1
YnRhZ3NbMF0uaXM4Qml0KCkgJiYgc3VidGFnc1swXS5pc0FsbEFTQ0lJKCkpOworICAgIGJ1ZmZl
ci5hcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3VidGFnc1swXS5jaGFyYWN0
ZXJzOCgpKSwgc3VidGFnc1swXS5sZW5ndGgoKSk7CisgICAgYnVmZmVyLmFwcGVuZCgnLScpOwor
ICAgIEFTU0VSVChzdWJ0YWdzWzJdLmlzOEJpdCgpICYmIHN1YnRhZ3NbMl0uaXNBbGxBU0NJSSgp
KTsKKyAgICBidWZmZXIuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHN1YnRh
Z3NbMl0uY2hhcmFjdGVyczgoKSksIHN1YnRhZ3NbMl0ubGVuZ3RoKCkpOworCisgICAgYXZhaWxh
YmxlTG9jYWxlcy5hZGQoU3RyaW5nSW1wbDo6Y3JlYXRlU3RhdGljU3RyaW5nSW1wbChidWZmZXIu
ZGF0YSgpLCBidWZmZXIuc2l6ZSgpKSk7Cit9CisKIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50
bEF2YWlsYWJsZUxvY2FsZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0
PFN0cmluZz4+IGNhY2hlZEF2YWlsYWJsZUxvY2FsZXM7CkBAIC0yMDAsOCArMjIzLDEwIEBAIGNv
bnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50bEF2YWlsYWJsZUxvY2FsZXMoKQogICAgICAgICBpbnQz
Ml90IGNvdW50ID0gdWxvY19jb3VudEF2YWlsYWJsZSgpOwogICAgICAgICBmb3IgKGludDMyX3Qg
aSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gbGFu
Z3VhZ2VUYWdGb3JMb2NhbGVJRCh1bG9jX2dldEF2YWlsYWJsZShpKSwgaXNJbW1vcnRhbCk7Ci0g
ICAgICAgICAgICBpZiAoIWxvY2FsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgYXZhaWxh
YmxlTG9jYWxlcy5hZGQobG9jYWxlKTsKKyAgICAgICAgICAgIGlmIChsb2NhbGUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxl
cy5hZGQobG9jYWxlKTsKKyAgICAgICAgICAgIGFkZFNjcmlwdGxlc3NMb2NhbGVJZk5lZWRlZChh
dmFpbGFibGVMb2NhbGVzLCBsb2NhbGUpOwogICAgICAgICB9CiAgICAgfSk7CiAgICAgcmV0dXJu
IGF2YWlsYWJsZUxvY2FsZXM7CkBAIC0yMTksOCArMjQ0LDEwIEBAIGNvbnN0IEhhc2hTZXQ8U3Ry
aW5nPiYgaW50bENvbGxhdG9yQXZhaWxhYmxlTG9jYWxlcygpCiAgICAgICAgIGludDMyX3QgY291
bnQgPSB1Y29sX2NvdW50QXZhaWxhYmxlKCk7CiAgICAgICAgIGZvciAoaW50MzJfdCBpID0gMDsg
aSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBsYW5ndWFnZVRh
Z0ZvckxvY2FsZUlEKHVjb2xfZ2V0QXZhaWxhYmxlKGkpLCBpc0ltbW9ydGFsKTsKLSAgICAgICAg
ICAgIGlmICghbG9jYWxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBhdmFpbGFibGVMb2Nh
bGVzLmFkZChsb2NhbGUpOworICAgICAgICAgICAgaWYgKGxvY2FsZS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzLmFkZChs
b2NhbGUpOworICAgICAgICAgICAgYWRkU2NyaXB0bGVzc0xvY2FsZUlmTmVlZGVkKGF2YWlsYWJs
ZUxvY2FsZXMsIGxvY2FsZSk7CiAgICAgICAgIH0KICAgICB9KTsKICAgICByZXR1cm4gYXZhaWxh
YmxlTG9jYWxlczsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggM2M0ZjZhOWNjMWJhMzMxZjQxMTEwMTE5YzhhM2FlNzE5NmUyZGIyMS4uNmY1
YTMxNzFkOTNlYjk3N2I2NjY1NTMxMGNlYjkzOGE5ODliMDZmNyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAy
MC0wNi0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTihyMjYwNjk3KTogW0ludGxdICJtaXNzaW5nIHNjcmlwdCIgbG9jYWxlcyBs
aWtlIHpoLVRXIGFyZSBubyBsb25nZXIgbWFwcGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2Fs
ZXMuanM6IEFkZGVkLgorCiAyMDIwLTA2LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGlu
Z0Bzb255LmNvbT4KIAogICAgICAgICBbSW50bF0gVXBkYXRlIHRlc3RzIHRvIHN1cHBvcnQgSUNV
IDY3CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2Fs
ZXMuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2FsZXMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGUzNjk0M2IzMmViOTEwODY1OGI3NTUzNjRmNGI5MTEyYTYyYTI4MgotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbWlzc2luZy1zY3JpcHQtbG9jYWxlcy5q
cwpAQCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHByaW50KGBleHBlY3RlZCAk
e2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOworfQorCitjb25zdCBsb2NhbGVzID0gWwor
ICBbJ3BhLVBLJywgJ3BhLUFyYWItUEsnXSwKKyAgWyd6aC1ISycsICd6aC1IYW50LUhLJ10sCisg
IFsnemgtU0cnLCAnemgtSGFucy1TRyddLAorICBbJ3poLVRXJywgJ3poLUhhbnQtVFcnXQorXTsK
KworLy8gQ29sbGF0b3IgaXMgdGhlIG9ubHkgY2xhc3Mgd2l0aCBkaWZmZXJpbmcgImF2YWlsYWJs
ZSBsb2NhbGVzIjsKKy8vIERhdGVUaW1lRm9ybWF0IGlzIHVzZWQgaGVyZSBhcyBhIHJlcHJlc2Vu
dGF0aXZlIGZvciB0aGUgcmVzdC4KK2ZvciAobGV0IFthbGlhcywgbG9jYWxlXSBvZiBsb2NhbGVz
KSB7CisgIGlmIChuZXcgSW50bC5Db2xsYXRvcihsb2NhbGUpLnJlc29sdmVkT3B0aW9ucygpLmxv
Y2FsZSA9PT0gbG9jYWxlKQorICAgIHNob3VsZEJlKG5ldyBJbnRsLkNvbGxhdG9yKGFsaWFzKS5y
ZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGUsIGFsaWFzKTsKKworICBpZiAobmV3IEludGwuRGF0ZVRp
bWVGb3JtYXQobG9jYWxlKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGUgPT09IGxvY2FsZSkKKyAg
ICBzaG91bGRCZShuZXcgSW50bC5EYXRlVGltZUZvcm1hdChhbGlhcykucmVzb2x2ZWRPcHRpb25z
KCkubG9jYWxlLCBhbGlhcyk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401609</attachid>
            <date>2020-06-10 17:39:48 -0700</date>
            <delta_ts>2020-06-10 19:20:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213007-20200610173947.patch</filename>
            <type>text/plain</type>
            <size>5881</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2NmY4MGFlYzk3OWM0YTYxYjUzMTJmZjgzOTE4MmJlZTEzMzJlLi40OGU4NzQyNWNlYWYwNDMz
NDQxMzI3YTM5ZjZjZTRhZGNmMTIwNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wNi0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYwNjk3KTogW0ludGxdICJtaXNzaW5nIHNj
cmlwdCIgbG9jYWxlcyBsaWtlIHpoLVRXIGFyZSBubyBsb25nZXIgbWFwcGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMwMDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGRNaXNzaW5nU2NyaXB0TG9j
YWxlcyB3YXMgcmVtb3ZlZCBmcm9tIEludGxPYmplY3Qgd2hlbiBjaGFuZ2luZyBvdXIgbG9jYWxl
IHJlc29sdXRpb24gdG8gZGVwZW5kIG1vcmUgZGlyZWN0bHkKKyAgICAgICAgb24gSUNVLCBidXQg
YXBwYXJlbnRseSBldmVuIGxhdGVzdCBJQ1Ugd29uJ3QgcGVyZm9ybSB0aGlzIGxlZ2FjeSAicmVn
aW9uIGltcGxpZXMgc2NyaXB0IiBtYXBwaW5nIGZvciB1cy4KKworICAgICAgICBJQ1UgNjUrIGRv
ZXMgaGF2ZSB1bG9jX29wZW5BdmFpbGFibGVCeVR5cGUgd2hpY2ggd2lsbCBkbyB0aGUgdHJpY2ss
IHNvIHBlcmhhcHMgd2Ugc2hvdWxkIHVzZSB0aGlzIGluIHRoZSBmdXR1cmUsCisgICAgICAgIGJ1
dCBpdCBzdGlsbCBkb2Vzbid0IHNlZW0gdG8gaGVscCB1cyB3aXRoIENvbGxhdG9yLCB3aGljaCBo
YXMgaXRzIG93biBzZXBhcmF0ZSBzZXQgb2YgImF2YWlsYWJsZSBsb2NhbGVzIi4KKworICAgICAg
ICBUaGUgZXhhY3Qgc2V0IG9mIGxvY2FsZXMgd2hpY2ggc2hvdWxkIGJlIG1hcHBlZCBpcyBjdXJy
ZW50bHkgdW5kZXIgZGlzY3Vzc2lvbiBoZXJlOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20v
dGMzOS9lY21hNDAyL2lzc3Vlcy8xNTkKKyAgICAgICAgQnV0IHRoZSBjcnV4IHNlZW1zIHRvIGJl
IHRoYXQgd2Ugc2hvdWxkIGVuc3VyZSB3ZSBoYXZlIGFuIHh4LVpaIGFsaWFzIGZvciBhbGwgYXZh
aWxhYmxlIHh4LVl5eXktWlogbG9jYWxlcy4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OmFkZFNjcmlwdGxlc3NMb2NhbGVJZk5lZWRlZCk6CisgICAg
ICAgIChKU0M6OmludGxBdmFpbGFibGVMb2NhbGVzKToKKyAgICAgICAgKEpTQzo6aW50bENvbGxh
dG9yQXZhaWxhYmxlTG9jYWxlcyk6CisKIDIwMjAtMDYtMDkgIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHRDb3JlOiBTdXBwb3J0IHR2T1Mg
YW5kIHdhdGNoT1MgYnVpbGRzIHdpdGggdGhlIHB1YmxpYyBTREsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggMmQ0MWI0OThjNzUzZWJhMDg1ZWY5
ZGVkZmU5NDFhZmU0NzhmNGI3Yy4uYzc0NDlmMzA2ZmI5ODFlOGUyZmExOWJiMWMzZjZjOGI2M2Fk
YjVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAK
QEAgLTE4OCw2ICsxODgsMzIgQEAgU3RyaW5nIGxhbmd1YWdlVGFnRm9yTG9jYWxlSUQoY29uc3Qg
Y2hhciogbG9jYWxlSUQsIGJvb2wgaXNJbW1vcnRhbCkKICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZl
ci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwogfQogCisvLyBFbnN1cmUgd2UgaGF2ZSB4eC1aWiB3
aGVuZXZlciB3ZSBoYXZlIHh4LVl5eXktWlouCitzdGF0aWMgdm9pZCBhZGRTY3JpcHRsZXNzTG9j
YWxlSWZOZWVkZWQoSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBTdHJpbmdWaWV3
IGxvY2FsZSkKK3sKKyAgICBpZiAobG9jYWxlLmxlbmd0aCgpIDwgMTApCisgICAgICAgIHJldHVy
bjsKKworICAgIFZlY3RvcjxTdHJpbmdWaWV3LCAzPiBzdWJ0YWdzOworICAgIGZvciAoYXV0byBz
dWJ0YWcgOiBsb2NhbGUuc3BsaXQoJy0nKSkgeworICAgICAgICBpZiAoc3VidGFncy5zaXplKCkg
PT0gMykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3VidGFncy5hcHBlbmQoc3VidGFn
KTsKKyAgICB9CisKKyAgICBpZiAoc3VidGFncy5zaXplKCkgPCAzIHx8IHN1YnRhZ3NbMV0ubGVu
Z3RoKCkgIT0gNCB8fCBzdWJ0YWdzWzJdLmxlbmd0aCgpID4gMykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgVmVjdG9yPGNoYXIsIDEyPiBidWZmZXI7CisgICAgQVNTRVJUKHN1YnRhZ3NbMF0uaXM4
Qml0KCkgJiYgc3VidGFnc1swXS5pc0FsbEFTQ0lJKCkpOworICAgIGJ1ZmZlci5hcHBlbmQocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3VidGFnc1swXS5jaGFyYWN0ZXJzOCgpKSwgc3Vi
dGFnc1swXS5sZW5ndGgoKSk7CisgICAgYnVmZmVyLmFwcGVuZCgnLScpOworICAgIEFTU0VSVChz
dWJ0YWdzWzJdLmlzOEJpdCgpICYmIHN1YnRhZ3NbMl0uaXNBbGxBU0NJSSgpKTsKKyAgICBidWZm
ZXIuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHN1YnRhZ3NbMl0uY2hhcmFj
dGVyczgoKSksIHN1YnRhZ3NbMl0ubGVuZ3RoKCkpOworCisgICAgYXZhaWxhYmxlTG9jYWxlcy5h
ZGQoU3RyaW5nSW1wbDo6Y3JlYXRlU3RhdGljU3RyaW5nSW1wbChidWZmZXIuZGF0YSgpLCBidWZm
ZXIuc2l6ZSgpKSk7Cit9CisKIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50bEF2YWlsYWJsZUxv
Y2FsZXMoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNh
Y2hlZEF2YWlsYWJsZUxvY2FsZXM7CkBAIC0yMDAsOCArMjI2LDEwIEBAIGNvbnN0IEhhc2hTZXQ8
U3RyaW5nPiYgaW50bEF2YWlsYWJsZUxvY2FsZXMoKQogICAgICAgICBpbnQzMl90IGNvdW50ID0g
dWxvY19jb3VudEF2YWlsYWJsZSgpOwogICAgICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBj
b3VudDsgKytpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gbGFuZ3VhZ2VUYWdGb3JM
b2NhbGVJRCh1bG9jX2dldEF2YWlsYWJsZShpKSwgaXNJbW1vcnRhbCk7Ci0gICAgICAgICAgICBp
ZiAoIWxvY2FsZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5h
ZGQobG9jYWxlKTsKKyAgICAgICAgICAgIGlmIChsb2NhbGUuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxlcy5hZGQobG9jYWxl
KTsKKyAgICAgICAgICAgIGFkZFNjcmlwdGxlc3NMb2NhbGVJZk5lZWRlZChhdmFpbGFibGVMb2Nh
bGVzLCBsb2NhbGUpOwogICAgICAgICB9CiAgICAgfSk7CiAgICAgcmV0dXJuIGF2YWlsYWJsZUxv
Y2FsZXM7CkBAIC0yMTksOCArMjQ3LDEwIEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgaW50bENv
bGxhdG9yQXZhaWxhYmxlTG9jYWxlcygpCiAgICAgICAgIGludDMyX3QgY291bnQgPSB1Y29sX2Nv
dW50QXZhaWxhYmxlKCk7CiAgICAgICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyAr
K2kpIHsKICAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSBsYW5ndWFnZVRhZ0ZvckxvY2FsZUlE
KHVjb2xfZ2V0QXZhaWxhYmxlKGkpLCBpc0ltbW9ydGFsKTsKLSAgICAgICAgICAgIGlmICghbG9j
YWxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzLmFkZChsb2Nh
bGUpOworICAgICAgICAgICAgaWYgKGxvY2FsZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzLmFkZChsb2NhbGUpOworICAg
ICAgICAgICAgYWRkU2NyaXB0bGVzc0xvY2FsZUlmTmVlZGVkKGF2YWlsYWJsZUxvY2FsZXMsIGxv
Y2FsZSk7CiAgICAgICAgIH0KICAgICB9KTsKICAgICByZXR1cm4gYXZhaWxhYmxlTG9jYWxlczsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
M2M0ZjZhOWNjMWJhMzMxZjQxMTEwMTE5YzhhM2FlNzE5NmUyZGIyMS4uNmY1YTMxNzFkOTNlYjk3
N2I2NjY1NTMxMGNlYjkzOGE5ODliMDZmNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNi0wOSAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjYwNjk3KTogW0ludGxdICJtaXNzaW5nIHNjcmlwdCIgbG9jYWxlcyBsaWtlIHpoLVRXIGFy
ZSBubyBsb25nZXIgbWFwcGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTMwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2FsZXMuanM6IEFkZGVk
LgorCiAyMDIwLTA2LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
IAogICAgICAgICBbSW50bF0gVXBkYXRlIHRlc3RzIHRvIHN1cHBvcnQgSUNVIDY3CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2FsZXMuanMgYi9KU1Rl
c3RzL3N0cmVzcy9pbnRsLW1pc3Npbmctc2NyaXB0LWxvY2FsZXMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUz
Njk0M2IzMmViOTEwODY1OGI3NTUzNjRmNGI5MTEyYTYyYTI4MgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2ludGwtbWlzc2luZy1zY3JpcHQtbG9jYWxlcy5qcwpAQCAtMCwwICsx
LDIxIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHByaW50KGBleHBlY3RlZCAke2V4cGVjdGVkfSBi
dXQgZ290ICR7YWN0dWFsfWApOworfQorCitjb25zdCBsb2NhbGVzID0gWworICBbJ3BhLVBLJywg
J3BhLUFyYWItUEsnXSwKKyAgWyd6aC1ISycsICd6aC1IYW50LUhLJ10sCisgIFsnemgtU0cnLCAn
emgtSGFucy1TRyddLAorICBbJ3poLVRXJywgJ3poLUhhbnQtVFcnXQorXTsKKworLy8gQ29sbGF0
b3IgaXMgdGhlIG9ubHkgY2xhc3Mgd2l0aCBkaWZmZXJpbmcgImF2YWlsYWJsZSBsb2NhbGVzIjsK
Ky8vIERhdGVUaW1lRm9ybWF0IGlzIHVzZWQgaGVyZSBhcyBhIHJlcHJlc2VudGF0aXZlIGZvciB0
aGUgcmVzdC4KK2ZvciAobGV0IFthbGlhcywgbG9jYWxlXSBvZiBsb2NhbGVzKSB7CisgIGlmIChu
ZXcgSW50bC5Db2xsYXRvcihsb2NhbGUpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSA9PT0gbG9j
YWxlKQorICAgIHNob3VsZEJlKG5ldyBJbnRsLkNvbGxhdG9yKGFsaWFzKS5yZXNvbHZlZE9wdGlv
bnMoKS5sb2NhbGUsIGFsaWFzKTsKKworICBpZiAobmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobG9j
YWxlKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGUgPT09IGxvY2FsZSkKKyAgICBzaG91bGRCZShu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdChhbGlhcykucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLCBh
bGlhcyk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>