<?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>68166</bug_id>
          
          <creation_ts>2011-09-15 08:54:11 -0700</creation_ts>
          <short_desc>Unsigned bit shift fails under certain conditions in 32 bit builds</short_desc>
          <delta_ts>2011-09-16 17:19:32 -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>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter>keith.thorne</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467828</commentid>
    <comment_count>0</comment_count>
    <who name="">keith.thorne</who>
    <bug_when>2011-09-15 08:54:11 -0700</bug_when>
    <thetext>A code snippet will explain it best:

        var i = 0,
            value = -1698987653.3475556;

        var j = (value &gt;&gt;&gt; (i * 8)) % 256;

(I know that the value is a weird number, but it is what I had in this case).

So, in the above code snippet on Webkit for windows, the formula will return -2 as the answer, which is wrong, as it should return 254 (as it does on all other browsers).
If, however, you do this:

       var value = -1698987653.3475556;

       var j = (value &gt;&gt;&gt; (0 * 8)) % 256;

Note that I have just replaced the i with a 0, the returned value is correct. If the initial value is positive, then the first code snippet works as expected, so the point is, with a negative value and an assigned variable instead of a hard coded integer, the unsigned right shift will fail.

NOTE: the modular is simply there because I had it in my code, it does not really make a difference to the bug itself
NOTE 2: I did not try this with an unsigned left shift
NOTE 3: A signed right shift works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468133</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-15 16:00:56 -0700</bug_when>
    <thetext>&gt; So, in the above code snippet on Webkit for windows, the formula will return -2 as the answer, 
&gt; which is wrong, as it should return 254 (as it does on all other browsers).

Are you seeing this with a WebKit nightly, or with shipping Safari/WebKit 5.1?

On a Mac, I&apos;m getting 123 everywhere, including Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468316</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-15 23:06:04 -0700</bug_when>
    <thetext>(-1698987653.3475556 &gt;&gt;&gt; 0) % 256

I believe evaluates as:

((uint32_t)(int32_t)-1698987653.3475556) % 256
((uint32_t)-1698987653) % 256
0x9ABB817Bu % 256
0x7Bu
123

So as Alexey says, 123 is the correct result.
Are you sure you were seeing -2 or 254 from this test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468352</commentid>
    <comment_count>3</comment_count>
    <who name="">keith.thorne</who>
    <bug_when>2011-09-16 00:09:56 -0700</bug_when>
    <thetext>Okay, my bad, I should have double checked the snippet in the console before posting. This here snippet breaks as it should, in the console as well:

var encodeNumber = function(target, bytes, value) {
    var i = 0;

    for( ; i &lt; bytes; i++ ) {
        target.push((value &gt;&gt;&gt; (i * 8)) % 256);
    }
}

var target = [];
var bytes = 4;
var value = -1699021058.648747;
encodeNumber(target, bytes, value);
console.log(target);

(This mirrors more the code that I am working with). The first value of the array (-2) is the problem value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468353</commentid>
    <comment_count>4</comment_count>
    <who name="">keith.thorne</who>
    <bug_when>2011-09-16 00:11:00 -0700</bug_when>
    <thetext>And a quick addendum...this is only on Windows. Works fine on the Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468369</commentid>
    <comment_count>5</comment_count>
      <attachid>107616</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-09-16 00:43:03 -0700</bug_when>
    <thetext>Created attachment 107616
test case

Attaching same test for easier verification.

I can reproduce this in Safari 5.0.5 on Mac OS X when running in 32-bit mode. Haven&apos;t tested ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468797</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-16 13:58:02 -0700</bug_when>
    <thetext>Gottcha.  Hmmm, this repros with just:

var value = -1699021058.1;
var i = 0;
print(value &gt;&gt;&gt; i);

(prints -1699021058, the result of unsigned right shift should never be negative).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468807</commentid>
    <comment_count>7</comment_count>
      <attachid>107722</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-16 14:28:33 -0700</bug_when>
    <thetext>Created attachment 107722
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468812</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-16 14:32:53 -0700</bug_when>
    <thetext>I should probably add a test case for this. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468848</commentid>
    <comment_count>9</comment_count>
      <attachid>107722</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-16 15:35:06 -0700</bug_when>
    <thetext>Comment on attachment 107722
