<?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>3274</bug_id>
          
          <creation_ts>2005-06-04 20:31:27 -0700</creation_ts>
          <short_desc>document() not supported</short_desc>
          <delta_ts>2005-07-29 10:31:59 -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>XML</component>
          <version>412</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>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>vicki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10734</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-06-04 20:31:27 -0700</bug_when>
    <thetext>The document() capability of XSLT is not supported.  XSLT&apos;s loader API (the one used to load stylesheets) 
needs to be used in order to synchronously load and hand back an XML document.  This code could be 
similar to (or possibly reuse) the sync code for XMLHttpRequests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12859</commentid>
    <comment_count>1</comment_count>
      <attachid>2555</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-22 15:19:18 -0700</bug_when>
    <thetext>Created attachment 2555
Work in progress

Here&apos;s an initial stab at getting document() working. The things I&apos;m concerned
with are:

1) The use of libxml: I see that other parts of WebCore use different parser
functions, for example XMLTokenizer::setTransformSource uses xmlReadMemory
instead, with a passed in QString. Should the QByteBuffer be encoded to a
QString (and what encoding should be used if so?) and then passed in.
Basically, what function should be used?

2) Error handling: If there&apos;s a parse error in an xml document included by
document(), the parse errors are written to stderr. I suppose the error sax
handlers need to be overridden in order to suppress those warnings.

3) Test cases: Not a big deal, but there are no real xsl test cases. Maciej
suggested that we add a fast/xsl subdir with xsl test cases. I haven&apos;t uploaded
any test cases here yet (I have a very basic one) since I wanted to get
feedback on the patch first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12861</commentid>
    <comment_count>2</comment_count>
      <attachid>2555</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-22 15:20:02 -0700</bug_when>
    <thetext>Comment on attachment 2555
Work in progress

I feel kinda stupid requesting a review on this patch since I know it&apos;s not
gonna be accepted, but I would like to get feedback on my previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12882</commentid>
    <comment_count>3</comment_count>
      <attachid>2555</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-22 20:09:12 -0700</bug_when>
    <thetext>Comment on attachment 2555
Work in progress

Well, setting the review flag is indeed an effective way to get my attention!

Regarding your comments (2) and (3), sounds like you&apos;re on the right track. To
figure out what we should do in error cases, we first need to investigate what
other browsers do in such cases.

As far as issue (1) is concerned, the fact that other caller use xmlReadMemory
is due to the fact that we already have the data in memory, stored in a
QString. In the XMLTokenizer case we have already used our own decoding logic
for figuring out what character set to decode.

Whether libxml2&apos;s logic to determine what character set something is in is
acceptable or not, I don&apos;t really know. Since it doesn&apos;t get passed the
headers, I don&apos;t know how it could possibly handle that exactly right.

I think it&apos;s OK to start like this, and make a change only if we find a bug. If
we want to decode here in a way that matches the XMLTokenizer code path, it&apos;s
pretty simple:

Create a khtml::Decoder. Look at the headers and call setEncoding with the
encoding from the header, if any, passing EncodingFromHTTPHeader. See the logic
in KHTMLPart::write for other rules we might want to imitate (inheriting
encoding, user-specified encoding).

Call decode(), passing all the data. Call flush(), and append that QString to
the one you got from decode().

Then call xmlReadMemory the same way XMLTokenizer does.

I&apos;m sure we could do a little refactoring to share code with KHTMLPart::write
too.

But it&apos;s probably not worth doing any of that until we make a test case and see
how the other browsers handle character sets in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12987</commentid>
    <comment_count>4</comment_count>
      <attachid>2605</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-23 12:52:36 -0700</bug_when>
    <thetext>Created attachment 2605
Adress comments

Looks like neither Gecko nor WinIE looks at the HTTP headers to see what the
encoding is, so I think we&apos;re fine using xmlReadMemory. I&apos;ve also fixed the two
other issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13021</commentid>
    <comment_count>5</comment_count>
      <attachid>2605</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-23 23:10:58 -0700</bug_when>
    <thetext>Comment on attachment 2605
Adress comments

I&apos;d prefer that the layout test explain what it&apos;s testing and what the expected
result is.

There&apos;s some formatting strangeness here -- space after xmlSetGenericErrorFunc
but before the parenthesis.

Also there are break statements after return statements, which seems
unnecessary to me.

Should fix typo: &quot;somwhere&quot;.

Otherwise, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13048</commentid>
    <comment_count>6</comment_count>
      <attachid>2628</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-06-24 08:05:12 -0700</bug_when>
    <thetext>Created attachment 2628
Address more comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13087</commentid>
    <comment_count>7</comment_count>
      <attachid>2628</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-24 08:33:17 -0700</bug_when>
    <thetext>Comment on attachment 2628
Address more comments

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13790</commentid>
    <comment_count>8</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2005-07-03 07:25:58 -0700</bug_when>
    <thetext>Dave, could you verifiy this one? :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15363</commentid>
    <comment_count>9</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2005-07-28 11:54:04 -0700</bug_when>
    <thetext>*** Bug 4055 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15400</commentid>
    <comment_count>10</comment_count>
    <who name="Vicki Murley">vicki</who>
    <bug_when>2005-07-29 10:31:59 -0700</bug_when>
    <thetext>This bug is also in Radar as &lt;rdar://4098268&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2555</attachid>
            <date>2005-06-22 15:19:18 -0700</date>
            <delta_ts>2005-06-23 12:52:36 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>webcore-xslt-document-function.diff</filename>
            <type>text/plain</type>
            <size>3871</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">PyBidWlsZApJbmRleDoga2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1w
