<?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>113454</bug_id>
          
          <creation_ts>2013-03-27 16:07:11 -0700</creation_ts>
          <short_desc>GCC 4.8 error - C++ nested class inheriting enclosing class</short_desc>
          <delta_ts>2013-04-01 11:23:00 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Han Shen">shenhan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>864955</commentid>
    <comment_count>0</comment_count>
      <attachid>195425</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-03-27 16:07:11 -0700</bug_when>
    <thetext>Created attachment 195425
The is a patch.

In WebKit/Source/WTF/wtf/HashMap.h, HashMapKeysProxy and HashMapValuesProxy are defined as nested class inside HashMap, meanwhile they inherit the enclosing HashMap class, which by any means is not legal. 

GCC 4.8 complains about this.

So the original code is like - 

template class &lt;typename T&gt;
class HashMap {
  ... ...
  ... ...
private:
  class HashMapKeysProxy;

  class HashMapKeysProxy : private HashMap {
  };
  ... ...
  ... ...
};

My fix is to change the above to:
template class &lt;typename T&gt;
class HashMap {
  ... ...
  ... ...
private:
  class HashMapKeysProxy;

  ... ...
  ... ...
};

template &lt;typename T&gt;
class HashMap&lt;T&gt;::HashMapKeysProxy : private HashMap&lt;T&gt; {
  ... ...
};


The patch is attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864968</commentid>
    <comment_count>1</comment_count>
      <attachid>195425</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-27 16:25:31 -0700</bug_when>
    <thetext>Comment on attachment 195425
The is a patch.

You forgot the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864974</commentid>
    <comment_count>2</comment_count>
      <attachid>195431</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-03-27 16:35:43 -0700</bug_when>
    <thetext>Created attachment 195431
Patch again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864977</commentid>
    <comment_count>3</comment_count>
      <attachid>195431</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-27 16:41:15 -0700</bug_when>
    <thetext>Comment on attachment 195431
Patch again

View in context: https://bugs.webkit.org/attachment.cgi?id=195431&amp;action=review

&gt; ChangeLog:6
&gt; +2013-03-27  Han Shen  &lt;shenhan@google.com&gt;
&gt; +
&gt; +        Move the definition of nested class that inherits enclosing class outside class definition.
&gt; +
&gt; +        * Source/WTF/wtf/HashMap.h: Move outside nested class definition from enclosing class.
&gt; +

First patch I guess :)

There is a tool to generate the changelogs. Just run &quot;./Tools/Scripts/prepare-ChangeLog --bug 113454&quot;
The ChangeLogs have a certain standard format.

You will also need to include a description. Something similar to what you explains in the bug.

&gt; Source/WTF/wtf/HashMap.h:147
&gt; +            typedef typename HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt;::iterator::Keys iterator;

Please privately typedef HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt; to avoid the repeated args on every calls.

&gt; Source/WTF/wtf/HashMap.h:186
&gt; -            typedef typename HashMap::iterator::Values iterator;
&gt; -            typedef typename HashMap::const_iterator::Values const_iterator;
&gt; -            
&gt; +            typedef typename HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt;::iterator::Values iterator;
&gt; +            typedef typename HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt;::const_iterator::Values const_iterator;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865602</commentid>
    <comment_count>4</comment_count>
      <attachid>195591</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-03-28 10:23:35 -0700</bug_when>
    <thetext>Created attachment 195591
Patch - 3

Thanks Benjamin.

Done.

