<?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>228146</bug_id>
          
          <creation_ts>2021-07-21 07:19:01 -0700</creation_ts>
          <short_desc>speculateNeitherDoubleNorStringNorHeapBigInt should only have a single JSType branch</short_desc>
          <delta_ts>2021-07-21 10:50:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</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>1778415</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 07:19:01 -0700</bug_when>
    <thetext>speculateNeitherDoubleNorStringNorHeapBigInt should only have a single JSType branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778416</commentid>
    <comment_count>1</comment_count>
      <attachid>433934</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 07:20:31 -0700</bug_when>
    <thetext>Created attachment 433934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778431</commentid>
    <comment_count>2</comment_count>
      <attachid>433934</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 08:47:46 -0700</bug_when>
    <thetext>Comment on attachment 433934
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:11792
&gt; +    DFG_TYPE_CHECK(regs, edge, ~(SpecString | SpecHeapBigInt), m_jit.branchIfType(regs.payloadGPR(), JSTypeRange { StringType, HeapBigIntType }));

It seems like this should be SpecAnyString but maybe I was missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778457</commentid>
    <comment_count>3</comment_count>
      <attachid>433934</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 10:09:38 -0700</bug_when>
    <thetext>Comment on attachment 433934
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:11792
&gt;&gt; +    DFG_TYPE_CHECK(regs, edge, ~(SpecString | SpecHeapBigInt), m_jit.branchIfType(regs.payloadGPR(), JSTypeRange { StringType, HeapBigIntType }));
&gt; 
&gt; It seems like this should be SpecAnyString but maybe I was missing something?

Nvm, I confused myself, I was thinking that SpecString independent from SpecStringIdent and SpecStringVar...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778462</commentid>
    <comment_count>4</comment_count>
      <attachid>433934</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-07-21 10:14:01 -0700</bug_when>
    <thetext>Comment on attachment 433934
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +

Maybe add some small comment here explaining your trick for people scanning through the Changelog.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:11792
&gt;&gt; +    DFG_TYPE_CHECK(regs, edge, ~(SpecString | SpecHeapBigInt), m_jit.branchIfType(regs.payloadGPR(), JSTypeRange { StringType, HeapBigIntType }));
&gt; 
&gt; It seems like this should be SpecAnyString but maybe I was missing something?

