<?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>67363</bug_id>
          
          <creation_ts>2011-08-31 23:14:09 -0700</creation_ts>
          <short_desc>WebSocket: Fix bufferedAmount after WebSocket is closed</short_desc>
          <delta_ts>2011-09-01 02:58:03 -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>50099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>460247</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-31 23:14:09 -0700</bug_when>
    <thetext>It&apos;s fairly obvious when you see the source code:

http://trac.webkit.org/browser/trunk/Source/WebCore/websockets/WebSocket.cpp?rev=94274#L257
257	        m_bufferedAmountAfterClose += message.utf8().length() + 2; // 2 for frameing

This code only assumes hixie76 protocol in which every frame has two-byte framing overhead (&quot;\x00&quot; and &quot;\xFF&quot;). Let&apos;s make this code hybi-aware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460257</commentid>
    <comment_count>1</comment_count>
      <attachid>105901</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-31 23:26:55 -0700</bug_when>
    <thetext>Created attachment 105901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460264</commentid>
    <comment_count>2</comment_count>
      <attachid>105901</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-31 23:43:56 -0700</bug_when>
    <thetext>Comment on attachment 105901
Patch

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

&gt; LayoutTests/http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:25
&gt; +function getExpectedFramingOverhead(payloadSize)
&gt; +{
&gt; +    var overhead = 2 + 4; // Base header size and masking key size.
&gt; +    if (payloadSize &gt; 0xFFFF)
&gt; +        overhead += 8;
&gt; +    else if (payloadSize &gt; 125)
&gt; +        overhead += 2;
&gt; +    return overhead;
&gt; +}

Copying the code logic in C++ to the test code makes the test meaningless.  We should have constant values of the overheads for each test cases.

&gt; LayoutTests/http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:59
&gt; +function doTest(message)

nit: doTest -&gt; testBufferedAmount ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460310</commentid>
    <comment_count>3</comment_count>
      <attachid>105918</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-09-01 00:58:47 -0700</bug_when>
    <thetext>Created attachment 105918
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460312</commentid>
    <comment_count>4</comment_count>
      <attachid>105901</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-09-01 00:59:41 -0700</bug_when>
    <thetext>Comment on attachment 105901
Patch

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

&gt;&gt; LayoutTests/http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:25
&gt;&gt; +}
&gt; 
&gt; Copying the code logic in C++ to the test code makes the test meaningless.  We should have constant values of the overheads for each test cases.

Fixed.

&gt;&gt; LayoutTests/http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:59
&gt;&gt; +function doTest(message)
&gt; 
&gt; nit: doTest -&gt; testBufferedAmount ?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460318</commentid>
    <comment_count>5</comment_count>
      <attachid>105918</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-01 01:19:14 -0700</bug_when>
    <thetext>Comment on attachment 105918
Patch v2

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460349</commentid>
    <comment_count>6</comment_count>
      <attachid>105918</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 02:57:59 -0700</bug_when>
    <thetext>Comment on attachment 105918
Patch v2

Clearing flags on attachment: 105918

Committed r94282: &lt;http://trac.webkit.org/changeset/94282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460350</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 02:58:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105901</attachid>
            <date>2011-08-31 23:26:55 -0700</date>
            <delta_ts>2011-09-01 00:59:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67363-20110901152654.patch</filename>
            <type>text/plain</type>
            <size>7803</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQxODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiOWNhMTFmOGNhMGEwMTUyOTJjZTQ3
