<?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>6257</bug_id>
          
          <creation_ts>2005-12-27 12:18:06 -0800</creation_ts>
          <short_desc>Throw errors on invalid expressions (KJS merge)</short_desc>
          <delta_ts>2006-12-29 18:11:21 -0800</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>420+</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>7383</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Maks Orlovich">maksim</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian</cc>
    
    <cc>solushex</cc>
    
    <cc>solutionarchitecture</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26765</commentid>
    <comment_count>0</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-27 12:18:06 -0800</bug_when>
    <thetext>The attached makes the RegExp constructor throw JS error on syntax errors, and 
by doing that for the POSIX path also makes it work... It fixes one of the KJS 
RegExp tests, but makes one of the Mozilla tests throw an exception here where 
it used to &quot;work&quot; --- I do not think that&apos;s a regression. (It also shows the 
lack of \u support --- but that&apos;s a separate change). 
 
This is a merge of: 
r455153 | montanaro | 2005-08-30 14:00:05 -0400 (Tue, 30 Aug 2005) | 2 lines 
Backport from head, no need to call regcomp twice 
------------------------------------------------------------------------ 
r454902 | montanaro | 2005-08-30 04:33:46 -0400 (Tue, 30 Aug 2005) | 2 lines 
Committed fix for bug #110995 (non-pcre regular expressions do not work) 
------------------------------------------------------------------------ 
r393449 | porten | 2005-02-27 01:24:53 -0500 (Sun, 27 Feb 2005) | 2 lines 
throw exception when constructing an invalid regexp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26766</commentid>
    <comment_count>1</comment_count>
      <attachid>5305</attachid>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-27 12:19:08 -0800</bug_when>
    <thetext>Created attachment 5305
patch

Also removes an another TODO which I think was no longer correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26767</commentid>
    <comment_count>2</comment_count>
      <attachid>5306</attachid>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-27 12:22:15 -0800</bug_when>
    <thetext>Created attachment 5306
patch -- with proper var names for POSIX path

Oops, posix path may even build this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26772</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-27 13:14:12 -0800</bug_when>
    <thetext>We should figure out why the tests are newly-failing and fix them or the patch. 

A quick glance indicates that ecma_3/RegExp/regress-119909.js now reports as a failure because it 
throws an exception (whereas it used to silently ignore the regexp). I think that&apos;s a bug in how we interpret 
success/failure, because the test expects you to recognize the pattern as illegitimate. 

ecma_2/RegExp/properties-001.js used to pass fully, and now the exception prevents it from running. So 
we may need to surround a part of the test in a try/catch block. I&apos;m also curious about why it used to pass 
-- probably because it barfed on an expression that wasn&apos;t expected to match in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26790</commentid>
    <comment_count>4</comment_count>
      <attachid>5308</attachid>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-27 13:40:34 -0800</bug_when>
    <thetext>Created attachment 5308
patch, with additional \u support

To fix the properties-001 test, and one of our testcases, this also includes
the merge of the following (with one tweak -- it searches the string for \u
before applying the special path):
r354074 | porten | 2004-10-12 19:38:49 -0400 (Tue, 12 Oct 2004) | 4 lines

support \u escape sequences in regular expressions. They are non-standard -
at least they are not supported in Perl/PCRE/POSIX so we simply do our
own resolving of those.

---
This may need to be performance-tested, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27104</commentid>
    <comment_count>5</comment_count>
      <attachid>5308</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-29 00:51:55 -0800</bug_when>
    <thetext>Comment on attachment 5308
patch, with additional \u support

Geoff, since you had the earlier comments, could you look at the new version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28071</commentid>
    <comment_count>6</comment_count>
      <attachid>5308</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-01-09 14:36:41 -0800</bug_when>
    <thetext>Comment on attachment 5308
patch, with additional \u support

Sorry I took so long to review this.

1. ecma_3/RegExp/regress-119909.js. We can&apos;t check in code that causes test
regressions, so we need to figure out why this test still fails with your
latest patch. I suspect it&apos;s because (a) throwing an error prevents the rest of
the test from running or (b) testkjs interprets all thrown errors as failures.
Either way, the simplest solution is probably to surround the relevant part of
the test in a try/catch block.

2. Performance. I&apos;m worried about the performance of scanning the expression
string an extra time. We&apos;ve had performance problems in this area before. At a
minimum, I would suggest changing the code so that we only scan for \u if pcre
returns an error with the errorCode corresponding to &quot;PCRE does not support \u
in RegExps.&quot; However, I think a better approach would be to have the lexer take
care of converting the unicode expression from the get-go.

3. To match flags() / _flags, _valid should be _isValid.

4. When pcre fails, doesn&apos;t it set _regex to NULL? If so, you can eliminate
_isValid, and have isValid() just return _regex.

r- for 1 &amp; 2, but I&apos;d love to see a patch that covers 3 &amp; 4, too.

I hope this review doesn&apos;t sound too negative. You&apos;ve been doing great work,
and we&apos;ve had a lot of requests to fix this bug in particular, so it&apos;s great
that you&apos;re working on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28072</commentid>
    <comment_count>7</comment_count>
      <attachid>5575</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-01-09 14:38:52 -0800</bug_when>
    <thetext>Created attachment 5575
run-javascriptcore-tests patch

FYI, you&apos;ll have to apply this patch to get run-javascriptcore-tests to run in
a post-svn world. It looks like the Netscape tests were hard-coded for CVS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28073</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-09 14:59:57 -0800</bug_when>
    <thetext>Regarding &quot;the lexer take care of converting the unicode expression&quot;: We can do that if this is truly just a 
lexer-time feature. But if a regular expression that includes a &quot;\&quot; and a &quot;u&quot; has to work, even if it&apos;s 
composed out of separate strings, then we can&apos;t fix that by changing the lexer.

So we should do that if we can, but we need to test to see if that&apos;s right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28075</commentid>
    <comment_count>9</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2006-01-09 15:21:23 -0800</bug_when>
    <thetext>I can only respond partly, since I am leaving for a conference soon&apos;ish,and I 
better finish packing 
 
1. libpcre plain doesn&apos;t support as many nested parentheses as mozilla, so I 
do think the expectation for the test needs to be adjusted --- the point is 
that it shouldn&apos;t crash, anyway 
 
4. This code doesn&apos;t only work with PCRE, but also (somewhat) with POSIX   
regexps, if PCRE is not available. In that case, you can not 0-check.   
   
3. As Darin said, the lexer approach seems wrong for constructed strings.  
e.g. &apos;b a&apos;.search(new RegExp(&quot;\\u&quot; + &quot;0020&quot;)) in firefox returns 1.  
  
2. I can certainly do a 2-pass approach, though it&apos;ll likely take some  
restructuring to get it to not overly complicate the code, considering 2.5 
RegExp runtimes supported. 
 </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28244</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-01-11 09:50:12 -0800</bug_when>
    <thetext>RegExp(&quot;\\u&quot; + &quot;0020&quot;) is a really interesting case -- something I hadn&apos;t considered. Both Firefox and 
MacIE honor it, and a quick reading of the spec suggests it&apos;s required, so, yes, that rules out the lexer 
solution. 

I&apos;m not sure if we still care about supporting the POSIX library. Darin? Are there any platforms on which 
we can&apos;t use PCRE? Regardless, I think the 2-pass approach is worth it. It would just require factoring 
the Unicode escape converting code into its own function and calling that function as a fallback when 
the regular expression compiler returns an error.

With your patch applied, ecma_3/RegExp/regress-119909.js doesn&apos;t fail because it crashes. Rather, 
where we used to silently ignore the regular expression, we now throw an error. And our test suite 
interprets thrown errors as failures. Since we expect this test to throw an error, the simplest solution is 
to surround the test code in a try/catch block. The expectation for the test can remain the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37844</commentid>
    <comment_count>11</comment_count>
    <who name="rahul abrol">solushex</who>
    <bug_when>2006-03-29 07:01:48 -0800</bug_when>
    <thetext>*** Bug 8043 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37866</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-29 10:40:19 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I&apos;m not sure if we still care about supporting the POSIX library. Darin? Are
&gt; there any platforms on which we can&apos;t use PCRE?

