<?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>24051</bug_id>
          
          <creation_ts>2009-02-19 18:20:54 -0800</creation_ts>
          <short_desc>Soup backend needs content sniffing capabilities</short_desc>
          <delta_ts>2009-03-06 08:04:02 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>christian</cc>
    
    <cc>cosimoc</cc>
    
    <cc>danw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>110338</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-19 18:20:54 -0800</bug_when>
    <thetext>When server sends no Content-Type, we need to try to detect it through sniffing. People testing the download patch noticed that some pages asked for multiple downloads of random URLs while loading. Those are javascript, html snippets, and other kinds of files for which the server is not sending a Content-Type header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110339</commentid>
    <comment_count>1</comment_count>
      <attachid>27819</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-19 18:21:36 -0800</bug_when>
    <thetext>Created attachment 27819
implement content sniffing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110388</commentid>
    <comment_count>2</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2009-02-20 06:52:33 -0800</bug_when>
    <thetext>&gt; +    // We still don&apos;t know anything about Content-Type, so we will try
&gt; +    // sniffing the contents of the file, and then report that we got
&gt; +    // headers
&gt; +    if (!soup_message_headers_get_content_type(msg-&gt;response_headers, NULL))
&gt; +        return;

This assumes that if Content-Type is present, that it&apos;s correct. I&apos;m not sure that&apos;s how other browsers work (and I think you definitely want to sniff if Content-Type is &quot;application/octet-stream&quot;, right?)

Having to delay calling didReceiveResponse is annoying, because maybe the response is coming in in small packets, and so the first got-chunk might not have a lot of data in it, so ideally, you&apos;d want gotChunkCallback to check the chunk size, and if it&apos;s less than a certain amount, buffer it and wait for more data (or the finished signal) before sniffing it... (which would totally be a pain, yes. Maybe not worth it. What do other backends do?).


There was a thread on webkit-dev a few months ago about &quot;Harmonizing content sniffing&quot; between web browsers: https://lists.webkit.org/pipermail/webkit-dev/2008-November/005697.html, which links to a page showing what some existing browsers (including Safari) appear to do with certain important web types. It might be useful to compare g_content_type_guess()&apos;s results against those; we may need a web-specific wrapper around g_content_type_guess() in order to get better results.

If the right answer ends up being a complicated mix of trusting Content-Type vs not trusting it, and overriding some of g_content_type_guess()&apos;s guesses, then maybe we should have a soup_message_guess_content_type().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110389</commentid>
    <comment_count>3</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-20 07:10:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; +    // We still don&apos;t know anything about Content-Type, so we will try
&gt; &gt; +    // sniffing the contents of the file, and then report that we got
&gt; &gt; +    // headers
&gt; &gt; +    if (!soup_message_headers_get_content_type(msg-&gt;response_headers, NULL))
&gt; &gt; +        return;
&gt; 
&gt; This assumes that if Content-Type is present, that it&apos;s correct. I&apos;m not sure
&gt; that&apos;s how other browsers work (and I think you definitely want to sniff if
&gt; Content-Type is &quot;application/octet-stream&quot;, right?)

Hmm, that&apos;s right. I can add that case as another exception. In my tests believing the Content-Type and only sniffing empty ones is already a big improvement over no sniffing at all, anyway.

&gt; Having to delay calling didReceiveResponse is annoying, because maybe the
&gt; response is coming in in small packets, and so the first got-chunk might not
&gt; have a lot of data in it, so ideally, you&apos;d want gotChunkCallback to check the
&gt; chunk size, and if it&apos;s less than a certain amount, buffer it and wait for more
&gt; data (or the finished signal) before sniffing it... (which would totally be a
&gt; pain, yes. Maybe not worth it. What do other backends do?).

I can try to implement that. Other backends seem to delegate this job to their http libraries. The library probably does the necessary buffering and detects the type before reporting headers received to the client.

&gt; There was a thread on webkit-dev a few months ago about &quot;Harmonizing content
&gt; sniffing&quot; between web browsers:
&gt; https://lists.webkit.org/pipermail/webkit-dev/2008-November/005697.html, which
&gt; links to a page showing what some existing browsers (including Safari) appear
&gt; to do with certain important web types. It might be useful to compare
&gt; g_content_type_guess()&apos;s results against those; we may need a web-specific
&gt; wrapper around g_content_type_guess() in order to get better results.

