<?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>36360</bug_id>
          
          <creation_ts>2010-03-19 05:18:51 -0700</creation_ts>
          <short_desc>Double clicking page&apos;s first editable inline element cannot select a word.</short_desc>
          <delta_ts>2011-04-24 23:47:21 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dbates</cc>
    
    <cc>patrick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201815</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-03-19 05:18:51 -0700</bug_when>
    <thetext>Double clicking certain type of inline element  with contentEditable cannot select a clicked word.
See attached test-case for concrete example.

This one is similar to Bug 36359. But Its cause would be slightly different.
So I file this one separately.

reproduce:
- open the test html
- double-click &quot;here&quot; text

expected:
- selection range covers &quot;here&quot;
actual:
- the caret moves to the head of &quot;here&quot;, with empty range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201816</commentid>
    <comment_count>1</comment_count>
      <attachid>51145</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-03-19 05:24:03 -0700</bug_when>
    <thetext>Created attachment 51145
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201836</commentid>
    <comment_count>2</comment_count>
      <attachid>51152</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-03-19 06:37:05 -0700</bug_when>
    <thetext>Created attachment 51152
patch v0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202867</commentid>
    <comment_count>3</comment_count>
      <attachid>51152</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-03-22 18:26:06 -0700</bug_when>
    <thetext>Comment on attachment 51152
patch v0

This patch depends Bug 36359. So I&apos;ll cancel this one at now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228753</commentid>
    <comment_count>4</comment_count>
      <attachid>56672</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-05-20 22:50:32 -0700</bug_when>
    <thetext>Created attachment 56672
took the feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228754</commentid>
    <comment_count>5</comment_count>
      <attachid>56672</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-05-20 22:52:11 -0700</bug_when>
    <thetext>Comment on attachment 56672
took the feedback

The patch was uploaded to wrong bug.  So I&apos;ll cancel review request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231180</commentid>
    <comment_count>6</comment_count>
      <attachid>57209</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-05-27 01:35:55 -0700</bug_when>
    <thetext>Created attachment 57209
patch v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231181</commentid>
    <comment_count>7</comment_count>
      <attachid>57209</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-05-27 01:36:48 -0700</bug_when>
    <thetext>Comment on attachment 57209
patch v7

wrong bug id. canceled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231182</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-27 01:37:14 -0700</bug_when>
    <thetext>Attachment 57209 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/editing/TextIterator.cpp:1151:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 10 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>261112</commentid>
    <comment_count>9</comment_count>
      <attachid>63697</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-08-05 23:27:44 -0700</bug_when>
    <thetext>Created attachment 63697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261113</commentid>
    <comment_count>10</comment_count>
      <attachid>63697</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-08-05 23:28:48 -0700</bug_when>
    <thetext>Comment on attachment 63697
Patch

wrong bug id again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262088</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-08-09 04:40:27 -0700</bug_when>
    <thetext>Committed r64974: &lt;http://trac.webkit.org/changeset/64974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391701</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-24 23:47:21 -0700</bug_when>
    <thetext>*** Bug 34534 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>51145</attachid>
            <date>2010-03-19 05:24:03 -0700</date>
            <delta_ts>2010-03-19 05:24:03 -0700</delta_ts>
            <desc>test case</desc>
            <filename>doubleclick-inline-first-contenteditable.html</filename>
            <type>text/html</type>
            <size>202</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RvdWJsZWNsaWNrLWlubGluZS1j
b250ZW50ZWRpdGFibGUuanMiPjwvc2NyaXB0Pgo8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CjxkaXY+
PHNwYW4gaWQ9InRhcmdldCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj5oZXJlPC9zcGFuPiBkb3Vi
bGUgY2xpY2s8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51152</attachid>
            <date>2010-03-19 06:37:05 -0700</date>
            <delta_ts>2010-03-22 18:26:06 -0700</delta_ts>
            <desc>patch v0</desc>
            <filename>bug-36360-20100319223703.patch</filename>
            <type>text/plain</type>
            <size>5291</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNTc5ODhmLi5lNjMxZWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDMt
MTkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzYz
NjA+CisgICAgICAgIERvdWJsZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFibGUgaW5saW5l
IGVsZW1lbnQgY2Fubm90IHNlbGVjdCBhIHdvcmQuIAorCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGlu
ZS1maXJzdC1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisKIDIwMTAtMDMtMTggIEppYW4g
TGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBU
aXRvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNs
aWNrLWlubGluZS1maXJzdC1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWNvbnRlbnRlZGl0
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUy
OWFhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLWlubGluZS1maXJzdC1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAoraGVyZSBkb3VibGUgY2xpY2sKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWNvbnRlbnRl
ZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
aW5saW5lLWZpcnN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmE1MTdlODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtY29udGVudGVkaXRhYmxlLmh0
bWwKQEAgLTAsMCArMSw3MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCit7CisgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKworICAgIHZhciBwb3MgPSB7eDogMCwg
eTogMH07CisKKyAgICB2YXIgbiA9IHRhcmdldDsKKyAgICB3aGlsZSAobikgeworICAgICAgICBw
b3MueCArPSBuLm9mZnNldExlZnQgKyBuLmNsaWVudExlZnQ7CisgICAgICAgIHBvcy55ICs9IG4u
b2Zmc2V0VG9wICsgbi5jbGllbnRUb3A7CisgICAgICAgIG4gPSBuLm9mZnNldFBhcmVudDsKKyAg
ICB9CisKKyAgICBwb3MueCArPSB0YXJnZXQuY2xpZW50V2lkdGgvMjsKKyAgICBwb3MueSArPSB0
YXJnZXQuY2xpZW50SGVpZ2h0LzI7CisgICAgcmV0dXJuIHBvczsKK30KKworZnVuY3Rpb24gZG91
YmxlQ2xpY2tQb3NpdGlvbihwb3MpCit7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocG9z
LngsIHBvcy55KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRl
ci5sZWFwRm9yd2FyZCgxKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRT
ZW5kZXIubGVhcEZvcndhcmQoNTApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKwordmFyIGxvZ01lc3NhZ2VzID0gW107CisKK2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAg
bG9nTWVzc2FnZXMucHVzaChtc2cpOworfQorCisvLyBCZWNhdXNlIGV4dHJhIERPTSBub2RlcyBo
aWRlIHRoZSBwcm9ibGVtLCB3ZSBlbWl0IHRoZSBsb2dzIGFmdGVyIGFsbCB0ZXN0cyBhcmUgZmlu
aXNoZWQuCitmdW5jdGlvbiBmbHVzaExvZygpCit7CisgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZ01lc3Nh
Z2VzLmxlbmd0aDsgKytpKQorICAgICAgICBjb25zb2xlLmlubmVySFRNTCArPSAobG9nTWVzc2Fn
ZXNbaV0gKyAiXG4iKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGUpOwor
fQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0U2VsZWN0
aW9uKCk7CisgCisgICAgdmFyIHBvcyA9IGdldFBvc2l0aW9uT2ZOb2RlKCJ0YXJnZXQiKTsKKyAg
ICBkb3VibGVDbGlja1Bvc2l0aW9uKHBvcyk7CisKKyAgICB2YXIgZXhwZWN0ZWQgPSAiaGVyZSI7
CisgICAgaWYgKGV4cGVjdGVkID09IHNlbC50b1N0cmluZygpKQorICAgICAgICBsb2coIlBBU1Mi
KTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDoiICsgc2VsLnRvU3RyaW5nKCkgKyAiICE9
ICIgKyBleHBlY3RlZCk7CisKKyAgICBmbHVzaExvZygpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+Cis8ZGl2PjxzcGFuIGlkPSJ0YXJnZXQiIGNvbnRlbnRFZGl0YWJsZT0i
dHJ1ZSI+aGVyZTwvc3Bhbj4gZG91YmxlIGNsaWNrPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBj
Y2VhNjEuLmJlMDYwNWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDMtMTkgIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJs
ZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFibGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNl
bGVjdCBhIHdvcmQuIAorCisgICAgICAgIHByZXZpb3VzQm91bmRhcnkoKSBhc3N1bWVkIHRoYXQg
ZWRpdGFibGUgYm91bmRhcmllcyBhcmUgb24gYmxvY2stbGV2ZWwKKyAgICAgICAgZWxlbWVudHMs
IEJ1dCBpdCBjYW4gYXBwZWFyIG9uIGlubGluZS1sZXZlbCBlbGVtZW50cy4gU28gd2Ugc3RhcnQK
KyAgICAgICAgYm91bmRhcnkgbG9vay11cCBmcm9tIHRoZSBnaXZlbiBub2RlLCBpbnN0ZWFkIG9m
IHRoZSBjb250YWluaW5nQmxvY2sKKyAgICAgICAgb2YgdGhlIGdpdmVuIG5vZGUuCisgICAgICAg
IAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmly
c3QtY29udGVudGVkaXRhYmxlLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c0JvdW5kYXJ5KToKKwogMjAxMC0wMy0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzM2MzM4PiBSZW1vdmUgdW51c2VkIFJlbmRlclJlcGxhY2VkOjphZGp1c3RP
dmVyZmxvd0ZvckJveFNoYWRvd0FuZFJlZmxlY3QoKSBkZWNsYXJhdGlvbgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwCmluZGV4IDNkODVhZDEuLmMwOTU5YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91
bml0cy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBwcmV2aW91
c0JvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlTZWFyY2gKICAgICBO
b2RlICpkZSA9IGQtPmRvY3VtZW50RWxlbWVudCgpOwogICAgIGlmICghZGUpCiAgICAgICAgIHJl
dHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBOb2RlICpib3VuZGFyeSA9IG4tPmVuY2xvc2lu
Z0Jsb2NrRmxvd0VsZW1lbnQoKTsKKyAgICBOb2RlKiBib3VuZGFyeSA9IG47CiAgICAgaWYgKCFi
b3VuZGFyeSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogICAgIGJvb2wgaXND
b250ZW50RWRpdGFibGUgPSBib3VuZGFyeS0+aXNDb250ZW50RWRpdGFibGUoKTsKQEAgLTE1OSw2
ICsxNTksMTUgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0JvdW5kYXJ5KGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlTZWFyY2gKICAgICAgICAgICAgIEJhY2t3YXJk
c0NoYXJhY3Rlckl0ZXJhdG9yIGNoYXJJdChzZWFyY2hSYW5nZS5nZXQoKSk7CiAgICAgICAgICAg
ICBjaGFySXQuYWR2YW5jZShzdHJpbmcuc2l6ZSgpIC0gc3VmZml4TGVuZ3RoIC0gbmV4dCk7CiAg
ICAgICAgICAgICBwb3MgPSBjaGFySXQucmFuZ2UoKS0+ZW5kUG9zaXRpb24oKTsKKworICAgICAg
ICAgICAgLy8gSWYgdGhlIHBvc2l0aW9uIGhhcyBzb21lIHZpc3VhbGx5IGVxdWFsIGNhbmRpZGF0
ZXMsIEJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yIHBvc3NpYmx5IHNraXBzCisgICAgICAgICAg
ICAvLyBlZGl0aW5nIGJvdW5kYXJ5LiBTbyB3ZSBsb29rdXAgZWRpdGFibGUgbm9kZSBmcm9tIHRo
ZSBjYW5kaWRhdGVzLgorICAgICAgICAgICAgd2hpbGUgKHBvcy5ub2RlKCkgJiYgcG9zLm5vZGUo
KS0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBpc0NvbnRlbnRFZGl0YWJsZSkgeworICAgICAgICAg
ICAgICAgIFBvc2l0aW9uIGRvd25zdHJlYW0gPSBwb3MuZG93bnN0cmVhbShQb3NpdGlvbjo6Q2Fu
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAgICAgICAgIGlmIChkb3duc3RyZWFtID09
IHBvcykKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgcG9zID0g
ZG93bnN0cmVhbTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56672</attachid>
            <date>2010-05-20 22:50:32 -0700</date>
            <delta_ts>2010-05-27 01:35:49 -0700</delta_ts>
            <desc>took the feedback</desc>
            <filename>bug-36360-20100521145030.patch</filename>
            <type>text/plain</type>
            <size>8612</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNzhhNjBmMTk2MjlhMzYxODYyOGM2MmE5NDA5NGU2ODlhODJkZTExLi5kNmM5YmMx