I don&apos;t think we do care about that. The KDE folks might, but I can&apos;t see why we&apos;d even want to use a different regular expression library, since it&apos;s not going to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42572</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-10 07:44:08 -0800</bug_when>
    <thetext>A fix for regexps with \u sequences was committed with Bug 7445 and later fixed with Bug 11501 using a two-pass approach as noted in Comment #9 and Comment #10 above.

Can this bug be closed?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42464</commentid>
    <comment_count>14</comment_count>
      <attachid>11818</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-12 04:33:41 -0800</bug_when>
    <thetext>Created attachment 11818
proposed patch

Tweaked the patch to also report the error message; removed the Unicode escapes part; a few style fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42465</commentid>
    <comment_count>15</comment_count>
      <attachid>5575</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-12 04:37:03 -0800</bug_when>
    <thetext>Comment on attachment 5575
run-javascriptcore-tests patch

&gt;FYI, you&apos;ll have to apply this patch to get run-javascriptcore-tests to run in
&gt;a post-svn world. It looks like the Netscape tests were hard-coded for CVS.

This was fixed in a different way (by putting a correct Mixed.pm version number here).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42472</commentid>
    <comment_count>16</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2006-12-12 08:17:27 -0800</bug_when>
    <thetext>Thanks for doing this, Alexey</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42350</commentid>
    <comment_count>17</comment_count>
      <attachid>11818</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-12 11:59:33 -0800</bug_when>
    <thetext>Comment on attachment 11818
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42342</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-12 12:23:55 -0800</bug_when>
    <thetext>Committed revision 18182.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38956</commentid>
    <comment_count>19</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-29 18:11:21 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; 1. libpcre plain doesn&apos;t support as many nested parentheses as mozilla, so I 
&gt; do think the expectation for the test needs to be adjusted --- the point is 
&gt; that it shouldn&apos;t crash, anyway

For what it&apos;s worth, pcre-7.0 removes the limitation of more than 200 nested parenthesis (in lieu of other trade-offs).

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5305</attachid>
            <date>2005-12-27 12:19:08 -0800</date>
            <delta_ts>2005-12-27 12:22:15 -0800</delta_ts>
            <desc>patch</desc>
            <filename>del.diff</filename>
            <type>text/plain</type>
            <size>2975</size>
            <attacher name="Maks Orlovich">maksim</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlZ2V4cF9vYmplY3QuY3Bw
CShyZXZpc2lvbiA0OTE2NzUpCisrKyByZWdleHBfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzk5LDcgKzM5OSw2IEBAIE9iamVjdEltcCAqUmVnRXhwT2JqZWN0SW1wOjpjb25zdHJ1Y3Qo
RXgKICAgYm9vbCBnbG9iYWwgPSAoZmxhZ3MuZmluZCgiZyIpID49IDApOwogICBib29sIGlnbm9y
ZUNhc2UgPSAoZmxhZ3MuZmluZCgiaSIpID49IDApOwogICBib29sIG11bHRpbGluZSA9IChmbGFn
cy5maW5kKCJtIikgPj0gMCk7Ci0gIC8vIFRPRE86IHRocm93IGEgc3ludGF4IGVycm9yIG9uIGlu
dmFsaWQgZmxhZ3MKIAogICBkYXQtPnB1dERpcmVjdCgiZ2xvYmFsIiwganNCb29sZWFuKGdsb2Jh
bCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgZGF0LT5wdXREaXJlY3Qo
Imlnbm9yZUNhc2UiLCBqc0Jvb2xlYW4oaWdub3JlQ2FzZSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKQEAgLTQxNSw3ICs0MTQsMTIgQEAgT2JqZWN0SW1wICpSZWdFeHBPYmpl
Y3RJbXA6OmNvbnN0cnVjdChFeAogICAgICAgcmVmbGFncyB8PSBSZWdFeHA6Oklnbm9yZUNhc2U7
CiAgIGlmIChtdWx0aWxpbmUpCiAgICAgICByZWZsYWdzIHw9IFJlZ0V4cDo6TXVsdGlsaW5lOwot
ICBkYXQtPnNldFJlZ0V4cChuZXcgUmVnRXhwKHAsIHJlZmxhZ3MpKTsKKyAgUmVnRXhwKiByZSA9
IG5ldyBSZWdFeHAocCwgcmVmbGFncyk7CisgIGlmICghcmUtPmlzVmFsaWQoKSkgeworICAgIGRl
bGV0ZSByZTsKKyAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgIkludmFs
aWQgcmVndWxhciBleHByZXNzaW9uIik7CisgIH0KKyAgZGF0LT5zZXRSZWdFeHAocmUpOwogCiAg
IHJldHVybiBkYXQ7CiB9CkBAIC00MjksNyArNDMzLDYgQEAgYm9vbCBSZWdFeHBPYmplY3RJbXA6
OmltcGxlbWVudHNDYWxsKCkgYwogVmFsdWVJbXAgKlJlZ0V4cE9iamVjdEltcDo6Y2FsbEFzRnVu
Y3Rpb24oRXhlY1N0YXRlICpleGVjLCBPYmplY3RJbXAgKi8qdGhpc09iaiovLAogCQkJICAgIGNv
bnN0IExpc3QgJmFyZ3MpCiB7Ci0gIC8vIFRPRE86IGhhbmRsZSBSZWdFeHAgYXJndW1lbnQgY2Fz
ZSAoMTUuMTAuMy4xKQotCisgIC8vIFRoZSBSZWdFeHAgYXJndW1lbnQgY2FzZSBpcyBoYW5kbGVk
IGJ5IGNvbnN0cnVjdCgpCiAgIHJldHVybiBjb25zdHJ1Y3QoZXhlYywgYXJncyk7CiB9CkluZGV4
OiByZWdleHAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZWdleHAuaAkocmV2aXNpb24gNDkxNjc1KQorKysg
cmVnZXhwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgflJlZ0V4cCgpOwogCiAgICAgaW50IGZsYWdzKCkgY29uc3QgeyByZXR1cm4gX2ZsYWdz
OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gX3ZhbGlkOyB9CiAKICAgICBV
U3RyaW5nIG1hdGNoKGNvbnN0IFVTdHJpbmcgJnMsIGludCBpLCBpbnQgKnBvcyA9IDAsIGludCAq
Km92ZWN0b3IgPSAwKTsKICAgICB1bnNpZ25lZCBzdWJQYXR0ZXJucygpIGNvbnN0IHsgcmV0dXJu
IF9udW1TdWJQYXR0ZXJuczsgfQpAQCAtNTcsNiArNTgsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAg
ICByZWdleF90IF9yZWdleDsKICNlbmRpZgogICAgIGludCBfZmxhZ3M7CisgICAgYm9vbCBfdmFs
aWQ7CiAgICAgdW5zaWduZWQgX251bVN1YlBhdHRlcm5zOwogCiAgICAgUmVnRXhwKGNvbnN0IFJl
Z0V4cCAmKTsKSW5kZXg6IHJlZ2V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVnZXhwLmNwcAkocmV2
aXNpb24gNDkxNjc1KQorKysgcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQAogbmFtZXNwYWNlIEtKUyB7CiAKIFJlZ0V4cDo6UmVnRXhwKGNvbnN0IFVTdHJpbmcgJnAs
IGludCBmbGFncykKLSAgOiBfZmxhZ3MoZmxhZ3MpLCBfbnVtU3ViUGF0dGVybnMoMCkKKyAgOiBf
ZmxhZ3MoZmxhZ3MpLCBfdmFsaWQodHJ1ZSksIF9udW1TdWJQYXR0ZXJucygwKQogewogI2lmZGVm
IEhBVkVfUENSRVBPU0lYCiAKQEAgLTU2LDYgKzU2LDcgQEAgUmVnRXhwOjpSZWdFeHAoY29uc3Qg
VVN0cmluZyAmcCwgaW50IGZsYQogI2lmbmRlZiBOREVCVUcKICAgICBmcHJpbnRmKHN0ZGVyciwg
IktKUzogcGNyZV9jb21waWxlKCkgZmFpbGVkIHdpdGggJyVzJ1xuIiwgZXJyb3JNZXNzYWdlKTsK
ICNlbmRpZgorICAgIF92YWxpZCA9IGZhbHNlOwogICAgIHJldHVybjsKICAgfQogCkBAIC04MCw5
ICs4MSwxNSBAQCBSZWdFeHA6OlJlZ0V4cChjb25zdCBVU3RyaW5nICZwLCBpbnQgZmxhCiAgIC8v
ICAgIDsKICAgLy8gTm90ZTogdGhlIEdsb2JhbCBmbGFnIGlzIGFscmVhZHkgaGFuZGxlZCBieSBS
ZWdFeHBQcm90b0Z1bmM6OmV4ZWN1dGUKIAotICByZWdjb21wKCZfcmVnZXgsIHAuYXNjaWkoKSwg
cmVnZmxhZ3MpOwotICAvKiBUT0RPIGNoZWNrIGZvciBlcnJvcnMgKi8KLQorICBpbnQgZXJyb3JD
b2RlID0gcmVnY29tcCgmcHJlZywgcC5hc2NpaSgpLCByZWdmbGFncyk7CisgIGlmIChlcnJvckNv
ZGUgIT0gMCkgeworI2lmbmRlZiBOREVCVUcKKyAgICBjaGFyIGVycm9yTWVzc2FnZVs4MF07Cisg
ICAgcmVnZXJyb3IoZXJyb3JDb2RlLCAmcHJlZywgZXJyb3JNZXNzYWdlLCBzaXplb2YgZXJyb3JN
ZXNzYWdlKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIktKUzogcmVnY29tcCBmYWlsZWQgd2l0aCAn
JXMnIiwgZXJyb3JNZXNzYWdlKTsKKyNlbmRpZgorICAgIF92YWxpZCA9IGZhbHNlOworICB9CiAj
ZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5306</attachid>
            <date>2005-12-27 12:22:15 -0800</date>
            <delta_ts>2005-12-27 13:40:34 -0800</delta_ts>
            <desc>patch -- with proper var names for POSIX path</desc>
            <filename>del.diff</filename>
            <type>text/plain</type>
            <size>2979</size>
            <attacher name="Maks Orlovich">maksim</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlZ2V4cF9vYmplY3QuY3Bw
