<?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>31090</bug_id>
          
          <creation_ts>2009-11-03 15:36:56 -0800</creation_ts>
          <short_desc>[Chromium] Add DownloadURL format to Chromium clipboard.</short_desc>
          <delta_ts>2019-07-18 16:38:10 -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>WebCore 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>arvind.tech225</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160241</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-03 15:36:56 -0800</bug_when>
    <thetext>Add DownloadURL format to Chromium clipboard in order to support dragging a virtual file out of the browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160246</commentid>
    <comment_count>1</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-03 15:42:46 -0800</bug_when>
    <thetext>Out of curiosity, what is an example flow that is currently missing?  ctrl+drag of a link to the desktop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160248</commentid>
    <comment_count>2</comment_count>
      <attachid>42432</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-03 15:48:59 -0800</bug_when>
    <thetext>Created attachment 42432
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160250</commentid>
    <comment_count>3</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-03 15:53:39 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Out of curiosity, what is an example flow that is currently missing?  ctrl+drag
&gt; of a link to the desktop?

One scenario is to support dragging an email attachment to the desktop. The web
application has to call event.dataTransfer.setData() to add the specific format
in order to mean to download the url, instead of copying the url value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160257</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-03 16:09:05 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; One scenario is to support dragging an email attachment to the desktop. The web
&gt; application has to call event.dataTransfer.setData() to add the specific format
&gt; in order to mean to download the url, instead of copying the url value.

I see, so this can only be set via JS?

Should we introduce a new URL member? What if JS wants to set both downloadurl and a regular url?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160261</commentid>
    <comment_count>5</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-03 16:21:27 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; One scenario is to support dragging an email attachment to the desktop. The web
&gt; &gt; application has to call event.dataTransfer.setData() to add the specific format
&gt; &gt; in order to mean to download the url, instead of copying the url value.
&gt; 
&gt; I see, so this can only be set via JS?

Yes, no additional UI.
&gt; 
&gt; Should we introduce a new URL member? What if JS wants to set both downloadurl
&gt; and a regular url?

No, because DownloadUrl takes higher priority. I do not think it make sense if we do both the download and url value copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160267</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-03 16:34:26 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Should we introduce a new URL member? What if JS wants to set both downloadurl
&gt; &gt; and a regular url?
&gt; 
&gt; No, because DownloadUrl takes higher priority. I do not think it make sense if
&gt; we do both the download and url value copy.

Doesn&apos;t the drop target make that decision?  E.g., if you drag something from a web page and you drop it on a external application, it might not know how to handle a downloadurl, but it might know how to handle a regular URL.  Am I misunderstanding how downloadurl is going to be used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160317</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-03 22:10:52 -0800</bug_when>
    <thetext>I think this was discussed on whatwg.. The idea is not that the drop target outside of browser will know how to handle DownloadUrl. The idea is to let the page to tell the browser to replace the DownloadUrl format with a platform-dependent file format, so that the OS file management app (Explorer or Desktop on Windows or Finder on Mac) could pull a file (via download done by the browser) and put it in the drop location. 
So when you drag-drop something from the page to the desktop for example, the page will add DownloadUrl format to dataTransfer object, and in return, the browser will add a platform-dependent streaming file format to the clipboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160493</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-04 10:21:01 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think this was discussed on whatwg.. The idea is not that the drop target
&gt; outside of browser will know how to handle DownloadUrl. The idea is to let the
&gt; page to tell the browser to replace the DownloadUrl format with a
&gt; platform-dependent file format, so that the OS file management app (Explorer or
&gt; Desktop on Windows or Finder on Mac) could pull a file (via download done by
&gt; the browser) and put it in the drop location. 
&gt; So when you drag-drop something from the page to the desktop for example, the
&gt; page will add DownloadUrl format to dataTransfer object, and in return, the
&gt; browser will add a platform-dependent streaming file format to the clipboard.

I see, so the OS&apos;s data object will contain only the streaming format.  It seems like it would be better to provide both the streaming format and a URL because the drop target might not know how to handle the streaming format.

For example you might have an external bookmark manager that doesn&apos;t know how to accept a streaming file format, but does understand URLs.  As the site owner, you might want to put a downloadurl that is to be used for streaming but a different url for an html page that embeds the content (ie, embeds a movie or pdf file).

I thought we also had a bug about being able to download the file if you drag a link and drop while holding ctrl.  I can&apos;t seem to get any other browser to do this, so maybe I&apos;m dreaming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160670</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-04 17:32:04 -0800</bug_when>
    <thetext>&gt; I see, so the OS&apos;s data object will contain only the streaming format.  It
&gt; seems like it would be better to provide both the streaming format and a URL
&gt; because the drop target might not know how to handle the streaming format.

That is all under control of the page, since it can populate the dataTransfer object with any formats.  However, perhaps it&apos;s not always beneficial to set both Url and DownloadUrl because many drop targets actually know how to deal with both - Windows Desktop will create a shortcut or download the file. For example, Email app would only add DownloadUrl in case of attachment since storing a link to it is not

