<?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>61277</bug_id>
          
          <creation_ts>2011-05-23 05:53:55 -0700</creation_ts>
          <short_desc>WebSocket: Add fail() to WebSocketChannel and its family</short_desc>
          <delta_ts>2011-05-24 02:16:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35721</blocked>
    
    <blocked>61115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>tkent</cc>
    
    <cc>ukai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>407900</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-23 05:53:55 -0700</bug_when>
    <thetext>This is first part of bug 61115.

Add WebSocketChannel::fail() (and ThreadableWebSocketChannel and WorkerThreadableWebSocketChannel as well), which logs an error message to JavaScript console and close the underlying channel.

WebSocketChannel::fail() corresponds to &quot;fail the WebSocket connection&quot; mentioned in the WebSocket protocol specification:
http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00#section-6.1
   Certain algorithms require the user agent to *fail the WebSocket
   connection*.  To do so, the user agent must close the WebSocket
   connection, and may report the problem to the user (which would be
   especially useful for developers).

This is same as WebSocketChannel::close() for now (except for logging). However, this will be necessary in the near future because closing handshake will change the semantics of close().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407908</commentid>
    <comment_count>1</comment_count>
      <attachid>94411</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-23 06:06:35 -0700</bug_when>
    <thetext>Created attachment 94411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408627</commentid>
    <comment_count>2</comment_count>
      <attachid>94411</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-23 21:24:25 -0700</bug_when>
    <thetext>Comment on attachment 94411
Patch

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

&gt; Source/WebCore/websockets/ThreadableWebSocketChannel.h:56
&gt; +    virtual void fail(const String&amp; reason) = 0; // Log the reason text and close the connection. Will call didClose().

nit: I feel such long comment should be moved to its own line.

&gt; Source/WebCore/websockets/WebSocketChannel.h:62
&gt; +        virtual void fail(const String&amp; reason); // Log the reason text and close the connection. Will call didClose().
&gt;          virtual void disconnect(); // Will suppress didClose().

ThreadableWebSocketChannel has these comments.  So we may remove them here.

&gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:385
&gt; +    m_loaderProxy.postTaskToLoader(
&gt; +        createCallbackTask(&amp;WorkerThreadableWebSocketChannel::mainThreadFail, AllowCrossThreadAccess(m_peer), reason));

No need to break the line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408667</commentid>
    <comment_count>3</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-23 22:59:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/websockets/WorkerThreadableWebSocketChannel.cpp:385
&gt; &gt; +    m_loaderProxy.postTaskToLoader(
&gt; &gt; +        createCallbackTask(&amp;WorkerThreadableWebSocketChannel::mainThreadFail, AllowCrossThreadAccess(m_peer), reason));
&gt; 
&gt; No need to break the line.

Sure. I will update the same issues occurring in the same file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408681</commentid>
    <comment_count>4</comment_count>
      <attachid>94573</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-23 23:32:52 -0700</bug_when>
    <thetext>Created attachment 94573
Ready to commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408740</commentid>
    <comment_count>5</comment_count>
      <attachid>94573</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-24 02:16:02 -0700</bug_when>
    <thetext>Comment on attachment 94573
Ready to commit

Clearing flags on attachment: 94573

Committed r87139: &lt;http://trac.webkit.org/changeset/87139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408741</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-24 02:16:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94411</attachid>
            <date>2011-05-23 06:06:35 -0700</date>
            <delta_ts>2011-05-23 23:32:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61277-20110523220633.patch</filename>
            <type>text/plain</type>
            <size>7356</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwNDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjlmMjA0Y2VlYWIwZmFm
