<?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>67013</bug_id>
          
          <creation_ts>2011-08-25 19:26:55 -0700</creation_ts>
          <short_desc>WebSocket: Load Blob in WebSocketChannel</short_desc>
          <delta_ts>2011-08-31 01:35:06 -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>
          <dependson>67018</dependson>
          <blocked>65249</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>jianli</cc>
    
    <cc>kinuko</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457337</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 19:26:55 -0700</bug_when>
    <thetext>Part of implementing WebSocket.send(Blob).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457350</commentid>
    <comment_count>1</comment_count>
      <attachid>105297</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 20:36:28 -0700</bug_when>
    <thetext>Created attachment 105297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457351</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-25 20:38:24 -0700</bug_when>
    <thetext>Attachment 105297 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/websockets/WebSocketChannel.h:48:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457353</commentid>
    <comment_count>3</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 20:40:24 -0700</bug_when>
    <thetext>CCing jianli and kinuko for Blob/FileReaderLoader usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457355</commentid>
    <comment_count>4</comment_count>
      <attachid>105297</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-08-25 20:41:48 -0700</bug_when>
    <thetext>Comment on attachment 105297
Patch

Attachment 105297 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9513869</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457357</commentid>
    <comment_count>5</comment_count>
      <attachid>105297</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 20:47:31 -0700</bug_when>
    <thetext>Comment on attachment 105297
Patch

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

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.h:48
&gt;&gt; +    class Blob;
&gt; 
&gt; Code inside a namespace should not be indented.  [whitespace/indent] [4]

Indentation will be fixed independently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457359</commentid>
    <comment_count>6</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-25 20:48:27 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 105297 [details])
&gt; Attachment 105297 [details] did not pass efl-ews (efl):
&gt; Output: http://queues.webkit.org/results/9513869

I forgot to guard FileReaderLoader with #if ENABLE(BLOB). Will be fixed in the next version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457432</commentid>
    <comment_count>7</comment_count>
      <attachid>105297</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-26 00:01:42 -0700</bug_when>
    <thetext>Comment on attachment 105297