True. I would like to have that work done after we land basic content sniffing first, though, because having no sniffing at all causes some sites to not render correctly, and with the download patch applied, all of the empty content types turn into download requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110390</commentid>
    <comment_count>4</comment_count>
      <attachid>27819</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-20 07:18:54 -0800</bug_when>
    <thetext>Comment on attachment 27819
implement content sniffing

Discussing with Dan we decided this makes sense in libsoup itself, so I&apos;m clearing the review flag and will cook a patch to libsoup instead, and later create a patch to use the new API here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110429</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-20 13:37:06 -0800</bug_when>
    <thetext>I&apos;ve written a patch for libsoup: http://bugzilla.gnome.org/show_bug.cgi?id=572589. I&apos;m going to attach the patch that needs to be applied to WebKit after that is landed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110430</commentid>
    <comment_count>6</comment_count>
      <attachid>27838</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-20 13:39:10 -0800</bug_when>
    <thetext>Created attachment 27838
use new API in libsoup to request that content sniffing is done

I&apos;m not setting review flag yet, as the other patch needs to be reviewed and applied to libsoup first. Notice that this patch also replaces the use of a deprecated flag with the current approach used by libsoup for not copying the downloaded data to the message_body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112572</commentid>
    <comment_count>7</comment_count>
      <attachid>28356</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-03-06 06:07:38 -0800</bug_when>
    <thetext>Created attachment 28356
content sniffing for the soup backend

I am proposing this, since we still have no support for this in soup, but I have prepared a more robust patch to soup, and will rework the support for sniffing in our soup backend as soon as the patch is accepted there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112579</commentid>
    <comment_count>8</comment_count>
      <attachid>28356</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-06 07:43:12 -0800</bug_when>
    <thetext>Comment on attachment 28356
content sniffing for the soup backend