CShyZXZpc2lvbiA0OTE2NzUpCisrKyByZWdleHBfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzk5LDcgKzM5OSw2IEBAIE9iamVjdEltcCAqUmVnRXhwT2JqZWN0SW1wOjpjb25zdHJ1Y3Qo
RXgKICAgYm9vbCBnbG9iYWwgPSAoZmxhZ3MuZmluZCgiZyIpID49IDApOwogICBib29sIGlnbm9y
ZUNhc2UgPSAoZmxhZ3MuZmluZCgiaSIpID49IDApOwogICBib29sIG11bHRpbGluZSA9IChmbGFn
cy5maW5kKCJtIikgPj0gMCk7Ci0gIC8vIFRPRE86IHRocm93IGEgc3ludGF4IGVycm9yIG9uIGlu
dmFsaWQgZmxhZ3MKIAogICBkYXQtPnB1dERpcmVjdCgiZ2xvYmFsIiwganNCb29sZWFuKGdsb2Jh
bCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgZGF0LT5wdXREaXJlY3Qo
Imlnbm9yZUNhc2UiLCBqc0Jvb2xlYW4oaWdub3JlQ2FzZSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKQEAgLTQxNSw3ICs0MTQsMTIgQEAgT2JqZWN0SW1wICpSZWdFeHBPYmpl
Y3RJbXA6OmNvbnN0cnVjdChFeAogICAgICAgcmVmbGFncyB8PSBSZWdFeHA6Oklnbm9yZUNhc2U7
CiAgIGlmIChtdWx0aWxpbmUpCiAgICAgICByZWZsYWdzIHw9IFJlZ0V4cDo6TXVsdGlsaW5lOwot
ICBkYXQtPnNldFJlZ0V4cChuZXcgUmVnRXhwKHAsIHJlZmxhZ3MpKTsKKyAgUmVnRXhwKiByZSA9
IG5ldyBSZWdFeHAocCwgcmVmbGFncyk7CisgIGlmICghcmUtPmlzVmFsaWQoKSkgeworICAgIGRl
bGV0ZSByZTsKKyAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgIkludmFs
aWQgcmVndWxhciBleHByZXNzaW9uIik7CisgIH0KKyAgZGF0LT5zZXRSZWdFeHAocmUpOwogCiAg
IHJldHVybiBkYXQ7CiB9CkBAIC00MjksNyArNDMzLDYgQEAgYm9vbCBSZWdFeHBPYmplY3RJbXA6
OmltcGxlbWVudHNDYWxsKCkgYwogVmFsdWVJbXAgKlJlZ0V4cE9iamVjdEltcDo6Y2FsbEFzRnVu
Y3Rpb24oRXhlY1N0YXRlICpleGVjLCBPYmplY3RJbXAgKi8qdGhpc09iaiovLAogCQkJICAgIGNv
bnN0IExpc3QgJmFyZ3MpCiB7Ci0gIC8vIFRPRE86IGhhbmRsZSBSZWdFeHAgYXJndW1lbnQgY2Fz
ZSAoMTUuMTAuMy4xKQotCisgIC8vIFRoZSBSZWdFeHAgYXJndW1lbnQgY2FzZSBpcyBoYW5kbGVk
IGJ5IGNvbnN0cnVjdCgpCiAgIHJldHVybiBjb25zdHJ1Y3QoZXhlYywgYXJncyk7CiB9CkluZGV4
OiByZWdleHAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZWdleHAuaAkocmV2aXNpb24gNDkxNjc1KQorKysg
cmVnZXhwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgflJlZ0V4cCgpOwogCiAgICAgaW50IGZsYWdzKCkgY29uc3QgeyByZXR1cm4gX2ZsYWdz
OyB9CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gX3ZhbGlkOyB9CiAKICAgICBV
U3RyaW5nIG1hdGNoKGNvbnN0IFVTdHJpbmcgJnMsIGludCBpLCBpbnQgKnBvcyA9IDAsIGludCAq
Km92ZWN0b3IgPSAwKTsKICAgICB1bnNpZ25lZCBzdWJQYXR0ZXJucygpIGNvbnN0IHsgcmV0dXJu
IF9udW1TdWJQYXR0ZXJuczsgfQpAQCAtNTcsNiArNTgsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAg
ICByZWdleF90IF9yZWdleDsKICNlbmRpZgogICAgIGludCBfZmxhZ3M7CisgICAgYm9vbCBfdmFs
aWQ7CiAgICAgdW5zaWduZWQgX251bVN1YlBhdHRlcm5zOwogCiAgICAgUmVnRXhwKGNvbnN0IFJl
Z0V4cCAmKTsKSW5kZXg6IHJlZ2V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVnZXhwLmNwcAkocmV2
aXNpb24gNDkxNjc1KQorKysgcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NyBAQAogbmFtZXNwYWNlIEtKUyB7CiAKIFJlZ0V4cDo6UmVnRXhwKGNvbnN0IFVTdHJpbmcgJnAs
IGludCBmbGFncykKLSAgOiBfZmxhZ3MoZmxhZ3MpLCBfbnVtU3ViUGF0dGVybnMoMCkKKyAgOiBf
ZmxhZ3MoZmxhZ3MpLCBfdmFsaWQodHJ1ZSksIF9udW1TdWJQYXR0ZXJucygwKQogewogI2lmZGVm
IEhBVkVfUENSRVBPU0lYCiAKQEAgLTU2LDYgKzU2LDcgQEAgUmVnRXhwOjpSZWdFeHAoY29uc3Qg
VVN0cmluZyAmcCwgaW50IGZsYQogI2lmbmRlZiBOREVCVUcKICAgICBmcHJpbnRmKHN0ZGVyciwg
IktKUzogcGNyZV9jb21waWxlKCkgZmFpbGVkIHdpdGggJyVzJ1xuIiwgZXJyb3JNZXNzYWdlKTsK
ICNlbmRpZgorICAgIF92YWxpZCA9IGZhbHNlOwogICAgIHJldHVybjsKICAgfQogCkBAIC04MCw5
ICs4MSwxNSBAQCBSZWdFeHA6OlJlZ0V4cChjb25zdCBVU3RyaW5nICZwLCBpbnQgZmxhCiAgIC8v
ICAgIDsKICAgLy8gTm90ZTogdGhlIEdsb2JhbCBmbGFnIGlzIGFscmVhZHkgaGFuZGxlZCBieSBS
ZWdFeHBQcm90b0Z1bmM6OmV4ZWN1dGUKIAotICByZWdjb21wKCZfcmVnZXgsIHAuYXNjaWkoKSwg
cmVnZmxhZ3MpOwotICAvKiBUT0RPIGNoZWNrIGZvciBlcnJvcnMgKi8KLQorICBpbnQgZXJyb3JD
b2RlID0gcmVnY29tcCgmX3JlZ2V4LCBwLmFzY2lpKCksIHJlZ2ZsYWdzKTsKKyAgaWYgKGVycm9y
Q29kZSAhPSAwKSB7CisjaWZuZGVmIE5ERUJVRworICAgIGNoYXIgZXJyb3JNZXNzYWdlWzgwXTsK
KyAgICByZWdlcnJvcihlcnJvckNvZGUsICZfcmVnZXgsIGVycm9yTWVzc2FnZSwgc2l6ZW9mIGVy
cm9yTWVzc2FnZSk7CisgICAgZnByaW50ZihzdGRlcnIsICJLSlM6IHJlZ2NvbXAgZmFpbGVkIHdp
dGggJyVzJyIsIGVycm9yTWVzc2FnZSk7CisjZW5kaWYKKyAgICBfdmFsaWQgPSBmYWxzZTsKKyAg
fQogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5308</attachid>
            <date>2005-12-27 13:40:34 -0800</date>
            <delta_ts>2006-12-12 04:33:41 -0800</delta_ts>
            <desc>patch, with additional \u support</desc>
            <filename>del.diff</filename>
            <type>text/plain</type>
            <size>4892</size>
            <attacher name="Maks Orlovich">maksim</attacher>
            
              <data encoding="base64">SW5kZXg6IHJlZ2V4cF9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlZ2V4cF9vYmplY3QuY3Bw
