<?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>84746</bug_id>
          
          <creation_ts>2012-04-24 11:59:59 -0700</creation_ts>
          <short_desc>DFG performs incorrect DCE on (some?) intrinsics</short_desc>
          <delta_ts>2012-04-24 14:01:40 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>oliver</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608909</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-24 11:59:59 -0700</bug_when>
    <thetext>Take this beautiful piece of code:
function f(a,b,c) {
    if (a) Math.abs(b); // or Math.max(b,c)
}
var o = {valueOf:function(){return print(&quot;Working&quot;);}}
var i = 0

var forceDFGCompile = true;

for (; forceDFGCompile&amp;&amp;i &lt; 10000; i++)
    if (i &amp; 1) f(true, 5.5, 5.6);
    else f(false, o, i);
f(true, o,i);


This should output &quot;Working&quot;, but does not if the DFG is enabled.  This seems to happen to some extent with all the intrinsics.  If you set forceDFGCompile to false, it works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608912</commentid>
    <comment_count>1</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-24 12:02:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/11310772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608919</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-24 12:11:47 -0700</bug_when>
    <thetext>Returning the result of the intrinsic produces the correct result, so i think this is a DCE bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608945</commentid>
    <comment_count>3</comment_count>
      <attachid>138621</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 12:36:27 -0700</bug_when>
    <thetext>Created attachment 138621
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608946</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 12:36:50 -0700</bug_when>
    <thetext>Working on hacking up some layout tests. Can I get an RS for those too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608950</commentid>
    <comment_count>5</comment_count>
      <attachid>138621</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-04-24 12:40:48 -0700</bug_when>
    <thetext>Comment on attachment 138621
the patch

r=me, rs=me for tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608997</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 13:43:39 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/115103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609015</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-24 13:58:03 -0700</bug_when>
    <thetext>Reopen, because it broke the Qt build:
/home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp: In member function ‘void JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node&amp;)’:
/home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2058: error: ‘isPredictedNumber’ was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609017</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 13:58:57 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Reopen, because it broke the Qt build:
&gt; /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp: In member function ‘void JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node&amp;)’:
&gt; /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2058: error: ‘isPredictedNumber’ was not declared in this scope

Oh noes!  Looking at this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609020</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 13:59:53 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Reopen, because it broke the Qt build:
&gt; &gt; /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp: In member function ‘void JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node&amp;)’:
&gt; &gt; /home/webkitbuildbot/slaves/release32bit-qt5/buildslave/qt-linux-32-release-qt5/build/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:2058: error: ‘isPredictedNumber’ was not declared in this scope
&gt; 
&gt; Oh noes!  Looking at this now.

Oh, it&apos;s a stupid typo.  Fix on the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609024</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-24 14:01:40 -0700</bug_when>
    <thetext>Build fix for 32-bit landed in http://trac.webkit.org/changeset/115105</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138621</attachid>
            <date>2012-04-24 12:36:27 -0700</date>
            <delta_ts>2012-04-24 12:40:48 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixintrinsic_patch_1.diff</filename>
            <type>text/plain</type>
            <size>10100</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE1MDk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDEyLTA0LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHBlcmZvcm1zIGluY29ycmVjdCBEQ0Ugb24gKHNvbWU/KSBpbnRyaW5zaWNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDc0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTEzMTA3NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEJ5dGVDb2RlUGFyc2VyKToKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6c2V0SW50cmluc2ljUmVzdWx0KToKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlTWluTWF4KToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5