NGU2OWYzOGNlOWIwYjkwYTUyZGIxZTMzLi5kYWZmZWFlZGJiYzAwMDJkNjEwNzgxYWZjYWViYTYx
YzYzMjYyZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUtMjMgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0OiBBZGQgZmFpbCgpIHRvIFdlYlNvY2tl
dENoYW5uZWwgYW5kIGl0cyBmYW1pbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxMjc3CisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3QgcGFydCBv
ZiByZWZhY3RvcmluZyBlZmZvcnQgZGVzY3JpYmVkIGluIGJ1ZyA2MTExNS4KKyAgICAgICAgRXhp
c3RpbmcgZXJyb3IgcmVwb3J0cyB3aWxsIGJlIG1vZGlmaWVkIHRvIHVzZSBmYWlsKCkgaW4gYSBs
YXRlciBwYXRjaC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHRodXMgbm8gbmV3
IHRlc3RzLgorCisgICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKiB3ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWls
KToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Lmg6CisKIDIwMTEtMDUtMjIgIEFuZHJldyBXYXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCA5NTZlMGZlZjNhM2ZkM2Y2NWY1NGRkZjcxZjkxN2YxYjRmNmMwZDEzLi45MTAzNDY0MDg4
Y2I1MzBjMzIxZmJiODlkYzZlZjZkZmU4ZTY1YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC01Myw2ICs1
Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBm
YWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7IC8vIExvZyB0aGUgcmVhc29uIHRleHQgYW5k
IGNsb3NlIHRoZSBjb25uZWN0aW9uLiBXaWxsIGNhbGwgZGlkQ2xvc2UoKS4KICAgICB2aXJ0dWFs
IHZvaWQgZGlzY29ubmVjdCgpID0gMDsgLy8gV2lsbCBzdXBwcmVzcyBkaWRDbG9zZSgpLgogCiAg
ICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjMmE3YjhjMmU3NWNmY2MzZTRjMGYwZjlj
ZWRlYzUyMjk5MWY4MWViLi5hMzFjMTU1ZTc2NDUxNTc2NjM1MmQ3ZGI1ZjlkMjI2MzA1MWFiNjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
QEAgLTEyMSw2ICsxMjEsMTYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjbG9zZSgpCiAgICAg
ICAgIG1faGFuZGxlLT5jbG9zZSgpOyAgLy8gd2lsbCBjYWxsIGRpZENsb3NlKCkKIH0KIAordm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQoreworICAgIExP
RyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBmYWlsOiAlcyIsIHRoaXMsIHJlYXNvbi51
dGY4KCkuZGF0YSgpKTsKKyAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKKyAgICBpZiAobV9jb250
ZXh0KQorICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIHJlYXNvbiwgMCwgbV9oYW5kc2hha2UuY2xp
ZW50T3JpZ2luKCksIDApOworICAgIGlmIChtX2hhbmRsZSkKKyAgICAgICAgbV9oYW5kbGUtPmNs
b3NlKCk7IC8vIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgorfQorCiB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpc2Nvbm5lY3QoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAl
cCBkaXNjb25uZWN0IiwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5oCmluZGV4IGEzOWNkMGUwYzI5OThjNGJhY2Q4ZTU4YWQ3OWI5MWQ0NzMzMzRi
MDguLmIwZTQzNThhMzczNGNiMzhhYzk0MmZlYjI2YjViYWIyZThkYTJhZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC01OCw2ICs1OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKICAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1v
dW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7IC8vIExvZyB0aGUgcmVhc29uIHRl
eHQgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uLiBXaWxsIGNhbGwgZGlkQ2xvc2UoKS4KICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKTsgLy8gV2lsbCBzdXBwcmVzcyBkaWRDbG9zZSgp
LgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwCmluZGV4IDVkODQ0OTU0MzBkZWZhZWZlM2UzNTZmOTQ4MDEwNzIyYmIyNjhmNjIuLmE0
YjhjNmE3NTdjYzYxMDBhN2NlZDk3YmQyNWQwZDFiOGJiYzQwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwCkBAIC04OCw2ICs4OCwxMiBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjbG9zZSgpCiAgICAgICAgIG1fYnJpZGdlLT5jbG9zZSgpOwogfQogCit2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYg
cmVhc29uKQoreworICAgIGlmIChtX2JyaWRnZSkKKyAgICAgICAgbV9icmlkZ2UtPmZhaWwocmVh
c29uKTsKK30KKwogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKQEAgLTE3MSw2ICsxNzcsMTQg
QEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6Y2xvc2UoKQog
ICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwgPSAwOwogfQogCit2b2lkIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX21haW5XZWJTb2NrZXRDaGFu
bmVsKQorICAgICAgICByZXR1cm47CisgICAgbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+ZmFpbChy
ZWFzb24pOworfQorCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVy
OjpkaXNjb25uZWN0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMzU1LDYg
KzM2OSwyMiBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6
OmNsb3NlKCkKICAgICAgICAgY3JlYXRlQ2FsbGJhY2tUYXNrKCZXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZENsb3NlLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKG1f
cGVlcikpKTsKIH0KIAordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFp
blRocmVhZEZhaWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGVlciogcGVlciwg
Y29uc3QgU3RyaW5nJiByZWFzb24pCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgQVNT
RVJUKHBlZXIpOworCisgICAgcGVlci0+ZmFpbChyZWFzb24pOworfQorCit2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFz
b24pCit7CisgICAgQVNTRVJUKG1fcGVlcik7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1Rv
TG9hZGVyKAorICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjptYWluVGhyZWFkRmFpbCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhtX3Bl
ZXIpLCByZWFzb24pKTsKK30KKwogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6bWFpblRocmVhZERlc3Ryb3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGVl
ciogcGVlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
IGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oCmluZGV4IDlmMGIwMWFkNDQ0OTJjYzgxYTY3NzcyNmQwMGM4NTI1YmJiOTliY2EuLjZl
MDk3ODZhYWI0MTllOGU3ZTNlYzQ3NjNkNGE4NzVhMWYxNDgxMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZW5k
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgdmlydHVh
bCB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0KCk7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KICAgICB2aXJ0dWFsIHZvaWQg
c3VzcGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKQEAgLTkxLDYgKzkyLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAg
ICAgIHZvaWQgYnVmZmVyZWRBbW91bnQoKTsKICAgICAgICAgdm9pZCBjbG9zZSgpOworICAgICAg
ICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgICAgICB2b2lkIGRpc2Nvbm5l
Y3QoKTsKICAgICAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgICAgIHZvaWQgcmVzdW1lKCk7CkBA
IC0xMjAsNiArMTIyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBzZW5kKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKTsKICAg
ICAgICAgdm9pZCBjbG9zZSgpOworICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFz
b24pOwogICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKICAgICAgICAgdm9pZCBzdXNwZW5kKCk7
CiAgICAgICAgIHZvaWQgcmVzdW1lKCk7CkBAIC0xNTQsNiArMTU3LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkU2VuZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVl
ciosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZEJ1
ZmZlcmVkQW1vdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKik7CiAgICAgc3RhdGlj
IHZvaWQgbWFpblRocmVhZENsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKik7Cisg
ICAgc3RhdGljIHZvaWQgbWFpblRocmVhZEZhaWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBl
ZXIqLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZERl
c3Ryb3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBlZXIqKTsKICAgICBzdGF0aWMgdm9pZCBt
YWluVGhyZWFkU3VzcGVuZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciopOwogICAgIHN0
YXRpYyB2b2lkIG1haW5UaHJlYWRSZXN1bWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBlZXIq
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94573</attachid>
            <date>2011-05-23 23:32:52 -0700</date>
            <delta_ts>2011-05-24 02:16:02 -0700</delta_ts>
            <desc>Ready to commit</desc>
            <filename>bug-61277-20110524153250.patch</filename>
            <type>text/plain</type>
            <size>11002</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcxMjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5Y2QxODIyYjA4ZDJjOThk