CShyZXZpc2lvbiA0OTE2NzUpCisrKyByZWdleHBfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQog
QGJlZ2luIFJlZ0V4cFRhYmxlIDIwCkBAIC0zOTksNyArMzk5LDYgQEAgT2JqZWN0SW1wICpSZWdF
eHBPYmplY3RJbXA6OmNvbnN0cnVjdChFeAogICBib29sIGdsb2JhbCA9IChmbGFncy5maW5kKCJn
IikgPj0gMCk7CiAgIGJvb2wgaWdub3JlQ2FzZSA9IChmbGFncy5maW5kKCJpIikgPj0gMCk7CiAg
IGJvb2wgbXVsdGlsaW5lID0gKGZsYWdzLmZpbmQoIm0iKSA+PSAwKTsKLSAgLy8gVE9ETzogdGhy
b3cgYSBzeW50YXggZXJyb3Igb24gaW52YWxpZCBmbGFncwogCiAgIGRhdC0+cHV0RGlyZWN0KCJn
bG9iYWwiLCBqc0Jvb2xlYW4oZ2xvYmFsKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVu
dW0pOwogICBkYXQtPnB1dERpcmVjdCgiaWdub3JlQ2FzZSIsIGpzQm9vbGVhbihpZ25vcmVDYXNl
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwpAQCAtNDE1LDcgKzQxNCwxMiBA
QCBPYmplY3RJbXAgKlJlZ0V4cE9iamVjdEltcDo6Y29uc3RydWN0KEV4CiAgICAgICByZWZsYWdz
IHw9IFJlZ0V4cDo6SWdub3JlQ2FzZTsKICAgaWYgKG11bHRpbGluZSkKICAgICAgIHJlZmxhZ3Mg
fD0gUmVnRXhwOjpNdWx0aWxpbmU7Ci0gIGRhdC0+c2V0UmVnRXhwKG5ldyBSZWdFeHAocCwgcmVm
bGFncykpOworICBSZWdFeHAqIHJlID0gbmV3IFJlZ0V4cChwLCByZWZsYWdzKTsKKyAgaWYgKCFy
ZS0+aXNWYWxpZCgpKSB7CisgICAgZGVsZXRlIHJlOworICAgIHJldHVybiB0aHJvd0Vycm9yKGV4
ZWMsIFN5bnRheEVycm9yLCAiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24iKTsKKyAgfQorICBk
YXQtPnNldFJlZ0V4cChyZSk7CiAKICAgcmV0dXJuIGRhdDsKIH0KQEAgLTQyOSw3ICs0MzMsNiBA
QCBib29sIFJlZ0V4cE9iamVjdEltcDo6aW1wbGVtZW50c0NhbGwoKSBjCiBWYWx1ZUltcCAqUmVn
RXhwT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIE9iamVjdEltcCAq
Lyp0aGlzT2JqKi8sCiAJCQkgICAgY29uc3QgTGlzdCAmYXJncykKIHsKLSAgLy8gVE9ETzogaGFu
ZGxlIFJlZ0V4cCBhcmd1bWVudCBjYXNlICgxNS4xMC4zLjEpCi0KKyAgLy8gVGhlIFJlZ0V4cCBh
cmd1bWVudCBjYXNlIGlzIGhhbmRsZWQgYnkgY29uc3RydWN0KCkKICAgcmV0dXJuIGNvbnN0cnVj
dChleGVjLCBhcmdzKTsKIH0KSW5kZXg6IHJlZ2V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVnZXhw
LmNwcAkocmV2aXNpb24gNDkxNjc1KQorKysgcmVnZXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIC8vIC0qLSBjLWJhc2ljLW9mZnNldDogMiAtKi0KIC8qCiAgKiAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMTk5
OS0yMDAxLDIwMDQgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTIwLDYgKzIwLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAibGV4ZXIuaCIKICNpbmNsdWRlICJyZWdleHAuaCIKIAogI2luY2x1ZGUgPGFzc2VydC5o
PgpAQCAtMzAsOCArMzEsNDUgQEAKIG5hbWVzcGFjZSBLSlMgewogCiBSZWdFeHA6OlJlZ0V4cChj
b25zdCBVU3RyaW5nICZwLCBpbnQgZmxhZ3MpCi0gIDogX2ZsYWdzKGZsYWdzKSwgX251bVN1YlBh
dHRlcm5zKDApCisgIDogX2ZsYWdzKGZsYWdzKSwgX3ZhbGlkKHRydWUpLCBfbnVtU3ViUGF0dGVy
bnMoMCkKIHsKKyAgLy8gSlMgcmVnZXhwcyBjYW4gY29udGFpbiBVbmljb2RlIGVzY2FwZSBzZXF1
ZW5jZXMgKFx1eHh4eCkgd2hpY2gKKyAgLy8gYXJlIHJhdGhlciB1bmNvbW1vbiBlbHNld2hlcmUu
IEFzIG91ciByZWdleHAgbGlicyBkb24ndCB1bmRlcnN0YW5kCisgIC8vIHRoZW0gd2UgZG8gdGhl
IHVuZXNjYXBpbmcgb3Vyc2VsdmVzIGludGVybmFsbHkuCisgIFVTdHJpbmcgaW50ZXJuOworICBp
ZiAocC5maW5kKCJcXHUiKSA+PSAwKSB7CisgICAgYm9vbCBlc2NhcGUgPSBmYWxzZTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IHAuc2l6ZSgpOyArK2kpIHsKKyAgICAgIFVDaGFyIGMgPSBwW2ld
OworICAgICAgaWYgKGVzY2FwZSkgeworICAgICAgICBlc2NhcGUgPSBmYWxzZTsKKyAgICAgICAg
Ly8gd2Ugb25seSBjYXJlIGFib3V0IFx1eHh4eAorICAgICAgICBpZiAoYyA9PSAndScgJiYgaSAr
IDQgPCBwLnNpemUoKSkgeworICAgICAgICAgIGludCBjMCA9IHBbaSsxXS51bmljb2RlKCk7Cisg
ICAgICAgICAgaW50IGMxID0gcFtpKzJdLnVuaWNvZGUoKTsKKyAgICAgICAgICBpbnQgYzIgPSBw
W2krM10udW5pY29kZSgpOworICAgICAgICAgIGludCBjMyA9IHBbaSs0XS51bmljb2RlKCk7Cisg
ICAgICAgICAgaWYgKExleGVyOjppc0hleERpZ2l0KGMwKSAmJiBMZXhlcjo6aXNIZXhEaWdpdChj
MSkgJiYKKyAgICAgICAgICAgICAgTGV4ZXI6OmlzSGV4RGlnaXQoYzIpICYmIExleGVyOjppc0hl
eERpZ2l0KGMzKSkgeworICAgICAgICAgICAgYyA9IExleGVyOjpjb252ZXJ0VW5pY29kZShjMCwg
YzEsIGMyLCBjMyk7CisgICAgICAgICAgICBpbnRlcm4gKz0gVVN0cmluZygmYywgMSk7CisgICAg
ICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgaW50ZXJuICs9IFVTdHJpbmcoJ1xcJyk7CisgICAgICAgIGludGVybiAr
PSBVU3RyaW5nKCZjLCAxKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChjID09ICdcXCcp
CisgICAgICAgICAgZXNjYXBlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIGludGVy
biArPSBVU3RyaW5nKCZjLCAxKTsKKyAgICAgIH0KKyAgICB9CisgIH0gZWxzZSB7CisgICAgaW50
ZXJuID0gcDsKKyAgfQorCiAjaWZkZWYgSEFWRV9QQ1JFUE9TSVgKIAogICBpbnQgb3B0aW9ucyA9
IFBDUkVfVVRGODsKQEAgLTQ0LDcgKzgyLDcgQEAgUmVnRXhwOjpSZWdFeHAoY29uc3QgVVN0cmlu
ZyAmcCwgaW50IGZsYQogCiAgIGNvbnN0IGNoYXIgKmVycm9yTWVzc2FnZTsKICAgaW50IGVycm9y
T2Zmc2V0OwotICBVU3RyaW5nIG51bGxUZXJtaW5hdGVkKHApOworICBVU3RyaW5nIG51bGxUZXJt
aW5hdGVkKGludGVybik7CiAgIGNoYXIgbnVsbCgwKTsKICAgbnVsbFRlcm1pbmF0ZWQuYXBwZW5k
KG51bGwpOwogI2lmZGVmIEFQUExFX0NIQU5HRVMKQEAgLTU2LDYgKzk0LDcgQEAgUmVnRXhwOjpS
ZWdFeHAoY29uc3QgVVN0cmluZyAmcCwgaW50IGZsYQogI2lmbmRlZiBOREVCVUcKICAgICBmcHJp
bnRmKHN0ZGVyciwgIktKUzogcGNyZV9jb21waWxlKCkgZmFpbGVkIHdpdGggJyVzJ1xuIiwgZXJy
b3JNZXNzYWdlKTsKICNlbmRpZgorICAgIF92YWxpZCA9IGZhbHNlOwogICAgIHJldHVybjsKICAg
fQogCkBAIC04MCw5ICsxMTksMTUgQEAgUmVnRXhwOjpSZWdFeHAoY29uc3QgVVN0cmluZyAmcCwg
aW50IGZsYQogICAvLyAgICA7CiAgIC8vIE5vdGU6IHRoZSBHbG9iYWwgZmxhZyBpcyBhbHJlYWR5
IGhhbmRsZWQgYnkgUmVnRXhwUHJvdG9GdW5jOjpleGVjdXRlCiAKLSAgcmVnY29tcCgmX3JlZ2V4
LCBwLmFzY2lpKCksIHJlZ2ZsYWdzKTsKLSAgLyogVE9ETyBjaGVjayBmb3IgZXJyb3JzICovCi0K
KyAgaW50IGVycm9yQ29kZSA9IHJlZ2NvbXAoJl9yZWdleCwgaW50ZXJuLmFzY2lpKCksIHJlZ2Zs
YWdzKTsKKyAgaWYgKGVycm9yQ29kZSAhPSAwKSB7CisjaWZuZGVmIE5ERUJVRworICAgIGNoYXIg
ZXJyb3JNZXNzYWdlWzgwXTsKKyAgICByZWdlcnJvcihlcnJvckNvZGUsICZfcmVnZXgsIGVycm9y
TWVzc2FnZSwgc2l6ZW9mIGVycm9yTWVzc2FnZSk7CisgICAgZnByaW50ZihzdGRlcnIsICJLSlM6
IHJlZ2NvbXAgZmFpbGVkIHdpdGggJyVzJyIsIGVycm9yTWVzc2FnZSk7CisjZW5kaWYKKyAgICBf
dmFsaWQgPSBmYWxzZTsKKyAgfQogI2VuZGlmCiB9CiAKSW5kZXg6IHJlZ2V4cC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHJlZ2V4cC5oCShyZXZpc2lvbiA0OTE2NzUpCisrKyByZWdleHAuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB+UmVnRXhwKCk7CiAK
ICAgICBpbnQgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBfZmxhZ3M7IH0KKyAgICBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiBfdmFsaWQ7IH0KIAogICAgIFVTdHJpbmcgbWF0Y2goY29uc3Qg
VVN0cmluZyAmcywgaW50IGksIGludCAqcG9zID0gMCwgaW50ICoqb3ZlY3RvciA9IDApOwogICAg
IHVuc2lnbmVkIHN1YlBhdHRlcm5zKCkgY29uc3QgeyByZXR1cm4gX251bVN1YlBhdHRlcm5zOyB9
CkBAIC01Nyw2ICs1OCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHJlZ2V4X3QgX3JlZ2V4Owog
I2VuZGlmCiAgICAgaW50IF9mbGFnczsKKyAgICBib29sIF92YWxpZDsKICAgICB1bnNpZ25lZCBf
bnVtU3ViUGF0dGVybnM7CiAKICAgICBSZWdFeHAoY29uc3QgUmVnRXhwICYpOwo=
</data>
<flag name="review"
          id="1115"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5575</attachid>
            <date>2006-01-09 14:38:52 -0800</date>
            <delta_ts>2006-12-12 04:37:03 -0800</delta_ts>
            <desc>run-javascriptcore-tests patch</desc>
            <filename>patch-js-tests.txt</filename>
            <type>text/plain</type>
            <size>593</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IHRlc3RzL21vemlsbGEvR2V0b3B0L01peGVkLnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3Rz