YWQ2NmYxZjA0NmUyNjA5YzlhLi44MGJhNGZhMjEyMTBhYjEzODYwNDZjNTg2NmIxMWQ5ODY5MmEw
YzI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMzEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBGaXggYnVmZmVyZWRBbW91
bnQgYWZ0ZXIgV2ViU29ja2V0IGlzIGNsb3NlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbDoK
KyAgICAgICAgVHJ5IHRvIHNlbmQgbWVzc2FnZXMgaGF2aW5nIHZhcmlvdXMgbGVuZ3RocyB0byBt
YWtlIHN1cmUgd2UgY29ycmVjdGx5IGNhbGN1bGF0ZQorICAgICAgICB0aGUgZnJhbWluZyBvdmVy
aGVhZC4KKwogMjAxMS0wOC0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHBhcnQgb2Ygcjk0MTY4LCB0aGUgdGVz
dCBkaWRuJ3QgbmVlZCByZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJl
ZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKaW5kZXggOTFiNGVjNzViYWMyMzQ1Yzcz
OTJlOTE3MzhjNDMyOTJlMmY2NWFkYi4uZTcyOTgwNzAzNThhZDU4MjIzNjQxODM1N2M3ZDNmZmZj
MDQ4MzRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1h
ZnRlci1jbG9zZS1leHBlY3RlZC50eHQKQEAgLTYsOCArNiwyMCBAQCBDb25uZWN0ZWQuCiBDbG9z
ZWQuCiBQQVNTIHdzLnJlYWR5U3RhdGUgaXMgMwogUEFTUyB3cy5idWZmZXJlZEFtb3VudCBpcyAw
Ci1QQVNTIHdzLnNlbmQoJ3NlbmQgdG8gY2xvc2VkIHNvY2tldCcpIGlzIGZhbHNlCi1QQVNTIHdz
LmJ1ZmZlcmVkQW1vdW50IGlzIDIzCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFs
c2UKK1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDI3CitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYK
K1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyBidWZmZXJlZEFtb3Vu
dERpZmZlcmVuY2UgaXMgNworUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQ
QVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEKK1BBU1Mgd3Muc2VuZChtZXNzYWdl
VG9TZW5kKSBpcyBmYWxzZQorUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgMTM0CitQ
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDY1NTQzCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UK
K1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDY1NTUwCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xv
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAppbmRleCAwZDY4MTMxYzFiODJjOGFhMzdjNjhk
MjlhMzQ5ZjViNzVlZjQ5ZTA3Li4zYzgwNTc0ZjVlZDRjZjM4NTg2M2IwYzcyNTQxNmNiZmE4YTg5
NDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5o
dG1sCkBAIC0xNCw2ICsxNCwyNCBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIs
IDApOwogCitmdW5jdGlvbiBnZXRFeHBlY3RlZEZyYW1pbmdPdmVyaGVhZChwYXlsb2FkU2l6ZSkK
K3sKKyAgICB2YXIgb3ZlcmhlYWQgPSAyICsgNDsgLy8gQmFzZSBoZWFkZXIgc2l6ZSBhbmQgbWFz
a2luZyBrZXkgc2l6ZS4KKyAgICBpZiAocGF5bG9hZFNpemUgPiAweEZGRkYpCisgICAgICAgIG92
ZXJoZWFkICs9IDg7CisgICAgZWxzZSBpZiAocGF5bG9hZFNpemUgPiAxMjUpCisgICAgICAgIG92
ZXJoZWFkICs9IDI7CisgICAgcmV0dXJuIG92ZXJoZWFkOworfQorCitmdW5jdGlvbiBjcmVhdGVT
dHJpbmdXaXRoTGVuZ3RoKGxlbmd0aCkKK3sKKyAgICB2YXIgc3RyaW5nID0gJ3gnOworICAgIHdo
aWxlIChzdHJpbmcubGVuZ3RoIDwgbGVuZ3RoKQorICAgICAgICBzdHJpbmcgPSBzdHJpbmcgKyBz
dHJpbmc7CisgICAgcmV0dXJuIHN0cmluZy5zdWJzdHJpbmcoMCwgbGVuZ3RoKTsKK30KKwogdmFy
IHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMv
aHliaS9zaW1wbGUiKTsKIAogd3Mub25vcGVuID0gZnVuY3Rpb24oKQpAQCAtMjcsMTMgKzQ1LDMw
IEBAIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpCiAgICAgZGVidWcoIkNsb3NlZC4iKTsKICAgICBz
aG91bGRCZSgid3MucmVhZHlTdGF0ZSIsICIzIik7CiAgICAgc2hvdWxkQmUoIndzLmJ1ZmZlcmVk
QW1vdW50IiwgIjAiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJ3cy5zZW5kKCdzZW5kIHRvIGNsb3Nl
ZCBzb2NrZXQnKSIpOworCisgICAgdmFyIG1lc3NhZ2VzID0gWydzZW5kIHRvIGNsb3NlZCBzb2Nr
ZXQnLCAnJywgJ2EnLCBjcmVhdGVTdHJpbmdXaXRoTGVuZ3RoKDEyNSksIGNyZWF0ZVN0cmluZ1dp
dGhMZW5ndGgoMTI2KSwgY3JlYXRlU3RyaW5nV2l0aExlbmd0aCgweEZGRkYpLCBjcmVhdGVTdHJp
bmdXaXRoTGVuZ3RoKDB4MTAwMDApXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2Vz
Lmxlbmd0aDsgKytpKQorICAgICAgICBkb1Rlc3QobWVzc2FnZXNbaV0pOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9OworCit2YXIgbWVzc2FnZVRvU2VuZDsKK3ZhciBidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2U7CisKK2Z1bmN0aW9uIGRvVGVzdChtZXNzYWdlKQorewogICAgIC8vIElmIHRoZSBj
b25uZWN0aW9uIGlzIGNsb3NlZCwgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlJ3MgdmFsdWUgd2ls
bCBvbmx5CiAgICAgLy8gaW5jcmVhc2Ugd2l0aCBlYWNoIGNhbGwgdG8gdGhlIHNlbmQoKSBtZXRo
b2QuCiAgICAgLy8gKHRoZSBudW1iZXIgZG9lcyBub3QgcmVzZXQgdG8gemVybyBvbmNlIHRoZSBj
b25uZWN0aW9uIGNsb3NlcykuCi0gICAgc2hvdWxkQmUoIndzLmJ1ZmZlcmVkQW1vdW50IiwgIjIz
Iik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19OworICAgIG1lc3NhZ2VUb1NlbmQgPSBtZXNzYWdl
OworICAgIHZhciBidWZmZXJlZEFtb3VudEJlZm9yZVNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsK
KyAgICBzaG91bGRCZUZhbHNlKCJ3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIik7CisgICAgdmFyIGJ1
ZmZlcmVkQW1vdW50QWZ0ZXJTZW5kID0gd3MuYnVmZmVyZWRBbW91bnQ7CisgICAgYnVmZmVyZWRB
bW91bnREaWZmZXJlbmNlID0gYnVmZmVyZWRBbW91bnRBZnRlclNlbmQgLSBidWZmZXJlZEFtb3Vu
dEJlZm9yZVNlbmQ7CisgICAgLy8gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBtZXNzYWdlIGNvbnNp
c3RzIG9mIEFTQ0lJIGNoYXJhY3RlcnMuCisgICAgc2hvdWxkRXZhbHVhdGVUbygiYnVmZmVyZWRB
bW91bnREaWZmZXJlbmNlIiwgbWVzc2FnZS5sZW5ndGggKyBnZXRFeHBlY3RlZEZyYW1pbmdPdmVy
aGVhZChtZXNzYWdlLmxlbmd0aCkpOworfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDlmODg3MmY1NWU1Yjg2MzA3MzllMGNiYTM5NTI2
YWY4MjUzZjE4NTQuLjY5MjViM2IwZjI1ODU2OWM4N2JiMjYyNTg0MDhkZTEyYTAxMjMyZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wOC0zMSAgWXV0YSBLaXRhbXVyYSAgPHl1
dGFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWJTb2NrZXQ6IEZpeCBidWZmZXJlZEFtb3Vu
dCBhZnRlciBXZWJTb2NrZXQgaXMgY2xvc2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NzM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
YnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbCAodXBkYXRlZCkKKworICAgICAgICAqIHdl
YnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmdldEZyYW1pbmdPdmVyaGVhZCk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKwogMjAxMS0wOC0zMSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjk0MDgyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CmluZGV4IGRjOWFiYmFmNGM0NmFlZDY5ODJhNjc2ZDM5NWQ4MzY4ODVmMzFiZjUuLmY5ODZjNTEz
NDA5YmNhY2RiODlkZDYzMzBjYTI5NDUxMDE1MzQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKQEAgLTI1NCw3ICsyNTQsOCBAQCBib29sIFdlYlNvY2tldDo6c2Vu
ZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KICAgICAv
LyBObyBleGNlcHRpb24gaXMgcmFpc2VkIGlmIHRoZSBjb25uZWN0aW9uIHdhcyBvbmNlIGVzdGFi
bGlzaGVkIGJ1dCBoYXMgc3Vic2VxdWVudGx5IGJlZW4gY2xvc2VkLgogICAgIGlmIChtX3N0YXRl
ID09IENMT1NJTkcgfHwgbV9zdGF0ZSA9PSBDTE9TRUQpIHsKLSAgICAgICAgbV9idWZmZXJlZEFt
b3VudEFmdGVyQ2xvc2UgKz0gbWVzc2FnZS51dGY4KCkubGVuZ3RoKCkgKyAyOyAvLyAyIGZvciBm
cmFtZWluZworICAgICAgICBzaXplX3QgcGF5bG9hZFNpemUgPSBtZXNzYWdlLnV0ZjgoKS5sZW5n
dGgoKTsKKyAgICAgICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgKz0gcGF5bG9hZFNpemUg
KyBnZXRGcmFtaW5nT3ZlcmhlYWQocGF5bG9hZFNpemUpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogICAgIC8vIEZJWE1FOiBjaGVjayBtZXNzYWdlIGlzIHZhbGlkIHV0ZjguCkBAIC00
NjUsNiArNDY2LDI0IEBAIEV2ZW50VGFyZ2V0RGF0YSogV2ViU29ja2V0OjplbnN1cmVFdmVudFRh
cmdldERhdGEoKQogICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7CiB9CiAKK3NpemVfdCBX
ZWJTb2NrZXQ6OmdldEZyYW1pbmdPdmVyaGVhZChzaXplX3QgcGF5bG9hZFNpemUpCit7CisgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBoaXhpZTc2RnJhbWluZ092ZXJoZWFkID0gMjsgLy8gUGF5bG9h
ZCBpcyBzdXJyb3VuZGVkIGJ5IDB4MDAgYW5kIDB4RkYuCisgICAgaWYgKG1fdXNlSGl4aWU3NlBy
b3RvY29sKQorICAgICAgICByZXR1cm4gaGl4aWU3NkZyYW1pbmdPdmVyaGVhZDsKKworICAgIHN0
YXRpYyBjb25zdCBzaXplX3QgaHliaUJhc2VGcmFtaW5nT3ZlcmhlYWQgPSAyOyAvLyBFdmVyeSBm
cmFtZSBoYXMgYXQgbGVhc3QgdHdvLWJ5dGUgaGVhZGVyLgorICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgaHliaU1hc2tpbmdLZXlMZW5ndGggPSA0OyAvLyBFdmVyeSBmcmFtZSBmcm9tIGNsaWVudCBt
dXN0IGhhdmUgbWFza2luZyBrZXkuCisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtaW5pbXVtUGF5
bG9hZFNpemVXaXRoVHdvQnl0ZUV4dGVuZGVkUGF5bG9hZExlbmd0aCA9IDEyNjsKKyAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IG1pbmltdW1QYXlsb2FkU2l6ZVdpdGhFaWdodEJ5dGVFeHRlbmRlZFBh
eWxvYWRMZW5ndGggPSAweDEwMDAwOworICAgIHNpemVfdCBvdmVyaGVhZCA9IGh5YmlCYXNlRnJh
bWluZ092ZXJoZWFkICsgaHliaU1hc2tpbmdLZXlMZW5ndGg7CisgICAgaWYgKHBheWxvYWRTaXpl
ID49IG1pbmltdW1QYXlsb2FkU2l6ZVdpdGhFaWdodEJ5dGVFeHRlbmRlZFBheWxvYWRMZW5ndGgp
CisgICAgICAgIG92ZXJoZWFkICs9IDg7CisgICAgZWxzZSBpZiAocGF5bG9hZFNpemUgPj0gbWlu
aW11bVBheWxvYWRTaXplV2l0aFR3b0J5dGVFeHRlbmRlZFBheWxvYWRMZW5ndGgpCisgICAgICAg
IG92ZXJoZWFkICs9IDI7CisgICAgcmV0dXJuIG92ZXJoZWFkOworfQorCiB9ICAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmlu
ZGV4IDU2ZTIwMDZjMDEzNzE4ZmUxNDg4ZDcyM2M1MWUwOThhNDIzYTFmYmYuLjc2NjU5ZjMyODM3
NTU0ZDllODE1ZTExMjY4ZjI2MzE0ZGRhNzY5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaApAQCAtMTEzLDYgKzExMyw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKIAorICAgIHNpemVfdCBnZXRGcmFtaW5nT3Zl
cmhlYWQoc2l6ZV90IHBheWxvYWRTaXplKTsKKwogICAgIGVudW0gQmluYXJ5VHlwZSB7CiAgICAg
ICAgIEJpbmFyeVR5cGVCbG9iLAogICAgICAgICBCaW5hcnlUeXBlQXJyYXlCdWZmZXIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105918</attachid>
            <date>2011-09-01 00:58:47 -0700</date>
            <delta_ts>2011-09-01 02:57:59 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-67363-20110901165846.patch</filename>
            <type>text/plain</type>
            <size>7883</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQxODkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiOWNhMTFmOGNhMGEwMTUyOTJjZTQ3