bC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11IC1wIC1yMS41IHhzbHRfcHJv
Y2Vzc29yaW1wbC5jcHAKLS0tIHhzbHRfcHJvY2Vzc29yaW1wbC5jcHAJMjAwNS8wNS8yNyAyMjo0
ODowNwkxLjUKKysrIHhzbHRfcHJvY2Vzc29yaW1wbC5jcHAJMjAwNS8wNi8yMiAyMjowMTozNQpA
QCAtMjcsNyArMjcsMTAgQEAKICNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlICJraHRtbHZp
ZXcuaCIKICNpbmNsdWRlICJraHRtbF9wYXJ0LmgiCisjaW5jbHVkZSAiS1dRTG9hZGVyLmgiCiAK
KyNpbmNsdWRlIDxraW8vam9iLmg+CisKICNpbmNsdWRlIDxsaWJ4c2x0L3hzbHR1dGlscy5oPgog
I2luY2x1ZGUgPGxpYnhzbHQvZG9jdW1lbnRzLmg+CiAjaW5jbHVkZSA8bGlieHNsdC9pbXBvcnRz
Lmg+CkBAIC01NCwxOSArNTcsNDAgQEAgWFNMVFByb2Nlc3NvckltcGw6On5YU0xUUHJvY2Vzc29y
SW1wbCgpCiAgICAgICAgIG1fc291cmNlRG9jdW1lbnQtPmRlcmVmKCk7CiB9CiAKLXN0YXRpYyBY
U0xTdHlsZVNoZWV0SW1wbCogZ2xvYmFsU2hlZXQgPSAwOworc3RhdGljIFhTTFRQcm9jZXNzb3JJ
bXBsICpnbG9iYWxQcm9jZXNzb3IgPSAwOwogc3RhdGljIHhtbERvY1B0ciBzdHlsZXNoZWV0TG9h
ZEZ1bmMoY29uc3QgeG1sQ2hhciogdXJpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeG1sRGljdFB0ciBkaWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
KiBjdHh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHNsdExvYWRUeXBl
IHR5cGUpCiB7Ci0gICAgaWYgKHR5cGUgIT0gWFNMVF9MT0FEX1NUWUxFU0hFRVQpCi0gICAgICAg
IHJldHVybiBOVUxMOyAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFhTTFRfTE9BRF9ET0NVTUVO
VCBmb3IgdGhlIGRvY3VtZW50KCkgZnVuY3Rpb24uCi0gICAgCi0gICAgaWYgKCFnbG9iYWxTaGVl
dCkKKyAgICBpZiAoIWdsb2JhbFByb2Nlc3NvcikKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAg
cmV0dXJuIGdsb2JhbFNoZWV0LT5sb2NhdGVTdHlsZXNoZWV0U3ViUmVzb3VyY2UoKCh4c2x0U3R5
bGVzaGVldFB0ciljdHh0KS0+ZG9jLCB1cmkpOworICAgIAorICAgIHN3aXRjaCAodHlwZSkgewor
ICAgICAgICBjYXNlIFhTTFRfTE9BRF9ET0NVTUVOVDogeworICAgICAgICAgICAgS1VSTCB1cmwg
PSBLVVJMKChjaGFyICopdXJpKTsKKyAgICAgICAgICAgIEtVUkwgZmluYWxVUkw7CisgICAgICAg
ICAgICBLSU86OlRyYW5zZmVySm9iICpqb2IgPSBLSU86OmdldCh1cmwsIHRydWUsIGZhbHNlKTsK
KyAgICAgICAgICAgIFFCeXRlQXJyYXkgZGF0YTsKKyAgICAgICAgICAgIFFTdHJpbmcgaGVhZGVy
czsKKyAgICAgICAgICAgIHhtbERvY1B0ciBkb2M7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRhdGEgPSBLV1FTZXJ2ZVN5bmNocm9ub3VzUmVxdWVzdChraHRtbDo6Q2FjaGU6OmxvYWRlcigp
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxQ
cm9jZXNzb3ItPnNvdXJjZURvY3VtZW50KCktPmRvY0xvYWRlcigpLCBqb2IsIGZpbmFsVVJMLCBo
ZWFkZXJzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGRvYyA9IHhtbFBhcnNlTWVtb3J5KGRhdGEuZGF0YSgpLCBkYXRh
LnNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkb2M7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFhTTFRfTE9BRF9TVFlMRVNIRUVU
OgorICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFByb2Nlc3Nvci0+c3R5bGVzaGVldCgpLT5sb2Nh
dGVTdHlsZXNoZWV0U3ViUmVzb3VyY2UoKCh4c2x0U3R5bGVzaGVldFB0ciljdHh0KS0+ZG9jLCB1
cmkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIE5VTEw7CiB9CiAKIERvY3VtZW50SW1wbCog
WFNMVFByb2Nlc3NvckltcGw6OnRyYW5zZm9ybURvY3VtZW50KERvY3VtZW50SW1wbCogZG9jKQpA
QCAtNzcsMjAgKzEwMSwyNiBAQCBEb2N1bWVudEltcGwqIFhTTFRQcm9jZXNzb3JJbXBsOjp0cmFu
c2ZvCiAKICAgICBpZiAoIW1fc3R5bGVzaGVldCB8fCAhbV9zdHlsZXNoZWV0LT5kb2N1bWVudCgp
KSByZXR1cm4gMDsKICAgICAgICAgCi0gICAgZ2xvYmFsU2hlZXQgPSBtX3N0eWxlc2hlZXQ7Cisg
ICAgZ2xvYmFsUHJvY2Vzc29yID0gdGhpczsKICAgICB4c2x0U2V0TG9hZGVyRnVuYyhzdHlsZXNo
ZWV0TG9hZEZ1bmMpOwogCiAgICAgeHNsdFN0eWxlc2hlZXRQdHIgc2hlZXQgPSBtX3N0eWxlc2hl
ZXQtPmNvbXBpbGVTdHlsZVNoZWV0KCk7Ci0KLSAgICBnbG9iYWxTaGVldCA9IDA7Ci0gICAgeHNs
dFNldExvYWRlckZ1bmMoMCk7CiAKLSAgICBpZiAoIXNoZWV0KSByZXR1cm4gMDsKKyAgICBpZiAo
IXNoZWV0KSB7CisgICAgICAgIGdsb2JhbFByb2Nlc3NvciA9IDA7CisgICAgICAgIHhzbHRTZXRM
b2FkZXJGdW5jKDApOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgCiAgICAgbV9zdHls
ZXNoZWV0LT5jbGVhckRvY3VtZW50cygpOwogICAKICAgICAvLyBHZXQgdGhlIHBhcnNlZCBzb3Vy
Y2UgZG9jdW1lbnQuCiAgICAgeG1sRG9jUHRyIHNvdXJjZURvYyA9ICh4bWxEb2NQdHIpZG9jLT50
cmFuc2Zvcm1Tb3VyY2UoKTsKICAgICB4bWxEb2NQdHIgcmVzdWx0RG9jID0geHNsdEFwcGx5U3R5
bGVzaGVldChzaGVldCwgc291cmNlRG9jLCBOVUxMKTsKKyAgICAKKyAgICBnbG9iYWxQcm9jZXNz
b3IgPSAwOworICAgIHhzbHRTZXRMb2FkZXJGdW5jKDApOworCiAgICAgRG9jdW1lbnRJbXBsKiBy
ZXN1bHQgPSBkb2N1bWVudEZyb21YTUxEb2NQdHIocmVzdWx0RG9jLCBzaGVldCk7CiAgICAgeHNs
dEZyZWVTdHlsZXNoZWV0KHNoZWV0KTsKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDoga2h0bWwv
eHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgeHNsdF9wcm9jZXNzb3JpbXBsLmgKLS0tIHhzbHRfcHJv
Y2Vzc29yaW1wbC5oCTIwMDQvMDgvMTkgMjI6NTA6MzAJMS4yCisrKyB4c2x0X3Byb2Nlc3Nvcmlt
cGwuaAkyMDA1LzA2LzIyIDIyOjAxOjM1CkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICAv
LyBIZWxwZXJzCiAgICAgdm9pZCBhZGRUb1Jlc3VsdChjb25zdCBjaGFyKiBidWZmZXIsIGludCBs
ZW4pOwogICAgIAorICAgIFhTTFN0eWxlU2hlZXRJbXBsICpzdHlsZXNoZWV0KCkgeyByZXR1cm4g
bV9zdHlsZXNoZWV0OyB9CisgICAgRG9jdW1lbnRJbXBsICpzb3VyY2VEb2N1bWVudCgpIHsgcmV0
dXJuIG1fc291cmNlRG9jdW1lbnQ7IH0KKyAgICAKIHByb3RlY3RlZDoKICAgICBYU0xTdHlsZVNo
ZWV0SW1wbCogbV9zdHlsZXNoZWV0OwogICAgIFFTdHJpbmcgbV9yZXN1bHRPdXRwdXQ7Cg==
</data>
<flag name="review"
          id="73"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2605</attachid>
            <date>2005-06-23 12:52:36 -0700</date>
            <delta_ts>2005-06-24 08:05:12 -0700</delta_ts>
            <desc>Adress comments</desc>
            <filename>webcore-xslt-document-function-2.diff</filename>
            <type>text/plain</type>
            <size>6874</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">PyAuZ2RiX2hpc3RvcnkKPyBsYXlvdXQtdGVzdHMvZmFzdC94c2wKSW5kZXg6IENoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9DaGFuZ2VMb2csdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNDMwNgpkaWZmIC11IC1wIC1yMS40MzA2IENoYW5nZUxvZwotLS0gQ2hh