L21vemlsbGEvR2V0b3B0L01peGVkLnBtCShyZXZpc2lvbiAxMTk2MikKKysrIHRlc3RzL21vemls
bGEvR2V0b3B0L01peGVkLnBtCSh3b3JraW5nIGNvcHkpCkBAIC00OCw5ICs0OCw2IEBACiAgICAg
JGZsb2F0UmVnZXhwID0gJ15bLStdPyhcZCpcLj9cZCt8XGQrXC4pJCc7ICMgTWF0Y2ggYSByZWFs
IG51bWJlcgogICAgICR0eXBlQ2hhcnMgICA9ICdzaWYnOyAgICAgICAgICAgICAgICAgICAgICAj
IE1hdGNoIHR5cGUgY2hhcmFjdGVycwogCi0gICAgIyBDb252ZXJ0IFJDUyByZXZpc2lvbiBudW1i
ZXIgKG11c3QgYmUgbWFpbiBicmFuY2gpIHRvIGQuZGRkIGZvcm1hdDoKLSAgICAnICRSZXZpc2lv
bjogNzAyMCAkICcgPX4gLyAoXGQrKVwuKFxkezEsM30pIC8KLSAgICAgICAgb3IgZGllICJJbnZh
bGlkIHZlcnNpb24gbnVtYmVyIjsKICAgICAkVkVSU0lPTiA9IHNwcmludGYoIiVkLiUwM2QiLCQx
LCQyKTsKIH0gIyBlbmQgQkVHSU4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11818</attachid>
            <date>2006-12-12 04:33:41 -0800</date>
            <delta_ts>2006-12-12 11:59:33 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>ThrowRegExp.txt</filename>
            <type>text/plain</type>
            <size>12212</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTc3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMDYtMTItMTIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyNTcKKyAgICAgICAgVGhyb3cgZXJyb3JzIG9uIGludmFsaWQgZXhwcmVzc2lvbnMgKEtK