&gt; From 2c0d6818a8549c54ff66e9f0ee6a14e2c4c0be86 Mon Sep 17 00:00:00 2001
&gt; From: Gustavo Noronha Silva &lt;kov@kov.eti.br&gt;
&gt; Date: Fri, 6 Mar 2009 10:30:52 -0300
&gt; Subject: [PATCH] 2009-03-06  Gustavo Noronha Silva  &lt;gns@gnome.org&gt;
&gt; 
&gt;         Reviewed by NOBODY (OOPS!).
&gt; 
&gt;         https://bugs.webkit.org/show_bug.cgi?id=24051
&gt;         Soup backend needs content sniffing capabilities
&gt; 
&gt;         Perform content sniffing when using soup, so that we have a chance
&gt;         of figuring out the Content-Type of the file if it&apos;s not sent by
&gt;         the server.
&gt; 
&gt;         * platform/network/ResourceHandleInternal.h:
&gt;         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
&gt;         * platform/network/soup/ResourceHandleSoup.cpp:
&gt;         (WebCore::gotHeadersCallback):
&gt;         (WebCore::gotChunkCallback):
&gt; ---
&gt;  WebCore/ChangeLog                                  |   17 ++++++++++++++++
&gt;  WebCore/platform/network/ResourceHandleInternal.h  |    2 +
&gt;  .../platform/network/soup/ResourceHandleSoup.cpp   |   21 +++++++++++++++++++-
&gt;  3 files changed, 39 insertions(+), 1 deletions(-)
&gt; 
&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index 614e0db..2a18f28 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,20 @@
&gt; +2009-03-06  Gustavo Noronha Silva  &lt;gns@gnome.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=24051
&gt; +        Soup backend needs content sniffing capabilities
&gt; +
&gt; +        Perform content sniffing when using soup, so that we have a chance
&gt; +        of figuring out the Content-Type of the file if it&apos;s not sent by
&gt; +        the server.
&gt; +
&gt; +        * platform/network/ResourceHandleInternal.h:
&gt; +        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
&gt; +        * platform/network/soup/ResourceHandleSoup.cpp:
&gt; +        (WebCore::gotHeadersCallback):
&gt; +        (WebCore::gotChunkCallback):
&gt; +
&gt;  2009-03-06  Hironori Bono  &lt;hbono@chromium.org&gt;
&gt;  
&gt;          Reviewed by Alexey Proskuryakov.
&gt; diff --git a/WebCore/platform/network/ResourceHandleInternal.h b/WebCore/platform/network/ResourceHandleInternal.h
&gt; index a55f945..875854b 100644
&gt; --- a/WebCore/platform/network/ResourceHandleInternal.h
&gt; +++ b/WebCore/platform/network/ResourceHandleInternal.h
&gt; @@ -111,6 +111,7 @@ namespace WebCore {
&gt;  #if USE(SOUP)
&gt;              , m_msg(0)
&gt;              , m_cancelled(false)
&gt; +            , m_reportedHeaders(false)
&gt;              , m_gfile(0)
&gt;              , m_inputStream(0)
&gt;              , m_cancellable(0)
&gt; @@ -183,6 +184,7 @@ namespace WebCore {
&gt;          SoupMessage* m_msg;
&gt;          ResourceResponse m_response;
&gt;          bool m_cancelled;
&gt; +        bool m_reportedHeaders;
&gt;          GFile* m_gfile;
&gt;          GInputStream* m_inputStream;
&gt;          GCancellable* m_cancellable;
&gt; diff --git a/WebCore/platform/network/soup/ResourceHandleSoup.cpp b/WebCore/platform/network/soup/ResourceHandleSoup.cpp
&gt; index 82ed142..2169450 100644
&gt; --- a/WebCore/platform/network/soup/ResourceHandleSoup.cpp
&gt; +++ b/WebCore/platform/network/soup/ResourceHandleSoup.cpp
&gt; @@ -214,6 +214,14 @@ static void gotHeadersCallback(SoupMessage* msg, gpointer data)
&gt;      if (!SOUP_STATUS_IS_SUCCESSFUL(msg-&gt;status_code))
&gt;          return;
&gt;  
&gt; +    soup_message_set_flags(msg, SOUP_MESSAGE_OVERWRITE_CHUNKS);

okay, we can kill that too?


&gt; +
&gt; +    // We still don&apos;t know anything about Content-Type, so we will try
&gt; +    // sniffing the contents of the file, and then report that we got
&gt; +    // headers
&gt; +    if (!soup_message_headers_get_content_type(msg-&gt;response_headers, NULL))
&gt; +        return;
&gt; +

according to Danw the header callback is only called once, so this guard is good enough.


do you happen to have a test case for that as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112582</commentid>
    <comment_count>9</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-03-06 07:54:55 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; +    soup_message_set_flags(msg, SOUP_MESSAGE_OVERWRITE_CHUNKS);
&gt; 
&gt; okay, we can kill that too?

Not really. We need to replace this with a call to soup_message_body_set_accumulate(msg-&gt;request_body, FALSE); I&apos;m going to prepare a patch =).


&gt; do you happen to have a test case for that as well?
 
I usually test this by going to failblog.org and seeing if the top and top-right corner ads load correctly, or if they become download requests. You can do the same test in lkml.org, and clicking a message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112583</commentid>
    <comment_count>10</comment_count>
      <attachid>28356</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-03-06 07:55:45 -0800</bug_when>
    <thetext>Comment on attachment 28356
content sniffing for the soup backend

Landed as r41481; clearing the flag because I will use the same bug to post two more patches.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27819</attachid>
            <date>2009-02-19 18:21:36 -0800</date>
            <delta_ts>2009-02-20 13:39:10 -0800</delta_ts>
            <desc>implement content sniffing</desc>
            <filename>0001-content-sniffing-for-soup-backend.patch</filename>
            <type>text/plain</type>
            <size>3994</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAzZTE2NWQxN2U5NmYzOWY0Y2M3YTkzZGFlODBkMmUxZWRlMDJhZDMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGtvdkBrb3YuZXRpLmJy
PgpEYXRlOiBUaHUsIDE5IEZlYiAyMDA5IDIzOjAzOjA4IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0g
Y29udGVudCBzbmlmZmluZyBmb3Igc291cCBiYWNrZW5kCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKysrKysrCiBX
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICB8ICAgIDIg
KwogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAg
IDIxICsrKysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMo
KyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiOWMzN2UwLi45ZTU1MzY1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5
LTAyLTE5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBlcmZvcm0gY29udGVudCBz
bmlmZmluZyB3aGVuIHVzaW5nIHNvdXAsIHNvIHRoYXQgd2UgaGF2ZSBhIGNoYW5jZQorICAgICAg
ICBvZiBmaWd1cmluZyBvdXQgdGhlIENvbnRlbnQtVHlwZSBvZiB0aGUgZmlsZSBpZiBpdCdzIG5v
dCBzZW50IGJ5CisgICAgICAgIHRoZSBzZXJ2ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Z290SGVhZGVyc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OmdvdENodW5rQ2FsbGJh
Y2spOgorCiAyMDA5LTAyLTE5ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCA2NmFhNGMxLi5k
Y2JkOWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKQEAgLTExMCw2ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYg
VVNFKFNPVVApCiAgICAgICAgICAgICAsIG1fbXNnKDApCiAgICAgICAgICAgICAsIG1fY2FuY2Vs
bGVkKGZhbHNlKQorICAgICAgICAgICAgLCBtX3JlcG9ydGVkSGVhZGVycyhmYWxzZSkKICAgICAg
ICAgICAgICwgbV9nZmlsZSgwKQogICAgICAgICAgICAgLCBtX2lucHV0X3N0cmVhbSgwKQogICAg
ICAgICAgICAgLCBtX2NhbmNlbGxhYmxlKDApCkBAIC0xODEsNiArMTgyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBTb3VwTWVzc2FnZSogbV9tc2c7CiAgICAgICAgIFJlc291cmNl
UmVzcG9uc2UgbV9yZXNwb25zZTsKICAgICAgICAgYm9vbCBtX2NhbmNlbGxlZDsKKyAgICAgICAg
Ym9vbCBtX3JlcG9ydGVkSGVhZGVyczsKICAgICAgICAgR0ZpbGUqIG1fZ2ZpbGU7CiAgICAgICAg
IEdJbnB1dFN0cmVhbSogbV9pbnB1dF9zdHJlYW07CiAgICAgICAgIEdDYW5jZWxsYWJsZSogbV9j
YW5jZWxsYWJsZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDIyMzAwZGUuLjFkYTQ5YjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAt
MjEzLDYgKzIxMywxNCBAQCBzdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3Nh
Z2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKICAgICBpZiAoIVNPVVBfU1RBVFVTX0lTX1NVQ0NFU1NG
VUwobXNnLT5zdGF0dXNfY29kZSkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHNvdXBfbWVzc2Fn
ZV9zZXRfZmxhZ3MobXNnLCBTT1VQX01FU1NBR0VfT1ZFUldSSVRFX0NIVU5LUyk7CisKKyAgICAv
LyBXZSBzdGlsbCBkb24ndCBrbm93IGFueXRoaW5nIGFib3V0IENvbnRlbnQtVHlwZSwgc28gd2Ug
d2lsbCB0cnkKKyAgICAvLyBzbmlmZmluZyB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUsIGFuZCB0
aGVuIHJlcG9ydCB0aGF0IHdlIGdvdAorICAgIC8vIGhlYWRlcnMKKyAgICBpZiAoIXNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9jb250ZW50X3R5cGUobXNnLT5yZXNwb25zZV9oZWFkZXJzLCBOVUxM
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRp
Y19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAg
IHJldHVybjsKQEAgLTIyNSw3ICsyMzMsNyBAQCBzdGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJh
Y2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKIAogICAgIGZpbGxSZXNwb25zZUZy
b21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOwogICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7Ci0gICAgc291cF9tZXNzYWdlX3NldF9mbGFn
cyhtc2csIFNPVVBfTUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktTKTsKKyAgICBkLT5tX3JlcG9ydGVk
SGVhZGVycyA9IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGdvdENodW5rQ2FsbGJhY2soU291cE1l
c3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdwb2ludGVyIGRhdGEpCkBAIC0yNDMsNiAr
MjUxLDE3IEBAIHN0YXRpYyB2b2lkIGdvdENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywg
U291cEJ1ZmZlciogY2h1bmssIGdwb2ludGVyIGRhdGEpCiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIGlmICghZC0+bV9yZXBvcnRlZEhlYWRlcnMpIHsKKyAgICAgICAg
Z2Jvb2xlYW4gdW5jZXJ0YWluOworICAgICAgICBjaGFyKiBjb250ZW50VHlwZSA9IGdfY29udGVu
dF90eXBlX2d1ZXNzKGQtPm1fcmVxdWVzdC51cmwoKS5sYXN0UGF0aENvbXBvbmVudCgpLnV0Zjgo
KS5kYXRhKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4oY2h1bmstPmRhdGEpLCBj
aHVuay0+bGVuZ3RoLCAmdW5jZXJ0YWluKTsKKyAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNf
c2V0X2NvbnRlbnRfdHlwZShtc2ctPnJlc3BvbnNlX2hlYWRlcnMsIGNvbnRlbnRUeXBlLCBOVUxM
KTsKKyAgICAgICAgZ19mcmVlKGNvbnRlbnRUeXBlKTsKKworICAgICAgICBmaWxsUmVzcG9uc2VG
cm9tTWVzc2FnZShtc2csICZkLT5tX3Jlc3BvbnNlKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNl
aXZlUmVzcG9uc2UoaGFuZGxlLCBkLT5tX3Jlc3BvbnNlKTsKKyAgICAgICAgZC0+bV9yZXBvcnRl
ZEhlYWRlcnMgPSB0cnVlOworICAgIH0KKwogICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFu
ZGxlLCBjaHVuay0+ZGF0YSwgY2h1bmstPmxlbmd0aCwgZmFsc2UpOwogfQogCi0tIAoxLjYuMi5y
YzAKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27838</attachid>
            <date>2009-02-20 13:39:10 -0800</date>
            <delta_ts>2009-02-20 13:39:10 -0800</delta_ts>
            <desc>use new API in libsoup to request that content sniffing is done</desc>
            <filename>0001-use-soups-content-sniffing.patch</filename>
            <type>text/plain</type>
            <size>1880</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSBkOTBiYWZjNGQyODBiMGM1NzMyOGE5NDk3ZDAyZGE4NmQwYTQ1ZWQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGtvdkBrb3YuZXRpLmJy
PgpEYXRlOiBGcmksIDIwIEZlYiAyMDA5IDE2OjAyOjEwIC0wMzAwClN1YmplY3Q6IFtQQVRDSF0g
dXNlIHNvdXBzIGNvbnRlbnQgc25pZmZpbmcKCi0tLQogLi4uL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwICAgfCAgICA2ICsrKysrLQogMSBmaWxlcyBjaGFuZ2Vk
LCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNTdjYjg4NC4u
ZWFhNWZkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCkBAIC0yMjUsNyArMjI1LDYgQEAgc3RhdGljIHZvaWQgZ290SGVh
ZGVyc0NhbGxiYWNrKFNvdXBNZXNzYWdlKiBtc2csIGdwb2ludGVyIGRhdGEpCiAKICAgICBmaWxs
UmVzcG9uc2VGcm9tTWVzc2FnZShtc2csICZkLT5tX3Jlc3BvbnNlKTsKICAgICBjbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIGQtPm1fcmVzcG9uc2UpOwotICAgIHNvdXBfbWVzc2Fn
ZV9zZXRfZmxhZ3MobXNnLCBTT1VQX01FU1NBR0VfT1ZFUldSSVRFX0NIVU5LUyk7CiB9CiAKIHN0
YXRpYyB2b2lkIGdvdENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciog
Y2h1bmssIGdwb2ludGVyIGRhdGEpCkBAIC0zODksNiArMzg4LDggQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnRIdHRwKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgZ19zaWduYWxfY29ubmVjdCht
c2csICJnb3QtaGVhZGVycyIsIEdfQ0FMTEJBQ0soZ290SGVhZGVyc0NhbGxiYWNrKSwgdGhpcyk7
CiAgICAgZ19zaWduYWxfY29ubmVjdChtc2csICJnb3QtY2h1bmsiLCBHX0NBTExCQUNLKGdvdENo
dW5rQ2FsbGJhY2spLCB0aGlzKTsKIAorICAgIHNvdXBfbWVzc2FnZV9ib2R5X3NldF9hY2N1bXVs
YXRlKG1zZy0+cmVzcG9uc2VfYm9keSwgRkFMU0UpOworCiAgICAgSFRUUEhlYWRlck1hcCBjdXN0
b21IZWFkZXJzID0gZC0+bV9yZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKICAgICBpZiAoIWN1
c3RvbUhlYWRlcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IGN1c3RvbUhlYWRlcnMuZW5kKCk7CkBAIC0zOTYsNiArMzk3LDkgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnRIdHRwKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgICAgICAg
ICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobXNnLT5yZXF1ZXN0X2hlYWRlcnMsIGl0LT5m
aXJzdC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBpdC0+c2Vjb25kLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIH0KIAorICAgIGlmIChkLT5tX3Nob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgIHNv
dXBfbWVzc2FnZV9zZXRfZmxhZ3MobXNnLCBTT1VQX01FU1NBR0VfU05JRkZfQ09OVEVOVCk7CisK
ICAgICBGb3JtRGF0YSogaHR0cEJvZHkgPSBkLT5tX3JlcXVlc3QuaHR0cEJvZHkoKTsKICAgICBp
ZiAoaHR0cEJvZHkgJiYgIWh0dHBCb2R5LT5pc0VtcHR5KCkpIHsKICAgICAgICAgc2l6ZV90IG51
bUVsZW1lbnRzID0gaHR0cEJvZHktPmVsZW1lbnRzKCkuc2l6ZSgpOwotLSAKMS42LjIucmMwCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28356</attachid>
            <date>2009-03-06 06:07:38 -0800</date>
            <delta_ts>2009-03-06 07:55:45 -0800</delta_ts>
            <desc>content sniffing for the soup backend</desc>
            <filename>0001-2009-03-06-Gustavo-Noronha-Silva-gns-gnome.org.patch</filename>
            <type>text/plain</type>
            <size>4699</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAyYzBkNjgxOGE4NTQ5YzU0ZmY2NmU5ZjBlZTZhMTRlMmM0YzBiZTg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGtvdkBrb3YuZXRpLmJy
PgpEYXRlOiBGcmksIDYgTWFyIDIwMDkgMTA6MzA6NTIgLTAzMDAKU3ViamVjdDogW1BBVENIXSAy
MDA5LTAzLTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDUxCiAgICAgICAgU291cCBiYWNrZW5kIG5lZWRzIGNv
bnRlbnQgc25pZmZpbmcgY2FwYWJpbGl0aWVzCgogICAgICAgIFBlcmZvcm0gY29udGVudCBzbmlm
ZmluZyB3aGVuIHVzaW5nIHNvdXAsIHNvIHRoYXQgd2UgaGF2ZSBhIGNoYW5jZQogICAgICAgIG9m
IGZpZ3VyaW5nIG91dCB0aGUgQ29udGVudC1UeXBlIG9mIHRoZSBmaWxlIGlmIGl0J3Mgbm90IHNl
bnQgYnkKICAgICAgICB0aGUgc2VydmVyLgoKICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oOgogICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgogICAgICAgIChXZWJDb3JlOjpnb3RIZWFk
ZXJzQ2FsbGJhY2spOgogICAgICAgIChXZWJDb3JlOjpnb3RDaHVua0NhbGxiYWNrKToKLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcg
KysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaCAgfCAgICAyICsKIC4uLi9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VI
YW5kbGVTb3VwLmNwcCAgIHwgICAyMSArKysrKysrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFu
Z2VkLCAzOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0ZTBkYi4uMmExOGYyOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAwOS0wMy0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdu
b21lLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNTEKKyAgICAgICAg
U291cCBiYWNrZW5kIG5lZWRzIGNvbnRlbnQgc25pZmZpbmcgY2FwYWJpbGl0aWVzCisKKyAgICAg
ICAgUGVyZm9ybSBjb250ZW50IHNuaWZmaW5nIHdoZW4gdXNpbmcgc291cCwgc28gdGhhdCB3ZSBo
YXZlIGEgY2hhbmNlCisgICAgICAgIG9mIGZpZ3VyaW5nIG91dCB0aGUgQ29udGVudC1UeXBlIG9m
IHRoZSBmaWxlIGlmIGl0J3Mgbm90IHNlbnQgYnkKKyAgICAgICAgdGhlIHNlcnZlci4KKworICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnb3RIZWFkZXJzQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Z290Q2h1bmtDYWxsYmFjayk6CisKIDIwMDktMDMtMDYgIEhpcm9ub3JpIEJvbm8gIDxo
Ym9ub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5
YWtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oCmluZGV4IGE1NWY5NDUuLjg3NTg1NGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMTExLDYgKzExMSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICNpZiBVU0UoU09VUCkKICAgICAgICAgICAgICwgbV9tc2coMCkK
ICAgICAgICAgICAgICwgbV9jYW5jZWxsZWQoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0
ZWRIZWFkZXJzKGZhbHNlKQogICAgICAgICAgICAgLCBtX2dmaWxlKDApCiAgICAgICAgICAgICAs
IG1faW5wdXRTdHJlYW0oMCkKICAgICAgICAgICAgICwgbV9jYW5jZWxsYWJsZSgwKQpAQCAtMTgz
LDYgKzE4NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU291cE1lc3NhZ2UqIG1f
bXNnOwogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgICAgIGJvb2wg
bV9jYW5jZWxsZWQ7CisgICAgICAgIGJvb2wgbV9yZXBvcnRlZEhlYWRlcnM7CiAgICAgICAgIEdG
aWxlKiBtX2dmaWxlOwogICAgICAgICBHSW5wdXRTdHJlYW0qIG1faW5wdXRTdHJlYW07CiAgICAg
ICAgIEdDYW5jZWxsYWJsZSogbV9jYW5jZWxsYWJsZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDgyZWQxNDIuLjIx
Njk0NTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcApAQCAtMjE0LDYgKzIxNCwxNCBAQCBzdGF0aWMgdm9pZCBnb3RIZWFk
ZXJzQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKICAgICBpZiAoIVNP
VVBfU1RBVFVTX0lTX1NVQ0NFU1NGVUwobXNnLT5zdGF0dXNfY29kZSkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3MobXNnLCBTT1VQX01FU1NBR0VfT1ZFUldS
SVRFX0NIVU5LUyk7CisKKyAgICAvLyBXZSBzdGlsbCBkb24ndCBrbm93IGFueXRoaW5nIGFib3V0
IENvbnRlbnQtVHlwZSwgc28gd2Ugd2lsbCB0cnkKKyAgICAvLyBzbmlmZmluZyB0aGUgY29udGVu
dHMgb2YgdGhlIGZpbGUsIGFuZCB0aGVuIHJlcG9ydCB0aGF0IHdlIGdvdAorICAgIC8vIGhlYWRl
cnMKKyAgICBpZiAoIXNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9jb250ZW50X3R5cGUobXNnLT5y
ZXNwb25zZV9oZWFkZXJzLCBOVUxMKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJlc291cmNlSGFuZGxlKj4oZGF0YSk7CiAgICAg
aWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKQEAgLTIyNiw3ICsyMzQsNyBAQCBzdGF0aWMg
dm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkK
IAogICAgIGZpbGxSZXNwb25zZUZyb21NZXNzYWdlKG1zZywgJmQtPm1fcmVzcG9uc2UpOwogICAg
IGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgZC0+bV9yZXNwb25zZSk7Ci0gICAg
c291cF9tZXNzYWdlX3NldF9mbGFncyhtc2csIFNPVVBfTUVTU0FHRV9PVkVSV1JJVEVfQ0hVTktT
KTsKKyAgICBkLT5tX3JlcG9ydGVkSGVhZGVycyA9IHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGdv
dENodW5rQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdwb2lu
dGVyIGRhdGEpCkBAIC0yNDQsNiArMjUyLDE3IEBAIHN0YXRpYyB2b2lkIGdvdENodW5rQ2FsbGJh
Y2soU291cE1lc3NhZ2UqIG1zZywgU291cEJ1ZmZlciogY2h1bmssIGdwb2ludGVyIGRhdGEpCiAg
ICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghZC0+bV9yZXBvcnRl
ZEhlYWRlcnMpIHsKKyAgICAgICAgZ2Jvb2xlYW4gdW5jZXJ0YWluOworICAgICAgICBjaGFyKiBj
b250ZW50VHlwZSA9IGdfY29udGVudF90eXBlX2d1ZXNzKGQtPm1fcmVxdWVzdC51cmwoKS5sYXN0
UGF0aENvbXBvbmVudCgpLnV0ZjgoKS5kYXRhKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3Vj
aGFyKj4oY2h1bmstPmRhdGEpLCBjaHVuay0+bGVuZ3RoLCAmdW5jZXJ0YWluKTsKKyAgICAgICAg
c291cF9tZXNzYWdlX2hlYWRlcnNfc2V0X2NvbnRlbnRfdHlwZShtc2ctPnJlc3BvbnNlX2hlYWRl
cnMsIGNvbnRlbnRUeXBlLCBOVUxMKTsKKyAgICAgICAgZ19mcmVlKGNvbnRlbnRUeXBlKTsKKwor
ICAgICAgICBmaWxsUmVzcG9uc2VGcm9tTWVzc2FnZShtc2csICZkLT5tX3Jlc3BvbnNlKTsKKyAg
ICAgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLCBkLT5tX3Jlc3BvbnNlKTsK
KyAgICAgICAgZC0+bV9yZXBvcnRlZEhlYWRlcnMgPSB0cnVlOworICAgIH0KKwogICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBjaHVuay0+ZGF0YSwgY2h1bmstPmxlbmd0aCwgZmFs
c2UpOwogfQogCi0tIAoxLjYuMi5yYzAKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>