(Actually, it&apos;s my second patch, the ChangeLog for the previous one was done by the one who reviewed my code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865619</commentid>
    <comment_count>5</comment_count>
      <attachid>195591</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-28 10:42:34 -0700</bug_when>
    <thetext>Comment on attachment 195591
Patch - 3

View in context: https://bugs.webkit.org/attachment.cgi?id=195591&amp;action=review

&gt; Source/WTF/ChangeLog:9
&gt; +
&gt; +        * wtf/HashMap.h:
&gt; +        (HashMap):

Here you should include a short description of your change.
You need to say what you fix (or why do you make the change), and how you fix it. (here is an example: http://trac.webkit.org/changeset/146372/trunk/Source/WTF/ChangeLog).

This description is intended for people reading your code in the future (typically a few years from now with WTF). It explains why a certain change was made.

&gt; Source/WTF/wtf/HashMap.h:143
&gt; +    template&lt;typename KeyArg, typename MappedArg, typename HashArg = typename DefaultHash&lt;KeyArg&gt;::Hash,
&gt; +        typename KeyTraitsArg = HashTraits&lt;KeyArg&gt;, typename MappedTraitsArg = HashTraits&lt;MappedArg&gt; &gt;

It looks from the bot that passing default template arguments is not correct here.

&gt; Source/WTF/wtf/HashMap.h:186
&gt; +            typedef HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt; HashMapInst;

HashMapInst -&gt; HashMapType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865648</commentid>
    <comment_count>6</comment_count>
      <attachid>195591</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-28 11:24:05 -0700</bug_when>
    <thetext>Comment on attachment 195591
Patch - 3

Attachment 195591 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17306493</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865698</commentid>
    <comment_count>7</comment_count>
      <attachid>195591</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-28 12:20:20 -0700</bug_when>
    <thetext>Comment on attachment 195591
Patch - 3

r- per comments and bot. Please make sure this build on modern clangs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865881</commentid>
    <comment_count>8</comment_count>
      <attachid>195666</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-03-28 16:06:17 -0700</bug_when>
    <thetext>Created attachment 195666
patch - 4

Thanks!

Fixed. Built (under linux) successfully using gcc 4.7/gcc 4.8/clang 3.x.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865889</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-28 16:11:08 -0700</bug_when>
    <thetext>Attachment 195666 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/HashMap.h&apos;]&quot; exit_code: 1
Source/WTF/wtf/HashMap.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865906</commentid>
    <comment_count>10</comment_count>
      <attachid>195676</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-03-28 16:32:27 -0700</bug_when>
    <thetext>Created attachment 195676
patch - 5

Passed &quot;Tools/Scripts/check-webkit-style&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865959</commentid>
    <comment_count>11</comment_count>
      <attachid>195676</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-28 18:45:31 -0700</bug_when>
    <thetext>Comment on attachment 195676
patch - 5

Attachment 195676 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17305396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865977</commentid>
    <comment_count>12</comment_count>
      <attachid>195676</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-28 20:27:54 -0700</bug_when>
    <thetext>Comment on attachment 195676
patch - 5

View in context: https://bugs.webkit.org/attachment.cgi?id=195676&amp;action=review

&gt; Source/WTF/ChangeLog:38
&gt; +        Original code has nested classes that have enclosing class as their parent, illustrated below -
&gt; +          template class &lt;typename T&gt;
&gt; +          class HashMap {
&gt; +            ... ...
&gt; +            ... ...
&gt; +          private:
&gt; +            class HashMapKeysProxy;
&gt; +
&gt; +            // ERROR - nested class inherits enclosing class.
&gt; +            class HashMapKeysProxy : private HashMap {
&gt; +            };
&gt; +            ... ...
&gt; +            ... ...
&gt; +          };
&gt; +
&gt; +        Fixed as below:
&gt; +          template class &lt;typename T&gt;
&gt; +          class HashMap {
&gt; +            ... ...
&gt; +            ... ...
&gt; +          private:
&gt; +            class HashMapKeysProxy;
&gt; +
&gt; +            ... ...
&gt; +            ... ...
&gt; +          };
&gt; +
&gt; +          template &lt;typename T&gt;
&gt; +          class HashMap&lt;T&gt;::HashMapKeysProxy : private HashMap&lt;T&gt; {
&gt; +            ... ...
&gt; +          };

The patch is great but I am still not happy about the ChangeLog.

What you need is explain what, why and how.

Basically explain: the previous code does not build on GCC 4.8. The reason is HashMapKeysProxy and HashMapValuesProxy are defined as nested class inside HashMap, which is illegal (you can like to a spec if possible). The solution here is to move the said definitions outside of HashMap.

&gt; Source/WTF/wtf/HashMap.h:264
&gt; -        m_impl.swap(other.m_impl); 
&gt; +        m_impl.swap(other.m_impl);
&gt;      }
&gt;  
&gt;      template&lt;typename T, typename U, typename V, typename W, typename X&gt;
&gt;      inline int HashMap&lt;T, U, V, W, X&gt;::size() const
&gt;      {
&gt; -        return m_impl.size(); 
&gt; +        return m_impl.size();
&gt;      }
&gt;  
&gt;      template&lt;typename T, typename U, typename V, typename W, typename X&gt;
&gt;      inline int HashMap&lt;T, U, V, W, X&gt;::capacity() const
&gt; -    { 
&gt; -        return m_impl.capacity(); 
&gt; +    {
&gt; +        return m_impl.capacity();
&gt;      }

Better leave those unchanged, it is unrelated with your fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867201</commentid>
    <comment_count>13</comment_count>
      <attachid>195986</attachid>
    <who name="Han Shen">shenhan</who>
    <bug_when>2013-04-01 10:14:35 -0700</bug_when>
    <thetext>Created attachment 195986
patch - 6

Hi Benjamin, thanks!

ChangeLog refined and unrelated modification reverted.

Thanks,
-Han</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867222</commentid>
    <comment_count>14</comment_count>
      <attachid>195986</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-01 10:54:49 -0700</bug_when>
    <thetext>Comment on attachment 195986
patch - 6

Great. Thank you for all the updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867240</commentid>
    <comment_count>15</comment_count>
      <attachid>195986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-01 11:22:56 -0700</bug_when>
    <thetext>Comment on attachment 195986
patch - 6

Clearing flags on attachment: 195986

Committed r147345: &lt;http://trac.webkit.org/changeset/147345&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867241</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-01 11:23:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195425</attachid>
            <date>2013-03-27 16:07:11 -0700</date>
            <delta_ts>2013-03-27 16:35:43 -0700</delta_ts>
            <desc>The is a patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4955</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hh
c2hNYXAuaAppbmRleCBhNTFlZTg1Li4wMTk2NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9IYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC0xMzYsNzcgKzEz
Niw4MyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBwcml2YXRlOgogICAgICAgICBBZGRSZXN1bHQg
aW5saW5lQWRkKGNvbnN0IEtleVR5cGUmLCBNYXBwZWRQYXNzSW5SZWZlcmVuY2VUeXBlKTsKIAot
ICAgICAgICBjbGFzcyBIYXNoTWFwS2V5c1Byb3h5IDogcHJpdmF0ZSBIYXNoTWFwIHsKKyAgICAg
ICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnID0gdHlwZW5hbWUg
RGVmYXVsdEhhc2g8S2V5QXJnPjo6SGFzaCwKKyAgICAgICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJn
ID0gSGFzaFRyYWl0czxLZXlBcmc+LCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcgPSBIYXNoVHJh
aXRzPE1hcHBlZEFyZz4gPgorICAgIGNsYXNzIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhh
c2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6SGFzaE1hcEtleXNQcm94eSA6
IAorICAgICAgICBwcml2YXRlIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtl
eVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAg
ICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcDo6aXRlcmF0b3I6OktleXMgaXRlcmF0b3I7Ci0g
ICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA6OmNvbnN0X2l0ZXJhdG9yOjpLZXlz
IGNvbnN0X2l0ZXJhdG9yOwotICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVu
YW1lIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFw
cGVkVHJhaXRzQXJnPjo6aXRlcmF0b3I6OktleXMgaXRlcmF0b3I7CisgICAgICAgICAgICB0eXBl
ZGVmIHR5cGVuYW1lIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0
c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6Y29uc3RfaXRlcmF0b3I6OktleXMgY29uc3RfaXRlcmF0
b3I7CisKICAgICAgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6YmVnaW4oKS5rZXlzKCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnPjo6YmVnaW4oKS5rZXlzKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKKwogICAgICAgICAgICAgaXRlcmF0b3IgZW5kKCkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6ZW5kKCkua2V5cygpOworICAgICAgICAgICAg
ICAgIHJldHVybiBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNB
cmcsIE1hcHBlZFRyYWl0c0FyZz46OmVuZCgpLmtleXMoKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjpiZWdpbigpLmtleXMoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnLCBNYXBwZWRUcmFpdHNBcmc+OjpiZWdpbigpLmtleXMoKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIAorCiAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS5rZXlzKCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hB
cmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6ZW5kKCkua2V5cygpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBmcmllbmQgY2xhc3MgSGFz
aE1hcDsKKyAgICAgICAgICAgIGZyaWVuZCBjbGFzcyBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJn
LCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz47CiAKICAgICAgICAgICAg
IC8vIFRoZXNlIGFyZSBpbnRlbnRpb25hbGx5IG5vdCBpbXBsZW1lbnRlZC4KICAgICAgICAgICAg
IEhhc2hNYXBLZXlzUHJveHkoKTsKICAgICAgICAgICAgIEhhc2hNYXBLZXlzUHJveHkoY29uc3Qg
SGFzaE1hcEtleXNQcm94eSYpOwogICAgICAgICAgICAgSGFzaE1hcEtleXNQcm94eSYgb3BlcmF0
b3I9KGNvbnN0IEhhc2hNYXBLZXlzUHJveHkmKTsKICAgICAgICAgICAgIH5IYXNoTWFwS2V5c1By
b3h5KCk7Ci0gICAgICAgIH07CisgICAgfTsKIAotICAgICAgICBjbGFzcyBIYXNoTWFwVmFsdWVz
UHJveHkgOiBwcml2YXRlIEhhc2hNYXAgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywg
dHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnID0gdHlwZW5hbWUgRGVmYXVsdEhh
c2g8S2V5QXJnPjo6SGFzaCwKKyAgICAgICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnID0gSGFzaFRy
YWl0czxLZXlBcmc+LCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcgPSBIYXNoVHJhaXRzPE1hcHBl
ZEFyZz4gPgorICAgIGNsYXNzIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtl
eVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6SGFzaE1hcFZhbHVlc1Byb3h5IDogCisgICAg
ICAgIHByaXZhdGUgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnLCBNYXBwZWRUcmFpdHNBcmc+IHsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdHlw
ZWRlZiB0eXBlbmFtZSBIYXNoTWFwOjppdGVyYXRvcjo6VmFsdWVzIGl0ZXJhdG9yOwotICAgICAg
ICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwOjpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNv
bnN0X2l0ZXJhdG9yOwotICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1l
IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVk
VHJhaXRzQXJnPjo6aXRlcmF0b3I6OlZhbHVlcyBpdGVyYXRvcjsKKyAgICAgICAgICAgIHR5cGVk
ZWYgdHlwZW5hbWUgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRz
QXJnLCBNYXBwZWRUcmFpdHNBcmc+Ojpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNvbnN0X2l0ZXJh
dG9yOworCiAgICAgICAgICAgICBpdGVyYXRvciBiZWdpbigpCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA6OmJlZ2luKCkudmFsdWVzKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0
c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6YmVnaW4oKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpdGVyYXRvciBlbmQoKQogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS52YWx1ZXMoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5
VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjplbmQoKS52YWx1ZXMoKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjpiZWdpbigpLnZhbHVlcygpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJn
LCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OmJlZ2luKCkudmFsdWVzKCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgp
IGNvbnN0CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA6OmVu
ZCgpLnZhbHVlcygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OmVuZCgpLnZh
bHVlcygpOwogICAgICAgICAgICAgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBm
cmllbmQgY2xhc3MgSGFzaE1hcDsKKyAgICAgICAgICAgIGZyaWVuZCBjbGFzcyBIYXNoTWFwPEtl
eUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz47
CiAKICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBpbnRlbnRpb25hbGx5IG5vdCBpbXBsZW1lbnRl
ZC4KICAgICAgICAgICAgIEhhc2hNYXBWYWx1ZXNQcm94eSgpOwogICAgICAgICAgICAgSGFzaE1h
cFZhbHVlc1Byb3h5KGNvbnN0IEhhc2hNYXBWYWx1ZXNQcm94eSYpOwogICAgICAgICAgICAgSGFz
aE1hcFZhbHVlc1Byb3h5JiBvcGVyYXRvcj0oY29uc3QgSGFzaE1hcFZhbHVlc1Byb3h5Jik7CiAg
ICAgICAgICAgICB+SGFzaE1hcFZhbHVlc1Byb3h5KCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAg
SGFzaFRhYmxlVHlwZSBtX2ltcGw7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtl
eVRyYWl0cywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzPiBzdHJ1Y3QgSGFzaE1hcFZhbHVlVHJhaXRz
IDogS2V5VmFsdWVQYWlySGFzaFRyYWl0czxLZXlUcmFpdHMsIE1hcHBlZFRyYWl0cz4gewo=
</data>
<flag name="review"
          id="217317"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195431</attachid>
            <date>2013-03-27 16:35:43 -0700</date>
            <delta_ts>2013-03-28 10:23:35 -0700</delta_ts>
            <desc>Patch again</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5450</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxZTA1OThhLi42MmI3NjJh
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAor
MjAxMy0wMy0yNyAgSGFuIFNoZW4gIDxzaGVuaGFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92
ZSB0aGUgZGVmaW5pdGlvbiBvZiBuZXN0ZWQgY2xhc3MgdGhhdCBpbmhlcml0cyBlbmNsb3Npbmcg
Y2xhc3Mgb3V0c2lkZSBjbGFzcyBkZWZpbml0aW9uLgorCisgICAgICAgICogU291cmNlL1dURi93
dGYvSGFzaE1hcC5oOiBNb3ZlIG91dHNpZGUgbmVzdGVkIGNsYXNzIGRlZmluaXRpb24gZnJvbSBl
bmNsb3NpbmcgY2xhc3MuCisKIDIwMTMtMDMtMjUgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgRG9uJ3QgYWxsb3cgZHJhZ3MgdG8gc3RhcnQgYWZ0ZXIgYSBt
b3VzZSBwcmVzcyB0aGF0IGNyZWF0ZXMgYSBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCBhNTFl
ZTg1Li4wMTk2NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKKysrIGIv
U291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC0xMzYsNzcgKzEzNiw4MyBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICBwcml2YXRlOgogICAgICAgICBBZGRSZXN1bHQgaW5saW5lQWRkKGNvbnN0IEtl
eVR5cGUmLCBNYXBwZWRQYXNzSW5SZWZlcmVuY2VUeXBlKTsKIAotICAgICAgICBjbGFzcyBIYXNo
TWFwS2V5c1Byb3h5IDogcHJpdmF0ZSBIYXNoTWFwIHsKKyAgICAgICAgSGFzaFRhYmxlVHlwZSBt
X2ltcGw7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUg
TWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNoQXJnID0gdHlwZW5hbWUgRGVmYXVsdEhhc2g8S2V5QXJn
Pjo6SGFzaCwKKyAgICAgICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnID0gSGFzaFRyYWl0czxLZXlB
cmc+LCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmcgPSBIYXNoVHJhaXRzPE1hcHBlZEFyZz4gPgor
ICAgIGNsYXNzIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnPjo6SGFzaE1hcEtleXNQcm94eSA6IAorICAgICAgICBwcml2YXRl
IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVk
VHJhaXRzQXJnPiB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaE1hcDo6aXRlcmF0b3I6OktleXMgaXRlcmF0b3I7Ci0gICAgICAgICAgICB0eXBlZGVm
IHR5cGVuYW1lIEhhc2hNYXA6OmNvbnN0X2l0ZXJhdG9yOjpLZXlzIGNvbnN0X2l0ZXJhdG9yOwot
ICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA8S2V5QXJn
LCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6aXRl
cmF0b3I6OktleXMgaXRlcmF0b3I7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hN
YXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRz
QXJnPjo6Y29uc3RfaXRlcmF0b3I6OktleXMgY29uc3RfaXRlcmF0b3I7CisKICAgICAgICAgICAg
IGl0ZXJhdG9yIGJlZ2luKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
SGFzaE1hcDo6YmVnaW4oKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA8
S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJn
Pjo6YmVnaW4oKS5rZXlzKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAgICAg
ICAgICAgaXRlcmF0b3IgZW5kKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1
cm4gSGFzaE1hcDo6ZW5kKCkua2V5cygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFw
PEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0Fy
Zz46OmVuZCgpLmtleXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3RfaXRl
cmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVy
biBIYXNoTWFwOjpiZWdpbigpLmtleXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1h
cDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNB
cmc+OjpiZWdpbigpLmtleXMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAogICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS5rZXlzKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywg
TWFwcGVkVHJhaXRzQXJnPjo6ZW5kKCkua2V5cygpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
IHByaXZhdGU6Ci0gICAgICAgICAgICBmcmllbmQgY2xhc3MgSGFzaE1hcDsKKyAgICAgICAgICAg
IGZyaWVuZCBjbGFzcyBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmcsIE1hcHBlZFRyYWl0c0FyZz47CiAKICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBpbnRl
bnRpb25hbGx5IG5vdCBpbXBsZW1lbnRlZC4KICAgICAgICAgICAgIEhhc2hNYXBLZXlzUHJveHko
KTsKICAgICAgICAgICAgIEhhc2hNYXBLZXlzUHJveHkoY29uc3QgSGFzaE1hcEtleXNQcm94eSYp
OwogICAgICAgICAgICAgSGFzaE1hcEtleXNQcm94eSYgb3BlcmF0b3I9KGNvbnN0IEhhc2hNYXBL
ZXlzUHJveHkmKTsKICAgICAgICAgICAgIH5IYXNoTWFwS2V5c1Byb3h5KCk7Ci0gICAgICAgIH07
CisgICAgfTsKIAotICAgICAgICBjbGFzcyBIYXNoTWFwVmFsdWVzUHJveHkgOiBwcml2YXRlIEhh
c2hNYXAgeworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJn
LCB0eXBlbmFtZSBIYXNoQXJnID0gdHlwZW5hbWUgRGVmYXVsdEhhc2g8S2V5QXJnPjo6SGFzaCwK
KyAgICAgICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnID0gSGFzaFRyYWl0czxLZXlBcmc+LCB0eXBl
bmFtZSBNYXBwZWRUcmFpdHNBcmcgPSBIYXNoVHJhaXRzPE1hcHBlZEFyZz4gPgorICAgIGNsYXNz
IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVk
VHJhaXRzQXJnPjo6SGFzaE1hcFZhbHVlc1Byb3h5IDogCisgICAgICAgIHByaXZhdGUgSGFzaE1h
cDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNB
cmc+IHsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNo
TWFwOjppdGVyYXRvcjo6VmFsdWVzIGl0ZXJhdG9yOwotICAgICAgICAgICAgdHlwZWRlZiB0eXBl
bmFtZSBIYXNoTWFwOjpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNvbnN0X2l0ZXJhdG9yOwotICAg
ICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA8S2V5QXJnLCBN
YXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6aXRlcmF0
b3I6OlZhbHVlcyBpdGVyYXRvcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1h
cDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNB
cmc+Ojpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNvbnN0X2l0ZXJhdG9yOworCiAgICAgICAgICAg
ICBpdGVyYXRvciBiZWdpbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEhhc2hNYXA6OmJlZ2luKCkudmFsdWVzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hN
YXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRz
QXJnPjo6YmVnaW4oKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICBpdGVyYXRvciBlbmQoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHJldHVybiBIYXNoTWFwOjplbmQoKS52YWx1ZXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRU
cmFpdHNBcmc+OjplbmQoKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
Y29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiBIYXNoTWFwOjpiZWdpbigpLnZhbHVlcygpOworICAgICAgICAgICAgICAgIHJl
dHVybiBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1h
cHBlZFRyYWl0c0FyZz46OmJlZ2luKCkudmFsdWVzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0CiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA6OmVuZCgpLnZhbHVlcygpOworICAg
ICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBL
ZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz46OmVuZCgpLnZhbHVlcygpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBmcmllbmQgY2xhc3MgSGFzaE1h
cDsKKyAgICAgICAgICAgIGZyaWVuZCBjbGFzcyBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBI
YXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz47CiAKICAgICAgICAgICAgIC8v
IFRoZXNlIGFyZSBpbnRlbnRpb25hbGx5IG5vdCBpbXBsZW1lbnRlZC4KICAgICAgICAgICAgIEhh
c2hNYXBWYWx1ZXNQcm94eSgpOwogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5KGNvbnN0
IEhhc2hNYXBWYWx1ZXNQcm94eSYpOwogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5JiBv
cGVyYXRvcj0oY29uc3QgSGFzaE1hcFZhbHVlc1Byb3h5Jik7CiAgICAgICAgICAgICB+SGFzaE1h
cFZhbHVlc1Byb3h5KCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgSGFzaFRhYmxlVHlwZSBtX2lt
cGw7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleVRyYWl0cywgdHlwZW5hbWUg
TWFwcGVkVHJhaXRzPiBzdHJ1Y3QgSGFzaE1hcFZhbHVlVHJhaXRzIDogS2V5VmFsdWVQYWlySGFz
aFRyYWl0czxLZXlUcmFpdHMsIE1hcHBlZFRyYWl0cz4gewo=
</data>
<flag name="review"
          id="217324"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195591</attachid>
            <date>2013-03-28 10:23:35 -0700</date>
            <delta_ts>2013-03-28 16:06:17 -0700</delta_ts>
            <desc>Patch - 3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4712</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOTk0ZmJiZi4uNjgxYWM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0yOCAg
SGFuIFNoZW4gIDxzaGVuaGFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBkZWZpbml0aW9u
IG9mIG5lc3RlZCBjbGFzc2VzIHRoYXQgaW5oZXJpdCBlbmNsb3NpbmcgY2xhc3Mgb3V0c2lkZSBj
bGFzcyBkZWZpbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEzNDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvSGFzaE1hcC5oOgorICAgICAgICAoSGFzaE1hcCk6CisgICAgICAgIChX
VEYpOgorCiAyMDEzLTAzLTI1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgV1RGOjpiaW5hcnlTZWFyY2hJbXBsKCkgc2hvdWxkIGNvbXBpbGUgd2l0aCAtV3No
b3J0ZW4tNjQtdG8tMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCBhNTFlZTg1Li5mNzlmNTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5o
CkBAIC0xMzYsMjkgKzEzNiwzNiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBwcml2YXRlOgogICAg
ICAgICBBZGRSZXN1bHQgaW5saW5lQWRkKGNvbnN0IEtleVR5cGUmLCBNYXBwZWRQYXNzSW5SZWZl
cmVuY2VUeXBlKTsKIAotICAgICAgICBjbGFzcyBIYXNoTWFwS2V5c1Byb3h5IDogcHJpdmF0ZSBI
YXNoTWFwIHsKKyAgICAgICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CisgICAgfTsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNo
QXJnID0gdHlwZW5hbWUgRGVmYXVsdEhhc2g8S2V5QXJnPjo6SGFzaCwKKyAgICAgICAgdHlwZW5h
bWUgS2V5VHJhaXRzQXJnID0gSGFzaFRyYWl0czxLZXlBcmc+LCB0eXBlbmFtZSBNYXBwZWRUcmFp
dHNBcmcgPSBIYXNoVHJhaXRzPE1hcHBlZEFyZz4gPgorICAgIGNsYXNzIEhhc2hNYXA8S2V5QXJn
LCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPjo6SGFz
aE1hcEtleXNQcm94eSA6IAorICAgICAgICBwcml2YXRlIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRB
cmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiB7CiAgICAgICAgIHB1
YmxpYzoKLSAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcDo6aXRlcmF0b3I6Oktl
eXMgaXRlcmF0b3I7Ci0gICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA6OmNvbnN0
X2l0ZXJhdG9yOjpLZXlzIGNvbnN0X2l0ZXJhdG9yOwotICAgICAgICAgICAgCisgICAgICAgICAg
ICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnPiBIYXNoTWFwSW5zdDsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlw
ZW5hbWUgSGFzaE1hcEluc3Q6Oml0ZXJhdG9yOjpLZXlzIGl0ZXJhdG9yOworICAgICAgICAgICAg
dHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwSW5zdDo6Y29uc3RfaXRlcmF0b3I6OktleXMgY29uc3Rf
aXRlcmF0b3I7CisKICAgICAgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6YmVnaW4oKS5rZXlzKCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjpiZWdpbigpLmtleXMoKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpdGVyYXRvciBlbmQoKQogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS5rZXlzKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjplbmQoKS5rZXlzKCk7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6YmVnaW4oKS5rZXlzKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjpiZWdpbigpLmtleXMoKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBlbmQo
KSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjpl
bmQoKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjplbmQoKS5r
ZXlzKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgcHJpdmF0ZToKQEAgLTE2OSwzMSArMTc2
LDM1IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgSGFzaE1hcEtleXNQcm94eShjb25z
dCBIYXNoTWFwS2V5c1Byb3h5Jik7CiAgICAgICAgICAgICBIYXNoTWFwS2V5c1Byb3h5JiBvcGVy
YXRvcj0oY29uc3QgSGFzaE1hcEtleXNQcm94eSYpOwogICAgICAgICAgICAgfkhhc2hNYXBLZXlz
UHJveHkoKTsKLSAgICAgICAgfTsKKyAgICB9OwogCi0gICAgICAgIGNsYXNzIEhhc2hNYXBWYWx1
ZXNQcm94eSA6IHByaXZhdGUgSGFzaE1hcCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJn
LCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcgPSB0eXBlbmFtZSBEZWZhdWx0
SGFzaDxLZXlBcmc+OjpIYXNoLAorICAgICAgICB0eXBlbmFtZSBLZXlUcmFpdHNBcmcgPSBIYXNo
VHJhaXRzPEtleUFyZz4sIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZyA9IEhhc2hUcmFpdHM8TWFw
cGVkQXJnPiA+CisgICAgY2xhc3MgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywg
S2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+OjpIYXNoTWFwVmFsdWVzUHJveHkgOiAKKyAg
ICAgICAgcHJpdmF0ZSBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFp
dHNBcmcsIE1hcHBlZFRyYWl0c0FyZz4gewogICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICB0
eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA6Oml0ZXJhdG9yOjpWYWx1ZXMgaXRlcmF0b3I7Ci0gICAg
ICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXA6OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMg
Y29uc3RfaXRlcmF0b3I7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNB
cmc+IEhhc2hNYXBJbnN0OworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwSW5z
dDo6aXRlcmF0b3I6OlZhbHVlcyBpdGVyYXRvcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaE1hcEluc3Q6OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMgY29uc3RfaXRlcmF0b3I7CisK
ICAgICAgICAgICAgIGl0ZXJhdG9yIGJlZ2luKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gSGFzaE1hcDo6YmVnaW4oKS52YWx1ZXMoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSGFzaE1hcEluc3Q6OmJlZ2luKCkudmFsdWVzKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKKwogICAgICAgICAgICAgaXRlcmF0b3IgZW5kKCkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6ZW5kKCkudmFsdWVzKCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjplbmQoKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjpiZWdpbigpLnZhbHVlcygpOworICAg
ICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwSW5zdDo6YmVnaW4oKS52YWx1ZXMoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkg
Y29uc3QKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6ZW5k
KCkudmFsdWVzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBJbnN0OjplbmQoKS52
YWx1ZXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlOgpAQCAtMjA0LDkgKzIx
NSw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5KGNv
bnN0IEhhc2hNYXBWYWx1ZXNQcm94eSYpOwogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5
JiBvcGVyYXRvcj0oY29uc3QgSGFzaE1hcFZhbHVlc1Byb3h5Jik7CiAgICAgICAgICAgICB+SGFz
aE1hcFZhbHVlc1Byb3h5KCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgSGFzaFRhYmxlVHlwZSBt
X2ltcGw7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleVRyYWl0cywgdHlwZW5h
bWUgTWFwcGVkVHJhaXRzPiBzdHJ1Y3QgSGFzaE1hcFZhbHVlVHJhaXRzIDogS2V5VmFsdWVQYWly
SGFzaFRyYWl0czxLZXlUcmFpdHMsIE1hcHBlZFRyYWl0cz4gewo=
</data>
<flag name="review"
          id="217501"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="217517"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195666</attachid>
            <date>2013-03-28 16:06:17 -0700</date>
            <delta_ts>2013-03-28 16:32:27 -0700</delta_ts>
            <desc>patch - 4</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>5440</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOTk0ZmJiZi4uMjI1NTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wMy0yOCAg
SGFuIFNoZW4gIDxzaGVuaGFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBkZWZpbml0aW9u
IG9mIG5lc3RlZCBjbGFzc2VzIHRoYXQgaW5oZXJpdCBlbmNsb3NpbmcgY2xhc3Mgb3V0c2lkZSBj
bGFzcyBkZWZpbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEzNDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgT3JpZ2luYWwgY29kZSBoYXMgbmVzdGVkIGNsYXNzZXMgdGhhdCBoYXZlIGVuY2xv
c2luZyBjbGFzcyBhcyB0aGVpciBwYXJlbnQsIGlsbHVzdHJhdGVkIGJlbG93IC0KKyAgICAgICAg
ICB0ZW1wbGF0ZSBjbGFzcyA8dHlwZW5hbWUgVD4KKyAgICAgICAgICBjbGFzcyBIYXNoTWFwIHsK
KyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICBwcml2
YXRlOgorICAgICAgICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eTsKKworICAgICAgICAgICAg
Ly8gRVJST1IgLSBuZXN0ZWQgY2xhc3MgaW5oZXJpdHMgZW5jbG9zaW5nIGNsYXNzLgorICAgICAg
ICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eSA6IHByaXZhdGUgSGFzaE1hcCB7CisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgICAgLi4uIC4uLgorICAgICAg
ICAgIH07CisKKyAgICAgICAgRml4ZWQgYXMgYmVsb3c6CisgICAgICAgICAgdGVtcGxhdGUgY2xh
c3MgPHR5cGVuYW1lIFQ+CisgICAgICAgICAgY2xhc3MgSGFzaE1hcCB7CisgICAgICAgICAgICAu
Li4gLi4uCisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAgcHJpdmF0ZToKKyAgICAgICAg
ICAgIGNsYXNzIEhhc2hNYXBLZXlzUHJveHk7CisKKyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAg
ICAgICAgIC4uLiAuLi4KKyAgICAgICAgICB9OworCisgICAgICAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CisgICAgICAgICAgY2xhc3MgSGFzaE1hcDxUPjo6SGFzaE1hcEtleXNQcm94eSA6IHBy
aXZhdGUgSGFzaE1hcDxUPiB7CisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAgfTsKKwor
CisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKEhhc2hNYXApOgorICAgICAgICAo
V1RGKTogRmFjdG9yIG91dCBuZXN0ZWQgY2xhc3MgZGVmaW5pdGlvbiBmcm9tIGVuY2xvc2luZyBj
bGFzcy4KKwogMjAxMy0wMy0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdURjo6YmluYXJ5U2VhcmNoSW1wbCgpIHNob3VsZCBjb21waWxlIHdpdGggLVdz
aG9ydGVuLTY0LXRvLTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmggYi9T
b3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKaW5kZXggYTUxZWU4NS4uOTdjYmE5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAu
aApAQCAtMTM2LDI5ICsxMzYsMzUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgcHJpdmF0ZToKICAg
ICAgICAgQWRkUmVzdWx0IGlubGluZUFkZChjb25zdCBLZXlUeXBlJiwgTWFwcGVkUGFzc0luUmVm
ZXJlbmNlVHlwZSk7CiAKLSAgICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eSA6IHByaXZhdGUg
SGFzaE1hcCB7CisgICAgICAgIEhhc2hUYWJsZVR5cGUgbV9pbXBsOworICAgIH07CisKKyAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPgorICAg
IGNsYXNzIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywg
TWFwcGVkVHJhaXRzQXJnPjo6SGFzaE1hcEtleXNQcm94eSA6IAorICAgICAgICBwcml2YXRlIEhh
c2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJh
aXRzQXJnPiB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUg
SGFzaE1hcDo6aXRlcmF0b3I6OktleXMgaXRlcmF0b3I7Ci0gICAgICAgICAgICB0eXBlZGVmIHR5
cGVuYW1lIEhhc2hNYXA6OmNvbnN0X2l0ZXJhdG9yOjpLZXlzIGNvbnN0X2l0ZXJhdG9yOwotICAg
ICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcs
IEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiBIYXNoTWFwVHlwZTsKKyAg
ICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5cGU6Oml0ZXJhdG9yOjpLZXlzIGl0
ZXJhdG9yOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwVHlwZTo6Y29uc3Rf
aXRlcmF0b3I6OktleXMgY29uc3RfaXRlcmF0b3I7CisKICAgICAgICAgICAgIGl0ZXJhdG9yIGJl
Z2luKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6YmVn
aW4oKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBUeXBlOjpiZWdpbigp
LmtleXMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpdGVy
YXRvciBlbmQoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFw
OjplbmQoKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBUeXBlOjplbmQo
KS5rZXlzKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJl
Z2luKCkgY29uc3QKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1h
cDo6YmVnaW4oKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBUeXBlOjpi
ZWdpbigpLmtleXMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS5rZXlzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEhhc2hNYXBUeXBlOjplbmQoKS5rZXlzKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgcHJp
dmF0ZToKQEAgLTE2OSwzMSArMTc1LDM0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAg
SGFzaE1hcEtleXNQcm94eShjb25zdCBIYXNoTWFwS2V5c1Byb3h5Jik7CiAgICAgICAgICAgICBI
YXNoTWFwS2V5c1Byb3h5JiBvcGVyYXRvcj0oY29uc3QgSGFzaE1hcEtleXNQcm94eSYpOwogICAg
ICAgICAgICAgfkhhc2hNYXBLZXlzUHJveHkoKTsKLSAgICAgICAgfTsKKyAgICB9OwogCi0gICAg
ICAgIGNsYXNzIEhhc2hNYXBWYWx1ZXNQcm94eSA6IHByaXZhdGUgSGFzaE1hcCB7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hB
cmcsICB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KKyAg
ICBjbGFzcyBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcs
IE1hcHBlZFRyYWl0c0FyZz46Okhhc2hNYXBWYWx1ZXNQcm94eSA6IAorICAgICAgICBwcml2YXRl
IEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVk
VHJhaXRzQXJnPiB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaE1hcDo6aXRlcmF0b3I6OlZhbHVlcyBpdGVyYXRvcjsKLSAgICAgICAgICAgIHR5cGVk
ZWYgdHlwZW5hbWUgSGFzaE1hcDo6Y29uc3RfaXRlcmF0b3I6OlZhbHVlcyBjb25zdF9pdGVyYXRv
cjsKLSAgICAgICAgICAgIAorICAgICAgICAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgTWFw
cGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz4gSGFzaE1hcFR5
cGU7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXBUeXBlOjppdGVyYXRvcjo6
VmFsdWVzIGl0ZXJhdG9yOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwVHlw
ZTo6Y29uc3RfaXRlcmF0b3I6OlZhbHVlcyBjb25zdF9pdGVyYXRvcjsKKwogICAgICAgICAgICAg
aXRlcmF0b3IgYmVnaW4oKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBI
YXNoTWFwOjpiZWdpbigpLnZhbHVlcygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFw
VHlwZTo6YmVnaW4oKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICBpdGVyYXRvciBlbmQoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHJldHVybiBIYXNoTWFwOjplbmQoKS52YWx1ZXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
SGFzaE1hcFR5cGU6OmVuZCgpLnZhbHVlcygpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0CiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEhhc2hNYXA6OmJlZ2luKCkudmFsdWVzKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEhhc2hNYXBUeXBlOjpiZWdpbigpLnZhbHVlcygpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS52YWx1ZXMoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcFR5cGU6OmVuZCgpLnZhbHVlcygpOwogICAg
ICAgICAgICAgfQogCiAgICAgICAgIHByaXZhdGU6CkBAIC0yMDQsOSArMjEzLDYgQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgICAgICAgICBIYXNoTWFwVmFsdWVzUHJveHkoY29uc3QgSGFzaE1hcFZh
bHVlc1Byb3h5Jik7CiAgICAgICAgICAgICBIYXNoTWFwVmFsdWVzUHJveHkmIG9wZXJhdG9yPShj
b25zdCBIYXNoTWFwVmFsdWVzUHJveHkmKTsKICAgICAgICAgICAgIH5IYXNoTWFwVmFsdWVzUHJv
eHkoKTsKLSAgICAgICAgfTsKLQotICAgICAgICBIYXNoVGFibGVUeXBlIG1faW1wbDsKICAgICB9
OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHJhaXRzLCB0eXBlbmFtZSBNYXBwZWRUcmFp
dHM+IHN0cnVjdCBIYXNoTWFwVmFsdWVUcmFpdHMgOiBLZXlWYWx1ZVBhaXJIYXNoVHJhaXRzPEtl
eVRyYWl0cywgTWFwcGVkVHJhaXRzPiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195676</attachid>
            <date>2013-03-28 16:32:27 -0700</date>
            <delta_ts>2013-04-01 10:14:35 -0700</delta_ts>
            <desc>patch - 5</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6667</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOTk0ZmJiZi4uMjI1NTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMy0wMy0yOCAg
SGFuIFNoZW4gIDxzaGVuaGFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBkZWZpbml0aW9u
IG9mIG5lc3RlZCBjbGFzc2VzIHRoYXQgaW5oZXJpdCBlbmNsb3NpbmcgY2xhc3Mgb3V0c2lkZSBj
bGFzcyBkZWZpbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEzNDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgT3JpZ2luYWwgY29kZSBoYXMgbmVzdGVkIGNsYXNzZXMgdGhhdCBoYXZlIGVuY2xv
c2luZyBjbGFzcyBhcyB0aGVpciBwYXJlbnQsIGlsbHVzdHJhdGVkIGJlbG93IC0KKyAgICAgICAg
ICB0ZW1wbGF0ZSBjbGFzcyA8dHlwZW5hbWUgVD4KKyAgICAgICAgICBjbGFzcyBIYXNoTWFwIHsK
KyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICBwcml2
YXRlOgorICAgICAgICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eTsKKworICAgICAgICAgICAg
Ly8gRVJST1IgLSBuZXN0ZWQgY2xhc3MgaW5oZXJpdHMgZW5jbG9zaW5nIGNsYXNzLgorICAgICAg
ICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eSA6IHByaXZhdGUgSGFzaE1hcCB7CisgICAgICAg
ICAgICB9OworICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgICAgLi4uIC4uLgorICAgICAg
ICAgIH07CisKKyAgICAgICAgRml4ZWQgYXMgYmVsb3c6CisgICAgICAgICAgdGVtcGxhdGUgY2xh
c3MgPHR5cGVuYW1lIFQ+CisgICAgICAgICAgY2xhc3MgSGFzaE1hcCB7CisgICAgICAgICAgICAu
Li4gLi4uCisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAgcHJpdmF0ZToKKyAgICAgICAg
ICAgIGNsYXNzIEhhc2hNYXBLZXlzUHJveHk7CisKKyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAg
ICAgICAgIC4uLiAuLi4KKyAgICAgICAgICB9OworCisgICAgICAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CisgICAgICAgICAgY2xhc3MgSGFzaE1hcDxUPjo6SGFzaE1hcEtleXNQcm94eSA6IHBy
aXZhdGUgSGFzaE1hcDxUPiB7CisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAgfTsKKwor
CisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKEhhc2hNYXApOgorICAgICAgICAo
V1RGKTogRmFjdG9yIG91dCBuZXN0ZWQgY2xhc3MgZGVmaW5pdGlvbiBmcm9tIGVuY2xvc2luZyBj
bGFzcy4KKwogMjAxMy0wMy0yNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdURjo6YmluYXJ5U2VhcmNoSW1wbCgpIHNob3VsZCBjb21waWxlIHdpdGggLVdz
aG9ydGVuLTY0LXRvLTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmggYi9T
b3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKaW5kZXggYTUxZWU4NS4uNjI1NzMwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAu
aApAQCAtMTM2LDI5ICsxMzYsMzUgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgcHJpdmF0ZToKICAg
ICAgICAgQWRkUmVzdWx0IGlubGluZUFkZChjb25zdCBLZXlUeXBlJiwgTWFwcGVkUGFzc0luUmVm
ZXJlbmNlVHlwZSk7CiAKLSAgICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eSA6IHByaXZhdGUg
SGFzaE1hcCB7CisgICAgICAgIEhhc2hUYWJsZVR5cGUgbV9pbXBsOworICAgIH07CisKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFz
aEFyZywgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+Cisg
ICAgY2xhc3MgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJn
LCBNYXBwZWRUcmFpdHNBcmc+OjpIYXNoTWFwS2V5c1Byb3h5IDogCisgICAgICAgIHByaXZhdGUg
SGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRU
cmFpdHNBcmc+IHsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFt
ZSBIYXNoTWFwOjppdGVyYXRvcjo6S2V5cyBpdGVyYXRvcjsKLSAgICAgICAgICAgIHR5cGVkZWYg
dHlwZW5hbWUgSGFzaE1hcDo6Y29uc3RfaXRlcmF0b3I6OktleXMgY29uc3RfaXRlcmF0b3I7Ci0g
ICAgICAgICAgICAKKyAgICAgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFy
ZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+IEhhc2hNYXBUeXBlOwor
ICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwVHlwZTo6aXRlcmF0b3I6OktleXMg
aXRlcmF0b3I7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXBUeXBlOjpjb25z
dF9pdGVyYXRvcjo6S2V5cyBjb25zdF9pdGVyYXRvcjsKKwogICAgICAgICAgICAgaXRlcmF0b3Ig
YmVnaW4oKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjpi
ZWdpbigpLmtleXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcFR5cGU6OmJlZ2lu
KCkua2V5cygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGl0
ZXJhdG9yIGVuZCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hN
YXA6OmVuZCgpLmtleXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcFR5cGU6OmVu
ZCgpLmtleXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY29uc3RfaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNo
TWFwOjpiZWdpbigpLmtleXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcFR5cGU6
OmJlZ2luKCkua2V5cygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCisKICAgICAgICAg
ICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0CiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEhhc2hNYXA6OmVuZCgpLmtleXMoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gSGFzaE1hcFR5cGU6OmVuZCgpLmtleXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICBw
cml2YXRlOgpAQCAtMTY5LDMxICsxNzUsMzQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAg
ICBIYXNoTWFwS2V5c1Byb3h5KGNvbnN0IEhhc2hNYXBLZXlzUHJveHkmKTsKICAgICAgICAgICAg
IEhhc2hNYXBLZXlzUHJveHkmIG9wZXJhdG9yPShjb25zdCBIYXNoTWFwS2V5c1Byb3h5Jik7CiAg
ICAgICAgICAgICB+SGFzaE1hcEtleXNQcm94eSgpOwotICAgICAgICB9OworICAgIH07CiAKLSAg
ICAgICAgY2xhc3MgSGFzaE1hcFZhbHVlc1Byb3h5IDogcHJpdmF0ZSBIYXNoTWFwIHsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUgSGFz
aEFyZywgIHR5cGVuYW1lIEtleVRyYWl0c0FyZywgdHlwZW5hbWUgTWFwcGVkVHJhaXRzQXJnPgor
ICAgIGNsYXNzIEhhc2hNYXA8S2V5QXJnLCBNYXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0Fy
ZywgTWFwcGVkVHJhaXRzQXJnPjo6SGFzaE1hcFZhbHVlc1Byb3h5IDogCisgICAgICAgIHByaXZh
dGUgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBw
ZWRUcmFpdHNBcmc+IHsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgdHlwZWRlZiB0eXBl
bmFtZSBIYXNoTWFwOjppdGVyYXRvcjo6VmFsdWVzIGl0ZXJhdG9yOwotICAgICAgICAgICAgdHlw
ZWRlZiB0eXBlbmFtZSBIYXNoTWFwOjpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNvbnN0X2l0ZXJh
dG9yOwotICAgICAgICAgICAgCisgICAgICAgICAgICB0eXBlZGVmIEhhc2hNYXA8S2V5QXJnLCBN
YXBwZWRBcmcsIEhhc2hBcmcsIEtleVRyYWl0c0FyZywgTWFwcGVkVHJhaXRzQXJnPiBIYXNoTWFw
VHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5cGU6Oml0ZXJhdG9y
OjpWYWx1ZXMgaXRlcmF0b3I7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXBU
eXBlOjpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGNvbnN0X2l0ZXJhdG9yOworCiAgICAgICAgICAg
ICBpdGVyYXRvciBiZWdpbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEhhc2hNYXA6OmJlZ2luKCkudmFsdWVzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hN
YXBUeXBlOjpiZWdpbigpLnZhbHVlcygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCisK
ICAgICAgICAgICAgIGl0ZXJhdG9yIGVuZCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEhhc2hNYXA6OmVuZCgpLnZhbHVlcygpOworICAgICAgICAgICAgICAgIHJldHVy
biBIYXNoTWFwVHlwZTo6ZW5kKCkudmFsdWVzKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gSGFzaE1hcDo6YmVnaW4oKS52YWx1ZXMoKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gSGFzaE1hcFR5cGU6OmJlZ2luKCkudmFsdWVzKCk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKKwogICAgICAgICAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcDo6ZW5kKCkudmFsdWVz
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXBUeXBlOjplbmQoKS52YWx1ZXMoKTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlOgpAQCAtMjA0LDkgKzIxMyw2IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5KGNvbnN0IEhhc2hN
YXBWYWx1ZXNQcm94eSYpOwogICAgICAgICAgICAgSGFzaE1hcFZhbHVlc1Byb3h5JiBvcGVyYXRv
cj0oY29uc3QgSGFzaE1hcFZhbHVlc1Byb3h5Jik7CiAgICAgICAgICAgICB+SGFzaE1hcFZhbHVl
c1Byb3h5KCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CiAg
ICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEtleVRyYWl0cywgdHlwZW5hbWUgTWFwcGVk
VHJhaXRzPiBzdHJ1Y3QgSGFzaE1hcFZhbHVlVHJhaXRzIDogS2V5VmFsdWVQYWlySGFzaFRyYWl0
czxLZXlUcmFpdHMsIE1hcHBlZFRyYWl0cz4gewpAQCAtMjQyLDE5ICsyNDgsMTkgQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KICAgICBpbmxpbmUgdm9pZCBIYXNoTWFwPFQsIFUs
IFYsIFcsIFg+Ojpzd2FwKEhhc2hNYXAmIG90aGVyKQogICAgIHsKLSAgICAgICAgbV9pbXBsLnN3
YXAob3RoZXIubV9pbXBsKTsgCisgICAgICAgIG1faW1wbC5zd2FwKG90aGVyLm1faW1wbCk7CiAg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwg
dHlwZW5hbWUgVywgdHlwZW5hbWUgWD4KICAgICBpbmxpbmUgaW50IEhhc2hNYXA8VCwgVSwgViwg
VywgWD46OnNpemUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1faW1wbC5zaXplKCk7
IAorICAgICAgICByZXR1cm4gbV9pbXBsLnNpemUoKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBXLCB0eXBlbmFtZSBY
PgogICAgIGlubGluZSBpbnQgSGFzaE1hcDxULCBVLCBWLCBXLCBYPjo6Y2FwYWNpdHkoKSBjb25z
dAotICAgIHsgCi0gICAgICAgIHJldHVybiBtX2ltcGwuY2FwYWNpdHkoKTsgCisgICAgeworICAg
ICAgICByZXR1cm4gbV9pbXBsLmNhcGFjaXR5KCk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgVywgdHlwZW5hbWUgWD4K
QEAgLTMxNSw3ICszMjEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVFlQRSwgdHlwZW5hbWUgSGFzaFRyYW5zbGF0b3I+Ci0gICAg
aW5saW5lIHR5cGVuYW1lIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmNvbnN0X2l0ZXJhdG9yIAor
ICAgIGlubGluZSB0eXBlbmFtZSBIYXNoTWFwPFQsIFUsIFYsIFcsIFg+Ojpjb25zdF9pdGVyYXRv
cgogICAgIEhhc2hNYXA8VCwgVSwgViwgVywgWD46OmZpbmQoY29uc3QgVFlQRSYgdmFsdWUpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9pbXBsLnRlbXBsYXRlIGZpbmQ8SGFzaE1hcFRy
YW5zbGF0b3JBZGFwdGVyPFZhbHVlVHJhaXRzLCBIYXNoVHJhbnNsYXRvcj4gPih2YWx1ZSk7Cg==
</data>
<flag name="review"
          id="217605"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="217619"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195986</attachid>
            <date>2013-04-01 10:14:35 -0700</date>
            <delta_ts>2013-04-01 11:22:56 -0700</delta_ts>
            <desc>patch - 6</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>6184</size>
            <attacher name="Han Shen">shenhan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggOTk0ZmJiZi4uZjM3MTA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAxMy0wMy0yOCAg
SGFuIFNoZW4gIDxzaGVuaGFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBkZWZpbml0aW9u
IG9mIG5lc3RlZCBjbGFzc2VzIHRoYXQgaW5oZXJpdCBlbmNsb3NpbmcgY2xhc3Mgb3V0c2lkZSBj
bGFzcyBkZWZpbml0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEzNDU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSGFzaE1hcC5oIGRvZXMgbm90IGJ1aWxkIG9uIEdDQyA0LjguIEluc2lkZSB0aGlz
IGZpbGUsCisgICAgICAgIEhhc2hNYXBLZXlzUHJveHkgYW5kIEhhc2hNYXBWYWx1ZXNQcm94eSBh
cmUgZGVmaW5lZCBhcyBuZXN0ZWQKKyAgICAgICAgY2xhc3MgaW5zaWRlIEhhc2hNYXAgLSB3aGlj
aCBpcyBsZWdhbCAtIHRoZSBpbGxlZ2FsIHBhcnQgaXMgdGhhdAorICAgICAgICB0aGVzZSAyIGNs
YXNzZXMgaW5oZXJpdCBIYXNoTWFwLCB0aGF0IGlzIHRoZSBlbmNsb3NpbmcgY2xhc3MsIHRoYXQK
KyAgICAgICAgY2F1c2VzICJyZWZlcmVuY2UgdG8gaW4tY29tcGxldGUgZGVmaW5pdGlvbiIgZXJy
b3IuCisKKyAgICAgICAgVGhlIGZpeCBpcyB0byBtb3ZlIG91dHNpZGUgdGhlIGRlZmluaXRpb24g
b2YgdGhlc2UgMiBjbGFzc2VzLCBhbmQKKyAgICAgICAgbGVhdmUgb25seSBkZWNsYXJhdGlvbiBw
YXJ0IGluc2lkZSBIYXNoTWFwIGFzIGlzIGlsbHVzdHJhdGVkIGJlbG93IC0KKworICAgICAgICAg
IHRlbXBsYXRlIGNsYXNzIDx0eXBlbmFtZSBUPgorICAgICAgICAgIGNsYXNzIEhhc2hNYXAgewor
ICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgIHByaXZh
dGU6CisgICAgICAgICAgICBjbGFzcyBIYXNoTWFwS2V5c1Byb3h5OworCisgICAgICAgICAgICAv
LyBFUlJPUiAtIG5lc3RlZCBjbGFzcyBpbmhlcml0cyBlbmNsb3NpbmcgY2xhc3MuCisgICAgICAg
ICAgICBjbGFzcyBIYXNoTWFwS2V5c1Byb3h5IDogcHJpdmF0ZSBIYXNoTWFwIHsKKyAgICAgICAg
ICAgICAgICAuLi4gLi4uCisgICAgICAgICAgICB9OworICAgICAgICAgICAgLi4uIC4uLgorICAg
ICAgICAgICAgLi4uIC4uLgorICAgICAgICAgICAgY2xhc3MgSGFzaE1hcEtleXNQcm94eSA6IHBy
aXZhdGUgSGFzaE1hcCB7CisgICAgICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICAgIC4uLiAuLi4KKyAgICAgICAgICB9Owor
CisgICAgICAgIEZpeGVkIGFzIGJlbG93OgorICAgICAgICAgIHRlbXBsYXRlIGNsYXNzIDx0eXBl
bmFtZSBUPgorICAgICAgICAgIGNsYXNzIEhhc2hNYXAgeworICAgICAgICAgICAgLi4uIC4uLgor
ICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBjbGFz
cyBIYXNoTWFwS2V5c1Byb3h5OworICAgICAgICAgICAgY2xhc3MgSGFzaE1hcFZhbHVlc1Byb3h5
OworCisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAgICAuLi4gLi4uCisgICAgICAgICAg
fTsKKworICAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAgICAgIGNsYXNzIEhh
c2hNYXA8VD46Okhhc2hNYXBLZXlzUHJveHkgOiBwcml2YXRlIEhhc2hNYXA8VD4geworICAgICAg
ICAgICAgLi4uIC4uLgorICAgICAgICAgIH07CisKKyAgICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KKyAgICAgICAgICBjbGFzcyBIYXNoTWFwPFQ+OjpIYXNoTWFwVmFsdWVzUHJveHkgOiBw
cml2YXRlIEhhc2hNYXA8VD4geworICAgICAgICAgICAgLi4uIC4uLgorICAgICAgICAgIH07CisK
KyAgICAgICAgKiB3dGYvSGFzaE1hcC5oOgorICAgICAgICAoSGFzaE1hcCk6CisgICAgICAgIChX
VEYpOiBGYWN0b3Igb3V0IG5lc3RlZCBjbGFzcyBkZWZpbml0aW9uIGZyb20gZW5jbG9zaW5nIGNs
YXNzLgorCiAyMDEzLTAzLTI1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAK
ICAgICAgICAgV1RGOjpiaW5hcnlTZWFyY2hJbXBsKCkgc2hvdWxkIGNvbXBpbGUgd2l0aCAtV3No
b3J0ZW4tNjQtdG8tMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCBhNTFlZTg1Li42ZDFhM2VmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5o
CkBAIC0xMzYsMjkgKzEzNiwzNSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICBwcml2YXRlOgogICAg
ICAgICBBZGRSZXN1bHQgaW5saW5lQWRkKGNvbnN0IEtleVR5cGUmLCBNYXBwZWRQYXNzSW5SZWZl
cmVuY2VUeXBlKTsKIAotICAgICAgICBjbGFzcyBIYXNoTWFwS2V5c1Byb3h5IDogcHJpdmF0ZSBI
YXNoTWFwIHsKKyAgICAgICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CisgICAgfTsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCB0eXBlbmFtZSBLZXlUcmFpdHNBcmcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0c0FyZz4KKyAg
ICBjbGFzcyBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcs
IE1hcHBlZFRyYWl0c0FyZz46Okhhc2hNYXBLZXlzUHJveHkgOiAKKyAgICAgICAgcHJpdmF0ZSBI
YXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRy
YWl0c0FyZz4gewogICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1l
IEhhc2hNYXA6Oml0ZXJhdG9yOjpLZXlzIGl0ZXJhdG9yOwotICAgICAgICAgICAgdHlwZWRlZiB0
eXBlbmFtZSBIYXNoTWFwOjpjb25zdF9pdGVyYXRvcjo6S2V5cyBjb25zdF9pdGVyYXRvcjsKLSAg
ICAgICAgICAgIAorICAgICAgICAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJn
LCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBlZFRyYWl0c0FyZz4gSGFzaE1hcFR5cGU7Cisg
ICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEhhc2hNYXBUeXBlOjppdGVyYXRvcjo6S2V5cyBp
dGVyYXRvcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5cGU6OmNvbnN0
X2l0ZXJhdG9yOjpLZXlzIGNvbnN0X2l0ZXJhdG9yOworCiAgICAgICAgICAgICBpdGVyYXRvciBi
ZWdpbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hNYXA6OmJl
Z2luKCkua2V5cygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwVHlwZTo6YmVnaW4o
KS5rZXlzKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaXRl
cmF0b3IgZW5kKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1h
cDo6ZW5kKCkua2V5cygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwVHlwZTo6ZW5k
KCkua2V5cygpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBi
ZWdpbigpIGNvbnN0CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhhc2hN
YXA6OmJlZ2luKCkua2V5cygpOworICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwVHlwZTo6
YmVnaW4oKS5rZXlzKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwogICAgICAgICAg
ICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gSGFzaE1hcDo6ZW5kKCkua2V5cygpOworICAgICAgICAgICAgICAgIHJldHVy
biBIYXNoTWFwVHlwZTo6ZW5kKCkua2V5cygpOwogICAgICAgICAgICAgfQogCiAgICAgICAgIHBy
aXZhdGU6CkBAIC0xNjksMzEgKzE3NSwzNCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAg
IEhhc2hNYXBLZXlzUHJveHkoY29uc3QgSGFzaE1hcEtleXNQcm94eSYpOwogICAgICAgICAgICAg
SGFzaE1hcEtleXNQcm94eSYgb3BlcmF0b3I9KGNvbnN0IEhhc2hNYXBLZXlzUHJveHkmKTsKICAg
ICAgICAgICAgIH5IYXNoTWFwS2V5c1Byb3h5KCk7Ci0gICAgICAgIH07CisgICAgfTsKIAotICAg
ICAgICBjbGFzcyBIYXNoTWFwVmFsdWVzUHJveHkgOiBwcml2YXRlIEhhc2hNYXAgeworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnLCB0eXBlbmFtZSBNYXBwZWRUcmFpdHNBcmc+Cisg
ICAgY2xhc3MgSGFzaE1hcDxLZXlBcmcsIE1hcHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJn
LCBNYXBwZWRUcmFpdHNBcmc+OjpIYXNoTWFwVmFsdWVzUHJveHkgOiAKKyAgICAgICAgcHJpdmF0
ZSBIYXNoTWFwPEtleUFyZywgTWFwcGVkQXJnLCBIYXNoQXJnLCBLZXlUcmFpdHNBcmcsIE1hcHBl
ZFRyYWl0c0FyZz4gewogICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICB0eXBlZGVmIHR5cGVu
YW1lIEhhc2hNYXA6Oml0ZXJhdG9yOjpWYWx1ZXMgaXRlcmF0b3I7Ci0gICAgICAgICAgICB0eXBl
ZGVmIHR5cGVuYW1lIEhhc2hNYXA6OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMgY29uc3RfaXRlcmF0
b3I7Ci0gICAgICAgICAgICAKKyAgICAgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxLZXlBcmcsIE1h
cHBlZEFyZywgSGFzaEFyZywgS2V5VHJhaXRzQXJnLCBNYXBwZWRUcmFpdHNBcmc+IEhhc2hNYXBU
eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwVHlwZTo6aXRlcmF0b3I6
OlZhbHVlcyBpdGVyYXRvcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5
cGU6OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMgY29uc3RfaXRlcmF0b3I7CisKICAgICAgICAgICAg
IGl0ZXJhdG9yIGJlZ2luKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
SGFzaE1hcDo6YmVnaW4oKS52YWx1ZXMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1h
cFR5cGU6OmJlZ2luKCkudmFsdWVzKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwog
ICAgICAgICAgICAgaXRlcmF0b3IgZW5kKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gSGFzaE1hcDo6ZW5kKCkudmFsdWVzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEhhc2hNYXBUeXBlOjplbmQoKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJldHVybiBIYXNoTWFwOjpiZWdpbigpLnZhbHVlcygpOworICAgICAgICAgICAgICAg
IHJldHVybiBIYXNoTWFwVHlwZTo6YmVnaW4oKS52YWx1ZXMoKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIAorCiAgICAgICAgICAgICBjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBIYXNoTWFwOjplbmQoKS52YWx1ZXMo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFzaE1hcFR5cGU6OmVuZCgpLnZhbHVlcygpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgIHByaXZhdGU6CkBAIC0yMDQsOSArMjEzLDYgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgICAgICAgICBIYXNoTWFwVmFsdWVzUHJveHkoY29uc3QgSGFzaE1h
cFZhbHVlc1Byb3h5Jik7CiAgICAgICAgICAgICBIYXNoTWFwVmFsdWVzUHJveHkmIG9wZXJhdG9y
PShjb25zdCBIYXNoTWFwVmFsdWVzUHJveHkmKTsKICAgICAgICAgICAgIH5IYXNoTWFwVmFsdWVz
UHJveHkoKTsKLSAgICAgICAgfTsKLQotICAgICAgICBIYXNoVGFibGVUeXBlIG1faW1wbDsKICAg
ICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5VHJhaXRzLCB0eXBlbmFtZSBNYXBwZWRU
cmFpdHM+IHN0cnVjdCBIYXNoTWFwVmFsdWVUcmFpdHMgOiBLZXlWYWx1ZVBhaXJIYXNoVHJhaXRz
PEtleVRyYWl0cywgTWFwcGVkVHJhaXRzPiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>