Patch

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

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:858
&gt; +            if (m_blobLoaderStatus == BlobLoaderNotStarted) {

We had better use switch(m_blobLoaderStatus).

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:860
&gt; +                m_blobLoader = adoptPtr(new FileReaderLoader(FileReaderLoader::ReadAsArrayBuffer, this));

should we check ASSERT(!m_blobLoader)?
Is it possible to enqueue multiple blob frames?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457454</commentid>
    <comment_count>8</comment_count>
      <attachid>105329</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-26 01:03:58 -0700</bug_when>
    <thetext>Created attachment 105329
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457456</commentid>
    <comment_count>9</comment_count>
      <attachid>105297</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-26 01:11:47 -0700</bug_when>
    <thetext>Comment on attachment 105297
Patch

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

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:858
&gt;&gt; +            if (m_blobLoaderStatus == BlobLoaderNotStarted) {
&gt; 
&gt; We had better use switch(m_blobLoaderStatus).

Fixed in patch v2.

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:860
&gt;&gt; +                m_blobLoader = adoptPtr(new FileReaderLoader(FileReaderLoader::ReadAsArrayBuffer, this));
&gt; 
&gt; should we check ASSERT(!m_blobLoader)?
&gt; Is it possible to enqueue multiple blob frames?

Added ASSERT.

Re reading multiple Blob, it&apos;s technically possible and probably better, but I don&apos;t want to do it in this first version because adding many moving parts makes debugging hard and makes the code more fragile. I&apos;ll probably do it later. Added a FIXME comment in patch v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458699</commentid>
    <comment_count>10</comment_count>
      <attachid>105329</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-29 22:11:24 -0700</bug_when>
    <thetext>Comment on attachment 105329
Patch v2

I think the patch is ok except FileReaderLoader, which I&apos;m not familiar with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458864</commentid>
    <comment_count>11</comment_count>
      <attachid>105329</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-08-30 05:56:02 -0700</bug_when>
    <thetext>Comment on attachment 105329
Patch v2

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

Changes related to FileReaderLoader looks good to me.

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:913
&gt; +        m_blobLoader-&gt;cancel();

nit: no need to clear m_blobLoader here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459450</commentid>
    <comment_count>12</comment_count>
      <attachid>105741</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-30 22:34:18 -0700</bug_when>
    <thetext>Created attachment 105741
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459451</commentid>
    <comment_count>13</comment_count>
      <attachid>105329</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-30 22:35:12 -0700</bug_when>
    <thetext>Comment on attachment 105329
Patch v2

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

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:913
&gt;&gt; +        m_blobLoader-&gt;cancel();
&gt; 
&gt; nit: no need to clear m_blobLoader here?

Good catch, thanks! Added didFail() in patch v3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459463</commentid>
    <comment_count>14</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-08-30 23:11:40 -0700</bug_when>
    <thetext>FileReaderLoader related changes looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459467</commentid>
    <comment_count>15</comment_count>
      <attachid>105741</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-30 23:45:25 -0700</bug_when>
    <thetext>Comment on attachment 105741
Patch v3

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459520</commentid>
    <comment_count>16</comment_count>
      <attachid>105741</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-31 01:35:00 -0700</bug_when>
    <thetext>Comment on attachment 105741
Patch v3

Clearing flags on attachment: 105741

Committed r94162: &lt;http://trac.webkit.org/changeset/94162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459521</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-31 01:35:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105297</attachid>
            <date>2011-08-25 20:36:28 -0700</date>
            <delta_ts>2011-08-26 01:11:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67013-20110826123626.patch</filename>
            <type>text/plain</type>
            <size>10399</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4NDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNGViYzI0YmNjMDI2MGJm
NDYxNzY2ZDU0ZTA5NDgwODQwODg3NTFlLi5jNzE2ZmY4ZTdlMjQ4OWRmMjcyMjdhZDE1MmY1Y2Jj
YTg3NDU2ZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMjUgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBMb2Fk
IEJsb2IgaW4gV2ViU29ja2V0Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZUJsb2JGcmFtZSgp
LiBJdCBtYWtlcyBXZWJTb2NrZXRDaGFubmVsIHN0YXJ0IGxvYWRpbmcgYSBCbG9iCisgICAgICAg
IGFuZCBzZW5kIGEgV2ViU29ja2V0IGZyYW1lIGFmdGVyIHRoZSBCbG9iIGlzIGxvYWRlZC4KKwor
ICAgICAgICBXaGlsZSBhIEJsb2IgaXMgYmVpbmcgbG9hZGVkLCBzdWJzZXF1ZW50IHNlbmQoKSBy
ZXF1ZXN0cyBjYW5ub3QgYmUgcHJvY2Vzc2VkIGFuZCBhcmUgYmxvY2tlZC4KKyAgICAgICAgUGVu
ZGluZyByZXF1ZXN0cyBhcmUgc3RvcmVkIGluIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLiBXaGVuIHdl
IGhhdmUgZmluaXNoZWQgbG9hZGluZyBhIEJsb2IsCisgICAgICAgIHJlcXVlc3RzIGluIHRoZSBx
dWV1ZSBhcmUgYWxsb3dlZCB0byBnZXQgcHJvY2Vzc2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBhcmUgYWRkZWQsIGJlY2F1c2Ugbm9ib2R5IHVzZXMgZW5xdWV1ZUJsb2JGcmFtZSgpIHlldC4g
TmV3IHRlc3RzIHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBXZWJTb2NrZXQuc2VuZChCbG9i
KSBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZXkgd2lsbCBjb3ZlciB0aGlzIGNvZGUgY2hhbmdlLgor
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgcmVm
KCkgaXMgY2FsbGVkIHdoZW4gbV9ibG9iTG9hZGVyIGlzIGFsbG9jYXRlZCwgYW5kIGRlcmVmKCkg
aXMgY2FsbGVkIGluIGRpZEZpbmlzaExvYWRpbmcoKQorICAgICAgICBvciBkaWRGYWlsKCkuIFRo
aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgV2ViU29ja2V0Q2hhbm5lbCBtdXN0IGJlIGFibGUgdG8g
cmVjZWl2ZSBjYWxsYmFja3MKKyAgICAgICAgZnJvbSBGaWxlUmVhZGVyTG9hZGVyIGV2ZW4gaWYg
dGhlIGNoYW5uZWwgaXMgcmVmZXJyZWQgZnJvbSBubyBvdGhlciBvYmplY3RzLgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRTdGFydExvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKToKKyAgICAgICAgV2hlbiB3ZSBoYXZlIGZhaWxl
ZCB0byBsb2FkIGEgQmxvYiwgZmFpbCgpIGlzIGNhbGxlZCwgYW5kIGV2ZW50dWFsbHkgZGlkQ2xv
c2VTb2NrZXRTdHJlYW0oKQorICAgICAgICB3aWxsIGJlIGNhbGxlZC4gSXQgd2lsbCBjbGVhbiB1
cCB0aGUgcGVuZGluZyByZXF1ZXN0cyBpbiB0aGUgcXVldWUuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlQmxvYkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAg
ICBDYW5jZWxpbmcgdGhlIEJsb2IgbG9hZGVyIG1ha2VzIEZpbGVSZWFkZXJMb2FkZXIgZmFpbCBl
YXJseS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoKKwogMjAxMS0w
OC0yNSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBDb25jZW50cmF0ZSBSZW5kZXJMYXllciByZXBhaW50IHJlY3RzIHVwZGF0ZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDU2Mjg0ZTU5
MjliZTU1YTEyZDkyY2M2NjYzNWViMDYxZGY0NzYwZmQuLjM3ZDdmYzg5NjM2YzgxYjc0YzVjN2I2
Y2Y2MWQ4NDliYmUyMDZlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcApAQCAtMzQsOCArMzQsMTEgQEAKIAogI2luY2x1ZGUgIldlYlNvY2tl
dENoYW5uZWwuaCIKIAorI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiQmxvYi5o
IgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMDAsNiAr
MTAzLDcgQEAgV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGEKICAgICAsIG1faGFzQ29udGludW91c0Zy
YW1lKGZhbHNlKQogICAgICwgbV9jbG9zZUV2ZW50Q29kZShDbG9zZUV2ZW50Q29kZUFibm9ybWFs
Q2xvc3VyZSkKICAgICAsIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzKE91dGdvaW5nRnJhbWVR
dWV1ZU9wZW4pCisgICAgLCBtX2Jsb2JMb2FkZXJTdGF0dXMoQmxvYkxvYWRlck5vdFN0YXJ0ZWQp
CiB7CiAgICAgQVNTRVJUKG1fY29udGV4dC0+aXNEb2N1bWVudCgpKTsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fY29udGV4dCk7CkBAIC0zMjIsNiAr
MzI2LDQxIEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uCiB7CiB9CiAKK3ZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6ZGlkU3RhcnRMb2FkaW5nKCkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNvY2tl
dENoYW5uZWwgJXAgZGlkU3RhcnRMb2FkaW5nIiwgdGhpcyk7CisgICAgQVNTRVJUKG1fYmxvYkxv
YWRlcik7CisgICAgQVNTRVJUKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9hZGVyU3RhcnRl
ZCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEoKQoreworICAg
IExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBkaWRSZWNlaXZlRGF0YSIsIHRoaXMp
OworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXIpOworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXJTdGF0
dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZEZpbmlzaExvYWRpbmcoKQoreworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAl
cCBkaWRGaW5pc2hMb2FkaW5nIiwgdGhpcyk7CisgICAgQVNTRVJUKG1fYmxvYkxvYWRlcik7Cisg
ICAgQVNTRVJUKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9hZGVyU3RhcnRlZCk7CisgICAg
bV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlckZpbmlzaGVkOworICAgIHByb2Nlc3NPdXRn
b2luZ0ZyYW1lUXVldWUoKTsKKyAgICBkZXJlZigpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZEZhaWwoaW50IGVycm9yQ29kZSkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNvY2tl
dENoYW5uZWwgJXAgZGlkRmFpbCAlZCIsIHRoaXMsIGVycm9yQ29kZSk7CisgICAgQVNTRVJUKG1f
YmxvYkxvYWRlcik7CisgICAgQVNTRVJUKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9hZGVy
U3RhcnRlZCk7CisgICAgbV9ibG9iTG9hZGVyLmNsZWFyKCk7CisgICAgbV9ibG9iTG9hZGVyU3Rh
dHVzID0gQmxvYkxvYWRlckZhaWxlZDsKKyAgICBmYWlsKCJGYWlsZWQgdG8gbG9hZCBCbG9iOiBl
cnJvciBjb2RlID0gIiArIFN0cmluZzo6bnVtYmVyKGVycm9yQ29kZSkpOyAvLyBGSVhNRTogR2Vu
ZXJhdGUgaHVtYW4tZnJpZW5kbHkgcmVhc29uIG1lc3NhZ2UuCisgICAgZGVyZWYoKTsKK30KKwog
Ym9vbCBXZWJTb2NrZXRDaGFubmVsOjphcHBlbmRUb0J1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgbGVuKQogewogICAgIHNpemVfdCBuZXdCdWZmZXJTaXplID0gbV9idWZmZXJTaXplICsg
bGVuOwpAQCAtNzgyLDYgKzgyMSwxOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVucXVldWVS
YXdGcmFtZShPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZAogICAgIHBy
b2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKIH0KIAordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpl
bnF1ZXVlQmxvYkZyYW1lKE9wQ29kZSBvcENvZGUsIGNvbnN0IEJsb2ImIGJsb2IpCit7CisgICAg
QVNTRVJUKCFtX3VzZUhpeGllNzZQcm90b2NvbCk7CisgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFt
ZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOworICAgIE93blB0cjxRdWV1
ZWRGcmFtZT4gZnJhbWUgPSBhZG9wdFB0cihuZXcgUXVldWVkRnJhbWUpOworICAgIGZyYW1lLT5v
cENvZGUgPSBvcENvZGU7CisgICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZUJs
b2I7CisgICAgZnJhbWUtPmJsb2JEYXRhID0gQmxvYjo6Y3JlYXRlKGJsb2IudXJsKCksIGJsb2Iu
dHlwZSgpLCBibG9iLnNpemUoKSk7CisgICAgbV9vdXRnb2luZ0ZyYW1lUXVldWUuYXBwZW5kKGZy
YW1lLnJlbGVhc2UoKSk7CisgICAgcHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpOworfQorCiB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogewogICAg
IEFTU0VSVCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOwpAQCAtODAzLDYgKzg1NCwyNyBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAg
ICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKICAgICAgICAg
ICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlQmxvYjogeworICAgICAg
ICAgICAgaWYgKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9hZGVyTm90U3RhcnRlZCkgewor
ICAgICAgICAgICAgICAgIHJlZigpOyAvLyBXaWxsIGJlIGRlcmVmZWQgYWZ0ZXIgZGlkRmluaXNo
TG9hZGluZygpIG9yIGRpZEZhaWwoKS4KKyAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIgPSBh
ZG9wdFB0cihuZXcgRmlsZVJlYWRlckxvYWRlcihGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNBcnJh
eUJ1ZmZlciwgdGhpcykpOworICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJs
b2JMb2FkZXJTdGFydGVkOworICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlci0+c3RhcnQobV9j
b250ZXh0LCBmcmFtZS0+YmxvYkRhdGEuZ2V0KCkpOworICAgICAgICAgICAgICAgIG1fb3V0Z29p
bmdGcmFtZVF1ZXVlLnByZXBlbmQoZnJhbWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV9ibG9iTG9hZGVyU3RhdHVz
ICE9IEJsb2JMb2FkZXJGaW5pc2hlZCkgeworICAgICAgICAgICAgICAgIG1fb3V0Z29pbmdGcmFt
ZVF1ZXVlLnByZXBlbmQoZnJhbWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IHJlc3VsdCA9
IG1fYmxvYkxvYWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKTsKKyAgICAgICAgICAgIG1fYmxvYkxv
YWRlci5jbGVhcigpOworICAgICAgICAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRl
ck5vdFN0YXJ0ZWQ7CisgICAgICAgICAgICBpZiAoIXNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5n
dGgoKSkpCisgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZy
YW1lLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTgyMSw2ICs4OTMsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmFib3J0T3V0Z29pbmdG
cmFtZVF1ZXVlKCkKICAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsKICAgICBtX291
dGdvaW5nRnJhbWVRdWV1ZS5jbGVhcigpOwogICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVz
ID0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkOworICAgIGlmIChtX2Jsb2JMb2FkZXJTdGF0dXMg
PT0gQmxvYkxvYWRlclN0YXJ0ZWQpCisgICAgICAgIG1fYmxvYkxvYWRlci0+Y2FuY2VsKCk7CiB9
CiAKIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1lKE9wQ29kZSBvcENvZGUsIGNvbnN0
IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA4NTQ1NjRmNmYzN2MzMmE1NmZiYjk5YzUzMTg3
YmNlZDcyZTRkMjdmLi4yM2ZmYjcwYzU5NGJlNmJhMjdjYTdjZDhkZjRmOGY1ZjUzY2ZkNzg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtMzMs
NiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQogCisjaW5jbHVkZSAiRmlsZVJl
YWRlckxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5o
IgogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKQEAgLTQ0LDEyICs0NSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBj
bGFzcyBCbG9iOworICAgIGNsYXNzIEZpbGVSZWFkZXJMb2FkZXI7CiAgICAgY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKICAgICBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGU7CiAgICAgY2xh
c3MgU29ja2V0U3RyZWFtRXJyb3I7CiAgICAgY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsK
IAotICAgIGNsYXNzIFdlYlNvY2tldENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJTb2Nr
ZXRDaGFubmVsPiwgcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCwgcHVibGljIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsIHsKKyAgICBjbGFzcyBXZWJTb2NrZXRDaGFubmVsIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0Q2hhbm5lbD4sIHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQsIHB1YmxpYyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LCBwdWJsaWMgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNvY2tldENoYW5uZWw+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50KiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTb2NrZXRDaGFubmVsKGNvbnRl
eHQsIGNsaWVudCkpOyB9CkBAIC04Niw2ICs4OSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBDbG9zZUV2ZW50Q29kZUludmFsaWRVVEY4ID0gMTAwNwogICAgICAgICB9Owog
CisgICAgICAgIC8vIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQgZnVuY3Rpb25zLgorICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YSgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKTsKKwogICAgICAgICB1
c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldENoYW5uZWw+OjpyZWY7CiAgICAgICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8V2ViU29ja2V0Q2hhbm5lbD46OmRlcmVmOwogCkBAIC0xNTEsOCArMTYwLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBXaGVuIGhpeGllLTc2IHByb3RvY29sIGlz
IGNob3NlbiwgdGhlIHF1ZXVlIGlzIG5vdCB1c2VkIGFuZCBtZXNzYWdlcyBhcmUgc2VudCBkaXJl
Y3RseS4KICAgICAgICAgZW51bSBRdWV1ZWRGcmFtZVR5cGUgewogICAgICAgICAgICAgUXVldWVk
RnJhbWVUeXBlU3RyaW5nLAotICAgICAgICAgICAgUXVldWVkRnJhbWVUeXBlVmVjdG9yCi0gICAg
ICAgICAgICAvLyBGSVhNRTogQWRkIFF1ZXVlZEZyYW1lVHlwZUJsb2IuCisgICAgICAgICAgICBR
dWV1ZWRGcmFtZVR5cGVWZWN0b3IsCisgICAgICAgICAgICBRdWV1ZWRGcmFtZVR5cGVCbG9iCiAg
ICAgICAgIH07CiAgICAgICAgIHN0cnVjdCBRdWV1ZWRGcmFtZSB7CiAgICAgICAgICAgICBPcENv
ZGUgb3BDb2RlOwpAQCAtMTYwLDExICsxNjksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgLy8gT25seSBvbmUgb2YgdGhlIGZvbGxvd2luZyBpdGVtcyBpcyB1c2VkLCBhY2Nv
cmRpbmcgdG8gdGhlIHZhbHVlIG9mIGZyYW1lVHlwZS4KICAgICAgICAgICAgIFN0cmluZyBzdHJp
bmdEYXRhOwogICAgICAgICAgICAgVmVjdG9yPGNoYXI+IHZlY3RvckRhdGE7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogQWRkIGJsb2JEYXRhLgorICAgICAgICAgICAgUmVmUHRyPEJsb2I+IGJsb2JE
YXRhOwogICAgICAgICB9OwogICAgICAgICB2b2lkIGVucXVldWVUZXh0RnJhbWUoY29uc3QgU3Ry
aW5nJik7CiAgICAgICAgIHZvaWQgZW5xdWV1ZVJhd0ZyYW1lKE9wQ29kZSwgY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpOwotICAgICAgICAvLyBGSVhNRTogQWRkIGVucXVldWVC
bG9iRnJhbWUoKS4KKyAgICAgICAgdm9pZCBlbnF1ZXVlQmxvYkZyYW1lKE9wQ29kZSwgY29uc3Qg
QmxvYiYpOwogCiAgICAgICAgIHZvaWQgcHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpOwogICAg
ICAgICB2b2lkIGFib3J0T3V0Z29pbmdGcmFtZVF1ZXVlKCk7CkBAIC0xODYsNiArMTk1LDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBzZW5kRnJhbWUoT3BDb2RlLCBjb25z
dCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7CiAgICAgICAgIGJvb2wgc2VuZEZyYW1l
SGl4aWU3Nihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7CiAKKyAgICAgICAg
ZW51bSBCbG9iTG9hZGVyU3RhdHVzIHsKKyAgICAgICAgICAgIEJsb2JMb2FkZXJOb3RTdGFydGVk
LAorICAgICAgICAgICAgQmxvYkxvYWRlclN0YXJ0ZWQsCisgICAgICAgICAgICBCbG9iTG9hZGVy
RmluaXNoZWQsCisgICAgICAgICAgICBCbG9iTG9hZGVyRmFpbGVkCisgICAgICAgIH07CisKICAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OwogICAgICAgICBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50KiBtX2NsaWVudDsKICAgICAgICAgT3duUHRyPFdlYlNvY2tldEhhbmRz
aGFrZT4gbV9oYW5kc2hha2U7CkBAIC0yMTUsNiArMjMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIERlcXVlPE93blB0cjxRdWV1ZWRGcmFtZT4gPiBtX291dGdvaW5nRnJhbWVR
dWV1ZTsKICAgICAgICAgT3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzIG1fb3V0Z29pbmdGcmFtZVF1
ZXVlU3RhdHVzOworICAgICAgICBPd25QdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9ibG9iTG9hZGVy
OworICAgICAgICBCbG9iTG9hZGVyU3RhdHVzIG1fYmxvYkxvYWRlclN0YXR1czsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105329</attachid>
            <date>2011-08-26 01:03:58 -0700</date>
            <delta_ts>2011-08-30 22:35:12 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-67013-20110826170356.patch</filename>
            <type>text/plain</type>
            <size>10868</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4NTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNmQ1N2U2YTNkYTZjMTUy
YjQzZDkwZTJiOWYzNTdhYTVjN2JlNzdlLi5iNjdjMzc1MzY1MmIyODI4ZDIwODY4MmQyMzgzZGE2
MGYzMDgzZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDgtMjYgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBMb2Fk
IEJsb2IgaW4gV2ViU29ja2V0Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZUJsb2JGcmFtZSgp
LiBJdCBtYWtlcyBXZWJTb2NrZXRDaGFubmVsIHN0YXJ0IGxvYWRpbmcgYSBCbG9iCisgICAgICAg
IGFuZCBzZW5kIGEgV2ViU29ja2V0IGZyYW1lIGFmdGVyIHRoZSBCbG9iIGlzIGxvYWRlZC4KKwor
ICAgICAgICBXaGlsZSBhIEJsb2IgaXMgYmVpbmcgbG9hZGVkLCBzdWJzZXF1ZW50IHNlbmQoKSBy
ZXF1ZXN0cyBjYW5ub3QgYmUgcHJvY2Vzc2VkIGFuZCBhcmUgYmxvY2tlZC4KKyAgICAgICAgUGVu
ZGluZyByZXF1ZXN0cyBhcmUgc3RvcmVkIGluIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLiBXaGVuIHdl
IGhhdmUgZmluaXNoZWQgbG9hZGluZyBhIEJsb2IsCisgICAgICAgIHJlcXVlc3RzIGluIHRoZSBx
dWV1ZSBhcmUgYWxsb3dlZCB0byBnZXQgcHJvY2Vzc2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBhcmUgYWRkZWQsIGJlY2F1c2Ugbm9ib2R5IHVzZXMgZW5xdWV1ZUJsb2JGcmFtZSgpIHlldC4g
TmV3IHRlc3RzIHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBXZWJTb2NrZXQuc2VuZChCbG9i
KSBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZXkgd2lsbCBjb3ZlciB0aGlzIGNvZGUgY2hhbmdlLgor
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgcmVm
KCkgaXMgY2FsbGVkIHdoZW4gbV9ibG9iTG9hZGVyIGlzIGFsbG9jYXRlZCwgYW5kIGRlcmVmKCkg
aXMgY2FsbGVkIGluIGRpZEZpbmlzaExvYWRpbmcoKQorICAgICAgICBvciBkaWRGYWlsKCkuIFRo
aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgV2ViU29ja2V0Q2hhbm5lbCBtdXN0IGJlIGFibGUgdG8g
cmVjZWl2ZSBjYWxsYmFja3MKKyAgICAgICAgZnJvbSBGaWxlUmVhZGVyTG9hZGVyIGV2ZW4gaWYg
dGhlIGNoYW5uZWwgaXMgcmVmZXJyZWQgZnJvbSBubyBvdGhlciBvYmplY3RzLgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRTdGFydExvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKToKKyAgICAgICAgV2hlbiB3ZSBoYXZlIGZhaWxl
ZCB0byBsb2FkIGEgQmxvYiwgZmFpbCgpIGlzIGNhbGxlZCwgYW5kIGV2ZW50dWFsbHkgZGlkQ2xv
c2VTb2NrZXRTdHJlYW0oKQorICAgICAgICB3aWxsIGJlIGNhbGxlZC4gSXQgd2lsbCBjbGVhbiB1
cCB0aGUgcGVuZGluZyByZXF1ZXN0cyBpbiB0aGUgcXVldWUuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlQmxvYkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAg
ICBDYW5jZWxpbmcgdGhlIEJsb2IgbG9hZGVyIG1ha2VzIEZpbGVSZWFkZXJMb2FkZXIgZmFpbCBl
YXJseS4KKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoKKyAgICAgICAg
RmlsZVJlYWRlckxvYWRlciBhbmQgRmlsZVJlYWRlckxvYWRlckNsaWVudCBleGlzdCBvbmx5IHdo
ZW4gRU5BQkxFKEJMT0IpIGlzIGRlZmluZWQsIHRodXMKKyAgICAgICAgdGhlIGNvZGUgcmVsYXRl
ZCB0byB0aGVzZSBjbGFzc2VzIG11c3QgYmUgZ3VhcmRlZCBieSAjaWYgYmxvY2suCisKIDIwMTEt
MDgtMjUgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
U29ja2V0OiBGaXggaW5kZW50YXRpb24gb2YgV2ViU29ja2V0IGhlYWRlciBmaWxlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNTYyODRl
NTkyOWJlNTVhMTJkOTJjYzY2NjM1ZWIwNjFkZjQ3NjBmZC4uNjk1NjljOWQzMmVlOGMxMzA3YTNm
MzYwNmMyN2Q4MDZjZTk4MWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwCkBAIC0zNCw4ICszNCwxMSBAQAogCiAjaW5jbHVkZSAiV2ViU29j
a2V0Q2hhbm5lbC5oIgogCisjaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJCbG9i
LmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTEwMCw2
ICsxMDMsOSBAQCBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFdlYlNvY2tldENoYQogICAgICwgbV9oYXNDb250aW51b3Vz
RnJhbWUoZmFsc2UpCiAgICAgLCBtX2Nsb3NlRXZlbnRDb2RlKENsb3NlRXZlbnRDb2RlQWJub3Jt
YWxDbG9zdXJlKQogICAgICwgbV9vdXRnb2luZ0ZyYW1lUXVldWVTdGF0dXMoT3V0Z29pbmdGcmFt
ZVF1ZXVlT3BlbikKKyNpZiBFTkFCTEUoQkxPQikKKyAgICAsIG1fYmxvYkxvYWRlclN0YXR1cyhC
bG9iTG9hZGVyTm90U3RhcnRlZCkKKyNlbmRpZgogewogICAgIEFTU0VSVChtX2NvbnRleHQtPmlz
RG9jdW1lbnQoKSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihtX2NvbnRleHQpOwpAQCAtMzIyLDYgKzMyOCw0MyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRsZSos
IGNvbgogewogfQogCisjaWYgRU5BQkxFKEJMT0IpCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZFN0YXJ0TG9hZGluZygpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVw
IGRpZFN0YXJ0TG9hZGluZyIsIHRoaXMpOworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXIpOworICAg
IEFTU0VSVChtX2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpOworfQorCit2
b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVEYXRhKCkKK3sKKyAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkUmVjZWl2ZURhdGEiLCB0aGlzKTsKKyAgICBBU1NF
UlQobV9ibG9iTG9hZGVyKTsKKyAgICBBU1NFUlQobV9ibG9iTG9hZGVyU3RhdHVzID09IEJsb2JM
b2FkZXJTdGFydGVkKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGaW5pc2hMb2Fk
aW5nKCkKK3sKKyAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmluaXNo
TG9hZGluZyIsIHRoaXMpOworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXIpOworICAgIEFTU0VSVCht
X2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpOworICAgIG1fYmxvYkxvYWRl
clN0YXR1cyA9IEJsb2JMb2FkZXJGaW5pc2hlZDsKKyAgICBwcm9jZXNzT3V0Z29pbmdGcmFtZVF1
ZXVlKCk7CisgICAgZGVyZWYoKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWls
KGludCBlcnJvckNvZGUpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVw
IGRpZEZhaWwgJWQiLCB0aGlzLCBlcnJvckNvZGUpOworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXIp
OworICAgIEFTU0VSVChtX2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpOwor
ICAgIG1fYmxvYkxvYWRlci5jbGVhcigpOworICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JM
b2FkZXJGYWlsZWQ7CisgICAgZmFpbCgiRmFpbGVkIHRvIGxvYWQgQmxvYjogZXJyb3IgY29kZSA9
ICIgKyBTdHJpbmc6Om51bWJlcihlcnJvckNvZGUpKTsgLy8gRklYTUU6IEdlbmVyYXRlIGh1bWFu
LWZyaWVuZGx5IHJlYXNvbiBtZXNzYWdlLgorICAgIGRlcmVmKCk7Cit9CisjZW5kaWYKKwogYm9v
bCBXZWJTb2NrZXRDaGFubmVsOjphcHBlbmRUb0J1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBzaXpl
X3QgbGVuKQogewogICAgIHNpemVfdCBuZXdCdWZmZXJTaXplID0gbV9idWZmZXJTaXplICsgbGVu
OwpAQCAtNzgyLDYgKzgyNSwxOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVucXVldWVSYXdG
cmFtZShPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZAogICAgIHByb2Nl
c3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKIH0KIAordm9pZCBXZWJTb2NrZXRDaGFubmVsOjplbnF1
ZXVlQmxvYkZyYW1lKE9wQ29kZSBvcENvZGUsIGNvbnN0IEJsb2ImIGJsb2IpCit7CisgICAgQVNT
RVJUKCFtX3VzZUhpeGllNzZQcm90b2NvbCk7CisgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1
ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOworICAgIE93blB0cjxRdWV1ZWRG
cmFtZT4gZnJhbWUgPSBhZG9wdFB0cihuZXcgUXVldWVkRnJhbWUpOworICAgIGZyYW1lLT5vcENv
ZGUgPSBvcENvZGU7CisgICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZUJsb2I7
CisgICAgZnJhbWUtPmJsb2JEYXRhID0gQmxvYjo6Y3JlYXRlKGJsb2IudXJsKCksIGJsb2IudHlw
ZSgpLCBibG9iLnNpemUoKSk7CisgICAgbV9vdXRnb2luZ0ZyYW1lUXVldWUuYXBwZW5kKGZyYW1l
LnJlbGVhc2UoKSk7CisgICAgcHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpOworfQorCiB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogewogICAgIEFT
U0VSVCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOwpAQCAtODAzLDYgKzg1OCwzOCBAQCB2b2lkIFdl
YlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAgICAg
ICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKICAgICAgICAgICAg
IGJyZWFrOwogCisgICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlQmxvYjogeworI2lmIEVOQUJM
RShCTE9CKQorICAgICAgICAgICAgc3dpdGNoIChtX2Jsb2JMb2FkZXJTdGF0dXMpIHsKKyAgICAg
ICAgICAgIGNhc2UgQmxvYkxvYWRlck5vdFN0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgcmVmKCk7
IC8vIFdpbGwgYmUgZGVyZWZlZCBhZnRlciBkaWRGaW5pc2hMb2FkaW5nKCkgb3IgZGlkRmFpbCgp
LgorICAgICAgICAgICAgICAgIEFTU0VSVCghbV9ibG9iTG9hZGVyKTsKKyAgICAgICAgICAgICAg
ICBtX2Jsb2JMb2FkZXIgPSBhZG9wdFB0cihuZXcgRmlsZVJlYWRlckxvYWRlcihGaWxlUmVhZGVy
TG9hZGVyOjpSZWFkQXNBcnJheUJ1ZmZlciwgdGhpcykpOworICAgICAgICAgICAgICAgIG1fYmxv
YkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJTdGFydGVkOworICAgICAgICAgICAgICAgIG1fYmxv
YkxvYWRlci0+c3RhcnQobV9jb250ZXh0LCBmcmFtZS0+YmxvYkRhdGEuZ2V0KCkpOworICAgICAg
ICAgICAgICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLnByZXBlbmQoZnJhbWUucmVsZWFzZSgpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNhc2UgQmxvYkxvYWRlclN0
YXJ0ZWQ6CisgICAgICAgICAgICBjYXNlIEJsb2JMb2FkZXJGYWlsZWQ6CisgICAgICAgICAgICAg
ICAgbV9vdXRnb2luZ0ZyYW1lUXVldWUucHJlcGVuZChmcmFtZS5yZWxlYXNlKCkpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY2FzZSBCbG9iTG9hZGVyRmluaXNoZWQ6
IHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IHJlc3VsdCA9IG1fYmxvYkxv
YWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIu
Y2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXJTdGF0dXMgPSBCbG9iTG9hZGVy
Tm90U3RhcnRlZDsKKyAgICAgICAgICAgICAgICBpZiAoIXNlbmRGcmFtZShmcmFtZS0+b3BDb2Rl
LCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVM
ZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNv
Y2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmYWlsKCJGaWxlUmVhZGVyIGlzIG5vdCBh
dmFpbGFibGUuIENvdWxkIG5vdCBzZW5kIGEgQmxvYiBhcyBXZWJTb2NrZXQgYmluYXJ5IG1lc3Nh
Z2UuIik7CisjZW5kaWYKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC04MjEsNiArOTA4LDEwIEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRP
dXRnb2luZ0ZyYW1lUXVldWUoKQogICAgIEFTU0VSVCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOwog
ICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLmNsZWFyKCk7CiAgICAgbV9vdXRnb2luZ0ZyYW1lUXVl
dWVTdGF0dXMgPSBPdXRnb2luZ0ZyYW1lUXVldWVDbG9zZWQ7CisjaWYgRU5BQkxFKEJMT0IpCisg
ICAgaWYgKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9hZGVyU3RhcnRlZCkKKyAgICAgICAg
bV9ibG9iTG9hZGVyLT5jYW5jZWwoKTsKKyNlbmRpZgogfQogCiBib29sIFdlYlNvY2tldENoYW5u
ZWw6OnNlbmRGcmFtZShPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0
YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgK
aW5kZXggZGY0ZmYzMjc0ODc4N2MyMjk3OWEyYTYwMzc2NTdiMDFiOWEwYWNiYS4uNDAwNDk5MTA2
ZDc5ZjlhODQ1M2IxOTdjNTA1YmZmYzMzMTdkZTg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJM
RShXRUJfU09DS0VUUykKIAorI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC00NCwxMiArNDUsMTgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBCbG9iOworY2xhc3MgRmlsZVJlYWRl
ckxvYWRlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb2NrZXRTdHJl
YW1IYW5kbGU7CiBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKIGNsYXNzIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQ7CiAKLWNsYXNzIFdlYlNvY2tldENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJTb2NrZXRDaGFubmVsPiwgcHVibGljIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCwgcHVibGlj
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIHsKK2NsYXNzIFdlYlNvY2tldENoYW5uZWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJTb2NrZXRDaGFubmVsPiwgcHVibGljIFNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudCwgcHVibGljIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsCisjaWYgRU5BQkxF
KEJMT0IpCisgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIEZpbGVSZWFkZXJMb2FkZXJD
bGllbnQKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBjbGllbnQpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTb2NrZXRDaGFubmVsKGNvbnRleHQsIGNsaWVudCkpOyB9
CkBAIC04Niw2ICs5MywxNCBAQCBwdWJsaWM6CiAgICAgICAgIENsb3NlRXZlbnRDb2RlSW52YWxp
ZFVURjggPSAxMDA3CiAgICAgfTsKIAorI2lmIEVOQUJMRShCTE9CKQorICAgIC8vIEZpbGVSZWFk
ZXJMb2FkZXJDbGllbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydExvYWRp
bmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZygpOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGludCBlcnJv
ckNvZGUpOworI2VuZGlmCisKICAgICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldENoYW5uZWw+
OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxXZWJTb2NrZXRDaGFubmVsPjo6ZGVyZWY7CiAK
QEAgLTE1MSw4ICsxNjYsOCBAQCBwcml2YXRlOgogICAgIC8vIFdoZW4gaGl4aWUtNzYgcHJvdG9j
b2wgaXMgY2hvc2VuLCB0aGUgcXVldWUgaXMgbm90IHVzZWQgYW5kIG1lc3NhZ2VzIGFyZSBzZW50
IGRpcmVjdGx5LgogICAgIGVudW0gUXVldWVkRnJhbWVUeXBlIHsKICAgICAgICAgUXVldWVkRnJh
bWVUeXBlU3RyaW5nLAotICAgICAgICBRdWV1ZWRGcmFtZVR5cGVWZWN0b3IKLSAgICAgICAgLy8g
RklYTUU6IEFkZCBRdWV1ZWRGcmFtZVR5cGVCbG9iLgorICAgICAgICBRdWV1ZWRGcmFtZVR5cGVW
ZWN0b3IsCisgICAgICAgIFF1ZXVlZEZyYW1lVHlwZUJsb2IKICAgICB9OwogICAgIHN0cnVjdCBR
dWV1ZWRGcmFtZSB7CiAgICAgICAgIE9wQ29kZSBvcENvZGU7CkBAIC0xNjAsMTEgKzE3NSwxMSBA
QCBwcml2YXRlOgogICAgICAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGl0ZW1zIGlz
IHVzZWQsIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgZnJhbWVUeXBlLgogICAgICAgICBTdHJp
bmcgc3RyaW5nRGF0YTsKICAgICAgICAgVmVjdG9yPGNoYXI+IHZlY3RvckRhdGE7Ci0gICAgICAg
IC8vIEZJWE1FOiBBZGQgYmxvYkRhdGEuCisgICAgICAgIFJlZlB0cjxCbG9iPiBibG9iRGF0YTsK
ICAgICB9OwogICAgIHZvaWQgZW5xdWV1ZVRleHRGcmFtZShjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIGVucXVldWVSYXdGcmFtZShPcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoKTsKLSAgICAvLyBGSVhNRTogQWRkIGVucXVldWVCbG9iRnJhbWUoKS4KKyAgICB2b2lk
IGVucXVldWVCbG9iRnJhbWUoT3BDb2RlLCBjb25zdCBCbG9iJik7CiAKICAgICB2b2lkIHByb2Nl
c3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKICAgICB2b2lkIGFib3J0T3V0Z29pbmdGcmFtZVF1ZXVl
KCk7CkBAIC0xODYsNiArMjAxLDE1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZW5kRnJhbWUoT3BD
b2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7CiAgICAgYm9vbCBzZW5k
RnJhbWVIaXhpZTc2KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsKIAorI2lm
IEVOQUJMRShCTE9CKQorICAgIGVudW0gQmxvYkxvYWRlclN0YXR1cyB7CisgICAgICAgIEJsb2JM
b2FkZXJOb3RTdGFydGVkLAorICAgICAgICBCbG9iTG9hZGVyU3RhcnRlZCwKKyAgICAgICAgQmxv
YkxvYWRlckZpbmlzaGVkLAorICAgICAgICBCbG9iTG9hZGVyRmFpbGVkCisgICAgfTsKKyNlbmRp
ZgorCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OwogICAgIFdlYlNvY2tl
dENoYW5uZWxDbGllbnQqIG1fY2xpZW50OwogICAgIE93blB0cjxXZWJTb2NrZXRIYW5kc2hha2U+
IG1faGFuZHNoYWtlOwpAQCAtMjE1LDYgKzIzOSwxMiBAQCBwcml2YXRlOgogCiAgICAgRGVxdWU8
T3duUHRyPFF1ZXVlZEZyYW1lPiA+IG1fb3V0Z29pbmdGcmFtZVF1ZXVlOwogICAgIE91dGdvaW5n
RnJhbWVRdWV1ZVN0YXR1cyBtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1czsKKworI2lmIEVOQUJM
RShCTE9CKQorICAgIC8vIEZJWE1FOiBMb2FkIHR3byBvciBtb3JlIEJsb2JzIHNpbXVsdGFuZW91
c2x5IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgT3duUHRyPEZpbGVSZWFkZXJMb2FkZXI+
IG1fYmxvYkxvYWRlcjsKKyAgICBCbG9iTG9hZGVyU3RhdHVzIG1fYmxvYkxvYWRlclN0YXR1czsK
KyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105741</attachid>
            <date>2011-08-30 22:34:18 -0700</date>
            <delta_ts>2011-08-31 01:35:00 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-67013-20110831143416.patch</filename>
            <type>text/plain</type>
            <size>10972</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwNzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YTYyN2E2YjIwMjc2YmJk
NjZmOWY1OWI0ODU0YTdmZmZlYWQ0M2RkLi5kNDgzNjk1OTI4YWE1M2YyMjJiZTk5MWM5OTM4MWE4
Mjc3MDQyMzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMDgtMzAgIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBMb2Fk
IEJsb2IgaW4gV2ViU29ja2V0Q2hhbm5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZUJsb2JGcmFtZSgp
LiBJdCBtYWtlcyBXZWJTb2NrZXRDaGFubmVsIHN0YXJ0IGxvYWRpbmcgYSBCbG9iCisgICAgICAg
IGFuZCBzZW5kIGEgV2ViU29ja2V0IGZyYW1lIGFmdGVyIHRoZSBCbG9iIGlzIGxvYWRlZC4KKwor
ICAgICAgICBXaGlsZSBhIEJsb2IgaXMgYmVpbmcgbG9hZGVkLCBzdWJzZXF1ZW50IHNlbmQoKSBy
ZXF1ZXN0cyBjYW5ub3QgYmUgcHJvY2Vzc2VkIGFuZCBhcmUgYmxvY2tlZC4KKyAgICAgICAgUGVu
ZGluZyByZXF1ZXN0cyBhcmUgc3RvcmVkIGluIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLiBXaGVuIHdl
IGhhdmUgZmluaXNoZWQgbG9hZGluZyBhIEJsb2IsCisgICAgICAgIHJlcXVlc3RzIGluIHRoZSBx
dWV1ZSBhcmUgYWxsb3dlZCB0byBnZXQgcHJvY2Vzc2VkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBhcmUgYWRkZWQsIGJlY2F1c2Ugbm9ib2R5IHVzZXMgZW5xdWV1ZUJsb2JGcmFtZSgpIHlldC4g
TmV3IHRlc3RzIHdpbGwgYmUgYWRkZWQKKyAgICAgICAgd2hlbiBXZWJTb2NrZXQuc2VuZChCbG9i
KSBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZXkgd2lsbCBjb3ZlciB0aGlzIGNvZGUgY2hhbmdlLgor
CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgcmVm
KCkgaXMgY2FsbGVkIHdoZW4gbV9ibG9iTG9hZGVyIGlzIGFsbG9jYXRlZCwgYW5kIGRlcmVmKCkg
aXMgY2FsbGVkIGluIGRpZEZpbmlzaExvYWRpbmcoKQorICAgICAgICBvciBkaWRGYWlsKCkuIFRo
aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgV2ViU29ja2V0Q2hhbm5lbCBtdXN0IGJlIGFibGUgdG8g
cmVjZWl2ZSBjYWxsYmFja3MKKyAgICAgICAgZnJvbSBGaWxlUmVhZGVyTG9hZGVyIGV2ZW4gaWYg
dGhlIGNoYW5uZWwgaXMgcmVmZXJyZWQgZnJvbSBubyBvdGhlciBvYmplY3RzLgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRTdGFydExvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKToKKyAgICAgICAgV2hlbiB3ZSBoYXZlIGZhaWxl
ZCB0byBsb2FkIGEgQmxvYiwgZmFpbCgpIGlzIGNhbGxlZCwgYW5kIGV2ZW50dWFsbHkgZGlkQ2xv
c2VTb2NrZXRTdHJlYW0oKQorICAgICAgICB3aWxsIGJlIGNhbGxlZC4gSXQgd2lsbCBjbGVhbiB1
cCB0aGUgcGVuZGluZyByZXF1ZXN0cyBpbiB0aGUgcXVldWUuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlQmxvYkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6YWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAg
ICBDYW5jZWwgdGhlIEJsb2IgbG9hZGVyIHdoZW4gdGhlIG91dGdvaW5nIHJlcXVlc3QgcXVldWUg
aXMgYWJvdXQgdG8gYmUgYWJvcnRlZC4gVGhlIGxvYWRlcgorICAgICAgICB3aWxsIG5vdCBpbnZv
a2UgZGlkRmFpbCgpIGNhbGxiYWNrIG9uY2UgaXQgaXMgY2FuY2VsZWQsIHRodXMgd2UgbmVlZCB0
byBjYWxsIGRpZEZhaWwoKQorICAgICAgICBtYW51YWxseSBzbyB0aGF0IHdlIGNhbiBmcmVlIHVw
IHRoZSBsb2FkZXIgYW5kIGRlY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50LgorCiAyMDExLTA4
LTMwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGxhc3RDaGFu
Z2VXYXNVc2VyRWRpdCBjb250aW51ZXMgdG8gcmV0dXJuIHRydWUgd2hlbiBpbm5lclRleHQgb3Ig
dGV4dENvbnRlbnQgaXMgbW9kaWZpZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDE1Y2Y0MTQ5MDYxOWE5NzNiYzQwNTRlMDNhNmQ5ODI1
OTcwYzZmMzYuLjY2NzJmZGQ0Y2JjMzNhZjM0MmRkMTdhOGM4YzYxY2RjYjlkODUwZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzQs
OCArMzQsMTIgQEAKIAogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKIAorI2luY2x1ZGUg
IkFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisjaW5jbHVk
ZSAiRmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xMDIsNiAr
MTA2LDkgQEAgV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGEKICAgICAsIG1faGFzQ29udGludW91c0Zy
YW1lKGZhbHNlKQogICAgICwgbV9jbG9zZUV2ZW50Q29kZShDbG9zZUV2ZW50Q29kZUFibm9ybWFs
Q2xvc3VyZSkKICAgICAsIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzKE91dGdvaW5nRnJhbWVR
dWV1ZU9wZW4pCisjaWYgRU5BQkxFKEJMT0IpCisgICAgLCBtX2Jsb2JMb2FkZXJTdGF0dXMoQmxv
YkxvYWRlck5vdFN0YXJ0ZWQpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9jb250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obV9jb250ZXh0KTsKQEAgLTMyNCw2ICszMzEsNDMgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjpkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb2NrZXRTdHJlYW1IYW5kbGUqLCBj
b24KIHsKIH0KIAorI2lmIEVOQUJMRShCTE9CKQordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRT
dGFydExvYWRpbmcoKQoreworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBk
aWRTdGFydExvYWRpbmciLCB0aGlzKTsKKyAgICBBU1NFUlQobV9ibG9iTG9hZGVyKTsKKyAgICBB
U1NFUlQobV9ibG9iTG9hZGVyU3RhdHVzID09IEJsb2JMb2FkZXJTdGFydGVkKTsKK30KKwordm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlRGF0YSgpCit7CisgICAgTE9HKE5ldHdvcmss
ICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZFJlY2VpdmVEYXRhIiwgdGhpcyk7CisgICAgQVNTRVJU
KG1fYmxvYkxvYWRlcik7CisgICAgQVNTRVJUKG1fYmxvYkxvYWRlclN0YXR1cyA9PSBCbG9iTG9h
ZGVyU3RhcnRlZCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmluaXNoTG9hZGlu
ZygpCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZpbmlzaExv
YWRpbmciLCB0aGlzKTsKKyAgICBBU1NFUlQobV9ibG9iTG9hZGVyKTsKKyAgICBBU1NFUlQobV9i
bG9iTG9hZGVyU3RhdHVzID09IEJsb2JMb2FkZXJTdGFydGVkKTsKKyAgICBtX2Jsb2JMb2FkZXJT
dGF0dXMgPSBCbG9iTG9hZGVyRmluaXNoZWQ7CisgICAgcHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1
ZSgpOworICAgIGRlcmVmKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbChp
bnQgZXJyb3JDb2RlKQoreworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBk
aWRGYWlsICVkIiwgdGhpcywgZXJyb3JDb2RlKTsKKyAgICBBU1NFUlQobV9ibG9iTG9hZGVyKTsK
KyAgICBBU1NFUlQobV9ibG9iTG9hZGVyU3RhdHVzID09IEJsb2JMb2FkZXJTdGFydGVkKTsKKyAg
ICBtX2Jsb2JMb2FkZXIuY2xlYXIoKTsKKyAgICBtX2Jsb2JMb2FkZXJTdGF0dXMgPSBCbG9iTG9h
ZGVyRmFpbGVkOworICAgIGZhaWwoIkZhaWxlZCB0byBsb2FkIEJsb2I6IGVycm9yIGNvZGUgPSAi
ICsgU3RyaW5nOjpudW1iZXIoZXJyb3JDb2RlKSk7IC8vIEZJWE1FOiBHZW5lcmF0ZSBodW1hbi1m
cmllbmRseSByZWFzb24gbWVzc2FnZS4KKyAgICBkZXJlZigpOworfQorI2VuZGlmCisKIGJvb2wg
V2ViU29ja2V0Q2hhbm5lbDo6YXBwZW5kVG9CdWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IGxlbikKIHsKICAgICBzaXplX3QgbmV3QnVmZmVyU2l6ZSA9IG1fYnVmZmVyU2l6ZSArIGxlbjsK
QEAgLTc4Myw2ICs4MjcsMTggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlUmF3RnJh
bWUoT3BDb2RlIG9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGQKICAgICBwcm9jZXNz
T3V0Z29pbmdGcmFtZVF1ZXVlKCk7CiB9CiAKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1
ZUJsb2JGcmFtZShPcENvZGUgb3BDb2RlLCBjb25zdCBCbG9iJiBibG9iKQoreworICAgIEFTU0VS
VCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOworICAgIEFTU0VSVChtX291dGdvaW5nRnJhbWVRdWV1
ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuKTsKKyAgICBPd25QdHI8UXVldWVkRnJh
bWU+IGZyYW1lID0gYWRvcHRQdHIobmV3IFF1ZXVlZEZyYW1lKTsKKyAgICBmcmFtZS0+b3BDb2Rl
ID0gb3BDb2RlOworICAgIGZyYW1lLT5mcmFtZVR5cGUgPSBRdWV1ZWRGcmFtZVR5cGVCbG9iOwor
ICAgIGZyYW1lLT5ibG9iRGF0YSA9IEJsb2I6OmNyZWF0ZShibG9iLnVybCgpLCBibG9iLnR5cGUo
KSwgYmxvYi5zaXplKCkpOworICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlLmFwcGVuZChmcmFtZS5y
ZWxlYXNlKCkpOworICAgIHByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKTsKK30KKwogdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKIHsKICAgICBBU1NF
UlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsKQEAgLTgwNCw2ICs4NjAsMzggQEAgdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgICAg
ICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CiAgICAgICAgICAgICBi
cmVhazsKIAorICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlwZUJsb2I6IHsKKyNpZiBFTkFCTEUo
QkxPQikKKyAgICAgICAgICAgIHN3aXRjaCAobV9ibG9iTG9hZGVyU3RhdHVzKSB7CisgICAgICAg
ICAgICBjYXNlIEJsb2JMb2FkZXJOb3RTdGFydGVkOgorICAgICAgICAgICAgICAgIHJlZigpOyAv
LyBXaWxsIGJlIGRlcmVmZWQgYWZ0ZXIgZGlkRmluaXNoTG9hZGluZygpIG9yIGRpZEZhaWwoKS4K
KyAgICAgICAgICAgICAgICBBU1NFUlQoIW1fYmxvYkxvYWRlcik7CisgICAgICAgICAgICAgICAg
bV9ibG9iTG9hZGVyID0gYWRvcHRQdHIobmV3IEZpbGVSZWFkZXJMb2FkZXIoRmlsZVJlYWRlckxv
YWRlcjo6UmVhZEFzQXJyYXlCdWZmZXIsIHRoaXMpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2JM
b2FkZXJTdGF0dXMgPSBCbG9iTG9hZGVyU3RhcnRlZDsKKyAgICAgICAgICAgICAgICBtX2Jsb2JM
b2FkZXItPnN0YXJ0KG1fY29udGV4dCwgZnJhbWUtPmJsb2JEYXRhLmdldCgpKTsKKyAgICAgICAg
ICAgICAgICBtX291dGdvaW5nRnJhbWVRdWV1ZS5wcmVwZW5kKGZyYW1lLnJlbGVhc2UoKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjYXNlIEJsb2JMb2FkZXJTdGFy
dGVkOgorICAgICAgICAgICAgY2FzZSBCbG9iTG9hZGVyRmFpbGVkOgorICAgICAgICAgICAgICAg
IG1fb3V0Z29pbmdGcmFtZVF1ZXVlLnByZXBlbmQoZnJhbWUucmVsZWFzZSgpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNhc2UgQmxvYkxvYWRlckZpbmlzaGVkOiB7
CisgICAgICAgICAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiByZXN1bHQgPSBtX2Jsb2JMb2Fk
ZXItPmFycmF5QnVmZmVyUmVzdWx0KCk7CisgICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyLmNs
ZWFyKCk7CisgICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlck5v
dFN0YXJ0ZWQ7CisgICAgICAgICAgICAgICAgaWYgKCFzZW5kRnJhbWUoZnJhbWUtPm9wQ29kZSwg
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVu
Z3RoKCkpKQorICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisjZWxzZQorICAgICAgICAgICAgZmFpbCgiRmlsZVJlYWRlciBpcyBub3QgYXZh
aWxhYmxlLiBDb3VsZCBub3Qgc2VuZCBhIEJsb2IgYXMgV2ViU29ja2V0IGJpbmFyeSBtZXNzYWdl
LiIpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtODIyLDYgKzkxMCwxMiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmFib3J0T3V0
Z29pbmdGcmFtZVF1ZXVlKCkKICAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsKICAg
ICBtX291dGdvaW5nRnJhbWVRdWV1ZS5jbGVhcigpOwogICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVl
U3RhdHVzID0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkOworI2lmIEVOQUJMRShCTE9CKQorICAg
IGlmIChtX2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpIHsKKyAgICAgICAg
bV9ibG9iTG9hZGVyLT5jYW5jZWwoKTsKKyAgICAgICAgZGlkRmFpbChGaWxlRXJyb3I6OkFCT1JU
X0VSUik7CisgICAgfQorI2VuZGlmCiB9CiAKIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZy
YW1lKE9wQ29kZSBvcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCBkZjRm
ZjMyNzQ4Nzg3YzIyOTc5YTJhNjAzNzY1N2IwMWI5YTBhY2JhLi40MDA0OTkxMDZkNzlmOWE4NDUz
YjE5N2M1MDViZmZjMzMxN2RlODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9TT0NL
RVRTKQogCisjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIlNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTQ0LDEyICs0NSwxOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJsb2I7CitjbGFzcyBGaWxlUmVhZGVyTG9hZGVyOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZTsK
IGNsYXNzIFNvY2tldFN0cmVhbUVycm9yOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsK
IAotY2xhc3MgV2ViU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldENo
YW5uZWw+LCBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LCBwdWJsaWMgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwgeworY2xhc3MgV2ViU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlNvY2tldENoYW5uZWw+LCBwdWJsaWMgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
LCBwdWJsaWMgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwKKyNpZiBFTkFCTEUoQkxPQikKKyAg
ICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgRmlsZVJlYWRlckxvYWRlckNsaWVudAorI2Vu
ZGlmCit7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYlNvY2tldENoYW5uZWwoY29udGV4dCwgY2xpZW50KSk7IH0KQEAgLTg2LDYg
KzkzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgQ2xvc2VFdmVudENvZGVJbnZhbGlkVVRGOCA9IDEw
MDcKICAgICB9OwogCisjaWYgRU5BQkxFKEJMT0IpCisgICAgLy8gRmlsZVJlYWRlckxvYWRlckNs
aWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0TG9hZGluZygpOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YSgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoaW50IGVycm9yQ29kZSk7Cisj
ZW5kaWYKKwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViU29ja2V0Q2hhbm5lbD46OnJlZjsKICAg
ICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldENoYW5uZWw+OjpkZXJlZjsKIApAQCAtMTUxLDgg
KzE2Niw4IEBAIHByaXZhdGU6CiAgICAgLy8gV2hlbiBoaXhpZS03NiBwcm90b2NvbCBpcyBjaG9z
ZW4sIHRoZSBxdWV1ZSBpcyBub3QgdXNlZCBhbmQgbWVzc2FnZXMgYXJlIHNlbnQgZGlyZWN0bHku
CiAgICAgZW51bSBRdWV1ZWRGcmFtZVR5cGUgewogICAgICAgICBRdWV1ZWRGcmFtZVR5cGVTdHJp
bmcsCi0gICAgICAgIFF1ZXVlZEZyYW1lVHlwZVZlY3RvcgotICAgICAgICAvLyBGSVhNRTogQWRk
IFF1ZXVlZEZyYW1lVHlwZUJsb2IuCisgICAgICAgIFF1ZXVlZEZyYW1lVHlwZVZlY3RvciwKKyAg
ICAgICAgUXVldWVkRnJhbWVUeXBlQmxvYgogICAgIH07CiAgICAgc3RydWN0IFF1ZXVlZEZyYW1l
IHsKICAgICAgICAgT3BDb2RlIG9wQ29kZTsKQEAgLTE2MCwxMSArMTc1LDExIEBAIHByaXZhdGU6
CiAgICAgICAgIC8vIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXRlbXMgaXMgdXNlZCwgYWNj
b3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiBmcmFtZVR5cGUuCiAgICAgICAgIFN0cmluZyBzdHJpbmdE
YXRhOwogICAgICAgICBWZWN0b3I8Y2hhcj4gdmVjdG9yRGF0YTsKLSAgICAgICAgLy8gRklYTUU6
IEFkZCBibG9iRGF0YS4KKyAgICAgICAgUmVmUHRyPEJsb2I+IGJsb2JEYXRhOwogICAgIH07CiAg
ICAgdm9pZCBlbnF1ZXVlVGV4dEZyYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZW5xdWV1
ZVJhd0ZyYW1lKE9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpOwot
ICAgIC8vIEZJWE1FOiBBZGQgZW5xdWV1ZUJsb2JGcmFtZSgpLgorICAgIHZvaWQgZW5xdWV1ZUJs
b2JGcmFtZShPcENvZGUsIGNvbnN0IEJsb2ImKTsKIAogICAgIHZvaWQgcHJvY2Vzc091dGdvaW5n
RnJhbWVRdWV1ZSgpOwogICAgIHZvaWQgYWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUoKTsKQEAgLTE4
Niw2ICsyMDEsMTUgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbmRGcmFtZShPcENvZGUsIGNvbnN0
IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKTsKICAgICBib29sIHNlbmRGcmFtZUhpeGll
NzYoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgpOwogCisjaWYgRU5BQkxFKEJM
T0IpCisgICAgZW51bSBCbG9iTG9hZGVyU3RhdHVzIHsKKyAgICAgICAgQmxvYkxvYWRlck5vdFN0
YXJ0ZWQsCisgICAgICAgIEJsb2JMb2FkZXJTdGFydGVkLAorICAgICAgICBCbG9iTG9hZGVyRmlu
aXNoZWQsCisgICAgICAgIEJsb2JMb2FkZXJGYWlsZWQKKyAgICB9OworI2VuZGlmCisKICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbENs
aWVudCogbV9jbGllbnQ7CiAgICAgT3duUHRyPFdlYlNvY2tldEhhbmRzaGFrZT4gbV9oYW5kc2hh
a2U7CkBAIC0yMTUsNiArMjM5LDEyIEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxPd25QdHI8UXVl
dWVkRnJhbWU+ID4gbV9vdXRnb2luZ0ZyYW1lUXVldWU7CiAgICAgT3V0Z29pbmdGcmFtZVF1ZXVl
U3RhdHVzIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzOworCisjaWYgRU5BQkxFKEJMT0IpCisg
ICAgLy8gRklYTUU6IExvYWQgdHdvIG9yIG1vcmUgQmxvYnMgc2ltdWx0YW5lb3VzbHkgZm9yIGJl
dHRlciBwZXJmb3JtYW5jZS4KKyAgICBPd25QdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9ibG9iTG9h
ZGVyOworICAgIEJsb2JMb2FkZXJTdGF0dXMgbV9ibG9iTG9hZGVyU3RhdHVzOworI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>