Fix

r=me, but please check in with a test, and be careful when conflict-resolving with r95324.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468920</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-16 17:19:32 -0700</bug_when>
    <thetext>Fixed in r95338</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>107616</attachid>
            <date>2011-09-16 00:43:03 -0700</date>
            <delta_ts>2011-09-16 00:43:03 -0700</delta_ts>
            <desc>test case</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>285</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KdmFyIGVuY29kZU51bWJlciA9IGZ1bmN0aW9uKHRhcmdldCwgYnl0ZXMsIHZhbHVl
KSB7CiAgIHZhciBpID0gMDsKCiAgIGZvciggOyBpIDwgYnl0ZXM7IGkrKyApIHsKICAgICAgIHRh
cmdldC5wdXNoKCh2YWx1ZSA+Pj4gKGkgKiA4KSkgJSAyNTYpOwogICB9Cn0KCnZhciB0YXJnZXQg
PSBbXTsKdmFyIGJ5dGVzID0gNDsKdmFyIHZhbHVlID0gLTE2OTkwMjEwNTguNjQ4NzQ3OwplbmNv
ZGVOdW1iZXIodGFyZ2V0LCBieXRlcywgdmFsdWUpOwphbGVydCh0YXJnZXQpOwoKPC9zY3JpcHQ+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107722</attachid>
            <date>2011-09-16 14:28:33 -0700</date>
            <delta_ts>2011-09-16 15:35:17 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>68166.patch</filename>
            <type>text/plain</type>
            <size>7109</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTUzMjUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMDktMTYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIFVuc2lnbmVkIGJpdCBzaGlmdCBmYWlscyB1bmRlciBjZXJ0YWluIGNvbmRpdGlv
