<?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>62824</bug_id>
          
          <creation_ts>2011-06-16 14:46:25 -0700</creation_ts>
          <short_desc>DFG JIT - add support for branch-fusion of compareEq, JSValue comparisons in SpeculativeJIT</short_desc>
          <delta_ts>2011-06-16 16:40:26 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422254</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-16 14:46:25 -0700</bug_when>
    <thetext>CompareEq of non-integer values is the most common cause of speculation failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422257</commentid>
    <comment_count>1</comment_count>
      <attachid>97507</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-16 14:48:44 -0700</bug_when>
    <thetext>Created attachment 97507
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422281</commentid>
    <comment_count>2</comment_count>
      <attachid>97507</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-06-16 15:18:12 -0700</bug_when>
    <thetext>Comment on attachment 97507
The patch

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

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        * dfg/DFGSpeculativeJIT.cpp:
&gt; +        (JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
&gt; +        (JSC::DFG::SpeculativeJIT::compilePeepHoleEq):
&gt; +        (JSC::DFG::SpeculativeJIT::compile):
&gt; +        * dfg/DFGSpeculativeJIT.h:
&gt; +        (JSC::DFG::SpeculativeJIT::detectPeepHoleBranch):
&gt; +        (JSC::DFG::SpeculativeJIT::isInteger):

PLease add data :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422318</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-16 16:40:26 -0700</bug_when>
    <thetext>Fixed in r89084</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97507</attachid>
            <date>2011-06-16 14:48:44 -0700</date>
            <delta_ts>2011-06-16 15:18:12 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>62824.patch</filename>
            <type>text/plain</type>
            <size>8155</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODkwNjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMDYtMTYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjgyNAorICAgICAgICBERkcgSklUIC0g
YWRkIHN1cHBvcnQgZm9yIGJyYW5jaC1mdXNpb24gb2YgY29tcGFyZUVxLCBKU1ZhbHVlIGNvbXBh
cmlzb25zIGluIFNwZWN1bGF0aXZlSklUCisKKyAgICAgICAgQ29tcGFyZUVxIG9mIG5vbi1pbnRl
Z2VyIHZhbHVlcyBpcyB0aGUgbW9zdCBjb21tb24gY2F1c2Ugb2Ygc3BlY3VsYXRpb24gZmFpbHVy
ZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZUludGVnZXJCcmFuY2gpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVFcSk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpk
ZXRlY3RQZWVwSG9sZUJyYW5jaCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmlzSW50ZWdlcik6CisKIDIwMTEtMDYtMTUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA4
ODk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsOSArMjMzLDkgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklU
OjpmaWxsU3BlY3VsYXRlQ2VsbAogICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwogfQogCi12b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVCcmFuY2goTm9kZSYgbm9kZSwgSklUQ29t
cGlsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0aW9uKQordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVBlZXBIb2xlSW50ZWdlckJyYW5jaChOb2RlJiBub2RlLCBOb2RlSW5kZXggYnJh
bmNoTm9kZUluZGV4LCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24p
CiB7Ci0gICAgTm9kZSYgYnJhbmNoTm9kZSA9IG1faml0LmdyYXBoKClbbV9jb21waWxlSW5kZXgg
KyAxXTsKKyAgICBOb2RlJiBicmFuY2hOb2RlID0gbV9qaXQuZ3JhcGgoKVticmFuY2hOb2RlSW5k
ZXhdOwogICAgIEJsb2NrSW5kZXggdGFrZW4gPSBtX2ppdC5ncmFwaCgpLmJsb2NrSW5kZXhGb3JC
eXRlY29kZU9mZnNldChicmFuY2hOb2RlLnRha2VuQnl0ZWNvZGVPZmZzZXQoKSk7CiAgICAgQmxv
Y2tJbmRleCBub3RUYWtlbiA9IG1faml0LmdyYXBoKCkuYmxvY2tJbmRleEZvckJ5dGVjb2RlT2Zm
c2V0KGJyYW5jaE5vZGUubm90VGFrZW5CeXRlY29kZU9mZnNldCgpKTsKIApAQCAtMjY2LDYgKzI2
NiwzNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVCcmFuCiAgICAgICAg
IGFkZEJyYW5jaChtX2ppdC5qdW1wKCksIG5vdFRha2VuKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVBlZXBIb2xlRXEoTm9kZSYgbm9kZSwgTm9kZUluZGV4IGJyYW5jaE5vZGVJ
bmRleCkKK3sKKyAgICBOb2RlJiBicmFuY2hOb2RlID0gbV9qaXQuZ3JhcGgoKVticmFuY2hOb2Rl
SW5kZXhdOworICAgIEJsb2NrSW5kZXggdGFrZW4gPSBtX2ppdC5ncmFwaCgpLmJsb2NrSW5kZXhG
b3JCeXRlY29kZU9mZnNldChicmFuY2hOb2RlLnRha2VuQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAg
QmxvY2tJbmRleCBub3RUYWtlbiA9IG1faml0LmdyYXBoKCkuYmxvY2tJbmRleEZvckJ5dGVjb2Rl
T2Zmc2V0KGJyYW5jaE5vZGUubm90VGFrZW5CeXRlY29kZU9mZnNldCgpKTsKKworICAgIC8vIFRo
ZSBicmFuY2ggaW5zdHJ1Y3Rpb24gd2lsbCBicmFuY2ggdG8gdGhlIHRha2VuIGJsb2NrLgorICAg
IC8vIElmIHRha2VuIGlzIG5leHQsIHN3aXRjaCB0YWtlbiB3aXRoIG5vdFRha2VuICYgaW52ZXJ0
IHRoZSBicmFuY2ggY29uZGl0aW9uIHNvIHdlIGNhbiBmYWxsIHRocm91Z2guCisgICAgSklUQ29t
cGlsZXI6OlJlc3VsdENvbmRpdGlvbiBjb25kaXRpb24gPSBKSVRDb21waWxlcjo6Tm9uWmVybzsK
KyAgICBpZiAodGFrZW4gPT0gKG1fYmxvY2sgKyAxKSkgeworICAgICAgICBjb25kaXRpb24gPSBK
SVRDb21waWxlcjo6WmVybzsKKyAgICAgICAgQmxvY2tJbmRleCB0bXAgPSB0YWtlbjsKKyAgICAg
ICAgdGFrZW4gPSBub3RUYWtlbjsKKyAgICAgICAgbm90VGFrZW4gPSB0bXA7CisgICAgfQorCisg
ICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUuY2hpbGQxKTsKKyAgICBKU1ZhbHVlT3Bl
cmFuZCBvcDIodGhpcywgbm9kZS5jaGlsZDIpOworICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3By
KCk7CisgICAgR1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIoKTsKKyAgICBmbHVzaFJlZ2lzdGVycygp
OworCisgICAgR1BSUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkNvbXBhcmVFcSwgcmVzdWx0LmdwcigpLCBvcDFHUFIsIG9wMkdQUik7CisgICAgYWRkQnJh
bmNoKG1faml0LmJyYW5jaFRlc3Q4KGNvbmRpdGlvbiwgcmVzdWx0LmdwcigpKSwgdGFrZW4pOwor
CisgICAgLy8gQ2hlY2sgZm9yIGZhbGwgdGhyb3VnaCwgb3RoZXJ3aXNlIHdlIG5lZWQgdG8ganVt
cC4KKyAgICBpZiAobm90VGFrZW4gIT0gKG1fYmxvY2sgKyAxKSkKKyAgICAgICAgYWRkQnJhbmNo
KG1faml0Lmp1bXAoKSwgbm90VGFrZW4pOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUmIG5vZGUpCiB7CiAgICAgTm9kZVR5cGUgb3AgPSBub2RlLm9wOwpAQCAtNTQ5LDE2
ICs1ODAsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAg
ICAgY2FzZSBDb21wYXJlTGVzczogewogICAgICAgICAvLyBGdXNlZCBjb21wYXJlICYgYnJhbmNo
LgotICAgICAgICBpZiAoZGV0ZWN0UGVlcEhvbGVCcmFuY2goKSkgeworICAgICAgICBOb2RlSW5k
ZXggYnJhbmNoTm9kZUluZGV4ID0gZGV0ZWN0UGVlcEhvbGVCcmFuY2goKTsKKyAgICAgICAgaWYg
KGJyYW5jaE5vZGVJbmRleCAhPSBOb05vZGUpIHsKICAgICAgICAgICAgIC8vIGRldGVjdFBlZXBI
b2xlQnJhbmNoIGN1cnJlbnRseSBvbmx5IHBlcm1pdHMgdGhlIGJyYW5jaCB0byBiZSB0aGUgdmVy
eSBuZXh0IG5vZGUsCiAgICAgICAgICAgICAvLyBzbyBjYW4gYmUgbm8gaW50ZXJ2ZW5pbmcgbm9k
ZXMgdG8gYWxzbyByZWZlcmVuY2UgdGhlIGNvbXBhcmUuIAogICAgICAgICAgICAgQVNTRVJUKG5v
ZGUuYWRqdXN0ZWRSZWZDb3VudCgpID09IDEpOwogCi0gICAgICAgICAgICBjb21waWxlUGVlcEhv
bGVCcmFuY2gobm9kZSwgSklUQ29tcGlsZXI6Okxlc3NUaGFuKTsKKyAgICAgICAgICAgIGNvbXBp
bGVQZWVwSG9sZUludGVnZXJCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBKSVRDb21waWxl
cjo6TGVzc1RoYW4pOwogCiAgICAgICAgICAgICB1c2Uobm9kZS5jaGlsZDEpOwogICAgICAgICAg
ICAgdXNlKG5vZGUuY2hpbGQyKTsKLSAgICAgICAgICAgICsrbV9jb21waWxlSW5kZXg7CisgICAg
ICAgICAgICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC01NzcsMTYgKzYwOSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAKICAgICBjYXNlIENvbXBhcmVMZXNzRXE6IHsKICAg
ICAgICAgLy8gRnVzZWQgY29tcGFyZSAmIGJyYW5jaC4KLSAgICAgICAgaWYgKGRldGVjdFBlZXBI
b2xlQnJhbmNoKCkpIHsKKyAgICAgICAgTm9kZUluZGV4IGJyYW5jaE5vZGVJbmRleCA9IGRldGVj
dFBlZXBIb2xlQnJhbmNoKCk7CisgICAgICAgIGlmIChicmFuY2hOb2RlSW5kZXggIT0gTm9Ob2Rl
KSB7CiAgICAgICAgICAgICAvLyBkZXRlY3RQZWVwSG9sZUJyYW5jaCBjdXJyZW50bHkgb25seSBw
ZXJtaXRzIHRoZSBicmFuY2ggdG8gYmUgdGhlIHZlcnkgbmV4dCBub2RlLAogICAgICAgICAgICAg
Ly8gc28gY2FuIGJlIG5vIGludGVydmVuaW5nIG5vZGVzIHRvIGFsc28gcmVmZXJlbmNlIHRoZSBj
b21wYXJlLiAKICAgICAgICAgICAgIEFTU0VSVChub2RlLmFkanVzdGVkUmVmQ291bnQoKSA9PSAx
KTsKIAotICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlQnJhbmNoKG5vZGUsIEpJVENvbXBpbGVy
OjpMZXNzVGhhbk9yRXF1YWwpOworICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlSW50ZWdlckJy
YW5jaChub2RlLCBicmFuY2hOb2RlSW5kZXgsIEpJVENvbXBpbGVyOjpMZXNzVGhhbk9yRXF1YWwp
OwogCiAgICAgICAgICAgICB1c2Uobm9kZS5jaGlsZDEpOwogICAgICAgICAgICAgdXNlKG5vZGUu
Y2hpbGQyKTsKLSAgICAgICAgICAgICsrbV9jb21waWxlSW5kZXg7CisgICAgICAgICAgICBtX2Nv
bXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCkBAIC02MDQsNiArNjM3LDI0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSYgbm9kZSkKICAgICB9CiAKICAgICBjYXNlIENvbXBhcmVFcTogeworICAgICAgICAvLyBG
dXNlZCBjb21wYXJlICYgYnJhbmNoLgorICAgICAgICBOb2RlSW5kZXggYnJhbmNoTm9kZUluZGV4
ID0gZGV0ZWN0UGVlcEhvbGVCcmFuY2goKTsKKyAgICAgICAgaWYgKGJyYW5jaE5vZGVJbmRleCAh
PSBOb05vZGUpIHsKKyAgICAgICAgICAgIC8vIGRldGVjdFBlZXBIb2xlQnJhbmNoIGN1cnJlbnRs
eSBvbmx5IHBlcm1pdHMgdGhlIGJyYW5jaCB0byBiZSB0aGUgdmVyeSBuZXh0IG5vZGUsCisgICAg
ICAgICAgICAvLyBzbyBjYW4gYmUgbm8gaW50ZXJ2ZW5pbmcgbm9kZXMgdG8gYWxzbyByZWZlcmVu
Y2UgdGhlIGNvbXBhcmUuIAorICAgICAgICAgICAgQVNTRVJUKG5vZGUuYWRqdXN0ZWRSZWZDb3Vu
dCgpID09IDEpOworCisgICAgICAgICAgICBpZiAoaXNJbnRlZ2VyKG5vZGUuY2hpbGQxKSB8fCBp
c0ludGVnZXIobm9kZS5jaGlsZDIpKQorICAgICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZUlu
dGVnZXJCcmFuY2gobm9kZSwgYnJhbmNoTm9kZUluZGV4LCBKSVRDb21waWxlcjo6RXF1YWwpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZUVxKG5vZGUs
IGJyYW5jaE5vZGVJbmRleCk7CisKKyAgICAgICAgICAgIHVzZShub2RlLmNoaWxkMSk7CisgICAg
ICAgICAgICB1c2Uobm9kZS5jaGlsZDIpOworICAgICAgICAgICAgbV9jb21waWxlSW5kZXggPSBi
cmFuY2hOb2RlSW5kZXg7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAg
ICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEpOwogICAgICAg
ICBTcGVjdWxhdGVJbnRlZ2VyT3BlcmFuZCBvcDIodGhpcywgbm9kZS5jaGlsZDIpOwogICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSwgb3AyKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDg4OTg1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzgsMTggKzEzOCwzNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tBcmd1
bWVudFR5cGVzKCk7CiAgICAgdm9pZCBpbml0aWFsaXplVmFyaWFibGVUeXBlcygpOwogCi0gICAg
Ym9vbCBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpCisgICAgLy8gUmV0dXJucyB0aGUgbm9kZSBpbmRl
eCBvZiB0aGUgYnJhbmNoIG5vZGUgaWYgcGVlcGhvbGUgaXMgb2theSwgTm9Ob2RlIG90aGVyd2lz
ZS4KKyAgICBOb2RlSW5kZXggZGV0ZWN0UGVlcEhvbGVCcmFuY2goKQogICAgIHsKLSAgICAgICAg
Ly8gQ2hlY2sgaWYgdGhlIGJsb2NrIGNvbnRhaW5zIHByZWNpc2VseSBvbmUgbW9yZSBub2RlLgot
ICAgICAgICBpZiAobV9jb21waWxlSW5kZXggKyAyICE9IG1faml0LmdyYXBoKCkubV9ibG9ja3Nb
bV9ibG9ja10tPmVuZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgTm9kZUlu
ZGV4IGxhc3ROb2RlSW5kZXggPSBtX2ppdC5ncmFwaCgpLm1fYmxvY2tzW21fYmxvY2tdLT5lbmQg
LSAxOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gaW50ZXJ2ZW5pbmcgbm9kZXMgd2lsbCBi
ZSBnZW5lcmF0ZWQuCisgICAgICAgIGZvciAoTm9kZUluZGV4IGluZGV4ID0gbV9jb21waWxlSW5k
ZXggKyAxOyBpbmRleCA8IGxhc3ROb2RlSW5kZXg7ICsraW5kZXgpIHsKKyAgICAgICAgICAgIGlm
IChtX2ppdC5ncmFwaCgpW2luZGV4XS5zaG91bGRHZW5lcmF0ZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBOb05vZGU7CisgICAgICAgIH0KIAogICAgICAgICAvLyBDaGVjayBpZiB0aGUgbGFz
dE5vZGUgaXMgYSBicmFuY2ggb24gdGhpcyBub2RlLgotICAgICAgICBOb2RlJiBsYXN0Tm9kZSA9
IG1faml0LmdyYXBoKClbbV9jb21waWxlSW5kZXggKyAxXTsKLSAgICAgICAgcmV0dXJuIGxhc3RO
b2RlLm9wID09IEJyYW5jaCAmJiBsYXN0Tm9kZS5jaGlsZDEgPT0gbV9jb21waWxlSW5kZXg7Cisg
ICAgICAgIE5vZGUmIGxhc3ROb2RlID0gbV9qaXQuZ3JhcGgoKVtsYXN0Tm9kZUluZGV4XTsKKyAg
ICAgICAgcmV0dXJuIGxhc3ROb2RlLm9wID09IEJyYW5jaCAmJiBsYXN0Tm9kZS5jaGlsZDEgPT0g
bV9jb21waWxlSW5kZXggPyBsYXN0Tm9kZUluZGV4IDogTm9Ob2RlOworICAgIH0KKworICAgIGJv
b2wgaXNJbnRlZ2VyKE5vZGVJbmRleCBub2RlSW5kZXgpCisgICAgeworICAgICAgICBOb2RlJiBu
b2RlID0gbV9qaXQuZ3JhcGgoKVtub2RlSW5kZXhdOworICAgICAgICBpZiAobm9kZS5oYXNJbnQz
MlJlc3VsdCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUudmlydHVhbFJlZ2lzdGVyKCk7CisgICAgICAg
IEdlbmVyYXRpb25JbmZvJiBpbmZvID0gbV9nZW5lcmF0aW9uSW5mb1t2aXJ0dWFsUmVnaXN0ZXJd
OworCisgICAgICAgIHJldHVybiAoaW5mby5yZWdpc3RlckZvcm1hdCgpIHwgRGF0YUZvcm1hdEpT
KSA9PSBEYXRhRm9ybWF0SlNJbnRlZ2VyOwogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZVBlZXBI
b2xlQnJhbmNoKE5vZGUmLCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlvbik7CisgICAg
dm9pZCBjb21waWxlUGVlcEhvbGVJbnRlZ2VyQnJhbmNoKE5vZGUmLCBOb2RlSW5kZXggYnJhbmNo
Tm9kZUluZGV4LCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlvbik7CisgICAgdm9pZCBj
b21waWxlUGVlcEhvbGVFcShOb2RlJiwgTm9kZUluZGV4IGJyYW5jaE5vZGVJbmRleCk7CiAKICAg
ICAvLyBBZGQgYSBzcGVjdWxhdGlvbiBjaGVjayB3aXRob3V0IGFkZGl0aW9uYWwgcmVjb3Zlcnku
CiAgICAgdm9pZCBzcGVjdWxhdGlvbkNoZWNrKE1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXBUb0Zh
aWwpCg==
</data>
<flag name="review"
          id="91477"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>