Y2Y0YzNmZjBjYTRmNWZjNzQ1NGJkZjY4Li5iZjQ1Yjc5NjFlYTY1OGRjYTY5ZjA2ZGFhNDY4Mjhk
Zjk1ODA4MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDUtMjQgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
dCBUYW11cmEuCisKKyAgICAgICAgV2ViU29ja2V0OiBBZGQgZmFpbCgpIHRvIFdlYlNvY2tldENo
YW5uZWwgYW5kIGl0cyBmYW1pbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYxMjc3CisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3QgcGFydCBvZiBy
ZWZhY3RvcmluZyBlZmZvcnQgZGVzY3JpYmVkIGluIGJ1ZyA2MTExNS4KKyAgICAgICAgRXhpc3Rp
bmcgZXJyb3IgcmVwb3J0cyB3aWxsIGJlIG1vZGlmaWVkIHRvIHVzZSBmYWlsKCkgaW4gYSBsYXRl
ciBwYXRjaC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHRodXMgbm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
OgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkRmFpbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKToK
KyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6
CisKIDIwMTEtMDUtMTkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDk1NmUw
ZmVmM2EzZmQzZjY1ZjU0ZGRmNzFmOTE3ZjFiNGY2YzBkMTMuLjM0NGVjNmM0OGRmMmY2YjM0ZDEw
ZjNhZmU1MzljMTkxOWRhMDRjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOwog
ICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgLy8gTG9nIHRoZSByZWFzb24gdGV4dCBh
bmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24uIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgorICAgIHZpcnR1
YWwgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpc2Nvbm5lY3QoKSA9IDA7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KIAogICAgIHZp
cnR1YWwgdm9pZCBzdXNwZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYzJhN2I4YzJlNzVjZmNjM2U0YzBmMGY5Y2VkZWM1
MjI5OTFmODFlYi4uYTMxYzE1NWU3NjQ1MTU3NjYzNTJkN2RiNWY5ZDIyNjMwNTFhYjY1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0x
MjEsNiArMTIxLDE2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoKQogICAgICAgICBt
X2hhbmRsZS0+Y2xvc2UoKTsgIC8vIHdpbGwgY2FsbCBkaWRDbG9zZSgpCiB9CiAKK3ZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3sKKyAgICBMT0coTmV0
d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZmFpbDogJXMiLCB0aGlzLCByZWFzb24udXRmOCgp
LmRhdGEoKSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CisgICAgaWYgKG1fY29udGV4dCkK
KyAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCByZWFzb24sIDAsIG1faGFuZHNoYWtlLmNsaWVudE9y
aWdpbigpLCAwKTsKKyAgICBpZiAobV9oYW5kbGUpCisgICAgICAgIG1faGFuZGxlLT5jbG9zZSgp
OyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2UoKS4KK30KKwogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpk
aXNjb25uZWN0KCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlz
Y29ubmVjdCIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuaAppbmRleCBhMzljZDBlMGMyOTk4YzRiYWNkOGU1OGFkNzliOTFkNDczMzM0YjA4Li5j
ZDRiZGI4YzViNWFjNjc2NzBiOTNhYmQxZDU2MGRhZWVmOTVkMjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtNTgsNyArNTgsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CiAgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGRpc2Nvbm5lY3QoKTsgLy8gV2lsbCBzdXBwcmVzcyBkaWRDbG9zZSgpLgorICAgICAgICB2
aXJ0dWFsIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNjb25uZWN0KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApp
bmRleCA1ZDg0NDk1NDMwZGVmYWVmZTNlMzU2Zjk0ODAxMDcyMmJiMjY4ZjYyLi42OWZhMjg4NzJl
MDUzOTA1MThiYWIzMzk0YTc3N2IxYTFhYmRkM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcApAQCAtODgsNiArODgsMTIgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6Y2xvc2UoKQogICAgICAgICBtX2JyaWRnZS0+Y2xvc2UoKTsKIH0KIAordm9pZCBXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikK
K3sKKyAgICBpZiAobV9icmlkZ2UpCisgICAgICAgIG1fYnJpZGdlLT5mYWlsKHJlYXNvbik7Cit9
CisKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QoKQog
ewogICAgIG1fYnJpZGdlLT5kaXNjb25uZWN0KCk7CkBAIC0xNzEsNiArMTc3LDE0IEBAIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmNsb3NlKCkKICAgICBtX21h
aW5XZWJTb2NrZXRDaGFubmVsID0gMDsKIH0KIAordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwocmVhc29uKTsK
K30KKwogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI4Niw4ICszMDAsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNvbm5lY3Qo
KQogewogICAgIEFTU0VSVChtX3dvcmtlckNsaWVudFdyYXBwZXIpOwogICAgIEFTU0VSVChtX3Bl
ZXIpOwotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcigKLSAgICAgICAgY3JlYXRl
Q2FsbGJhY2tUYXNrKCZXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFpblRocmVh
ZENvbm5lY3QsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MobV9wZWVyKSkpOworICAgIG1fbG9hZGVy
UHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkQ29ubmVjdCwgQWxsb3dDcm9zc1RocmVhZEFj
Y2VzcyhtX3BlZXIpKSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6Om1haW5UaHJlYWRTZW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBlZXIq
IHBlZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTMwNSw5ICszMTgsNyBAQCBib29sIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgQVNTRVJUKG1fcGVlcik7CiAg
ICAgc2V0TWV0aG9kTm90Q29tcGxldGVkKCk7Ci0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1Rv
TG9hZGVyKAotICAgICAgICBjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MobV9wZWVyKSwgbWVzc2FnZSkpOworICAgIG1fbG9hZGVy
UHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cyhtX3BlZXIpLCBtZXNzYWdlKSk7CiAgICAgUmVmUHRyPEJyaWRnZT4gcHJvdGVjdCh0aGlzKTsK
ICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwogICAgIFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlciogY2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBl
ci5nZXQoKTsKQEAgLTMyOSw4ICszNDAsNyBAQCB1bnNpZ25lZCBsb25nIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmJ1ZmZlcmVkQW1vdW50KCkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgQVNTRVJUKG1fcGVlcik7CiAgICAgc2V0TWV0aG9kTm90Q29tcGxldGVkKCk7
Ci0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKAotICAgICAgICBjcmVhdGVDYWxs
YmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkQnVm
ZmVyZWRBbW91bnQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MobV9wZWVyKSkpOworICAgIG1fbG9h
ZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkQnVmZmVyZWRBbW91bnQsIEFsbG93Q3Jv
c3NUaHJlYWRBY2Nlc3MobV9wZWVyKSkpOwogICAgIFJlZlB0cjxCcmlkZ2U+IHByb3RlY3QodGhp
cyk7CiAgICAgd2FpdEZvck1ldGhvZENvbXBsZXRpb24oKTsKICAgICBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdy
YXBwZXIuZ2V0KCk7CkBAIC0zNTEsOCArMzYxLDIyIEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRDbG9zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
CiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNsb3NlKCkK
IHsKICAgICBBU1NFUlQobV9wZWVyKTsKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2Fk
ZXIoCi0gICAgICAgIGNyZWF0ZUNhbGxiYWNrVGFzaygmV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6Om1haW5UaHJlYWRDbG9zZSwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhtX3BlZXIp
KSk7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxiYWNrVGFz
aygmV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRDbG9zZSwgQWxs
b3dDcm9zc1RocmVhZEFjY2VzcyhtX3BlZXIpKSk7Cit9CisKK3ZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRGYWlsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBlZXIqIHBlZXIsIGNvbnN0IFN0cmluZyYgcmVhc29uKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5p
c0RvY3VtZW50KCkpOworICAgIEFTU0VSVChwZWVyKTsKKworICAgIHBlZXItPmZhaWwocmVhc29u
KTsKK30KKwordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpm
YWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQoreworICAgIEFTU0VSVChtX3BlZXIpOworICAgIG1f
bG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkRmFpbCwgQWxsb3dDcm9zc1RocmVh
ZEFjY2VzcyhtX3BlZXIpLCByZWFzb24pKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZERlc3Ryb3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGVlciogcGVlcikKQEAgLTM3MCw4ICszOTQsNyBAQCB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmRpc2Nvbm5lY3QoKQogICAgIGlmIChtX3Bl
ZXIpIHsKICAgICAgICAgUGVlciogcGVlciA9IG1fcGVlcjsKICAgICAgICAgbV9wZWVyID0gMDsK
LSAgICAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKAotICAgICAgICAgICAgY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZtYWluVGhyZWFkRGVzdHJveSwgQWxsb3dDcm9zc1RocmVhZEFjY2Vz
cyhwZWVyKSkpOworICAgICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRl
Q2FsbGJhY2tUYXNrKCZtYWluVGhyZWFkRGVzdHJveSwgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcyhw
ZWVyKSkpOwogICAgIH0KICAgICBtX3dvcmtlckNvbnRleHQgPSAwOwogfQpAQCAtMzg4LDggKzQx
MSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRT
dXNwZW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpCcmlkZ2U6OnN1c3BlbmQoKQogewogICAgIEFTU0VSVChtX3BlZXIpOwot
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcigKLSAgICAgICAgY3JlYXRlQ2FsbGJh
Y2tUYXNrKCZXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZFN1c3Bl
bmQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MobV9wZWVyKSkpOworICAgIG1fbG9hZGVyUHJveHku
cG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjptYWluVGhyZWFkU3VzcGVuZCwgQWxsb3dDcm9zc1RocmVhZEFjY2Vzcyht
X3BlZXIpKSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1h
aW5UaHJlYWRSZXN1bWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGVlciogcGVl
cikKQEAgLTQwNCw4ICs0MjYsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjptYWluVGhyZWFkUmVzdW1lKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnJlc3VtZSgpCiB7CiAgICAgQVNT
RVJUKG1fcGVlcik7Ci0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKAotICAgICAg
ICBjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpt
YWluVGhyZWFkUmVzdW1lLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKG1fcGVlcikpKTsKKyAgICBt
X2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZFJlc3VtZSwgQWxsb3dDcm9zc1Ro
cmVhZEFjY2VzcyhtX3BlZXIpKSk7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OkJyaWRnZTo6Y2xlYXJDbGllbnRXcmFwcGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaAppbmRleCA5ZjBiMDFhZDQ0NDkyY2M4MWE2Nzc3MjZkMDBjODUyNWJiYjk5YmNhLi42ZTA5
Nzg2YWFiNDE5ZThlN2UzZWM0NzYzZDRhODc1YTFmMTQ4MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2VuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJl
ZEFtb3VudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOworICAgIHZpcnR1YWwg
dm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdCgpOyAvLyBXaWxsIHN1cHByZXNzIGRpZENsb3NlKCkuCiAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7CkBAIC05MSw2ICs5Miw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIHZvaWQgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgICAg
ICB2b2lkIGJ1ZmZlcmVkQW1vdW50KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKKyAgICAgICAg
dm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0
KCk7CiAgICAgICAgIHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwpAQCAt
MTIwLDYgKzEyMiw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgc2VuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOwogICAgICAgICB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCk7CiAgICAg
ICAgIHZvaWQgY2xvc2UoKTsKKyAgICAgICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAgICAgIHZvaWQgc3VzcGVuZCgpOwog
ICAgICAgICB2b2lkIHJlc3VtZSgpOwpAQCAtMTU0LDYgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIHZvaWQgbWFpblRocmVhZFNlbmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBlZXIq
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRCdWZm
ZXJlZEFtb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciopOwogICAgIHN0YXRpYyB2
b2lkIG1haW5UaHJlYWRDbG9zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciopOworICAg
IHN0YXRpYyB2b2lkIG1haW5UaHJlYWRGYWlsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVy
KiwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWREZXN0
cm95KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKik7CiAgICAgc3RhdGljIHZvaWQgbWFp
blRocmVhZFN1c3BlbmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBlZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBtYWluVGhyZWFkUmVzdW1lKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKik7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>