<?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>214314</bug_id>
          
          <creation_ts>2020-07-14 12:32:24 -0700</creation_ts>
          <short_desc>REGRESSION(r262341) URL::createCFURL should produce a CFURL that uses UTF-8 to decode its percent-encoded sequences</short_desc>
          <delta_ts>2021-02-19 14:23:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222145</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671477</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-14 12:32:24 -0700</bug_when>
    <thetext>REGRESSION(r262341) URL::createCFURL should produce a CFURL that uses UTF-8 to decode its percent-encoded sequences</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671489</commentid>
    <comment_count>1</comment_count>
      <attachid>404268</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-14 13:05:06 -0700</bug_when>
    <thetext>Created attachment 404268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671514</commentid>
    <comment_count>2</comment_count>
      <attachid>404281</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-14 14:00:39 -0700</bug_when>
    <thetext>Created attachment 404281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671529</commentid>
    <comment_count>3</comment_count>
      <attachid>404281</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-14 14:46:21 -0700</bug_when>
    <thetext>Comment on attachment 404281
Patch

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

&gt; Source/WTF/wtf/cf/URLCF.cpp:56
&gt; +struct PartialCFURL {
&gt; +    uintptr_t unused1;
&gt; +    uintptr_t unused2;
&gt; +    uint32_t unused3;
&gt; +    CFStringEncoding encoding;
&gt; +};

I suppose this is OK for the short term, but for the future need CFURL API or at *least* SPI. Please make *sure* you get the ball rolling on that. This seems like an accident waiting to happen! I’d prefer that this technique be put into its own separate named function, not be done inline in the middle of URL::createCFURL. If we knew what the API/SPI was going to be, maybe we could name our function based on that.

But I have a suggestion that allows us to avoid this whole mess, with a small additional performance cost.