bmdlTG9nCTIwMDUvMDYvMjMgMTk6MTM6NTMJMS40MzA2CisrKyBDaGFuZ2VMb2cJMjAwNS8wNi8y
MyAxOTo0OTo1OApAQCAtMSwzICsxLDMwIEBACisyMDA1LTA2LTIzICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBtYWMuY29tPgorCisgICAgICAgIC0gRml4IDxodHRwOi8vYnVnemlsbGEub3Bl
bmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTMyNzQ+CisJZG9jdW1lbnQoKSBub3Qgc3VwcG9y
dGVkCisKKwlUZXN0IGNhc2VzIGFkZGVkOgorCSogbGF5b3V0LXRlc3RzL2Zhc3QveHNsL2RvY3Vt
ZW50LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisJKiBsYXlvdXQtdGVzdHMvZmFzdC94
c2wvZG9jdW1lbnQtZnVuY3Rpb24ueG1sOiBBZGRlZC4KKwkqIGxheW91dC10ZXN0cy9mYXN0L3hz
bC9kb2N1bWVudC1mdW5jdGlvbi54c2w6IEFkZGVkLgorCSogbGF5b3V0LXRlc3RzL2Zhc3QveHNs
L3Jlc291cmNlcy9kb2N1bWVudC1mdW5jdGlvbi1zb3VyY2UueG1sOiBBZGRlZC4KKwkKKyAgICAg
ICAgKiBraHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmNwcDoKKwkoRE9NOjpwYXJzZUVycm9y
RnVuYyk6CisJU3R1YiB0byBwcmV2ZW50IGVycm9ycyBmcm9tIGdldHRpbmcgd3JpdHRlbiB0byB0
aGUgY29uc29sZS4KKwkKKyAgICAgICAgKERPTTo6c3R5bGVzaGVldExvYWRGdW5jKToKKwlGZXRj
aCBhbmQgcGFyc2UgZG9jdW1lbnRzLgorCQorICAgICAgICAoRE9NOjpYU0xUUHJvY2Vzc29ySW1w
bDo6dHJhbnNmb3JtRG9jdW1lbnQpOgorCVVzZSB0aGUgcHJvY2Vzc29yIGFzIHRoZSBnbG9iYWwg
dmFyaWFibGUgaW5zdGVhZCBvZiB0aGUgCisJc3R5bGUgc2hlZXQuCisJCisgICAgICAgICoga2h0
bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5oOgorICAgICAgICAoRE9NOjpYU0xUUHJvY2Vzc29y
SW1wbDo6c3R5bGVzaGVldCk6CisgICAgICAgIChET006OlhTTFRQcm9jZXNzb3JJbXBsOjpzb3Vy
Y2VEb2N1bWVudCk6CisJQWRkIGFjY2Vzc29ycyBmb3Igc291cmNlIGRvY3VtZW50IGFuZCBzdHls
ZXNoZWV0CisJCiAyMDA1LTA2LTIzICBWaWNraSBNdXJsZXkgIDx2aWNraUBhcHBsZS5jb20+CiAK
IAktIGFkZGVkIHRlbXBsYXRlIHRvIGJlIHVzZWQgd2hlbiB3cml0aW5nIG1hbnVhbCB0ZXN0cwpJ
bmRleDoga2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5jcHAsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11IC1wIC1yMS41IHhzbHRfcHJvY2Vzc29yaW1w
bC5jcHAKLS0tIHhzbHRfcHJvY2Vzc29yaW1wbC5jcHAJMjAwNS8wNS8yNyAyMjo0ODowNwkxLjUK
KysrIHhzbHRfcHJvY2Vzc29yaW1wbC5jcHAJMjAwNS8wNi8yMyAxOTo0OTo1OQpAQCAtMjcsNyAr
MjcsMTAgQEAKICNpbmNsdWRlICJsb2FkZXIuaCIKICNpbmNsdWRlICJraHRtbHZpZXcuaCIKICNp
bmNsdWRlICJraHRtbF9wYXJ0LmgiCisjaW5jbHVkZSAiS1dRTG9hZGVyLmgiCiAKKyNpbmNsdWRl
IDxraW8vam9iLmg+CisKICNpbmNsdWRlIDxsaWJ4c2x0L3hzbHR1dGlscy5oPgogI2luY2x1ZGUg
PGxpYnhzbHQvZG9jdW1lbnRzLmg+CiAjaW5jbHVkZSA8bGlieHNsdC9pbXBvcnRzLmg+CkBAIC01
MywyMCArNTYsNTIgQEAgWFNMVFByb2Nlc3NvckltcGw6On5YU0xUUHJvY2Vzc29ySW1wbCgpCiAg
ICAgaWYgKG1fc291cmNlRG9jdW1lbnQpCiAgICAgICAgIG1fc291cmNlRG9jdW1lbnQtPmRlcmVm
KCk7CiB9CisKK3N0YXRpYyB2b2lkIHBhcnNlRXJyb3JGdW5jKHZvaWQgKmN0eHQsIGNvbnN0IGNo
YXIgKm1zZywgLi4uKQoreworCS8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIHRvIGRpc3BsYXkg
ZXJyb3IgbWVzc2FnZXMgc29td2hlcmUuCit9CiAKLXN0YXRpYyBYU0xTdHlsZVNoZWV0SW1wbCog
Z2xvYmFsU2hlZXQgPSAwOworc3RhdGljIFhTTFRQcm9jZXNzb3JJbXBsICpnbG9iYWxQcm9jZXNz
b3IgPSAwOwogc3RhdGljIHhtbERvY1B0ciBzdHlsZXNoZWV0TG9hZEZ1bmMoY29uc3QgeG1sQ2hh
ciogdXJpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sRGljdFB0ciBk
aWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBjdHh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeHNsdExvYWRUeXBlIHR5cGUpCiB7Ci0gICAgaWYg
KHR5cGUgIT0gWFNMVF9MT0FEX1NUWUxFU0hFRVQpCi0gICAgICAgIHJldHVybiBOVUxMOyAvLyBG
SVhNRTogQWRkIHN1cHBvcnQgZm9yIFhTTFRfTE9BRF9ET0NVTUVOVCBmb3IgdGhlIGRvY3VtZW50
KCkgZnVuY3Rpb24uCi0gICAgCi0gICAgaWYgKCFnbG9iYWxTaGVldCkKKyAgICBpZiAoIWdsb2Jh
bFByb2Nlc3NvcikKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIGdsb2JhbFNoZWV0
LT5sb2NhdGVTdHlsZXNoZWV0U3ViUmVzb3VyY2UoKCh4c2x0U3R5bGVzaGVldFB0ciljdHh0KS0+
ZG9jLCB1cmkpOworICAgIAorICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFhTTFRf
TE9BRF9ET0NVTUVOVDogeworICAgICAgICAgICAgS1VSTCB1cmwgPSBLVVJMKChjaGFyICopdXJp
KTsKKyAgICAgICAgICAgIEtVUkwgZmluYWxVUkw7CisgICAgICAgICAgICBLSU86OlRyYW5zZmVy
Sm9iICpqb2IgPSBLSU86OmdldCh1cmwsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIFFCeXRl
QXJyYXkgZGF0YTsKKyAgICAgICAgICAgIFFTdHJpbmcgaGVhZGVyczsKKyAgICAgICAgICAgIHht
bERvY1B0ciBkb2M7CisgICAgICAgICAgICB4bWxHZW5lcmljRXJyb3JGdW5jIG9sZEVycm9yRnVu
YyA9IHhtbEdlbmVyaWNFcnJvcjsKKyAgICAgICAgICAgIHZvaWQgKm9sZEVycm9yQ29udGV4dCA9
IHhtbEdlbmVyaWNFcnJvckNvbnRleHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGEg
PSBLV1FTZXJ2ZVN5bmNocm9ub3VzUmVxdWVzdChraHRtbDo6Q2FjaGU6OmxvYWRlcigpLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxQcm9jZXNz
b3ItPnNvdXJjZURvY3VtZW50KCktPmRvY0xvYWRlcigpLCBqb2IsIGZpbmFsVVJMLCBoZWFkZXJz
KTsKKyAgICAgICAgCisgICAgICAgICAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jICgwLCBwYXJz
ZUVycm9yRnVuYyk7CisgICAgICAgICAgICAvLyBXZSBkb24ndCBzcGVjaWZ5IGFuIGVuY29kaW5n
IGhlcmUuIE5laXRoZXIgR2Vja28gbm9yIFdpbklFIHJlc3BlY3RzCisgICAgICAgICAgICAvLyB0
aGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIHRoZSBIVFRQIGhlYWRlcnMuCisgICAgICAgICAgICBk
b2MgPSB4bWxSZWFkTWVtb3J5KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSwgKGNvbnN0IGNoYXIg
Kil1cmksIDAsIG9wdGlvbnMpOworICAgICAgICAgICAgeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyAo
b2xkRXJyb3JDb250ZXh0LCBvbGRFcnJvckZ1bmMpOworICAgICAgICAgICAgcmV0dXJuIGRvYzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgWFNMVF9MT0FEX1NU
WUxFU0hFRVQ6CisgICAgICAgICAgICByZXR1cm4gZ2xvYmFsUHJvY2Vzc29yLT5zdHlsZXNoZWV0
KCktPmxvY2F0ZVN0eWxlc2hlZXRTdWJSZXNvdXJjZSgoKHhzbHRTdHlsZXNoZWV0UHRyKWN0eHQp
LT5kb2MsIHVyaSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gTlVMTDsKIH0KIAogRG9jdW1l
bnRJbXBsKiBYU0xUUHJvY2Vzc29ySW1wbDo6dHJhbnNmb3JtRG9jdW1lbnQoRG9jdW1lbnRJbXBs
KiBkb2MpCkBAIC03NywyMCArMTEyLDI2IEBAIERvY3VtZW50SW1wbCogWFNMVFByb2Nlc3Nvcklt
cGw6OnRyYW5zZm8KIAogICAgIGlmICghbV9zdHlsZXNoZWV0IHx8ICFtX3N0eWxlc2hlZXQtPmRv
Y3VtZW50KCkpIHJldHVybiAwOwogICAgICAgICAKLSAgICBnbG9iYWxTaGVldCA9IG1fc3R5bGVz
aGVldDsKKyAgICBnbG9iYWxQcm9jZXNzb3IgPSB0aGlzOwogICAgIHhzbHRTZXRMb2FkZXJGdW5j
KHN0eWxlc2hlZXRMb2FkRnVuYyk7CiAKICAgICB4c2x0U3R5bGVzaGVldFB0ciBzaGVldCA9IG1f
c3R5bGVzaGVldC0+Y29tcGlsZVN0eWxlU2hlZXQoKTsKLQotICAgIGdsb2JhbFNoZWV0ID0gMDsK
LSAgICB4c2x0U2V0TG9hZGVyRnVuYygwKTsKIAotICAgIGlmICghc2hlZXQpIHJldHVybiAwOwor
ICAgIGlmICghc2hlZXQpIHsKKyAgICAgICAgZ2xvYmFsUHJvY2Vzc29yID0gMDsKKyAgICAgICAg
eHNsdFNldExvYWRlckZ1bmMoMCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAg
ICBtX3N0eWxlc2hlZXQtPmNsZWFyRG9jdW1lbnRzKCk7CiAgIAogICAgIC8vIEdldCB0aGUgcGFy
c2VkIHNvdXJjZSBkb2N1bWVudC4KICAgICB4bWxEb2NQdHIgc291cmNlRG9jID0gKHhtbERvY1B0
cilkb2MtPnRyYW5zZm9ybVNvdXJjZSgpOwogICAgIHhtbERvY1B0ciByZXN1bHREb2MgPSB4c2x0
QXBwbHlTdHlsZXNoZWV0KHNoZWV0LCBzb3VyY2VEb2MsIE5VTEwpOworICAgIAorICAgIGdsb2Jh
bFByb2Nlc3NvciA9IDA7CisgICAgeHNsdFNldExvYWRlckZ1bmMoMCk7CisKICAgICBEb2N1bWVu
dEltcGwqIHJlc3VsdCA9IGRvY3VtZW50RnJvbVhNTERvY1B0cihyZXN1bHREb2MsIHNoZWV0KTsK
ICAgICB4c2x0RnJlZVN0eWxlc2hlZXQoc2hlZXQpOwogICAgIHJldHVybiByZXN1bHQ7CkluZGV4
OiBraHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29yaW1wbC5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjIKZGlmZiAtdSAtcCAtcjEuMiB4c2x0X3Byb2Nlc3NvcmltcGwuaAotLS0g
eHNsdF9wcm9jZXNzb3JpbXBsLmgJMjAwNC8wOC8xOSAyMjo1MDozMAkxLjIKKysrIHhzbHRfcHJv
Y2Vzc29yaW1wbC5oCTIwMDUvMDYvMjMgMTk6NDk6NTkKQEAgLTUzLDYgKzUzLDkgQEAgcHVibGlj
OgogICAgIC8vIEhlbHBlcnMKICAgICB2b2lkIGFkZFRvUmVzdWx0KGNvbnN0IGNoYXIqIGJ1ZmZl
ciwgaW50IGxlbik7CiAgICAgCisgICAgWFNMU3R5bGVTaGVldEltcGwgKnN0eWxlc2hlZXQoKSB7
IHJldHVybiBtX3N0eWxlc2hlZXQ7IH0KKyAgICBEb2N1bWVudEltcGwgKnNvdXJjZURvY3VtZW50
KCkgeyByZXR1cm4gbV9zb3VyY2VEb2N1bWVudDsgfQorICAgIAogcHJvdGVjdGVkOgogICAgIFhT
TFN0eWxlU2hlZXRJbXBsKiBtX3N0eWxlc2hlZXQ7CiAgICAgUVN0cmluZyBtX3Jlc3VsdE91dHB1
dDsKLS0tIC9kZXYvbnVsbAkyMDA1LTA2LTIzIDIxOjQ5OjA0LjAwMDAwMDAwMCArMDIwMAorKysg
bGF5b3V0LXRlc3RzL2Zhc3QveHNsL2RvY3VtZW50LWZ1bmN0aW9uLnhtbAkyMDA1LTA2LTIzIDIw
OjIxOjIxLjAwMDAwMDAwMCArMDIwMApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCI/PgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIgaHJlZj0iZG9jdW1lbnQtZnVu
Y3Rpb24ueHNsIj8+Cis8ZG9jPgorPHBhcmE+VGhpcyBpcyBhIHBhcmFncmFwaDwvcGFyYT4KKzxw
YXJhPlRoaXMgaXMgYW5vdGhlciBwYXJhZ3JhcGg8L3BhcmE+Cis8L2RvYz4KLS0tIC9kZXYvbnVs
bAkyMDA1LTA2LTIzIDIxOjQ5OjA0LjAwMDAwMDAwMCArMDIwMAorKysgbGF5b3V0LXRlc3RzL2Zh
c3QveHNsL2RvY3VtZW50LWZ1bmN0aW9uLnhzbAkyMDA1LTA2LTIzIDIwOjE3OjQzLjAwMDAwMDAw
MCArMDIwMApAQCAtMCwwICsxLDE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4c2w6c3R5
bGVzaGVldCB2ZXJzaW9uPSIxLjAiCit4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
WFNML1RyYW5zZm9ybSI+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgorICA8aHRtbD4KKyAg
ICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+CisJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJk
b2N1bWVudCgncmVzb3VyY2VzL2RvY3VtZW50LWZ1bmN0aW9uLXNvdXJjZS54bWwnKS9kb2MiLz4K
KyAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InBhcmEi
PgorPHA+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3A+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwv
eHNsOnN0eWxlc2hlZXQ+Ci0tLSAvZGV2L251bGwJMjAwNS0wNi0yMyAyMTo0OTowNC4wMDAwMDAw
MDAgKzAyMDAKKysrIGxheW91dC10ZXN0cy9mYXN0L3hzbC9yZXNvdXJjZXMvZG9jdW1lbnQtZnVu
Y3Rpb24tc291cmNlLnhtbAkyMDA1LTA2LTIzIDIxOjM5OjExLjAwMDAwMDAwMCArMDIwMApAQCAt
MCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvYz4KKzxwYXJhPlRoaXMgaXMg
YSB0aGlyZCBwYXJhZ3JhcGguPC9wYXJhPgorPC9kb2M+Cg==
</data>
<flag name="review"
          id="92"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2628</attachid>
            <date>2005-06-24 08:05:12 -0700</date>
            <delta_ts>2005-06-24 08:33:17 -0700</delta_ts>
            <desc>Address more comments</desc>
            <filename>webcore-xslt-document-function-3.diff</filename>
            <type>text/plain</type>
            <size>7047</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">PyAuZ2RiX2hpc3RvcnkKPyBsYXlvdXQtdGVzdHMvZmFzdC94c2wKPyBsYXlvdXQtdGVzdHMvZmFz
