<?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>34633</bug_id>
          
          <creation_ts>2010-02-04 23:38:50 -0800</creation_ts>
          <short_desc>WebSocket bufferedAmount should not be 0 when send after close.</short_desc>
          <delta_ts>2010-02-17 21:32:28 -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>WebCore JavaScript</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>
          <dependson>34898</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fumitoshi Ukai">ukai</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188091</commentid>
    <comment_count>0</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-04 23:38:50 -0800</bug_when>
    <thetext>WebSocket API says:
 The bufferedAmount attribute must return the number of bytes that have been queued but not yet sent. If the connection is closed, this attribute&apos;s value will only increase with each call to the send() method (the number does not reset to zero once the connection closes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188099</commentid>
    <comment_count>1</comment_count>
      <attachid>48206</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-04 23:56:59 -0800</bug_when>
    <thetext>Created attachment 48206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189406</commentid>
    <comment_count>2</comment_count>
      <attachid>48206</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-10 10:33:44 -0800</bug_when>
    <thetext>Comment on attachment 48206
Patch

+        m_bufferedAmountAfterClose += message.utf8().length() + 2; // 2 for frameing

&quot;Framing&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189858</commentid>
    <comment_count>3</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-11 18:13:13 -0800</bug_when>
    <thetext>Committed r54694: &lt;http://trac.webkit.org/changeset/54694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190157</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-12 14:40:23 -0800</bug_when>
    <thetext>This is causing crashes under Leopard.  See bug 34898.

I recommend we roll this out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190173</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-12 15:21:35 -0800</bug_when>
    <thetext>Reverted r54694 for reason:

This appears to have caused crashes on the Leopard bot.  See bug 34898.

Committed r54741: &lt;http://trac.webkit.org/changeset/54741&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190189</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-12 15:39:19 -0800</bug_when>
    <thetext>*** Bug 34898 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190362</commentid>
    <comment_count>7</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-14 18:42:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; *** Bug 34898 has been marked as a duplicate of this bug. ***

(In reply to comment #4)
&gt; This is causing crashes under Leopard.  See bug 34898.

Thanks for crash report.

It shows it crashed at 

  m_client-&gt;didReceiveMessage(String::fromUTF8(msgStart, p - msgStart));

so m_client is 0 here.
This is because m_client could be 0 after some user callback called
(m_client-&gt;didConnect() was called before in this function).
Note that it is related to https://bugs.webkit.org/show_bug.cgi?id=34636 (onclose synchronously called. onopen -&gt; close -&gt; onclose).

I&apos;ll add check !m_client to fix the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190363</commentid>
    <comment_count>8</comment_count>
      <attachid>48737</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-14 18:43:15 -0800</bug_when>
    <thetext>Created attachment 48737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191070</commentid>
    <comment_count>9</comment_count>
      <attachid>48737</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-17 10:07:47 -0800</bug_when>
    <thetext>Comment on attachment 48737
Patch

+                if (frameByte == 0x00 &amp;&amp; !m_client)
                     m_client-&gt;didReceiveMessage(String::fromUTF8(msgStart, p - msgStart));

The check is backwards (should be m_client, not !m_client). Did you run regression tests with this change? If no test detects such a mistake, we should try to make one that does.

Also, do we even need to continue parsing when m_client becomes null? It seems that an early return would be a better solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191323</commentid>
    <comment_count>10</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 17:37:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 48737 [details])
&gt; +                if (frameByte == 0x00 &amp;&amp; !m_client)
&gt;                      m_client-&gt;didReceiveMessage(String::fromUTF8(msgStart, p -
&gt; msgStart));
&gt; 
&gt; The check is backwards (should be m_client, not !m_client). Did you run
&gt; regression tests with this change? If no test detects such a mistake, we should
&gt; try to make one that does.

Oops. Thanks for catching this.

&gt; Also, do we even need to continue parsing when m_client becomes null? It seems
&gt; that an early return would be a better solution.

Ok, I add check !m_client after it calls m_client methods, because it calls user callback, user callback may call close() and onclose handler would set m_client = 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191327</commentid>
    <comment_count>11</comment_count>
      <attachid>48952</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 17:43:44 -0800</bug_when>
    <thetext>Created attachment 48952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191369</commentid>
    <comment_count>12</comment_count>
      <attachid>48952</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-17 19:59:34 -0800</bug_when>
    <thetext>Comment on attachment 48952
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191394</commentid>
    <comment_count>13</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2010-02-17 21:32:28 -0800</bug_when>
    <thetext>Committed r54927: &lt;http://trac.webkit.org/changeset/54927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48206</attachid>
            <date>2010-02-04 23:56:59 -0800</date>
            <delta_ts>2010-02-14 18:43:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34633-20100205165657.patch</filename>
            <type>text/plain</type>
            <size>13692</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYzliNzkwLi41NjJmMzY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTAtMDIt
MDQgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IGJ1ZmZlcmVkQW1vdW50
IHNob3VsZCBub3QgYmUgMCB3aGVuIHNlbmQgYWZ0ZXIgY2xvc2UuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDYzMworCisgICAgICAgICogd2Vic29j
a2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvYnVmZmVy
ZWRBbW91bnQtYWZ0ZXItY2xvc2UuanM6IEFkZGVkLgorCisyMDEwLTAyLTA0ICBGdW1pdG9zaGkg
VWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCiAKICAgICAgICAgc2hvdWxkIG5vdCBjcmFzaCB3aGVuIGRvY3VtZW50IG9w
ZW5lZCB3ZWJzb2NrZXQgaXMgdW5sb2FkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNv
Y2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZTYwMGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYnVmZmVyZWRBbW91bnQt
YWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1dlYiBTb2NrZXQgYnVm
ZmVyZWRBbW91bnQgYWZ0ZXIgY2xvc2VkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
Q29ubmVjdGVkLgorQ2xvc2VkLgorUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDIKK1BBU1Mgd3MuYnVm
ZmVyZWRBbW91bnQgaXMgMAorUEFTUyB3cy5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBp
cyBmYWxzZQorUEFTUyB3cy5idWZmZXJlZEFtb3VudCBpcyAyMworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlhNjBhYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9z
ZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMv
YnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuanMgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVz
dHMvc2NyaXB0LXRlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3OWQzZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvc2NyaXB0LXRlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVy
LWNsb3NlLmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Rlc2NyaXB0aW9uKCJXZWIgU29ja2V0IGJ1ZmZl
cmVkQW1vdW50IGFmdGVyIGNsb3NlZCIpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rp
b24gZW5kVGVzdCgpCit7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK3ZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0
Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL3NpbXBsZSIpOworCit3cy5vbm9wZW4gPSBmdW5jdGlvbigp
Cit7CisgICAgZGVidWcoIkNvbm5lY3RlZC4iKTsKKyAgICB3cy5jbG9zZSgpOworfTsKKword3Mu
b25jbG9zZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygiQ2xvc2VkLiIpOworICAgIHNob3Vs
ZEJlKCJ3cy5yZWFkeVN0YXRlIiwgIjIiKTsKKyAgICBzaG91bGRCZSgid3MuYnVmZmVyZWRBbW91
bnQiLCAiMCIpOworICAgIHNob3VsZEJlRmFsc2UoIndzLnNlbmQoJ3NlbmQgdG8gY2xvc2VkIHNv
Y2tldCcpIik7CisgICAgLy8gSWYgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCBidWZmZXJlZEFt
b3VudCBhdHRyaWJ1dGUncyB2YWx1ZSB3aWxsIG9ubHkKKyAgICAvLyBpbmNyZWFzZSB3aXRoIGVh
Y2ggY2FsbCB0byB0aGUgc2VuZCgpIG1ldGhvZC4KKyAgICAvLyAodGhlIG51bWJlciBkb2VzIG5v
dCByZXNldCB0byB6ZXJvIG9uY2UgdGhlIGNvbm5lY3Rpb24gY2xvc2VzKS4KKyAgICBzaG91bGRC
ZSgid3MuYnVmZmVyZWRBbW91bnQiLCAiMjMiKTsKKyAgICBlbmRUZXN0KCk7Cit9OworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTYyZWZhZC4uYzlkMzJhMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBA
QAorMjAxMC0wMi0wNCAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJTb2NrZXQgYnVm
ZmVyZWRBbW91bnQgc2hvdWxkIG5vdCBiZSAwIHdoZW4gc2VuZCBhZnRlciBjbG9zZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjMzCisKKyAgICAg
ICAgVGVzdDogd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwK
KworICAgICAgICAqIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI6OmRpZENsb3NlKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OnNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpj
bG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmJ1ZmZlcmVkQW1vdW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXQ6OmRpZENsb3NlKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5o
OgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbDo6YnVmZmVyZWRBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbENsaWVudDo6ZGlkQ2xvc2UpOgorICAgICAg
ICAqIHdlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d29ya2VyQ29udGV4dERpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDbG9zZSk6CisgICAg
ICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAy
MDEwLTAyLTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IDhiZjUx
ZmEuLjI4ZDYxMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTk5LDEwICs5OSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobXNnKTsK
ICAgICB9CiAKLSAgICB2b2lkIGRpZENsb3NlKCkKKyAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVk
IGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpCiAgICAgewogICAgICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgICAgIG1fY2xp
ZW50LT5kaWRDbG9zZSh1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCk7CiAgICAgfQogCiBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY1MGRjNWMuLmNkNTUyOGIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIGJvb2wgV2ViU29ja2V0Ojpp
c0F2YWlsYWJsZSgpCiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiAgICAgLCBt
X3N0YXRlKENPTk5FQ1RJTkcpCisgICAgLCBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSgwKQog
ewogfQogCkBAIC0xNjIsOSArMTYzLDEyIEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAgICAgLy8gTm8gZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiB0aGUgY29ubmVjdGlvbiB3
YXMgb25jZSBlc3RhYmxpc2hlZCBidXQgaGFzIHN1YnNlcXVlbnRseSBiZWVuIGNsb3NlZC4KLSAg
ICBpZiAobV9zdGF0ZSA9PSBDTE9TRUQpCisgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VEKSB7Cisg
ICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlICs9IG1lc3NhZ2UudXRmOCgpLmxlbmd0
aCgpICsgMjsgLy8gMiBmb3IgZnJhbWVpbmcKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
ICAgICAvLyBGSVhNRTogY2hlY2sgbWVzc2FnZSBpcyB2YWxpZCB1dGY4LgorICAgIEFTU0VSVCht
X2NoYW5uZWwpOwogICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQobWVzc2FnZSk7CiB9CiAKQEAg
LTE3NCw2ICsxNzgsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoKQogICAgIGlmIChtX3N0YXRl
ID09IENMT1NFRCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAg
bV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBtX2NoYW5uZWwtPmJ1ZmZlcmVkQW1vdW50KCk7
CiAgICAgbV9jaGFubmVsLT5jbG9zZSgpOwogfQogCkBAIC0xOTEsNyArMTk2LDcgQEAgdW5zaWdu
ZWQgbG9uZyBXZWJTb2NrZXQ6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsKICAgICBpZiAobV9z
dGF0ZSA9PSBPUEVOKQogICAgICAgICByZXR1cm4gbV9jaGFubmVsLT5idWZmZXJlZEFtb3VudCgp
OwotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZTsK
IH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogV2ViU29ja2V0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QKQEAgLTIyMyw3ICsyMjgsNyBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkQ29u
bmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkQ29ubmVjdCIsIHRo
aXMpOwogICAgIGlmIChtX3N0YXRlICE9IENPTk5FQ1RJTkcgfHwgIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkgewotICAgICAgICBkaWRDbG9zZSgpOworICAgICAgICBkaWRDbG9zZSgwKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3N0YXRlID0gT1BFTjsKQEAgLTI0MCwxMCArMjQ1
LDExIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1z
ZykKICAgICBkaXNwYXRjaEV2ZW50KGV2dCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRDbG9z
ZSgpCit2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZm
ZXJlZEFtb3VudCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRDbG9zZSIs
IHRoaXMpOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgbV9idWZmZXJlZEFtb3VudEFmdGVy
Q2xvc2UgKz0gdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQ7CiAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbG9zZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICBt
X2NoYW5uZWwgPSAwOwogICAgIGlmIChoYXNQZW5kaW5nQWN0aXZpdHkoKSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaAppbmRleCBjNzJkYmJkLi44YmRhODgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmgKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBA
IC05MSw3ICs5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gV2ViU29ja2V0
Q2hhbm5lbENsaWVudAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CkBAIC0x
MTEsNiArMTExLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBLVVJMIG1fdXJsOwog
ICAgICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZl
bnRUYXJnZXREYXRhOworICAgICAgICB1bnNpZ25lZCBsb25nIG1fYnVmZmVyZWRBbW91bnRBZnRl
ckNsb3NlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjY2YzE0Li4yYWIxMzNjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01Nyw3ICs1Nyw2IEBAIFdlYlNvY2tl
dENoYW5uZWw6OldlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgV2ViU29ja2V0Q2hhCiAgICAgLCBtX2hhbmRzaGFrZSh1cmwsIHByb3RvY29sLCBjb250ZXh0
KQogICAgICwgbV9idWZmZXIoMCkKICAgICAsIG1fYnVmZmVyU2l6ZSgwKQotICAgICwgbV91bmhh
bmRsZWRCdWZmZXJTaXplKDApCiB7CiB9CiAKQEAgLTc4LDIyICs3NywxOCBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OmNvbm5lY3QoKQogYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0
IFN0cmluZyYgbXNnKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBz
ZW5kICVzIiwgdGhpcywgbXNnLnV0ZjgoKS5kYXRhKCkpOworICAgIEFTU0VSVChtX2hhbmRsZSk7
CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZjsKICAgICBidWYuYXBwZW5kKCdcMCcpOyAgLy8gZnJhbWUg
dHlwZQogICAgIGJ1Zi5hcHBlbmQobXNnLnV0ZjgoKS5kYXRhKCksIG1zZy51dGY4KCkubGVuZ3Ro
KCkpOwogICAgIGJ1Zi5hcHBlbmQoJ1x4ZmYnKTsgIC8vIGZyYW1lIGVuZAotICAgIGlmICghbV9o
YW5kbGUpIHsKLSAgICAgICAgbV91bmhhbmRsZWRCdWZmZXJTaXplICs9IGJ1Zi5zaXplKCk7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAgICAgcmV0dXJuIG1faGFuZGxlLT5zZW5kKGJ1
Zi5kYXRhKCksIGJ1Zi5zaXplKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIFdlYlNvY2tldENoYW5u
ZWw6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tl
dENoYW5uZWwgJXAgYnVmZmVyZWRBbW91bnQiLCB0aGlzKTsKLSAgICBpZiAoIW1faGFuZGxlKQot
ICAgICAgICByZXR1cm4gbV91bmhhbmRsZWRCdWZmZXJTaXplOworICAgIEFTU0VSVChtX2hhbmRs
ZSk7CiAgICAgcmV0dXJuIG1faGFuZGxlLT5idWZmZXJlZEFtb3VudCgpOwogfQogCkBAIC0xMjYs
MTQgKzEyMSwxNCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW4oU29ja2V0U3RyZWFt
SGFuZGxlKiBoYW5kbGUpCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKFNvY2tldFN0
cmVhbUhhbmRsZSogaGFuZGxlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5l
bCAlcCBkaWRDbG9zZSIsIHRoaXMpOwotICAgIEFTU0VSVChoYW5kbGUgPT0gbV9oYW5kbGUgfHwg
IW1faGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxlID09IG1faGFuZGxl
IHx8ICFtX2hhbmRsZSk7CiAgICAgaWYgKG1faGFuZGxlKSB7Ci0gICAgICAgIG1fdW5oYW5kbGVk
QnVmZmVyU2l6ZSA9IGhhbmRsZS0+YnVmZmVyZWRBbW91bnQoKTsKKyAgICAgICAgdW5zaWduZWQg
bG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCA9IG1faGFuZGxlLT5idWZmZXJlZEFtb3VudCgp
OwogICAgICAgICBXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBjbGllbnQgPSBtX2NsaWVudDsKICAg
ICAgICAgbV9jbGllbnQgPSAwOwogICAgICAgICBtX2hhbmRsZSA9IDA7CiAgICAgICAgIGlmIChj
bGllbnQpCi0gICAgICAgICAgICBjbGllbnQtPmRpZENsb3NlKCk7CisgICAgICAgICAgICBjbGll
bnQtPmRpZENsb3NlKHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKICAgICB9CiAgICAgZGVyZWYo
KTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgg
Yi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDdlYzgyNmMuLjQx
YTAzYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgK
KysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtODMsNyArODMs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5k
bGU+IG1faGFuZGxlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fYnVm
ZmVyU2l6ZTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBtX3VuaGFuZGxlZEJ1ZmZlclNpemU7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaCBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsQ2xpZW50LmgKaW5kZXggMTYzMDcwZi4uNTMyOGViNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaAorKysgYi9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbENsaWVu
dCgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpIHsgfQogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRDbG9zZSgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xv
c2UodW5zaWduZWQgbG9uZyAvKiB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCAqLykgeyB9CiAKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIFdlYlNvY2tldENoYW5uZWxDbGllbnQoKSB7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwCmluZGV4IDhkYjgxYjcuLjAxMTkxMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvV2ViQ29yZS93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTkwLDE3
ICsxOTAsMTcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXMKICAgICBtX2xvYWRlclByb3h5LnBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNv
bnRleHREaWRSZWNlaXZlTWVzc2FnZSwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCBtZXNzYWdlKSwg
bV90YXNrTW9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRDbG9zZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyKQorc3RhdGljIHZvaWQgd29y
a2VyQ29udGV4dERpZENsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0
cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdy
YXBwZXIsIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7Ci0gICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkQ2xvc2UoKTsKKyAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5k
aWRDbG9zZSh1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKCkKK3ZvaWQgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5k
bGVkQnVmZmVyZWRBbW91bnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBt
X21haW5XZWJTb2NrZXRDaGFubmVsID0gMDsKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRD
bG9zZSwgbV93b3JrZXJDbGllbnRXcmFwcGVyKSwgbV90YXNrTW9kZSk7CisgICAgbV9sb2FkZXJQ
cm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3
b3JrZXJDb250ZXh0RGlkQ2xvc2UsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQpLCBtX3Rhc2tNb2RlKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpzZXRXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEJyaWRnZSogdGhpc1B0ciwgUGVlciogcGVlciwgUmVmUHRyPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBl
cikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmgKaW5kZXggMTEwNmY0My4uYTZhMTY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTkxLDcg
KzkxLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKCk7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIFBlZXIoUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcj4sIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcm
IHByb3RvY29sKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48737</attachid>
            <date>2010-02-14 18:43:15 -0800</date>
            <delta_ts>2010-02-17 17:43:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34633-20100215114313.patch</filename>
            <type>text/plain</type>
            <size>14273</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZTNlYzM3Li42MWQ2NzRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MTQgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IGJ1ZmZlcmVkQW1vdW50
IHNob3VsZCBub3QgYmUgMCB3aGVuIHNlbmQgYWZ0ZXIgY2xvc2UuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDYzMworCisgICAgICAgICogd2Vic29j
a2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvYnVmZmVy
ZWRBbW91bnQtYWZ0ZXItY2xvc2UuanM6IEFkZGVkLgorICAgICAgICAoZW5kVGVzdCk6CisgICAg
ICAgICh3cy5vbm9wZW4pOgorICAgICAgICAod3Mub25jbG9zZSk6CisKIDIwMTAtMDItMTQgIENo
YW5nIFNodSAgPENoYW5nLlNodUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFz
emxvIEdvbWJvcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9idWZm
ZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZTYwMGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1dlYiBTb2NrZXQgYnVmZmVyZWRBbW91bnQgYWZ0
ZXIgY2xvc2VkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworQ29ubmVjdGVkLgorQ2xv
c2VkLgorUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDIKK1BBU1Mgd3MuYnVmZmVyZWRBbW91bnQgaXMg
MAorUEFTUyB3cy5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyBmYWxzZQorUEFTUyB3
cy5idWZmZXJlZEFtb3VudCBpcyAyMworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0
cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjlhNjBhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sCkBAIC0wLDAg
KzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2J1ZmZlcmVkQW1vdW50
LWFmdGVyLWNsb3NlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvYnVmZmVyZWRBbW91bnQt
YWZ0ZXItY2xvc2UuanMgYi9MYXlvdXRUZXN0cy93ZWJzb2NrZXQvdGVzdHMvc2NyaXB0LXRlc3Rz
L2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmE3OWQzZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvc2NyaXB0LXRlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmpzCkBAIC0w
LDAgKzEsMzQgQEAKK2Rlc2NyaXB0aW9uKCJXZWIgU29ja2V0IGJ1ZmZlcmVkQW1vdW50IGFmdGVy
IGNsb3NlZCIpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gZW5kVGVzdCgpCit7
CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
CisKK3ZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0
L3Rlc3RzL3NpbXBsZSIpOworCit3cy5vbm9wZW4gPSBmdW5jdGlvbigpCit7CisgICAgZGVidWco
IkNvbm5lY3RlZC4iKTsKKyAgICB3cy5jbG9zZSgpOworfTsKKword3Mub25jbG9zZSA9IGZ1bmN0
aW9uKCkKK3sKKyAgICBkZWJ1ZygiQ2xvc2VkLiIpOworICAgIHNob3VsZEJlKCJ3cy5yZWFkeVN0
YXRlIiwgIjIiKTsKKyAgICBzaG91bGRCZSgid3MuYnVmZmVyZWRBbW91bnQiLCAiMCIpOworICAg
IHNob3VsZEJlRmFsc2UoIndzLnNlbmQoJ3NlbmQgdG8gY2xvc2VkIHNvY2tldCcpIik7CisgICAg
Ly8gSWYgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCBidWZmZXJlZEFtb3VudCBhdHRyaWJ1dGUn
cyB2YWx1ZSB3aWxsIG9ubHkKKyAgICAvLyBpbmNyZWFzZSB3aXRoIGVhY2ggY2FsbCB0byB0aGUg
c2VuZCgpIG1ldGhvZC4KKyAgICAvLyAodGhlIG51bWJlciBkb2VzIG5vdCByZXNldCB0byB6ZXJv
IG9uY2UgdGhlIGNvbm5lY3Rpb24gY2xvc2VzKS4KKyAgICBzaG91bGRCZSgid3MuYnVmZmVyZWRB
bW91bnQiLCAiMjMiKTsKKyAgICBlbmRUZXN0KCk7Cit9OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggN2JkODE4Ni4uYWY0NGZmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wMi0xNCAg
RnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJTb2NrZXQgYnVmZmVyZWRBbW91bnQgc2hv
dWxkIG5vdCBiZSAwIHdoZW4gc2VuZCBhZnRlciBjbG9zZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NjMzCisgICAgICAgIAorICAgICAgICBGaXhl
ZCBidWcgaW4gd2Via2l0IHI1NDY5NC4gY2hlY2sgbV9jbGllbnQgaW4gZGlkUmVjZWl2ZURhdGEu
CisKKyAgICAgICAgVGVzdDogd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNs
b3NlLmh0bWwKKworICAgICAgICAqIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OldlYlNvY2tldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0OjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmJ1ZmZlcmVkQW1v
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkQ29ubmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENsb3NlKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dl
YlNvY2tldC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6YnVmZmVyZWRBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5oOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbENsaWVudDo6ZGlkQ2xvc2UpOgor
ICAgICAgICAqIHdlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6d29ya2VyQ29udGV4dERpZENsb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDbG9zZSk6
CisgICAgICAgICogd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
OgorCiAyMDEwLTAyLTEzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBi
L1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAppbmRleCA4YmY1MWZhLi4yOGQ2MTI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKKysrIGIvV2ViQ29y
ZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCkBA
IC05OSwxMCArOTksMTAgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2Vp
dmVNZXNzYWdlKG1zZyk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRDbG9zZSgpCisgICAgdm9pZCBk
aWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KQogICAgIHsKICAg
ICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmRpZENsb3NlKCk7Cisg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2xvc2UodW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpOwog
ICAgIH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBmNTBkYzVj
Li5jZDU1MjhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAor
KysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtOTcsNiArOTcsNyBAQCBi
b29sIFdlYlNvY2tldDo6aXNBdmFpbGFibGUoKQogV2ViU29ja2V0OjpXZWJTb2NrZXQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQogICAgICwgbV9zdGF0ZShDT05ORUNUSU5HKQorICAgICwgbV9idWZmZXJlZEFtb3Vu
dEFmdGVyQ2xvc2UoMCkKIHsKIH0KIApAQCAtMTYyLDkgKzE2MywxMiBAQCBib29sIFdlYlNvY2tl
dDo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIC8vIE5vIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYg
dGhlIGNvbm5lY3Rpb24gd2FzIG9uY2UgZXN0YWJsaXNoZWQgYnV0IGhhcyBzdWJzZXF1ZW50bHkg
YmVlbiBjbG9zZWQuCi0gICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VEKQorICAgIGlmIChtX3N0YXRl
ID09IENMT1NFRCkgeworICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSArPSBtZXNz
YWdlLnV0ZjgoKS5sZW5ndGgoKSArIDI7IC8vIDIgZm9yIGZyYW1laW5nCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAgICAgLy8gRklYTUU6IGNoZWNrIG1lc3NhZ2UgaXMgdmFsaWQgdXRm
OC4KKyAgICBBU1NFUlQobV9jaGFubmVsKTsKICAgICByZXR1cm4gbV9jaGFubmVsLT5zZW5kKG1l
c3NhZ2UpOwogfQogCkBAIC0xNzQsNiArMTc4LDcgQEAgdm9pZCBXZWJTb2NrZXQ6OmNsb3NlKCkK
ICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TRUQpCiAgICAgICAgIHJldHVybjsKICAgICBtX3N0YXRl
ID0gQ0xPU0VEOworICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlID0gbV9jaGFubmVsLT5i
dWZmZXJlZEFtb3VudCgpOwogICAgIG1fY2hhbm5lbC0+Y2xvc2UoKTsKIH0KIApAQCAtMTkxLDcg
KzE5Niw3IEBAIHVuc2lnbmVkIGxvbmcgV2ViU29ja2V0OjpidWZmZXJlZEFtb3VudCgpIGNvbnN0
CiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gT1BFTikKICAgICAgICAgcmV0dXJuIG1fY2hhbm5lbC0+
YnVmZmVyZWRBbW91bnQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9idWZmZXJlZEFt
b3VudEFmdGVyQ2xvc2U7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFdlYlNvY2tldDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CkBAIC0yMjMsNyArMjI4LDcgQEAgdm9pZCBX
ZWJTb2NrZXQ6OmRpZENvbm5lY3QoKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVw
IGRpZENvbm5lY3QiLCB0aGlzKTsKICAgICBpZiAobV9zdGF0ZSAhPSBDT05ORUNUSU5HIHx8ICFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKLSAgICAgICAgZGlkQ2xvc2UoKTsKKyAgICAgICAg
ZGlkQ2xvc2UoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9zdGF0ZSA9IE9QRU47
CkBAIC0yNDAsMTAgKzI0NSwxMSBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtc2cpCiAgICAgZGlzcGF0Y2hFdmVudChldnQpOwogfQogCi12b2lkIFdl
YlNvY2tldDo6ZGlkQ2xvc2UoKQordm9pZCBXZWJTb2NrZXQ6OmRpZENsb3NlKHVuc2lnbmVkIGxv
bmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXQgJXAgZGlkQ2xvc2UiLCB0aGlzKTsKICAgICBtX3N0YXRlID0gQ0xPU0VEOworICAgIG1fYnVm
ZmVyZWRBbW91bnRBZnRlckNsb3NlICs9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwogICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xvc2VFdmVudCwgZmFsc2Us
IGZhbHNlKSk7CiAgICAgbV9jaGFubmVsID0gMDsKICAgICBpZiAoaGFzUGVuZGluZ0FjdGl2aXR5
KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9XZWJDb3Jl
L3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggYzcyZGJiZC4uOGJkYTg4MiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaApAQCAtOTEsNyArOTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIC8vIFdlYlNvY2tldENoYW5uZWxDbGllbnQKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENv
bm5lY3QoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSgpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFt
b3VudCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwpAQCAtMTExLDYgKzExMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgS1VSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fcHJvdG9jb2w7CiAgICAgICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBtX2J1
ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGY2NmMxNC4uYTZj
MjJkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtNTcsNyAr
NTcsNiBAQCBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFdlYlNvY2tldENoYQogICAgICwgbV9oYW5kc2hha2UodXJsLCBw
cm90b2NvbCwgY29udGV4dCkKICAgICAsIG1fYnVmZmVyKDApCiAgICAgLCBtX2J1ZmZlclNpemUo
MCkKLSAgICAsIG1fdW5oYW5kbGVkQnVmZmVyU2l6ZSgwKQogewogfQogCkBAIC03OCwyMiArNzcs
MTggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KCkKIGJvb2wgV2ViU29ja2V0Q2hh
bm5lbDo6c2VuZChjb25zdCBTdHJpbmcmIG1zZykKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNv
Y2tldENoYW5uZWwgJXAgc2VuZCAlcyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgpKTsKKyAgICBB
U1NFUlQobV9oYW5kbGUpOwogICAgIFZlY3RvcjxjaGFyPiBidWY7CiAgICAgYnVmLmFwcGVuZCgn
XDAnKTsgIC8vIGZyYW1lIHR5cGUKICAgICBidWYuYXBwZW5kKG1zZy51dGY4KCkuZGF0YSgpLCBt
c2cudXRmOCgpLmxlbmd0aCgpKTsKICAgICBidWYuYXBwZW5kKCdceGZmJyk7ICAvLyBmcmFtZSBl
bmQKLSAgICBpZiAoIW1faGFuZGxlKSB7Ci0gICAgICAgIG1fdW5oYW5kbGVkQnVmZmVyU2l6ZSAr
PSBidWYuc2l6ZSgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogICAgIHJldHVybiBt
X2hhbmRsZS0+c2VuZChidWYuZGF0YSgpLCBidWYuc2l6ZSgpKTsKIH0KIAogdW5zaWduZWQgbG9u
ZyBXZWJTb2NrZXRDaGFubmVsOjpidWZmZXJlZEFtb3VudCgpIGNvbnN0CiB7CiAgICAgTE9HKE5l
dHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGJ1ZmZlcmVkQW1vdW50IiwgdGhpcyk7Ci0gICAg
aWYgKCFtX2hhbmRsZSkKLSAgICAgICAgcmV0dXJuIG1fdW5oYW5kbGVkQnVmZmVyU2l6ZTsKKyAg
ICBBU1NFUlQobV9oYW5kbGUpOwogICAgIHJldHVybiBtX2hhbmRsZS0+YnVmZmVyZWRBbW91bnQo
KTsKIH0KIApAQCAtMTI2LDE0ICsxMjEsMTQgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRP
cGVuKFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxlKQogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpk
aWRDbG9zZShTb2NrZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSkKIHsKICAgICBMT0coTmV0d29yaywg
IldlYlNvY2tldENoYW5uZWwgJXAgZGlkQ2xvc2UiLCB0aGlzKTsKLSAgICBBU1NFUlQoaGFuZGxl
ID09IG1faGFuZGxlIHx8ICFtX2hhbmRsZSk7CisgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhh
bmRsZSA9PSBtX2hhbmRsZSB8fCAhbV9oYW5kbGUpOwogICAgIGlmIChtX2hhbmRsZSkgewotICAg
ICAgICBtX3VuaGFuZGxlZEJ1ZmZlclNpemUgPSBoYW5kbGUtPmJ1ZmZlcmVkQW1vdW50KCk7Cisg
ICAgICAgIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgPSBtX2hhbmRsZS0+
YnVmZmVyZWRBbW91bnQoKTsKICAgICAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogY2xpZW50
ID0gbV9jbGllbnQ7CiAgICAgICAgIG1fY2xpZW50ID0gMDsKICAgICAgICAgbV9oYW5kbGUgPSAw
OwogICAgICAgICBpZiAoY2xpZW50KQotICAgICAgICAgICAgY2xpZW50LT5kaWRDbG9zZSgpOwor
ICAgICAgICAgICAgY2xpZW50LT5kaWRDbG9zZSh1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCk7CiAg
ICAgfQogICAgIGRlcmVmKCk7CiB9CkBAIC0yMTIsNyArMjA3LDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUqIGhhbmRsZSwgY29uc3Qg
Y2hhciogZGEKICAgICAgICAgICAgIHdoaWxlIChwIDwgZW5kICYmICpwICE9ICdceGZmJykKICAg
ICAgICAgICAgICAgICArK3A7CiAgICAgICAgICAgICBpZiAocCA8IGVuZCAmJiAqcCA9PSAnXHhm
ZicpIHsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWVCeXRlID09IDB4MDApCisgICAgICAgICAg
ICAgICAgaWYgKGZyYW1lQnl0ZSA9PSAweDAwICYmICFtX2NsaWVudCkKICAgICAgICAgICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgobXNnU3Rh
cnQsIHAgLSBtc2dTdGFydCkpOwogICAgICAgICAgICAgICAgICsrcDsKICAgICAgICAgICAgICAg
ICBuZXh0RnJhbWUgPSBwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuaCBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXgg
N2VjODI2Yy4uNDFhMDNhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuaAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBA
IC04Myw3ICs4Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPFNvY2tl
dFN0cmVhbUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAg
ICBpbnQgbV9idWZmZXJTaXplOwotICAgICAgICB1bnNpZ25lZCBsb25nIG1fdW5oYW5kbGVkQnVm
ZmVyU2l6ZTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIGIvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaAppbmRleCAxNjMwNzBmLi41MzI4ZWI3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCisr
KyBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKQEAgLTQwLDcg
KzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIH5XZWJTb2NrZXRD
aGFubmVsQ2xpZW50KCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCkgeyB9
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmKSB7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKCkgeyB9CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIC8qIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50ICov
KSB7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCgp
IHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGFjMWYxOS4uM2RkYTEwNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysg
Yi9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CkBAIC0xOTAsMTcgKzE5MCwxNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lcwogICAgIG1fbG9h
ZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFz
aygmd29ya2VyQ29udGV4dERpZFJlY2VpdmVNZXNzYWdlLCBtX3dvcmtlckNsaWVudFdyYXBwZXIs
IG1lc3NhZ2UpLCBtX3Rhc2tNb2RlKTsKIH0KIAotc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERp
ZENsb3NlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIpCitzdGF0
aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlkQ2xvc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29y
a2VyQ2xpZW50V3JhcHBlciwgdW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgp
KTsKLSAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRDbG9zZSgpOworICAgIHdvcmtlckNsaWVu
dFdyYXBwZXItPmRpZENsb3NlKHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKIH0KIAotdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UoKQordm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UodW5zaWduZWQg
bG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwgPSAwOwotICAgIG1fbG9hZGVyUHJveHku
cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2Vy
Q29udGV4dERpZENsb3NlLCBtX3dvcmtlckNsaWVudFdyYXBwZXIpLCBtX3Rhc2tNb2RlKTsKKyAg
ICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxs
YmFja1Rhc2soJndvcmtlckNvbnRleHREaWRDbG9zZSwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCB1
bmhhbmRsZWRCdWZmZXJlZEFtb3VudCksIG1fdGFza01vZGUpOwogfQogCiB2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNldFdlYlNvY2tldENoYW5uZWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQnJpZGdlKiB0aGlzUHRyLCBQZWVyKiBwZWVy
LCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJD
bGllbnRXcmFwcGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCAxMTA2ZjQzLi5hNmExNjgwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAor
KysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRD
b25uZWN0KCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRB
bW91bnQpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGVlcihSZWZQdHI8VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiwgV29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48952</attachid>
            <date>2010-02-17 17:43:44 -0800</date>
            <delta_ts>2010-02-17 19:59:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34633-20100218104342.patch</filename>
            <type>text/plain</type>
            <size>14694</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NGVlZDJmLi4zMWEzOTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViU29ja2V0IGJ1ZmZlcmVkQW1vdW50
IHNob3VsZCBub3QgYmUgMCB3aGVuIHNlbmQgYWZ0ZXIgY2xvc2UuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDYzMworCisgICAgICAgICogd2Vic29j
a2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvYnVmZmVy
ZWRBbW91bnQtYWZ0ZXItY2xvc2UuanM6IEFkZGVkLgorCiAyMDEwLTAyLTE3ICBCcmlhbiBXZWlu
c3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTllNjAwZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9z
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorV2ViIFNvY2tldCBidWZmZXJlZEFtb3Vu
dCBhZnRlciBjbG9zZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitDb25uZWN0ZWQu
CitDbG9zZWQuCitQQVNTIHdzLnJlYWR5U3RhdGUgaXMgMgorUEFTUyB3cy5idWZmZXJlZEFtb3Vu
dCBpcyAwCitQQVNTIHdzLnNlbmQoJ3NlbmQgdG8gY2xvc2VkIHNvY2tldCcpIGlzIGZhbHNlCitQ
QVNTIHdzLmJ1ZmZlcmVkQW1vdW50IGlzIDIzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJz
b2NrZXQvdGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWE2MGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2Vic29ja2V0L3Rlc3RzL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYnVmZmVyZWRB
bW91bnQtYWZ0ZXItY2xvc2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2Vic29ja2V0L3Rlc3RzL3NjcmlwdC10ZXN0cy9idWZmZXJlZEFt
b3VudC1hZnRlci1jbG9zZS5qcyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9zY3JpcHQt
dGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYTc5ZDNkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YnNvY2tldC90ZXN0cy9zY3JpcHQtdGVzdHMvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuanMK
QEAgLTAsMCArMSwzNCBAQAorZGVzY3JpcHRpb24oIldlYiBTb2NrZXQgYnVmZmVyZWRBbW91bnQg
YWZ0ZXIgY2xvc2VkIik7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBlbmRUZXN0
KCkKK3sKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKwordmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvc2ltcGxlIik7CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICBk
ZWJ1ZygiQ29ubmVjdGVkLiIpOworICAgIHdzLmNsb3NlKCk7Cit9OworCit3cy5vbmNsb3NlID0g
ZnVuY3Rpb24oKQoreworICAgIGRlYnVnKCJDbG9zZWQuIik7CisgICAgc2hvdWxkQmUoIndzLnJl
YWR5U3RhdGUiLCAiMiIpOworICAgIHNob3VsZEJlKCJ3cy5idWZmZXJlZEFtb3VudCIsICIwIik7
CisgICAgc2hvdWxkQmVGYWxzZSgid3Muc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsK
KyAgICAvLyBJZiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIGJ1ZmZlcmVkQW1vdW50IGF0dHJp
YnV0ZSdzIHZhbHVlIHdpbGwgb25seQorICAgIC8vIGluY3JlYXNlIHdpdGggZWFjaCBjYWxsIHRv
IHRoZSBzZW5kKCkgbWV0aG9kLgorICAgIC8vICh0aGUgbnVtYmVyIGRvZXMgbm90IHJlc2V0IHRv
IHplcm8gb25jZSB0aGUgY29ubmVjdGlvbiBjbG9zZXMpLgorICAgIHNob3VsZEJlKCJ3cy5idWZm
ZXJlZEFtb3VudCIsICIyMyIpOworICAgIGVuZFRlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAwNjYwN2JjLi44YWY5NDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEwLTAy
LTE3ICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldCBidWZmZXJlZEFtb3Vu
dCBzaG91bGQgbm90IGJlIDAgd2hlbiBzZW5kIGFmdGVyIGNsb3NlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ2MzMKKworICAgICAgICBGaXhlZCBi
dWcgaW4gd2Via2l0IHI1NDY5NC4gIGNoZWNrIG1fY2xpZW50IGFmdGVyIGl0IGNhbGxzIHVzZXIK
KyAgICAgICAgY2FsbGJhY2ssIGJlY2F1c2UgdXNlciBjYWxsYmFjayBtYXkgY2FsbCBjbG9zZSgp
LCB3aGljaCB3b3VsZAorICAgICAgICBjYWxsIG9uY2xvc2UgZXZlbnQgaGFuZGxlci4KKyAgICAg
ICAgCisgICAgICAgIFRlc3Q6IHdlYnNvY2tldC90ZXN0cy9idWZmZXJlZEFtb3VudC1hZnRlci1j
bG9zZS5odG1sCisKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRDbG9zZSk6CisgICAgICAgICogd2Vic29ja2V0cy9X
ZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpXZWJTb2NrZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpidWZmZXJlZEFt
b3VudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENvbm5lY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRDbG9zZSk6CisgICAgICAgICogd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWw6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQ6OmRpZENsb3NlKToK
KyAgICAgICAgKiB3ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OndvcmtlckNvbnRleHREaWRDbG9zZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2Up
OgorICAgICAgICAqIHdlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aDoKKwogMjAxMC0wMi0xNyAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvV2Vi
Q29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5o
CmluZGV4IDhiZjUxZmEuLjI4ZDYxMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9XZWJDb3JlL3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTk5
LDEwICs5OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1l
c3NhZ2UobXNnKTsKICAgICB9CiAKLSAgICB2b2lkIGRpZENsb3NlKCkKKyAgICB2b2lkIGRpZENs
b3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpCiAgICAgewogICAgICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2xvc2UoKTsKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaWRDbG9zZSh1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY1MGRjNWMuLmNk
NTUyOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBi
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIGJvb2wg
V2ViU29ja2V0Ojppc0F2YWlsYWJsZSgpCiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCiAgICAgLCBtX3N0YXRlKENPTk5FQ1RJTkcpCisgICAgLCBtX2J1ZmZlcmVkQW1vdW50QWZ0
ZXJDbG9zZSgwKQogewogfQogCkBAIC0xNjIsOSArMTYzLDEyIEBAIGJvb2wgV2ViU29ja2V0Ojpz
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgLy8gTm8gZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiB0aGUg
Y29ubmVjdGlvbiB3YXMgb25jZSBlc3RhYmxpc2hlZCBidXQgaGFzIHN1YnNlcXVlbnRseSBiZWVu
IGNsb3NlZC4KLSAgICBpZiAobV9zdGF0ZSA9PSBDTE9TRUQpCisgICAgaWYgKG1fc3RhdGUgPT0g
Q0xPU0VEKSB7CisgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlICs9IG1lc3NhZ2Uu
dXRmOCgpLmxlbmd0aCgpICsgMjsgLy8gMiBmb3IgZnJhbWVpbmcKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KICAgICAvLyBGSVhNRTogY2hlY2sgbWVzc2FnZSBpcyB2YWxpZCB1dGY4Lgor
ICAgIEFTU0VSVChtX2NoYW5uZWwpOwogICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQobWVzc2Fn
ZSk7CiB9CiAKQEAgLTE3NCw2ICsxNzgsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoKQogICAg
IGlmIChtX3N0YXRlID09IENMT1NFRCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fc3RhdGUgPSBD
TE9TRUQ7CisgICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBtX2NoYW5uZWwtPmJ1ZmZl
cmVkQW1vdW50KCk7CiAgICAgbV9jaGFubmVsLT5jbG9zZSgpOwogfQogCkBAIC0xOTEsNyArMTk2
LDcgQEAgdW5zaWduZWQgbG9uZyBXZWJTb2NrZXQ6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsK
ICAgICBpZiAobV9zdGF0ZSA9PSBPUEVOKQogICAgICAgICByZXR1cm4gbV9jaGFubmVsLT5idWZm
ZXJlZEFtb3VudCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2J1ZmZlcmVkQW1vdW50
QWZ0ZXJDbG9zZTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogV2ViU29ja2V0OjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKQEAgLTIyMyw3ICsyMjgsNyBAQCB2b2lkIFdlYlNv
Y2tldDo6ZGlkQ29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlk
Q29ubmVjdCIsIHRoaXMpOwogICAgIGlmIChtX3N0YXRlICE9IENPTk5FQ1RJTkcgfHwgIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkgewotICAgICAgICBkaWRDbG9zZSgpOworICAgICAgICBkaWRD
bG9zZSgwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3N0YXRlID0gT1BFTjsKQEAg
LTI0MCwxMCArMjQ1LDExIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1zZykKICAgICBkaXNwYXRjaEV2ZW50KGV2dCk7CiB9CiAKLXZvaWQgV2ViU29j
a2V0OjpkaWRDbG9zZSgpCit2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1
bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAl
cCBkaWRDbG9zZSIsIHRoaXMpOwogICAgIG1fc3RhdGUgPSBDTE9TRUQ7CisgICAgbV9idWZmZXJl
ZEFtb3VudEFmdGVyQ2xvc2UgKz0gdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQ7CiAgICAgZGlzcGF0
Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbG9zZUV2ZW50LCBmYWxzZSwgZmFs
c2UpKTsKICAgICBtX2NoYW5uZWwgPSAwOwogICAgIGlmIChoYXNQZW5kaW5nQWN0aXZpdHkoKSkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCBjNzJkYmJkLi44YmRhODgyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCkBAIC05MSw3ICs5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ly8gV2ViU29ja2V0Q2hhbm5lbENsaWVudAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVj
dCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CkBAIC0xMTEsNiArMTExLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBL
VVJMIG1fdXJsOwogICAgICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICAgICAgRXZlbnRUYXJn
ZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAgICAgICB1bnNpZ25lZCBsb25nIG1fYnVmZmVy
ZWRBbW91bnRBZnRlckNsb3NlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjY2YzE0Li43Yjg3YmYz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysr
IGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01Nyw3ICs1Nyw2
IEBAIFdlYlNvY2tldENoYW5uZWw6OldlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgV2ViU29ja2V0Q2hhCiAgICAgLCBtX2hhbmRzaGFrZSh1cmwsIHByb3Rv
Y29sLCBjb250ZXh0KQogICAgICwgbV9idWZmZXIoMCkKICAgICAsIG1fYnVmZmVyU2l6ZSgwKQot
ICAgICwgbV91bmhhbmRsZWRCdWZmZXJTaXplKDApCiB7CiB9CiAKQEAgLTc4LDIyICs3NywxOCBA
QCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoKQogYm9vbCBXZWJTb2NrZXRDaGFubmVs
OjpzZW5kKGNvbnN0IFN0cmluZyYgbXNnKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0
Q2hhbm5lbCAlcCBzZW5kICVzIiwgdGhpcywgbXNnLnV0ZjgoKS5kYXRhKCkpOworICAgIEFTU0VS
VChtX2hhbmRsZSk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZjsKICAgICBidWYuYXBwZW5kKCdcMCcp
OyAgLy8gZnJhbWUgdHlwZQogICAgIGJ1Zi5hcHBlbmQobXNnLnV0ZjgoKS5kYXRhKCksIG1zZy51
dGY4KCkubGVuZ3RoKCkpOwogICAgIGJ1Zi5hcHBlbmQoJ1x4ZmYnKTsgIC8vIGZyYW1lIGVuZAot
ICAgIGlmICghbV9oYW5kbGUpIHsKLSAgICAgICAgbV91bmhhbmRsZWRCdWZmZXJTaXplICs9IGJ1
Zi5zaXplKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAgICAgcmV0dXJuIG1faGFu
ZGxlLT5zZW5kKGJ1Zi5kYXRhKCksIGJ1Zi5zaXplKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIFdl
YlNvY2tldENoYW5uZWw6OmJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKIHsKICAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldENoYW5uZWwgJXAgYnVmZmVyZWRBbW91bnQiLCB0aGlzKTsKLSAgICBpZiAo
IW1faGFuZGxlKQotICAgICAgICByZXR1cm4gbV91bmhhbmRsZWRCdWZmZXJTaXplOworICAgIEFT
U0VSVChtX2hhbmRsZSk7CiAgICAgcmV0dXJuIG1faGFuZGxlLT5idWZmZXJlZEFtb3VudCgpOwog
fQogCkBAIC0xMjYsMTQgKzEyMSwxNCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW4o
U29ja2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUpCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENs
b3NlKFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2Vi
U29ja2V0Q2hhbm5lbCAlcCBkaWRDbG9zZSIsIHRoaXMpOwotICAgIEFTU0VSVChoYW5kbGUgPT0g
bV9oYW5kbGUgfHwgIW1faGFuZGxlKTsKKyAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgaGFuZGxl
ID09IG1faGFuZGxlIHx8ICFtX2hhbmRsZSk7CiAgICAgaWYgKG1faGFuZGxlKSB7Ci0gICAgICAg
IG1fdW5oYW5kbGVkQnVmZmVyU2l6ZSA9IGhhbmRsZS0+YnVmZmVyZWRBbW91bnQoKTsKKyAgICAg
ICAgdW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCA9IG1faGFuZGxlLT5idWZm
ZXJlZEFtb3VudCgpOwogICAgICAgICBXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBjbGllbnQgPSBt
X2NsaWVudDsKICAgICAgICAgbV9jbGllbnQgPSAwOwogICAgICAgICBtX2hhbmRsZSA9IDA7CiAg
ICAgICAgIGlmIChjbGllbnQpCi0gICAgICAgICAgICBjbGllbnQtPmRpZENsb3NlKCk7CisgICAg
ICAgICAgICBjbGllbnQtPmRpZENsb3NlKHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKICAgICB9
CiAgICAgZGVyZWYoKTsKIH0KQEAgLTE2OSw2ICsxNjQsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVEYXRhKFNvY2tldFN0cmVhbUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFy
KiBkYQogICAgICAgICAgICAgLy8gRklYTUU6IGhhbmRsZSBzZXQtY29va2llMi4KICAgICAgICAg
ICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBjb25uZWN0ZWQiLCB0aGlzKTsK
ICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CisgICAgICAgICAgICBpZiAoIW1f
Y2xpZW50KQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVs
ICVwIGNvbm5lY3Rpb24gZmFpbGVkIiwgdGhpcyk7CkBAIC0yMTQsNiArMjExLDggQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUqIGhhbmRs
ZSwgY29uc3QgY2hhciogZGEKICAgICAgICAgICAgIGlmIChwIDwgZW5kICYmICpwID09ICdceGZm
JykgewogICAgICAgICAgICAgICAgIGlmIChmcmFtZUJ5dGUgPT0gMHgwMCkKICAgICAgICAgICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgobXNn
U3RhcnQsIHAgLSBtc2dTdGFydCkpOworICAgICAgICAgICAgICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICArK3A7CiAgICAgICAg
ICAgICAgICAgbmV4dEZyYW1lID0gcDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmggYi9XZWJDb3JlL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5oCmluZGV4IDdlYzgyNmMuLjQxYTAzYWIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaApAQCAtODMsNyArODMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFJlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IG1faGFuZGxlOwogICAgICAgICBj
aGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fYnVmZmVyU2l6ZTsKLSAgICAgICAgdW5zaWdu
ZWQgbG9uZyBtX3VuaGFuZGxlZEJ1ZmZlclNpemU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaCBiL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKaW5k
ZXggMTYzMDcwZi4uNTMyOGViNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWxDbGllbnQuaAorKysgYi9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbENsaWVudCgpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29ubmVjdCgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoY29uc3QgU3RyaW5nJikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSgp
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgbG9uZyAvKiB1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCAqLykgeyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFdl
YlNvY2tldENoYW5uZWxDbGllbnQoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9XZWJDb3JlL3dlYnNvY2tl
dHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGRhYzFmMTkuLjNk
ZGExMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTkwLDE3ICsxOTAsMTcgQEAgdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXMKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29u
dGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRSZWNlaXZlTWVzc2FnZSwg
bV93b3JrZXJDbGllbnRXcmFwcGVyLCBtZXNzYWdlKSwgbV90YXNrTW9kZSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHdvcmtlckNvbnRleHREaWRDbG9zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3Jr
ZXJDbGllbnRXcmFwcGVyKQorc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERpZENsb3NlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVuc2lnbmVkIGxvbmcgdW5o
YW5kbGVkQnVmZmVyZWRBbW91bnQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250
ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7Ci0gICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkQ2xv
c2UoKTsKKyAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRDbG9zZSh1bmhhbmRsZWRCdWZmZXJl
ZEFtb3VudCk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZENsb3NlKCkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX21haW5XZWJTb2NrZXRDaGFubmVsID0g
MDsKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVh
dGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRDbG9zZSwgbV93b3JrZXJDbGllbnRXcmFw
cGVyKSwgbV90YXNrTW9kZSk7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dv
cmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkQ2xvc2UsIG1f
d29ya2VyQ2xpZW50V3JhcHBlciwgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpLCBtX3Rhc2tNb2Rl
KTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpz
ZXRXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEJyaWRn
ZSogdGhpc1B0ciwgUGVlciogcGVlciwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvV2ViQ29yZS93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggMTEwNmY0
My4uYTZhMTY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvV2ViQ29yZS93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJpdmF0ZToKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBs
b25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBl
ZXIoUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4sIFdvcmtl
ckxvYWRlclByb3h5JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdGFz
a01vZGUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsK
</data>
<flag name="review"
          id="31699"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>