&gt; Source/WTF/wtf/cf/URLCF.cpp:62
&gt; +    if (LIKELY(m_string.is8Bit())) {
&gt;          cfURL = adoptCF(CFURLCreateAbsoluteURLWithBytes(nullptr, reinterpret_cast&lt;const UInt8*&gt;(m_string.characters8()), m_string.length(), kCFStringEncodingISOLatin1, nullptr, true));

Instead of the change here, I propose we instead do this:

    if (LIKELY(m_string.is8Bit() &amp;&amp; m_string.isAllASCII()))
        cfURL = adoptCF(CFURLCreateAbsoluteURLWithBytes(nullptr, reinterpret_cast&lt;const UInt8*&gt;(m_string.characters8()), m_string.length(), kCFStringEncodingUTF8, nullptr, true));
    else
        ...

Later if we get some API or SPI, we can optimize further using that, but we don’t need to do this change just to get correct behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671566</commentid>
    <comment_count>4</comment_count>
      <attachid>404281</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-14 15:57:40 -0700</bug_when>
    <thetext>Comment on attachment 404281
Patch

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

&gt;&gt; Source/WTF/wtf/cf/URLCF.cpp:62
&gt;&gt;          cfURL = adoptCF(CFURLCreateAbsoluteURLWithBytes(nullptr, reinterpret_cast&lt;const UInt8*&gt;(m_string.characters8()), m_string.length(), kCFStringEncodingISOLatin1, nullptr, true));
&gt; 
&gt; Instead of the change here, I propose we instead do this:
&gt; 
&gt;     if (LIKELY(m_string.is8Bit() &amp;&amp; m_string.isAllASCII()))
&gt;         cfURL = adoptCF(CFURLCreateAbsoluteURLWithBytes(nullptr, reinterpret_cast&lt;const UInt8*&gt;(m_string.characters8()), m_string.length(), kCFStringEncodingUTF8, nullptr, true));
&gt;     else
&gt;         ...
&gt; 
&gt; Later if we get some API or SPI, we can optimize further using that, but we don’t need to do this change just to get correct behavior.

That works great, and doesn&apos;t do horrible things like my original patch does.  ASCII checks are considerably faster than parsing URLs, so I don&apos;t anticipate the perf hit to be too bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671568</commentid>
    <comment_count>5</comment_count>
      <attachid>404299</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-14 15:58:13 -0700</bug_when>
    <thetext>Created attachment 404299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671587</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-14 16:37:03 -0700</bug_when>
    <thetext>Committed r264382: &lt;https://trac.webkit.org/changeset/264382&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404299.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671589</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-14 16:38:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/65572000&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404268</attachid>
            <date>2020-07-14 13:05:06 -0700</date>
            <delta_ts>2020-07-14 14:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214314-20200714130505.patch</filename>
            <type>text/plain</type>
            <size>5364</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjQxNzEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYyMzQxKSBV
Ukw6OmNyZWF0ZUNGVVJMIHNob3VsZCBwcm9kdWNlIGEgQ0ZVUkwgdGhhdCB1c2VzIFVURi04IHRv
IGRlY29kZSBpdHMgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82NTA3OTI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICByMjYyMzQxIG1hZGUgaXQgc28gd2UgdXN1YWxseSBwYXNzIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xIGludG8gQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyB3aGVuIGNy
ZWF0aW5nIGEgQ0ZVUkxSZWYgZnJvbSBhIFdURjo6VVJMLgorICAgICAgICBUaGlzIGlzIGNvcnJl
Y3QgZm9yIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYnl0ZXMgdG8gY3JlYXRlIGEgQ0ZTdHJp
bmdSZWYsIGFuZCB0aGF0IGlzIGEgY2hhbmdlIHdlIHdhbnQgdG8gbWFrZS4KKyAgICAgICAgVGhl
IGVuY29kaW5nLCBob3dldmVyLCBpcyBhbHNvIHN0b3JlZCB3aXRoIHRoZSBDRlVSTCBhbmQgdXNl
ZCBsYXRlciB3aGVuIGludGVycHJldGluZyBwZXJjZW50LWVuY29kZWQgc2VxdWVuY2VzLgorICAg
ICAgICBXZSB3YW50IHRvIGludGVycHJldCB0aGVzZSBzZXF1ZW5jZXMgYXMgcGVyY2VudC1lbmNv
ZGVkIFVURi04IHNlcXVlbmNlcyBsaWtlIHdlIHVzZWQgdG8uCisgICAgICAgIFVuZm9ydHVuYXRl
bHksIENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMgdXNlcyB0aGUgZW5jb2RpbmcgcGFy
YW1ldGVyIGZvciBib3RoIGFuZCB0aGVyZSdzIG5vIEFQSSB0byBzZXQgdGhlIGVuY29kaW5nIGZv
ciB0aGUgcGVyY2VudC1kZWNvZGluZy4KKyAgICAgICAgVXNpbmcgdGhlIG1hZ2ljIG9mIEMrKywg
dGhvdWdoLCB3ZSBjYW4gc2V0IHRoZSBlbmNvZGluZyBvbiB0aGUgQ0ZVUkwgd2l0aG91dCBhbiBB
UEkhCisKKyAgICAgICAgKiB3dGYvY2YvVVJMQ0YuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OmNy
ZWF0ZUNGVVJMIGNvbnN0KToKKyAgICAgICAgKiB3dGYvY29jb2EvVVJMQ29jb2EubW06CisgICAg
ICAgIChXVEY6OlVSTDo6Y3JlYXRlQ0ZVUkwgY29uc3QpOgorCiAyMDIwLTA3LTA5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI2NDE0OC4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NmL1VSTENGLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jZi9VUkxDRi5jcHAJKHJldmlzaW9uIDI2NDE3MSkK
KysrIFNvdXJjZS9XVEYvd3RmL2NmL1VSTENGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTIg
KzQ4LDIxIEBAIFVSTDo6VVJMKENGVVJMUmVmIHVybCkKIH0KIAogI2lmICFVU0UoRk9VTkRBVElP
TikKK3N0cnVjdCBQYXJ0aWFsQ0ZVUkwgeworICAgIHVpbnRwdHJfdCB1bnVzZWQxOworICAgIHVp
bnRwdHJfdCB1bnVzZWQyOworICAgIHVpbnQzMl90IHVudXNlZDM7CisgICAgQ0ZTdHJpbmdFbmNv
ZGluZyBlbmNvZGluZzsKK307CisKIFJldGFpblB0cjxDRlVSTFJlZj4gVVJMOjpjcmVhdGVDRlVS
TCgpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBjZlVSTDsKLSAgICBpZiAoTElL
RUxZKG1fc3RyaW5nLmlzOEJpdCgpKSkKKyAgICBpZiAoTElLRUxZKG1fc3RyaW5nLmlzOEJpdCgp
KSkgewogICAgICAgICBjZlVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhC
eXRlcyhudWxscHRyLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4obV9zdHJpbmcuY2hh
cmFjdGVyczgoKSksIG1fc3RyaW5nLmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGlu
MSwgbnVsbHB0ciwgdHJ1ZSkpOwotICAgIGVsc2UgeworICAgICAgICBpZiAoY2ZVUkwpCisgICAg
ICAgICAgICBjb25zdF9jYXN0PFBhcnRpYWxDRlVSTCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
UGFydGlhbENGVVJMKj4oY2ZVUkwuZ2V0KCkpKS0+ZW5jb2RpbmcgPSBrQ0ZTdHJpbmdFbmNvZGlu
Z1VURjg7CisgICAgfSBlbHNlIHsKICAgICAgICAgQ1N0cmluZyB1dGY4ID0gbV9zdHJpbmcudXRm
OCgpOwogICAgICAgICBjZlVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhC
eXRlcyhudWxscHRyLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4odXRmOC5kYXRhKCkp
LCB1dGY4Lmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgsIG51bGxwdHIsIHRydWUpKTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9VUkxDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9VUkxDb2NvYS5tbQkocmV2aXNpb24gMjY0MTcxKQor
KysgU291cmNlL1dURi93dGYvY29jb2EvVVJMQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4
LDYgKzU4LDEzIEBAIFVSTDo6b3BlcmF0b3IgTlNVUkwgKigpIGNvbnN0CiAgICAgcmV0dXJuIGNy
ZWF0ZUNGVVJMKCkuYnJpZGdpbmdBdXRvcmVsZWFzZSgpOwogfQogCitzdHJ1Y3QgUGFydGlhbENG
VVJMIHsKKyAgICB1aW50cHRyX3QgdW51c2VkMTsKKyAgICB1aW50cHRyX3QgdW51c2VkMjsKKyAg
ICB1aW50MzJfdCB1bnVzZWQzOworICAgIENGU3RyaW5nRW5jb2RpbmcgZW5jb2Rpbmc7Cit9Owor
CiBSZXRhaW5QdHI8Q0ZVUkxSZWY+IFVSTDo6Y3JlYXRlQ0ZVUkwoKSBjb25zdAogewogICAgIGlm
IChpc051bGwoKSkKQEAgLTY5LDkgKzc2LDExIEBAIFJldGFpblB0cjxDRlVSTFJlZj4gVVJMOjpj
cmVhdGVDRlVSTCgpIGMKICAgICB9CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNmVVJMOwot
ICAgIGlmIChMSUtFTFkobV9zdHJpbmcuaXM4Qml0KCkpKQorICAgIGlmIChMSUtFTFkobV9zdHJp
bmcuaXM4Qml0KCkpKSB7CiAgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29s
dXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPiht
X3N0cmluZy5jaGFyYWN0ZXJzOCgpKSwgbV9zdHJpbmcubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xLCBudWxscHRyLCB0cnVlKSk7Ci0gICAgZWxzZSB7CisgICAgICAgIGlmIChj
ZlVSTCkKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UGFydGlhbENGVVJMKj4ocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBQYXJ0aWFsQ0ZVUkwqPihjZlVSTC5nZXQoKSkpLT5lbmNvZGluZyA9IGtDRlN0
cmluZ0VuY29kaW5nVVRGODsKKyAgICB9IGVsc2UgewogICAgICAgICBDU3RyaW5nIHV0ZjggPSBt
X3N0cmluZy51dGY4KCk7CiAgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29s
dXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPih1
dGY4LmRhdGEoKSksIHV0ZjgubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwgbnVsbHB0
ciwgdHJ1ZSkpOwogICAgIH0KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTE0ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYyMzQx
KSBVUkw6OmNyZWF0ZUNGVVJMIHNob3VsZCBwcm9kdWNlIGEgQ0ZVUkwgdGhhdCB1c2VzIFVURi04
IHRvIGRlY29kZSBpdHMgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82NTA3OTI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1VSTEV4dHJhcy5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA3LTE0ICBBYWthc2ggSmFp
biAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10g
d2F0Y2hvcyBzaG91bGQgYnVpbGQgYm90aCBhcm02NF8zMiBhbmQgYXJtdjdrIGFyY2hpdGVjdHVy
ZXMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1VSTEV4dHJhcy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9VUkxF
eHRyYXMubW0JKHJldmlzaW9uIDI2NDE3MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL2NvY29hL1VSTEV4dHJhcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1LDYgKzIyNSwxMiBA
QCBURVNUKFdURl9VUkxFeHRyYXMsIFVSTEV4dHJhc19QYXJzaW5nRXJyCiAjZWxzZQogICAgIEVY
UEVDVF9TVFJFUShbW3VybDQgYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddLCAiJUMzJTgyJUMy
JUI2Iik7CiAjZW5kaWYKKworICAgIGNoYXIgYnVmZmVyWzEwMF07CisgICAgbWVtc2V0KGJ1ZmZl
ciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOworICAgIFdURjo6VVJMIHVybDUoVVJMKCksICJmaWxlOi8v
L0ElQzMlQTclQzMlQTNvLmh0bWwiX3MpOworICAgIENGVVJMR2V0RmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHVybDUuY3JlYXRlQ0ZVUkwoKS5nZXQoKSwgZmFsc2UsIHJlaW50ZXJwcmV0X2Nhc3Q8
VUludDgqPihidWZmZXIpLCBzaXplb2YoYnVmZmVyKSk7CisgICAgRVhQRUNUX1NUUkVRKGJ1ZmZl
ciwgIi9BY8ynYcyDby5odG1sIik7CiB9CiAKIFRFU1QoV1RGX1VSTEV4dHJhcywgVVJMRXh0cmFz
X05pbCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404281</attachid>
            <date>2020-07-14 14:00:39 -0700</date>
            <delta_ts>2020-07-14 15:58:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214314-20200714140039.patch</filename>
            <type>text/plain</type>
            <size>7036</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjQxNzEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYyMzQxKSBV
Ukw6OmNyZWF0ZUNGVVJMIHNob3VsZCBwcm9kdWNlIGEgQ0ZVUkwgdGhhdCB1c2VzIFVURi04IHRv
IGRlY29kZSBpdHMgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82NTA3OTI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICByMjYyMzQxIG1hZGUgaXQgc28gd2UgdXN1YWxseSBwYXNzIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xIGludG8gQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyB3aGVuIGNy
ZWF0aW5nIGEgQ0ZVUkxSZWYgZnJvbSBhIFdURjo6VVJMLgorICAgICAgICBUaGlzIGlzIGNvcnJl
Y3QgZm9yIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYnl0ZXMgdG8gY3JlYXRlIGEgQ0ZTdHJp
bmdSZWYsIGFuZCB0aGF0IGlzIGEgY2hhbmdlIHdlIHdhbnQgdG8gbWFrZS4KKyAgICAgICAgVGhl
IGVuY29kaW5nLCBob3dldmVyLCBpcyBhbHNvIHN0b3JlZCB3aXRoIHRoZSBDRlVSTCBhbmQgdXNl
ZCBsYXRlciB3aGVuIGludGVycHJldGluZyBwZXJjZW50LWVuY29kZWQgc2VxdWVuY2VzLgorICAg
ICAgICBXZSB3YW50IHRvIGludGVycHJldCB0aGVzZSBzZXF1ZW5jZXMgYXMgcGVyY2VudC1lbmNv
ZGVkIFVURi04IHNlcXVlbmNlcyBsaWtlIHdlIHVzZWQgdG8uCisgICAgICAgIFVuZm9ydHVuYXRl
bHksIENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMgdXNlcyB0aGUgZW5jb2RpbmcgcGFy
YW1ldGVyIGZvciBib3RoIGFuZCB0aGVyZSdzIG5vIEFQSSB0byBzZXQgdGhlIGVuY29kaW5nIGZv
ciB0aGUgcGVyY2VudC1kZWNvZGluZy4KKyAgICAgICAgVXNpbmcgdGhlIG1hZ2ljIG9mIEMrKywg
dGhvdWdoLCB3ZSBjYW4gc2V0IHRoZSBlbmNvZGluZyBvbiB0aGUgQ0ZVUkwgd2l0aG91dCBhbiBB
UEkhCisKKyAgICAgICAgKiB3dGYvY2YvVVJMQ0YuY3BwOgorICAgICAgICAoV1RGOjpVUkw6OmNy
ZWF0ZUNGVVJMIGNvbnN0KToKKyAgICAgICAgKiB3dGYvY29jb2EvVVJMQ29jb2EubW06CisgICAg
ICAgIChXVEY6OlVSTDo6Y3JlYXRlQ0ZVUkwgY29uc3QpOgorCiAyMDIwLTA3LTA5ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
ZXZlcnRpbmcgcjI2NDE0OC4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NmL1VSTENGLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jZi9VUkxDRi5jcHAJKHJldmlzaW9uIDI2NDE3MSkK
KysrIFNvdXJjZS9XVEYvd3RmL2NmL1VSTENGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTIg
KzQ4LDIxIEBAIFVSTDo6VVJMKENGVVJMUmVmIHVybCkKIH0KIAogI2lmICFVU0UoRk9VTkRBVElP
TikKK3N0cnVjdCBQYXJ0aWFsQ0ZVUkwgeworICAgIHVpbnRwdHJfdCB1bnVzZWQxOworICAgIHVp
bnRwdHJfdCB1bnVzZWQyOworICAgIHVpbnQzMl90IHVudXNlZDM7CisgICAgQ0ZTdHJpbmdFbmNv
ZGluZyBlbmNvZGluZzsKK307CisKIFJldGFpblB0cjxDRlVSTFJlZj4gVVJMOjpjcmVhdGVDRlVS
TCgpIGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGVVJMUmVmPiBjZlVSTDsKLSAgICBpZiAoTElL
RUxZKG1fc3RyaW5nLmlzOEJpdCgpKSkKKyAgICBpZiAoTElLRUxZKG1fc3RyaW5nLmlzOEJpdCgp
KSkgewogICAgICAgICBjZlVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhC
eXRlcyhudWxscHRyLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4obV9zdHJpbmcuY2hh
cmFjdGVyczgoKSksIG1fc3RyaW5nLmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ0lTT0xhdGlu
MSwgbnVsbHB0ciwgdHJ1ZSkpOwotICAgIGVsc2UgeworICAgICAgICBpZiAoY2ZVUkwpCisgICAg
ICAgICAgICBjb25zdF9jYXN0PFBhcnRpYWxDRlVSTCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
UGFydGlhbENGVVJMKj4oY2ZVUkwuZ2V0KCkpKS0+ZW5jb2RpbmcgPSBrQ0ZTdHJpbmdFbmNvZGlu
Z1VURjg7CisgICAgfSBlbHNlIHsKICAgICAgICAgQ1N0cmluZyB1dGY4ID0gbV9zdHJpbmcudXRm
OCgpOwogICAgICAgICBjZlVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhC
eXRlcyhudWxscHRyLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4odXRmOC5kYXRhKCkp
LCB1dGY4Lmxlbmd0aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgsIG51bGxwdHIsIHRydWUpKTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9VUkxDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9VUkxDb2NvYS5tbQkocmV2aXNpb24gMjY0MTcxKQor
KysgU291cmNlL1dURi93dGYvY29jb2EvVVJMQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4
LDYgKzU4LDEzIEBAIFVSTDo6b3BlcmF0b3IgTlNVUkwgKigpIGNvbnN0CiAgICAgcmV0dXJuIGNy
ZWF0ZUNGVVJMKCkuYnJpZGdpbmdBdXRvcmVsZWFzZSgpOwogfQogCitzdHJ1Y3QgUGFydGlhbENG
VVJMIHsKKyAgICB1aW50cHRyX3QgdW51c2VkMTsKKyAgICB1aW50cHRyX3QgdW51c2VkMjsKKyAg
ICB1aW50MzJfdCB1bnVzZWQzOworICAgIENGU3RyaW5nRW5jb2RpbmcgZW5jb2Rpbmc7Cit9Owor
CiBSZXRhaW5QdHI8Q0ZVUkxSZWY+IFVSTDo6Y3JlYXRlQ0ZVUkwoKSBjb25zdAogewogICAgIGlm
IChpc051bGwoKSkKQEAgLTY5LDkgKzc2LDExIEBAIFJldGFpblB0cjxDRlVSTFJlZj4gVVJMOjpj
cmVhdGVDRlVSTCgpIGMKICAgICB9CiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IGNmVVJMOwot
ICAgIGlmIChMSUtFTFkobV9zdHJpbmcuaXM4Qml0KCkpKQorICAgIGlmIChMSUtFTFkobV9zdHJp
bmcuaXM4Qml0KCkpKSB7CiAgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29s
dXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPiht
X3N0cmluZy5jaGFyYWN0ZXJzOCgpKSwgbV9zdHJpbmcubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xLCBudWxscHRyLCB0cnVlKSk7Ci0gICAgZWxzZSB7CisgICAgICAgIGlmIChj
ZlVSTCkKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8UGFydGlhbENGVVJMKj4ocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBQYXJ0aWFsQ0ZVUkwqPihjZlVSTC5nZXQoKSkpLT5lbmNvZGluZyA9IGtDRlN0
cmluZ0VuY29kaW5nVVRGODsKKyAgICB9IGVsc2UgewogICAgICAgICBDU3RyaW5nIHV0ZjggPSBt
X3N0cmluZy51dGY4KCk7CiAgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29s
dXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPih1
dGY4LmRhdGEoKSksIHV0ZjgubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwgbnVsbHB0
ciwgdHJ1ZSkpOwogICAgIH0KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NDM2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA3LTE0ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYyMzQx
KSBVUkw6OmNyZWF0ZUNGVVJMIHNob3VsZCBwcm9kdWNlIGEgQ0ZVUkwgdGhhdCB1c2VzIFVURi04
IHRvIGRlY29kZSBpdHMgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82NTA3OTI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1VSTEV4dHJhcy5tbToK
KyAgICAgICAgQWRkIGEgZGlyZWN0IHRlc3QgYW5kIHVwZGF0ZSB0aGUgTW9qYXZlIHRlc3QgZXhw
ZWN0YXRpb25zIGZvciB0aGUgdGVzdCBpbnRyb2R1Y2VkIGluIHIyNjIzNDEgd2l0aCB0aGUgY2hh
bmdlIHRoYXQgaW50cm9kdWNlZCB0aGlzIHJlZ3Jlc3Npb24uCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW06CisgICAgICAg
IFVwZGF0ZSBhIHRlc3QgZnJvbSByMjYzNDc1IHdoaWNoIGZpeGVkIGFub3RoZXIgcmVncmVzc2lv
biBmcm9tIHIyNjIzNDEuCisgICAgICAgIFRoZSB0ZXN0IHZlcmlmaWVkIHRoYXQgbm90aGluZyBj
cmFzaGVkIG9yIHRpbWVkIG91dCwgYW5kIHRoYXQgaXMgc3RpbGwgdGhlIGNhc2UgZXZlbiB3aXRo
IHRoaXMgaW50ZW50aW9uYWwgY2hhbmdlIGluIGJlaGF2aW9yLgorCiAyMDIwLTA3LTE0ICBBYWth
c2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0
Lm9yZ10gd2F0Y2hvcyBzaG91bGQgYnVpbGQgYm90aCBhcm02NF8zMiBhbmQgYXJtdjdrIGFyY2hp
dGVjdHVyZXMKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1VSTEV4
dHJhcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2Nv
YS9VUkxFeHRyYXMubW0JKHJldmlzaW9uIDI2NDE3MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL2NvY29hL1VSTEV4dHJhcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjE4LDEzICsy
MTgsMTMgQEAgVEVTVChXVEZfVVJMRXh0cmFzLCBVUkxFeHRyYXNfUGFyc2luZ0VycgogICAgIFdU
Rjo6VVJMIHVybDQoVVJMKCksIFN0cmluZyhsYXRpbjEuZGF0YSgpKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKHVybDQuaXNWYWxpZCgpKTsKICAgICBFWFBFQ1RfVFJVRSh1cmw0LnN0cmluZygpLmlzOEJp
dCgpKTsKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA8IDEwMTUwMAotICAgIC8vIENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMgaGFzIGlu
Y29ycmVjdCBiZWhhdmlvciBvbiBNb2phdmUKLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjQ4NiNjNgotICAgIEVYUEVDVF9TVFJFUShbW3VybDQg
YWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddLCAiJUMyJUI2Iik7Ci0jZWxzZQogICAgIEVYUEVD
VF9TVFJFUShbW3VybDQgYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddLCAiJUMzJTgyJUMyJUI2
Iik7Ci0jZW5kaWYKKworICAgIGNoYXIgYnVmZmVyWzEwMF07CisgICAgbWVtc2V0KGJ1ZmZlciwg
MCwgc2l6ZW9mKGJ1ZmZlcikpOworICAgIFdURjo6VVJMIHVybDUoVVJMKCksICJmaWxlOi8vL0El
QzMlQTclQzMlQTNvLmh0bWwiX3MpOworICAgIENGVVJMR2V0RmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKHVybDUuY3JlYXRlQ0ZVUkwoKS5nZXQoKSwgZmFsc2UsIHJlaW50ZXJwcmV0X2Nhc3Q8VUlu
dDgqPihidWZmZXIpLCBzaXplb2YoYnVmZmVyKSk7CisgICAgRVhQRUNUX1NUUkVRKGJ1ZmZlciwg
Ii9BY8ynYcyDby5odG1sIik7CiB9CiAKIFRFU1QoV1RGX1VSTEV4dHJhcywgVVJMRXh0cmFzX05p
bCkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEludmFs
aWRVUkxSZXF1ZXN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tCShyZXZpc2lvbiAyNjQxNzEpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRJbnZhbGlkVVJMUmVx
dWVzdC5tbQkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBURVNUKFdlYktpdCwgTG9h
ZEludmFsaWRVUkxSZXF1ZXN0Tm9uQVNDCiAgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmFpbFByb3Zp
c2lvbmFsTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqLCBOU0Vycm9y
ICplcnJvcikgewogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoZXJyb3IuZG9tYWluLCBAIldlYktp
dEVycm9yRG9tYWluIik7CiAgICAgICAgIEVYUEVDVF9FUShlcnJvci5jb2RlLCBXZWJLaXRFcnJv
ckNhbm5vdFNob3dVUkwpOwotICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoW2Vycm9yLnVzZXJJbmZv
W0AiTlNFcnJvckZhaWxpbmdVUkxLZXkiXSBhYnNvbHV0ZVN0cmluZ10sICJodHRwOi8vJUUyJTgw
JTgwIik7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShbZXJyb3IudXNlckluZm9bQCJOU0Vycm9y
RmFpbGluZ1VSTEtleSJdIGFic29sdXRlU3RyaW5nXSwgImh0dHA6Ly8lQzMlQTIlQzIlODAlQzIl
ODAiKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfTsKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404299</attachid>
            <date>2020-07-14 15:58:13 -0700</date>
            <delta_ts>2020-07-14 16:37:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214314-20200714155812.patch</filename>
            <type>text/plain</type>
            <size>6764</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjQzNzYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjYyMzQxKSBV
Ukw6OmNyZWF0ZUNGVVJMIHNob3VsZCBwcm9kdWNlIGEgQ0ZVUkwgdGhhdCB1c2VzIFVURi04IHRv
IGRlY29kZSBpdHMgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82NTA3OTI0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICByMjYyMzQxIG1hZGUgaXQgc28gd2UgdXN1YWxseSBwYXNzIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xIGludG8gQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyB3aGVuIGNy
ZWF0aW5nIGEgQ0ZVUkxSZWYgZnJvbSBhIFdURjo6VVJMLgorICAgICAgICBUaGlzIGlzIGNvcnJl
Y3QgZm9yIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYnl0ZXMgdG8gY3JlYXRlIGEgQ0ZTdHJp
bmdSZWYsIGFuZCB0aGF0IGlzIGEgY2hhbmdlIHdlIHdhbnQgdG8gbWFrZS4KKyAgICAgICAgVGhl
IGVuY29kaW5nLCBob3dldmVyLCBpcyBhbHNvIHN0b3JlZCB3aXRoIHRoZSBDRlVSTCBhbmQgdXNl
ZCBsYXRlciB3aGVuIGludGVycHJldGluZyBwZXJjZW50LWVuY29kZWQgc2VxdWVuY2VzLgorICAg
ICAgICBXZSB3YW50IHRvIHVzZSBrQ0ZTdHJpbmdFbmNvZGluZ1VURjggdG8gbWFrZSB0aGUgaW50
ZXJwcmV0YXRpb24gb2YgcGVyY2VudC1lbmNvZGVkIHNlcXVlbmNlcyB0aGUgc2FtZSBhcyBpdCB1
c2VkIHRvIGJlLgorICAgICAgICBUbyBhdm9pZCBtYWtpbmcgYSBzZXBhcmF0ZSBDU3RyaW5nIG1v
c3Qgb2YgdGhlIHRpbWUsIHVzZSBjaGFyYWN0ZXJzOCgpIG9ubHkgZm9yIEFTQ0lJLW9ubHkgVVJM
cywgd2hlcmUgVVRGLTggYW5kIExhdGluMSBhcmUgdGhlIHNhbWUuCisgICAgICAgIEZvciBhbGwg
b3RoZXIgVVJMcywgd2UgaGF2ZSB0byBtYWtlIGEgQ1N0cmluZyBjb250YWluaW5nIHRoZSBVVEYt
OCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nIHRvIGdldCB0aGUgcGVyY2VudC1lbmNvZGVk
IHNlcXVlbmNlcyBpbnRlcnByZXRlZCB0aGUgc2FtZS4KKworICAgICAgICAqIHd0Zi9jZi9VUkxD
Ri5jcHA6CisgICAgICAgIChXVEY6OlVSTDo6Y3JlYXRlQ0ZVUkwgY29uc3QpOgorICAgICAgICAq
IHd0Zi9jb2NvYS9VUkxDb2NvYS5tbToKKyAgICAgICAgKFdURjo6VVJMOjpjcmVhdGVDRlVSTCBj
b25zdCk6CisKIDIwMjAtMDctMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMgc3RyaW5ncy4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NmL1VSTENGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9jZi9VUkxDRi5jcHAJKHJldmlzaW9uIDI2NDM3NikKKysrIFNvdXJjZS9XVEYvd3Rm
L2NmL1VSTENGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsOCBAQCBVUkw6OlVSTChD
RlVSTFJlZiB1cmwpCiBSZXRhaW5QdHI8Q0ZVUkxSZWY+IFVSTDo6Y3JlYXRlQ0ZVUkwoKSBjb25z
dAogewogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gY2ZVUkw7Ci0gICAgaWYgKExJS0VMWShtX3N0
cmluZy5pczhCaXQoKSkpCi0gICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29s
dXRlVVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPiht
X3N0cmluZy5jaGFyYWN0ZXJzOCgpKSwgbV9zdHJpbmcubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29k
aW5nSVNPTGF0aW4xLCBudWxscHRyLCB0cnVlKSk7CisgICAgaWYgKExJS0VMWShtX3N0cmluZy5p
czhCaXQoKSAmJiBtX3N0cmluZy5pc0FsbEFTQ0lJKCkpKQorICAgICAgICBjZlVSTCA9IGFkb3B0
Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyhudWxscHRyLCByZWludGVycHJldF9j
YXN0PGNvbnN0IFVJbnQ4Kj4obV9zdHJpbmcuY2hhcmFjdGVyczgoKSksIG1fc3RyaW5nLmxlbmd0
aCgpLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgsIG51bGxwdHIsIHRydWUpKTsKICAgICBlbHNlIHsK
ICAgICAgICAgQ1N0cmluZyB1dGY4ID0gbV9zdHJpbmcudXRmOCgpOwogICAgICAgICBjZlVSTCA9
IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyhudWxscHRyLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4odXRmOC5kYXRhKCkpLCB1dGY4Lmxlbmd0aCgpLCBrQ0ZT
dHJpbmdFbmNvZGluZ1VURjgsIG51bGxwdHIsIHRydWUpKTsKSW5kZXg6IFNvdXJjZS9XVEYvd3Rm
L2NvY29hL1VSTENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1VS
TENvY29hLm1tCShyZXZpc2lvbiAyNjQzNzYpCisrKyBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9VUkxD
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksOCBAQCBSZXRhaW5QdHI8Q0ZVUkxS
ZWY+IFVSTDo6Y3JlYXRlQ0ZVUkwoKSBjCiAgICAgfQogCiAgICAgUmV0YWluUHRyPENGVVJMUmVm
PiBjZlVSTDsKLSAgICBpZiAoTElLRUxZKG1fc3RyaW5nLmlzOEJpdCgpKSkKLSAgICAgICAgY2ZV
UkwgPSBhZG9wdENGKENGVVJMQ3JlYXRlQWJzb2x1dGVVUkxXaXRoQnl0ZXMobnVsbHB0ciwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KG1fc3RyaW5nLmNoYXJhY3RlcnM4KCkpLCBtX3N0
cmluZy5sZW5ndGgoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIG51bGxwdHIsIHRydWUp
KTsKKyAgICBpZiAoTElLRUxZKG1fc3RyaW5nLmlzOEJpdCgpICYmIG1fc3RyaW5nLmlzQWxsQVND
SUkoKSkpCisgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29sdXRlVVJMV2l0
aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPihtX3N0cmluZy5j
aGFyYWN0ZXJzOCgpKSwgbV9zdHJpbmcubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwg
bnVsbHB0ciwgdHJ1ZSkpOwogICAgIGVsc2UgewogICAgICAgICBDU3RyaW5nIHV0ZjggPSBtX3N0
cmluZy51dGY4KCk7CiAgICAgICAgIGNmVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZUFic29sdXRl
VVJMV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVUludDgqPih1dGY4
LmRhdGEoKSksIHV0ZjgubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nVVRGOCwgbnVsbHB0ciwg
dHJ1ZSkpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjY0Mzc2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDctMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNjIzNDEpIFVSTDo6Y3Jl
YXRlQ0ZVUkwgc2hvdWxkIHByb2R1Y2UgYSBDRlVSTCB0aGF0IHVzZXMgVVRGLTggdG8gZGVjb2Rl
IGl0cyBwZXJjZW50LWVuY29kZWQgc2VxdWVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1
MDc5MjQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvVVJMRXh0cmFzLm1tOgorICAgICAgICBB
ZGQgYSBkaXJlY3QgdGVzdCBhbmQgdXBkYXRlIHRoZSBNb2phdmUgdGVzdCBleHBlY3RhdGlvbnMg
Zm9yIHRoZSB0ZXN0IGludHJvZHVjZWQgaW4gcjI2MjM0MSB3aXRoIHRoZSBjaGFuZ2UgdGhhdCBp
bnRyb2R1Y2VkIHRoaXMgcmVncmVzc2lvbi4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0xvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbToKKyAgICAgICAgVXBkYXRlIGEg
dGVzdCBmcm9tIHIyNjM0NzUgd2hpY2ggZml4ZWQgYW5vdGhlciByZWdyZXNzaW9uIGZyb20gcjI2
MjM0MS4KKyAgICAgICAgVGhlIHRlc3QgdmVyaWZpZWQgdGhhdCBub3RoaW5nIGNyYXNoZWQgb3Ig
dGltZWQgb3V0LCBhbmQgdGhhdCBpcyBzdGlsbCB0aGUgY2FzZSBldmVuIHdpdGggdGhpcyBpbnRl
bnRpb25hbCBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKIDIwMjAtMDctMTQgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVGhlIGNvbXBsZXRpb24g
aGFuZGxlciBpbiAtaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVyOiBpcyBz
b21ldGltZXMgbmV2ZXIgY2FsbGVkCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jb2NvYS9VUkxFeHRyYXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvY29jb2EvVVJMRXh0cmFzLm1tCShyZXZpc2lvbiAyNjQzNzYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9VUkxFeHRyYXMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIxOCwxMyArMjE4LDEzIEBAIFRFU1QoV1RGX1VSTEV4dHJhcywgVVJMRXh0cmFzX1BhcnNp
bmdFcnIKICAgICBXVEY6OlVSTCB1cmw0KFVSTCgpLCBTdHJpbmcobGF0aW4xLmRhdGEoKSkpOwog
ICAgIEVYUEVDVF9GQUxTRSh1cmw0LmlzVmFsaWQoKSk7CiAgICAgRVhQRUNUX1RSVUUodXJsNC5z
dHJpbmcoKS5pczhCaXQoKSk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPCAxMDE1MDAKLSAgICAvLyBDRlVSTENyZWF0ZUFic29sdXRlVVJMV2l0
aEJ5dGVzIGhhcyBpbmNvcnJlY3QgYmVoYXZpb3Igb24gTW9qYXZlCi0gICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI0ODYjYzYKLSAgICBFWFBFQ1Rf
U1RSRVEoW1t1cmw0IGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSwgIiVDMiVCNiIpOwotI2Vs
c2UKICAgICBFWFBFQ1RfU1RSRVEoW1t1cmw0IGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSwg
IiVDMyU4MiVDMiVCNiIpOwotI2VuZGlmCisKKyAgICBjaGFyIGJ1ZmZlclsxMDBdOworICAgIG1l
bXNldChidWZmZXIsIDAsIHNpemVvZihidWZmZXIpKTsKKyAgICBXVEY6OlVSTCB1cmw1KFVSTCgp
LCAiZmlsZTovLy9BJUMzJUE3JUMzJUEzby5odG1sIl9zKTsKKyAgICBDRlVSTEdldEZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbih1cmw1LmNyZWF0ZUNGVVJMKCkuZ2V0KCksIGZhbHNlLCByZWludGVy
cHJldF9jYXN0PFVJbnQ4Kj4oYnVmZmVyKSwgc2l6ZW9mKGJ1ZmZlcikpOworICAgIEVYUEVDVF9T
VFJFUShidWZmZXIsICIvQWPMp2HMg28uaHRtbCIpOwogfQogCiBURVNUKFdURl9VUkxFeHRyYXMs
IFVSTEV4dHJhc19OaWwpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbQkocmV2aXNp
b24gMjY0Mzc2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2Fk
SW52YWxpZFVSTFJlcXVlc3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgVEVT
VChXZWJLaXQsIExvYWRJbnZhbGlkVVJMUmVxdWVzdE5vbkFTQwogICAgIGRlbGVnYXRlLmdldCgp
LmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRp
b24gKiwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGVycm9yLmRv
bWFpbiwgQCJXZWJLaXRFcnJvckRvbWFpbiIpOwogICAgICAgICBFWFBFQ1RfRVEoZXJyb3IuY29k
ZSwgV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMKTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtl
cnJvci51c2VySW5mb1tAIk5TRXJyb3JGYWlsaW5nVVJMS2V5Il0gYWJzb2x1dGVTdHJpbmddLCAi
aHR0cDovLyVFMiU4MCU4MCIpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoW2Vycm9yLnVzZXJJ
bmZvW0AiTlNFcnJvckZhaWxpbmdVUkxLZXkiXSBhYnNvbHV0ZVN0cmluZ10sICJodHRwOi8vJUMz
JUEyJUMyJTgwJUMyJTgwIik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH07CiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>