<?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>34652</bug_id>
          
          <creation_ts>2010-02-05 10:48:09 -0800</creation_ts>
          <short_desc>[chromium] Add the chromium interface to support Blob.slice.</short_desc>
          <delta_ts>2010-02-09 12:51:48 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32993</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188217</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-05 10:48:09 -0800</bug_when>
    <thetext>In order to commit patch 32993 (Blob.slice support) without breaking chromium build, we need to add the chromium interface first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188219</commentid>
    <comment_count>1</comment_count>
      <attachid>48241</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-05 10:49:42 -0800</bug_when>
    <thetext>Created attachment 48241
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188273</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-02-05 13:42:46 -0800</bug_when>
    <thetext>Darin Fisher is the guy to look at chromium/public change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188455</commentid>
    <comment_count>3</comment_count>
      <attachid>48241</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-06 12:43:41 -0800</bug_when>
    <thetext>Comment on attachment 48241
Proposed Patch

&gt; +++ b/WebKit/chromium/public/WebHTTPBody.h
&gt; @@ -50,6 +50,9 @@ public:
&gt;          enum { TypeData, TypeFile } type;
&gt;          WebData data;
&gt;          WebString filePath;
&gt; +        long long fileStart;
&gt; +        long long fileLength;

^^^ do negative values have any meaning here?  i would imagine that fileStart of 0
and fileLength of -1 means the whole file.  is that your intent?  if so, please
document it.


&gt; +        time_t fileModificationTime;

^^^ we have been using &apos;double&apos; for timestamps elsewhere in the API.  there&apos;s
only one exception, and that&apos;s because i wasn&apos;t paying close enough attention ;-)


&gt; @@ -78,6 +81,7 @@ public:
&gt;      // Append to the list of elements.
&gt;      WEBKIT_API void appendData(const WebData&amp;);
&gt;      WEBKIT_API void appendFile(const WebString&amp;);
&gt; +    WEBKIT_API void appendFile(const WebString&amp;, long long fileStart, long long fileLength, time_t fileModificationTime);

How about naming this new function appendFileRange or appendFileSlice?

Also, do you foresee ever needing additional properties?  E.g., maybe
one day we&apos;ll want to pass mimeType info or other timestamps?  Maybe
it would be wise to create a WebFileInfo struct that contains the
lastModified time stamp and pass that as an argument here?  then, we
can extend that in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188716</commentid>
    <comment_count>4</comment_count>
      <attachid>48350</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-08 12:14:55 -0800</bug_when>
    <thetext>Created attachment 48350
Proposed Patch

All fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188718</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-08 12:18:05 -0800</bug_when>
    <thetext>Attachment 48350 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/WebHTTPBody.cpp:32:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188732</commentid>
    <comment_count>6</comment_count>
      <attachid>48354</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-08 12:48:40 -0800</bug_when>
    <thetext>Created attachment 48354
Proposed Patch

Fixed style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188870</commentid>
    <comment_count>7</comment_count>
      <attachid>48354</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-08 19:46:54 -0800</bug_when>
    <thetext>Comment on attachment 48354
Proposed Patch