YWQ2NmYxZjA0NmUyNjA5YzlhLi44MGJhNGZhMjEyMTBhYjEzODYwNDZjNTg2NmIxMWQ5ODY5MmEw
YzI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMzEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBGaXggYnVmZmVyZWRBbW91
bnQgYWZ0ZXIgV2ViU29ja2V0IGlzIGNsb3NlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbDoK
KyAgICAgICAgVHJ5IHRvIHNlbmQgbWVzc2FnZXMgaGF2aW5nIHZhcmlvdXMgbGVuZ3RocyB0byBt
YWtlIHN1cmUgd2UgY29ycmVjdGx5IGNhbGN1bGF0ZQorICAgICAgICB0aGUgZnJhbWluZyBvdmVy
aGVhZC4KKwogMjAxMS0wOC0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHBhcnQgb2Ygcjk0MTY4LCB0aGUgdGVz
dCBkaWRuJ3QgbmVlZCByZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJl
ZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKaW5kZXggOTFiNGVjNzViYWMyMzQ1Yzcz
OTJlOTE3MzhjNDMyOTJlMmY2NWFkYi4uZTcyOTgwNzAzNThhZDU4MjIzNjQxODM1N2M3ZDNmZmZj
MDQ4MzRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1h
ZnRlci1jbG9zZS1leHBlY3RlZC50eHQKQEAgLTYsOCArNiwyMCBAQCBDb25uZWN0ZWQuCiBDbG9z
ZWQuCiBQQVNTIHdzLnJlYWR5U3RhdGUgaXMgMwogUEFTUyB3cy5idWZmZXJlZEFtb3VudCBpcyAw
Ci1QQVNTIHdzLnNlbmQoJ3NlbmQgdG8gY2xvc2VkIHNvY2tldCcpIGlzIGZhbHNlCi1QQVNTIHdz
LmJ1ZmZlcmVkQW1vdW50IGlzIDIzCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFs
c2UKK1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDI3CitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYK
K1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyBidWZmZXJlZEFtb3Vu
dERpZmZlcmVuY2UgaXMgNworUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQ
QVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEKK1BBU1Mgd3Muc2VuZChtZXNzYWdl
VG9TZW5kKSBpcyBmYWxzZQorUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgMTM0CitQ
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDY1NTQzCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UK
K1BBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDY1NTUwCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xv
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAppbmRleCAwZDY4MTMxYzFiODJjOGFhMzdjNjhk
MjlhMzQ5ZjViNzVlZjQ5ZTA3Li4xNmE2YTRiNzE3N2U4ZWY3ZDc5ODlmMDU5MjMxMGIyNDhjZjg5
MzllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5o
dG1sCkBAIC0xNCw2ICsxNCwxNCBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIs
IDApOwogCitmdW5jdGlvbiBjcmVhdGVTdHJpbmdXaXRoTGVuZ3RoKGxlbmd0aCkKK3sKKyAgICB2
YXIgc3RyaW5nID0gJ3gnOworICAgIHdoaWxlIChzdHJpbmcubGVuZ3RoIDwgbGVuZ3RoKQorICAg
ICAgICBzdHJpbmcgPSBzdHJpbmcgKyBzdHJpbmc7CisgICAgcmV0dXJuIHN0cmluZy5zdWJzdHJp
bmcoMCwgbGVuZ3RoKTsKK30KKwogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhv
c3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9zaW1wbGUiKTsKIAogd3Mub25vcGVuID0gZnVu
Y3Rpb24oKQpAQCAtMjcsMTMgKzM1LDM0IEBAIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpCiAgICAg
ZGVidWcoIkNsb3NlZC4iKTsKICAgICBzaG91bGRCZSgid3MucmVhZHlTdGF0ZSIsICIzIik7CiAg
ICAgc2hvdWxkQmUoIndzLmJ1ZmZlcmVkQW1vdW50IiwgIjAiKTsKLSAgICBzaG91bGRCZUZhbHNl
KCJ3cy5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSIpOworCisgICAgdmFyIGJhc2VPdmVy
aGVhZCA9IDIgKyA0OyAvLyBCYXNlIGhlYWRlciBzaXplIGFuZCBtYXNraW5nIGtleSBzaXplLgor
ICAgIHRlc3RCdWZmZXJlZEFtb3VudCgnc2VuZCB0byBjbG9zZWQgc29ja2V0JywgMjEgKyBiYXNl
T3ZlcmhlYWQpOworICAgIHRlc3RCdWZmZXJlZEFtb3VudCgnJywgYmFzZU92ZXJoZWFkKTsKKyAg
ICB0ZXN0QnVmZmVyZWRBbW91bnQoJ2EnLCAxICsgYmFzZU92ZXJoZWFkKTsKKyAgICB0ZXN0QnVm
ZmVyZWRBbW91bnQoY3JlYXRlU3RyaW5nV2l0aExlbmd0aCgxMjUpLCAxMjUgKyBiYXNlT3Zlcmhl
YWQpOworICAgIHRlc3RCdWZmZXJlZEFtb3VudChjcmVhdGVTdHJpbmdXaXRoTGVuZ3RoKDEyNiks
IDEyNiArIGJhc2VPdmVyaGVhZCArIDIpOyAvLyBXaXRoIDE2LWJpdCBleHRlbmRlZCBwYXlsb2Fk
IGxlbmd0aCBmaWVsZC4KKyAgICB0ZXN0QnVmZmVyZWRBbW91bnQoY3JlYXRlU3RyaW5nV2l0aExl
bmd0aCgweEZGRkYpLCAweEZGRkYgKyBiYXNlT3ZlcmhlYWQgKyAyKTsKKyAgICB0ZXN0QnVmZmVy
ZWRBbW91bnQoY3JlYXRlU3RyaW5nV2l0aExlbmd0aCgweDEwMDAwKSwgMHgxMDAwMCArIGJhc2VP
dmVyaGVhZCArIDgpOyAvLyBXaXRoIDY0LWJpdCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVs
ZC4KKworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwordmFyIG1lc3NhZ2VUb1NlbmQ7Cit2YXIg
YnVmZmVyZWRBbW91bnREaWZmZXJlbmNlOworCitmdW5jdGlvbiB0ZXN0QnVmZmVyZWRBbW91bnQo
bWVzc2FnZSwgZXhwZWN0ZWRCdWZmZXJlZEFtb3VudERpZmZlcmVuY2UpCit7CiAgICAgLy8gSWYg
dGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUncyB2YWx1
ZSB3aWxsIG9ubHkKICAgICAvLyBpbmNyZWFzZSB3aXRoIGVhY2ggY2FsbCB0byB0aGUgc2VuZCgp
IG1ldGhvZC4KICAgICAvLyAodGhlIG51bWJlciBkb2VzIG5vdCByZXNldCB0byB6ZXJvIG9uY2Ug
dGhlIGNvbm5lY3Rpb24gY2xvc2VzKS4KLSAgICBzaG91bGRCZSgid3MuYnVmZmVyZWRBbW91bnQi
LCAiMjMiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX07CisgICAgbWVzc2FnZVRvU2VuZCA9IG1l
c3NhZ2U7CisgICAgdmFyIGJ1ZmZlcmVkQW1vdW50QmVmb3JlU2VuZCA9IHdzLmJ1ZmZlcmVkQW1v
dW50OworICAgIHNob3VsZEJlRmFsc2UoIndzLnNlbmQobWVzc2FnZVRvU2VuZCkiKTsKKyAgICB2
YXIgYnVmZmVyZWRBbW91bnRBZnRlclNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsKKyAgICBidWZm
ZXJlZEFtb3VudERpZmZlcmVuY2UgPSBidWZmZXJlZEFtb3VudEFmdGVyU2VuZCAtIGJ1ZmZlcmVk
QW1vdW50QmVmb3JlU2VuZDsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UiLCBleHBlY3RlZEJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSk7Cit9CiAKIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY4ODcy
ZjU1ZTViODYzMDczOWUwY2JhMzk1MjZhZjgyNTNmMTg1NC4uNjkyNWIzYjBmMjU4NTY5Yzg3YmIy
NjI1ODQwOGRlMTJhMDEyMzJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA4
LTMxICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNv
Y2tldDogRml4IGJ1ZmZlcmVkQW1vdW50IGFmdGVyIFdlYlNvY2tldCBpcyBjbG9zZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzYzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sICh1
cGRhdGVkKQorCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0OjpzZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
Z2V0RnJhbWluZ092ZXJoZWFkKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgor
CiAyMDExLTA4LTMxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTQwODIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZGM5YWJiYWY0YzQ2YWVkNjk4MmE2NzZkMzk1
ZDgzNjg4NWYzMWJmNS4uZjk4NmM1MTM0MDliY2FjZGI4OWRkNjMzMGNhMjk0NTEwMTUzNDc5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMjU0LDcgKzI1NCw4
IEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgfQogICAgIC8vIE5vIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYgdGhlIGNv
bm5lY3Rpb24gd2FzIG9uY2UgZXN0YWJsaXNoZWQgYnV0IGhhcyBzdWJzZXF1ZW50bHkgYmVlbiBj
bG9zZWQuCiAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0lORyB8fCBtX3N0YXRlID09IENMT1NFRCkg
ewotICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSArPSBtZXNzYWdlLnV0ZjgoKS5s
ZW5ndGgoKSArIDI7IC8vIDIgZm9yIGZyYW1laW5nCisgICAgICAgIHNpemVfdCBwYXlsb2FkU2l6
ZSA9IG1lc3NhZ2UudXRmOCgpLmxlbmd0aCgpOworICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0
ZXJDbG9zZSArPSBwYXlsb2FkU2l6ZSArIGdldEZyYW1pbmdPdmVyaGVhZChwYXlsb2FkU2l6ZSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgLy8gRklYTUU6IGNoZWNrIG1lc3Nh
Z2UgaXMgdmFsaWQgdXRmOC4KQEAgLTQ2NSw2ICs0NjYsMjQgQEAgRXZlbnRUYXJnZXREYXRhKiBX
ZWJTb2NrZXQ6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCiAgICAgcmV0dXJuICZtX2V2ZW50VGFy
Z2V0RGF0YTsKIH0KIAorc2l6ZV90IFdlYlNvY2tldDo6Z2V0RnJhbWluZ092ZXJoZWFkKHNpemVf
dCBwYXlsb2FkU2l6ZSkKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGhpeGllNzZGcmFtaW5n
T3ZlcmhlYWQgPSAyOyAvLyBQYXlsb2FkIGlzIHN1cnJvdW5kZWQgYnkgMHgwMCBhbmQgMHhGRi4K
KyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgICAgIHJldHVybiBoaXhpZTc2RnJh
bWluZ092ZXJoZWFkOworCisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBoeWJpQmFzZUZyYW1pbmdP
dmVyaGVhZCA9IDI7IC8vIEV2ZXJ5IGZyYW1lIGhhcyBhdCBsZWFzdCB0d28tYnl0ZSBoZWFkZXIu
CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBoeWJpTWFza2luZ0tleUxlbmd0aCA9IDQ7IC8vIEV2
ZXJ5IGZyYW1lIGZyb20gY2xpZW50IG11c3QgaGF2ZSBtYXNraW5nIGtleS4KKyAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IG1pbmltdW1QYXlsb2FkU2l6ZVdpdGhUd29CeXRlRXh0ZW5kZWRQYXlsb2Fk
TGVuZ3RoID0gMTI2OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWluaW11bVBheWxvYWRTaXpl
V2l0aEVpZ2h0Qnl0ZUV4dGVuZGVkUGF5bG9hZExlbmd0aCA9IDB4MTAwMDA7CisgICAgc2l6ZV90
IG92ZXJoZWFkID0gaHliaUJhc2VGcmFtaW5nT3ZlcmhlYWQgKyBoeWJpTWFza2luZ0tleUxlbmd0
aDsKKyAgICBpZiAocGF5bG9hZFNpemUgPj0gbWluaW11bVBheWxvYWRTaXplV2l0aEVpZ2h0Qnl0
ZUV4dGVuZGVkUGF5bG9hZExlbmd0aCkKKyAgICAgICAgb3ZlcmhlYWQgKz0gODsKKyAgICBlbHNl
IGlmIChwYXlsb2FkU2l6ZSA+PSBtaW5pbXVtUGF5bG9hZFNpemVXaXRoVHdvQnl0ZUV4dGVuZGVk
UGF5bG9hZExlbmd0aCkKKyAgICAgICAgb3ZlcmhlYWQgKz0gMjsKKyAgICByZXR1cm4gb3Zlcmhl
YWQ7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3dl
YnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggNTZlMjAwNmMwMTM3MThmZTE0ODhkNzIzYzUxZTA5
OGE0MjNhMWZiZi4uNzY2NTlmMzI4Mzc1NTRkOWU4MTVlMTEyNjhmMjYzMTRkZGE3Njk1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CiAg
ICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCisg
ICAgc2l6ZV90IGdldEZyYW1pbmdPdmVyaGVhZChzaXplX3QgcGF5bG9hZFNpemUpOworCiAgICAg
ZW51bSBCaW5hcnlUeXBlIHsKICAgICAgICAgQmluYXJ5VHlwZUJsb2IsCiAgICAgICAgIEJpbmFy
eVR5cGVBcnJheUJ1ZmZlcgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>