I am not certain if you say the solution should be different. If so, please speak up! Otherwise, I don&apos;t see a reason not to review the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160672</commentid>
    <comment_count>10</comment_count>
      <attachid>42533</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-11-04 17:38:39 -0800</bug_when>
    <thetext>Created attachment 42533
Proposed Patch

Updated the patch to account for the chromium side review feedback about the variable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160673</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2009-11-04 17:42:03 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; I see, so the OS&apos;s data object will contain only the streaming format.  It
&gt; &gt; seems like it would be better to provide both the streaming format and a URL
&gt; &gt; because the drop target might not know how to handle the streaming format.
&gt; 
&gt; That is all under control of the page, since it can populate the dataTransfer
&gt; object with any formats.  However, perhaps it&apos;s not always beneficial to set
&gt; both Url and DownloadUrl because many drop targets actually know how to deal
&gt; with both - Windows Desktop will create a shortcut or download the file. For
&gt; example, Email app would only add DownloadUrl in case of attachment since
&gt; storing a link to it is not

Right, I&apos;m saying with this patch, it&apos;s not possible for the page to set a url
and a download url at the same time.  In fact, if you were to do a 
  event.dataTransfer.setData(&apos;downloadurl&apos;, &apos;http://www.foo.com/bar&apos;);
  event.dataTransfer.setData(&apos;url&apos;, &apos;http://www.foo.com/other&apos;);

the drop might initiate a download on www.foo.com/other, which seems to be
wrong.  I&apos;m just saying that ChromiumDataObject needs a new KURL, not a bool. 
I&apos;m not suggesting we should set the URL automatically when a downloadurl is
set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160674</commentid>
    <comment_count>12</comment_count>
      <attachid>42533</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-04 17:51:53 -0800</bug_when>
    <thetext>Comment on attachment 42533
Proposed Patch

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; +        Bug 31090 - [Chromium] Add DownloadURL format to Chromium clipboard.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=31090

I think ChangeLog could contain more info not only on what is done but also
why.
A link to a spec or mail list discussion is good to have, especially since the bug itself does not have it.

Also, need to say why no test.

&gt; +        bool needToDownloadUrl;

Better name (or a comment) would be good here. It is unclear if the url itself should be downloaded?
Maybe &apos;useUrlToDownloadData&apos;?

&gt; +        ChromiumDataObject() : needToDownloadUrl(false) {}

Also should be set to false in ChromiumDataObject::clear()

&gt; diff --git a/WebCore/platform/chromium/ClipboardChromium.cpp b/WebCore/platform/chromium/ClipboardChromium.cpp
&gt;  // We provide the IE clipboard types (URL and Text), and the clipboard types specified in the WHATWG Web Applications 1.0 draft
&gt;  // see http://www.whatwg.org/specs/web-apps/current-work/ Section 6.3.5.3

This comment is not true anymore, should be updated.

Also, I think the suggestion from Tony is good. Please consider KURL instead of bool.

r- for now, but close.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170573</commentid>
    <comment_count>13</comment_count>
      <attachid>44647</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-10 16:18:00 -0800</bug_when>
    <thetext>Created attachment 44647
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170574</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 16:18:17 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44647 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170577</commentid>
    <comment_count>15</comment_count>
      <attachid>44648</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-10 16:25:45 -0800</bug_when>
    <thetext>Created attachment 44648
Proposed Patch

Updated the patch to add the spec link to ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170579</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 16:28:41 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44648 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170597</commentid>
    <comment_count>17</comment_count>
      <attachid>44648</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-12-10 17:32:27 -0800</bug_when>
    <thetext>Comment on attachment 44648
Proposed Patch

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; +        The proposal to whatwg can be find here:

find -&gt; found

&gt; diff --git a/WebCore/platform/chromium/ChromiumDataObject.h b/WebCore/platform/chromium/ChromiumDataObject.h
&gt; +        KURL downloadURL;

The ChromiumDataObject::clear(0 and friends should get to know the downloadURL too...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170600</commentid>
    <comment_count>18</comment_count>
      <attachid>44653</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-10 17:47:10 -0800</bug_when>
    <thetext>Created attachment 44653
Proposed Patch

All fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170601</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-10 17:50:29 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44653 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172384</commentid>
    <comment_count>20</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-16 10:34:33 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/52160.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42432</attachid>
            <date>2009-11-03 15:48:59 -0800</date>
            <delta_ts>2009-11-04 17:38:39 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>31090</filename>
            <type>text/plain</type>
            <size>2984</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjIzNzc0ZC4uOTIxZDY5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMS0wMyAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQnVnIDMxMDkwIC0gW0Nocm9taXVtXSBBZGQgRG93bmxvYWRVUkwgZm9ybWF0
IHRvIENocm9taXVtIGNsaXBib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDkwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJv
bWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6
Y2xpcGJvYXJkVHlwZUZyb21NSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRD
aHJvbWl1bTo6c2V0RGF0YSk6CisKIDIwMDktMTEtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKaW5kZXggM2U4Njc1ZS4uMjM5
MWRhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFP
YmplY3QuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5oCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBLVVJM
IHVybDsKICAgICAgICAgU3RyaW5nIHVybFRpdGxlOworICAgICAgICBib29sIG5lZWRUb0Rvd25s
b2FkVXJsOwogCiAgICAgICAgIFN0cmluZyBmaWxlRXh0ZW5zaW9uOwogICAgICAgICBWZWN0b3I8
U3RyaW5nPiBmaWxlbmFtZXM7CkBAIC03MSw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmlsZUNvbnRlbnQ7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBDaHJvbWl1bURhdGFPYmplY3QoKSB7fQorICAgICAgICBDaHJvbWl1bURhdGFP
YmplY3QoKSA6IG5lZWRUb0Rvd25sb2FkVXJsKGZhbHNlKSB7fQogICAgICAgICBDaHJvbWl1bURh
dGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0Jik7CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCBkMzMwZDNi
Li4zNDU5YzA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcApAQCAtNTMsNyArNTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ly8gV2UgcHJvdmlkZSB0aGUgSUUgY2xpcGJvYXJkIHR5cGVzIChVUkwgYW5kIFRleHQpLCBhbmQg
dGhlIGNsaXBib2FyZCB0eXBlcyBzcGVjaWZpZWQgaW4gdGhlIFdIQVRXRyBXZWIgQXBwbGljYXRp
b25zIDEuMCBkcmFmdAogLy8gc2VlIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvIFNlY3Rpb24gNi4zLjUuMwogCi1lbnVtIENsaXBib2FyZERhdGFUeXBl
IHsgQ2xpcGJvYXJkRGF0YVR5cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJk
RGF0YVR5cGVUZXh0IH07CitlbnVtIENsaXBib2FyZERhdGFUeXBlIHsgQ2xpcGJvYXJkRGF0YVR5
cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0YVR5cGVUZXh0LCBDbGlw
Ym9hcmREYXRhVHlwZURvd25sb2FkVVJMIH07CiAKIHN0YXRpYyBDbGlwYm9hcmREYXRhVHlwZSBj
bGlwYm9hcmRUeXBlRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKQEAgLTY0LDYg
KzY0LDggQEAgc3RhdGljIENsaXBib2FyZERhdGFUeXBlIGNsaXBib2FyZFR5cGVGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVU
ZXh0OwogICAgIGlmIChjbGVhblR5cGUgPT0gInVybCIgfHwgY2xlYW5UeXBlID09ICJ0ZXh0L3Vy
aS1saXN0IikKICAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlVVJMOworICAgIGlmIChj
bGVhblR5cGUgPT0gImRvd25sb2FkdXJsIikKKyAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFU
eXBlRG93bmxvYWRVUkw7CiAKICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVOb25lOwogfQpA
QCAtMTU3LDYgKzE1OSwxNSBAQCBib29sIENsaXBib2FyZENocm9taXVtOjpzZXREYXRhKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgCisgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9h
ZFVSTCkgeworICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBkYXRhKTsK
KyAgICAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIG1fZGF0YU9iamVjdC0+
dXJsID0gdXJsOworICAgICAgICAgICAgbV9kYXRhT2JqZWN0LT5uZWVkVG9Eb3dubG9hZFVybCA9
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="23965"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42533</attachid>
            <date>2009-11-04 17:38:39 -0800</date>
            <delta_ts>2009-12-10 16:18:00 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>31090_2</filename>
            <type>text/plain</type>
            <size>2984</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjIzNzc0ZC4uOTIxZDY5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMS0wMyAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQnVnIDMxMDkwIC0gW0Nocm9taXVtXSBBZGQgRG93bmxvYWRVUkwgZm9ybWF0
IHRvIENocm9taXVtIGNsaXBib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDkwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJv
bWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6
Y2xpcGJvYXJkVHlwZUZyb21NSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRD
aHJvbWl1bTo6c2V0RGF0YSk6CisKIDIwMDktMTEtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaCBiL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKaW5kZXggM2U4Njc1ZS4uOGMz
Zjc4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFP
YmplY3QuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5oCkBAIC01OCw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBLVVJM
IHVybDsKICAgICAgICAgU3RyaW5nIHVybFRpdGxlOworICAgICAgICBib29sIG5lZWRUb0Rvd25s
b2FkVVJMOwogCiAgICAgICAgIFN0cmluZyBmaWxlRXh0ZW5zaW9uOwogICAgICAgICBWZWN0b3I8
U3RyaW5nPiBmaWxlbmFtZXM7CkBAIC03MSw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmlsZUNvbnRlbnQ7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBDaHJvbWl1bURhdGFPYmplY3QoKSB7fQorICAgICAgICBDaHJvbWl1bURhdGFP
YmplY3QoKSA6IG5lZWRUb0Rvd25sb2FkVVJMKGZhbHNlKSB7fQogICAgICAgICBDaHJvbWl1bURh
dGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0Jik7CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCBkMzMwZDNi
Li42NjU5Njk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcApAQCAtNTMsNyArNTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ly8gV2UgcHJvdmlkZSB0aGUgSUUgY2xpcGJvYXJkIHR5cGVzIChVUkwgYW5kIFRleHQpLCBhbmQg
dGhlIGNsaXBib2FyZCB0eXBlcyBzcGVjaWZpZWQgaW4gdGhlIFdIQVRXRyBXZWIgQXBwbGljYXRp
b25zIDEuMCBkcmFmdAogLy8gc2VlIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvIFNlY3Rpb24gNi4zLjUuMwogCi1lbnVtIENsaXBib2FyZERhdGFUeXBl
IHsgQ2xpcGJvYXJkRGF0YVR5cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJk
RGF0YVR5cGVUZXh0IH07CitlbnVtIENsaXBib2FyZERhdGFUeXBlIHsgQ2xpcGJvYXJkRGF0YVR5
cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0YVR5cGVUZXh0LCBDbGlw
Ym9hcmREYXRhVHlwZURvd25sb2FkVVJMIH07CiAKIHN0YXRpYyBDbGlwYm9hcmREYXRhVHlwZSBj
bGlwYm9hcmRUeXBlRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKQEAgLTY0LDYg
KzY0LDggQEAgc3RhdGljIENsaXBib2FyZERhdGFUeXBlIGNsaXBib2FyZFR5cGVGcm9tTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVU
ZXh0OwogICAgIGlmIChjbGVhblR5cGUgPT0gInVybCIgfHwgY2xlYW5UeXBlID09ICJ0ZXh0L3Vy
aS1saXN0IikKICAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlVVJMOworICAgIGlmIChj
bGVhblR5cGUgPT0gImRvd25sb2FkdXJsIikKKyAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFU
eXBlRG93bmxvYWRVUkw7CiAKICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVOb25lOwogfQpA
QCAtMTU3LDYgKzE1OSwxNSBAQCBib29sIENsaXBib2FyZENocm9taXVtOjpzZXREYXRhKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgCisgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9h
ZFVSTCkgeworICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBkYXRhKTsK
KyAgICAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIG1fZGF0YU9iamVjdC0+
dXJsID0gdXJsOworICAgICAgICAgICAgbV9kYXRhT2JqZWN0LT5uZWVkVG9Eb3dubG9hZFVSTCA9
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAo=
</data>
<flag name="review"
          id="24079"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="24080"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44647</attachid>
            <date>2009-12-10 16:18:00 -0800</date>
            <delta_ts>2009-12-10 16:25:45 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>31090_2</filename>
            <type>text/plain</type>
            <size>4360</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjQ4MjNmMS4uNmRmODM4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMi0xMCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQnVnIDMxMDkwIC0gW0Nocm9taXVtXSBBZGQgRG93bmxvYWRVUkwgZm9ybWF0
IHRvIENocm9taXVtIGNsaXBib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDkwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJv
bWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Y2xp
cGJvYXJkVHlwZUZyb21NSU1FVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJv
bWl1bTo6c2V0RGF0YSk6CisKIDIwMDktMTItMTAgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5A
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKaW5kZXggM2U4Njc1
ZS4uMTVlYjkxMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bURhdGFPYmplY3QuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0
YU9iamVjdC5oCkBAIC01OSw2ICs1OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
S1VSTCB1cmw7CiAgICAgICAgIFN0cmluZyB1cmxUaXRsZTsKIAorICAgICAgICBLVVJMIGRvd25s
b2FkVVJMOworCiAgICAgICAgIFN0cmluZyBmaWxlRXh0ZW5zaW9uOwogICAgICAgICBWZWN0b3I8
U3RyaW5nPiBmaWxlbmFtZXM7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlw
Ym9hcmRDaHJvbWl1bS5jcHAKaW5kZXggMWEyY2FhNC4uNmMxZTA1MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIC8vIFdlIHByb3ZpZGUgdGhlIElFIGNsaXBi
b2FyZCB0eXBlcyAoVVJMIGFuZCBUZXh0KSwgYW5kIHRoZSBjbGlwYm9hcmQgdHlwZXMgc3BlY2lm
aWVkIGluIHRoZSBXSEFUV0cgV2ViIEFwcGxpY2F0aW9ucyAxLjAgZHJhZnQKIC8vIHNlZSBodHRw
Oi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyBTZWN0aW9uIDYu
My41LjMKIAotZW51bSBDbGlwYm9hcmREYXRhVHlwZSB7IENsaXBib2FyZERhdGFUeXBlTm9uZSwg
Q2xpcGJvYXJkRGF0YVR5cGVVUkwsIENsaXBib2FyZERhdGFUeXBlVGV4dCB9OworZW51bSBDbGlw
Ym9hcmREYXRhVHlwZSB7IENsaXBib2FyZERhdGFUeXBlTm9uZSwgQ2xpcGJvYXJkRGF0YVR5cGVV
UkwsIENsaXBib2FyZERhdGFUeXBlVGV4dCwgQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9hZFVSTCB9
OwogCiBzdGF0aWMgQ2xpcGJvYXJkRGF0YVR5cGUgY2xpcGJvYXJkVHlwZUZyb21NSU1FVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUpCiB7CkBAIC02NCw2ICs2NCw4IEBAIHN0YXRpYyBDbGlwYm9hcmRE
YXRhVHlwZSBjbGlwYm9hcmRUeXBlRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAg
ICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlVGV4dDsKICAgICBpZiAoY2xlYW5UeXBlID09
ICJ1cmwiIHx8IGNsZWFuVHlwZSA9PSAidGV4dC91cmktbGlzdCIpCiAgICAgICAgIHJldHVybiBD
bGlwYm9hcmREYXRhVHlwZVVSTDsKKyAgICBpZiAoY2xlYW5UeXBlID09ICJkb3dubG9hZHVybCIp
CisgICAgICAgIHJldHVybiBDbGlwYm9hcmREYXRhVHlwZURvd25sb2FkVVJMOwogCiAgICAgcmV0
dXJuIENsaXBib2FyZERhdGFUeXBlTm9uZTsKIH0KQEAgLTE1Nyw2ICsxNTksMTQgQEAgYm9vbCBD
bGlwYm9hcmRDaHJvbWl1bTo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgZGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAorICAgIGlmICh3aW5U
eXBlID09IENsaXBib2FyZERhdGFUeXBlRG93bmxvYWRVUkwpIHsKKyAgICAgICAgS1VSTCB1cmwg
PSBLVVJMKFBhcnNlZFVSTFN0cmluZywgZGF0YSk7CisgICAgICAgIGlmICh1cmwuaXNWYWxpZCgp
KSB7CisgICAgICAgICAgICBtX2RhdGFPYmplY3QtPmRvd25sb2FkVVJMID0gdXJsOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDQwZGE4OTkuLjhlNDU3NDIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDA5LTEyLTEwICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
c2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogcHVibGlj
L1dlYkRyYWdEYXRhLmg6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRHJhZ0RhdGE6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RHJhZ0RhdGE6OnNldERvd25sb2FkVVJMKToKKwogMjAwOS0xMi0xMCAgS2VubmV0aCBSdXNzZWxs
ICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRyYWdEYXRhLmggYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkRyYWdEYXRhLmgKaW5kZXggZjdhMTY1ZC4uMDE1ODJhOSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnRGF0YS5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0RhdGEuaApAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdXJsVGl0bGUoKSBjb25zdDsKICAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0VVJMVGl0bGUoY29uc3QgV2ViU3RyaW5nJik7CiAKKyAgICBXRUJLSVRfQVBJ
IFdlYlVSTCBkb3dubG9hZFVSTCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXREb3du
bG9hZFVSTChjb25zdCBXZWJVUkwmKTsKKwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGZpbGVF
eHRlbnNpb24oKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RmlsZUV4dGVuc2lvbihj
b25zdCBXZWJTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
cmFnRGF0YS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcAppbmRleCA0
YWYxMTE5Li4zYmQ0YTAyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdE
YXRhLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApAQCAtODgs
NiArODgsMTggQEAgdm9pZCBXZWJEcmFnRGF0YTo6c2V0VVJMVGl0bGUoY29uc3QgV2ViU3RyaW5n
JiB1cmxUaXRsZSkKICAgICBtX3ByaXZhdGUtPnVybFRpdGxlID0gdXJsVGl0bGU7CiB9CiAKK1dl
YlVSTCBXZWJEcmFnRGF0YTo6ZG93bmxvYWRVUkwoKSBjb25zdAoreworICAgIEFTU0VSVCghaXNO
dWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmRvd25sb2FkVVJMOworfQorCit2b2lkIFdl
YkRyYWdEYXRhOjpzZXREb3dubG9hZFVSTChjb25zdCBXZWJVUkwmIGRvd25sb2FkVVJMKQorewor
ICAgIGVuc3VyZU11dGFibGUoKTsKKyAgICBtX3ByaXZhdGUtPmRvd25sb2FkVVJMID0gZG93bmxv
YWRVUkw7Cit9CisKIFdlYlN0cmluZyBXZWJEcmFnRGF0YTo6ZmlsZUV4dGVuc2lvbigpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFpc051bGwoKSk7Cg==
</data>
<flag name="commit-queue"
          id="26546"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44648</attachid>
            <date>2009-12-10 16:25:45 -0800</date>
            <delta_ts>2009-12-10 17:47:10 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>31090_3</filename>
            <type>text/plain</type>
            <size>4497</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjQ4MjNmMS4uMDdkNTlhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMi0xMCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQnVnIDMxMDkwIC0gW0Nocm9taXVtXSBBZGQgRG93bmxvYWRVUkwgZm9ybWF0
IHRvIENocm9taXVtIGNsaXBib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDkwCisKKyAgICAgICAgVGhlIHByb3Bvc2FsIHRvIHdoYXR3ZyBj
YW4gYmUgZmluZCBoZXJlOgorICAgICAgICBodHRwOi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5j
Z2kvd2hhdHdnLXdoYXR3Zy5vcmcvMjAwOS1BdWd1c3QvMDIyMTE4Lmh0bWwKKworICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oik6
CisgICAgICAgIChXZWJDb3JlOjpjbGlwYm9hcmRUeXBlRnJvbU1JTUVUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjpzZXREYXRhKToKKwogMjAwOS0xMi0xMCAgS2Vu
dCBIYW5zZW4gIDxrZW50LmhhbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0No
cm9taXVtRGF0YU9iamVjdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuaAppbmRleCAzZTg2NzVlLi4xNWViOTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKQEAgLTU5LDYgKzU5LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBLVVJMIHVybDsKICAgICAgICAgU3RyaW5nIHVybFRpdGxl
OwogCisgICAgICAgIEtVUkwgZG93bmxvYWRVUkw7CisKICAgICAgICAgU3RyaW5nIGZpbGVFeHRl
bnNpb247CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCAxYTJjYWE0Li42
YzFlMDUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcApAQCAtNTMsNyArNTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8g
V2UgcHJvdmlkZSB0aGUgSUUgY2xpcGJvYXJkIHR5cGVzIChVUkwgYW5kIFRleHQpLCBhbmQgdGhl
IGNsaXBib2FyZCB0eXBlcyBzcGVjaWZpZWQgaW4gdGhlIFdIQVRXRyBXZWIgQXBwbGljYXRpb25z
IDEuMCBkcmFmdAogLy8gc2VlIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvIFNlY3Rpb24gNi4zLjUuMwogCi1lbnVtIENsaXBib2FyZERhdGFUeXBlIHsg
Q2xpcGJvYXJkRGF0YVR5cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0
YVR5cGVUZXh0IH07CitlbnVtIENsaXBib2FyZERhdGFUeXBlIHsgQ2xpcGJvYXJkRGF0YVR5cGVO
b25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0YVR5cGVUZXh0LCBDbGlwYm9h
cmREYXRhVHlwZURvd25sb2FkVVJMIH07CiAKIHN0YXRpYyBDbGlwYm9hcmREYXRhVHlwZSBjbGlw
Ym9hcmRUeXBlRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKQEAgLTY0LDYgKzY0
LDggQEAgc3RhdGljIENsaXBib2FyZERhdGFUeXBlIGNsaXBib2FyZFR5cGVGcm9tTUlNRVR5cGUo
Y29uc3QgU3RyaW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVUZXh0
OwogICAgIGlmIChjbGVhblR5cGUgPT0gInVybCIgfHwgY2xlYW5UeXBlID09ICJ0ZXh0L3VyaS1s
aXN0IikKICAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlVVJMOworICAgIGlmIChjbGVh
blR5cGUgPT0gImRvd25sb2FkdXJsIikKKyAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBl
RG93bmxvYWRVUkw7CiAKICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVOb25lOwogfQpAQCAt
MTU3LDYgKzE1OSwxNCBAQCBib29sIENsaXBib2FyZENocm9taXVtOjpzZXREYXRhKGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgCisgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9hZFVS
TCkgeworICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBkYXRhKTsKKyAg
ICAgICAgaWYgKHVybC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIG1fZGF0YU9iamVjdC0+ZG93
bmxvYWRVUkwgPSB1cmw7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDBkYTg5OS4uOGU0
NTc0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTItMTAgIEppYW4gTGkg
IDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09Q
UyEpCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBzcmMvV2Vi
RHJhZ0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0YTo6ZG93bmxvYWRVUkwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0YTo6c2V0RG93bmxvYWRVUkwpOgorCiAyMDA5
LTEyLTEwICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRHJhZ0RhdGEuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0RhdGEuaAppbmRl
eCBmN2ExNjVkLi4wMTU4MmE5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkRyYWdEYXRhLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnRGF0YS5oCkBA
IC03Miw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB1cmxUaXRs
ZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRVUkxUaXRsZShjb25zdCBXZWJTdHJp
bmcmKTsKIAorICAgIFdFQktJVF9BUEkgV2ViVVJMIGRvd25sb2FkVVJMKCkgY29uc3Q7CisgICAg
V0VCS0lUX0FQSSB2b2lkIHNldERvd25sb2FkVVJMKGNvbnN0IFdlYlVSTCYpOworCiAgICAgV0VC
S0lUX0FQSSBXZWJTdHJpbmcgZmlsZUV4dGVuc2lvbigpIGNvbnN0OwogICAgIFdFQktJVF9BUEkg
dm9pZCBzZXRGaWxlRXh0ZW5zaW9uKGNvbnN0IFdlYlN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRHJhZ0RhdGEuY3BwCmluZGV4IDRhZjExMTkuLjNiZDRhMDIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRHJhZ0RhdGEuY3BwCkBAIC04OCw2ICs4OCwxOCBAQCB2b2lkIFdlYkRyYWdEYXRhOjpzZXRV
UkxUaXRsZShjb25zdCBXZWJTdHJpbmcmIHVybFRpdGxlKQogICAgIG1fcHJpdmF0ZS0+dXJsVGl0
bGUgPSB1cmxUaXRsZTsKIH0KIAorV2ViVVJMIFdlYkRyYWdEYXRhOjpkb3dubG9hZFVSTCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKCFpc051bGwoKSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZG93
bmxvYWRVUkw7Cit9CisKK3ZvaWQgV2ViRHJhZ0RhdGE6OnNldERvd25sb2FkVVJMKGNvbnN0IFdl
YlVSTCYgZG93bmxvYWRVUkwpCit7CisgICAgZW5zdXJlTXV0YWJsZSgpOworICAgIG1fcHJpdmF0
ZS0+ZG93bmxvYWRVUkwgPSBkb3dubG9hZFVSTDsKK30KKwogV2ViU3RyaW5nIFdlYkRyYWdEYXRh
OjpmaWxlRXh0ZW5zaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIWlzTnVsbCgpKTsK
</data>
<flag name="review"
          id="26547"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="26548"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44653</attachid>
            <date>2009-12-10 17:47:10 -0800</date>
            <delta_ts>2009-12-10 17:50:31 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>31090_4</filename>
            <type>text/plain</type>
            <size>5962</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjQ4MjNmMS4uNDA1OWRiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0xMi0xMCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQnVnIDMxMDkwIC0gW0Nocm9taXVtXSBBZGQgRG93bmxvYWRVUkwgZm9ybWF0
IHRvIENocm9taXVtIGNsaXBib2FyZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxMDkwCisKKyAgICAgICAgVGhlIHByb3Bvc2FsIHRvIHdoYXR3ZyBj
YW4gYmUgZm91bmQgaGVyZToKKyAgICAgICAgaHR0cDovL2xpc3RzLndoYXR3Zy5vcmcvaHRkaWcu
Y2dpL3doYXR3Zy13aGF0d2cub3JnLzIwMDktQXVndXN0LzAyMjExOC5odG1sCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWl1bURhdGFPYmplY3Q6Omhhc0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpDaHJvbWl1bURhdGFPYmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3Jl
OjpjbGlwYm9hcmRUeXBlRnJvbU1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2Fy
ZENocm9taXVtOjpzZXREYXRhKToKKwogMjAwOS0xMi0xMCAgS2VudCBIYW5zZW4gIDxrZW50Lmhh
bnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5k
ZXggNjgzYzJlNi4uZGYwODQ5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmNwcApAQCAtMzcsNiArMzcsNyBAQCB2b2lkIENocm9taXVtRGF0
YU9iamVjdDo6Y2xlYXIoKQogewogICAgIHVybCA9IEtVUkwoKTsKICAgICB1cmxUaXRsZSA9ICIi
OworICAgIGRvd25sb2FkVVJMID0gS1VSTCgpOwogICAgIGZpbGVFeHRlbnNpb24gPSAiIjsKICAg
ICBmaWxlbmFtZXMuY2xlYXIoKTsKICAgICBwbGFpblRleHQgPSAiIjsKQEAgLTUwLDYgKzUxLDcg
QEAgdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyKCkKIGJvb2wgQ2hyb21pdW1EYXRhT2Jq
ZWN0OjpoYXNEYXRhKCkgY29uc3QKIHsKICAgICByZXR1cm4gIXVybC5pc0VtcHR5KCkKKyAgICAg
ICAgfHwgIWRvd25sb2FkVVJMLmlzRW1wdHkoKQogICAgICAgICB8fCAhZmlsZUV4dGVuc2lvbi5p
c0VtcHR5KCkKICAgICAgICAgfHwgIWZpbGVuYW1lcy5pc0VtcHR5KCkKICAgICAgICAgfHwgIXBs
YWluVGV4dC5pc0VtcHR5KCkKQEAgLTYwLDYgKzYyLDcgQEAgYm9vbCBDaHJvbWl1bURhdGFPYmpl
Y3Q6Omhhc0RhdGEoKSBjb25zdAogQ2hyb21pdW1EYXRhT2JqZWN0OjpDaHJvbWl1bURhdGFPYmpl
Y3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0JiBvdGhlcikKICAgICA6IHVybChvdGhlci51cmwp
CiAgICAgLCB1cmxUaXRsZShvdGhlci51cmxUaXRsZSkKKyAgICAsIGRvd25sb2FkVVJMKG90aGVy
LmRvd25sb2FkVVJMKQogICAgICwgZmlsZUV4dGVuc2lvbihvdGhlci5maWxlRXh0ZW5zaW9uKQog
ICAgICwgZmlsZW5hbWVzKG90aGVyLmZpbGVuYW1lcykKICAgICAsIHBsYWluVGV4dChvdGhlci5w
bGFpblRleHQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmpl
Y3QuaAppbmRleCAzZTg2NzVlLi4xNWViOTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKQEAgLTU5LDYgKzU5LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBLVVJMIHVybDsKICAgICAgICAgU3RyaW5nIHVybFRpdGxlOwogCisg
ICAgICAgIEtVUkwgZG93bmxvYWRVUkw7CisKICAgICAgICAgU3RyaW5nIGZpbGVFeHRlbnNpb247
CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCAxYTJjYWE0Li42YzFlMDUw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNw
cApAQCAtNTMsNyArNTMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8gV2UgcHJv
dmlkZSB0aGUgSUUgY2xpcGJvYXJkIHR5cGVzIChVUkwgYW5kIFRleHQpLCBhbmQgdGhlIGNsaXBi
b2FyZCB0eXBlcyBzcGVjaWZpZWQgaW4gdGhlIFdIQVRXRyBXZWIgQXBwbGljYXRpb25zIDEuMCBk
cmFmdAogLy8gc2VlIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvIFNlY3Rpb24gNi4zLjUuMwogCi1lbnVtIENsaXBib2FyZERhdGFUeXBlIHsgQ2xpcGJv
YXJkRGF0YVR5cGVOb25lLCBDbGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0YVR5cGVU
ZXh0IH07CitlbnVtIENsaXBib2FyZERhdGFUeXBlIHsgQ2xpcGJvYXJkRGF0YVR5cGVOb25lLCBD
bGlwYm9hcmREYXRhVHlwZVVSTCwgQ2xpcGJvYXJkRGF0YVR5cGVUZXh0LCBDbGlwYm9hcmREYXRh
VHlwZURvd25sb2FkVVJMIH07CiAKIHN0YXRpYyBDbGlwYm9hcmREYXRhVHlwZSBjbGlwYm9hcmRU
eXBlRnJvbU1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKQEAgLTY0LDYgKzY0LDggQEAg
c3RhdGljIENsaXBib2FyZERhdGFUeXBlIGNsaXBib2FyZFR5cGVGcm9tTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVUZXh0OwogICAg
IGlmIChjbGVhblR5cGUgPT0gInVybCIgfHwgY2xlYW5UeXBlID09ICJ0ZXh0L3VyaS1saXN0IikK
ICAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlVVJMOworICAgIGlmIChjbGVhblR5cGUg
PT0gImRvd25sb2FkdXJsIikKKyAgICAgICAgcmV0dXJuIENsaXBib2FyZERhdGFUeXBlRG93bmxv
YWRVUkw7CiAKICAgICByZXR1cm4gQ2xpcGJvYXJkRGF0YVR5cGVOb25lOwogfQpAQCAtMTU3LDYg
KzE1OSwxNCBAQCBib29sIENsaXBib2FyZENocm9taXVtOjpzZXREYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgCisgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9hZFVSTCkgewor
ICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBkYXRhKTsKKyAgICAgICAg
aWYgKHVybC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIG1fZGF0YU9iamVjdC0+ZG93bmxvYWRV
UkwgPSB1cmw7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDBkYTg5OS4uMjg0YTc4ZiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTItMTAgIEppYW4gTGkgIDxqaWFu
bGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEJ1ZyAzMTA5MCAtIFtDaHJvbWl1bV0gQWRkIERvd25sb2FkVVJMIGZvcm1hdCB0
byBDaHJvbWl1bSBjbGlwYm9hcmQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMTA5MAorCisgICAgICAgIFRoZSBwcm9wb3NhbCB0byB3aGF0d2cgY2Fu
IGJlIGZvdW5kIGhlcmU6CisgICAgICAgIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNn
aS93aGF0d2ctd2hhdHdnLm9yZy8yMDA5LUF1Z3VzdC8wMjIxMTguaHRtbAorCisgICAgICAgICog
cHVibGljL1dlYkRyYWdEYXRhLmg6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRHJhZ0RhdGE6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0RhdGE6OnNldERvd25sb2FkVVJMKToKKwogMjAwOS0xMi0xMCAgS2VubmV0aCBS
dXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1
bnQuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRyYWdEYXRhLmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRyYWdEYXRhLmgKaW5kZXggZjdhMTY1ZC4uMDE1ODJh
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEcmFnRGF0YS5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRHJhZ0RhdGEuaApAQCAtNzIsNiArNzIsOSBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdXJsVGl0bGUoKSBjb25zdDsKICAgICBX
RUJLSVRfQVBJIHZvaWQgc2V0VVJMVGl0bGUoY29uc3QgV2ViU3RyaW5nJik7CiAKKyAgICBXRUJL
SVRfQVBJIFdlYlVSTCBkb3dubG9hZFVSTCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBz
ZXREb3dubG9hZFVSTChjb25zdCBXZWJVUkwmKTsKKwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5n
IGZpbGVFeHRlbnNpb24oKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0RmlsZUV4dGVu
c2lvbihjb25zdCBXZWJTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEcmFnRGF0YS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApp
bmRleCA0YWYxMTE5Li4zYmQ0YTAyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRyYWdEYXRhLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApA
QCAtODgsNiArODgsMTggQEAgdm9pZCBXZWJEcmFnRGF0YTo6c2V0VVJMVGl0bGUoY29uc3QgV2Vi
U3RyaW5nJiB1cmxUaXRsZSkKICAgICBtX3ByaXZhdGUtPnVybFRpdGxlID0gdXJsVGl0bGU7CiB9
CiAKK1dlYlVSTCBXZWJEcmFnRGF0YTo6ZG93bmxvYWRVUkwoKSBjb25zdAoreworICAgIEFTU0VS
VCghaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmRvd25sb2FkVVJMOworfQorCit2
b2lkIFdlYkRyYWdEYXRhOjpzZXREb3dubG9hZFVSTChjb25zdCBXZWJVUkwmIGRvd25sb2FkVVJM
KQoreworICAgIGVuc3VyZU11dGFibGUoKTsKKyAgICBtX3ByaXZhdGUtPmRvd25sb2FkVVJMID0g
ZG93bmxvYWRVUkw7Cit9CisKIFdlYlN0cmluZyBXZWJEcmFnRGF0YTo6ZmlsZUV4dGVuc2lvbigp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc051bGwoKSk7Cg==
</data>
<flag name="review"
          id="26553"
          type_id="1"
          status="+"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="26554"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>