&gt; +++ b/WebKit/chromium/public/WebFileInfo.h
...
&gt; +struct WebFileInfo {
&gt; +    // The file path.
&gt; +    WebString filePath;

^^^ I&apos;m sorry... this is a real pedantic nit-pick, but I think it would be
better to leave out the filePath field here.  I say that because this
structure is otherwise similar to the kinds of structures that an OS would
return when &apos;stat&apos;ing a file in the filesystem.  You can also look at it 
like this:  you can have many paths referring to the same file.  I&apos;d leave
out the filePath field.

Same goes for the fileStart and fileLength fields.  Those do not describe
the file.  They describe a range of a file, so including them in a struct
named WebFileInfo doesn&apos;t seem the best to me.

Be sure to add a comment explaining what fileModificationTime of 0.0 means.

Final nit pick:  no need for the &quot;file&quot; prefix as these fields are all
contained in a structure whose name contains the word file.


&gt; +++ b/WebKit/chromium/public/WebHTTPBody.h
...
&gt; +    WEBKIT_API void appendFile(const WebString&amp;); // FIXME: to be removed.
&gt; +    WEBKIT_API void appendFileRange(const WebFileInfo&amp;);

With the range fields folded into the WebFileInfo structure, this method is now
less explicitly about appending a file range.  I would probably do this:

  void appendFile(const WebString&amp; filePath, const WebFileInfo&amp;, long long fileStart, long long fileLength);

You could also call it appendFileRange, but I didn&apos;t do this since I figured
the appendFile method would be deleted.

-Darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189079</commentid>
    <comment_count>8</comment_count>
      <attachid>48429</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-09 11:05:36 -0800</bug_when>
    <thetext>Created attachment 48429
Proposed Patch

All fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189101</commentid>
    <comment_count>9</comment_count>
      <attachid>48429</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-02-09 12:00:37 -0800</bug_when>
    <thetext>Comment on attachment 48429
Proposed Patch

&gt; +++ b/WebKit/chromium/public/WebFileInfo.h
...
&gt; +#include &quot;WebString.h&quot;

^^^ you can nuke this include now.


&gt; +++ b/WebKit/chromium/public/WebHTTPBody.h

&gt; +        long long fileStart;
&gt; +        long long fileLength; // -1 means the whole file.

^^^ nit: -1 means to the end of the file.  it would only mean the whole file
if fileStart were 0.


&gt; +    WEBKIT_API void appendFile(const WebString&amp;); // FIXME: to be removed.
&gt; +    WEBKIT_API void appendFile(const WebString&amp;, long long fileStart, long long fileLength, const WebFileInfo&amp;);

^^^ please document the magic value of -1 here as well for fileLength.


otherwise, LGTM.  R=me, assuming you fixup these nits before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189134</commentid>
    <comment_count>10</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-09 12:51:48 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/54565.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48241</attachid>
            <date>2010-02-05 10:49:42 -0800</date>
            <delta_ts>2010-02-08 12:14:55 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>34652</filename>
            <type>text/plain</type>
            <size>2053</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDcyZGQ5MTUuLjM5YzQyZjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEwLTAyLTA1ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aGUgY2hyb21pdW0gaW50ZXJmYWNlIHRvIHN1cHBvcnQgQmxvYi5zbGljZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjUyCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViSFRUUEJvZHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSFRUUEJvZHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJIVFRQQm9keTo6YXBwZW5kRmlsZSk6CisKIDIwMTAtMDItMDUg
IE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkhUVFBCb2R5LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhUVFBCb2R5LmgKaW5kZXgg
NDNmNTFhNi4uNGNlOGUxMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJI
VFRQQm9keS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEJvZHkuaApAQCAt
NTAsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgICAgIGVudW0geyBUeXBlRGF0YSwgVHlwZUZpbGUg
fSB0eXBlOwogICAgICAgICBXZWJEYXRhIGRhdGE7CiAgICAgICAgIFdlYlN0cmluZyBmaWxlUGF0
aDsKKyAgICAgICAgbG9uZyBsb25nIGZpbGVTdGFydDsKKyAgICAgICAgbG9uZyBsb25nIGZpbGVM
ZW5ndGg7CisgICAgICAgIHRpbWVfdCBmaWxlTW9kaWZpY2F0aW9uVGltZTsKICAgICB9OwogCiAg
ICAgfldlYkhUVFBCb2R5KCkgeyByZXNldCgpOyB9CkBAIC03OCw2ICs4MSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBBcHBlbmQgdG8gdGhlIGxpc3Qgb2YgZWxlbWVudHMuCiAgICAgV0VCS0lUX0FQSSB2
b2lkIGFwcGVuZERhdGEoY29uc3QgV2ViRGF0YSYpOwogICAgIFdFQktJVF9BUEkgdm9pZCBhcHBl
bmRGaWxlKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9BUEkgdm9pZCBhcHBlbmRGaWxl
KGNvbnN0IFdlYlN0cmluZyYsIGxvbmcgbG9uZyBmaWxlU3RhcnQsIGxvbmcgbG9uZyBmaWxlTGVu
Z3RoLCB0aW1lX3QgZmlsZU1vZGlmaWNhdGlvblRpbWUpOwogCiAgICAgLy8gSWRlbnRpZmllcyBh
IHBhcnRpY3VsYXIgZm9ybSBzdWJtaXNzaW9uIGluc3RhbmNlLiAgQSB2YWx1ZSBvZiAwIGlzCiAg
ICAgLy8gdXNlZCB0byBpbmRpY2F0ZSBhbiB1bnNwZWNpZmllZCBpZGVudGlmaWVyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIVFRQQm9keS5jcHAgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkhUVFBCb2R5LmNwcAppbmRleCAzMzVlZDVjLi40NGI1ZjU3IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5LmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkhUVFBCb2R5LmNwcApAQCAtMTA2LDYgKzEwNiwxMSBAQCB2b2lkIFdlYkhUVFBC
b2R5OjphcHBlbmRGaWxlKGNvbnN0IFdlYlN0cmluZyYgZmlsZVBhdGgpCiAgICAgbV9wcml2YXRl
LT5hcHBlbmRGaWxlKGZpbGVQYXRoKTsKIH0KIAordm9pZCBXZWJIVFRQQm9keTo6YXBwZW5kRmls
ZShjb25zdCBXZWJTdHJpbmcmIGZpbGVQYXRoLCBsb25nIGxvbmcgZmlsZVN0YXJ0LCBsb25nIGxv
bmcgZmlsZUxlbmd0aCwgdGltZV90IGZpbGVNb2RpZmljYXRpb25UaW1lKQoreworICAgIC8vIEZJ
WE1FOiB0byBiZSBpbXBsZW1lbnRlZCB3aXRoIEJsb2Iuc2xpY2UuCit9CisKIGxvbmcgbG9uZyBX
ZWJIVFRQQm9keTo6aWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc051bGwoKSk7
Cg==
</data>
<flag name="review"
          id="30887"
          type_id="1"
          status="-"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="30888"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48350</attachid>
            <date>2010-02-08 12:14:55 -0800</date>
            <delta_ts>2010-02-08 12:48:40 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>34652_2</filename>
            <type>text/plain</type>
            <size>4699</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGUzZTVhMDcuLjM4MTcwMjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTAyLTA4ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aGUgY2hyb21pdW0gaW50ZXJmYWNlIHRvIHN1cHBvcnQgQmxvYi5zbGljZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjUyCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViRmlsZUluZm8uaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYkhUVFBC
b2R5Lmg6CisgICAgICAgICogc3JjL1dlYkhUVFBCb2R5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSFRUUEJvZHk6OmFwcGVuZEZpbGVSYW5nZSk6CisKIDIwMTAtMDItMDcgIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZUluZm8uaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwLi42M2Y2MjNmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGaWxlSW5mby5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkZpbGVJbmZvX2gK
KyNkZWZpbmUgV2ViRmlsZUluZm9faAorCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViRmlsZUluZm8geworICAgIC8vIFRoZSBmaWxlIHBh
dGguCisgICAgV2ViU3RyaW5nIGZpbGVQYXRoOworCisgICAgLy8gVGhlIHN0YXJ0aW5nIHBvc2l0
aW9uIG9mIGEgZmlsZSByYW5nZS4KKyAgICBsb25nIGxvbmcgZmlsZVN0YXJ0OworCisgICAgLy8g
VGhlIGxlbmd0aCBvZiBhIGZpbGUgcmFuZ2UuIFRoZSB2YWx1ZSAtMSBtZWFucyB0aGUgd2hvbGUg
ZmlsZS4KKyAgICBsb25nIGxvbmcgZmlsZUxlbmd0aDsKKworICAgIC8vIFRoZSBsYXN0IG1vZGlm
aWNhdGlvbiB0aW1lIG9mIHRoZSBmaWxlLCBpbiBzZWNvbmRzLgorICAgIGRvdWJsZSBmaWxlTW9k
aWZpY2F0aW9uVGltZTsKKworICAgIFdlYkZpbGVJbmZvKCkKKyAgICAgICAgOiBmaWxlU3RhcnQo
MCkKKyAgICAgICAgLCBmaWxlTGVuZ3RoKC0xKQorICAgICAgICAsIGZpbGVNb2RpZmljYXRpb25U
aW1lKDAuMCkKKyAgICB7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9keS5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9keS5oCmluZGV4IDQzZjUxYTYuLjhkMmM5
OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEJvZHkuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhUVFBCb2R5LmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNkZWZpbmUgV2ViSFRUUEJvZHlfaAogCiAjaW5jbHVkZSAiV2ViRGF0YS5oIgorI2luY2x1ZGUg
IldlYkZpbGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKICNpbmNsdWRlICJX
ZWJTdHJpbmcuaCIKIApAQCAtNDksNyArNTAsOCBAQCBwdWJsaWM6CiAgICAgc3RydWN0IEVsZW1l
bnQgewogICAgICAgICBlbnVtIHsgVHlwZURhdGEsIFR5cGVGaWxlIH0gdHlwZTsKICAgICAgICAg
V2ViRGF0YSBkYXRhOwotICAgICAgICBXZWJTdHJpbmcgZmlsZVBhdGg7CisgICAgICAgIFdlYlN0
cmluZyBmaWxlUGF0aDsgLy8gRklYTUU6IHRvIGJlIHJlbW92ZWQuCisgICAgICAgIFdlYkZpbGVJ
bmZvIGZpbGVJbmZvOwogICAgIH07CiAKICAgICB+V2ViSFRUUEJvZHkoKSB7IHJlc2V0KCk7IH0K
QEAgLTc3LDcgKzc5LDggQEAgcHVibGljOgogCiAgICAgLy8gQXBwZW5kIHRvIHRoZSBsaXN0IG9m
IGVsZW1lbnRzLgogICAgIFdFQktJVF9BUEkgdm9pZCBhcHBlbmREYXRhKGNvbnN0IFdlYkRhdGEm
KTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kRmlsZShjb25zdCBXZWJTdHJpbmcmKTsKKyAg
ICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kRmlsZShjb25zdCBXZWJTdHJpbmcmKTsgLy8gRklYTUU6
IHRvIGJlIHJlbW92ZWQuCisgICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZEZpbGVSYW5nZShjb25z
dCBXZWJGaWxlSW5mbyYpOwogCiAgICAgLy8gSWRlbnRpZmllcyBhIHBhcnRpY3VsYXIgZm9ybSBz
dWJtaXNzaW9uIGluc3RhbmNlLiAgQSB2YWx1ZSBvZiAwIGlzCiAgICAgLy8gdXNlZCB0byBpbmRp
Y2F0ZSBhbiB1bnNwZWNpZmllZCBpZGVudGlmaWVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJIVFRQQm9keS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5
LmNwcAppbmRleCAzMzVlZDVjLi4wZjdjODc1IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkhUVFBCb2R5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5
LmNwcApAQCAtMjksNiArMjksNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJGaWxlSW5mby5oIgogI2luY2x1ZGUgIldlYkhUVFBCb2R5LmgiCiAKICNpbmNsdWRl
ICJGb3JtRGF0YS5oIgpAQCAtMTA2LDYgKzEwNywxMSBAQCB2b2lkIFdlYkhUVFBCb2R5OjphcHBl
bmRGaWxlKGNvbnN0IFdlYlN0cmluZyYgZmlsZVBhdGgpCiAgICAgbV9wcml2YXRlLT5hcHBlbmRG
aWxlKGZpbGVQYXRoKTsKIH0KIAordm9pZCBXZWJIVFRQQm9keTo6YXBwZW5kRmlsZVJhbmdlKGNv
bnN0IFdlYkZpbGVJbmZvJiBmaWxlSW5mbykKK3sKKyAgICAvLyBGSVhNRTogdG8gYmUgaW1wbGVt
ZW50ZWQuCit9CisKIGxvbmcgbG9uZyBXZWJIVFRQQm9keTo6aWRlbnRpZmllcigpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFpc051bGwoKSk7Cg==
</data>
<flag name="commit-queue"
          id="31018"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48354</attachid>
            <date>2010-02-08 12:48:40 -0800</date>
            <delta_ts>2010-02-09 11:05:36 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>34652_3</filename>
            <type>text/plain</type>
            <size>4701</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGUzZTVhMDcuLjM4MTcwMjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTAyLTA4ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aGUgY2hyb21pdW0gaW50ZXJmYWNlIHRvIHN1cHBvcnQgQmxvYi5zbGljZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjUyCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViRmlsZUluZm8uaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYkhUVFBC
b2R5Lmg6CisgICAgICAgICogc3JjL1dlYkhUVFBCb2R5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSFRUUEJvZHk6OmFwcGVuZEZpbGVSYW5nZSk6CisKIDIwMTAtMDItMDcgIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZUluZm8uaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwLi42M2Y2MjNmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGaWxlSW5mby5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkZpbGVJbmZvX2gK
KyNkZWZpbmUgV2ViRmlsZUluZm9faAorCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgV2ViRmlsZUluZm8geworICAgIC8vIFRoZSBmaWxlIHBh
dGguCisgICAgV2ViU3RyaW5nIGZpbGVQYXRoOworCisgICAgLy8gVGhlIHN0YXJ0aW5nIHBvc2l0
aW9uIG9mIGEgZmlsZSByYW5nZS4KKyAgICBsb25nIGxvbmcgZmlsZVN0YXJ0OworCisgICAgLy8g
VGhlIGxlbmd0aCBvZiBhIGZpbGUgcmFuZ2UuIFRoZSB2YWx1ZSAtMSBtZWFucyB0aGUgd2hvbGUg
ZmlsZS4KKyAgICBsb25nIGxvbmcgZmlsZUxlbmd0aDsKKworICAgIC8vIFRoZSBsYXN0IG1vZGlm
aWNhdGlvbiB0aW1lIG9mIHRoZSBmaWxlLCBpbiBzZWNvbmRzLgorICAgIGRvdWJsZSBmaWxlTW9k
aWZpY2F0aW9uVGltZTsKKworICAgIFdlYkZpbGVJbmZvKCkKKyAgICAgICAgOiBmaWxlU3RhcnQo
MCkKKyAgICAgICAgLCBmaWxlTGVuZ3RoKC0xKQorICAgICAgICAsIGZpbGVNb2RpZmljYXRpb25U
aW1lKDAuMCkKKyAgICB7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9keS5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9keS5oCmluZGV4IDQzZjUxYTYuLjhkMmM5
OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEJvZHkuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkhUVFBCb2R5LmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNkZWZpbmUgV2ViSFRUUEJvZHlfaAogCiAjaW5jbHVkZSAiV2ViRGF0YS5oIgorI2luY2x1ZGUg
IldlYkZpbGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKICNpbmNsdWRlICJX
ZWJTdHJpbmcuaCIKIApAQCAtNDksNyArNTAsOCBAQCBwdWJsaWM6CiAgICAgc3RydWN0IEVsZW1l
bnQgewogICAgICAgICBlbnVtIHsgVHlwZURhdGEsIFR5cGVGaWxlIH0gdHlwZTsKICAgICAgICAg
V2ViRGF0YSBkYXRhOwotICAgICAgICBXZWJTdHJpbmcgZmlsZVBhdGg7CisgICAgICAgIFdlYlN0
cmluZyBmaWxlUGF0aDsgLy8gRklYTUU6IHRvIGJlIHJlbW92ZWQuCisgICAgICAgIFdlYkZpbGVJ
bmZvIGZpbGVJbmZvOwogICAgIH07CiAKICAgICB+V2ViSFRUUEJvZHkoKSB7IHJlc2V0KCk7IH0K
QEAgLTc3LDcgKzc5LDggQEAgcHVibGljOgogCiAgICAgLy8gQXBwZW5kIHRvIHRoZSBsaXN0IG9m
IGVsZW1lbnRzLgogICAgIFdFQktJVF9BUEkgdm9pZCBhcHBlbmREYXRhKGNvbnN0IFdlYkRhdGEm
KTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kRmlsZShjb25zdCBXZWJTdHJpbmcmKTsKKyAg
ICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kRmlsZShjb25zdCBXZWJTdHJpbmcmKTsgLy8gRklYTUU6
IHRvIGJlIHJlbW92ZWQuCisgICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZEZpbGVSYW5nZShjb25z
dCBXZWJGaWxlSW5mbyYpOwogCiAgICAgLy8gSWRlbnRpZmllcyBhIHBhcnRpY3VsYXIgZm9ybSBz
dWJtaXNzaW9uIGluc3RhbmNlLiAgQSB2YWx1ZSBvZiAwIGlzCiAgICAgLy8gdXNlZCB0byBpbmRp
Y2F0ZSBhbiB1bnNwZWNpZmllZCBpZGVudGlmaWVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJIVFRQQm9keS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5
LmNwcAppbmRleCAzMzVlZDVjLi5mN2E5MzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkhUVFBCb2R5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYkhUVFBCb2R5LmgiCiAKICNpbmNs
dWRlICJGb3JtRGF0YS5oIgorI2luY2x1ZGUgIldlYkZpbGVJbmZvLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC0xMDYsNiArMTA3LDExIEBAIHZvaWQgV2ViSFRUUEJvZHk6OmFw
cGVuZEZpbGUoY29uc3QgV2ViU3RyaW5nJiBmaWxlUGF0aCkKICAgICBtX3ByaXZhdGUtPmFwcGVu
ZEZpbGUoZmlsZVBhdGgpOwogfQogCit2b2lkIFdlYkhUVFBCb2R5OjphcHBlbmRGaWxlUmFuZ2Uo
Y29uc3QgV2ViRmlsZUluZm8mIGZpbGVJbmZvKQoreworICAgIC8vIEZJWE1FOiB0byBiZSBpbXBs
ZW1lbnRlZC4KK30KKwogbG9uZyBsb25nIFdlYkhUVFBCb2R5OjppZGVudGlmaWVyKCkgY29uc3QK
IHsKICAgICBBU1NFUlQoIWlzTnVsbCgpKTsK
</data>
<flag name="review"
          id="31021"
          type_id="1"
          status="-"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="31022"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48429</attachid>
            <date>2010-02-09 11:05:36 -0800</date>
            <delta_ts>2010-02-09 12:00:36 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>34652_4</filename>
            <type>text/plain</type>
            <size>5961</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDY1ODhjMWYuLjA4Y2FiZDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEwLTAyLTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIEFk
ZCB0aGUgY2hyb21pdW0gaW50ZXJmYWNlIHRvIHN1cHBvcnQgQmxvYi5zbGljZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjUyCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJGaWxlSW5mby5oOiBBZGRlZC4KKyAg
ICAgICAgKiBwdWJsaWMvV2ViSFRUUEJvZHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSFRUUEJvZHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIVFRQQm9keTo6ZWxlbWVudEF0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViSFRUUEJvZHk6OmFwcGVuZEZpbGUpOgorCiAyMDEwLTAyLTA5ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZv
bGxvdy11cCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDUxNjkzYmEuLjFlZDI2ZWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCkBAIC0xMTIsNiArMTEyLDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkV2
ZW50TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlQ2hvb3NlckNv
bXBsZXRpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlQ2hvb3NlclBhcmFt
cy5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkZpbGVJbmZvLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViRmluZE9wdGlvbnMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJGcmFtZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZyYW1lQ2xpZW50Lmgn
LApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGaWxlSW5mby5oIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGaWxlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAuLmYzMGRlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZpbGVJbmZvLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRmlsZUluZm9f
aAorI2RlZmluZSBXZWJGaWxlSW5mb19oCisKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJGaWxlSW5mbyB7CisgICAgLy8gVGhlIGxhc3Qg
bW9kaWZpY2F0aW9uIHRpbWUgb2YgdGhlIGZpbGUsIGluIHNlY29uZHMuCisgICAgLy8gVGhlIHZh
bHVlIDAuMCBtZWFucyB0aGF0IHRoZSB0aW1lIGlzIG5vdCBzZXQuCisgICAgZG91YmxlIG1vZGlm
aWNhdGlvblRpbWU7CisKKyAgICBXZWJGaWxlSW5mbygpIDogbW9kaWZpY2F0aW9uVGltZSgwLjAp
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQQm9keS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJIVFRQQm9keS5oCmluZGV4IDQzZjUxYTYuLjVmNzQ1YTQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEJvZHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkhUVFBCb2R5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViSFRUUEJv
ZHlfaAogCiAjaW5jbHVkZSAiV2ViRGF0YS5oIgorI2luY2x1ZGUgIldlYkZpbGVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIApAQCAt
NTAsNiArNTEsOSBAQCBwdWJsaWM6CiAgICAgICAgIGVudW0geyBUeXBlRGF0YSwgVHlwZUZpbGUg
fSB0eXBlOwogICAgICAgICBXZWJEYXRhIGRhdGE7CiAgICAgICAgIFdlYlN0cmluZyBmaWxlUGF0
aDsKKyAgICAgICAgbG9uZyBsb25nIGZpbGVTdGFydDsKKyAgICAgICAgbG9uZyBsb25nIGZpbGVM
ZW5ndGg7IC8vIC0xIG1lYW5zIHRoZSB3aG9sZSBmaWxlLgorICAgICAgICBXZWJGaWxlSW5mbyBm
aWxlSW5mbzsKICAgICB9OwogCiAgICAgfldlYkhUVFBCb2R5KCkgeyByZXNldCgpOyB9CkBAIC03
Nyw3ICs4MSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIEFwcGVuZCB0byB0aGUgbGlzdCBvZiBlbGVt
ZW50cy4KICAgICBXRUJLSVRfQVBJIHZvaWQgYXBwZW5kRGF0YShjb25zdCBXZWJEYXRhJik7Ci0g
ICAgV0VCS0lUX0FQSSB2b2lkIGFwcGVuZEZpbGUoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VC
S0lUX0FQSSB2b2lkIGFwcGVuZEZpbGUoY29uc3QgV2ViU3RyaW5nJik7IC8vIEZJWE1FOiB0byBi
ZSByZW1vdmVkLgorICAgIFdFQktJVF9BUEkgdm9pZCBhcHBlbmRGaWxlKGNvbnN0IFdlYlN0cmlu
ZyYsIGxvbmcgbG9uZyBmaWxlU3RhcnQsIGxvbmcgbG9uZyBmaWxlTGVuZ3RoLCBjb25zdCBXZWJG
aWxlSW5mbyYpOwogCiAgICAgLy8gSWRlbnRpZmllcyBhIHBhcnRpY3VsYXIgZm9ybSBzdWJtaXNz
aW9uIGluc3RhbmNlLiAgQSB2YWx1ZSBvZiAwIGlzCiAgICAgLy8gdXNlZCB0byBpbmRpY2F0ZSBh
biB1bnNwZWNpZmllZCBpZGVudGlmaWVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJIVFRQQm9keS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5LmNwcApp
bmRleCAzMzVlZDVjLi4zZDQwODY5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkhUVFBCb2R5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhUVFBCb2R5LmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYkhUVFBCb2R5LmgiCiAKICNpbmNsdWRlICJG
b3JtRGF0YS5oIgorI2luY2x1ZGUgIldlYkZpbGVJbmZvLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC03OCwxMSArNzksMTcgQEAgYm9vbCBXZWJIVFRQQm9keTo6ZWxlbWVudEF0
KHNpemVfdCBpbmRleCwgRWxlbWVudCYgcmVzdWx0KSBjb25zdAogICAgICAgICByZXN1bHQudHlw
ZSA9IEVsZW1lbnQ6OlR5cGVEYXRhOwogICAgICAgICByZXN1bHQuZGF0YS5hc3NpZ24oZWxlbWVu
dC5tX2RhdGEuZGF0YSgpLCBlbGVtZW50Lm1fZGF0YS5zaXplKCkpOwogICAgICAgICByZXN1bHQu
ZmlsZVBhdGgucmVzZXQoKTsKKyAgICAgICAgcmVzdWx0LmZpbGVTdGFydCA9IDA7CisgICAgICAg
IHJlc3VsdC5maWxlTGVuZ3RoID0gMDsKKyAgICAgICAgcmVzdWx0LmZpbGVJbmZvLm1vZGlmaWNh
dGlvblRpbWUgPSAwLjA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRm9ybURhdGFFbGVtZW50
OjplbmNvZGVkRmlsZToKICAgICAgICAgcmVzdWx0LnR5cGUgPSBFbGVtZW50OjpUeXBlRmlsZTsK
ICAgICAgICAgcmVzdWx0LmRhdGEucmVzZXQoKTsKICAgICAgICAgcmVzdWx0LmZpbGVQYXRoID0g
ZWxlbWVudC5tX2ZpbGVuYW1lOworICAgICAgICByZXN1bHQuZmlsZVN0YXJ0ID0gMDsgLy8gRklY
TUU6IHRvIGJlIHNldCBmcm9tIEZvcm1EYXRhLgorICAgICAgICByZXN1bHQuZmlsZUxlbmd0aCA9
IC0xOyAvLyBGSVhNRTogdG8gYmUgc2V0IGZyb20gRm9ybURhdGEuCisgICAgICAgIHJlc3VsdC5m
aWxlSW5mby5tb2RpZmljYXRpb25UaW1lID0gMC4wOyAvLyBGSVhNRTogdG8gYmUgc2V0IGZyb20g
Rm9ybURhdGEuCiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMTA2LDYgKzExMywxMSBAQCB2b2lkIFdlYkhUVFBCb2R5OjphcHBl
bmRGaWxlKGNvbnN0IFdlYlN0cmluZyYgZmlsZVBhdGgpCiAgICAgbV9wcml2YXRlLT5hcHBlbmRG
aWxlKGZpbGVQYXRoKTsKIH0KIAordm9pZCBXZWJIVFRQQm9keTo6YXBwZW5kRmlsZShjb25zdCBX
ZWJTdHJpbmcmIGZpbGVQYXRoLCBsb25nIGxvbmcgZmlsZVN0YXJ0LCBsb25nIGxvbmcgZmlsZUxl
bmd0aCwgY29uc3QgV2ViRmlsZUluZm8mIGZpbGVJbmZvKQoreworICAgIC8vIEZJWE1FOiB0byBi
ZSBpbXBsZW1lbnRlZC4KK30KKwogbG9uZyBsb25nIFdlYkhUVFBCb2R5OjppZGVudGlmaWVyKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoIWlzTnVsbCgpKTsK
</data>
<flag name="review"
          id="31115"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="31116"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>