bnMgaW4gMzIgYml0IGJ1aWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjgxNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGUgbWFqb3IgYnVnIGhlcmUgaXMgdGhhdCB0aGUgc2xvdyBjYXNlICh3aGlj
aCBoYW5kbGVzIHNoaWZ0cyBvZgorICAgICAgICBkb3VibGVzKSBkb2Vzbid0IGNoZWNrIGZvciBu
ZWdhdGl2ZSByZXN1bHRzIGZyb20gYW4gdW5zaWduZWQgc2hpZnQKKyAgICAgICAgKHdoaWNoIHNo
b3VsZCBiZSB1bnNpZ25lZCwgYW5kIGFzIHN1Y2ggY2FuJ3QgYmUgcmVwcmVzZW50ZWQgYnkgYQor
ICAgICAgICBzaWduZWQgaW50ZWdlciBpbW1lZGlhdGUpLiAgVGhlIGltcGxlbWVudGF0aW9uIGlz
IGFsc28gZmxhd2VkIGZvcgorICAgICAgICBzaGlmdHMgYnkgbmVnYXRpdmUgc2hpZnQgYW1vdW50
cyAodHJlYXRzIGFzIHNoaWZ0IGJ5IHplcm8pLgorCisgICAgICAgICogaml0L0pJVEFyaXRobWV0
aWMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFJpZ2h0U2hpZnQpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRSaWdodFNoaWZ0U2xvd0Nhc2UpOgorCiAyMDExLTA5LTE2ICBHZW9m
ZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUm9sbGVkIGJhY2sgaW4g
cjk1MjAxIHdpdGggdGVzdCBmYWlsdXJlIGZpeGVkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcAkocmV2aXNpb24gOTUzMTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxNiwzMiArMjE2LDI3IEBAIHZvaWQgSklUOjplbWl0UmlnaHRTaGlmdChJ
bnN0cnVjdGlvbiogY3UKICAgICBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbW1lZGlhdGVJbnQob3Ay
KSkgewogICAgICAgICBlbWl0TG9hZChvcDEsIHJlZ1QxLCByZWdUMCk7CiAgICAgICAgIGFkZFNs
b3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Oklu
dDMyVGFnKSkpOwotICAgICAgICBpbnQgc2hpZnQgPSBnZXRDb25zdGFudE9wZXJhbmQob3AyKS5h
c0ludDMyKCk7Ci0gICAgICAgIGlmIChpc1Vuc2lnbmVkKSB7Ci0gICAgICAgICAgICBpZiAoc2hp
ZnQpCi0gICAgICAgICAgICAgICAgdXJzaGlmdDMyKEltbTMyKHNoaWZ0ICYgMHgxZiksIHJlZ1Qw
KTsKLSAgICAgICAgICAgIC8vIHVuc2lnbmVkIHNoaWZ0IDwgMCBvciBzaGlmdCA9IGsqMl4zMiBt
YXkgcmVzdWx0IGluIChlc3NlbnRpYWxseSkKLSAgICAgICAgICAgIC8vIGEgdG9VaW50IGNvbnZl
cnNpb24sIHdoaWNoIGNhbiByZXN1bHQgaW4gYSB2YWx1ZSB3ZSBjYW4gcmVwcmVzZW50Ci0gICAg
ICAgICAgICAvLyBhcyBhbiBpbW1lZGlhdGUgaW50LgotICAgICAgICAgICAgaWYgKHNoaWZ0IDwg
MCB8fCAhKHNoaWZ0ICYgMzEpKQotICAgICAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMy
KExlc3NUaGFuLCByZWdUMCwgVHJ1c3RlZEltbTMyKDApKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
c2hpZnQpIHsgLy8gc2lnbmVkIHJpZ2h0IHNoaWZ0IGJ5IHplcm8gaXMgc2ltcGx5IHRvSW50IGNv
bnZlcnNpb24KLSAgICAgICAgICAgIHJzaGlmdDMyKEltbTMyKHNoaWZ0ICYgMHgxZiksIHJlZ1Qw
KTsKLSAgICAgICAgfQorICAgICAgICBpbnQgc2hpZnQgPSBnZXRDb25zdGFudE9wZXJhbmQob3Ay
KS5hc0ludDMyKCkgJiAweDFmOworICAgICAgICBpZiAoc2hpZnQpIHsKKyAgICAgICAgICAgIGlm
IChpc1Vuc2lnbmVkKQorICAgICAgICAgICAgICAgIHVyc2hpZnQzMihJbW0zMihzaGlmdCksIHJl
Z1QwKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByc2hpZnQzMihJbW0zMihz
aGlmdCksIHJlZ1QwKTsKKyAgICAgICAgfSBlbHNlIGlmIChpc1Vuc2lnbmVkKSAvLyBzaWduZWQg
cmlnaHQgc2hpZnQgYnkgemVybyBpcyBzaW1wbHkgdG9JbnQgY29udmVyc2lvbgorICAgICAgICAg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTGVzc1RoYW4sIHJlZ1QwLCBUcnVzdGVkSW1tMzIoMCkp
KTsKICAgICAgICAgZW1pdFN0b3JlSW50MzIoZHN0LCByZWdUMCwgZHN0ID09IG9wMSk7Ci0gICAg
ICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICBlbWl0TG9hZDIob3AxLCByZWdUMSwg
cmVnVDAsIG9wMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICAgICAgaWYgKCFpc09wZXJhbmRDb25zdGFu
dEltbWVkaWF0ZUludChvcDEpKQorICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90
RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKSk7CisgICAgICAg
IGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkludDMyVGFnKSkpOworICAgICAgICBpZiAoaXNVbnNpZ25lZCkgeworICAgICAgICAgICAg
dXJzaGlmdDMyKHJlZ1QyLCByZWdUMCk7CisgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gz
MihMZXNzVGhhbiwgcmVnVDAsIFRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIHJzaGlmdDMyKHJlZ1QyLCByZWdUMCk7CisgICAgICAgIGVtaXRTdG9yZUludDMy
KGRzdCwgcmVnVDAsIGRzdCA9PSBvcDEgfHwgZHN0ID09IG9wMik7CiAgICAgfQotCi0gICAgZW1p
dExvYWQyKG9wMSwgcmVnVDEsIHJlZ1QwLCBvcDIsIHJlZ1QzLCByZWdUMik7Ci0gICAgaWYgKCFp
c09wZXJhbmRDb25zdGFudEltbWVkaWF0ZUludChvcDEpKQotICAgICAgICBhZGRTbG93Q2FzZShi
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykp
KTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpJbnQzMlRhZykpKTsKLSAgICBpZiAoaXNVbnNpZ25lZCkgewotICAgICAgICB1
cnNoaWZ0MzIocmVnVDIsIHJlZ1QwKTsKLSAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTGVz
c1RoYW4sIHJlZ1QwLCBUcnVzdGVkSW1tMzIoMCkpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcnNo
aWZ0MzIocmVnVDIsIHJlZ1QwKTsKLSAgICBlbWl0U3RvcmVJbnQzMihkc3QsIHJlZ1QwLCBkc3Qg
PT0gb3AxIHx8IGRzdCA9PSBvcDIpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFJpZ2h0U2hpZnRTbG93
Q2FzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyLCBib29sIGlzVW5zaWduZWQpCkBAIC0yNTAsNyArMjQ1LDcgQEAg
dm9pZCBKSVQ6OmVtaXRSaWdodFNoaWZ0U2xvd0Nhc2UoSW5zdHJ1YwogICAgIHVuc2lnbmVkIG9w
MSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgdW5zaWduZWQgb3AyID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBpZiAoaXNPcGVyYW5kQ29uc3Rh
bnRJbW1lZGlhdGVJbnQob3AyKSkgewotICAgICAgICBpbnQgc2hpZnQgPSBnZXRDb25zdGFudE9w
ZXJhbmQob3AyKS5hc0ludDMyKCk7CisgICAgICAgIGludCBzaGlmdCA9IGdldENvbnN0YW50T3Bl
cmFuZChvcDIpLmFzSW50MzIoKSAmIDB4MWY7CiAgICAgICAgIC8vIG9wMSA9IHJlZ1QxOnJlZ1Qw
CiAgICAgICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gaW50MzIgY2hlY2sKICAgICAgICAgaWYg
KHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkpIHsKQEAgLTI1OCwxOCArMjUzLDE4IEBA
IHZvaWQgSklUOjplbWl0UmlnaHRTaGlmdFNsb3dDYXNlKEluc3RydWMKICAgICAgICAgICAgIGZh
aWx1cmVzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6TG93ZXN0VGFnKSkpOwogICAgICAgICAgICAgZW1pdExvYWREb3VibGUob3AxLCBm
cFJlZ1QwKTsKICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZChicmFuY2hUcnVuY2F0ZURvdWJs
ZVRvSW50MzIoZnBSZWdUMCwgcmVnVDApKTsKLSAgICAgICAgICAgIGlmIChpc1Vuc2lnbmVkKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHNoaWZ0KQotICAgICAgICAgICAgICAgICAgICB1cnNoaWZ0
MzIoSW1tMzIoc2hpZnQgJiAweDFmKSwgcmVnVDApOwotICAgICAgICAgICAgICAgIGlmIChzaGlm
dCA8IDAgfHwgIShzaGlmdCAmIDMxKSkKLSAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBw
ZW5kKGJyYW5jaDMyKExlc3NUaGFuLCByZWdUMCwgVHJ1c3RlZEltbTMyKDApKSk7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKHNoaWZ0KQotICAgICAgICAgICAgICAgIHJzaGlmdDMyKEltbTMyKHNo
aWZ0ICYgMHgxZiksIHJlZ1QwKTsKKyAgICAgICAgICAgIGlmIChzaGlmdCkgeworICAgICAgICAg
ICAgICAgIGlmIChpc1Vuc2lnbmVkKQorICAgICAgICAgICAgICAgICAgICB1cnNoaWZ0MzIoSW1t
MzIoc2hpZnQpLCByZWdUMCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICByc2hpZnQzMihJbW0zMihzaGlmdCksIHJlZ1QwKTsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaXNVbnNpZ25lZCkgLy8gc2lnbmVkIHJpZ2h0IHNoaWZ0IGJ5IHplcm8gaXMgc2ltcGx5IHRv
SW50IGNvbnZlcnNpb24KKyAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQoYnJhbmNoMzIo
TGVzc1RoYW4sIHJlZ1QwLCBUcnVzdGVkSW1tMzIoMCkpKTsKICAgICAgICAgICAgIGVtaXRTdG9y
ZUludDMyKGRzdCwgcmVnVDAsIGZhbHNlKTsKICAgICAgICAgICAgIGVtaXRKdW1wU2xvd1RvSG90
KGp1bXAoKSwgT1BDT0RFX0xFTkdUSChvcF9yc2hpZnQpKTsKICAgICAgICAgICAgIGZhaWx1cmVz
LmxpbmsodGhpcyk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzVW5zaWduZWQgJiYgKHNoaWZ0
IDwgMCB8fCAhKHNoaWZ0ICYgMzEpKSkKKyAgICAgICAgaWYgKGlzVW5zaWduZWQgJiYgIXNoaWZ0
KQogICAgICAgICAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBmYWlsZWQgdG8gYm94IGluIGhv
dCBwYXRoCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gb3AxID0gcmVnVDE6cmVnVDAKQEAgLTI3
NywxOSArMjcyLDE5IEBAIHZvaWQgSklUOjplbWl0UmlnaHRTaGlmdFNsb3dDYXNlKEluc3RydWMK
ICAgICAgICAgaWYgKCFpc09wZXJhbmRDb25zdGFudEltbWVkaWF0ZUludChvcDEpKSB7CiAgICAg
ICAgICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGludDMyIGNoZWNrIC0tIG9wMSBpcyBub3Qg
YW4gaW50CiAgICAgICAgICAgICBpZiAoc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSkg
ewotICAgICAgICAgICAgICAgIEp1bXAgbm90RG91YmxlID0gYnJhbmNoMzIoQWJvdmUsIHJlZ1Qx
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6TG93ZXN0VGFnKSk7IC8vIG9wMSBpcyBub3QgYSBkb3Vi
bGUKKyAgICAgICAgICAgICAgICBKdW1wTGlzdCBmYWlsdXJlczsKKyAgICAgICAgICAgICAgICBm
YWlsdXJlcy5hcHBlbmQoYnJhbmNoMzIoQWJvdmUsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6TG93ZXN0VGFnKSkpOyAvLyBvcDEgaXMgbm90IGEgZG91YmxlCiAgICAgICAgICAgICAgICAg
ZW1pdExvYWREb3VibGUob3AxLCBmcFJlZ1QwKTsKLSAgICAgICAgICAgICAgICBKdW1wIG5vdElu
dCA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7IC8vIG9wMiBpcyBub3QgYW4gaW50Ci0gICAgICAgICAgICAgICAgSnVtcCBjYW50VHJ1
bmNhdGUgPSBicmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIoZnBSZWdUMCwgcmVnVDApOwotICAg
ICAgICAgICAgICAgIGlmIChpc1Vuc2lnbmVkKQorICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFw
cGVuZChicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQz
MlRhZykpKTsgLy8gb3AyIGlzIG5vdCBhbiBpbnQKKyAgICAgICAgICAgICAgICBmYWlsdXJlcy5h
cHBlbmQoYnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGZwUmVnVDAsIHJlZ1QwKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGlzVW5zaWduZWQpIHsKICAgICAgICAgICAgICAgICAgICAgdXJzaGlm
dDMyKHJlZ1QyLCByZWdUMCk7Ci0gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBmYWlsdXJlcy5hcHBlbmQoYnJhbmNoMzIoTGVzc1RoYW4sIHJlZ1QwLCBUcnVzdGVkSW1t
MzIoMCkpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgcnNo
aWZ0MzIocmVnVDIsIHJlZ1QwKTsKICAgICAgICAgICAgICAgICBlbWl0U3RvcmVJbnQzMihkc3Qs
IHJlZ1QwLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgp
LCBPUENPREVfTEVOR1RIKG9wX3JzaGlmdCkpOwotICAgICAgICAgICAgICAgIG5vdERvdWJsZS5s
aW5rKHRoaXMpOwotICAgICAgICAgICAgICAgIG5vdEludC5saW5rKHRoaXMpOwotICAgICAgICAg
ICAgICAgIGNhbnRUcnVuY2F0ZS5saW5rKHRoaXMpOworICAgICAgICAgICAgICAgIGZhaWx1cmVz
LmxpbmsodGhpcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>
<flag name="review"
          id="104486"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="104500"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>