Y2Y5ZWRhYmRjODc2MTE1NzBmZGVjMjI4NzY5ZDI5MTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMjAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJsZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFi
bGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNlbGVjdCBhIHdvcmQuIAorICAgICAgICA8aHR0cDov
L3dlYmtpdC5vcmcvYi8zNjM1OT4KKyAgICAgICAgRG91YmxlIGNsaWNraW5nIHBhZ2UncyBsYXN0
IGVkaXRhYmxlIGlubGluZSBlbGVtZW50IGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZS4KKworICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1jb250ZW50
ZWRpdGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1sYXN0LWNvbnRl
bnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLWlubGluZS1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sOiBBZGRlZC4K
KwogMjAxMC0wNS0yMCAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWNvbnRlbnRl
ZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay1pbmxpbmUtZmlyc3QtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZTI5YWEyYmVjZmNhMWJmZTY3NTk4MmE1MzhhMzJiZmRmZWQyZjcwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5l
LWZpcnN0LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitoZXJl
IGRvdWJsZSBjbGljaworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtY29udGVudGVkaXRhYmxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtY29u
dGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFiMjNlMDIxNzhkMjY4MWU3NmIwODkyNWJj
MDRiMzUzZDkzOTc3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAt
MCwwICsxLDU5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
CitmdW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKK3sKKyAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworCisgICAgdmFyIHBvcyA9IHt4OiAwLCB5OiAwfTsK
KworICAgIHZhciBuID0gdGFyZ2V0OworICAgIHdoaWxlIChuKSB7CisgICAgICAgIHBvcy54ICs9
IG4ub2Zmc2V0TGVmdCArIG4uY2xpZW50TGVmdDsKKyAgICAgICAgcG9zLnkgKz0gbi5vZmZzZXRU
b3AgKyBuLmNsaWVudFRvcDsKKyAgICAgICAgbiA9IG4ub2Zmc2V0UGFyZW50OworICAgIH0KKwor
ICAgIHBvcy54ICs9IHRhcmdldC5jbGllbnRXaWR0aCAvIDI7CisgICAgcG9zLnkgKz0gdGFyZ2V0
LmNsaWVudEhlaWdodCAvIDI7CisgICAgcmV0dXJuIHBvczsKK30KKworZnVuY3Rpb24gZG91Ymxl
Q2xpY2tQb3NpdGlvbihwb3MpCit7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocG9zLngs
IHBvcy55KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoNTApOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rp
b24gbG9nKG1zZykKK3sKKyAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InByZSIpOworICAgIGNvbnNvbGUuaW5uZXJIVE1MICs9IChtc2cgKyAiXG4iKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7CisgCisgICAgdmFyIHBvcyA9
IGdldFBvc2l0aW9uT2ZOb2RlKCJ0YXJnZXQiKTsKKyAgICBkb3VibGVDbGlja1Bvc2l0aW9uKHBv
cyk7CisKKyAgICB2YXIgZXhwZWN0ZWQgPSAiaGVyZSI7CisgICAgaWYgKGV4cGVjdGVkID09IHNl
bC50b1N0cmluZygpKQorICAgICAgICBsb2coIlBBU1MiKTsKKyAgICBlbHNlCisgICAgICAgIGxv
ZygiRkFJTDoiICsgc2VsLnRvU3RyaW5nKCkgKyAiICE9ICIgKyBleHBlY3RlZCk7Cit9Cis8L3Nj
cmlwdD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxkaXY+PHNwYW4gaWQ9InRhcmdldCIgY29u
dGVudEVkaXRhYmxlPSJ0cnVlIj5oZXJlPC9zcGFuPiBkb3VibGUgY2xpY2s8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLWlubGluZS1sYXN0LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtbGFzdC1jb250ZW50
ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzZDFkMWUzZGRiZDAxODU3YmFiYzJi
Y2QzZmI1NWQ0N2VmMzJhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtbGFzdC1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorZG91YmxlIGNsaWNrIGhlcmUKK1BBU1MKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWxh
c3QtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay1pbmxpbmUtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
OTc4NmRiYjcwOGZhYWE0MGY2YmI5MTdmYWM5YWNjMDJjNTBhZmY2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWxhc3Qt
Y29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQp
Cit7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKworICAg
IHZhciBwb3MgPSB7eDogMCwgeTogMH07CisKKyAgICB2YXIgbiA9IHRhcmdldDsKKyAgICB3aGls
ZSAobikgeworICAgICAgICBwb3MueCArPSBuLm9mZnNldExlZnQgKyBuLmNsaWVudExlZnQ7Cisg
ICAgICAgIHBvcy55ICs9IG4ub2Zmc2V0VG9wICsgbi5jbGllbnRUb3A7CisgICAgICAgIG4gPSBu
Lm9mZnNldFBhcmVudDsKKyAgICB9CisKKyAgICBwb3MueCArPSB0YXJnZXQuY2xpZW50V2lkdGgg
LyAyOworICAgIHBvcy55ICs9IHRhcmdldC5jbGllbnRIZWlnaHQgLyAyOworICAgIHJldHVybiBw
b3M7Cit9CisKK2Z1bmN0aW9uIGRvdWJsZUNsaWNrUG9zaXRpb24ocG9zKQoreworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHBvcy54LCBwb3MueSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDUwKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpCit7CisgICAgdmFy
IGNvbnNvbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKKyAgICBjb25zb2xlLmlu
bmVySFRNTCArPSAobXNnICsgIlxuIik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChj
b25zb2xlKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHNlbCA9IGRvY3VtZW50
LmdldFNlbGVjdGlvbigpOworIAorICAgIHZhciBwb3MgPSBnZXRQb3NpdGlvbk9mTm9kZSgidGFy
Z2V0Iik7CisgICAgZG91YmxlQ2xpY2tQb3NpdGlvbihwb3MpOworCisgICAgdmFyIGV4cGVjdGVk
ID0gImhlcmUiOworICAgIGlmIChleHBlY3RlZCA9PSBzZWwudG9TdHJpbmcoKSkKKyAgICAgICAg
bG9nKCJQQVNTIik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IiArIHNlbC50b1N0cmlu
ZygpICsgIiAhPSAiICsgZXhwZWN0ZWQpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+Cis8ZGl2PmRvdWJsZSBjbGljayA8c3BhbiBpZD0idGFyZ2V0IiBjb250ZW50RWRpdGFi
bGU9InRydWUiPmhlcmU8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM2OGNlNmVmYWI5
YzIyNzQ4ZTViYTNhN2Q3NTRmNzIyY2U0NTBjY2YuLmU0NTJiNzA3MDFkYzU3MTVhMmNmMGFlMTUx
MDQ5YzQzY2NhMmQ3MzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMjAgIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzYzNTk+CisgICAgICAgIERvdWJs
ZSBjbGlja2luZyBwYWdlJ3MgbGFzdCBlZGl0YWJsZSBpbmxpbmUgZWxlbWVudCBjYXVzZXMgYXNz
ZXJ0aW9uIGZhaWx1cmUuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM2MzYwPgorICAg
ICAgICBEb3VibGUgY2xpY2tpbmcgcGFnZSdzIGZpcnN0IGVkaXRhYmxlIGlubGluZSBlbGVtZW50
IGNhbm5vdCBzZWxlY3QgYSB3b3JkLiAKKworICAgICAgICBuZXh0Qm91bmRhcnkoKSBhbmQgcHJl
dmlvdXNCb3VuZGFyeSgpIGFzc3VtZWQgdGhhdCBlZGl0YWJsZQorICAgICAgICBib3VuZGFyaWVz
IGFyZSBvbiBibG9jay1sZXZlbCBlbGVtZW50cywgQnV0IGl0IGNhbiBhcHBlYXIgb24KKyAgICAg
ICAgaW5saW5lLWxldmVsIGVsZW1lbnRzLiBTbyB3ZSBzdGFydCBib3VuZGFyeSBsb29rLXVwIGZy
b20gdGhlIGdpdmVuCisgICAgICAgIG5vZGUsIGluc3RlYWQgb2YgdGhlIGNvbnRhaW5pbmdCbG9j
ayBvZiB0aGUgZ2l2ZW4gbm9kZS4KKyAgICAgICAgCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtY29udGVudGVkaXRhYmxlLmh0bWwKKyAg
ICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1sYXN0LWNv
bnRlbnRlZGl0YWJsZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJvdW5kYXJ5KTogICAgICAgIAorICAgICAgICAoV2Vi
Q29yZTo6cHJldmlvdXNCb3VuZGFyeSk6CisKIDIwMTAtMDUtMjAgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRleCBjMDk0YWFjYTJiYjQ0Yjc2NGI1YWNkNmRm
ZmZiNDA5NWNhNDdlODhkLi4zYjcxODRiZDQyMTE3NTdkNzlkNGIxOTA3MGZmMzRiZWVmN2UxZjI1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBW
aXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMs
IEJvdW5kYXJ5U2VhcmNoCiAgICAgTm9kZSAqZGUgPSBkLT5kb2N1bWVudEVsZW1lbnQoKTsKICAg
ICBpZiAoIWRlKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgTm9kZSAq
Ym91bmRhcnkgPSBuLT5lbmNsb3NpbmdCbG9ja0Zsb3dFbGVtZW50KCk7CisgICAgTm9kZSogYm91
bmRhcnkgPSBuOwogICAgIGlmICghYm91bmRhcnkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9z
aXRpb24oKTsKICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlID0gYm91bmRhcnktPmlzQ29udGVu
dEVkaXRhYmxlKCk7CkBAIC0xNTksNiArMTU5LDE1IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24g
cHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIEJvdW5kYXJ5U2VhcmNo
CiAgICAgICAgICAgICBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBjaGFySXQoc2VhcmNoUmFu
Z2UuZ2V0KCkpOwogICAgICAgICAgICAgY2hhckl0LmFkdmFuY2Uoc3RyaW5nLnNpemUoKSAtIHN1
ZmZpeExlbmd0aCAtIG5leHQpOwogICAgICAgICAgICAgcG9zID0gY2hhckl0LnJhbmdlKCktPmVu
ZFBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBwb3NpdGlvbiBoYXMgc29tZSB2
aXN1YWxseSBlcXVhbCBjYW5kaWRhdGVzLCBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBwb3Nz
aWJseSBza2lwcworICAgICAgICAgICAgLy8gZWRpdGluZyBib3VuZGFyeS4gU28gd2UgbG9va3Vw
IGVkaXRhYmxlIG5vZGUgZnJvbSB0aGUgY2FuZGlkYXRlcy4KKyAgICAgICAgICAgIHdoaWxlIChw
b3Mubm9kZSgpICYmIHBvcy5ub2RlKCktPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gaXNDb250ZW50
RWRpdGFibGUpIHsKKyAgICAgICAgICAgICAgICBQb3NpdGlvbiBkb3duc3RyZWFtID0gcG9zLmRv
d25zdHJlYW0oUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKKyAgICAgICAgICAg
ICAgICBpZiAoZG93bnN0cmVhbSA9PSBwb3MpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIHBvcyA9IGRvd25zdHJlYW07CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTE3NSwxMCArMTg0LDkgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBu
ZXh0Qm91bmRhcnkoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBCb3VuZGFyeVNlYXJjaEZ1bmMK
ICAgICBOb2RlICpkZSA9IGQtPmRvY3VtZW50RWxlbWVudCgpOwogICAgIGlmICghZGUpCiAgICAg
ICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBOb2RlICpib3VuZGFyeSA9IG4tPmVu
Y2xvc2luZ0Jsb2NrRmxvd0VsZW1lbnQoKTsKLSAgICBpZiAoIWJvdW5kYXJ5KQotICAgICAgICBy
ZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSA9IGJv
dW5kYXJ5LT5pc0NvbnRlbnRFZGl0YWJsZSgpOworCisgICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJs
ZSA9IG4tPmlzQ29udGVudEVkaXRhYmxlKCk7CisgICAgTm9kZSogYm91bmRhcnkgPSBuOwogICAg
IHdoaWxlIChib3VuZGFyeSAmJiBib3VuZGFyeSAhPSBkZSAmJiBib3VuZGFyeS0+cGFyZW50Tm9k
ZSgpICYmIGlzQ29udGVudEVkaXRhYmxlID09IGJvdW5kYXJ5LT5wYXJlbnROb2RlKCktPmlzQ29u
dGVudEVkaXRhYmxlKCkpCiAgICAgICAgIGJvdW5kYXJ5ID0gYm91bmRhcnktPnBhcmVudE5vZGUo
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57209</attachid>
            <date>2010-05-27 01:35:55 -0700</date>
            <delta_ts>2010-08-05 23:27:39 -0700</delta_ts>
            <desc>patch v7</desc>
            <filename>bug-36360-20100527173553.patch</filename>
            <type>text/plain</type>
            <size>16163</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNzhhNjBmMTk2MjlhMzYxODYyOGM2MmE5NDA5NGU2ODlhODJkZTExLi4yNWIxMWE1