SpecAnyString does not exist, SpecString = SpecStringIdent | SpecStringVar is the union type.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:-19012
&gt; -        return m_out.equal(

I think I would have kept this version of isType intact, and called it from the JSTypeRange version when range.last == range.first, but I&apos;m ok with your approach even if I find it less intuitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778463</commentid>
    <comment_count>5</comment_count>
      <attachid>433934</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 10:17:18 -0700</bug_when>
    <thetext>Comment on attachment 433934
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:7
&gt;&gt; +
&gt; 
&gt; Maybe add some small comment here explaining your trick for people scanning through the Changelog.

Sure.

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:-19012
&gt;&gt; -        return m_out.equal(
&gt; 
&gt; I think I would have kept this version of isType intact, and called it from the JSTypeRange version when range.last == range.first, but I&apos;m ok with your approach even if I find it less intuitive.

I just followed how the AssemblyHelpers version did it for consistency. I don&apos;t have strong feelings either way though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778464</commentid>
    <comment_count>6</comment_count>
      <attachid>433942</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-07-21 10:21:11 -0700</bug_when>
    <thetext>Created attachment 433942
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778468</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-21 10:49:03 -0700</bug_when>
    <thetext>Committed r280149 (239846@main): &lt;https://commits.webkit.org/239846@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433942.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778469</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-21 10:50:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/80906151&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433934</attachid>
            <date>2021-07-21 07:20:31 -0700</date>
            <delta_ts>2021-07-21 10:21:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228146-20210721102031.patch</filename>
            <type>text/plain</type>
            <size>3721</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MTQ1NTcyYWY3YTcwZDE3ZTFkZDhkN2ZjNzE3OGFiNGQzZDdjMTllLi44NTAxMGQ0ODE1ODYwYmMy
MWRhM2Y3YTdjOGJjOGNkMzU2ZjI0NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNy0yMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBzcGVjdWxhdGVOZWl0aGVyRG91YmxlTm9yU3RyaW5nTm9ySGVhcEJp
Z0ludCBzaG91bGQgb25seSBoYXZlIGEgc2luZ2xlIEpTVHlwZSBicmFuY2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVp
dGhlckRvdWJsZU5vckhlYXBCaWdJbnROb3JTdHJpbmcpOgorICAgICAgICAqIGZ0bC9GVExMb3dl
ckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlQ29tcGFyZVN0cmljdEVxKToKKwogMjAyMS0wNy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEhhcmRlbiBkZWZhdWx0VGltZVpvbmUgcmV0
cmlldmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCmluZGV4IDFiNTFmZWEzM2FjZjY5ZjUzZTA5NGE0ZTUwYThiNzBiYTZhYWE3MjYuLjI5MmNl
ZjYxYTFlZDE1MThhNjA4NzEzNDJkNjQ0ZWQ5NzhiMWU1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMTc4OCw4ICsxMTc4OCw4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRoZXJEb3VibGVOb3JIZWFwQmln
SW50Tm9yU3RyaW5nKEVkZ2UgZWRnZSwgSlNWCiAgICAgaWYgKG1heU5vdEJlQ2VsbCkKICAgICAg
ICAgZG9uZS5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKHJlZ3MpKTsKIAotICAgIERGR19U
WVBFX0NIRUNLKHJlZ3MsIGVkZ2UsIH5TcGVjU3RyaW5nLCBtX2ppdC5icmFuY2hJZlN0cmluZyhy
ZWdzLnBheWxvYWRHUFIoKSkpOwotICAgIERGR19UWVBFX0NIRUNLKHJlZ3MsIGVkZ2UsIH5TcGVj
SGVhcEJpZ0ludCwgbV9qaXQuYnJhbmNoSWZIZWFwQmlnSW50KHJlZ3MucGF5bG9hZEdQUigpKSk7
CisgICAgc3RhdGljX2Fzc2VydChTdHJpbmdUeXBlICsgMSA9PSBIZWFwQmlnSW50VHlwZSk7Cisg
ICAgREZHX1RZUEVfQ0hFQ0socmVncywgZWRnZSwgfihTcGVjU3RyaW5nIHwgU3BlY0hlYXBCaWdJ
bnQpLCBtX2ppdC5icmFuY2hJZlR5cGUocmVncy5wYXlsb2FkR1BSKCksIEpTVHlwZVJhbmdlIHsg
U3RyaW5nVHlwZSwgSGVhcEJpZ0ludFR5cGUgfSkpOwogCiAgICAgaWYgKG1heUJlSW50MzIgfHwg
bWF5Tm90QmVDZWxsKQogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAxYzJkZDk1NTU0YjJmNDVk
Zjk1MTRkYzg3MTQxY2UzZjJkMDYzZGRhLi4wOWQxN2Y1NTVmNDkyZGZiYmVkYWU5ZTY4YmIwZGZl
YmNlZWE1MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC0xODY2NSw4ICsxODY2NSw5IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmJy
YW5jaChpc0NlbGwodmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUoaXNDZWxsQmxvY2sp
LCB1bnN1cmUoY29udGludWF0aW9uKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNDZWxs
QmxvY2ssIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1
ZSh2YWx1ZSksIGVkZ2UsIH5TcGVjU3RyaW5nLCBpc1N0cmluZyh2YWx1ZSkpOwotICAgICAgICBG
VExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+U3BlY0hlYXBCaWdJbnQs
IGlzSGVhcEJpZ0ludCh2YWx1ZSkpOworCisgICAgICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nVHlw
ZSArIDEgPT0gSGVhcEJpZ0ludFR5cGUpOworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVl
VmFsdWUodmFsdWUpLCBlZGdlLCB+KFNwZWNTdHJpbmcgfCBTcGVjSGVhcEJpZ0ludCksIGlzVHlw
ZSh2YWx1ZSwgSlNUeXBlUmFuZ2UgeyBTdHJpbmdUeXBlLCBIZWFwQmlnSW50VHlwZSB9KSk7CiAg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICBtX291dC5hcHBlbmRU
byhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKQEAgLTE5MDA3LDExICsxOTAwOCwyMyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGEpKTsKICAgICB9CiAKKyAgICBMVmFsdWUgaXNUeXBlKExW
YWx1ZSBjZWxsLCBKU1R5cGVSYW5nZSByYW5nZSkKKyAgICB7CisgICAgICAgIGlmIChyYW5nZS5s
YXN0ID09IHJhbmdlLmZpcnN0KSB7CisgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCisg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxf
dHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHJhbmdlLmZp
cnN0KSk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQocmFuZ2UubGFzdCA+IHJhbmdlLmZp
cnN0KTsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93T3JFcXVhbCgKKyAgICAgICAgICAgIG1f
b3V0LnN1YihtX291dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5m
b1R5cGUpLCBtX291dC5jb25zdEludDMyKHJhbmdlLmZpcnN0KSksCisgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKHJhbmdlLmxhc3QgLSByYW5nZS5maXJzdCkpOworICAgIH0KKwogICAgIExW
YWx1ZSBpc1R5cGUoTFZhbHVlIGNlbGwsIEpTVHlwZSB0eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fb3V0LmVxdWFsKAotICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwg
bV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50
MzIodHlwZSkpOworICAgICAgICByZXR1cm4gaXNUeXBlKGNlbGwsIEpTVHlwZVJhbmdlIHsgdHlw
ZSwgdHlwZSB9KTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzTm90VHlwZShMVmFsdWUgY2Vs
bCwgSlNUeXBlIHR5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433942</attachid>
            <date>2021-07-21 10:21:11 -0700</date>
            <delta_ts>2021-07-21 10:49:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-228146-20210721132111.patch</filename>
            <type>text/plain</type>
            <size>3880</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MTQ1NTcyYWY3YTcwZDE3ZTFkZDhkN2ZjNzE3OGFiNGQzZDdjMTllLi4yYTQ2ZTFhZjMzZDM3NWE4
YTE1YWI4ZWQxYzQ1ZDViNjM4NWYyNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMS0wNy0yMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBzcGVjdWxhdGVOZWl0aGVyRG91YmxlTm9yU3RyaW5nTm9ySGVhcEJp
Z0ludCBzaG91bGQgb25seSBoYXZlIGEgc2luZ2xlIEpTVHlwZSBicmFuY2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvYmluIE1vcmlzc2V0LgorCisgICAgICAgIFNpbmNlIFN0cmluZ1R5cGUgYW5k
IEhlYXBCaWdJbnRUeXBlIGFyZSBhZGphY2VudCBKU1R5cGVzCisgICAgICAgIHdlIGNhbiBkbyBh
biBpbnRlZ2VyIHJhbmdlIGNoZWNrIHJhdGhlciB0aGFuIHR3byBzZXBhcmF0ZQorICAgICAgICBK
U1R5cGUgY2hlY2tzLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTmVpdGhlckRvdWJsZU5v
ckhlYXBCaWdJbnROb3JTdHJpbmcpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKwogMjAyMS0wNy0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIEhhcmRlbiBkZWZhdWx0VGltZVpvbmUgcmV0cmlldmFsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDFi
NTFmZWEzM2FjZjY5ZjUzZTA5NGE0ZTUwYThiNzBiYTZhYWE3MjYuLjI5MmNlZjYxYTFlZDE1MThh
NjA4NzEzNDJkNjQ0ZWQ5NzhiMWU1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMTc4OCw4ICsxMTc4OCw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5laXRoZXJEb3VibGVOb3JIZWFwQmlnSW50Tm9yU3RyaW5n
KEVkZ2UgZWRnZSwgSlNWCiAgICAgaWYgKG1heU5vdEJlQ2VsbCkKICAgICAgICAgZG9uZS5hcHBl
bmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKHJlZ3MpKTsKIAotICAgIERGR19UWVBFX0NIRUNLKHJl
Z3MsIGVkZ2UsIH5TcGVjU3RyaW5nLCBtX2ppdC5icmFuY2hJZlN0cmluZyhyZWdzLnBheWxvYWRH
UFIoKSkpOwotICAgIERGR19UWVBFX0NIRUNLKHJlZ3MsIGVkZ2UsIH5TcGVjSGVhcEJpZ0ludCwg
bV9qaXQuYnJhbmNoSWZIZWFwQmlnSW50KHJlZ3MucGF5bG9hZEdQUigpKSk7CisgICAgc3RhdGlj
X2Fzc2VydChTdHJpbmdUeXBlICsgMSA9PSBIZWFwQmlnSW50VHlwZSk7CisgICAgREZHX1RZUEVf
Q0hFQ0socmVncywgZWRnZSwgfihTcGVjU3RyaW5nIHwgU3BlY0hlYXBCaWdJbnQpLCBtX2ppdC5i
cmFuY2hJZlR5cGUocmVncy5wYXlsb2FkR1BSKCksIEpTVHlwZVJhbmdlIHsgU3RyaW5nVHlwZSwg
SGVhcEJpZ0ludFR5cGUgfSkpOwogCiAgICAgaWYgKG1heUJlSW50MzIgfHwgbWF5Tm90QmVDZWxs
KQogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAxYzJkZDk1NTU0YjJmNDVkZjk1MTRkYzg3MTQx
Y2UzZjJkMDYzZGRhLi4wOWQxN2Y1NTVmNDkyZGZiYmVkYWU5ZTY4YmIwZGZlYmNlZWE1MTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0x
ODY2NSw4ICsxODY2NSw5IEBAIHByaXZhdGU6CiAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwo
dmFsdWUsIHByb3ZlblR5cGUoZWRnZSkpLCB1bnN1cmUoaXNDZWxsQmxvY2spLCB1bnN1cmUoY29u
dGludWF0aW9uKSk7CiAKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaXNDZWxsQmxvY2ssIGNvbnRp
bnVhdGlvbik7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGVk
Z2UsIH5TcGVjU3RyaW5nLCBpc1N0cmluZyh2YWx1ZSkpOwotICAgICAgICBGVExfVFlQRV9DSEVD
Syhqc1ZhbHVlVmFsdWUodmFsdWUpLCBlZGdlLCB+U3BlY0hlYXBCaWdJbnQsIGlzSGVhcEJpZ0lu
dCh2YWx1ZSkpOworCisgICAgICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nVHlwZSArIDEgPT0gSGVh
cEJpZ0ludFR5cGUpOworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUp
LCBlZGdlLCB+KFNwZWNTdHJpbmcgfCBTcGVjSGVhcEJpZ0ludCksIGlzVHlwZSh2YWx1ZSwgSlNU
eXBlUmFuZ2UgeyBTdHJpbmdUeXBlLCBIZWFwQmlnSW50VHlwZSB9KSk7CiAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRp
b24sIGxhc3ROZXh0KTsKQEAgLTE5MDA3LDExICsxOTAwOCwyMyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQzMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHwgT3ZlcnJpZGVz
R2V0Q2FsbERhdGEpKTsKICAgICB9CiAKKyAgICBMVmFsdWUgaXNUeXBlKExWYWx1ZSBjZWxsLCBK
U1R5cGVSYW5nZSByYW5nZSkKKyAgICB7CisgICAgICAgIGlmIChyYW5nZS5sYXN0ID09IHJhbmdl
LmZpcnN0KSB7CisgICAgICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCisgICAgICAgICAgICAg
ICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBl
KSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHJhbmdlLmZpcnN0KSk7CisgICAg
ICAgIH0KKworICAgICAgICBBU1NFUlQocmFuZ2UubGFzdCA+IHJhbmdlLmZpcnN0KTsKKyAgICAg
ICAgcmV0dXJuIG1fb3V0LmJlbG93T3JFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0LnN1YihtX291
dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLCBtX291
dC5jb25zdEludDMyKHJhbmdlLmZpcnN0KSksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KHJhbmdlLmxhc3QgLSByYW5nZS5maXJzdCkpOworICAgIH0KKwogICAgIExWYWx1ZSBpc1R5cGUo
TFZhbHVlIGNlbGwsIEpTVHlwZSB0eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fb3V0LmVx
dWFsKAotICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0Nl
bGxfdHlwZUluZm9UeXBlKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodHlwZSkpOwor
ICAgICAgICByZXR1cm4gaXNUeXBlKGNlbGwsIEpTVHlwZVJhbmdlIHsgdHlwZSwgdHlwZSB9KTsK
ICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzTm90VHlwZShMVmFsdWUgY2VsbCwgSlNUeXBlIHR5
cGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>