UyBtZXJnZSkKKworICAgICAgICAqIGtqcy9yZWdleHAuY3BwOgorICAgICAgICAoS0pTOjpSZWdF
eHA6OlJlZ0V4cCk6CisgICAgICAgIChLSlM6OlJlZ0V4cDo6flJlZ0V4cCk6CisgICAgICAgIChL
SlM6OlJlZ0V4cDo6bWF0Y2gpOgorICAgICAgICAqIGtqcy9yZWdleHAuaDoKKyAgICAgICAgKEtK
Uzo6UmVnRXhwOjpmbGFncyk6CisgICAgICAgIChLSlM6OlJlZ0V4cDo6aXNWYWxpZCk6CisgICAg
ICAgIChLSlM6OlJlZ0V4cDo6ZXJyb3JNZXNzYWdlKToKKyAgICAgICAgKEtKUzo6UmVnRXhwOjpz
dWJQYXR0ZXJucyk6CisgICAgICAgIFJlbWVtYmVyIGFuZCByZXBvcnQgUmVnRXhwIGNvbnN0cnVj
dGlvbiBmYWlsdXJlcy4gUmVuYW1lZCBkYXRhIG1lbWJlcnMgbm90IHRvIHN0YXJ0IHdpdGggdW5k
ZXJzY29yZXMuCisKKyAgICAgICAgKiBranMvcmVnZXhwX29iamVjdC5jcHA6CisgICAgICAgIChS
ZWdFeHBPYmplY3RJbXA6OmNvbnN0cnVjdCk6IFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBSZWdFeHAg
Y29uc3RydWN0aW9uIGZhaWxlZC4KKyAgICAgICAgKFJlZ0V4cE9iamVjdEltcDo6Y2FsbEFzRnVu
Y3Rpb24pOiBSZW1vdmVkIGFuIG9ic29sZXRlIGNvbW1lbnQuCisKKyAgICAgICAgKiB0ZXN0cy9t
b3ppbGxhL2VjbWFfMy9SZWdFeHAvcmVncmVzcy0xMTk5MDkuanM6IFJlZHVjZWQgdGhlIG51bWJl
ciBvZiBuZXN0ZWQgcGFyZW50aGVzZXMgdG8gCisgICAgICAgIGEgdmFsdWUgc3VwcG9ydGVkIGJ5
IFBDUkUuCisKIDIwMDYtMTItMTEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAxODE3MykKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTUxNCw3ICs1MTQsNyBAQAogCQk5MzNB
MzQ5RDAzOEFFODBGMDA4NjM1Q0UgLyogaWRlbnRpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGlkZW50aWZpZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzNUFGNDY5MDlFOUQ5REIw
MEFDRDFEOCAvKiBGb3J3YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZv
cndhcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1QUY0NkIwOUU5RDlEQjAw
QUNEMUQ4IC8qIFVudXNlZFBhcmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVudXNlZFBhcmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzNUY2OUY2MDgy
NDRGRUEwMDNEMUE0NSAvKiBkZnRhYmxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUlu
SW5kZXggPSAwOyBwYXRoID0gZGZ0YWJsZXM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCTkzNUY2OUY2MDgyNDRGRUEwMDNEMUE0NSAvKiBkZnRhYmxlcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBpbmNsdWRlSW5JbmRleCA9IDA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgcGF0aCA9IGRmdGFibGVzOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzY0QjI3MzA0NUI3RDZDMDBBOUNBQzEg
LyogZnBjb25zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGZwY29uc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IH07CiAJCTkzNzREM0E3MDM4RDlENzQwMDg2MzVDRSAvKiBzY29wZV9jaGFpbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHNjb3BlX2No
YWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTM3NEQz
QTgwMzhEOUQ3NDAwODYzNUNFIC8qIHNjb3BlX2NoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gc2NvcGVfY2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ranMvcmVnZXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhw
LmNwcAkocmV2aXNpb24gMTgxNzMpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8vIC0qLSBjLWJhc2ljLW9mZnNldDogMiAt
Ki0KIC8qCiAgKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKLSAqICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxLDIwMDQgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9y
ZykKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJyZWdleHAuaCIKIAorI2luY2x1ZGUgImxleGVyLmgiCisKICNpbmNs
dWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpA
QCAtMzAsNyArMzIsNyBAQAogbmFtZXNwYWNlIEtKUyB7CiAKIFJlZ0V4cDo6UmVnRXhwKGNvbnN0
IFVTdHJpbmcgJnAsIGludCBmbGFncykKLSAgOiBfZmxhZ3MoZmxhZ3MpLCBfbnVtU3ViUGF0dGVy
bnMoMCkKKyAgOiBtX2ZsYWdzKGZsYWdzKSwgbV9jb25zdHJ1Y3Rpb25FcnJvcigwKSwgbV9udW1T
dWJQYXR0ZXJucygwKQogewogI2lmIEhBVkUoUENSRVBPU0lYKQogCkBAIC00OCwyMCArNTAsMjIg
QEAgUmVnRXhwOjpSZWdFeHAoY29uc3QgVVN0cmluZyAmcCwgaW50IGZsYQogICBVU3RyaW5nIHBh
dHRlcm4ocCk7CiAgIAogICBwYXR0ZXJuLmFwcGVuZCgnXDAnKTsKLSAgX3JlZ2V4ID0gcGNyZV9j
b21waWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihwYXR0ZXJuLmRhdGEoKSks
CisgIG1fcmVnZXggPSBwY3JlX2NvbXBpbGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZf
dCo+KHBhdHRlcm4uZGF0YSgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsICZl
cnJvck1lc3NhZ2UsICZlcnJvck9mZnNldCwgTlVMTCk7Ci0gIGlmICghX3JlZ2V4KSB7CisgIGlm
ICghbV9yZWdleCkgewogICAgIC8vIFRyeSBhZ2FpbiwgdGhpcyB0aW1lIGhhbmRsZSBhbnkgXHUg
d2UgbWlnaHQgZmluZC4KICAgICBVU3RyaW5nIHVQYXR0ZXJuID0gc2FuaXRpemVQYXR0ZXJuKHBh
dHRlcm4pOwotICAgIF9yZWdleCA9IHBjcmVfY29tcGlsZShyZWludGVycHJldF9jYXN0PGNvbnN0
IHVpbnQxNl90Kj4odVBhdHRlcm4uZGF0YSgpKSwKKyAgICBtX3JlZ2V4ID0gcGNyZV9jb21waWxl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPih1UGF0dGVybi5kYXRhKCkpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLCAmZXJyb3JNZXNzYWdlLCAmZXJyb3JPZmZz
ZXQsIE5VTEwpOwotICAgIGlmICghX3JlZ2V4KSAKKyAgICBpZiAoIW1fcmVnZXgpIHsKKyAgICAg
IG1fY29uc3RydWN0aW9uRXJyb3IgPSBzdHJkdXAoZXJyb3JNZXNzYWdlKTsKICAgICAgIHJldHVy
bjsKKyAgICB9CiAgIH0KIAogI2lmZGVmIFBDUkVfSU5GT19DQVBUVVJFQ09VTlQKICAgLy8gR2V0
IG51bWJlciBvZiBzdWJwYXR0ZXJucyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQuCi0gIHBjcmVfZnVs
bGluZm8oX3JlZ2V4LCBOVUxMLCBQQ1JFX0lORk9fQ0FQVFVSRUNPVU5ULCAmX251bVN1YlBhdHRl
cm5zKTsKKyAgcGNyZV9mdWxsaW5mbyhtX3JlZ2V4LCBOVUxMLCBQQ1JFX0lORk9fQ0FQVFVSRUNP
VU5ULCAmbV9udW1TdWJQYXR0ZXJucyk7CiAjZW5kaWYKIAogI2Vsc2UgLyogSEFWRShQQ1JFUE9T
SVgpICovCkBAIC04MCw4ICs4NCwxNCBAQCBSZWdFeHA6OlJlZ0V4cChjb25zdCBVU3RyaW5nICZw
LCBpbnQgZmxhCiAgIC8vICAgIDsKICAgLy8gTm90ZTogdGhlIEdsb2JhbCBmbGFnIGlzIGFscmVh
ZHkgaGFuZGxlZCBieSBSZWdFeHBQcm90b0Z1bmM6OmV4ZWN1dGUKIAotICByZWdjb21wKCZfcmVn
ZXgsIHAuYXNjaWkoKSwgcmVnZmxhZ3MpOwotICAvKiBUT0RPIGNoZWNrIGZvciBlcnJvcnMgKi8K
KyAgLy8gRklYTUU6IHN1cHBvcnQgXHUgVW5pY29kZSBlc2NhcGVzLgorCisgIGludCBlcnJvckNv
ZGUgPSByZWdjb21wKCZtX3JlZ2V4LCBpbnRlcm4uYXNjaWkoKSwgcmVnZmxhZ3MpOworICBpZiAo
ZXJyb3JDb2RlICE9IDApIHsKKyAgICBjaGFyIGVycm9yTWVzc2FnZVs4MF07CisgICAgcmVnZXJy
b3IoZXJyb3JDb2RlLCAmbV9yZWdleCwgZXJyb3JNZXNzYWdlLCBzaXplb2YgZXJyb3JNZXNzYWdl
KTsKKyAgICBtX2NvbnN0cnVjdGlvbkVycm9yID0gc3RyZHVwKGVycm9yTWVzc2FnZSk7CisgIH0K
IAogI2VuZGlmCiB9CkBAIC04OSwxMSArOTksMTIgQEAgUmVnRXhwOjpSZWdFeHAoY29uc3QgVVN0
cmluZyAmcCwgaW50IGZsYQogUmVnRXhwOjp+UmVnRXhwKCkKIHsKICNpZiBIQVZFKFBDUkVQT1NJ
WCkKLSAgcGNyZV9mcmVlKF9yZWdleCk7CisgIHBjcmVfZnJlZShtX3JlZ2V4KTsKICNlbHNlCiAg
IC8qIFRPRE86IGlzIHRoaXMgcmVhbGx5IG9rYXkgYWZ0ZXIgYW4gZXJyb3IgPyAqLwotICByZWdm
cmVlKCZfcmVnZXgpOworICByZWdmcmVlKCZtX3JlZ2V4KTsKICNlbmRpZgorICBmcmVlKG1fY29u
c3RydWN0aW9uRXJyb3IpOwogfQogCiBVU3RyaW5nIFJlZ0V4cDo6bWF0Y2goY29uc3QgVVN0cmlu
ZyAmcywgaW50IGksIGludCAqcG9zLCBpbnQgKipvdmVjdG9yKQpAQCAtMTEyLDcgKzEyMyw3IEBA
IFVTdHJpbmcgUmVnRXhwOjptYXRjaChjb25zdCBVU3RyaW5nICZzLCAKIAogI2lmIEhBVkUoUENS
RVBPU0lYKQogCi0gIGlmICghX3JlZ2V4KQorICBpZiAoIW1fcmVnZXgpCiAgICAgcmV0dXJuIFVT
dHJpbmc6Om51bGwoKTsKIAogICAvLyBTZXQgdXAgdGhlIG9mZnNldCB2ZWN0b3IgZm9yIHRoZSBy
ZXN1bHQuCkBAIC0xMjQsMTEgKzEzNSwxMSBAQCBVU3RyaW5nIFJlZ0V4cDo6bWF0Y2goY29uc3Qg
VVN0cmluZyAmcywgCiAgICAgb2Zmc2V0VmVjdG9yU2l6ZSA9IDM7CiAgICAgb2Zmc2V0VmVjdG9y
ID0gZml4ZWRTaXplT2Zmc2V0VmVjdG9yOwogICB9IGVsc2UgewotICAgIG9mZnNldFZlY3RvclNp
emUgPSAoX251bVN1YlBhdHRlcm5zICsgMSkgKiAzOworICAgIG9mZnNldFZlY3RvclNpemUgPSAo
bV9udW1TdWJQYXR0ZXJucyArIDEpICogMzsKICAgICBvZmZzZXRWZWN0b3IgPSBuZXcgaW50IFtv
ZmZzZXRWZWN0b3JTaXplXTsKICAgfQogCi0gIGNvbnN0IGludCBudW1NYXRjaGVzID0gcGNyZV9l
eGVjKF9yZWdleCwgTlVMTCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCAqPihzLmRh
dGEoKSksIHMuc2l6ZSgpLCBpLCAwLCBvZmZzZXRWZWN0b3IsIG9mZnNldFZlY3RvclNpemUpOwor
ICBjb25zdCBpbnQgbnVtTWF0Y2hlcyA9IHBjcmVfZXhlYyhtX3JlZ2V4LCBOVUxMLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQxNl90ICo+KHMuZGF0YSgpKSwgcy5zaXplKCksIGksIDAsIG9m
ZnNldFZlY3Rvciwgb2Zmc2V0VmVjdG9yU2l6ZSk7CiAKICAgaWYgKG51bU1hdGNoZXMgPCAwKSB7
CiAjaWZuZGVmIE5ERUJVRwpAQCAtMTUxLDcgKzE2Miw3IEBAIFVTdHJpbmcgUmVnRXhwOjptYXRj
aChjb25zdCBVU3RyaW5nICZzLCAKICAgcmVnbWF0Y2hfdCBybWF0Y2hbbWF4TWF0Y2hdOwogCiAg
IGNoYXIgKnN0ciA9IHN0cmR1cChzLmFzY2lpKCkpOyAvLyBUT0RPOiB3aHkgPz8/Ci0gIGlmIChy
ZWdleGVjKCZfcmVnZXgsIHN0ciArIGksIG1heE1hdGNoLCBybWF0Y2gsIDApKSB7CisgIGlmIChy
ZWdleGVjKCZtX3JlZ2V4LCBzdHIgKyBpLCBtYXhNYXRjaCwgcm1hdGNoLCAwKSkgewogICAgIGZy
ZWUoc3RyKTsKICAgICByZXR1cm4gVVN0cmluZzo6bnVsbCgpOwogICB9CkBAIC0xNjMsMTIgKzE3
NCwxMiBAQCBVU3RyaW5nIFJlZ0V4cDo6bWF0Y2goY29uc3QgVVN0cmluZyAmcywgCiAgIH0KIAog
ICAvLyBtYXAgcm1hdGNoIGFycmF5IHRvIG92ZWN0b3IgdXNlZCBpbiBQQ1JFIGNhc2UKLSAgX251
bVN1YlBhdHRlcm5zID0gMDsKKyAgbV9udW1TdWJQYXR0ZXJucyA9IDA7CiAgIGZvcih1bnNpZ25l
ZCBqID0gMTsgaiA8IG1heE1hdGNoICYmIHJtYXRjaFtqXS5ybV9zbyA+PSAwIDsgaisrKQotICAg
ICAgX251bVN1YlBhdHRlcm5zKys7Ci0gIGludCBvdmVjc2l6ZSA9IChfbnVtU3ViUGF0dGVybnMr
MSkqMzsgLy8gc2VlIGFib3ZlCisgICAgICBtX251bVN1YlBhdHRlcm5zKys7CisgIGludCBvdmVj
c2l6ZSA9IChtX251bVN1YlBhdHRlcm5zKzEpKjM7IC8vIHNlZSBhYm92ZQogICAqb3ZlY3RvciA9
IG5ldyBpbnRbb3ZlY3NpemVdOwotICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgX251bVN1YlBh
dHRlcm5zICsgMTsgaisrKSB7CisgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBtX251bVN1YlBh
dHRlcm5zICsgMTsgaisrKSB7CiAgICAgaWYgKGo+bWF4TWF0Y2gpCiAgICAgICBicmVhazsKICAg
ICAoKm92ZWN0b3IpWzIqal0gPSBybWF0Y2hbal0ucm1fc28gKyBpOwpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL3JlZ2V4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9yZWdl
eHAuaAkocmV2aXNpb24gMTgxNzMpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDE5ICs0NSwyMiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBSZWdF
eHAoY29uc3QgVVN0cmluZyAmcGF0dGVybiwgaW50IGZsYWdzID0gTm9uZSk7CiAgICAgflJlZ0V4
cCgpOwogCi0gICAgaW50IGZsYWdzKCkgY29uc3QgeyByZXR1cm4gX2ZsYWdzOyB9CisgICAgaW50
IGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IHsgcmV0dXJuICFtX2NvbnN0cnVjdGlvbkVycm9yOyB9CisgICAgY29uc3QgY2hhciogZXJy
b3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJ1Y3Rpb25FcnJvcjsgfQogCiAgICAg
VVN0cmluZyBtYXRjaChjb25zdCBVU3RyaW5nICZzLCBpbnQgaSwgaW50ICpwb3MgPSAwLCBpbnQg
KipvdmVjdG9yID0gMCk7Ci0gICAgdW5zaWduZWQgc3ViUGF0dGVybnMoKSBjb25zdCB7IHJldHVy
biBfbnVtU3ViUGF0dGVybnM7IH0KKyAgICB1bnNpZ25lZCBzdWJQYXR0ZXJucygpIGNvbnN0IHsg
cmV0dXJuIG1fbnVtU3ViUGF0dGVybnM7IH0KIAogICBwcml2YXRlOgogI2lmIEhBVkUoUENSRVBP
U0lYKQotICAgIHBjcmUgKl9yZWdleDsKKyAgICBwY3JlICptX3JlZ2V4OwogI2Vsc2UKLSAgICBy
ZWdleF90IF9yZWdleDsKKyAgICByZWdleF90IG1fcmVnZXg7CiAjZW5kaWYKLSAgICBpbnQgX2Zs
YWdzOwotICAgIHVuc2lnbmVkIF9udW1TdWJQYXR0ZXJuczsKKyAgICBpbnQgbV9mbGFnczsKKyAg
ICBjaGFyKiBtX2NvbnN0cnVjdGlvbkVycm9yOworICAgIHVuc2lnbmVkIG1fbnVtU3ViUGF0dGVy
bnM7CiAKICAgICBSZWdFeHAoY29uc3QgUmVnRXhwICYpOwogICAgIFJlZ0V4cCAmb3BlcmF0b3I9
KGNvbnN0IFJlZ0V4cCAmKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9yZWdleHBfb2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvcmVnZXhwX29iamVjdC5jcHAJ
KHJldmlzaW9uIDE4MTczKQorKysgSmF2YVNjcmlwdENvcmUva2pzL3JlZ2V4cF9vYmplY3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zODIsNyArMzgyLDYgQEAgSlNPYmplY3QgKlJlZ0V4cE9iamVj
dEltcDo6Y29uc3RydWN0KEV4ZQogICBib29sIGdsb2JhbCA9IChmbGFncy5maW5kKCJnIikgPj0g
MCk7CiAgIGJvb2wgaWdub3JlQ2FzZSA9IChmbGFncy5maW5kKCJpIikgPj0gMCk7CiAgIGJvb2wg
bXVsdGlsaW5lID0gKGZsYWdzLmZpbmQoIm0iKSA+PSAwKTsKLSAgLy8gVE9ETzogdGhyb3cgYSBz
eW50YXggZXJyb3Igb24gaW52YWxpZCBmbGFncwogCiAgIGRhdC0+cHV0RGlyZWN0KCJnbG9iYWwi
LCBqc0Jvb2xlYW4oZ2xvYmFsKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwog
ICBkYXQtPnB1dERpcmVjdCgiaWdub3JlQ2FzZSIsIGpzQm9vbGVhbihpZ25vcmVDYXNlKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwpAQCAtMzk4LDcgKzM5NywxMiBAQCBKU09i
amVjdCAqUmVnRXhwT2JqZWN0SW1wOjpjb25zdHJ1Y3QoRXhlCiAgICAgICByZWZsYWdzIHw9IFJl
Z0V4cDo6SWdub3JlQ2FzZTsKICAgaWYgKG11bHRpbGluZSkKICAgICAgIHJlZmxhZ3MgfD0gUmVn
RXhwOjpNdWx0aWxpbmU7Ci0gIGRhdC0+c2V0UmVnRXhwKG5ldyBSZWdFeHAocCwgcmVmbGFncykp
OworICBSZWdFeHAqIHJlID0gbmV3IFJlZ0V4cChwLCByZWZsYWdzKTsKKyAgaWYgKCFyZS0+aXNW
YWxpZCgpKSB7CisgICAgZGVsZXRlIHJlOworICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFN5
bnRheEVycm9yLCBVU3RyaW5nKCJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogIikuYXBwZW5k
KHJlLT5lcnJvck1lc3NhZ2UoKSkpOworICB9CisgIGRhdC0+c2V0UmVnRXhwKHJlKTsKIAogICBy
ZXR1cm4gZGF0OwogfQpAQCAtNDA2LDcgKzQxMCw1IEBAIEpTT2JqZWN0ICpSZWdFeHBPYmplY3RJ
bXA6OmNvbnN0cnVjdChFeGUKIC8vIEVDTUEgMTUuMTAuMwogSlNWYWx1ZSAqUmVnRXhwT2JqZWN0
SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICogLyp0aGlzT2Jq
Ki8sIGNvbnN0IExpc3QgJmFyZ3MpCiB7Ci0gIC8vIFRPRE86IGhhbmRsZSBSZWdFeHAgYXJndW1l
bnQgY2FzZSAoMTUuMTAuMy4xKQotCiAgIHJldHVybiBjb25zdHJ1Y3QoZXhlYywgYXJncyk7CiB9
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS90ZXN0cy9tb3ppbGxhL2VjbWFfMy9SZWdFeHAvcmVncmVz
cy0xMTk5MDkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvdGVzdHMvbW96aWxsYS9l
Y21hXzMvUmVnRXhwL3JlZ3Jlc3MtMTE5OTA5LmpzCShyZXZpc2lvbiAxODE3MykKKysrIEphdmFT
Y3JpcHRDb3JlL3Rlc3RzL21vemlsbGEvZWNtYV8zL1JlZ0V4cC9yZWdyZXNzLTExOTkwOS5qcwko
d29ya2luZyBjb3B5KQpAQCAtNTcsOCArNTcsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgcHJpbnRC
dWdOdW1iZXIoYnVnKTsKICAgcHJpbnRTdGF0dXMoc3VtbWFyeSk7CiAKLSAgdGVzdFRoaXMoNTAw
LCBOT19CQUNLUkVGUywgJ2hlbGxvJywgJ2dvb2RieWUnKTsKLSAgdGVzdFRoaXMoNTAwLCBET19C
QUNLUkVGUywgJ2hlbGxvJywgJ2dvb2RieWUnKTsKKyAgLy8gQ2hhbmdlZCB0aGUgcGFyYW1ldGVy
IGZyb20gNTAwIHRvIDIwMCBmb3IgV2ViS2l0LCBiZWNhdXNlIFBDUkUgcmVwb3J0cyBhbiBlcnJv
ciBmb3IgbW9yZSBwYXJlbnRoZXNlcy4KKyAgdGVzdFRoaXMoMjAwLCBOT19CQUNLUkVGUywgJ2hl
bGxvJywgJ2dvb2RieWUnKTsKKyAgdGVzdFRoaXMoMjAwLCBET19CQUNLUkVGUywgJ2hlbGxvJywg
J2dvb2RieWUnKTsKIAogICBleGl0RnVuYygndGVzdCcpOwogfQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTgxNzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMiBAQAorMjAwNi0xMi0xMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1NworICAgICAgICBUaHJvdyBlcnJv
cnMgb24gaW52YWxpZCBleHByZXNzaW9ucyAoS0pTIG1lcmdlKQorCisgICAgICAgICogZmFzdC9q
cy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dDogT25lIG1vcmUgdGVzdCBwYXNzZXMuCisKIDIwMDYt
MTItMTIgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnICYgUm9iIEJ1aXMuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2tkZS9SZWdFeHAtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMva2RlL1JlZ0V4cC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE4MTczKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9rZGUvUmVnRXhwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNyArNjIsNyBAQCBQQVNTICcxdGVzdDJ0ZXN0MycucmVwbGFjZSgvXGQvZywnJykgaXMg
CiBQQVNTICcxdGVzdDJ0ZXN0MycucmVwbGFjZSgveC9nLCcnKSBpcyAnMXRlc3QydGVzdDMnCiBQ
QVNTICd0ZXN0MXRlc3QyJy5yZXBsYWNlKC8odGUpKHN0KS9nLCckMiQxJykgaXMgJ3N0dGUxc3R0
ZTInCiBQQVNTICdmb28rYmFyJy5yZXBsYWNlKC9cKy9nLCclMkInKSBpcyAnZm9vJTJCYmFyJwot
RkFJTCBjYXVnaHQgc2hvdWxkIGJlIHRydWUgKG9mIHR5cGUgYm9vbGVhbikuIFdhcyBmYWxzZSAo
b2YgdHlwZSBib29sZWFuKS4KK1BBU1MgY2F1Z2h0IGlzIHRydWUKIFBBU1MgJ2ZvbycucmVwbGFj
ZSgvej8vZywneCcpIGlzICd4ZnhveG94JwogUEFTUyAndGVzdCB0ZXN0Jy5yZXBsYWNlKC9ccyov
ZywnJykgaXMgJ3Rlc3R0ZXN0JwogUEFTUyAnYWJjJCVAJy5yZXBsYWNlKC9bXjAtOWEtel0qL2dp
LCcnKSBpcyAnYWJjJwo=
</data>
<flag name="review"
          id="4291"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>