ZGY0NjdlOGNkZThlN2Y4NGI1ODZlM2YxZWI3YzFhY2VmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDUtMjAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJsZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFi
bGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNlbGVjdCBhIHdvcmQuIAorICAgICAgICA8aHR0cDov
L3dlYmtpdC5vcmcvYi8zNjM1OT4KKyAgICAgICAgRG91YmxlIGNsaWNraW5nIHBhZ2UncyBsYXN0
IGVkaXRhYmxlIGlubGluZSBlbGVtZW50IGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZS4KKworICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNv
bnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wNS0yMCAgRnVtaXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0
LWxhc3QtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q1ZDQ4OWQxYWI5Y2IyNDI3NTAyNWM4Y2QwMzM3OTJm
OWQzZTRlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitoZXJlIHRvIGRvdWJsZSBjbGljaywgYW5kIHRoZXJlCitQQVNT
CitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVu
dGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVlNDM4MTE0Yzg3ODg4ZTNkZjk4ODZhODc0YWY4
Nzc5N2JkMjM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCkBA
IC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKK2Z1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQoreworICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisKKyAgICByZXR1cm4geworICAgICAgIngiOiAg
dGFyZ2V0Lm9mZnNldExlZnQgKyB0YXJnZXQuY2xpZW50V2lkdGggLyAyLAorICAgICAgInkiOiAg
dGFyZ2V0Lm9mZnNldFRvcCAgKyB0YXJnZXQuY2xpZW50SGVpZ2h0IC8gMgorICAgIH07Cit9CisK
K2Z1bmN0aW9uIGRvdWJsZUNsaWNrUG9zaXRpb24ocG9zKQoreworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHBvcy54LCBwb3MueSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAg
ICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOworICAgIGNvbnNv
bGUuaW5uZXJIVE1MICs9IChtc2cgKyAiXG4iKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGNvbnNvbGUpOworfQorCitmdW5jdGlvbiBzaG91bGRTZWxlY3QoaWQsIGV4cGVjdGVkVGV4
dCkKK3sKKyAgICB2YXIgc2VsID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7CisgCisgICAgdmFy
IHBvcyA9IGdldFBvc2l0aW9uT2ZOb2RlKGlkKTsKKyAgICBkb3VibGVDbGlja1Bvc2l0aW9uKHBv
cyk7CisKKyAgICBpZiAoZXhwZWN0ZWRUZXh0ID09IHNlbC50b1N0cmluZygpKQorICAgICAgICBs
b2coIlBBU1MiKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTDoiICsgc2VsLnRvU3RyaW5n
KCkgKyAiICE9ICIgKyBleHBlY3RlZFRleHQpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBzaG91bGRTZWxlY3QoImZpcnN0IiwgImhlcmUiKTsKKyAgICBzaG91bGRTZWxlY3QoImxhc3Qi
LCAidGhlcmUiKTsKK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZGl2
PjxzcGFuIGlkPSJmaXJzdCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj5oZXJlPC9zcGFuPiB0byBk
b3VibGUgY2xpY2ssIGFuZCA8c3BhbiBpZD0ibGFzdCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIj50
aGVyZTwvc3Bhbj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY4Y2U2ZWZhYjljMjI3NDhlNWJh
M2E3ZDc1NGY3MjJjZTQ1MGNjZi4uYzlhMDYxNDJmODk4MDBiZGJkMTkyMTFmMzMwNjQ1MTBjMDAy
NTZkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNS0yMCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8zNjM1OT4KKyAgICAgICAgRG91YmxlIGNsaWNraW5n
IHBhZ2UncyBsYXN0IGVkaXRhYmxlIGlubGluZSBlbGVtZW50IGNhdXNlcyBhc3NlcnRpb24gZmFp
bHVyZS4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJs
ZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFibGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNl
bGVjdCBhIHdvcmQuIAorCisgICAgICAgIG5leHRCb3VuZGFyeSgpIGFuZCBwcmV2aW91c0JvdW5k
YXJ5KCkgYXNzdW1lZCB0aGF0IGVkaXRhYmxlCisgICAgICAgIGJvdW5kYXJpZXMgYXJlIG9uIGJs
b2NrLWxldmVsIGVsZW1lbnRzLCBCdXQgaXQgY2FuIGFwcGVhciBvbgorICAgICAgICBpbmxpbmUt
bGV2ZWwgZWxlbWVudHMuIFNvIHdlIHN0YXJ0IGJvdW5kYXJ5IGxvb2stdXAgZnJvbSB0aGUgZ2l2
ZW4KKyAgICAgICAgbm9kZSwgaW5zdGVhZCBvZiB0aGUgY29udGFpbmluZ0Jsb2NrIG9mIHRoZSBn
aXZlbiBub2RlLgorICAgICAgICBBbHNvLCBhZGRlZCBUZXh0SXRlcmF0b3JFbmRzQXRFZGl0aW5n
Qm91bmRhcnkgdG8KKyAgICAgICAgQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IsIG90aGVyd2lz
ZSwgdGhlIFZpc2libGVQb3NpdGlvbgorICAgICAgICByZXR1cm5lZCBieSBCYWNrd2FyZHNDaGFy
YWN0ZXJJdGVyYXRvciBtaWdodCBjcm9zcyBhbiBlZGl0aW5nCisgICAgICAgIGJvdW5kYXJ5Lgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJz
dC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sICAgICAgICAKKworICAgICAgICAqIGRvbS9Ob2Rl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmVkaXRpbmdCb3VuZGFyeSk6IEFkZGVkLgor
ICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcjo6U2lt
cGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGlm
aWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNp
bXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3I6Omd1YXJkRWRpdGluZ0JvdW5kYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yOjpCYWNrd2FyZHNDaGFy
YWN0ZXJJdGVyYXRvcik6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXZpb3VzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6bmV4
dEJvdW5kYXJ5KToKKwogMjAxMC0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vTm9kZS5oIGIvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGQ2YmE4ZDZlMmU3
ZmEyMTM0NDExMmVjMGY5YjhmYjcxYWI2ZjJjNGQuLjZiOTZkMGE4YjZlYTdkNmUwNjY5ZGIwZDZl
NWQ5NDVkNzFkZWM2ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9XZWJD
b3JlL2RvbS9Ob2RlLmgKQEAgLTI1OCw3ICsyNTgsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgRWxl
bWVudCogZW5jbG9zaW5nSW5saW5lRWxlbWVudCgpIGNvbnN0OwogICAgIEVsZW1lbnQqIHJvb3RF
ZGl0YWJsZUVsZW1lbnQoKSBjb25zdDsKLSAgICAKKwogICAgIGJvb2wgaW5TYW1lQ29udGFpbmlu
Z0Jsb2NrRmxvd0VsZW1lbnQoTm9kZSopOwogICAgIAogICAgIC8vIFVzZWQgYnkgdGhlIHBhcnNl
ci4gQ2hlY2tzIGFnYWluc3QgdGhlIERURCwgdW5saWtlIERPTSBvcGVyYXRpb25zIGxpa2UgYXBw
ZW5kQ2hpbGQoKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCBkYjllM2M2MWNmMzZiNTJlMWY4NThlZjJhZTQwMzNi
M2VlMWY4MTRmLi45ODc1MWY2YzMyZTUzYTY3ZGFhNzRlYmU2YzhmODhiZGYzZTc2M2Y1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwCkBAIC0zMjgsNiArMzI4LDI1IEBAIGJvb2wgUG9zaXRpb246OmF0RWRpdGluZ0JvdW5k
YXJ5KCkgY29uc3QKICAgICAgICAgJiYgcHJldlBvc2l0aW9uLmlzTm90TnVsbCgpICYmICFwcmV2
UG9zaXRpb24ubm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpOwogfQogCitOb2RlKiBQb3NpdGlv
bjo6YXNjZW50RWRpdGluZ0JvdW5kYXJ5KCkgY29uc3QKK3sKKyAgICBpZiAoaXNOdWxsKCkpCisg
ICAgICAgIHJldHVybiAwOworICAgIGlmICghbV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIE5vZGUqIGRvY3VtZW50RWxlbWVudCA9IG1fYW5jaG9yTm9k
ZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudEVsZW1l
bnQpCisgICAgICAgIHJldHVybiAwOworCisgICAgTm9kZSogYm91bmRhcnkgPSBtX2FuY2hvck5v
ZGUuZ2V0KCk7CisgICAgd2hpbGUgKGJvdW5kYXJ5ICE9IGRvY3VtZW50RWxlbWVudCAmJiBib3Vu
ZGFyeS0+cGFyZW50Tm9kZSgpICYmIG1fYW5jaG9yTm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSA9
PSBib3VuZGFyeS0+cGFyZW50Tm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAgICAgICBi
b3VuZGFyeSA9IGJvdW5kYXJ5LT5wYXJlbnROb2RlKCk7CisgICAgCisgICAgcmV0dXJuIGJvdW5k
YXJ5OworfQorCisKIGJvb2wgUG9zaXRpb246OmF0U3RhcnRPZlRyZWUoKSBjb25zdAogewogICAg
IGlmIChpc051bGwoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5oCmluZGV4IGNlMDZmNDgzYTExZTRlOGY3NDBmMTNmNGZhZDA5NmUx
MDQ1ZmI3ZDYuLmU0MzVmNGE2ZjY1ZjE1ZmE3YmFjNTdkMWUwMjUxNDVmMmQyZDA1YzggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb24u
aApAQCAtMTQyLDYgKzE0Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGF0U3RhcnRPZlRyZWUoKSBj
b25zdDsKICAgICBib29sIGF0RW5kT2ZUcmVlKCkgY29uc3Q7CiAKKyAgICBOb2RlKiBhc2NlbnRF
ZGl0aW5nQm91bmRhcnkoKSBjb25zdDsKKwogICAgIC8vIEZJWE1FOiBNYWtlIHRoZXNlIG5vbi1t
ZW1iZXIgZnVuY3Rpb25zIGFuZCBwdXQgdGhlbSBzb21ld2hlcmUgaW4gdGhlIGVkaXRpbmcgZGly
ZWN0b3J5LgogICAgIC8vIFRoZXNlIGFyZW4ndCByZWFsbHkgYmFzaWMgInBvc2l0aW9uIiBvcGVy
YXRpb25zLiBNb3JlIGhpZ2ggbGV2ZWwgZWRpdGluZyBoZWxwZXIgZnVuY3Rpb25zLgogICAgIFBv
c2l0aW9uIGxlYWRpbmdXaGl0ZXNwYWNlUG9zaXRpb24oRUFmZmluaXR5LCBib29sIGNvbnNpZGVy
Tm9uQ29sbGFwc2libGVXaGl0ZXNwYWNlID0gZmFsc2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcAppbmRleCBmM2JkOWRmNmI5Zjk1YmYzMGRkYTJhMzBlNzI2ZDczNWYxOGY4YjFmLi44
YTkyMmYzOTBjOWY5Nzg2MWI5MjZiNTlkMjBkNjk4ZDYxOTIxMDZkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcApAQCAtMjcyLDYgKzI3Miw5IEBAIFRleHRJdGVyYXRvcjo6VGV4dEl0ZXJhdG9y
KGNvbnN0IFJhbmdlKiByLCBUZXh0SXRlcmF0b3JCZWhhdmlvciBiZWhhdmlvcikKICAgICAsIG1f
ZW50ZXJzVGV4dENvbnRyb2xzKGJlaGF2aW9yICYgVGV4dEl0ZXJhdG9yRW50ZXJzVGV4dENvbnRy
b2xzKQogICAgICwgbV9lbWl0c1RleHRXaXRob3V0VHJhbnNjb2RpbmcoYmVoYXZpb3IgJiBUZXh0
SXRlcmF0b3JFbWl0c1RleHRzV2l0aG91dFRyYW5zY29kaW5nKQogeworICAgIC8vIEZJWE1FOiBz
aG91bGQgc3VwcG9ydCBUZXh0SXRlcmF0b3JFbmRzQXRFZGl0aW5nQm91bmRhcnkKKyAgICBBU1NF
UlQoYmVoYXZpb3IgIT0gVGV4dEl0ZXJhdG9yRW5kc0F0RWRpdGluZ0JvdW5kYXJ5KTsKKwogICAg
IGlmICghcikKICAgICAgICAgcmV0dXJuOwogCkBAIC05NDQsMTMgKzk0NywxNSBAQCBOb2RlKiBU
ZXh0SXRlcmF0b3I6Om5vZGUoKSBjb25zdAogLy8gLS0tLS0tLS0KIAogU2ltcGxpZmllZEJhY2t3
YXJkc1RleHRJdGVyYXRvcjo6U2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcigpCi0gICAg
OiBtX3Bvc2l0aW9uTm9kZSgwKQorICAgIDogbV9iZWhhdmlvcihUZXh0SXRlcmF0b3JEZWZhdWx0
QmVoYXZpb3IpLCBtX3Bvc2l0aW9uTm9kZSgwKQogewogfQogCi1TaW1wbGlmaWVkQmFja3dhcmRz
VGV4dEl0ZXJhdG9yOjpTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yKGNvbnN0IFJhbmdl
KiByKQotICAgIDogbV9wb3NpdGlvbk5vZGUoMCkKK1NpbXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRl
cmF0b3I6OlNpbXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3IoY29uc3QgUmFuZ2UqIHIsIFRl
eHRJdGVyYXRvckJlaGF2aW9yIGJlaGF2aW9yKQorICAgIDogbV9iZWhhdmlvcihiZWhhdmlvciks
IG1fcG9zaXRpb25Ob2RlKDApCiB7CisgICAgQVNTRVJUKG1fYmVoYXZpb3IgPT0gVGV4dEl0ZXJh
dG9yRGVmYXVsdEJlaGF2aW9yIHx8IG1fYmVoYXZpb3IgPT0gVGV4dEl0ZXJhdG9yRW5kc0F0RWRp
dGluZ0JvdW5kYXJ5KTsKKwogICAgIGlmICghcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDM4
LDEyICsxMDQzLDkgQEAgdm9pZCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjphZHZh
bmNlKCkKICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAvLyBFeGl0IGFsbCBvdGhlciBjb250YWluZXJzLgotICAgICAgICAgICAgbmV4dCA9
IG1fbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgICAgICAgICB3aGlsZSAoIW5leHQpIHsK
LSAgICAgICAgICAgICAgICBOb2RlKiBwYXJlbnROb2RlID0gcGFyZW50Q3Jvc3NpbmdTaGFkb3dC
b3VuZGFyaWVzKG1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXJlbnROb2RlKQorICAg
ICAgICAgICAgd2hpbGUgKCFtX25vZGUtPnByZXZpb3VzU2libGluZygpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFzZXRDdXJyZW50Tm9kZShwYXJlbnRDcm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMo
bV9ub2RlKSkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIG1f
bm9kZSA9IHBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICAgbV9mdWxseUNsaXBwZWRTdGFjay5w
b3AoKTsKICAgICAgICAgICAgICAgICBleGl0Tm9kZSgpOwogICAgICAgICAgICAgICAgIGlmICht
X3Bvc2l0aW9uTm9kZSkgewpAQCAtMTA1MSwxNCArMTA1MywxNyBAQCB2b2lkIFNpbXBsaWZpZWRC
YWNrd2FyZHNUZXh0SXRlcmF0b3I6OmFkdmFuY2UoKQogICAgICAgICAgICAgICAgICAgICBtX2hh
bmRsZWRDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmV4dCA9IG1fbm9kZS0+cHJldmlvdXNTaWJs
aW5nKCk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5leHQgPSBtX25vZGUtPnByZXZp
b3VzU2libGluZygpOwogICAgICAgICAgICAgbV9mdWxseUNsaXBwZWRTdGFjay5wb3AoKTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgbV9ub2RlID0gbmV4dDsKLSAgICAgICAgaWYgKG1f
bm9kZSkKKyAgICAgICAgaWYgKHNldEN1cnJlbnROb2RlKG5leHQpKQogICAgICAgICAgICAgcHVz
aEZ1bGx5Q2xpcHBlZFN0YXRlKG1fZnVsbHlDbGlwcGVkU3RhY2ssIG1fbm9kZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGNsZWFyQ3VycmVudE5vZGUoKTsKKwogICAgICAgICAvLyBGb3Ig
dGhlIHB1cnBvc2Ugb2Ygd29yZCBib3VuZGFyeSBkZXRlY3Rpb24sCiAgICAgICAgIC8vIHdlIHNo
b3VsZCBpdGVyYXRlIGFsbCB2aXNpYmxlIHRleHQgYW5kIHRyYWlsaW5nIChjb2xsYXBzZWQpIHdo
aXRlc3BhY2VzLiAKICAgICAgICAgbV9vZmZzZXQgPSBtX25vZGUgPyBtYXhPZmZzZXRJbmNsdWRp
bmdDb2xsYXBzZWRTcGFjZXMobV9ub2RlKSA6IDA7CkBAIC0xMTM3LDYgKzExNDIsMjggQEAgdm9p
ZCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjplbWl0Q2hhcmFjdGVyKFVDaGFyIGMs
IE5vZGUqIG5vZGUsIGludCBzdGEKICAgICBtX2xhc3RDaGFyYWN0ZXIgPSBjOwogfQogCitib29s
IFNpbXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3I6OndpbGxDcm9zc0VkaXRpbmdCb3VuZGFy
eShOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBtX25vZGUtPmlzQ29udGVudEVkaXRh
YmxlKCkgIT0gbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKTsKK30KKworYm9vbCBTaW1wbGlmaWVk
QmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpzZXRDdXJyZW50Tm9kZShOb2RlKiBub2RlKQorIHsKKyAg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX25vZGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9iZWhhdmlvciA9PSBUZXh0SXRlcmF0b3JF
bmRzQXRFZGl0aW5nQm91bmRhcnkgJiYgd2lsbENyb3NzRWRpdGluZ0JvdW5kYXJ5KG5vZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9ub2RlID0gbm9kZTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpjbGVhckN1cnJl
bnROb2RlKCkKK3sKKyAgICBtX25vZGUgPSAwOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBTaW1w
bGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpyYW5nZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1f
cG9zaXRpb25Ob2RlKQpAQCAtMTI2MiwxMSArMTI4OSwxMSBAQCBCYWNrd2FyZHNDaGFyYWN0ZXJJ
dGVyYXRvcjo6QmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoKQogewogfQogCi1CYWNrd2FyZHND
aGFyYWN0ZXJJdGVyYXRvcjo6QmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2Uq
IHJhbmdlKQorQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3I6OkJhY2t3YXJkc0NoYXJhY3Rlckl0
ZXJhdG9yKGNvbnN0IFJhbmdlKiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgYmVoYXZpb3Ip
CiAgICAgOiBtX29mZnNldCgwKQogICAgICwgbV9ydW5PZmZzZXQoMCkKICAgICAsIG1fYXRCcmVh
ayh0cnVlKQotICAgICwgbV90ZXh0SXRlcmF0b3IocmFuZ2UpCisgICAgLCBtX3RleHRJdGVyYXRv
cihyYW5nZSwgYmVoYXZpb3IpCiB7CiAgICAgd2hpbGUgKCFhdEVuZCgpICYmICFtX3RleHRJdGVy
YXRvci5sZW5ndGgoKSkKICAgICAgICAgbV90ZXh0SXRlcmF0b3IuYWR2YW5jZSgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5oCmluZGV4IGJhMzgxYjliZmE0NGE3OWQxMDY0OTk5ZDJjNjA3YmU2OWY3NmE4
OTMuLjRiNjkyODRkZmY4YzhmOGQ0ZTgyZDAwNjVlZTllMWY4OTFhMGFhYWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmgKQEAgLTczLDYgKzczLDcgQEAgZW51bSBUZXh0SXRlcmF0b3JCZWhhdmlvciB7
CiAgICAgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3NpdGlv
bnMgPSAxIDw8IDAsCiAgICAgVGV4dEl0ZXJhdG9yRW50ZXJzVGV4dENvbnRyb2xzID0gMSA8PCAx
LAogICAgIFRleHRJdGVyYXRvckVtaXRzVGV4dHNXaXRob3V0VHJhbnNjb2RpbmcgPSAxIDw8IDIs
CisgICAgVGV4dEl0ZXJhdG9yRW5kc0F0RWRpdGluZ0JvdW5kYXJ5ID0gMSA8PCAzCiB9OwogCiBj
bGFzcyBUZXh0SXRlcmF0b3IgewpAQCAtMTY3LDcgKzE2OCw3IEBAIHByaXZhdGU6CiBjbGFzcyBT
aW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBTaW1wbGlmaWVk
QmFja3dhcmRzVGV4dEl0ZXJhdG9yKCk7Ci0gICAgZXhwbGljaXQgU2ltcGxpZmllZEJhY2t3YXJk
c1RleHRJdGVyYXRvcihjb25zdCBSYW5nZSopOworICAgIGV4cGxpY2l0IFNpbXBsaWZpZWRCYWNr
d2FyZHNUZXh0SXRlcmF0b3IoY29uc3QgUmFuZ2UqLCBUZXh0SXRlcmF0b3JCZWhhdmlvciA9IFRl
eHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CiAgICAgCiAgICAgYm9vbCBhdEVuZCgpIGNvbnN0
IHsgcmV0dXJuICFtX3Bvc2l0aW9uTm9kZTsgfQogICAgIHZvaWQgYWR2YW5jZSgpOwpAQCAtMTgz
LDcgKzE4NCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlUmVwbGFjZWRFbGVtZW50KCk7
CiAgICAgYm9vbCBoYW5kbGVOb25UZXh0Tm9kZSgpOwogICAgIHZvaWQgZW1pdENoYXJhY3RlcihV
Q2hhciwgTm9kZSosIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCk7Ci0gICAgCisgICAg
Ym9vbCB3aWxsQ3Jvc3NFZGl0aW5nQm91bmRhcnkoTm9kZSogbm9kZSkgY29uc3Q7CisgICAgYm9v
bCBzZXRDdXJyZW50Tm9kZShOb2RlKiBub2RlKTsKKyAgICB2b2lkIGNsZWFyQ3VycmVudE5vZGUo
KTsKKworICAgIFRleHRJdGVyYXRvckJlaGF2aW9yIG1fYmVoYXZpb3I7CiAgICAgLy8gQ3VycmVu
dCBwb3NpdGlvbiwgbm90IG5lY2Vzc2FyaWx5IG9mIHRoZSB0ZXh0IGJlaW5nIHJldHVybmVkLCBi
dXQgcG9zaXRpb24KICAgICAvLyBhcyB3ZSB3YWxrIHRocm91Z2ggdGhlIERPTSB0cmVlLgogICAg
IE5vZGUqIG1fbm9kZTsKQEAgLTI0Nyw3ICsyNTIsNyBAQCBwcml2YXRlOgogY2xhc3MgQmFja3dh
cmRzQ2hhcmFjdGVySXRlcmF0b3IgewogcHVibGljOgogICAgIEJhY2t3YXJkc0NoYXJhY3Rlckl0
ZXJhdG9yKCk7Ci0gICAgZXhwbGljaXQgQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoY29uc3Qg
UmFuZ2UqKTsKKyAgICBleHBsaWNpdCBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBS
YW5nZSosIFRleHRJdGVyYXRvckJlaGF2aW9yID0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9y
KTsKIAogICAgIHZvaWQgYWR2YW5jZShpbnQpOwogCkBAIC0yNTYsNiArMjYxLDcgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAg
VGV4dEl0ZXJhdG9yQmVoYXZpb3IgbV9iZWhhdmlvcjsKICAgICBpbnQgbV9vZmZzZXQ7CiAgICAg
aW50IG1fcnVuT2Zmc2V0OwogICAgIGJvb2wgbV9hdEJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwCmluZGV4IGMwOTRhYWNhMmJiNDRiNzY0YjVhY2Q2ZGZmZmI0MDk1Y2E0N2U4OGQuLjRh
MjY1YTQxM2QzMDQ1ZTQwZTY3YjViNGM0YWQ4ZjllOWMyOTFkNDUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJs
ZV91bml0cy5jcHAKQEAgLTc1LDIwICs3NSwxMSBAQCB0eXBlZGVmIHVuc2lnbmVkICgqQm91bmRh
cnlTZWFyY2hGdW5jdGlvbikoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbgog
c3RhdGljIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0JvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgYywgQm91bmRhcnlTZWFyY2hGdW5jdGlvbiBzZWFyY2hGdW5jdGlvbikKIHsKICAgICBQ
b3NpdGlvbiBwb3MgPSBjLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSAqbiA9IHBvcy5ub2Rl
KCk7Ci0gICAgaWYgKCFuKQotICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAg
RG9jdW1lbnQgKmQgPSBuLT5kb2N1bWVudCgpOwotICAgIE5vZGUgKmRlID0gZC0+ZG9jdW1lbnRF
bGVtZW50KCk7Ci0gICAgaWYgKCFkZSkKLSAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigp
OwotICAgIE5vZGUgKmJvdW5kYXJ5ID0gbi0+ZW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudCgpOwor
ICAgIE5vZGUqIGJvdW5kYXJ5ID0gcG9zLmFzY2VudEVkaXRpbmdCb3VuZGFyeSgpOwogICAgIGlm
ICghYm91bmRhcnkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBib29s
IGlzQ29udGVudEVkaXRhYmxlID0gYm91bmRhcnktPmlzQ29udGVudEVkaXRhYmxlKCk7Ci0gICAg
d2hpbGUgKGJvdW5kYXJ5ICYmIGJvdW5kYXJ5ICE9IGRlICYmIGJvdW5kYXJ5LT5wYXJlbnROb2Rl
KCkgJiYgaXNDb250ZW50RWRpdGFibGUgPT0gYm91bmRhcnktPnBhcmVudE5vZGUoKS0+aXNDb250
ZW50RWRpdGFibGUoKSkKLSAgICAgICAgYm91bmRhcnkgPSBib3VuZGFyeS0+cGFyZW50Tm9kZSgp
OwogCisgICAgRG9jdW1lbnQqIGQgPSBib3VuZGFyeS0+ZG9jdW1lbnQoKTsKICAgICBQb3NpdGlv
biBzdGFydCA9IHJhbmdlQ29tcGxpYW50RXF1aXZhbGVudChQb3NpdGlvbihib3VuZGFyeSwgMCkp
OwogICAgIFBvc2l0aW9uIGVuZCA9IHJhbmdlQ29tcGxpYW50RXF1aXZhbGVudChwb3MpOwogICAg
IFJlZlB0cjxSYW5nZT4gc2VhcmNoUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGQpOwpAQCAtMTIxLDcg
KzExMiw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGMsIEJvdW5kYXJ5U2VhcmNoCiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CiAKLSAgICBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0
ZXJhdG9yIGl0KHNlYXJjaFJhbmdlLmdldCgpKTsKKyAgICBTaW1wbGlmaWVkQmFja3dhcmRzVGV4
dEl0ZXJhdG9yIGl0KHNlYXJjaFJhbmdlLmdldCgpLCBUZXh0SXRlcmF0b3JFbmRzQXRFZGl0aW5n
Qm91bmRhcnkpOwogICAgIHVuc2lnbmVkIG5leHQgPSAwOwogICAgIGJvb2wgaW5UZXh0U2VjdXJp
dHlNb2RlID0gc3RhcnQubm9kZSgpICYmIHN0YXJ0Lm5vZGUoKS0+cmVuZGVyZXIoKSAmJiBzdGFy
dC5ub2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCktPnRleHRTZWN1cml0eSgpICE9IFRTTk9ORTsK
ICAgICBib29sIG5lZWRNb3JlQ29udGV4dCA9IGZhbHNlOwpAQCAtMTU2LDcgKzE0Nyw3IEBAIHN0
YXRpYyBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRp
b24mIGMsIEJvdW5kYXJ5U2VhcmNoCiAgICAgICAgICAgICBwb3MgPSBQb3NpdGlvbihub2RlLCBu
ZXh0KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBVc2UgdGhlIGNoYXJhY3RlciBp
dGVyYXRvciB0byB0cmFuc2xhdGUgdGhlIG5leHQgdmFsdWUgaW50byBhIERPTSBwb3NpdGlvbi4K
LSAgICAgICAgICAgIEJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yIGNoYXJJdChzZWFyY2hSYW5n
ZS5nZXQoKSk7CisgICAgICAgICAgICBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBjaGFySXQo
c2VhcmNoUmFuZ2UuZ2V0KCksIFRleHRJdGVyYXRvckVuZHNBdEVkaXRpbmdCb3VuZGFyeSk7CiAg
ICAgICAgICAgICBjaGFySXQuYWR2YW5jZShzdHJpbmcuc2l6ZSgpIC0gc3VmZml4TGVuZ3RoIC0g
bmV4dCk7CiAgICAgICAgICAgICBwb3MgPSBjaGFySXQucmFuZ2UoKS0+ZW5kUG9zaXRpb24oKTsK
ICAgICAgICAgfQpAQCAtMTY4LDIwICsxNTksMTEgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBw
cmV2aW91c0JvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlTZWFyY2gK
IHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gbmV4dEJvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlv
biYgYywgQm91bmRhcnlTZWFyY2hGdW5jdGlvbiBzZWFyY2hGdW5jdGlvbikKIHsKICAgICBQb3Np
dGlvbiBwb3MgPSBjLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSAqbiA9IHBvcy5ub2RlKCk7
Ci0gICAgaWYgKCFuKQotICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgRG9j
dW1lbnQgKmQgPSBuLT5kb2N1bWVudCgpOwotICAgIE5vZGUgKmRlID0gZC0+ZG9jdW1lbnRFbGVt
ZW50KCk7Ci0gICAgaWYgKCFkZSkKLSAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwot
ICAgIE5vZGUgKmJvdW5kYXJ5ID0gbi0+ZW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudCgpOworICAg
IE5vZGUqIGJvdW5kYXJ5ID0gcG9zLmFzY2VudEVkaXRpbmdCb3VuZGFyeSgpOwogICAgIGlmICgh
Ym91bmRhcnkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBib29sIGlz
Q29udGVudEVkaXRhYmxlID0gYm91bmRhcnktPmlzQ29udGVudEVkaXRhYmxlKCk7Ci0gICAgd2hp
bGUgKGJvdW5kYXJ5ICYmIGJvdW5kYXJ5ICE9IGRlICYmIGJvdW5kYXJ5LT5wYXJlbnROb2RlKCkg
JiYgaXNDb250ZW50RWRpdGFibGUgPT0gYm91bmRhcnktPnBhcmVudE5vZGUoKS0+aXNDb250ZW50
RWRpdGFibGUoKSkKLSAgICAgICAgYm91bmRhcnkgPSBib3VuZGFyeS0+cGFyZW50Tm9kZSgpOwog
CisgICAgRG9jdW1lbnQqIGQgPSBib3VuZGFyeS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8UmFu
Z2U+IHNlYXJjaFJhbmdlKGQtPmNyZWF0ZVJhbmdlKCkpOwogICAgIFBvc2l0aW9uIHN0YXJ0KHJh
bmdlQ29tcGxpYW50RXF1aXZhbGVudChwb3MpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63697</attachid>
            <date>2010-08-05 23:27:44 -0700</date>
            <delta_ts>2010-08-05 23:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36360-20100806152742.patch</filename>
            <type>text/plain</type>
            <size>17345</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTI3M2Q3YzNjMGY2NzY5YTc2ZDgxYjZlOGZhMDE1MDQ2OGMyZWJlLi5jMjE5M2Ex