dC9kb20vLmdkYl9oaXN0b3J5Cj8gbGF5b3V0LXRlc3RzL2Zhc3QvZG9tL2lkcwpJbmRleDogQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL0NoYW5nZUxvZyx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MzExCmRpZmYgLXUgLXAgLXIxLjQzMTEgQ2hhbmdlTG9n
Ci0tLSBDaGFuZ2VMb2cJMjAwNS8wNi8yNCAwNTo1OTowNQkxLjQzMTEKKysrIENoYW5nZUxvZwky
MDA1LzA2LzI0IDE1OjAzOjA2CkBAIC0xLDMgKzEsMzAgQEAKKzIwMDUtMDYtMjMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQG1hYy5jb20+CisKKyAgICAgICAgLSBGaXggPGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI3ND4KKwlkb2N1bWVudCgpIG5v
dCBzdXBwb3J0ZWQKKworCVRlc3QgY2FzZXMgYWRkZWQ6CisJKiBsYXlvdXQtdGVzdHMvZmFzdC94
c2wvZG9jdW1lbnQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwkqIGxheW91dC10ZXN0
cy9mYXN0L3hzbC9kb2N1bWVudC1mdW5jdGlvbi54bWw6IEFkZGVkLgorCSogbGF5b3V0LXRlc3Rz
L2Zhc3QveHNsL2RvY3VtZW50LWZ1bmN0aW9uLnhzbDogQWRkZWQuCisJKiBsYXlvdXQtdGVzdHMv
ZmFzdC94c2wvcmVzb3VyY2VzL2RvY3VtZW50LWZ1bmN0aW9uLXNvdXJjZS54bWw6IEFkZGVkLgor
CQorICAgICAgICAqIGtodG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwOgorCShET006OnBh
cnNlRXJyb3JGdW5jKToKKwlTdHViIHRvIHByZXZlbnQgZXJyb3JzIGZyb20gZ2V0dGluZyB3cml0
dGVuIHRvIHRoZSBjb25zb2xlLgorCQorICAgICAgICAoRE9NOjpzdHlsZXNoZWV0TG9hZEZ1bmMp
OgorCUZldGNoIGFuZCBwYXJzZSBkb2N1bWVudHMuCisJCisgICAgICAgIChET006OlhTTFRQcm9j
ZXNzb3JJbXBsOjp0cmFuc2Zvcm1Eb2N1bWVudCk6CisJVXNlIHRoZSBwcm9jZXNzb3IgYXMgdGhl
IGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIHRoZSAKKwlzdHlsZSBzaGVldC4KKwkKKyAgICAg
ICAgKiBraHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmg6CisgICAgICAgIChET006OlhTTFRQ
cm9jZXNzb3JJbXBsOjpzdHlsZXNoZWV0KToKKyAgICAgICAgKERPTTo6WFNMVFByb2Nlc3Nvcklt
cGw6OnNvdXJjZURvY3VtZW50KToKKwlBZGQgYWNjZXNzb3JzIGZvciBzb3VyY2UgZG9jdW1lbnQg
YW5kIHN0eWxlc2hlZXQuCisKIDIwMDUtMDYtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgICoga2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcDogKERPTTo6SFRN
TFRleHRBcmVhRWxlbWVudEltcGw6OnNldFZhbHVlKToKSW5kZXg6IGtodG1sL3hzbC94c2x0X3By
b2Nlc3NvcmltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUK
ZGlmZiAtdSAtcCAtcjEuNSB4c2x0X3Byb2Nlc3NvcmltcGwuY3BwCi0tLSB4c2x0X3Byb2Nlc3Nv
cmltcGwuY3BwCTIwMDUvMDUvMjcgMjI6NDg6MDcJMS41CisrKyB4c2x0X3Byb2Nlc3NvcmltcGwu
Y3BwCTIwMDUvMDYvMjQgMTU6MDM6MDcKQEAgLTI3LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAibG9h
ZGVyLmgiCiAjaW5jbHVkZSAia2h0bWx2aWV3LmgiCiAjaW5jbHVkZSAia2h0bWxfcGFydC5oIgor
I2luY2x1ZGUgIktXUUxvYWRlci5oIgogCisjaW5jbHVkZSA8a2lvL2pvYi5oPgorCiAjaW5jbHVk
ZSA8bGlieHNsdC94c2x0dXRpbHMuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L2RvY3VtZW50cy5oPgog
I2luY2x1ZGUgPGxpYnhzbHQvaW1wb3J0cy5oPgpAQCAtNTMsMjAgKzU2LDUwIEBAIFhTTFRQcm9j
ZXNzb3JJbXBsOjp+WFNMVFByb2Nlc3NvckltcGwoKQogICAgIGlmIChtX3NvdXJjZURvY3VtZW50
KQogICAgICAgICBtX3NvdXJjZURvY3VtZW50LT5kZXJlZigpOwogfQorCitzdGF0aWMgdm9pZCBw
YXJzZUVycm9yRnVuYyh2b2lkICpjdHh0LCBjb25zdCBjaGFyICptc2csIC4uLikKK3sKKwkvLyBG
SVhNRTogSXQgd291bGQgYmUgbmljZSB0byBkaXNwbGF5IGVycm9yIG1lc3NhZ2VzIHNvbWV3aGVy
ZS4KK30KIAotc3RhdGljIFhTTFN0eWxlU2hlZXRJbXBsKiBnbG9iYWxTaGVldCA9IDA7CitzdGF0
aWMgWFNMVFByb2Nlc3NvckltcGwgKmdsb2JhbFByb2Nlc3NvciA9IDA7CiBzdGF0aWMgeG1sRG9j
UHRyIHN0eWxlc2hlZXRMb2FkRnVuYyhjb25zdCB4bWxDaGFyKiB1cmksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4bWxEaWN0UHRyIGRpY3QsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZvaWQqIGN0eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB4c2x0TG9hZFR5cGUgdHlwZSkKIHsKLSAgICBpZiAodHlwZSAhPSBYU0xUX0xPQURfU1RZ
TEVTSEVFVCkKLSAgICAgICAgcmV0dXJuIE5VTEw7IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
WFNMVF9MT0FEX0RPQ1VNRU5UIGZvciB0aGUgZG9jdW1lbnQoKSBmdW5jdGlvbi4KLSAgICAKLSAg
ICBpZiAoIWdsb2JhbFNoZWV0KQorICAgIGlmICghZ2xvYmFsUHJvY2Vzc29yKQogICAgICAgICBy
ZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gZ2xvYmFsU2hlZXQtPmxvY2F0ZVN0eWxlc2hlZXRTdWJS
ZXNvdXJjZSgoKHhzbHRTdHlsZXNoZWV0UHRyKWN0eHQpLT5kb2MsIHVyaSk7CisgICAgCisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgWFNMVF9MT0FEX0RPQ1VNRU5UOiB7CisgICAg
ICAgICAgICBLVVJMIHVybCA9IEtVUkwoKGNoYXIgKil1cmkpOworICAgICAgICAgICAgS1VSTCBm
aW5hbFVSTDsKKyAgICAgICAgICAgIEtJTzo6VHJhbnNmZXJKb2IgKmpvYiA9IEtJTzo6Z2V0KHVy
bCwgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgUUJ5dGVBcnJheSBkYXRhOworICAgICAgICAg
ICAgUVN0cmluZyBoZWFkZXJzOworICAgICAgICAgICAgeG1sRG9jUHRyIGRvYzsKKyAgICAgICAg
ICAgIHhtbEdlbmVyaWNFcnJvckZ1bmMgb2xkRXJyb3JGdW5jID0geG1sR2VuZXJpY0Vycm9yOwor
ICAgICAgICAgICAgdm9pZCAqb2xkRXJyb3JDb250ZXh0ID0geG1sR2VuZXJpY0Vycm9yQ29udGV4
dDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGF0YSA9IEtXUVNlcnZlU3luY2hyb25vdXNS
ZXF1ZXN0KGtodG1sOjpDYWNoZTo6bG9hZGVyKCksIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbFByb2Nlc3Nvci0+c291cmNlRG9jdW1lbnQoKS0+
ZG9jTG9hZGVyKCksIGpvYiwgZmluYWxVUkwsIGhlYWRlcnMpOworICAgICAgICAKKyAgICAgICAg
ICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoMCwgcGFyc2VFcnJvckZ1bmMpOworICAgICAgICAg
ICAgLy8gV2UgZG9uJ3Qgc3BlY2lmeSBhbiBlbmNvZGluZyBoZXJlLiBOZWl0aGVyIEdlY2tvIG5v
ciBXaW5JRSByZXNwZWN0cworICAgICAgICAgICAgLy8gdGhlIGVuY29kaW5nIHNwZWNpZmllZCBp
biB0aGUgSFRUUCBoZWFkZXJzLgorICAgICAgICAgICAgZG9jID0geG1sUmVhZE1lbW9yeShkYXRh
LmRhdGEoKSwgZGF0YS5zaXplKCksIChjb25zdCBjaGFyICopdXJpLCAwLCBvcHRpb25zKTsKKyAg
ICAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMob2xkRXJyb3JDb250ZXh0LCBvbGRFcnJv
ckZ1bmMpOworICAgICAgICAgICAgcmV0dXJuIGRvYzsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IFhTTFRfTE9BRF9TVFlMRVNIRUVUOgorICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFByb2Nlc3Nv
ci0+c3R5bGVzaGVldCgpLT5sb2NhdGVTdHlsZXNoZWV0U3ViUmVzb3VyY2UoKCh4c2x0U3R5bGVz
aGVldFB0ciljdHh0KS0+ZG9jLCB1cmkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIAorICAgIHJldHVybiBOVUxMOwogfQogCiBEb2N1bWVudEltcGwq
IFhTTFRQcm9jZXNzb3JJbXBsOjp0cmFuc2Zvcm1Eb2N1bWVudChEb2N1bWVudEltcGwqIGRvYykK
QEAgLTc3LDIwICsxMTAsMjYgQEAgRG9jdW1lbnRJbXBsKiBYU0xUUHJvY2Vzc29ySW1wbDo6dHJh
bnNmbwogCiAgICAgaWYgKCFtX3N0eWxlc2hlZXQgfHwgIW1fc3R5bGVzaGVldC0+ZG9jdW1lbnQo
KSkgcmV0dXJuIDA7CiAgICAgICAgIAotICAgIGdsb2JhbFNoZWV0ID0gbV9zdHlsZXNoZWV0Owor
ICAgIGdsb2JhbFByb2Nlc3NvciA9IHRoaXM7CiAgICAgeHNsdFNldExvYWRlckZ1bmMoc3R5bGVz
aGVldExvYWRGdW5jKTsKIAogICAgIHhzbHRTdHlsZXNoZWV0UHRyIHNoZWV0ID0gbV9zdHlsZXNo
ZWV0LT5jb21waWxlU3R5bGVTaGVldCgpOwotCi0gICAgZ2xvYmFsU2hlZXQgPSAwOwotICAgIHhz
bHRTZXRMb2FkZXJGdW5jKDApOwogCi0gICAgaWYgKCFzaGVldCkgcmV0dXJuIDA7CisgICAgaWYg
KCFzaGVldCkgeworICAgICAgICBnbG9iYWxQcm9jZXNzb3IgPSAwOworICAgICAgICB4c2x0U2V0
TG9hZGVyRnVuYygwKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAogICAgIG1fc3R5
bGVzaGVldC0+Y2xlYXJEb2N1bWVudHMoKTsKICAgCiAgICAgLy8gR2V0IHRoZSBwYXJzZWQgc291
cmNlIGRvY3VtZW50LgogICAgIHhtbERvY1B0ciBzb3VyY2VEb2MgPSAoeG1sRG9jUHRyKWRvYy0+
dHJhbnNmb3JtU291cmNlKCk7CiAgICAgeG1sRG9jUHRyIHJlc3VsdERvYyA9IHhzbHRBcHBseVN0
eWxlc2hlZXQoc2hlZXQsIHNvdXJjZURvYywgTlVMTCk7CisgICAgCisgICAgZ2xvYmFsUHJvY2Vz
c29yID0gMDsKKyAgICB4c2x0U2V0TG9hZGVyRnVuYygwKTsKKwogICAgIERvY3VtZW50SW1wbCog
cmVzdWx0ID0gZG9jdW1lbnRGcm9tWE1MRG9jUHRyKHJlc3VsdERvYywgc2hlZXQpOwogICAgIHhz
bHRGcmVlU3R5bGVzaGVldChzaGVldCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IGtodG1s
L3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNzb3JpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMgpkaWZmIC11IC1wIC1yMS4yIHhzbHRfcHJvY2Vzc29yaW1wbC5oCi0tLSB4c2x0X3By
b2Nlc3NvcmltcGwuaAkyMDA0LzA4LzE5IDIyOjUwOjMwCTEuMgorKysgeHNsdF9wcm9jZXNzb3Jp
bXBsLmgJMjAwNS8wNi8yNCAxNTowMzowNwpAQCAtNTMsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gSGVscGVycwogICAgIHZvaWQgYWRkVG9SZXN1bHQoY29uc3QgY2hhciogYnVmZmVyLCBpbnQg
bGVuKTsKICAgICAKKyAgICBYU0xTdHlsZVNoZWV0SW1wbCAqc3R5bGVzaGVldCgpIHsgcmV0dXJu
IG1fc3R5bGVzaGVldDsgfQorICAgIERvY3VtZW50SW1wbCAqc291cmNlRG9jdW1lbnQoKSB7IHJl
dHVybiBtX3NvdXJjZURvY3VtZW50OyB9CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgWFNMU3R5bGVT
aGVldEltcGwqIG1fc3R5bGVzaGVldDsKICAgICBRU3RyaW5nIG1fcmVzdWx0T3V0cHV0OwotLS0g
L2Rldi9udWxsCTIwMDUtMDYtMjQgMTc6MDI6MDAuMDAwMDAwMDAwICswMjAwCisrKyBsYXlvdXQt
dGVzdHMvZmFzdC94c2wvZG9jdW1lbnQtZnVuY3Rpb24ueG1sCTIwMDUtMDYtMjQgMTY6NTI6Mzcu
MDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8
P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJkb2N1bWVudC1mdW5jdGlvbi54
c2wiPz4KKzxkb2M+Cis8cGFyYT5UaGlzIHRlc3RzIHRoZSB4c2x0IGRvY3VtZW50KCkgZnVuY3Rp
b24uIElmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLCB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcGFy
YWdyYXBocyBiZWxvdy48L3BhcmE+Cis8cGFyYT5UaGlzIGlzIGEgcGFyYWdyYXBoPC9wYXJhPgor
PHBhcmE+VGhpcyBpcyBhbm90aGVyIHBhcmFncmFwaDwvcGFyYT4KKzwvZG9jPgotLS0gL2Rldi9u
dWxsCTIwMDUtMDYtMjQgMTc6MDI6MDAuMDAwMDAwMDAwICswMjAwCisrKyBsYXlvdXQtdGVzdHMv
ZmFzdC94c2wvZG9jdW1lbnQtZnVuY3Rpb24ueHNsCTIwMDUtMDYtMjMgMjA6MTc6NDMuMDAwMDAw
MDAwICswMjAwCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHhzbDpz
dHlsZXNoZWV0IHZlcnNpb249IjEuMCIKK3htbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS9YU0wvVHJhbnNmb3JtIj4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+CisgIDxodG1sPgor
ICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KKwk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9
ImRvY3VtZW50KCdyZXNvdXJjZXMvZG9jdW1lbnQtZnVuY3Rpb24tc291cmNlLnhtbCcpL2RvYyIv
PgorICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFy
YSI+Cis8cD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvcD4KKzwveHNsOnRlbXBsYXRlPgor
PC94c2w6c3R5bGVzaGVldD4KLS0tIC9kZXYvbnVsbAkyMDA1LTA2LTI0IDE3OjAzOjAwLjAwMDAw
MDAwMCArMDIwMAorKysgbGF5b3V0LXRlc3RzL2Zhc3QveHNsL3Jlc291cmNlcy9kb2N1bWVudC1m
dW5jdGlvbi1zb3VyY2UueG1sCTIwMDUtMDYtMjMgMjE6Mzk6MTEuMDAwMDAwMDAwICswMjAwCkBA
IC0wLDAgKzEsNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jPgorPHBhcmE+VGhpcyBp
cyBhIHRoaXJkIHBhcmFncmFwaC48L3BhcmE+Cis8L2RvYz4K
</data>
<flag name="review"
          id="104"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>