cGUuaDoKKyAgICAgICAgKERGRyk6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisKIDIwMTItMDQtMjMgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgb24gQVJNdjcgc2hvdWxkIG5vdCBPU1IgZXhpdCBv
biBldmVyeSBpbnRlZ2VyIGRpdmlzaW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDExNTA5MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxMCw2ICszMTAsMTAgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGlu
ZAogICAgICAgICBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLmZpbHRlcihQcmVkaWN0TnVtYmVyKTsK
ICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChQcmVkaWN0RG91YmxlKTsKICAgICAgICAg
YnJlYWs7CisgICAgICAgIAorICAgIGNhc2UgQ2hlY2tOdW1iZXI6CisgICAgICAgIGZvck5vZGUo
bm9kZS5jaGlsZDEoKSkuZmlsdGVyKFByZWRpY3ROdW1iZXIpOworICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAogICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAgY2FzZSBBcml0aEFkZDogewpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHJldmlzaW9uIDExNTA5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw2ICs4OSw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBlbWl0RnVuY3Rpb25DaGVjayhKU0Z1bmN0aW9uKiBleHBlY3RlZEZ1bmN0aW9uLCBO
b2RlSW5kZXggY2FsbFRhcmdldCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kKTsKICAgICAvLyBIYW5kbGUgaW5saW5pbmcuIFJldHVybiB0cnVlIGlmIGl0IHN1Y2Nl
ZWRlZCwgZmFsc2UgaWYgd2UgbmVlZCB0byBwbGFudCBhIGNhbGwuCiAgICAgYm9vbCBoYW5kbGVJ
bmxpbmluZyhib29sIHVzZXNSZXN1bHQsIGludCBjYWxsVGFyZ2V0LCBOb2RlSW5kZXggY2FsbFRh
cmdldE5vZGVJbmRleCwgaW50IHJlc3VsdE9wZXJhbmQsIGJvb2wgY2VydGFpbkFib3V0RXhwZWN0
ZWRGdW5jdGlvbiwgSlNGdW5jdGlvbiosIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzLCB1bnNpZ25lZCBuZXh0T2Zmc2V0LCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kKTsKKyAgICAvLyBIYW5kbGUgc2V0dGluZyB0aGUgcmVzdWx0IG9mIGFuIGludHJpbnNp
Yy4KKyAgICB2b2lkIHNldEludHJpbnNpY1Jlc3VsdChib29sIHVzZXNSZXN1bHQsIGludCByZXN1
bHRPcGVyYW5kLCBOb2RlSW5kZXgpOwogICAgIC8vIEhhbmRsZSBpbnRyaW5zaWMgZnVuY3Rpb25z
LiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVkZWQsIGZhbHNlIGlmIHdlIG5lZWQgdG8gcGxhbnQg
YSBjYWxsLgogICAgIGJvb2wgaGFuZGxlSW50cmluc2ljKGJvb2wgdXNlc1Jlc3VsdCwgaW50IHJl
c3VsdE9wZXJhbmQsIEludHJpbnNpYywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMsIFByZWRpY3RlZFR5cGUgcHJlZGljdGlvbik7CiAgICAgLy8gUHJl
cGFyZSB0byBwYXJzZSBhIGJsb2NrLgpAQCAtMTI4NywyMyArMTI4OSwzMCBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhib29sCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZU1pbk1heChib29sIHVzZXNSZXN1bHQsIGludCByZXN1
bHRPcGVyYW5kLCBOb2RlVHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMpCit2b2lkIEJ5dGVDb2RlUGFyc2VyOjpzZXRJbnRyaW5zaWNSZXN1
bHQoYm9vbCB1c2VzUmVzdWx0LCBpbnQgcmVzdWx0T3BlcmFuZCwgTm9kZUluZGV4IG5vZGVJbmRl
eCkKIHsKICAgICBpZiAoIXVzZXNSZXN1bHQpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICByZXR1cm47CisgICAgc2V0KHJlc3VsdE9wZXJhbmQsIG5vZGVJbmRleCk7Cit9CiAKK2Jvb2wg
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZU1pbk1heChib29sIHVzZXNSZXN1bHQsIGludCByZXN1bHRP
cGVyYW5kLCBOb2RlVHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpCit7CiAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09
IDEpIHsgLy8gTWF0aC5taW4oKQotICAgICAgICBzZXQocmVzdWx0T3BlcmFuZCwgY29uc3RhbnRO
YU4oKSk7CisgICAgICAgIHNldEludHJpbnNpY1Jlc3VsdCh1c2VzUmVzdWx0LCByZXN1bHRPcGVy
YW5kLCBjb25zdGFudE5hTigpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgICAK
ICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPT0gMikgeyAvLyBNYXRoLm1pbih4
KQotICAgICAgICBzZXQocmVzdWx0T3BlcmFuZCwgZ2V0KHJlZ2lzdGVyT2Zmc2V0ICsgYXJndW1l
bnRUb09wZXJhbmQoMSkpKTsKKyAgICAgICAgLy8gRklYTUU6IHdoYXQgd2UnZCByZWFsbHkgbGlr
ZSBpcyBhIFZhbHVlVG9OdW1iZXIsIGV4Y2VwdCB3ZSBkb24ndCBzdXBwb3J0IHRoYXQgcmlnaHQg
bm93LiBPaCB3ZWxsLgorICAgICAgICBOb2RlSW5kZXggcmVzdWx0ID0gZ2V0KHJlZ2lzdGVyT2Zm
c2V0ICsgYXJndW1lbnRUb09wZXJhbmQoMSkpOworICAgICAgICBhZGRUb0dyYXBoKENoZWNrTnVt
YmVyLCByZXN1bHQpOworICAgICAgICBzZXRJbnRyaW5zaWNSZXN1bHQodXNlc1Jlc3VsdCwgcmVz
dWx0T3BlcmFuZCwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAog
ICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9PSAzKSB7IC8vIE1hdGgubWluKHgs
IHkpCi0gICAgICAgIHNldChyZXN1bHRPcGVyYW5kLCBhZGRUb0dyYXBoKG9wLCBnZXQocmVnaXN0
ZXJPZmZzZXQgKyBhcmd1bWVudFRvT3BlcmFuZCgxKSksIGdldChyZWdpc3Rlck9mZnNldCArIGFy
Z3VtZW50VG9PcGVyYW5kKDIpKSkpOworICAgICAgICBzZXRJbnRyaW5zaWNSZXN1bHQodXNlc1Jl
c3VsdCwgcmVzdWx0T3BlcmFuZCwgYWRkVG9HcmFwaChvcCwgZ2V0KHJlZ2lzdGVyT2Zmc2V0ICsg
YXJndW1lbnRUb09wZXJhbmQoMSkpLCBnZXQocmVnaXN0ZXJPZmZzZXQgKyBhcmd1bWVudFRvT3Bl
cmFuZCgyKSkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApAQCAtMTMxNywx
NCArMTMyNiw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpYyhib28KIHsK
ICAgICBzd2l0Y2ggKGludHJpbnNpYykgewogICAgIGNhc2UgQWJzSW50cmluc2ljOiB7Ci0gICAg
ICAgIGlmICghdXNlc1Jlc3VsdCkgewotICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3VjaCB0
aGluZyBhcyBleGVjdXRpbmcgYWJzIGZvciBlZmZlY3QsIHNvIHRoaXMKLSAgICAgICAgICAgIC8v
IGlzIGRlYWQgY29kZS4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIAogICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPT0gMSkgeyAvLyBN
YXRoLmFicygpCi0gICAgICAgICAgICBzZXQocmVzdWx0T3BlcmFuZCwgY29uc3RhbnROYU4oKSk7
CisgICAgICAgICAgICBzZXRJbnRyaW5zaWNSZXN1bHQodXNlc1Jlc3VsdCwgcmVzdWx0T3BlcmFu
ZCwgY29uc3RhbnROYU4oKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
CkBAIC0xMzM0LDcgKzEzMzcsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5z
aWMoYm9vCiAgICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRUb0dyYXBoKEFyaXRoQWJz
LCBnZXQocmVnaXN0ZXJPZmZzZXQgKyBhcmd1bWVudFRvT3BlcmFuZCgxKSkpOwogICAgICAgICBp
ZiAobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJ
bmRleCwgT3ZlcmZsb3cpKQogICAgICAgICAgICAgbV9ncmFwaFtub2RlSW5kZXhdLm1lcmdlRmxh
Z3MoTm9kZU1heU92ZXJmbG93KTsKLSAgICAgICAgc2V0KHJlc3VsdE9wZXJhbmQsIG5vZGVJbmRl
eCk7CisgICAgICAgIHNldEludHJpbnNpY1Jlc3VsdCh1c2VzUmVzdWx0LCByZXN1bHRPcGVyYW5k
LCBub2RlSW5kZXgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEzNDUsMTgg
KzEzNDgsMTUgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKGJvbwogICAg
ICAgICByZXR1cm4gaGFuZGxlTWluTWF4KHVzZXNSZXN1bHQsIHJlc3VsdE9wZXJhbmQsIEFyaXRo
TWF4LCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpOwogICAgICAg
ICAKICAgICBjYXNlIFNxcnRJbnRyaW5zaWM6IHsKLSAgICAgICAgaWYgKCF1c2VzUmVzdWx0KQot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIAogICAgICAgICBpZiAoYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPT0gMSkgeyAvLyBNYXRoLnNxcnQoKQotICAgICAgICAgICAgc2V0
KHJlc3VsdE9wZXJhbmQsIGNvbnN0YW50TmFOKCkpOworICAgICAgICAgICAgc2V0SW50cmluc2lj
UmVzdWx0KHVzZXNSZXN1bHQsIHJlc3VsdE9wZXJhbmQsIGNvbnN0YW50TmFOKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghTWFj
cm9Bc3NlbWJsZXI6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIHNldChyZXN1bHRPcGVyYW5kLCBhZGRUb0dy
YXBoKEFyaXRoU3FydCwgZ2V0KHJlZ2lzdGVyT2Zmc2V0ICsgYXJndW1lbnRUb09wZXJhbmQoMSkp
KSk7CisgICAgICAgIHNldEludHJpbnNpY1Jlc3VsdCh1c2VzUmVzdWx0LCByZXN1bHRPcGVyYW5k
LCBhZGRUb0dyYXBoKEFyaXRoU3FydCwgZ2V0KHJlZ2lzdGVyT2Zmc2V0ICsgYXJndW1lbnRUb09w
ZXJhbmQoMSkpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAxMTUwOTMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc1LDExICs3NSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAg
ICAgbWFjcm8oVmFsdWVUb0ludDMyLCBOb2RlUmVzdWx0SW50MzIgfCBOb2RlTXVzdEdlbmVyYXRl
KSBcCiAgICAgLyogVXNlZCB0byBib3ggdGhlIHJlc3VsdCBvZiBVUlNoaWZ0IG5vZGVzIChyZXN1
bHQgaGFzIHJhbmdlIDAuLjJeMzItMSkuICovXAogICAgIG1hY3JvKFVJbnQzMlRvTnVtYmVyLCBO
b2RlUmVzdWx0TnVtYmVyKSBcCisgICAgXAogICAgIC8qIFVzZWQgdG8gY2FzdCBrbm93biBpbnRl
Z2VycyB0byBkb3VibGVzLCBzbyBhcyB0byBzZXBhcmF0ZSB0aGUgZG91YmxlIGZvcm0gKi9cCiAg
ICAgLyogb2YgdGhlIHZhbHVlIGZyb20gdGhlIGludGVnZXIgZm9ybS4gKi9cCiAgICAgbWFjcm8o
SW50MzJUb0RvdWJsZSwgTm9kZVJlc3VsdE51bWJlcikgXAogICAgIC8qIFVzZWQgdG8gc3BlY3Vs
YXRlIHRoYXQgYSBkb3VibGUgdmFsdWUgaXMgYWN0dWFsbHkgYW4gaW50ZWdlci4gKi9cCiAgICAg
bWFjcm8oRG91YmxlQXNJbnQzMiwgTm9kZVJlc3VsdEludDMyKSBcCisgICAgLyogVXNlZCB0byBy
ZWNvcmQgcGxhY2VzIHdoZXJlIHdlIG11c3QgY2hlY2sgaWYgYSB2YWx1ZSBpcyBhIG51bWJlci4g
Ki9cCisgICAgbWFjcm8oQ2hlY2tOdW1iZXIsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCiAg
ICAgLyogTm9kZXMgZm9yIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4gKi9cCiAgICAgbWFjcm8oQXJp
dGhBZGQsIE5vZGVSZXN1bHROdW1iZXIgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTE1MDkzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYyMCw2ICs2MjAsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrRnVuY3Rpb246
CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFRlYXJPZmZBY3RpdmF0
aW9uOgorICAgICAgICBjYXNlIENoZWNrTnVtYmVyOgogICAgICAgICAgICAgY2hhbmdlZCB8PSBt
ZXJnZURlZmF1bHRGbGFncyhub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDExNTA5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNTMs
NiArMjA1MywxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVJbnQzMlRvRG91YmxlKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9
CisgICAgICAgIAorICAgIGNhc2UgQ2hlY2tOdW1iZXI6IHsKKyAgICAgICAgaWYgKCFpc1ByZWRp
Y3RlZE51bWJlcihtX3N0YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkgeworICAg
ICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAg
ICAgICAgSklUQ29tcGlsZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkVxdWFsLCBvcDEudGFnR1BSKCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQz
MlRhZykpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBC
YWRUeXBlLCBKU1ZhbHVlUmVncyhvcDEudGFnR1BSKCksIG9wMS5wYXlsb2FkR1BSKCkpLCBub2Rl
LmNoaWxkMSgpLmluZGV4KCksCisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgb3AxLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6TG93ZXN0VGFnKSkpOworICAgICAgICAgICAgaXNJbnRlZ2VyLmxpbmsoJm1faml0KTsKKyAg
ICAgICAgfQorICAgICAgICBub1Jlc3VsdChtX2NvbXBpbGVJbmRleCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KIAogICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAgY2FzZSBBcml0aEFkZDoKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkocmV2aXNpb24gMTE1MDkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyOCw2ICsyMTI4LDE5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgY29tcGlsZUlu
dDMyVG9Eb3VibGUobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICAgICAgCisgICAg
Y2FzZSBDaGVja051bWJlcjogeworICAgICAgICBpZiAoIWlzTnVtYmVyUHJlZGljdGlvbihtX3N0
YXRlLmZvck5vZGUobm9kZS5jaGlsZDEoKSkubV90eXBlKSkgeworICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgICAgICAgICAgSklUQ29tcGls
ZXI6Okp1bXAgaXNJbnRlZ2VyID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpBYm92
ZU9yRXF1YWwsIG9wMS5ncHIoKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICAgICAgQmFkVHlwZSwgSlNW
YWx1ZVJlZ3Mob3AxLmdwcigpKSwgbm9kZS5jaGlsZDEoKS5pbmRleCgpLAorICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIG9wMS5ncHIoKSwg
R1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgICAgICBpc0ludGVnZXIu
bGluaygmbV9qaXQpOworICAgICAgICB9CisgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICBjYXNl
IEFyaXRoQWRkOgo=
</data>
<flag name="review"
          id="144032"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>