<?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>18086</bug_id>
          
          <creation_ts>2008-03-25 15:38:18 -0700</creation_ts>
          <short_desc>Matching of regexps with ^ could be much faster</short_desc>
          <delta_ts>2008-03-31 01:02:24 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>75185</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:38:18 -0700</bug_when>
    <thetext>Matching of regexps with ^ could be much faster

try /^bar/ on a really long string and watch Safari go off the deep end...  It should immediately be able to detect that ^bar doesn&apos;t match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75186</commentid>
    <comment_count>1</comment_count>
      <attachid>20049</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:39:20 -0700</bug_when>
    <thetext>Created attachment 20049
Make matching of regexps using ^ much faster

 JavaScriptCore/pcre/pcre_compile.cpp |   20 ++++++++++++--------
 JavaScriptCore/pcre/pcre_exec.cpp    |   32 ++++++++++++++++++++++++--------
 JavaScriptCore/pcre/pcre_internal.h  |    2 ++
 3 files changed, 38 insertions(+), 16 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75190</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:44:11 -0700</bug_when>
    <thetext>*** Bug 18087 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75191</commentid>
    <comment_count>3</comment_count>
      <attachid>20051</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:45:31 -0700</bug_when>
    <thetext>Created attachment 20051
Test case which shows bug (warning, will hang Safari!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75193</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:49:26 -0700</bug_when>
    <thetext>I&apos;m not sure where to put the test case.  I guess I could put it in LayoutTests/fast/js/
(and make it &quot;pass&quot; if it completes w/o timing out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75196</commentid>
    <comment_count>5</comment_count>
      <attachid>20054</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-25 15:57:48 -0700</bug_when>
    <thetext>Created attachment 20054
Make matching of regexps using ^ much faster

 JavaScriptCore/pcre/pcre_compile.cpp               |   20 +++++++-----
 JavaScriptCore/pcre/pcre_exec.cpp                  |   32 +++++++++++++++-----
 JavaScriptCore/pcre/pcre_internal.h                |    2 +
 LayoutTests/ChangeLog                              |   10 ++++++
 .../fast/js/ascii-regexp-subject-expected.txt      |    5 +++
 LayoutTests/fast/js/ascii-regexp-subject.html      |   13 ++++++++
 .../fast/js/resources/ascii-regexp-subject.js      |   18 +++++++++++
 7 files changed, 84 insertions(+), 16 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75290</commentid>
    <comment_count>6</comment_count>
      <attachid>20054</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-26 07:18:51 -0700</bug_when>
    <thetext>Comment on attachment 20054
Make matching of regexps using ^ much faster

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75641</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-28 09:07:37 -0700</bug_when>
    <thetext>Assigning to Eric, assuming that he will check it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75914</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-03-31 01:02:24 -0700</bug_when>
    <thetext>r31454</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20049</attachid>
            <date>2008-03-25 15:39:20 -0700</date>
            <delta_ts>2008-03-25 15:58:00 -0700</delta_ts>
            <desc>Make matching of regexps using ^ much faster</desc>
            <filename>Make-matching-of-regexps-using-much-faster.patch</filename>
            <type>text/plain</type>
            <size>4741</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NTc1NWExNzQ3ZmZiMDQ2MjlhM2VmNDcxYjE2ZDU1OGQxOWZhMTcyMQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX2NvbXBpbGUuY3BwCmluZGV4IGZlMDI3YjEuLjE1Mzc3NTEgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9wY3Jl
L3BjcmVfY29tcGlsZS5jcHAKQEAgLTYzNiwyNCArNjM2LDI4IEBAIGNvbXBpbGVCcmFuY2goaW50
IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVuc2lnbmVkIGNoYXIqKiBjb2RlcHRyLAogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgLyogSGFuZGxlIHNpbmdsZS1jaGFyYWN0ZXIgbWV0YWNo
YXJhY3RlcnMuIEluIG11bHRpbGluZSBtb2RlLCBeIGRpc2FibGVzCiAgICAgICAgICAgICAgdGhl
IHNldHRpbmcgb2YgYW55IGZvbGxvd2luZyBjaGFyIGFzIGEgZmlyc3QgY2hhcmFjdGVyLiAqLwot
ICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjYXNlICdeJzoKICAgICAgICAgICAgICAg
ICBpZiAob3B0aW9ucyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVMaW5lc09wdGlvbikgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoZmlyc3RieXRlID09IFJFUV9VTlNFVCkKICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpcnN0Ynl0ZSA9IFJFUV9OT05FOwotICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0JPTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0NJUkM7CiAgICAgICAgICAgICAgICAg
cHJldmlvdXMgPSBOVUxMOwotICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9DSVJDOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjYXNl
ICckJzoKICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IE5VTEw7Ci0gICAgICAgICAgICAgICAg
KmNvZGUrKyA9IE9QX0RPTEw7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBNYXRjaEFj
cm9zc011bHRpcGxlTGluZXNPcHRpb24pCisgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1Bf
RU9MOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBP
UF9ET0xMOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICAvKiBUaGVyZSBjYW4gbmV2ZXIgYmUgYSBmaXJzdCBjaGFyIGlmICcuJyBpcyBmaXJz
dCwgd2hhdGV2ZXIgaGFwcGVucyBhYm91dAogICAgICAgICAgICAgIHJlcGVhdHMuIFRoZSB2YWx1
ZSBvZiByZXFieXRlIGRvZXNuJ3QgY2hhbmdlIGVpdGhlci4gKi8KLSAgICAgICAgICAgICAgICAK
KwogICAgICAgICAgICAgY2FzZSAnLic6CiAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Ynl0ZSA9
PSBSRVFfVU5TRVQpCiAgICAgICAgICAgICAgICAgICAgIGZpcnN0Ynl0ZSA9IFJFUV9OT05FOwpA
QCAtMTkwNCw3ICsxOTA4LDcgQEAgc3RhdGljIGJvb2wgYnJhbmNoTmVlZHNMaW5lU3RhcnQoY29u
c3QgdW5zaWduZWQgY2hhciogY29kZSwgdW5zaWduZWQgY2FwdHVyZU1hcCwKICAgICAgICAgcmV0
dXJuIHNjb2RlWzFdID09IE9QX05PVF9ORVdMSU5FICYmICEoY2FwdHVyZU1hcCAmIGJhY2tyZWZN
YXApOwogCiAgICAgLyogRXhwbGljaXQgXiAqLwotICAgIHJldHVybiBvcCA9PSBPUF9DSVJDOwor
ICAgIHJldHVybiBvcCA9PSBPUF9DSVJDIHx8IG9wID09IE9QX0JPTDsKIH0KIAogc3RhdGljIGJv
b2wgYnJhY2tldE5lZWRzTGluZVN0YXJ0KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUsIHVuc2ln
bmVkIGNhcHR1cmVNYXAsIHVuc2lnbmVkIGJhY2tyZWZNYXApCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhl
Yy5jcHAKaW5kZXggMjJjN2ZmNC4uMDZiYWE3NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlX2V4ZWMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNw
cApAQCAtNjUyLDE4ICs2NTIsMzQgQEAgUkVDVVJTRToKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgUlJFVFVSTjsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIFN0
YXJ0IG9mIHN1YmplY3QsIG9yIGFmdGVyIGludGVybmFsIG5ld2xpbmUgaWYgbXVsdGlsaW5lLiAq
LwotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLyogU3RhcnQgb2Ygc3ViamVjdC4gKi8K
KwogICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENJUkMpOgotICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBtZC5zdGFydFN1YmplY3QgJiYg
KCFtZC5tdWx0aWxpbmUgfHwgIWlzTmV3bGluZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0clstMV0pKSkKKyAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLnN1YmplY3RQdHIgIT0gbWQuc3RhcnRTdWJqZWN0KQogICAgICAgICAgICAgICAgICAgICBS
UkVUVVJOX05PX01BVENIOwogICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0cisrOwogICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgLyogRW5kIG9mIHN1YmplY3QsIG9yIGJlZm9yZSBpbnRl
cm5hbCBuZXdsaW5lIGlmIG11bHRpbGluZS4gKi8KLSAgICAgICAgICAgICAgICAKKworICAgICAg
ICAgICAgLyogQWZ0ZXIgaW50ZXJuYWwgbmV3bGluZSBpZiBtdWx0aWxpbmUuICovCisKKyAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShCT0wpOgorICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBtZC5zdGFydFN1YmplY3QgJiYgIWlzTmV3bGlu
ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0clstMV0pKQorICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOworICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOworICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RF
OworCisgICAgICAgICAgICAvKiBFbmQgb2Ygc3ViamVjdC4gKi8KKwogICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKERPTEwpOgotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0ciA8IG1kLmVuZFN1YmplY3QgJiYgKCFtZC5tdWx0aWxpbmUgfHwgIWlz
TmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKSkKKyAgICAgICAg
ICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPCBtZC5lbmRT
dWJqZWN0KQorICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOworICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOworICAgICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFOworCisgICAgICAgICAgICAvKiBCZWZvcmUgaW50ZXJuYWwg
bmV3bGluZSBpZiBtdWx0aWxpbmUuICovCisKKyAgICAgICAgICAgIEJFR0lOX09QQ09ERShFT0wp
OgorICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0
ciA8IG1kLmVuZFN1YmplY3QgJiYgIWlzTmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LnN1YmplY3RQdHIpKQogICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAg
ICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwog
ICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwpAQCAtMjA1NCw3ICsyMDcwLDcgQEAgaW50IGpz
UmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCiAgICAgICAgIAogICAgICAgICBEUFJJ
TlRGKCgiPj4+PiByZXR1cm5pbmcgJWRcbiIsIHJldHVybkNvZGUpKTsKICAgICAgICAgcmV0dXJu
IHJldHVybkNvZGU7Ci0gICAgfSB3aGlsZSAoc3RhcnRNYXRjaCA8PSBlbmRTdWJqZWN0KTsKKyAg
ICB9IHdoaWxlICghKHJlLT5vcHRpb25zICYgSXNBbmNob3JlZE9wdGlvbikgJiYgc3RhcnRNYXRj
aCA8PSBlbmRTdWJqZWN0KTsKICAgICAKICAgICBpZiAodXNpbmdfdGVtcG9yYXJ5X29mZnNldHMp
IHsKICAgICAgICAgRFBSSU5URigoIkZyZWVpbmcgdGVtcG9yYXJ5IG1lbW9yeVxuIikpOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmggYi9KYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaAppbmRleCAzZTdiNWNkLi4xYTU2NzNmIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaApAQCAtMjMxLDYgKzIzMSw4IEBAIG11c3QgYWxzbyBi
ZSB1cGRhdGVkIHRvIG1hdGNoLiAqLwogICAgIFwKICAgICBtYWNybyhDSVJDKSBcCiAgICAgbWFj
cm8oRE9MTCkgXAorICAgIG1hY3JvKEJPTCkgXAorICAgIG1hY3JvKEVPTCkgXAogICAgIG1hY3Jv
KENIQVIpIFwKICAgICBtYWNybyhDSEFSX0lHTk9SSU5HX0NBU0UpIFwKICAgICBtYWNybyhBU0NJ
SV9DSEFSKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20051</attachid>
            <date>2008-03-25 15:45:31 -0700</date>
            <delta_ts>2008-03-25 15:45:31 -0700</delta_ts>
            <desc>Test case which shows bug (warning, will hang Safari!)</desc>
            <filename>ascii-regexp-subject.html</filename>
            <type>text/html</type>
            <size>343</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KPHNjcmlwdD4KLy8gQ2hlY2sgdGhhdCBhbiBpbml0aWFs
IF4gd2lsbCByZXN1bHQgaW4gYSBmYXN0ZXIgbWF0Y2ggZmFpbC4KdmFyIHMgPSAiZm9vIjsKdmFy
IGk7Cgpmb3IgKGkgPSAwOyBpIDwgMTg7IGkrKykgewogIHMgPSBzICsgczsKfQoKdmFyIHJlID0g
L15iYXIvOwoKdmFyIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7CmZvciAoaSA9IDA7IGkgPCAxMDAw
MDsgaSsrKSB7CiAgcmUudGVzdChzKTsKfQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuaW5uZXJUZXh0ID0gKG5ldyBEYXRlKCkgLSBzdGFydERhdGUpICsgIm1zIjsKPC9zY3JpcHQ+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20054</attachid>
            <date>2008-03-25 15:57:48 -0700</date>
            <delta_ts>2008-03-26 07:18:51 -0700</delta_ts>
            <desc>Make matching of regexps using ^ much faster</desc>
            <filename>Make-matching-of-regexps-using-much-faster.patch</filename>
            <type>text/plain</type>
            <size>6949</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NGM1YzA1ODEyYmY3ZGQ5ZmI0NDgwY2NlYWJkNTM5OTQ2ZTYyZTU4YgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX2NvbXBpbGUuY3BwCmluZGV4IGZlMDI3YjEuLjE1Mzc3NTEgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9wY3Jl
L3BjcmVfY29tcGlsZS5jcHAKQEAgLTYzNiwyNCArNjM2LDI4IEBAIGNvbXBpbGVCcmFuY2goaW50
IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVuc2lnbmVkIGNoYXIqKiBjb2RlcHRyLAogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgLyogSGFuZGxlIHNpbmdsZS1jaGFyYWN0ZXIgbWV0YWNo
YXJhY3RlcnMuIEluIG11bHRpbGluZSBtb2RlLCBeIGRpc2FibGVzCiAgICAgICAgICAgICAgdGhl
IHNldHRpbmcgb2YgYW55IGZvbGxvd2luZyBjaGFyIGFzIGEgZmlyc3QgY2hhcmFjdGVyLiAqLwot
ICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjYXNlICdeJzoKICAgICAgICAgICAgICAg
ICBpZiAob3B0aW9ucyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVMaW5lc09wdGlvbikgewogICAgICAg
ICAgICAgICAgICAgICBpZiAoZmlyc3RieXRlID09IFJFUV9VTlNFVCkKICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpcnN0Ynl0ZSA9IFJFUV9OT05FOwotICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0JPTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0NJUkM7CiAgICAgICAgICAgICAgICAg
cHJldmlvdXMgPSBOVUxMOwotICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9DSVJDOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjYXNl
ICckJzoKICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IE5VTEw7Ci0gICAgICAgICAgICAgICAg
KmNvZGUrKyA9IE9QX0RPTEw7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBNYXRjaEFj
cm9zc011bHRpcGxlTGluZXNPcHRpb24pCisgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1Bf
RU9MOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBP
UF9ET0xMOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICAvKiBUaGVyZSBjYW4gbmV2ZXIgYmUgYSBmaXJzdCBjaGFyIGlmICcuJyBpcyBmaXJz
dCwgd2hhdGV2ZXIgaGFwcGVucyBhYm91dAogICAgICAgICAgICAgIHJlcGVhdHMuIFRoZSB2YWx1
ZSBvZiByZXFieXRlIGRvZXNuJ3QgY2hhbmdlIGVpdGhlci4gKi8KLSAgICAgICAgICAgICAgICAK
KwogICAgICAgICAgICAgY2FzZSAnLic6CiAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Ynl0ZSA9
PSBSRVFfVU5TRVQpCiAgICAgICAgICAgICAgICAgICAgIGZpcnN0Ynl0ZSA9IFJFUV9OT05FOwpA
QCAtMTkwNCw3ICsxOTA4LDcgQEAgc3RhdGljIGJvb2wgYnJhbmNoTmVlZHNMaW5lU3RhcnQoY29u
c3QgdW5zaWduZWQgY2hhciogY29kZSwgdW5zaWduZWQgY2FwdHVyZU1hcCwKICAgICAgICAgcmV0
dXJuIHNjb2RlWzFdID09IE9QX05PVF9ORVdMSU5FICYmICEoY2FwdHVyZU1hcCAmIGJhY2tyZWZN
YXApOwogCiAgICAgLyogRXhwbGljaXQgXiAqLwotICAgIHJldHVybiBvcCA9PSBPUF9DSVJDOwor
ICAgIHJldHVybiBvcCA9PSBPUF9DSVJDIHx8IG9wID09IE9QX0JPTDsKIH0KIAogc3RhdGljIGJv
b2wgYnJhY2tldE5lZWRzTGluZVN0YXJ0KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUsIHVuc2ln
bmVkIGNhcHR1cmVNYXAsIHVuc2lnbmVkIGJhY2tyZWZNYXApCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAgYi9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhl
Yy5jcHAKaW5kZXggMjJjN2ZmNC4uMDZiYWE3NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlX2V4ZWMuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNw
cApAQCAtNjUyLDE4ICs2NTIsMzQgQEAgUkVDVVJTRToKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgUlJFVFVSTjsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIFN0
YXJ0IG9mIHN1YmplY3QsIG9yIGFmdGVyIGludGVybmFsIG5ld2xpbmUgaWYgbXVsdGlsaW5lLiAq
LwotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLyogU3RhcnQgb2Ygc3ViamVjdC4gKi8K
KwogICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENJUkMpOgotICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBtZC5zdGFydFN1YmplY3QgJiYg
KCFtZC5tdWx0aWxpbmUgfHwgIWlzTmV3bGluZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0clstMV0pKSkKKyAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLnN1YmplY3RQdHIgIT0gbWQuc3RhcnRTdWJqZWN0KQogICAgICAgICAgICAgICAgICAgICBS
UkVUVVJOX05PX01BVENIOwogICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0cisrOwogICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgLyogRW5kIG9mIHN1YmplY3QsIG9yIGJlZm9yZSBpbnRl
cm5hbCBuZXdsaW5lIGlmIG11bHRpbGluZS4gKi8KLSAgICAgICAgICAgICAgICAKKworICAgICAg
ICAgICAgLyogQWZ0ZXIgaW50ZXJuYWwgbmV3bGluZSBpZiBtdWx0aWxpbmUuICovCisKKyAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShCT0wpOgorICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBtZC5zdGFydFN1YmplY3QgJiYgIWlzTmV3bGlu
ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0clstMV0pKQorICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOworICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOworICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RF
OworCisgICAgICAgICAgICAvKiBFbmQgb2Ygc3ViamVjdC4gKi8KKwogICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKERPTEwpOgotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0ciA8IG1kLmVuZFN1YmplY3QgJiYgKCFtZC5tdWx0aWxpbmUgfHwgIWlz
TmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKSkKKyAgICAgICAg
ICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPCBtZC5lbmRT
dWJqZWN0KQorICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOworICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOworICAgICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFOworCisgICAgICAgICAgICAvKiBCZWZvcmUgaW50ZXJuYWwg
bmV3bGluZSBpZiBtdWx0aWxpbmUuICovCisKKyAgICAgICAgICAgIEJFR0lOX09QQ09ERShFT0wp
OgorICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0
ciA8IG1kLmVuZFN1YmplY3QgJiYgIWlzTmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LnN1YmplY3RQdHIpKQogICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwogICAg
ICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwog
ICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwpAQCAtMjA1NCw3ICsyMDcwLDcgQEAgaW50IGpz
UmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCiAgICAgICAgIAogICAgICAgICBEUFJJ
TlRGKCgiPj4+PiByZXR1cm5pbmcgJWRcbiIsIHJldHVybkNvZGUpKTsKICAgICAgICAgcmV0dXJu
IHJldHVybkNvZGU7Ci0gICAgfSB3aGlsZSAoc3RhcnRNYXRjaCA8PSBlbmRTdWJqZWN0KTsKKyAg
ICB9IHdoaWxlICghKHJlLT5vcHRpb25zICYgSXNBbmNob3JlZE9wdGlvbikgJiYgc3RhcnRNYXRj
aCA8PSBlbmRTdWJqZWN0KTsKICAgICAKICAgICBpZiAodXNpbmdfdGVtcG9yYXJ5X29mZnNldHMp
IHsKICAgICAgICAgRFBSSU5URigoIkZyZWVpbmcgdGVtcG9yYXJ5IG1lbW9yeVxuIikpOwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmggYi9KYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaAppbmRleCAzZTdiNWNkLi4xYTU2NzNmIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaApAQCAtMjMxLDYgKzIzMSw4IEBAIG11c3QgYWxzbyBi
ZSB1cGRhdGVkIHRvIG1hdGNoLiAqLwogICAgIFwKICAgICBtYWNybyhDSVJDKSBcCiAgICAgbWFj
cm8oRE9MTCkgXAorICAgIG1hY3JvKEJPTCkgXAorICAgIG1hY3JvKEVPTCkgXAogICAgIG1hY3Jv
KENIQVIpIFwKICAgICBtYWNybyhDSEFSX0lHTk9SSU5HX0NBU0UpIFwKICAgICBtYWNybyhBU0NJ
SV9DSEFSKSBcCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZDY5ODRjZS4uMTYxOTMzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDA4LTAzLTI1ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCB0ZXN0IGZv
ciAvXmJhci8gb3B0aW1pemF0aW9uLgorCisgICAgICAgICogZmFzdC9qcy9hc2NpaS1yZWdleHAt
c3ViamVjdC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QveHBhdGgv
NFhQYXRoL0JvcnJvd2VkL2tkXzIwMDEwNDIzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0
L2pzL2FzY2lpLXJlZ2V4cC1zdWJqZWN0Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zh
c3QvanMvdHlwZW9mLXN5bnRheC5odG1sLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2Fz
Y2lpLXJlZ2V4cC1zdWJqZWN0LmpzOiBBZGRlZC4KKwogMjAwOC0wMy0yNCAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvYXNjaWktcmVnZXhwLXN1YmplY3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9hc2NpaS1yZWdleHAtc3ViamVjdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY4MjM3ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvYXNjaWktcmVnZXhwLXN1YmplY3QtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFTUyBDb25ncmF0cywgeW91ciBicm93c2VyIGRp
ZG4ndCBoYW5nIQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvYXNjaWktcmVnZXhwLXN1Ympl
Y3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvYXNjaWktcmVnZXhwLXN1YmplY3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2ZmMWFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9hc2NpaS1yZWdleHAtc3ViamVjdC5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXNjaWkt
cmVnZXhwLXN1YmplY3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvYXNjaWktcmVnZXhwLXN1YmplY3QuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9hc2NpaS1yZWdleHAtc3ViamVjdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjIyMzhjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvYXNjaWktcmVnZXhwLXN1YmplY3QuanMKQEAg
LTAsMCArMSwxOCBAQAorLy8gQ2hlY2sgdGhhdCBhbiBpbml0aWFsIF4gd2lsbCByZXN1bHQgaW4g
YSBmYXN0ZXIgbWF0Y2ggZmFpbC4KK3ZhciBzID0gImZvbyI7Cit2YXIgaTsKKworZm9yIChpID0g
MDsgaSA8IDE4OyBpKyspIHsKKyAgcyA9IHMgKyBzOworfQorCit2YXIgcmUgPSAvXmJhci87CisK
K3ZhciBzdGFydERhdGUgPSBuZXcgRGF0ZSgpOworZm9yIChpID0gMDsgaSA8IDEwMDAwOyBpKysp
IHsKKyAgcmUudGVzdChzKTsKK30KKwordGVzdFBhc3NlZCgiQ29uZ3JhdHMsIHlvdXIgYnJvd3Nl
ciBkaWRuJ3QgaGFuZyEiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="8769"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>