<?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>62954</bug_id>
          
          <creation_ts>2011-06-19 13:12:18 -0700</creation_ts>
          <short_desc>add/removeSpellcheckRange use RefPtr incorrectly for arguments</short_desc>
          <delta_ts>2011-12-21 21:17:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Darin Adler">darin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>hbono</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>423389</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-19 13:12:18 -0700</bug_when>
    <thetext>Arguments should be PassRefPtr or raw pointers, never RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423610</commentid>
    <comment_count>1</comment_count>
      <attachid>97783</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-06-20 05:19:53 -0700</bug_when>
    <thetext>Created attachment 97783
A quick patch v0

Greetings,

(In reply to comment #0)
&gt; Arguments should be PassRefPtr or raw pointers, never RefPtr.

Thank you for noticing it. I have replaced all the RefPtr arguments in my r88332: &lt;http://trac.webkit.org/changeset/88332&gt; with PassRefPtr. (Even though I have not tried this change on valgrind, I think this change works without memory leaks.) It would be definitely helpful to give me feedback.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423714</commentid>
    <comment_count>2</comment_count>
      <attachid>97783</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-20 09:43:23 -0700</bug_when>
    <thetext>Comment on attachment 97783
A quick patch v0

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

&gt; Source/WebCore/dom/DocumentMarkerController.cpp:686
&gt; +bool DocumentMarkerController::addUserSpellingMarker(Node* node, unsigned start, unsigned length, PassRefPtr&lt;DOMStringList&gt; srcSuggestions, unsigned options)

The prefix we use here is “prp”, not “src”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424146</commentid>
    <comment_count>3</comment_count>
      <attachid>97900</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-06-20 18:09:42 -0700</bug_when>
    <thetext>Created attachment 97900
A quick patch v1

Greetings Darin,

(In reply to comment #2)
&gt; (From update of attachment 97783 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97783&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarkerController.cpp:686
&gt; &gt; +bool DocumentMarkerController::addUserSpellingMarker(Node* node, unsigned start, unsigned length, PassRefPtr&lt;DOMStringList&gt; srcSuggestions, unsigned options)
&gt; 
&gt; The prefix we use here is “prp”, not “src”.

Thank you for noticing it. (I&apos;m a little wondering why check-webkit-style did not notice it, though. It may be a good idea to write a change for it?) I have updated this change to use prp prefixes for PassRefPtr arguments. Is it possible to review the updated one?

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424188</commentid>
    <comment_count>4</comment_count>
      <attachid>97900</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-20 19:24:51 -0700</bug_when>
    <thetext>Comment on attachment 97900
A quick patch v1

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

I’d prefer to see a function that makes removeSpellcheckRange use a raw pointer.

&gt; Source/WebCore/html/HTMLDivElement.cpp:94
&gt; -void HTMLDivElement::addSpellcheckRange(unsigned long start, unsigned long length, RefPtr&lt;DOMStringList&gt; suggestions, unsigned short options)
&gt; +void HTMLDivElement::addSpellcheckRange(unsigned long start, unsigned long length, PassRefPtr&lt;DOMStringList&gt; prpSuggestions, unsigned short options)
&gt;  {
&gt; -    document()-&gt;markers()-&gt;addUserSpellingMarker(this, start, length, suggestions, options);
&gt; +    document()-&gt;markers()-&gt;addUserSpellingMarker(this, start, length, prpSuggestions, options);
&gt;  }

Here there is no reason to change the name of the argument. Just “suggestions” would be fine. Same for the other overrides of this function.

&gt; Source/WebCore/html/HTMLDivElement.h:45
&gt; +    void removeSpellcheckRange(PassRefPtr&lt;SpellcheckRange&gt;);

I don’t understand why the remove function takes a PassRefPtr. The caller is not passing ownership in, so I’d think we could just use a raw pointer. Is there some problem with DOM bindings that means we have to use PassRefPtr here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424329</commentid>
    <comment_count>5</comment_count>
      <attachid>97944</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-06-21 00:31:39 -0700</bug_when>
    <thetext>Created attachment 97944
A quick fix v2

Greetings Darin,

Thank you for your review and comments.

(In reply to comment #4)
&gt; (From update of attachment 97900 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97900&amp;action=review
&gt; 
&gt; I’d prefer to see a function that makes removeSpellcheckRange use a raw pointer.

Thank you for noticing it. I have replaced its parameter from PassRefPtr to a raw pointer.
 
&gt; &gt; Source/WebCore/html/HTMLDivElement.cpp:94
&gt; &gt; -void HTMLDivElement::addSpellcheckRange(unsigned long start, unsigned long length, RefPtr&lt;DOMStringList&gt; suggestions, unsigned short options)
&gt; &gt; +void HTMLDivElement::addSpellcheckRange(unsigned long start, unsigned long length, PassRefPtr&lt;DOMStringList&gt; prpSuggestions, unsigned short options)
&gt; &gt;  {
&gt; &gt; -    document()-&gt;markers()-&gt;addUserSpellingMarker(this, start, length, suggestions, options);
&gt; &gt; +    document()-&gt;markers()-&gt;addUserSpellingMarker(this, start, length, prpSuggestions, options);
&gt; &gt;  }
&gt; 
&gt; Here there is no reason to change the name of the argument. Just “suggestions” would be fine. Same for the other overrides of this function.

Oops, it seems a script used for creating this change replaced this parameter as well. I have removed them.
 
&gt; &gt; Source/WebCore/html/HTMLDivElement.h:45
&gt; &gt; +    void removeSpellcheckRange(PassRefPtr&lt;SpellcheckRange&gt;);
&gt; 
&gt; I don’t understand why the remove function takes a PassRefPtr. The caller is not passing ownership in, so I’d think we could just use a raw pointer. Is there some problem with DOM bindings that means we have to use PassRefPtr here?

Sorry for my confusing change. If I recall correctly, I used RefPtr here just because I saw a valgrind error when implementing r88332. But, I cannot see any valgrind errors when I run this change on valgrind now. (Probably I misread another valgrind error.) I have replaced PassRefPtr with a raw pointer since it does not cause any valgrind errors any longer.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424331</commentid>
    <comment_count>6</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-06-21 00:33:43 -0700</bug_when>
    <thetext>Greetings,

Sorry, I have uploaded a wrong patch. I will upload the correct soon.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424995</commentid>
    <comment_count>7</comment_count>
      <attachid>97944</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-21 21:03:51 -0700</bug_when>
    <thetext>Comment on attachment 97944
A quick fix v2

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

&gt; Source/WebCore/dom/DocumentMarkerController.cpp:687
&gt;  {

drop the &apos;prp&apos;. We don&apos;t use Hungarian notation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425041</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-21 23:06:11 -0700</bug_when>
    <thetext>Simon, we do use prp for PassRefPtr, even though we make no other uses of Hungarian notation. It’s mentioned here &lt;http://www.webkit.org/coding/RefPtr.html&gt; in the section labeled “Function arguments”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525710</commentid>
    <comment_count>9</comment_count>
      <attachid>97944</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 15:24:27 -0800</bug_when>
    <thetext>Comment on attachment 97944
A quick fix v2

I believe Darin answered simon&apos;s concern.  marking cq+ (Since the author is not a committer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525722</commentid>
    <comment_count>10</comment_count>
      <attachid>97944</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-21 15:29:06 -0800</bug_when>
    <thetext>Comment on attachment 97944
A quick fix v2

Rejecting attachment 97944 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
nputElement.h.rej
patching file Source/WebCore/html/HTMLTextAreaElement.cpp
Hunk #1 FAILED at 455.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/html/HTMLTextAreaElement.cpp.rej
patching file Source/WebCore/html/HTMLTextAreaElement.h
Hunk #1 FAILED at 69.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/html/HTMLTextAreaElement.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Simon Fraser&apos;, u&apos;--for...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10998131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525910</commentid>
    <comment_count>11</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2011-12-21 18:22:13 -0800</bug_when>
    <thetext>Greetings,

Sorry for the lack of updates. My change that added add/removeSpellcheckRange has been rolled out, i.e. this issue is obsolete.

Regards,

Hironori Bono</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97783</attachid>
            <date>2011-06-20 05:19:53 -0700</date>
            <delta_ts>2011-06-20 18:09:42 -0700</delta_ts>
            <desc>A quick patch v0</desc>
            <filename>issue62954-patch1.txt</filename>
            <type>text/plain</type>
            <size>8717</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MjQxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYtMjAgIEhpcm9ub3Jp
IEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIFBhc3NSZWZQdHIgaW5zdGVhZCBvZiBSZWZQdHIgZm9y
IHRoZSBhcmd1bWVudHMgb2YgU3BlbGxjaGVjayBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk1NAorCisgICAgICAgIFRoaXMgY2hhbmdlIGp1
c3QgcmVwbGFjZXMgUmVmUHRyIGFyZ3VtZW50cyBpbiBTcGVsbGNoZWNrIEFQSSBmdW5jdGlvbnMK
KyAgICAgICAgd2l0aCBQYXNzUmVmUHRyIGFzIHN1Z2dlc3RlZCBpbiB0aGUgYnVnLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMgaXMgYSBzdHlsZSBmaXguCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6YWRkVXNlclNwZWxsaW5nTWFya2VyKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGl2RWxlbWVudDo6YWRkU3BlbGxj
aGVja1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEaXZFbGVtZW50OjpyZW1vdmVTcGVs
bGNoZWNrUmFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTERpdkVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpyZW1vdmVTcGVsbGNoZWNr
UmFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorCiAyMDExLTA2
LTE5ICBNYWRzIEFnZXIgIDxhZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIEJhcnRoLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDg5MjI3KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4Myw4ICs2
ODMsOSBAQCBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IERvY3VtZW50CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmFkZFVzZXJT
cGVsbGluZ01hcmtlcihOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3VnZ2VzdGlvbnMsIHVuc2lnbmVkIG9wdGlvbnMpCiti
b29sIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6YWRkVXNlclNwZWxsaW5nTWFya2VyKE5vZGUq
IG5vZGUsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gc3JjU3VnZ2VzdGlvbnMsIHVuc2lnbmVkIG9wdGlvbnMpCiB7CisgICAgUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zID0gc3JjU3VnZ2VzdGlvbnM7CiAgICAgaWYgKCFu
b2RlIHx8ICFsZW5ndGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAkocmV2aXNpb24gODkyMjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFNQRUxMQ0hF
Q0tfQVBJKQogICAgIFBhc3NSZWZQdHI8U3BlbGxjaGVja1JhbmdlTGlzdD4gdXNlclNwZWxsaW5n
TWFya2Vyc0Zvck5vZGUoTm9kZSopIGNvbnN0OwotICAgIGJvb2wgYWRkVXNlclNwZWxsaW5nTWFy
a2VyKE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBSZWZQdHI8
RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIG9wdGlvbik7CisgICAgYm9vbCBhZGRVc2VyU3BlbGxp
bmdNYXJrZXIoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFBh
c3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIG9wdGlvbik7CiAgICAgdm9pZCByZW1v
dmVVc2VyU3BlbGxpbmdNYXJrZXIoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCBsZW5ndGgpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1l
bnQuY3BwCShyZXZpc2lvbiA4OTIyNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMyArODgsMTQgQEAgdm9pZCBIVE1MRGl2
RWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKAogICAgIGFkZFNwZWxsY2hlY2tSYW5nZShzdGFy
dCwgbGVuZ3RoLCBET01TdHJpbmdMaXN0OjpjcmVhdGUoKSwgMCk7CiB9CiAKLXZvaWQgSFRNTERp
dkVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l
ZCBsb25nIGxlbmd0aCwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25l
ZCBzaG9ydCBvcHRpb25zKQordm9pZCBIVE1MRGl2RWxlbWVudDo6YWRkU3BlbGxjaGVja1Jhbmdl
KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBQYXNzUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBzaG9ydCBvcHRpb25zKQogewogICAg
IGRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkVXNlclNwZWxsaW5nTWFya2VyKHRoaXMsIHN0YXJ0
LCBsZW5ndGgsIHN1Z2dlc3Rpb25zLCBvcHRpb25zKTsKIH0KIAotdm9pZCBIVE1MRGl2RWxlbWVu
dDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKFJlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+IHJhbmdlKQor
dm9pZCBIVE1MRGl2RWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8U3Bl
bGxjaGVja1JhbmdlPiBzcmNSYW5nZSkKIHsKKyAgICBSZWZQdHI8U3BlbGxjaGVja1JhbmdlPiBy
YW5nZSA9IHNyY1JhbmdlOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKICAgICBk
b2N1bWVudCgpLT5tYXJrZXJzKCktPnJlbW92ZVVzZXJTcGVsbGluZ01hcmtlcih0aGlzLCByYW5n
ZS0+c3RhcnQoKSwgcmFuZ2UtPmxlbmd0aCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERpdkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
aXZFbGVtZW50LmgJKHJldmlzaW9uIDg5MjI3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGl2RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoU1BFTExDSEVDS19BUEkpCiAgICAgUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2VM
aXN0PiBzcGVsbGNoZWNrUmFuZ2VzKCk7CiAgICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5z
aWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgpOwotICAgIHZvaWQgYWRkU3Bl
bGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIHNob3J0IG9wdGlvbnMgPSAwKTsKLSAgICB2
b2lkIHJlbW92ZVNwZWxsY2hlY2tSYW5nZShSZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CisgICAg
dm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9u
ZyBsZW5ndGgsIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIHNob3J0IG9wdGlv
bnMgPSAwKTsKKyAgICB2b2lkIHJlbW92ZVNwZWxsY2hlY2tSYW5nZShQYXNzUmVmUHRyPFNwZWxs
Y2hlY2tSYW5nZT4pOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gODkyMjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODU0LDEz
ICsxODU0LDE0IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmcKICAg
ICBhZGRTcGVsbGNoZWNrUmFuZ2Uoc3RhcnQsIGxlbmd0aCwgRE9NU3RyaW5nTGlzdDo6Y3JlYXRl
KCksIDApOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSh1
bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUmVmUHRyPERPTVN0cmlu
Z0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBzaG9ydCBvcHRpb25zKQordm9pZCBIVE1MSW5w
dXRFbGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWdu
ZWQgbG9uZyBsZW5ndGgsIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3VnZ2VzdGlvbnMsIHVu
c2lnbmVkIHNob3J0IG9wdGlvbnMpCiB7CiAgICAgZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRV
c2VyU3BlbGxpbmdNYXJrZXIodGhpcywgc3RhcnQsIGxlbmd0aCwgc3VnZ2VzdGlvbnMsIG9wdGlv
bnMpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZShS
ZWZQdHI8U3BlbGxjaGVja1JhbmdlPiByYW5nZSkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVt
b3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8U3BlbGxjaGVja1JhbmdlPiBzcmNSYW5nZSkK
IHsKKyAgICBSZWZQdHI8U3BlbGxjaGVja1JhbmdlPiByYW5nZSA9IHNyY1JhbmdlOwogICAgIGlm
ICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKICAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPnJl
bW92ZVVzZXJTcGVsbGluZ01hcmtlcih0aGlzLCByYW5nZS0+c3RhcnQoKSwgcmFuZ2UtPmxlbmd0
aCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lv
biA4OTIyNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzYsOCArMjM2LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShTUEVMTENI
RUNLX0FQSSkKICAgICBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IHNwZWxsY2hlY2tS
YW5nZXMoKTsKICAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0
LCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7Ci0gICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5z
aWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdM
aXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOwotICAgIHZvaWQgcmVtb3ZlU3BlbGxj
aGVja1JhbmdlKFJlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+KTsKKyAgICB2b2lkIGFkZFNwZWxsY2hl
Y2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOworICAgIHZv
aWQgcmVtb3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CiAj
ZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bUxlbmd0aDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gODkyMjcp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NTUsMTMgKzQ1NSwxNCBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFk
ZFNwZWxsY2hlY2tSCiAgICAgYWRkU3BlbGxjaGVja1JhbmdlKHN0YXJ0LCBsZW5ndGgsIERPTVN0
cmluZ0xpc3Q6OmNyZWF0ZSgpLCAwKTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojph
ZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5n
dGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucywgdW5zaWduZWQgc2hvcnQgb3B0
aW9ucykKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKHVuc2ln
bmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmlu
Z0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBzaG9ydCBvcHRpb25zKQogewogICAgIGRvY3Vt
ZW50KCktPm1hcmtlcnMoKS0+YWRkVXNlclNwZWxsaW5nTWFya2VyKHRoaXMsIHN0YXJ0LCBsZW5n
dGgsIHN1Z2dlc3Rpb25zLCBvcHRpb25zKTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
OjpyZW1vdmVTcGVsbGNoZWNrUmFuZ2UoUmVmUHRyPFNwZWxsY2hlY2tSYW5nZT4gcmFuZ2UpCit2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZShQYXNzUmVmUHRy
PFNwZWxsY2hlY2tSYW5nZT4gc3JjUmFuZ2UpCiB7CisgICAgUmVmUHRyPFNwZWxsY2hlY2tSYW5n
ZT4gcmFuZ2UgPSBzcmNSYW5nZTsKICAgICBpZiAoIXJhbmdlKQogICAgICAgICByZXR1cm47CiAg
ICAgZG9jdW1lbnQoKS0+bWFya2VycygpLT5yZW1vdmVVc2VyU3BlbGxpbmdNYXJrZXIodGhpcywg
cmFuZ2UtPnN0YXJ0KCksIHJhbmdlLT5sZW5ndGgoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkocmV2aXNpb24gODkyMjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCAr
NjksOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0tfQVBJKQogICAgIFBhc3NSZWZQ
dHI8U3BlbGxjaGVja1JhbmdlTGlzdD4gc3BlbGxjaGVja1JhbmdlcygpOwogICAgIHZvaWQgYWRk
U3BlbGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
KTsKLSAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNp
Z25lZCBsb25nIGxlbmd0aCwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBzaG9ydCBv
cHRpb25zID0gMCk7Ci0gICAgdm9pZCByZW1vdmVTcGVsbGNoZWNrUmFuZ2UoUmVmUHRyPFNwZWxs
Y2hlY2tSYW5nZT4pOworICAgIHZvaWQgYWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcg
c3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1
bnNpZ25lZCBzaG9ydCBvcHRpb25zID0gMCk7CisgICAgdm9pZCByZW1vdmVTcGVsbGNoZWNrUmFu
Z2UoUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+KTsKICNlbmRpZgogCiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97900</attachid>
            <date>2011-06-20 18:09:42 -0700</date>
            <delta_ts>2011-06-21 00:31:39 -0700</delta_ts>
            <desc>A quick patch v1</desc>
            <filename>issue62954-patch2.txt</filename>
            <type>text/plain</type>
            <size>9015</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MzIxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYtMjAgIEhpcm9ub3Jp
IEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIFBhc3NSZWZQdHIgaW5zdGVhZCBvZiBSZWZQdHIgZm9y
IHRoZSBhcmd1bWVudHMgb2YgU3BlbGxjaGVjayBBUEkgZnVuY3Rpb25zLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5NTQKKworICAgICAgICBUaGlz
IGNoYW5nZSBqdXN0IHJlcGxhY2VzIFJlZlB0ciBhcmd1bWVudHMgaW4gcjg4MzMyIHdpdGggUGFz
c1JlZlB0ciBhcworICAgICAgICBzdWdnZXN0ZWQgaW4gdGhlIGJ1Zy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgYmVjYXVzZSB0aGlzIGlzIGEgc3R5bGUgZml4LgorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXI6OmFkZFVzZXJTcGVsbGluZ01hcmtlcik6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5oOgorICAgICAgICAqIGh0bWwvSFRNTERpdkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpdkVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGl2RWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1Jh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmFkZFNwZWxsY2hlY2tSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjpyZW1vdmVTcGVsbGNoZWNrUmFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKToK
KyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKwogMjAxMS0wNi0yMCAgSmF5
IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4OTMxNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02ODMsOCArNjgz
LDkgQEAgUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2VMaXN0PiBEb2N1bWVudAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLWJvb2wgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjphZGRVc2VyU3Bl
bGxpbmdNYXJrZXIoTm9kZSogbm9kZSwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBvcHRpb25zKQorYm9v
bCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmFkZFVzZXJTcGVsbGluZ01hcmtlcihOb2RlKiBu
b2RlLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmlu
Z0xpc3Q+IHBycFN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBvcHRpb25zKQogeworICAgIFJlZlB0cjxE
T01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucyA9IHBycFN1Z2dlc3Rpb25zOwogICAgIGlmICghbm9k
ZSB8fCAhbGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgJKHJldmlzaW9uIDg5MzE3KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShTUEVMTENIRUNL
X0FQSSkKICAgICBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IHVzZXJTcGVsbGluZ01h
cmtlcnNGb3JOb2RlKE5vZGUqKSBjb25zdDsKLSAgICBib29sIGFkZFVzZXJTcGVsbGluZ01hcmtl
cihOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgUmVmUHRyPERP
TVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBvcHRpb24pOworICAgIGJvb2wgYWRkVXNlclNwZWxsaW5n
TWFya2VyKE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBvcHRpb24pOwogICAgIHZvaWQgcmVtb3Zl
VXNlclNwZWxsaW5nTWFya2VyKE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmNwcAkocmV2aXNpb24gODkzMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsMTMgKzg4LDE0IEBAIHZvaWQgSFRNTERpdkVs
ZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSgKICAgICBhZGRTcGVsbGNoZWNrUmFuZ2Uoc3RhcnQs
IGxlbmd0aCwgRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCksIDApOwogfQogCi12b2lkIEhUTUxEaXZF
bGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQg
bG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucywgdW5zaWduZWQg
c2hvcnQgb3B0aW9ucykKK3ZvaWQgSFRNTERpdkVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSh1
bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiBwcnBTdWdnZXN0aW9ucywgdW5zaWduZWQgc2hvcnQgb3B0aW9ucykKIHsKLSAg
ICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZFVzZXJTcGVsbGluZ01hcmtlcih0aGlzLCBzdGFy
dCwgbGVuZ3RoLCBzdWdnZXN0aW9ucywgb3B0aW9ucyk7CisgICAgZG9jdW1lbnQoKS0+bWFya2Vy
cygpLT5hZGRVc2VyU3BlbGxpbmdNYXJrZXIodGhpcywgc3RhcnQsIGxlbmd0aCwgcHJwU3VnZ2Vz
dGlvbnMsIG9wdGlvbnMpOwogfQogCi12b2lkIEhUTUxEaXZFbGVtZW50OjpyZW1vdmVTcGVsbGNo
ZWNrUmFuZ2UoUmVmUHRyPFNwZWxsY2hlY2tSYW5nZT4gcmFuZ2UpCit2b2lkIEhUTUxEaXZFbGVt
ZW50OjpyZW1vdmVTcGVsbGNoZWNrUmFuZ2UoUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+IHBy
cFJhbmdlKQogeworICAgIFJlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+IHJhbmdlID0gcHJwUmFuZ2U7
CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuOwogICAgIGRvY3VtZW50KCktPm1hcmtl
cnMoKS0+cmVtb3ZlVXNlclNwZWxsaW5nTWFya2VyKHRoaXMsIHJhbmdlLT5zdGFydCgpLCByYW5n
ZS0+bGVuZ3RoKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAkocmV2
aXNpb24gODkzMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShTUEVMTENI
RUNLX0FQSSkKICAgICBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IHNwZWxsY2hlY2tS
YW5nZXMoKTsKICAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0
LCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7Ci0gICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5z
aWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdM
aXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOwotICAgIHZvaWQgcmVtb3ZlU3BlbGxj
aGVja1JhbmdlKFJlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+KTsKKyAgICB2b2lkIGFkZFNwZWxsY2hl
Y2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOworICAgIHZv
aWQgcmVtb3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CiAj
ZW5kaWYKIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA4OTMxNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NTQsMTMgKzE4NTQsMTQgQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZwogICAgIGFkZFNwZWxsY2hlY2tS
YW5nZShzdGFydCwgbGVuZ3RoLCBET01TdHJpbmdMaXN0OjpjcmVhdGUoKSwgMCk7CiB9CiAKLXZv
aWQgSFRNTElucHV0RWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcgc3Rh
cnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gc3VnZ2VzdGlv
bnMsIHVuc2lnbmVkIHNob3J0IG9wdGlvbnMpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFkZFNw
ZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwg
UGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBwcnBTdWdnZXN0aW9ucywgdW5zaWduZWQgc2hvcnQg
b3B0aW9ucykKIHsKLSAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZFVzZXJTcGVsbGluZ01h
cmtlcih0aGlzLCBzdGFydCwgbGVuZ3RoLCBzdWdnZXN0aW9ucywgb3B0aW9ucyk7CisgICAgZG9j
dW1lbnQoKS0+bWFya2VycygpLT5hZGRVc2VyU3BlbGxpbmdNYXJrZXIodGhpcywgc3RhcnQsIGxl
bmd0aCwgcHJwU3VnZ2VzdGlvbnMsIG9wdGlvbnMpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZShSZWZQdHI8U3BlbGxjaGVja1JhbmdlPiByYW5nZSkK
K3ZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8
U3BlbGxjaGVja1JhbmdlPiBwcnBSYW5nZSkKIHsKKyAgICBSZWZQdHI8U3BlbGxjaGVja1Jhbmdl
PiByYW5nZSA9IHBycFJhbmdlOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKICAg
ICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPnJlbW92ZVVzZXJTcGVsbGluZ01hcmtlcih0aGlzLCBy
YW5nZS0+c3RhcnQoKSwgcmFuZ2UtPmxlbmd0aCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lvbiA4OTMxNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzYsOCArMjM2LDggQEAg
cHVibGljOgogI2lmIEVOQUJMRShTUEVMTENIRUNLX0FQSSkKICAgICBQYXNzUmVmUHRyPFNwZWxs
Y2hlY2tSYW5nZUxpc3Q+IHNwZWxsY2hlY2tSYW5nZXMoKTsKICAgICB2b2lkIGFkZFNwZWxsY2hl
Y2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7Ci0gICAg
dm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9u
ZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9
IDApOwotICAgIHZvaWQgcmVtb3ZlU3BlbGxjaGVja1JhbmdlKFJlZlB0cjxTcGVsbGNoZWNrUmFu
Z2U+KTsKKyAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiwgdW5zaWduZWQg
c2hvcnQgb3B0aW9ucyA9IDApOworICAgIHZvaWQgcmVtb3ZlU3BlbGxjaGVja1JhbmdlKFBhc3NS
ZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBpbnQg
bWF4aW11bUxlbmd0aDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcAkocmV2aXNpb24gODkzMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTUsMTMgKzQ1NSwxNCBAQCB2
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSCiAgICAgYWRkU3BlbGxjaGVj
a1JhbmdlKHN0YXJ0LCBsZW5ndGgsIERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpLCAwKTsKIH0KIAot
dm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9u
ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdn
ZXN0aW9ucywgdW5zaWduZWQgc2hvcnQgb3B0aW9ucykKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6YWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHBycFN1Z2dlc3Rpb25zLCB1bnNpZ25l
ZCBzaG9ydCBvcHRpb25zKQogewotICAgIGRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkVXNlclNw
ZWxsaW5nTWFya2VyKHRoaXMsIHN0YXJ0LCBsZW5ndGgsIHN1Z2dlc3Rpb25zLCBvcHRpb25zKTsK
KyAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZFVzZXJTcGVsbGluZ01hcmtlcih0aGlzLCBz
dGFydCwgbGVuZ3RoLCBwcnBTdWdnZXN0aW9ucywgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKFJlZlB0cjxTcGVsbGNoZWNrUmFu
Z2U+IHJhbmdlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpyZW1vdmVTcGVsbGNoZWNrUmFu
Z2UoUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+IHBycFJhbmdlKQogeworICAgIFJlZlB0cjxT
cGVsbGNoZWNrUmFuZ2U+IHJhbmdlID0gcHJwUmFuZ2U7CiAgICAgaWYgKCFyYW5nZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGRvY3VtZW50KCktPm1hcmtlcnMoKS0+cmVtb3ZlVXNlclNwZWxsaW5n
TWFya2VyKHRoaXMsIHJhbmdlLT5zdGFydCgpLCByYW5nZS0+bGVuZ3RoKCkpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHJldmlzaW9uIDg5MzE3KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY5LDggKzY5LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShTUEVMTENIRUNLX0FQSSkK
ICAgICBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IHNwZWxsY2hlY2tSYW5nZXMoKTsK
ICAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l
ZCBsb25nIGxlbmd0aCk7Ci0gICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9u
ZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiwgdW5z
aWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOwotICAgIHZvaWQgcmVtb3ZlU3BlbGxjaGVja1Jhbmdl
KFJlZlB0cjxTcGVsbGNoZWNrUmFuZ2U+KTsKKyAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1
bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOworICAgIHZvaWQgcmVtb3Zl
U3BlbGxjaGVja1JhbmdlKFBhc3NSZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CiAjZW5kaWYKIAog
cHJpdmF0ZToK
</data>
<flag name="review"
          id="91993"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="91994"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97944</attachid>
            <date>2011-06-21 00:31:39 -0700</date>
            <delta_ts>2011-12-21 21:17:47 -0800</delta_ts>
            <desc>A quick fix v2</desc>
            <filename>issue62954-patch3.txt</filename>
            <type>text/plain</type>
            <size>8241</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MzM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDYtMjAgIEhpcm9ub3Jp
IEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIFBhc3NSZWZQdHIgaW5zdGVhZCBvZiBSZWZQdHIgZm9y
IHRoZSBhcmd1bWVudHMgb2YgU3BlbGxjaGVjayBBUEkgZnVuY3Rpb25zLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5NTQKKworICAgICAgICBUaGlz
IGNoYW5nZSBqdXN0IHJlcGxhY2VzIFJlZlB0ciBhcmd1bWVudHMgaW4gcjg4MzMyIHdpdGggUGFz
c1JlZlB0ciAob3IKKyAgICAgICAgcmF3IHBvaW50ZXJzKSBhcyBzdWdnZXN0ZWQgaW4gdGhlIGJ1
Zy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGlzIGlzIGEgc3R5bGUgZml4Lgor
CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmFkZFVzZXJTcGVsbGluZ01hcmtlcik6
CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oOgorICAgICAgICAqIGh0
bWwvSFRNTERpdkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERpdkVsZW1lbnQ6
OmFkZFNwZWxsY2hlY2tSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGl2RWxlbWVudDo6
cmVtb3ZlU3BlbGxjaGVja1JhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpyZW1vdmVTcGVsbGNoZWNrUmFuZ2UpOgorICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjphZGRTcGVsbGNo
ZWNrUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6cmVtb3Zl
U3BlbGxjaGVja1JhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoK
KwogMjAxMS0wNi0yMCAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4OTMxNykKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02ODMsOCArNjgzLDkgQEAgUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2VMaXN0
PiBEb2N1bWVudAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyOjphZGRVc2VyU3BlbGxpbmdNYXJrZXIoTm9kZSogbm9kZSwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGxlbmd0aCwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zLCB1
bnNpZ25lZCBvcHRpb25zKQorYm9vbCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmFkZFVzZXJT
cGVsbGluZ01hcmtlcihOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHBycFN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBvcHRp
b25zKQogeworICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucyA9IHBycFN1Z2dl
c3Rpb25zOwogICAgIGlmICghbm9kZSB8fCAhbGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgJKHJldmlzaW9uIDg5MzE3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShTUEVMTENIRUNLX0FQSSkKICAgICBQYXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5n
ZUxpc3Q+IHVzZXJTcGVsbGluZ01hcmtlcnNGb3JOb2RlKE5vZGUqKSBjb25zdDsKLSAgICBib29s
IGFkZFVzZXJTcGVsbGluZ01hcmtlcihOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBvcHRpb24pOworICAg
IGJvb2wgYWRkVXNlclNwZWxsaW5nTWFya2VyKE5vZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBvcHRp
b24pOwogICAgIHZvaWQgcmVtb3ZlVXNlclNwZWxsaW5nTWFya2VyKE5vZGUqLCB1bnNpZ25lZCBz
dGFydE9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcAkocmV2aXNpb24gODkzMTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsMTIgKzg4
LDEyIEBAIHZvaWQgSFRNTERpdkVsZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSgKICAgICBhZGRT
cGVsbGNoZWNrUmFuZ2Uoc3RhcnQsIGxlbmd0aCwgRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCksIDAp
OwogfQogCi12b2lkIEhUTUxEaXZFbGVtZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQg
bG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBz
dWdnZXN0aW9ucywgdW5zaWduZWQgc2hvcnQgb3B0aW9ucykKK3ZvaWQgSFRNTERpdkVsZW1lbnQ6
OmFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxl
bmd0aCwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucywgdW5zaWduZWQgc2hv
cnQgb3B0aW9ucykKIHsKICAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZFVzZXJTcGVsbGlu
Z01hcmtlcih0aGlzLCBzdGFydCwgbGVuZ3RoLCBzdWdnZXN0aW9ucywgb3B0aW9ucyk7CiB9CiAK
LXZvaWQgSFRNTERpdkVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZShSZWZQdHI8U3BlbGxj
aGVja1JhbmdlPiByYW5nZSkKK3ZvaWQgSFRNTERpdkVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tS
YW5nZShTcGVsbGNoZWNrUmFuZ2UqIHJhbmdlKQogewogICAgIGlmICghcmFuZ2UpCiAgICAgICAg
IHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgJKHJldmlzaW9u
IDg5MzE3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU1BFTExDSEVDS19B
UEkpCiAgICAgUGFzc1JlZlB0cjxTcGVsbGNoZWNrUmFuZ2VMaXN0PiBzcGVsbGNoZWNrUmFuZ2Vz
KCk7CiAgICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5z
aWduZWQgbG9uZyBsZW5ndGgpOwotICAgIHZvaWQgYWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVk
IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBSZWZQdHI8RE9NU3RyaW5nTGlzdD4s
IHVuc2lnbmVkIHNob3J0IG9wdGlvbnMgPSAwKTsKLSAgICB2b2lkIHJlbW92ZVNwZWxsY2hlY2tS
YW5nZShSZWZQdHI8U3BlbGxjaGVja1JhbmdlPik7CisgICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFu
Z2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4sIHVuc2lnbmVkIHNob3J0IG9wdGlvbnMgPSAwKTsKKyAgICB2b2lkIHJl
bW92ZVNwZWxsY2hlY2tSYW5nZShTcGVsbGNoZWNrUmFuZ2UqKTsKICNlbmRpZgogCiBwcm90ZWN0
ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDg5MzE3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg1NCwxMiArMTg1NCwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmFkZFNwZWxsY2hlY2tSYW5nCiAgICAgYWRkU3BlbGxjaGVja1JhbmdlKHN0YXJ0LCBsZW5n
dGgsIERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpLCAwKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjphZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9u
ZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucywgdW5zaWduZWQgc2hv
cnQgb3B0aW9ucykKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKHVu
c2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IHN1Z2dlc3Rpb25zLCB1bnNpZ25lZCBzaG9ydCBvcHRpb25zKQogewogICAgIGRv
Y3VtZW50KCktPm1hcmtlcnMoKS0+YWRkVXNlclNwZWxsaW5nTWFya2VyKHRoaXMsIHN0YXJ0LCBs
ZW5ndGgsIHN1Z2dlc3Rpb25zLCBvcHRpb25zKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpyZW1vdmVTcGVsbGNoZWNrUmFuZ2UoUmVmUHRyPFNwZWxsY2hlY2tSYW5nZT4gcmFuZ2UpCit2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZVNwZWxsY2hlY2tSYW5nZShTcGVsbGNoZWNrUmFu
Z2UqIHJhbmdlKQogewogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCShyZXZpc2lvbiA4OTMxNykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzYsOCArMjM2LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShTUEVMTENIRUNLX0FQSSkKICAgICBQ
YXNzUmVmUHRyPFNwZWxsY2hlY2tSYW5nZUxpc3Q+IHNwZWxsY2hlY2tSYW5nZXMoKTsKICAgICB2
b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n
IGxlbmd0aCk7Ci0gICAgdm9pZCBhZGRTcGVsbGNoZWNrUmFuZ2UodW5zaWduZWQgbG9uZyBzdGFy
dCwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFJlZlB0cjxET01TdHJpbmdMaXN0PiwgdW5zaWduZWQg
c2hvcnQgb3B0aW9ucyA9IDApOwotICAgIHZvaWQgcmVtb3ZlU3BlbGxjaGVja1JhbmdlKFJlZlB0
cjxTcGVsbGNoZWNrUmFuZ2U+KTsKKyAgICB2b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25l
ZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgUGFzc1JlZlB0cjxET01TdHJpbmdM
aXN0PiwgdW5zaWduZWQgc2hvcnQgb3B0aW9ucyA9IDApOworICAgIHZvaWQgcmVtb3ZlU3BlbGxj
aGVja1JhbmdlKFNwZWxsY2hlY2tSYW5nZSopOwogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3Qg
aW50IG1heGltdW1MZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDg5MzE3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU1LDEyICs0NTUsMTIg
QEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphZGRTcGVsbGNoZWNrUgogICAgIGFkZFNwZWxs
Y2hlY2tSYW5nZShzdGFydCwgbGVuZ3RoLCBET01TdHJpbmdMaXN0OjpjcmVhdGUoKSwgMCk7CiB9
CiAKLXZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6YWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVk
IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
c3VnZ2VzdGlvbnMsIHVuc2lnbmVkIHNob3J0IG9wdGlvbnMpCit2b2lkIEhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OmFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBs
b25nIGxlbmd0aCwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBzdWdnZXN0aW9ucywgdW5zaWdu
ZWQgc2hvcnQgb3B0aW9ucykKIHsKICAgICBkb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZFVzZXJT
cGVsbGluZ01hcmtlcih0aGlzLCBzdGFydCwgbGVuZ3RoLCBzdWdnZXN0aW9ucywgb3B0aW9ucyk7
CiB9CiAKLXZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6cmVtb3ZlU3BlbGxjaGVja1JhbmdlKFJl
ZlB0cjxTcGVsbGNoZWNrUmFuZ2U+IHJhbmdlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50Ojpy
ZW1vdmVTcGVsbGNoZWNrUmFuZ2UoU3BlbGxjaGVja1JhbmdlICpyYW5nZSkKIHsKICAgICBpZiAo
IXJhbmdlKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaAkocmV2aXNpb24gODkzMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjksOCArNjksOCBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0tfQVBJKQogICAgIFBhc3NSZWZQdHI8U3BlbGxj
aGVja1JhbmdlTGlzdD4gc3BlbGxjaGVja1JhbmdlcygpOwogICAgIHZvaWQgYWRkU3BlbGxjaGVj
a1JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKLSAgICB2
b2lkIGFkZFNwZWxsY2hlY2tSYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n
IGxlbmd0aCwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBzaG9ydCBvcHRpb25zID0g
MCk7Ci0gICAgdm9pZCByZW1vdmVTcGVsbGNoZWNrUmFuZ2UoUmVmUHRyPFNwZWxsY2hlY2tSYW5n
ZT4pOworICAgIHZvaWQgYWRkU3BlbGxjaGVja1JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoLCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+LCB1bnNpZ25lZCBz
aG9ydCBvcHRpb25zID0gMCk7CisgICAgdm9pZCByZW1vdmVTcGVsbGNoZWNrUmFuZ2UoU3BlbGxj
aGVja1JhbmdlKik7CiAjZW5kaWYKIAogcHJpdmF0ZToK
</data>
<flag name="commit-queue"
          id="92243"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>