N2U0ZDA3OTA1OTE0NDA3NTlmYzY0NWExNjYwMjI5ZTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDUtMjAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJsZSBjbGlja2luZyBwYWdlJ3MgZmlyc3QgZWRpdGFi
bGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNlbGVjdCBhIHdvcmQuIAorICAgICAgICA8aHR0cDov
L3dlYmtpdC5vcmcvYi8zNjM1OT4KKyAgICAgICAgRG91YmxlIGNsaWNraW5nIHBhZ2UncyBsYXN0
IGVkaXRhYmxlIGlubGluZSBlbGVtZW50IGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZS4KKworICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNv
bnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91Ymxl
Y2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOiBBZGRlZC4gIAorCiAy
MDEwLTA4LTA1ICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MzcwYzE2ODFhNGI0NTk5YWIzMmQ3N2RkZGFlMjFkYWE4MDhhZWZk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0IHRvIGNoZWNrIGlmIGxhc3QgYW5kIGZpcnN0IHdvcmQgY2FuIGJl
IHNlbGVjdGVkIHdoZW4gdGhleSBkb3VibGUtY2xpY2tlZCAoQnVnIDM2MzU5KQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKSBpcyAnc2VsZWN0bWUxJworUEFTUyB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSBpcyAnc2VsZWN0bWUyJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitzZWxlY3RtZTEgYW5kIG5vdCBzZWxlY3QgdXN5b3Ugc2hvdWxkIGlnbm9yZSB1
cyBidXQgc2VsZWN0bWUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0
LWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkMzg4YzM3OGE3YzI3ZDBkN2IyNjE0
NGM4MGY0MTNjNzIyY2IzNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUu
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXNlbGVjdGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxp
bmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
Y3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxl
LmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNs
aWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGYy
ODY2MDRkM2E2YjAyZGE5NGRmMTE1Mzg2MzkzOGYzN2M1NDBmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlu
bGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwpAQCAtMCwwICsxLDMzIEBACitkZXNj
cmlwdGlvbigiVGVzdCB0byBjaGVjayBpZiBsYXN0IGFuZCBmaXJzdCB3b3JkIGNhbiBiZSBzZWxl
Y3RlZCB3aGVuIHRoZXkgZG91YmxlLWNsaWNrZWQgKEJ1ZyAzNjM1OSkiKTsKKworZnVuY3Rpb24g
Z2V0UG9zaXRpb25PZk5vZGUobm9kZSkKK3sKKyAgICByZXR1cm4geworICAgICAgIngiOiAgbm9k
ZS5vZmZzZXRMZWZ0ICsgbm9kZS5jbGllbnRXaWR0aCAvIDIsCisgICAgICAieSI6ICBub2RlLm9m
ZnNldFRvcCAgKyBub2RlLmNsaWVudEhlaWdodCAvIDIKKyAgICB9OworfQorCitmdW5jdGlvbiBk
b3VibGVDbGlja1Bvc2l0aW9uKHBvcykKK3sKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhw
b3MueCwgcG9zLnkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9CisKK3ZhciB0YXJnZXRSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhcmdldFJvb3QpOworCit0
YXJnZXRSb290LmlubmVySFRNTCArPSAiPHNwYW4gaWQ9J2ZpcnN0VGFyZ2V0JyBjb250ZW50RWRp
dGFibGU+c2VsZWN0bWUxPC9zcGFuPiBhbmQgbm90IHNlbGVjdCB1cyI7Cit2YXIgZmlyc3RUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlyc3RUYXJnZXQiKTsKK2RvdWJsZUNsaWNr
UG9zaXRpb24oZ2V0UG9zaXRpb25PZk5vZGUoZmlyc3RUYXJnZXQpKTsKK3Nob3VsZEJlKCJ3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICInc2VsZWN0bWUxJyIpOworCit0YXJnZXRS
b290LmlubmVySFRNTCArPSAieW91IHNob3VsZCBpZ25vcmUgdXMgYnV0IDxzcGFuIGlkPSdsYXN0
VGFyZ2V0JyBjb250ZW50RWRpdGFibGU+c2VsZWN0bWUyPC9zcGFuPiI7Cit2YXIgbGFzdFRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXN0VGFyZ2V0Iik7Citkb3VibGVDbGlja1Bv
c2l0aW9uKGdldFBvc2l0aW9uT2ZOb2RlKGxhc3RUYXJnZXQpKTsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICInc2VsZWN0bWUyJyIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjZlYThiZGVhZWQ0OGYxOWE4NGE2NjVhOTcxOWMwZGZiYTkx
ZmIxMy4uZGFjODgzMGI2MmQ2ZGE2Nzk4YjMyZDBkMzE3ODliN2UzNDNjOTJkNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MCBAQAorMjAxMC0wNS0yNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICA8aHR0cDovL3dl
YmtpdC5vcmcvYi8zNjM1OT4KKyAgICAgICAgRG91YmxlIGNsaWNraW5nIHBhZ2UncyBsYXN0IGVk
aXRhYmxlIGlubGluZSBlbGVtZW50IGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZS4KKyAgICAgICAg
PGh0dHA6Ly93ZWJraXQub3JnL2IvMzYzNjA+CisgICAgICAgIERvdWJsZSBjbGlja2luZyBwYWdl
J3MgZmlyc3QgZWRpdGFibGUgaW5saW5lIGVsZW1lbnQgY2Fubm90IHNlbGVjdCBhIHdvcmQuIAor
CisgICAgICAgIG5leHRCb3VuZGFyeSgpIGFuZCBwcmV2aW91c0JvdW5kYXJ5KCkgYXNzdW1lZCB0
aGF0IGVkaXRhYmxlCisgICAgICAgIGJvdW5kYXJpZXMgYXJlIG9uIGJsb2NrLWxldmVsIGVsZW1l
bnRzLCBCdXQgaXQgY2FuIGFwcGVhciBvbgorICAgICAgICBpbmxpbmUtbGV2ZWwgZWxlbWVudHMu
IFNvIHdlIHN0YXJ0IGJvdW5kYXJ5IGxvb2stdXAgZnJvbSB0aGUgZ2l2ZW4KKyAgICAgICAgbm9k
ZSwgaW5zdGVhZCBvZiB0aGUgY29udGFpbmluZ0Jsb2NrIG9mIHRoZSBnaXZlbiBub2RlLgorICAg
ICAgICBBbHNvLCBhZGRlZCBUZXh0SXRlcmF0b3JFbmRzQXRFZGl0aW5nQm91bmRhcnkgdG8KKyAg
ICAgICAgQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IsIG90aGVyd2lzZSwgdGhlIFZpc2libGVQ
b3NpdGlvbgorICAgICAgICByZXR1cm5lZCBieSBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBt
aWdodCBjcm9zcyBhbiBlZGl0aW5nCisgICAgICAgIGJvdW5kYXJ5LgorCisgICAgICAgIFRlc3Q6
IGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRl
ZGl0YWJsZS5odG1sICAgICAgICAKKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cGFyZW50RWRpdGluZ0JvdW5kYXJ5KTogQWRkZWQuCisg
ICAgICAgICogZG9tL1Bvc2l0aW9uLmg6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjpUZXh0SXRlcmF0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcjo6U2ltcGxpZmll
ZEJhY2t3YXJkc1RleHRJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGlmaWVkQmFj
a3dhcmRzVGV4dEl0ZXJhdG9yOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsaWZp
ZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3I6OmNyb3NzZXNFZGl0aW5nQm91bmRhcnkpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNpbXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3I6OnNldEN1
cnJlbnROb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGlmaWVkQmFja3dhcmRz
VGV4dEl0ZXJhdG9yOjpjbGVhckN1cnJlbnROb2RlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvcjo6QmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3Ip
OgorICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjop
OgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwcmV2aW91c0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRCb3VuZGFyeSk6CisK
IDIwMTAtMDgtMDUgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbi5jcHAgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggNjViNzI2
MTQxZTg2ZTdmMmM5MjllYzM2OTA3NDcxMjUxMDU5MGFlOS4uNDc1OGJkOWI4MTJhYWUyZDQ0NDJi
M2QzNDYwOWE4Njg4N2E4NGI4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMzI4LDYgKzMyOCwyMyBAQCBib29s
IFBvc2l0aW9uOjphdEVkaXRpbmdCb3VuZGFyeSgpIGNvbnN0CiAgICAgICAgICYmIHByZXZQb3Np
dGlvbi5pc05vdE51bGwoKSAmJiAhcHJldlBvc2l0aW9uLm5vZGUoKS0+aXNDb250ZW50RWRpdGFi
bGUoKTsKIH0KIAorTm9kZSogUG9zaXRpb246OnBhcmVudEVkaXRpbmdCb3VuZGFyeSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBOb2RlKiBkb2N1bWVudEVsZW1lbnQgPSBtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghZG9jdW1lbnRF
bGVtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIE5vZGUqIGJvdW5kYXJ5ID0gbV9hbmNo
b3JOb2RlLmdldCgpOworICAgIHdoaWxlIChib3VuZGFyeSAhPSBkb2N1bWVudEVsZW1lbnQgJiYg
Ym91bmRhcnktPnBhcmVudE5vZGUoKSAmJiBtX2FuY2hvck5vZGUtPmlzQ29udGVudEVkaXRhYmxl
KCkgPT0gYm91bmRhcnktPnBhcmVudE5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAg
ICAgYm91bmRhcnkgPSBib3VuZGFyeS0+cGFyZW50Tm9kZSgpOworICAgIAorICAgIHJldHVybiBi
b3VuZGFyeTsKK30KKworCiBib29sIFBvc2l0aW9uOjphdFN0YXJ0T2ZUcmVlKCkgY29uc3QKIHsK
ICAgICBpZiAoaXNOdWxsKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIv
V2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCBmNjA2YzI5NjAxMWUxZWYyYmJhNzc4MmI3NTlm
NTczN2E3YjVjYWViLi45ZjJlZTI0NWY4NWRhYTc4M2Q0NDE1ZDE4MzBhNGViZmQxY2FiMTYzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBSZXR1cm5zIHRydWUg
aWYgdGhlIHZpc3VhbGx5IGVxdWl2YWxlbnQgcG9zaXRpb25zIGFyb3VuZCBoYXZlIGRpZmZlcmVu
dCBlZGl0YWJpbGl0eQogICAgIGJvb2wgYXRFZGl0aW5nQm91bmRhcnkoKSBjb25zdDsKKyAgICBO
b2RlKiBwYXJlbnRFZGl0aW5nQm91bmRhcnkoKSBjb25zdDsKICAgICAKICAgICBib29sIGF0U3Rh
cnRPZlRyZWUoKSBjb25zdDsKICAgICBib29sIGF0RW5kT2ZUcmVlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwCmluZGV4IGYzYmQ5ZGY2YjlmOTViZjMwZGRhMmEzMGU3MjZkNzM1ZjE4
ZjhiMWYuLjAwZmI2NmZjZjU4Y2VmZTZmZmZmNmMxZmJiMTExYzllN2I1OGI3NTkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCkBAIC0yNzIsNiArMjcyLDkgQEAgVGV4dEl0ZXJhdG9yOjpUZXh0
SXRlcmF0b3IoY29uc3QgUmFuZ2UqIHIsIFRleHRJdGVyYXRvckJlaGF2aW9yIGJlaGF2aW9yKQog
ICAgICwgbV9lbnRlcnNUZXh0Q29udHJvbHMoYmVoYXZpb3IgJiBUZXh0SXRlcmF0b3JFbnRlcnNU
ZXh0Q29udHJvbHMpCiAgICAgLCBtX2VtaXRzVGV4dFdpdGhvdXRUcmFuc2NvZGluZyhiZWhhdmlv
ciAmIFRleHRJdGVyYXRvckVtaXRzVGV4dHNXaXRob3V0VHJhbnNjb2RpbmcpCiB7CisgICAgLy8g
aHR0cDovL3dlYmtpdC5vcmcvYi80MzYwOTogc2hvdWxkIHN1cHBvcnQgVGV4dEl0ZXJhdG9yRW5k
c0F0RWRpdGluZ0JvdW5kYXJ5IAorICAgIEFTU0VSVChiZWhhdmlvciAhPSBUZXh0SXRlcmF0b3JF
bmRzQXRFZGl0aW5nQm91bmRhcnkpOworCiAgICAgaWYgKCFyKQogICAgICAgICByZXR1cm47CiAK
QEAgLTk0NCwxMyArOTQ3LDE5IEBAIE5vZGUqIFRleHRJdGVyYXRvcjo6bm9kZSgpIGNvbnN0CiAv
LyAtLS0tLS0tLQogCiBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpTaW1wbGlmaWVk
QmFja3dhcmRzVGV4dEl0ZXJhdG9yKCkKLSAgICA6IG1fcG9zaXRpb25Ob2RlKDApCisgICAgOiBt
X2JlaGF2aW9yKFRleHRJdGVyYXRvckRlZmF1bHRCZWhhdmlvcikKKyAgICAsIG1fbm9kZSgwKQor
ICAgICwgbV9wb3NpdGlvbk5vZGUoMCkKIHsKIH0KIAotU2ltcGxpZmllZEJhY2t3YXJkc1RleHRJ
dGVyYXRvcjo6U2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcihjb25zdCBSYW5nZSogcikK
LSAgICA6IG1fcG9zaXRpb25Ob2RlKDApCitTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9y
OjpTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yKGNvbnN0IFJhbmdlKiByLCBUZXh0SXRl
cmF0b3JCZWhhdmlvciBiZWhhdmlvcikKKyAgICA6IG1fYmVoYXZpb3IoYmVoYXZpb3IpCisgICAg
LCBtX25vZGUoMCkKKyAgICAsIG1fcG9zaXRpb25Ob2RlKDApCiB7CisgICAgQVNTRVJUKG1fYmVo
YXZpb3IgPT0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yIHx8IG1fYmVoYXZpb3IgPT0gVGV4
dEl0ZXJhdG9yRW5kc0F0RWRpdGluZ0JvdW5kYXJ5KTsKKwogICAgIGlmICghcikKICAgICAgICAg
cmV0dXJuOwogCkBAIC05NzQsNyArOTgzLDcgQEAgU2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVy
YXRvcjo6U2ltcGxpZmllZEJhY2t3YXJkc1RleHRJdGVyYXRvcihjb25zdCBSYW5nZSogcikKICAg
ICAgICAgfQogICAgIH0KIAotICAgIG1fbm9kZSA9IGVuZE5vZGU7CisgICAgc2V0Q3VycmVudE5v
ZGUoZW5kTm9kZSk7CiAgICAgc2V0VXBGdWxseUNsaXBwZWRTdGFjayhtX2Z1bGx5Q2xpcHBlZFN0
YWNrLCBtX25vZGUpOyAgICAKICAgICBtX29mZnNldCA9IGVuZE9mZnNldDsKICAgICBtX2hhbmRs
ZWROb2RlID0gZmFsc2U7CkBAIC0xMDM4LDEyICsxMDQ3LDkgQEAgdm9pZCBTaW1wbGlmaWVkQmFj
a3dhcmRzVGV4dEl0ZXJhdG9yOjphZHZhbmNlKCkKICAgICAgICAgICAgICAgICB9ICAgICAgICAg
ICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBFeGl0IGFsbCBvdGhlciBjb250YWlu
ZXJzLgotICAgICAgICAgICAgbmV4dCA9IG1fbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAg
ICAgICAgICB3aGlsZSAoIW5leHQpIHsKLSAgICAgICAgICAgICAgICBOb2RlKiBwYXJlbnROb2Rl
ID0gcGFyZW50Q3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKG1fbm9kZSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFwYXJlbnROb2RlKQorICAgICAgICAgICAgd2hpbGUgKCFtX25vZGUtPnByZXZpb3Vz
U2libGluZygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzZXRDdXJyZW50Tm9kZShwYXJlbnRD
cm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMobV9ub2RlKSkpCiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIG1fbm9kZSA9IHBhcmVudE5vZGU7CiAgICAgICAgICAgICAg
ICAgbV9mdWxseUNsaXBwZWRTdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICBleGl0Tm9kZSgp
OwogICAgICAgICAgICAgICAgIGlmIChtX3Bvc2l0aW9uTm9kZSkgewpAQCAtMTA1MSwxNCArMTA1
NywxNyBAQCB2b2lkIFNpbXBsaWZpZWRCYWNrd2FyZHNUZXh0SXRlcmF0b3I6OmFkdmFuY2UoKQog
ICAgICAgICAgICAgICAgICAgICBtX2hhbmRsZWRDaGlsZHJlbiA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmV4
dCA9IG1fbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIG5leHQgPSBtX25vZGUtPnByZXZpb3VzU2libGluZygpOwogICAgICAgICAgICAgbV9mdWxs
eUNsaXBwZWRTdGFjay5wb3AoKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgbV9ub2Rl
ID0gbmV4dDsKLSAgICAgICAgaWYgKG1fbm9kZSkKKyAgICAgICAgaWYgKG1fbm9kZSAmJiBzZXRD
dXJyZW50Tm9kZShuZXh0KSkKICAgICAgICAgICAgIHB1c2hGdWxseUNsaXBwZWRTdGF0ZShtX2Z1
bGx5Q2xpcHBlZFN0YWNrLCBtX25vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjbGVh
ckN1cnJlbnROb2RlKCk7CisKICAgICAgICAgLy8gRm9yIHRoZSBwdXJwb3NlIG9mIHdvcmQgYm91
bmRhcnkgZGV0ZWN0aW9uLAogICAgICAgICAvLyB3ZSBzaG91bGQgaXRlcmF0ZSBhbGwgdmlzaWJs
ZSB0ZXh0IGFuZCB0cmFpbGluZyAoY29sbGFwc2VkKSB3aGl0ZXNwYWNlcy4gCiAgICAgICAgIG1f
b2Zmc2V0ID0gbV9ub2RlID8gbWF4T2Zmc2V0SW5jbHVkaW5nQ29sbGFwc2VkU3BhY2VzKG1fbm9k
ZSkgOiAwOwpAQCAtMTEzNyw2ICsxMTQ2LDI2IEBAIHZvaWQgU2ltcGxpZmllZEJhY2t3YXJkc1Rl
eHRJdGVyYXRvcjo6ZW1pdENoYXJhY3RlcihVQ2hhciBjLCBOb2RlKiBub2RlLCBpbnQgc3RhCiAg
ICAgbV9sYXN0Q2hhcmFjdGVyID0gYzsKIH0KIAorYm9vbCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4
dEl0ZXJhdG9yOjpjcm9zc2VzRWRpdGluZ0JvdW5kYXJ5KE5vZGUqIG5vZGUpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fbm9kZSAmJiBtX25vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gbm9kZS0+
aXNDb250ZW50RWRpdGFibGUoKTsKK30KKworYm9vbCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0
ZXJhdG9yOjpzZXRDdXJyZW50Tm9kZShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2JlaGF2aW9yID09IFRleHRJdGVyYXRvckVu
ZHNBdEVkaXRpbmdCb3VuZGFyeSAmJiBjcm9zc2VzRWRpdGluZ0JvdW5kYXJ5KG5vZGUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9ub2RlID0gbm9kZTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpjbGVhckN1cnJlbnRO
b2RlKCkKK3sKKyAgICBtX25vZGUgPSAwOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBTaW1wbGlm
aWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yOjpyYW5nZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fcG9z
aXRpb25Ob2RlKQpAQCAtMTI2MiwxMSArMTI5MSwxMSBAQCBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVy
YXRvcjo6QmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoKQogewogfQogCi1CYWNrd2FyZHNDaGFy
YWN0ZXJJdGVyYXRvcjo6QmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UqIHJh
bmdlKQorQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3I6OkJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJh
dG9yKGNvbnN0IFJhbmdlKiByYW5nZSwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgYmVoYXZpb3IpCiAg
ICAgOiBtX29mZnNldCgwKQogICAgICwgbV9ydW5PZmZzZXQoMCkKICAgICAsIG1fYXRCcmVhayh0
cnVlKQotICAgICwgbV90ZXh0SXRlcmF0b3IocmFuZ2UpCisgICAgLCBtX3RleHRJdGVyYXRvcihy
YW5nZSwgYmVoYXZpb3IpCiB7CiAgICAgd2hpbGUgKCFhdEVuZCgpICYmICFtX3RleHRJdGVyYXRv
ci5sZW5ndGgoKSkKICAgICAgICAgbV90ZXh0SXRlcmF0b3IuYWR2YW5jZSgpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL1RleHRJ
dGVyYXRvci5oCmluZGV4IGJhMzgxYjliZmE0NGE3OWQxMDY0OTk5ZDJjNjA3YmU2OWY3NmE4OTMu
LjZhMGQ2ODVlYjY4YjcyM2Y3YjgwNjU2MzE2MTY2Y2YyZWZiMDZlODkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmgKQEAgLTczLDYgKzczLDcgQEAgZW51bSBUZXh0SXRlcmF0b3JCZWhhdmlvciB7CiAg
ICAgVGV4dEl0ZXJhdG9yRW1pdHNDaGFyYWN0ZXJzQmV0d2VlbkFsbFZpc2libGVQb3NpdGlvbnMg
PSAxIDw8IDAsCiAgICAgVGV4dEl0ZXJhdG9yRW50ZXJzVGV4dENvbnRyb2xzID0gMSA8PCAxLAog
ICAgIFRleHRJdGVyYXRvckVtaXRzVGV4dHNXaXRob3V0VHJhbnNjb2RpbmcgPSAxIDw8IDIsCisg
ICAgVGV4dEl0ZXJhdG9yRW5kc0F0RWRpdGluZ0JvdW5kYXJ5ID0gMSA8PCAzCiB9OwogCiBjbGFz
cyBUZXh0SXRlcmF0b3IgewpAQCAtMTY3LDcgKzE2OCw3IEBAIHByaXZhdGU6CiBjbGFzcyBTaW1w
bGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBTaW1wbGlmaWVkQmFj
a3dhcmRzVGV4dEl0ZXJhdG9yKCk7Ci0gICAgZXhwbGljaXQgU2ltcGxpZmllZEJhY2t3YXJkc1Rl
eHRJdGVyYXRvcihjb25zdCBSYW5nZSopOworICAgIGV4cGxpY2l0IFNpbXBsaWZpZWRCYWNrd2Fy
ZHNUZXh0SXRlcmF0b3IoY29uc3QgUmFuZ2UqLCBUZXh0SXRlcmF0b3JCZWhhdmlvciA9IFRleHRJ
dGVyYXRvckRlZmF1bHRCZWhhdmlvcik7CiAgICAgCiAgICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsg
cmV0dXJuICFtX3Bvc2l0aW9uTm9kZTsgfQogICAgIHZvaWQgYWR2YW5jZSgpOwpAQCAtMTgzLDcg
KzE4NCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlUmVwbGFjZWRFbGVtZW50KCk7CiAg
ICAgYm9vbCBoYW5kbGVOb25UZXh0Tm9kZSgpOwogICAgIHZvaWQgZW1pdENoYXJhY3RlcihVQ2hh
ciwgTm9kZSosIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCk7Ci0gICAgCisgICAgYm9v
bCBjcm9zc2VzRWRpdGluZ0JvdW5kYXJ5KE5vZGUqKSBjb25zdDsKKyAgICBib29sIHNldEN1cnJl
bnROb2RlKE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyQ3VycmVudE5vZGUoKTsKKworICAgIFRleHRJ
dGVyYXRvckJlaGF2aW9yIG1fYmVoYXZpb3I7CiAgICAgLy8gQ3VycmVudCBwb3NpdGlvbiwgbm90
IG5lY2Vzc2FyaWx5IG9mIHRoZSB0ZXh0IGJlaW5nIHJldHVybmVkLCBidXQgcG9zaXRpb24KICAg
ICAvLyBhcyB3ZSB3YWxrIHRocm91Z2ggdGhlIERPTSB0cmVlLgogICAgIE5vZGUqIG1fbm9kZTsK
QEAgLTI0Nyw3ICsyNTIsNyBAQCBwcml2YXRlOgogY2xhc3MgQmFja3dhcmRzQ2hhcmFjdGVySXRl
cmF0b3IgewogcHVibGljOgogICAgIEJhY2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yKCk7Ci0gICAg
ZXhwbGljaXQgQmFja3dhcmRzQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgUmFuZ2UqKTsKKyAgICBl
eHBsaWNpdCBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBSYW5nZSosIFRleHRJdGVy
YXRvckJlaGF2aW9yID0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yKTsKIAogICAgIHZvaWQg
YWR2YW5jZShpbnQpOwogCkBAIC0yNTYsNiArMjYxLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQ
dHI8UmFuZ2U+IHJhbmdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgVGV4dEl0ZXJhdG9yQmVo
YXZpb3IgbV9iZWhhdmlvcjsKICAgICBpbnQgbV9vZmZzZXQ7CiAgICAgaW50IG1fcnVuT2Zmc2V0
OwogICAgIGJvb2wgbV9hdEJyZWFrOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCmluZGV4IGRk
NDg0MDYwMWRmY2UzZDM0MjhlNmFlMDJhYjkxMGM5MjRiZGNiNGYuLjRmY2UyZDljMjJmNTdiYWVh
NGNhYzAwYWRjMjdhODJiNmZlMDM1ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy92aXNp
YmxlX3VuaXRzLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKQEAg
LTc1LDIwICs3NSwxMSBAQCB0eXBlZGVmIHVuc2lnbmVkICgqQm91bmRhcnlTZWFyY2hGdW5jdGlv
bikoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbgogc3RhdGljIFZpc2libGVQ
b3NpdGlvbiBwcmV2aW91c0JvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRh
cnlTZWFyY2hGdW5jdGlvbiBzZWFyY2hGdW5jdGlvbikKIHsKICAgICBQb3NpdGlvbiBwb3MgPSBj
LmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSAqbiA9IHBvcy5ub2RlKCk7Ci0gICAgaWYgKCFu
KQotICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgRG9jdW1lbnQgKmQgPSBu
LT5kb2N1bWVudCgpOwotICAgIE5vZGUgKmRlID0gZC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAg
aWYgKCFkZSkKLSAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwotICAgIE5vZGUgKmJv
dW5kYXJ5ID0gbi0+ZW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudCgpOworICAgIE5vZGUqIGJvdW5k
YXJ5ID0gcG9zLnBhcmVudEVkaXRpbmdCb3VuZGFyeSgpOwogICAgIGlmICghYm91bmRhcnkpCiAg
ICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBib29sIGlzQ29udGVudEVkaXRh
YmxlID0gYm91bmRhcnktPmlzQ29udGVudEVkaXRhYmxlKCk7Ci0gICAgd2hpbGUgKGJvdW5kYXJ5
ICYmIGJvdW5kYXJ5ICE9IGRlICYmIGJvdW5kYXJ5LT5wYXJlbnROb2RlKCkgJiYgaXNDb250ZW50
RWRpdGFibGUgPT0gYm91bmRhcnktPnBhcmVudE5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkK
LSAgICAgICAgYm91bmRhcnkgPSBib3VuZGFyeS0+cGFyZW50Tm9kZSgpOwogCisgICAgRG9jdW1l
bnQqIGQgPSBib3VuZGFyeS0+ZG9jdW1lbnQoKTsKICAgICBQb3NpdGlvbiBzdGFydCA9IHJhbmdl
Q29tcGxpYW50RXF1aXZhbGVudChQb3NpdGlvbihib3VuZGFyeSwgMCkpOwogICAgIFBvc2l0aW9u
IGVuZCA9IHJhbmdlQ29tcGxpYW50RXF1aXZhbGVudChwb3MpOwogICAgIFJlZlB0cjxSYW5nZT4g
c2VhcmNoUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGQpOwpAQCAtMTIxLDcgKzExMiw3IEBAIHN0YXRp
YyBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24m
IGMsIEJvdW5kYXJ5U2VhcmNoCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gVmlzaWJsZVBv
c2l0aW9uKCk7CiAKLSAgICBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yIGl0KHNlYXJj
aFJhbmdlLmdldCgpKTsKKyAgICBTaW1wbGlmaWVkQmFja3dhcmRzVGV4dEl0ZXJhdG9yIGl0KHNl
YXJjaFJhbmdlLmdldCgpLCBUZXh0SXRlcmF0b3JFbmRzQXRFZGl0aW5nQm91bmRhcnkpOwogICAg
IHVuc2lnbmVkIG5leHQgPSAwOwogICAgIGJvb2wgaW5UZXh0U2VjdXJpdHlNb2RlID0gc3RhcnQu
bm9kZSgpICYmIHN0YXJ0Lm5vZGUoKS0+cmVuZGVyZXIoKSAmJiBzdGFydC5ub2RlKCktPnJlbmRl
cmVyKCktPnN0eWxlKCktPnRleHRTZWN1cml0eSgpICE9IFRTTk9ORTsKICAgICBib29sIG5lZWRN
b3JlQ29udGV4dCA9IGZhbHNlOwpAQCAtMTU2LDcgKzE0Nyw3IEBAIHN0YXRpYyBWaXNpYmxlUG9z
aXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIEJvdW5kYXJ5
U2VhcmNoCiAgICAgICAgICAgICBwb3MgPSBQb3NpdGlvbihub2RlLCBuZXh0KTsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAvLyBVc2UgdGhlIGNoYXJhY3RlciBpdGVyYXRvciB0byB0cmFu
c2xhdGUgdGhlIG5leHQgdmFsdWUgaW50byBhIERPTSBwb3NpdGlvbi4KLSAgICAgICAgICAgIEJh
Y2t3YXJkc0NoYXJhY3Rlckl0ZXJhdG9yIGNoYXJJdChzZWFyY2hSYW5nZS5nZXQoKSk7CisgICAg
ICAgICAgICBCYWNrd2FyZHNDaGFyYWN0ZXJJdGVyYXRvciBjaGFySXQoc2VhcmNoUmFuZ2UuZ2V0
KCksIFRleHRJdGVyYXRvckVuZHNBdEVkaXRpbmdCb3VuZGFyeSk7CiAgICAgICAgICAgICBjaGFy
SXQuYWR2YW5jZShzdHJpbmcuc2l6ZSgpIC0gc3VmZml4TGVuZ3RoIC0gbmV4dCk7CiAgICAgICAg
ICAgICBwb3MgPSBjaGFySXQucmFuZ2UoKS0+ZW5kUG9zaXRpb24oKTsKICAgICAgICAgfQpAQCAt
MTY4LDIwICsxNTksMTEgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0JvdW5kYXJ5
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlTZWFyY2gKIHN0YXRpYyBWaXNpYmxl
UG9zaXRpb24gbmV4dEJvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlT
ZWFyY2hGdW5jdGlvbiBzZWFyY2hGdW5jdGlvbikKIHsKICAgICBQb3NpdGlvbiBwb3MgPSBjLmRl
ZXBFcXVpdmFsZW50KCk7Ci0gICAgTm9kZSAqbiA9IHBvcy5ub2RlKCk7Ci0gICAgaWYgKCFuKQot
ICAgICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgRG9jdW1lbnQgKmQgPSBuLT5k
b2N1bWVudCgpOwotICAgIE5vZGUgKmRlID0gZC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgaWYg
KCFkZSkKLSAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwotICAgIE5vZGUgKmJvdW5k
YXJ5ID0gbi0+ZW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudCgpOworICAgIE5vZGUqIGJvdW5kYXJ5
ID0gcG9zLnBhcmVudEVkaXRpbmdCb3VuZGFyeSgpOwogICAgIGlmICghYm91bmRhcnkpCiAgICAg
ICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKLSAgICBib29sIGlzQ29udGVudEVkaXRhYmxl
ID0gYm91bmRhcnktPmlzQ29udGVudEVkaXRhYmxlKCk7Ci0gICAgd2hpbGUgKGJvdW5kYXJ5ICYm
IGJvdW5kYXJ5ICE9IGRlICYmIGJvdW5kYXJ5LT5wYXJlbnROb2RlKCkgJiYgaXNDb250ZW50RWRp
dGFibGUgPT0gYm91bmRhcnktPnBhcmVudE5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkKLSAg
ICAgICAgYm91bmRhcnkgPSBib3VuZGFyeS0+cGFyZW50Tm9kZSgpOwogCisgICAgRG9jdW1lbnQq
IGQgPSBib3VuZGFyeS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8UmFuZ2U+IHNlYXJjaFJhbmdl
KGQtPmNyZWF0ZVJhbmdlKCkpOwogICAgIFBvc2l0aW9uIHN0YXJ0KHJhbmdlQ29tcGxpYW50RXF1
aXZhbGVudChwb3MpKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>