<?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>69028</bug_id>
          
          <creation_ts>2011-09-28 14:08:28 -0700</creation_ts>
          <short_desc>[chromium] Add a selectionBounds() method to WebWidget.</short_desc>
          <delta_ts>2011-10-13 09:11:59 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Peng Huang">penghuang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bryeung</cc>
    
    <cc>fishd</cc>
    
    <cc>suzhe</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475003</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-09-28 14:08:28 -0700</bug_when>
    <thetext>Add getSubstringFromRange() and modify selectionRange() for chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475008</commentid>
    <comment_count>1</comment_count>
      <attachid>109076</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-09-28 14:13:04 -0700</bug_when>
    <thetext>Created attachment 109076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475319</commentid>
    <comment_count>2</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2011-09-29 01:59:50 -0700</bug_when>
    <thetext>I&apos;m not authorized to add comment to the patch. Just paste my comment here:

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

And it&apos;s probably reasonable to rename WebWidget::caretOrSelectionRange() to selectionRange() to match the name of other similar methods.
I&apos;m not qualified for reviewing the actual implementation, please find a webkit reviewer to help review that part.

&gt; Source/WebKit/chromium/public/WebWidget.h:148
&gt;      virtual bool getSelectionOffsetsAndTextInEditableContent(WebString&amp;, size_t&amp; focus, size_t&amp; anchor) const { return false; }

Will this method be deprecated in favor of getSubstringFromRange()? If yes, then I suggest to add a comment and then remove it in an upcoming CL.

&gt; Source/WebKit/chromium/public/WebWidget.h:155
&gt;      virtual WebRect caretOrSelectionBounds() { return WebRect(); }

ditto.

&gt; Source/WebKit/chromium/public/WebWidget.h:-159
&gt; -    virtual bool selectionRange(WebPoint&amp; start, WebPoint&amp; end) const { return false; }

You cannot remove this method in this CL, otherwise you will break chrome code. Removing this method in an upcoming CL after landing this CL and migrating chrome to use to new methods.
So just add a comment in this CL stating that this method has been deprecated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475619</commentid>
    <comment_count>3</comment_count>
      <attachid>109191</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-09-29 12:51:24 -0700</bug_when>
    <thetext>Created attachment 109191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475630</commentid>
    <comment_count>4</comment_count>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-09-29 13:10:44 -0700</bug_when>
    <thetext>Hi Darin, Could you please review this patch? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481765</commentid>
    <comment_count>5</comment_count>
      <attachid>110547</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-11 11:36:32 -0700</bug_when>
    <thetext>Created attachment 110547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481770</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 11:40:16 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481989</commentid>
    <comment_count>7</comment_count>
      <attachid>110547</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-11 15:56:09 -0700</bug_when>
    <thetext>Comment on attachment 110547
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:154
&gt; +    virtual WebString getSubstringFromRange(size_t location, size_t length) const { return WebString(); }

shouldn&apos;t this just be a method on WebRange?  it seems like we should be using WebRange
for more of these range related APIs.  we should also be providing ways to get a WebRange
or construct a WebRange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481990</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-11 15:56:32 -0700</bug_when>
    <thetext>I gave similar feedback in https://bugs.webkit.org/show_bug.cgi?id=69846</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482516</commentid>
    <comment_count>9</comment_count>
      <attachid>110547</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-12 10:48:43 -0700</bug_when>
    <thetext>Comment on attachment 110547
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebWidget.h:154
&gt;&gt; +    virtual WebString getSubstringFromRange(size_t location, size_t length) const { return WebString(); }
&gt; 
&gt; shouldn&apos;t this just be a method on WebRange?  it seems like we should be using WebRange
&gt; for more of these range related APIs.  we should also be providing ways to get a WebRange
&gt; or construct a WebRange.

Did you mean add a function `WebRange WebView::getRange(size_t location, size_t length)&apos; here?
Or add a constructor WebRange::WebRange(WebFrame *frame, size_t location, size_t length).

For adding WebRange::WebRange, WebRange can not get enough information from WebFrame for creating a new WebRange. I think we need a function to convert WebFrame back to WebCore::Frame. Is it OK? What&apos;s you suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482763</commentid>
    <comment_count>10</comment_count>
      <attachid>110751</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-12 14:56:10 -0700</bug_when>
    <thetext>Created attachment 110751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482906</commentid>
    <comment_count>11</comment_count>
      <attachid>110751</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-12 17:48:17 -0700</bug_when>
    <thetext>Comment on attachment 110751
Patch

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

Otherwise, this patch looks fine to me.  R=me.

&gt; Source/WebKit/chromium/src/WebViewImpl.h:123
&gt; +    // TODO(penghuang): It has been replaced by selectionBounds. Remove it when

nit: we use FIXME in WebKit instead of TODO(user)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482915</commentid>
    <comment_count>12</comment_count>
      <attachid>110784</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-12 18:06:35 -0700</bug_when>
    <thetext>Created attachment 110784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483003</commentid>
    <comment_count>13</comment_count>
      <attachid>110784</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-12 22:15:24 -0700</bug_when>
    <thetext>Comment on attachment 110784
Patch

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

still R=me otherwise.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1573
&gt; +      return false;

nit: should be 4 space indent.  sorry for not catching this earlier :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483180</commentid>
    <comment_count>14</comment_count>
      <attachid>110842</attachid>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-13 07:37:08 -0700</bug_when>
    <thetext>Created attachment 110842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483184</commentid>
    <comment_count>15</comment_count>
    <who name="Peng Huang">penghuang</who>
    <bug_when>2011-10-13 07:43:48 -0700</bug_when>
    <thetext>Fixed. Sorry for the mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483227</commentid>
    <comment_count>16</comment_count>
      <attachid>110842</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-13 09:11:55 -0700</bug_when>
    <thetext>Comment on attachment 110842
Patch

Clearing flags on attachment: 110842

Committed r97368: &lt;http://trac.webkit.org/changeset/97368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483228</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-13 09:11:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109076</attachid>
            <date>2011-09-28 14:13:04 -0700</date>
            <delta_ts>2011-09-29 12:51:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20110928171144.patch</filename>
            <type>text/plain</type>
            <size>7371</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Yjg0OTkyYTE3NzEzMjFmYTYwNmExOGUwODU4ZjFmNjhjNmE4Y2YwOC4uY2M0ODc4ZmUzNDA3N2Mx
ODRhNmQwN2YxNWQyNWJhNmYzNGExOGI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0wOS0yOCAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIEFkZCBnZXRTdWJzdHJpbmdGcm9tUmFuZ2UoKSBhbmQgbW9kaWZ5
IHNlbGVjdGlvblJhbmdlKCkgZm9yIGNocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTAyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaWRnZXQ6OmdldFN1YnN0cmluZ0Zyb21SYW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYldpZGdldDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Z2V0U3Vic3RyaW5nRnJvbVJhbmdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGlvbkJvdW5kcyk6CisgICAg
ICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMDktMjYgIE5hdCBEdWNhICA8bmR1Y2FA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFrZSBDQ1RocmVhZFByb3h5IGRy
YXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2
NDUwZjMwOGQxMGVkMDFhN2ZmZmI0OGE1MjRmN2VhMmJjYy4uMmRiNmJmNmQzMWNkMDM0YzcwMzI1
ZTc0YzRhOWVmMDBjZTM5OTMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
V2lkZ2V0LmgKQEAgLTM2LDE1ICszNiwxMyBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0aW9uVW5k
ZXJsaW5lLmgiCiAjaW5jbHVkZSAiV2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlNpemUuaCIKKyNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJUZXh0SW5wdXRUeXBlLmgiCiAjaW5j
bHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
V2ViSW5wdXRFdmVudDsKLWNsYXNzIFdlYlJhbmdlOwotY2xhc3MgV2ViU3RyaW5nOwotc3RydWN0
IFdlYlBvaW50OwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKIAogY2xh
c3MgV2ViV2lkZ2V0IHsKQEAgLTE0OSwxNCArMTQ3LDE2IEBAIHB1YmxpYzoKICAgICAvLyBvdGhl
cndpc2UgdGhlIGFuY2hvciBpbmRleCB3aWxsIGJlIHRoZSBzYW1lIHZhbHVlIG9mIHRoZSBmb2N1
cyBpbmRleC4KICAgICB2aXJ0dWFsIGJvb2wgZ2V0U2VsZWN0aW9uT2Zmc2V0c0FuZFRleHRJbkVk
aXRhYmxlQ29udGVudChXZWJTdHJpbmcmLCBzaXplX3QmIGZvY3VzLCBzaXplX3QmIGFuY2hvcikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIC8vIFJldHVybnMgdGhlIHBsYWluIHRleHQg
Zm9yIGZyb20gdGhlIGdpdmVuIHJhbmdlLgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN1YnN0
cmluZ0Zyb21SYW5nZShzaXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0IHsgcmV0
dXJuIFdlYlN0cmluZygpOyB9CisKICAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50IGNhcmV0IGJv
dW5kcyBvZiB0aGlzIFdlYldpZGdldC4gVGhlIHNlbGVjdGlvbiBib3VuZHMKICAgICAvLyB3aWxs
IGJlIHJldHVybmVkIGlmIGEgc2VsZWN0aW9uIHJhbmdlIGlzIGF2YWlsYWJsZS4KICAgICB2aXJ0
dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5kcygpIHsgcmV0dXJuIFdlYlJlY3QoKTsg
fQogCi0gICAgLy8gUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBwb2ludCBmb3IgdGhlIGN1cnJl
bnQgc2VsZWN0aW9uLCBhbGlnbmVkIHRvIHRoZQotICAgIC8vIGJvdHRvbSBvZiB0aGUgc2VsZWN0
ZWQgbGluZS4gc3RhcnQgYW5kIGVuZCBhcmUgdGhlIGxvZ2ljYWwgYmVnaW5uaW5nIGFuZAotICAg
IC8vIGVuZGluZyBwb3NpdGlvbnMgb2YgdGhlIHNlbGVjdGlvbi4gVmlzdWFsbHksIHN0YXJ0IG1h
eSBsaWUgYWZ0ZXIgZW5kLgotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25SYW5nZShXZWJQb2lu
dCYgc3RhcnQsIFdlYlBvaW50JiBlbmQpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgLy8g
UmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBib3VuZHMgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9u
LgorICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgZW1wdHksIGl0IHJldHVybnMgdGhl
IGNhcmV0IGJvdW5kcy4KKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91bmRzKFdlYlJlY3Qm
IHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBG
ZXRjaCB0aGUgY3VycmVudCBzZWxlY3Rpb24gcmFuZ2Ugb2YgdGhpcyBXZWJXaWRnZXQuIElmIHRo
ZXJlIGlzIG5vCiAgICAgLy8gc2VsZWN0aW9uLCBpdCB3aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJh
bmdlIHdpdGggdGhlIGxvY2F0aW9uIGF0IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IGZjMDZjNjU5Y2JmZTQxMjQ1OWUyNzBjYzg1NTlmZDI5MWU2
NTg1YTkuLjhkZWZkZDdkZjgyMzI1ZTUwNDY1NWFkOTM0ZWMyNDk1ZDZiY2FhMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI5NCw3ICsyOTQsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvZmlsbENsaWVudChXZWJBdXRvZmlsbENsaWVudCog
YXV0b2ZpbGxDbGllbnQpCiAgICAgbV9hdXRvZmlsbENsaWVudCA9IGF1dG9maWxsQ2xpZW50Owog
fQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xz
QWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KSAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldERldlRv
b2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpCiB7
CiAgICAgaWYgKGRldlRvb2xzQ2xpZW50KQogICAgICAgICBtX2RldlRvb2xzQWdlbnQgPSBhZG9w
dFB0cihuZXcgV2ViRGV2VG9vbHNBZ2VudEltcGwodGhpcywgZGV2VG9vbHNDbGllbnQpKTsKQEAg
LTE1MzgsNiArMTUzOCwyMSBAQCBib29sIFdlYlZpZXdJbXBsOjpnZXRTZWxlY3Rpb25PZmZzZXRz
QW5kVGV4dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYgdGV4dCwgcwogICAgIHJldHVybiB0
cnVlOwogfQogCitXZWJTdHJpbmcgV2ViVmlld0ltcGw6OmdldFN1YnN0cmluZ0Zyb21SYW5nZShz
aXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0Cit7CisgICAgY29uc3QgRnJhbWUq
IGZyYW1lID0gZm9jdXNlZFdlYkNvcmVGcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAg
IHJldHVybiBXZWJTdHJpbmcoKTsKKworICAgIEVsZW1lbnQqIHNlbGVjdGlvblJvb3QgPSBmcmFt
ZS0+c2VsZWN0aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBFbGVtZW50KiBzY29w
ZSA9IHNlbGVjdGlvblJvb3QgPyBzZWxlY3Rpb25Sb290IDogZnJhbWUtPmRvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBUZXh0SXRlcmF0b3I6
OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKHNjb3BlLCBsb2NhdGlvbiwgbGVuZ3RoKTsKKyAg
ICBpZiAoIXJhbmdlKQorICAgICAgICByZXR1cm4gV2ViU3RyaW5nKCk7CisKKyAgICByZXR1cm4g
cmFuZ2UtPnRleHQoKTsKK30KKwogV2ViUmVjdCBXZWJWaWV3SW1wbDo6Y2FyZXRPclNlbGVjdGlv
bkJvdW5kcygpCiB7CiAgICAgV2ViUmVjdCByZWN0OwpAQCAtMTU2OSwzNiArMTU4NCw0MSBAQCBX
ZWJSZWN0IFdlYlZpZXdJbXBsOjpjYXJldE9yU2VsZWN0aW9uQm91bmRzKCkKICAgICByZXR1cm4g
cmVjdDsKIH0KIAotYm9vbCBXZWJWaWV3SW1wbDo6c2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0
YXJ0LCBXZWJQb2ludCYgZW5kKSBjb25zdAorYm9vbCBXZWJWaWV3SW1wbDo6c2VsZWN0aW9uQm91
bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0CiB7CiAgICAgY29uc3QgRnJh
bWUqIGZyYW1lID0gZm9jdXNlZFdlYkNvcmVGcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZy
YW1lLT5zZWxlY3Rpb24oKS0+aXNSYW5nZSgpKQorICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9uID0gZnJhbWUtPnNlbGVj
dGlvbigpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoc2VsZWN0aW9uLT5pc0NhcmV0KCkpIHsKKyAgICAgICAgc3RhcnQgPSBlbmQgPSBmcmFt
ZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHNlbGVjdGlvbi0+YWJzb2x1dGVDYXJldEJvdW5k
cygpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgUmVmUHRyPFJhbmdlPiBz
ZWxlY3RlZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpOwog
ICAgIGlmICghc2VsZWN0ZWRSYW5nZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgUmVm
UHRyPFJhbmdlPiByYW5nZShSYW5nZTo6Y3JlYXRlKHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFp
bmVyKCktPmRvY3VtZW50KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVy
KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Ut
PnN0YXJ0T2Zmc2V0KCkpKTsKLQotICAgIEludFJlY3QgcmVjdCA9IGZyYW1lLT5lZGl0b3IoKS0+
Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwotICAgIHN0YXJ0LnggPSByZWN0LngoKTsK
LSAgICBzdGFydC55ID0gcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC0gMTsKKyAgICBzdGFydCA9
IGZyYW1lLT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwogCiAgICAg
cmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRhaW5lcigpLT5kb2N1
bWVudCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRDb250
YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+ZW5kT2Zm
c2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRh
aW5lcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRPZmZz
ZXQoKSk7Ci0KLSAgICByZWN0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShy
YW5nZS5nZXQoKSk7Ci0gICAgZW5kLnggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAtIDE7Ci0g
ICAgZW5kLnkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICAgIGVuZCA9IGZyYW1l
LT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwogCiAgICAgc3RhcnQg
PSBmcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHN0YXJ0KTsKICAgICBlbmQgPSBmcmFt
ZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KGVuZCk7CisKICAgICBpZiAoIWZyYW1lLT5zZWxl
Y3Rpb24oKS0+c2VsZWN0aW9uKCkuaXNCYXNlRmlyc3QoKSkKICAgICAgICAgc3RkOjpzd2FwKHN0
YXJ0LCBlbmQpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKaW5kZXggYzk4OTJjYzE1OTE1NWUwMTBmYzA1NDkwMGU4MmZhMTkzZjhjZjE3
ZS4uYmZkMzY1NjBkYzAxMzkxYTRjYTIzNDNhMmNjYWZhYjVmNWI5YWViYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xMTksOCArMTE5LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGlvblJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNp
emVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFsIFdlYlRleHRJbnB1dFR5cGUgdGV4dElucHV0VHlw
ZSgpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxlY3Rpb25PZmZzZXRzQW5kVGV4dEluRWRpdGFi
bGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYgZm9jdXMsIHNpemVfdCYgYW5jaG9yKSBjb25z
dDsKKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRTdWJzdHJpbmdGcm9tUmFuZ2Uoc2l6ZV90IGxv
Y2F0aW9uLCBzaXplX3QgbGVuZ3RoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRP
clNlbGVjdGlvbkJvdW5kcygpOwotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25SYW5nZShXZWJQ
b2ludCYgc3RhcnQsIFdlYlBvaW50JiBlbmQpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3Rpb25Cb3VuZHMoV2ViUmVjdCYgc3RhcnQsIFdlYlJlY3QmIGVuZCkgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIGNhcmV0T3JTZWxlY3Rpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3Qq
IGxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109191</attachid>
            <date>2011-09-29 12:51:24 -0700</date>
            <delta_ts>2011-10-11 11:36:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20110929155001.patch</filename>
            <type>text/plain</type>
            <size>8947</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Yjg0OTkyYTE3NzEzMjFmYTYwNmExOGUwODU4ZjFmNjhjNmE4Y2YwOC4uY2FjMmI4MTM2ZTc5Njgz
NzJlZGVmNTQ4MmRkNTc0NzkxNTI2YjJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0wOS0yOCAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIEFkZCBnZXRTdWJzdHJpbmdGcm9tUmFuZ2UoKSBhbmQgc2VsZWN0
aW9uQm91bmRzKCkgZm9yIGNocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02OTAyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXaWRnZXQ6OmdldFN1YnN0cmluZ0Zyb21SYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYldp
ZGdldDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Z2V0U3Vic3RyaW5nRnJvbVJhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGlvbkJvdW5kcyk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMDktMjYgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFrZSBDQ1RocmVhZFByb3h5IGRyYXcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2NDUwZjMw
OGQxMGVkMDFhN2ZmZmI0OGE1MjRmN2VhMmJjYy4uN2QwMDI2MjgyM2I1ZTM0YjQ1YmYxMWEyN2Mx
NTg4ZDMxZmIxMTY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0
LmgKQEAgLTM0LDE3ICszNCwxNiBAQAogI2luY2x1ZGUgIldlYkNhbnZhcy5oIgogI2luY2x1ZGUg
IldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0aW9uVW5kZXJsaW5lLmgiCisjaW5j
bHVkZSAiV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJSZWN0LmgiCiAjaW5jbHVkZSAiV2ViU2l6
ZS5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRJbnB1dFR5cGUu
aCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJJbnB1dEV2ZW50OwotY2xhc3MgV2ViUmFuZ2U7Ci1jbGFzcyBXZWJTdHJpbmc7
Ci1zdHJ1Y3QgV2ViUG9pbnQ7CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9y
OwogCiBjbGFzcyBXZWJXaWRnZXQgewpAQCAtMTQ0LDIwICsxNDMsMzMgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdGV4dCBpbnB1dCB0eXBlIG9mIHRoaXMgV2ViV2lkZ2V0
LgogICAgIHZpcnR1YWwgV2ViVGV4dElucHV0VHlwZSB0ZXh0SW5wdXRUeXBlKCkgeyByZXR1cm4g
V2ViS2l0OjpXZWJUZXh0SW5wdXRUeXBlTm9uZTsgfQogCisgICAgLy8gVE9ETyhwZW5naHVhbmcp
OiBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBnZXRTdWJzdHJpbmdGcm9tUmFuZ2UuIFJlbW92ZSBp
dAorICAgIC8vIHdoZW4gY2hyb21laXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJvdW5kcy4KICAg
ICAvLyBSZXR1cm5zIHRoZSBwbGFpbiB0ZXh0IGFyb3VuZCB0aGUgZWRpdCBjYXJldCBhbmQgdGhl
IGZvY3VzIGluZGV4IGluIHRoZQogICAgIC8vIHRleHQuIElmIHNlbGVjdGlvbiBleGlzdHMsIGl0
IHdpbGwgcmV0dXJuIHRoZSBhbmNob3IgaW5kZXggYXMgd2VsbCwKICAgICAvLyBvdGhlcndpc2Ug
dGhlIGFuY2hvciBpbmRleCB3aWxsIGJlIHRoZSBzYW1lIHZhbHVlIG9mIHRoZSBmb2N1cyBpbmRl
eC4KICAgICB2aXJ0dWFsIGJvb2wgZ2V0U2VsZWN0aW9uT2Zmc2V0c0FuZFRleHRJbkVkaXRhYmxl
Q29udGVudChXZWJTdHJpbmcmLCBzaXplX3QmIGZvY3VzLCBzaXplX3QmIGFuY2hvcikgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAorICAgIC8vIFJldHVybnMgdGhlIHBsYWluIHRleHQgZm9yIGZy
b20gdGhlIGdpdmVuIHJhbmdlLgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN1YnN0cmluZ0Zy
b21SYW5nZShzaXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJuIFdl
YlN0cmluZygpOyB9CisKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0IGhhcyBiZWVuIHJlcGxh
Y2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4KKyAgICAvLyBjaHJvbWVpdW0g
c3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQg
Y2FyZXQgYm91bmRzIG9mIHRoaXMgV2ViV2lkZ2V0LiBUaGUgc2VsZWN0aW9uIGJvdW5kcwogICAg
IC8vIHdpbGwgYmUgcmV0dXJuZWQgaWYgYSBzZWxlY3Rpb24gcmFuZ2UgaXMgYXZhaWxhYmxlLgog
ICAgIHZpcnR1YWwgV2ViUmVjdCBjYXJldE9yU2VsZWN0aW9uQm91bmRzKCkgeyByZXR1cm4gV2Vi
UmVjdCgpOyB9CiAKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0IGhhcyBiZWVuIHJlcGxhY2Vk
IGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4KKyAgICAvLyBjaHJvbWVpdW0gc3dp
dGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhlIHN0YXJ0IGFuZCBl
bmQgcG9pbnQgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxpZ25lZCB0byB0aGUKICAgICAv
LyBib3R0b20gb2YgdGhlIHNlbGVjdGVkIGxpbmUuIHN0YXJ0IGFuZCBlbmQgYXJlIHRoZSBsb2dp
Y2FsIGJlZ2lubmluZyBhbmQKICAgICAvLyBlbmRpbmcgcG9zaXRpb25zIG9mIHRoZSBzZWxlY3Rp
b24uIFZpc3VhbGx5LCBzdGFydCBtYXkgbGllIGFmdGVyIGVuZC4KICAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBXZWJQb2ludCYgZW5kKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgLy8gUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBib3VuZHMg
b2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcmFuZ2Ug
aXMgZW1wdHksIGl0IHJldHVybnMgdGhlIGNhcmV0IGJvdW5kcy4KKyAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0aW9uQm91bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisKICAgICAvLyBGZXRjaCB0aGUgY3VycmVudCBzZWxlY3Rpb24gcmFuZ2Ug
b2YgdGhpcyBXZWJXaWRnZXQuIElmIHRoZXJlIGlzIG5vCiAgICAgLy8gc2VsZWN0aW9uLCBpdCB3
aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJhbmdlIHdpdGggdGhlIGxvY2F0aW9uIGF0IHRoZQogICAg
IC8vIGNhcmV0LiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBvdXQtcGFyYW10ZXJzIG9uIHN1
Y2Nlc3M7IHJldHVybnMgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCBmYzA2YzY1OWNiZmU0MTI0NTllMjcwY2M4NTU5ZmQyOTFlNjU4NWE5Li43
MTJkZmQwMjE3ODc2MmI4ZjhhMjk1ZGQzNDdhZjAxMzhmOWE4ZWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6c2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQqIGF1dG9maWxs
Q2xpZW50KQogICAgIG1fYXV0b2ZpbGxDbGllbnQgPSBhdXRvZmlsbENsaWVudDsKIH0KIAotdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50Q2xp
ZW50KiBkZXZUb29sc0NsaWVudCkgCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50
Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogewogICAgIGlm
IChkZXZUb29sc0NsaWVudCkKICAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gYWRvcHRQdHIobmV3
IFdlYkRldlRvb2xzQWdlbnRJbXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KSk7CkBAIC0xNTM4LDYg
KzE1MzgsMjEgQEAgYm9vbCBXZWJWaWV3SW1wbDo6Z2V0U2VsZWN0aW9uT2Zmc2V0c0FuZFRleHRJ
bkVkaXRhYmxlQ29udGVudChXZWJTdHJpbmcmIHRleHQsIHMKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorV2ViU3RyaW5nIFdlYlZpZXdJbXBsOjpnZXRTdWJzdHJpbmdGcm9tUmFuZ2Uoc2l6ZV90IGxv
Y2F0aW9uLCBzaXplX3QgbGVuZ3RoKSBjb25zdAoreworICAgIGNvbnN0IEZyYW1lKiBmcmFtZSA9
IGZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4g
V2ViU3RyaW5nKCk7CisKKyAgICBFbGVtZW50KiBzZWxlY3Rpb25Sb290ID0gZnJhbWUtPnNlbGVj
dGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgRWxlbWVudCogc2NvcGUgPSBzZWxl
Y3Rpb25Sb290ID8gc2VsZWN0aW9uUm9vdCA6IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZy
b21Mb2NhdGlvbkFuZExlbmd0aChzY29wZSwgbG9jYXRpb24sIGxlbmd0aCk7CisgICAgaWYgKCFy
YW5nZSkKKyAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOworCisgICAgcmV0dXJuIHJhbmdlLT50
ZXh0KCk7Cit9CisKIFdlYlJlY3QgV2ViVmlld0ltcGw6OmNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMo
KQogewogICAgIFdlYlJlY3QgcmVjdDsKQEAgLTE1NzEsMzQgKzE1ODYsNTEgQEAgV2ViUmVjdCBX
ZWJWaWV3SW1wbDo6Y2FyZXRPclNlbGVjdGlvbkJvdW5kcygpCiAKIGJvb2wgV2ViVmlld0ltcGw6
OnNlbGVjdGlvblJhbmdlKFdlYlBvaW50JiBzdGFydCwgV2ViUG9pbnQmIGVuZCkgY29uc3QKIHsK
KyAgICBXZWJSZWN0IHN0YXJ0UmVjdCwgZW5kUmVjdDsKKyAgICBpZiAoIXNlbGVjdGlvbkJvdW5k
cyhzdGFydFJlY3QsIGVuZFJlY3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0YXJ0Lngg
PSBzdGFydFJlY3QueDsKKyAgICBzdGFydC55ID0gc3RhcnRSZWN0LnkgKyBzdGFydFJlY3QuaGVp
Z2h0IC0gMTsKKyAgICBlbmQueCA9IGVuZFJlY3QueCArIGVuZFJlY3Qud2lkdGggLSAxOworICAg
IGVuZC55ID0gZW5kUmVjdC55ICsgZW5kUmVjdC5oZWlnaHQgLSAxOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25Cb3VuZHMoV2ViUmVjdCYgc3RhcnQs
IFdlYlJlY3QmIGVuZCkgY29uc3QKK3sKICAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBmb2N1c2Vk
V2ViQ29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNlbGVjdGlvbigpLT5p
c1JhbmdlKCkpCisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEZy
YW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgaWYgKCFz
ZWxlY3Rpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzZWxlY3Rpb24tPmlz
Q2FyZXQoKSkgeworICAgICAgICBzdGFydCA9IGVuZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRz
VG9XaW5kb3coc2VsZWN0aW9uLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBmcmFt
ZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFzZWxlY3RlZFJh
bmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlKFJh
bmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3Rh
cnRDb250YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSkpOwot
Ci0gICAgSW50UmVjdCByZWN0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShy
YW5nZS5nZXQoKSk7Ci0gICAgc3RhcnQueCA9IHJlY3QueCgpOwotICAgIHN0YXJ0LnkgPSByZWN0
LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICAgIHN0YXJ0ID0gZnJhbWUtPmVkaXRvcigpLT5m
aXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CiAKICAgICByYW5nZSA9IFJhbmdlOjpjcmVh
dGUoc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCktPmRvY3VtZW50KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRhaW5lcigpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRPZmZzZXQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZE9mZnNldCgpKTsKLQotICAgIHJlY3Qg
PSBmcmFtZS0+ZWRpdG9yKCktPmZpcnN0UmVjdEZvclJhbmdlKHJhbmdlLmdldCgpKTsKLSAgICBl
bmQueCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gMTsKLSAgICBlbmQueSA9IHJlY3QueSgp
ICsgcmVjdC5oZWlnaHQoKSAtIDE7CisgICAgZW5kID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJl
Y3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CiAKICAgICBzdGFydCA9IGZyYW1lLT52aWV3KCktPmNv
bnRlbnRzVG9XaW5kb3coc3RhcnQpOwogICAgIGVuZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRz
VG9XaW5kb3coZW5kKTsKKwogICAgIGlmICghZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24o
KS5pc0Jhc2VGaXJzdCgpKQogICAgICAgICBzdGQ6OnN3YXAoc3RhcnQsIGVuZCk7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBj
OTg5MmNjMTU5MTU1ZTAxMGZjMDU0OTAwZTgyZmExOTNmOGNmMTdlLi42M2VjNzdmMGZiMDE2ZjZi
NzdmYmMwMDYxZWIxNTQzOGYxZDVmMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKQEAgLTExOCw5ICsxMTgsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KTsKICAgICB2aXJ0dWFs
IGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0aCk7
CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1dFR5cGUoKTsKKyAgICAvLyBU
T0RPKHBlbmdodWFuZyk6IEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IGdldFN1YnN0cmluZ0Zyb21S
YW5nZS4gUmVtb3ZlIGl0CisgICAgLy8gd2hlbiBjaHJvbWl1bSBzd2l0Y2hlcyB0byBnZXRTdWJz
dHJpbmdGcm9tUmFuZ2UuCiAgICAgdmlydHVhbCBib29sIGdldFNlbGVjdGlvbk9mZnNldHNBbmRU
ZXh0SW5FZGl0YWJsZUNvbnRlbnQoV2ViU3RyaW5nJiwgc2l6ZV90JiBmb2N1cywgc2l6ZV90JiBh
bmNob3IpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN1YnN0cmluZ0Zyb21SYW5n
ZShzaXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0OworICAgIC8vIFRPRE8ocGVu
Z2h1YW5nKTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0aW9uQm91bmRzLiBSZW1vdmUg
aXQgd2hlbgorICAgIC8vIGNocm9taXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJvdW5kcy4KICAg
ICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5kcygpOworICAgIC8vIFRPRE8o
cGVuZ2h1YW5nKTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0aW9uQm91bmRzLiBSZW1v
dmUgaXQgd2hlbgorICAgIC8vIGNocm9taXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJvdW5kcy4K
ICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBXZWJQb2lu
dCYgZW5kKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91bmRzKFdlYlJlY3Qm
IHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYXJldE9yU2Vs
ZWN0aW9uUmFuZ2Uoc2l6ZV90KiBsb2NhdGlvbiwgc2l6ZV90KiBsZW5ndGgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110547</attachid>
            <date>2011-10-11 11:36:32 -0700</date>
            <delta_ts>2011-10-12 14:55:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20111011143608.patch</filename>
            <type>text/plain</type>
            <size>8899</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
OTJlZGVlZGQ2MjE0YTNkNTU1NzgxZTEyYjI3Yjc3OTAyYjk3MmM4Mi4uNGVjNzUwNDE3ZjZmYzll
YWVkZjI5YTA0MGVmYjdiZDAyOTA2NTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0xMC0xMSAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIEFkZCBnZXRTdWJzdHJpbmdGcm9tUmFuZ2UoKSBhbmQgc2VsZWN0
aW9uUmFuZ2UoKSBmb3IgY2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5MDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YldpZGdldDo6Z2V0U3Vic3RyaW5nRnJvbVJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViV2lk
Z2V0OjpzZWxlY3Rpb25Cb3VuZHMpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXRTdWJzdHJpbmdGcm9tUmFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMS0xMC0xMSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRXhwb3NlIFdlYkxheWVyOjppc051bGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2NDUwZjMwOGQxMGVkMDFhN2ZmZmI0
OGE1MjRmN2VhMmJjYy4uNTQ0YTk3OTM0MDA2ZjQ3NGVjMTg3OWU4NTAyYWYzOWNkYzM4MDQ0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTM2LDE0ICsz
NiwxMyBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0aW9uVW5kZXJsaW5lLmgiCiAjaW5jbHVkZSAi
V2ViUmVjdC5oIgogI2luY2x1ZGUgIldlYlNpemUuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
ICNpbmNsdWRlICJXZWJUZXh0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlv
bi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSW5wdXRFdmVudDsKLWNsYXNz
IFdlYlJhbmdlOwotY2xhc3MgV2ViU3RyaW5nOwogc3RydWN0IFdlYlBvaW50OwogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKIApAQCAtMTQ0LDIwICsxNDMsMzMgQEAgcHVi
bGljOgogICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgdGV4dCBpbnB1dCB0eXBlIG9mIHRoaXMg
V2ViV2lkZ2V0LgogICAgIHZpcnR1YWwgV2ViVGV4dElucHV0VHlwZSB0ZXh0SW5wdXRUeXBlKCkg
eyByZXR1cm4gV2ViS2l0OjpXZWJUZXh0SW5wdXRUeXBlTm9uZTsgfQogCisgICAgLy8gVE9ETyhw
ZW5naHVhbmcpOiBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBnZXRTdWJzdHJpbmdGcm9tUmFuZ2Uu
IFJlbW92ZSBpdAorICAgIC8vIHdoZW4gY2hyb21laXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJv
dW5kcy4KICAgICAvLyBSZXR1cm5zIHRoZSBwbGFpbiB0ZXh0IGFyb3VuZCB0aGUgZWRpdCBjYXJl
dCBhbmQgdGhlIGZvY3VzIGluZGV4IGluIHRoZQogICAgIC8vIHRleHQuIElmIHNlbGVjdGlvbiBl
eGlzdHMsIGl0IHdpbGwgcmV0dXJuIHRoZSBhbmNob3IgaW5kZXggYXMgd2VsbCwKICAgICAvLyBv
dGhlcndpc2UgdGhlIGFuY2hvciBpbmRleCB3aWxsIGJlIHRoZSBzYW1lIHZhbHVlIG9mIHRoZSBm
b2N1cyBpbmRleC4KICAgICB2aXJ0dWFsIGJvb2wgZ2V0U2VsZWN0aW9uT2Zmc2V0c0FuZFRleHRJ
bkVkaXRhYmxlQ29udGVudChXZWJTdHJpbmcmLCBzaXplX3QmIGZvY3VzLCBzaXplX3QmIGFuY2hv
cikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIC8vIFJldHVybnMgdGhlIHBsYWluIHRl
eHQgZm9yIGZyb20gdGhlIGdpdmVuIHJhbmdlLgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN1
YnN0cmluZ0Zyb21SYW5nZShzaXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0IHsg
cmV0dXJuIFdlYlN0cmluZygpOyB9CisKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0IGhhcyBi
ZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4KKyAgICAvLyBj
aHJvbWVpdW0gc3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhl
IGN1cnJlbnQgY2FyZXQgYm91bmRzIG9mIHRoaXMgV2ViV2lkZ2V0LiBUaGUgc2VsZWN0aW9uIGJv
dW5kcwogICAgIC8vIHdpbGwgYmUgcmV0dXJuZWQgaWYgYSBzZWxlY3Rpb24gcmFuZ2UgaXMgYXZh
aWxhYmxlLgogICAgIHZpcnR1YWwgV2ViUmVjdCBjYXJldE9yU2VsZWN0aW9uQm91bmRzKCkgeyBy
ZXR1cm4gV2ViUmVjdCgpOyB9CiAKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0IGhhcyBiZWVu
IHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4KKyAgICAvLyBjaHJv
bWVpdW0gc3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhlIHN0
YXJ0IGFuZCBlbmQgcG9pbnQgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxpZ25lZCB0byB0
aGUKICAgICAvLyBib3R0b20gb2YgdGhlIHNlbGVjdGVkIGxpbmUuIHN0YXJ0IGFuZCBlbmQgYXJl
IHRoZSBsb2dpY2FsIGJlZ2lubmluZyBhbmQKICAgICAvLyBlbmRpbmcgcG9zaXRpb25zIG9mIHRo
ZSBzZWxlY3Rpb24uIFZpc3VhbGx5LCBzdGFydCBtYXkgbGllIGFmdGVyIGVuZC4KICAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBXZWJQb2ludCYgZW5kKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVu
ZCBib3VuZHMgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorICAgIC8vIElmIHRoZSBzZWxlY3Rp
b24gcmFuZ2UgaXMgZW1wdHksIGl0IHJldHVybnMgdGhlIGNhcmV0IGJvdW5kcy4KKyAgICB2aXJ0
dWFsIGJvb2wgc2VsZWN0aW9uQm91bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICAvLyBGZXRjaCB0aGUgY3VycmVudCBzZWxlY3Rp
b24gcmFuZ2Ugb2YgdGhpcyBXZWJXaWRnZXQuIElmIHRoZXJlIGlzIG5vCiAgICAgLy8gc2VsZWN0
aW9uLCBpdCB3aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJhbmdlIHdpdGggdGhlIGxvY2F0aW9uIGF0
IHRoZQogICAgIC8vIGNhcmV0LiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBvdXQtcGFyYW10
ZXJzIG9uIHN1Y2Nlc3M7IHJldHVybnMgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCBkMjUxOGVkMGQwZjhhYzg0NTEwZmNiNjExZjcxMzQ5YjZm
YWE4NWVkLi4wNjI3ZGEwZDk5M2VkMzE1NTUwMTUxYWU4OTcxNDFjMWE2MzRiNjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yOTUsNyArMjk1LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQq
IGF1dG9maWxsQ2xpZW50KQogICAgIG1fYXV0b2ZpbGxDbGllbnQgPSBhdXRvZmlsbENsaWVudDsK
IH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29s
c0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkgCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZU
b29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQog
ewogICAgIGlmIChkZXZUb29sc0NsaWVudCkKICAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gYWRv
cHRQdHIobmV3IFdlYkRldlRvb2xzQWdlbnRJbXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KSk7CkBA
IC0xNTM1LDYgKzE1MzUsMjEgQEAgYm9vbCBXZWJWaWV3SW1wbDo6Z2V0U2VsZWN0aW9uT2Zmc2V0
c0FuZFRleHRJbkVkaXRhYmxlQ29udGVudChXZWJTdHJpbmcmIHRleHQsIHMKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorV2ViU3RyaW5nIFdlYlZpZXdJbXBsOjpnZXRTdWJzdHJpbmdGcm9tUmFuZ2Uo
c2l6ZV90IGxvY2F0aW9uLCBzaXplX3QgbGVuZ3RoKSBjb25zdAoreworICAgIGNvbnN0IEZyYW1l
KiBmcmFtZSA9IGZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAg
ICByZXR1cm4gV2ViU3RyaW5nKCk7CisKKyAgICBFbGVtZW50KiBzZWxlY3Rpb25Sb290ID0gZnJh
bWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgRWxlbWVudCogc2Nv
cGUgPSBzZWxlY3Rpb25Sb290ID8gc2VsZWN0aW9uUm9vdCA6IGZyYW1lLT5kb2N1bWVudCgpLT5k
b2N1bWVudEVsZW1lbnQoKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gVGV4dEl0ZXJhdG9y
OjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChzY29wZSwgbG9jYXRpb24sIGxlbmd0aCk7Cisg
ICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOworCisgICAgcmV0dXJu
IHJhbmdlLT50ZXh0KCk7Cit9CisKIFdlYlJlY3QgV2ViVmlld0ltcGw6OmNhcmV0T3JTZWxlY3Rp
b25Cb3VuZHMoKQogewogICAgIFdlYlJlY3QgcmVjdDsKQEAgLTE1NjgsMzQgKzE1ODMsNTEgQEAg
V2ViUmVjdCBXZWJWaWV3SW1wbDo6Y2FyZXRPclNlbGVjdGlvbkJvdW5kcygpCiAKIGJvb2wgV2Vi
Vmlld0ltcGw6OnNlbGVjdGlvblJhbmdlKFdlYlBvaW50JiBzdGFydCwgV2ViUG9pbnQmIGVuZCkg
Y29uc3QKIHsKKyAgICBXZWJSZWN0IHN0YXJ0UmVjdCwgZW5kUmVjdDsKKyAgICBpZiAoIXNlbGVj
dGlvbkJvdW5kcyhzdGFydFJlY3QsIGVuZFJlY3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHN0YXJ0LnggPSBzdGFydFJlY3QueDsKKyAgICBzdGFydC55ID0gc3RhcnRSZWN0LnkgKyBzdGFy
dFJlY3QuaGVpZ2h0IC0gMTsKKyAgICBlbmQueCA9IGVuZFJlY3QueCArIGVuZFJlY3Qud2lkdGgg
LSAxOworICAgIGVuZC55ID0gZW5kUmVjdC55ICsgZW5kUmVjdC5oZWlnaHQgLSAxOworICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25Cb3VuZHMoV2ViUmVj
dCYgc3RhcnQsIFdlYlJlY3QmIGVuZCkgY29uc3QKK3sKICAgICBjb25zdCBGcmFtZSogZnJhbWUg
PSBmb2N1c2VkV2ViQ29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNlbGVj
dGlvbigpLT5pc1JhbmdlKCkpCisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIEZyYW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7Cisg
ICAgaWYgKCFzZWxlY3Rpb24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzZWxl
Y3Rpb24tPmlzQ2FyZXQoKSkgeworICAgICAgICBzdGFydCA9IGVuZCA9IGZyYW1lLT52aWV3KCkt
PmNvbnRlbnRzVG9XaW5kb3coc2VsZWN0aW9uLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFu
Z2UgPSBmcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFz
ZWxlY3RlZFJhbmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZWZQdHI8UmFuZ2U+
IHJhbmdlKFJhbmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9j
dW1lbnQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRS
YW5nZS0+c3RhcnRDb250YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZz
ZXQoKSkpOwotCi0gICAgSW50UmVjdCByZWN0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RG
b3JSYW5nZShyYW5nZS5nZXQoKSk7Ci0gICAgc3RhcnQueCA9IHJlY3QueCgpOwotICAgIHN0YXJ0
LnkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICAgIHN0YXJ0ID0gZnJhbWUtPmVk
aXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CiAKICAgICByYW5nZSA9IFJh
bmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCktPmRvY3VtZW50KCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRhaW5lcigpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5lbmRPZmZzZXQoKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVuZE9mZnNldCgpKTsKLQot
ICAgIHJlY3QgPSBmcmFtZS0+ZWRpdG9yKCktPmZpcnN0UmVjdEZvclJhbmdlKHJhbmdlLmdldCgp
KTsKLSAgICBlbmQueCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gMTsKLSAgICBlbmQueSA9
IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAtIDE7CisgICAgZW5kID0gZnJhbWUtPmVkaXRvcigp
LT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CiAKICAgICBzdGFydCA9IGZyYW1lLT52
aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coc3RhcnQpOwogICAgIGVuZCA9IGZyYW1lLT52aWV3KCkt
PmNvbnRlbnRzVG9XaW5kb3coZW5kKTsKKwogICAgIGlmICghZnJhbWUtPnNlbGVjdGlvbigpLT5z
ZWxlY3Rpb24oKS5pc0Jhc2VGaXJzdCgpKQogICAgICAgICBzdGQ6OnN3YXAoc3RhcnQsIGVuZCk7
CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aAppbmRleCBiNzllMjEzNmQ3YWMyN2I3ZTZkZDgwOGU2ZmJkNzQ1Njk1YWE2ZjliLi45OWJlZWQx
YjZjNThmNDFlMWYxZmJiMGE4ZDNkNzhiZTQ5NDllNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTExOSw5ICsxMTksMTcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KTsKICAg
ICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3Qq
IGxlbmd0aCk7CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1dFR5cGUoKTsK
KyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IGdldFN1YnN0
cmluZ0Zyb21SYW5nZS4gUmVtb3ZlIGl0CisgICAgLy8gd2hlbiBjaHJvbWl1bSBzd2l0Y2hlcyB0
byBnZXRTdWJzdHJpbmdGcm9tUmFuZ2UuCiAgICAgdmlydHVhbCBib29sIGdldFNlbGVjdGlvbk9m
ZnNldHNBbmRUZXh0SW5FZGl0YWJsZUNvbnRlbnQoV2ViU3RyaW5nJiwgc2l6ZV90JiBmb2N1cywg
c2l6ZV90JiBhbmNob3IpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN1YnN0cmlu
Z0Zyb21SYW5nZShzaXplX3QgbG9jYXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0OworICAgIC8v
IFRPRE8ocGVuZ2h1YW5nKTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0aW9uQm91bmRz
LiBSZW1vdmUgaXQgd2hlbgorICAgIC8vIGNocm9taXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJv
dW5kcy4KICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5kcygpOworICAg
IC8vIFRPRE8ocGVuZ2h1YW5nKTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0aW9uQm91
bmRzLiBSZW1vdmUgaXQgd2hlbgorICAgIC8vIGNocm9taXVtIHN3aXRjaGVzIHRvIHNlbGVjdGlv
bkJvdW5kcy4KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0
LCBXZWJQb2ludCYgZW5kKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91bmRz
KFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBj
YXJldE9yU2VsZWN0aW9uUmFuZ2Uoc2l6ZV90KiBsb2NhdGlvbiwgc2l6ZV90KiBsZW5ndGgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0
aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkg
Y29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110751</attachid>
            <date>2011-10-12 14:56:10 -0700</date>
            <delta_ts>2011-10-12 18:06:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20111012175543.patch</filename>
            <type>text/plain</type>
            <size>6998</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
OTJlZGVlZGQ2MjE0YTNkNTU1NzgxZTEyYjI3Yjc3OTAyYjk3MmM4Mi4uNzI4YTA3MmEyYzk2MmQ1
MTNmMzE2ZDM5MmYzZWQ4MDMwOGZjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xMiAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgc2VsZWN0aW9uQm91bmRzKCkgbWV0
aG9kIHRvIFdlYldpZGdldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5MDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdl
dDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMS0xMC0xMSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRXhwb3NlIFdlYkxheWVyOjppc051bGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2NDUwZjMwOGQxMGVkMDFhN2ZmZmI0
OGE1MjRmN2VhMmJjYy4uZWQ3NzQ4YmYyMTMzODZlM2EyNDdhNjI0N2YxY2NhNGEyMzZiODAyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTQyLDcgKzQy
LDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJbnB1dEV2ZW50OwotY2xhc3Mg
V2ViUmFuZ2U7CiBjbGFzcyBXZWJTdHJpbmc7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwpAQCAtMTQ5LDE1ICsxNDgsMjMgQEAgcHVibGlj
OgogICAgIC8vIG90aGVyd2lzZSB0aGUgYW5jaG9yIGluZGV4IHdpbGwgYmUgdGhlIHNhbWUgdmFs
dWUgb2YgdGhlIGZvY3VzIGluZGV4LgogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxlY3Rpb25PZmZz
ZXRzQW5kVGV4dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYgZm9jdXMsIHNp
emVfdCYgYW5jaG9yKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gVE9ETyhwZW5n
aHVhbmcpOiBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZWxlY3Rpb25Cb3VuZHMuIFJlbW92ZSBp
dCB3aGVuCisgICAgLy8gY2hyb21pdW0gc3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAg
IC8vIFJldHVybnMgdGhlIGN1cnJlbnQgY2FyZXQgYm91bmRzIG9mIHRoaXMgV2ViV2lkZ2V0LiBU
aGUgc2VsZWN0aW9uIGJvdW5kcwogICAgIC8vIHdpbGwgYmUgcmV0dXJuZWQgaWYgYSBzZWxlY3Rp
b24gcmFuZ2UgaXMgYXZhaWxhYmxlLgogICAgIHZpcnR1YWwgV2ViUmVjdCBjYXJldE9yU2VsZWN0
aW9uQm91bmRzKCkgeyByZXR1cm4gV2ViUmVjdCgpOyB9CiAKKyAgICAvLyBUT0RPKHBlbmdodWFu
Zyk6IEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdo
ZW4KKyAgICAvLyBjaHJvbWl1bSBzd2l0Y2hlcyB0byBzZWxlY3Rpb25Cb3VuZHMuCiAgICAgLy8g
UmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBwb2ludCBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9u
LCBhbGlnbmVkIHRvIHRoZQogICAgIC8vIGJvdHRvbSBvZiB0aGUgc2VsZWN0ZWQgbGluZS4gc3Rh
cnQgYW5kIGVuZCBhcmUgdGhlIGxvZ2ljYWwgYmVnaW5uaW5nIGFuZAogICAgIC8vIGVuZGluZyBw
b3NpdGlvbnMgb2YgdGhlIHNlbGVjdGlvbi4gVmlzdWFsbHksIHN0YXJ0IG1heSBsaWUgYWZ0ZXIg
ZW5kLgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25SYW5nZShXZWJQb2ludCYgc3RhcnQsIFdl
YlBvaW50JiBlbmQpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBSZXR1cm5zIHRo
ZSBzdGFydCBhbmQgZW5kIGJvdW5kcyBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uCisgICAgLy8g
SWYgdGhlIHNlbGVjdGlvbiByYW5nZSBpcyBlbXB0eSwgaXQgcmV0dXJucyB0aGUgY2FyZXQgYm91
bmRzLgorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25Cb3VuZHMoV2ViUmVjdCYgc3RhcnQsIFdl
YlJlY3QmIGVuZCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIC8vIEZldGNoIHRoZSBj
dXJyZW50IHNlbGVjdGlvbiByYW5nZSBvZiB0aGlzIFdlYldpZGdldC4gSWYgdGhlcmUgaXMgbm8K
ICAgICAvLyBzZWxlY3Rpb24sIGl0IHdpbGwgb3V0cHV0IGEgMC1sZW5ndGggcmFuZ2Ugd2l0aCB0
aGUgbG9jYXRpb24gYXQgdGhlCiAgICAgLy8gY2FyZXQuIFJldHVybnMgdHJ1ZSBhbmQgZmlsbHMg
dGhlIG91dC1wYXJhbXRlcnMgb24gc3VjY2VzczsgcmV0dXJucyBmYWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQyNTE4ZWQwZDBmOGFjODQ1MTBm
Y2I2MTFmNzEzNDliNmZhYTg1ZWQuLjllMDIyYTg0MjVkZWJhYWRlYTEwZmQyM2I4MTNiZjFjNTRi
YmJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAg
LTI5NSw3ICsyOTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvZmlsbENsaWVudChXZWJB
dXRvZmlsbENsaWVudCogYXV0b2ZpbGxDbGllbnQpCiAgICAgbV9hdXRvZmlsbENsaWVudCA9IGF1
dG9maWxsQ2xpZW50OwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50Q2xp
ZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KSAKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldERldlRvb2xzQWdlbnRDbGllbnQoV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2
VG9vbHNDbGllbnQpCiB7CiAgICAgaWYgKGRldlRvb2xzQ2xpZW50KQogICAgICAgICBtX2RldlRv
b2xzQWdlbnQgPSBhZG9wdFB0cihuZXcgV2ViRGV2VG9vbHNBZ2VudEltcGwodGhpcywgZGV2VG9v
bHNDbGllbnQpKTsKQEAgLTE1NjgsMzQgKzE1NjgsNTEgQEAgV2ViUmVjdCBXZWJWaWV3SW1wbDo6
Y2FyZXRPclNlbGVjdGlvbkJvdW5kcygpCiAKIGJvb2wgV2ViVmlld0ltcGw6OnNlbGVjdGlvblJh
bmdlKFdlYlBvaW50JiBzdGFydCwgV2ViUG9pbnQmIGVuZCkgY29uc3QKIHsKKyAgICBXZWJSZWN0
IHN0YXJ0UmVjdCwgZW5kUmVjdDsKKyAgICBpZiAoIXNlbGVjdGlvbkJvdW5kcyhzdGFydFJlY3Qs
IGVuZFJlY3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0YXJ0LnggPSBzdGFydFJlY3Qu
eDsKKyAgICBzdGFydC55ID0gc3RhcnRSZWN0LnkgKyBzdGFydFJlY3QuaGVpZ2h0IC0gMTsKKyAg
ICBlbmQueCA9IGVuZFJlY3QueCArIGVuZFJlY3Qud2lkdGggLSAxOworICAgIGVuZC55ID0gZW5k
UmVjdC55ICsgZW5kUmVjdC5oZWlnaHQgLSAxOworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25Cb3VuZHMoV2ViUmVjdCYgc3RhcnQsIFdlYlJlY3QmIGVu
ZCkgY29uc3QKK3sKICAgICBjb25zdCBGcmFtZSogZnJhbWUgPSBmb2N1c2VkV2ViQ29yZUZyYW1l
KCk7Ci0gICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNlbGVjdGlvbigpLT5pc1JhbmdlKCkpCisg
ICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEZyYW1lU2VsZWN0aW9u
KiBzZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7CisgICAgaWYgKCFzZWxlY3Rpb24pCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzZWxlY3Rpb24tPmlzQ2FyZXQoKSkgewor
ICAgICAgICBzdGFydCA9IGVuZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coc2Vs
ZWN0aW9uLT5hYnNvbHV0ZUNhcmV0Qm91bmRzKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9u
KCktPnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlKFJhbmdlOjpjcmVhdGUo
c2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIo
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+
c3RhcnRPZmZzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSkpOwotCi0gICAgSW50UmVj
dCByZWN0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7
Ci0gICAgc3RhcnQueCA9IHJlY3QueCgpOwotICAgIHN0YXJ0LnkgPSByZWN0LnkoKSArIHJlY3Qu
aGVpZ2h0KCkgLSAxOworICAgIHN0YXJ0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JS
YW5nZShyYW5nZS5nZXQoKSk7CiAKICAgICByYW5nZSA9IFJhbmdlOjpjcmVhdGUoc2VsZWN0ZWRS
YW5nZS0+ZW5kQ29udGFpbmVyKCktPmRvY3VtZW50KCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRhaW5lcigpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxlY3RlZFJhbmdlLT5lbmRPZmZzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVyKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGVjdGVkUmFuZ2UtPmVuZE9mZnNldCgpKTsKLQotICAgIHJlY3QgPSBmcmFtZS0+ZWRp
dG9yKCktPmZpcnN0UmVjdEZvclJhbmdlKHJhbmdlLmdldCgpKTsKLSAgICBlbmQueCA9IHJlY3Qu
eCgpICsgcmVjdC53aWR0aCgpIC0gMTsKLSAgICBlbmQueSA9IHJlY3QueSgpICsgcmVjdC5oZWln
aHQoKSAtIDE7CisgICAgZW5kID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShy
YW5nZS5nZXQoKSk7CiAKICAgICBzdGFydCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5k
b3coc3RhcnQpOwogICAgIGVuZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coZW5k
KTsKKwogICAgIGlmICghZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKS5pc0Jhc2VGaXJz
dCgpKQogICAgICAgICBzdGQ6OnN3YXAoc3RhcnQsIGVuZCk7CiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBiNzllMjEzNmQ3YWMy
N2I3ZTZkZDgwOGU2ZmJkNzQ1Njk1YWE2ZjliLi41ODE4MGEzYTE0N2ZkMGU1ZDU3YWJjNWU0NThk
NzMxYjQ4OTcwNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
QEAgLTEyMCw4ICsxMjAsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGlv
blJhbmdlKHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFsIFdl
YlRleHRJbnB1dFR5cGUgdGV4dElucHV0VHlwZSgpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxl
Y3Rpb25PZmZzZXRzQW5kVGV4dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYg
Zm9jdXMsIHNpemVfdCYgYW5jaG9yKSBjb25zdDsKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6IEl0
IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4KKyAg
ICAvLyBjaHJvbWl1bSBzd2l0Y2hlcyB0byBzZWxlY3Rpb25Cb3VuZHMuCiAgICAgdmlydHVhbCBX
ZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMoKTsKKyAgICAvLyBUT0RPKHBlbmdodWFuZyk6
IEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4K
KyAgICAvLyBjaHJvbWl1bSBzd2l0Y2hlcyB0byBzZWxlY3Rpb25Cb3VuZHMuCiAgICAgdmlydHVh
bCBib29sIHNlbGVjdGlvblJhbmdlKFdlYlBvaW50JiBzdGFydCwgV2ViUG9pbnQmIGVuZCkgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIHNlbGVjdGlvbkJvdW5kcyhXZWJSZWN0JiBzdGFydCwgV2Vi
UmVjdCYgZW5kKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2FyZXRPclNlbGVjdGlvblJhbmdl
KHNpemVfdCogbG9jYXRpb24sIHNpemVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbik7CiAgICAgdmlydHVhbCBi
b29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110784</attachid>
            <date>2011-10-12 18:06:35 -0700</date>
            <delta_ts>2011-10-13 07:37:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20111012210607.patch</filename>
            <type>text/plain</type>
            <size>6958</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
OTJlZGVlZGQ2MjE0YTNkNTU1NzgxZTEyYjI3Yjc3OTAyYjk3MmM4Mi4uNzI4YTA3MmEyYzk2MmQ1
MTNmMzE2ZDM5MmYzZWQ4MDMwOGZjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xMiAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgc2VsZWN0aW9uQm91bmRzKCkgbWV0
aG9kIHRvIFdlYldpZGdldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5MDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdl
dDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMS0xMC0xMSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRXhwb3NlIFdlYkxheWVyOjppc051bGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2NDUwZjMwOGQxMGVkMDFhN2ZmZmI0
OGE1MjRmN2VhMmJjYy4uYWUwNzFhMGMxOWMyNzEwZTNjZjRjYzJjMzM2ZGE4MDU0ODIzYjk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTQyLDcgKzQy
LDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJbnB1dEV2ZW50OwotY2xhc3Mg
V2ViUmFuZ2U7CiBjbGFzcyBXZWJTdHJpbmc7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwpAQCAtMTQ5LDE1ICsxNDgsMjMgQEAgcHVibGlj
OgogICAgIC8vIG90aGVyd2lzZSB0aGUgYW5jaG9yIGluZGV4IHdpbGwgYmUgdGhlIHNhbWUgdmFs
dWUgb2YgdGhlIGZvY3VzIGluZGV4LgogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxlY3Rpb25PZmZz
ZXRzQW5kVGV4dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYgZm9jdXMsIHNp
emVfdCYgYW5jaG9yKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gRklYTUU6IEl0
IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4gY2hy
b21pdW0KKyAgICAvLyBzd2l0Y2hlcyB0byBzZWxlY3Rpb25Cb3VuZHMuCiAgICAgLy8gUmV0dXJu
cyB0aGUgY3VycmVudCBjYXJldCBib3VuZHMgb2YgdGhpcyBXZWJXaWRnZXQuIFRoZSBzZWxlY3Rp
b24gYm91bmRzCiAgICAgLy8gd2lsbCBiZSByZXR1cm5lZCBpZiBhIHNlbGVjdGlvbiByYW5nZSBp
cyBhdmFpbGFibGUuCiAgICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMo
KSB7IHJldHVybiBXZWJSZWN0KCk7IH0KIAorICAgIC8vIEZJWE1FOiBJdCBoYXMgYmVlbiByZXBs
YWNlZCBieSBzZWxlY3Rpb25Cb3VuZHMuIFJlbW92ZSBpdCB3aGVuIGNocm9taXVtCisgICAgLy8g
c3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhlIHN0YXJ0IGFu
ZCBlbmQgcG9pbnQgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxpZ25lZCB0byB0aGUKICAg
ICAvLyBib3R0b20gb2YgdGhlIHNlbGVjdGVkIGxpbmUuIHN0YXJ0IGFuZCBlbmQgYXJlIHRoZSBs
b2dpY2FsIGJlZ2lubmluZyBhbmQKICAgICAvLyBlbmRpbmcgcG9zaXRpb25zIG9mIHRoZSBzZWxl
Y3Rpb24uIFZpc3VhbGx5LCBzdGFydCBtYXkgbGllIGFmdGVyIGVuZC4KICAgICB2aXJ0dWFsIGJv
b2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBXZWJQb2ludCYgZW5kKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBib3Vu
ZHMgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcmFu
Z2UgaXMgZW1wdHksIGl0IHJldHVybnMgdGhlIGNhcmV0IGJvdW5kcy4KKyAgICB2aXJ0dWFsIGJv
b2wgc2VsZWN0aW9uQm91bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisKICAgICAvLyBGZXRjaCB0aGUgY3VycmVudCBzZWxlY3Rpb24gcmFu
Z2Ugb2YgdGhpcyBXZWJXaWRnZXQuIElmIHRoZXJlIGlzIG5vCiAgICAgLy8gc2VsZWN0aW9uLCBp
dCB3aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJhbmdlIHdpdGggdGhlIGxvY2F0aW9uIGF0IHRoZQog
ICAgIC8vIGNhcmV0LiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBvdXQtcGFyYW10ZXJzIG9u
IHN1Y2Nlc3M7IHJldHVybnMgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCBkMjUxOGVkMGQwZjhhYzg0NTEwZmNiNjExZjcxMzQ5YjZmYWE4NWVk
Li45ZTAyMmE4NDI1ZGViYWFkZWExMGZkMjNiODEzYmYxYzU0YmJiYmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQqIGF1dG9m
aWxsQ2xpZW50KQogICAgIG1fYXV0b2ZpbGxDbGllbnQgPSBhdXRvZmlsbENsaWVudDsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50
Q2xpZW50KiBkZXZUb29sc0NsaWVudCkgCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0Fn
ZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogewogICAg
IGlmIChkZXZUb29sc0NsaWVudCkKICAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gYWRvcHRQdHIo
bmV3IFdlYkRldlRvb2xzQWdlbnRJbXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KSk7CkBAIC0xNTY4
LDM0ICsxNTY4LDUxIEBAIFdlYlJlY3QgV2ViVmlld0ltcGw6OmNhcmV0T3JTZWxlY3Rpb25Cb3Vu
ZHMoKQogCiBib29sIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25SYW5nZShXZWJQb2ludCYgc3RhcnQs
IFdlYlBvaW50JiBlbmQpIGNvbnN0CiB7CisgICAgV2ViUmVjdCBzdGFydFJlY3QsIGVuZFJlY3Q7
CisgICAgaWYgKCFzZWxlY3Rpb25Cb3VuZHMoc3RhcnRSZWN0LCBlbmRSZWN0KSkKKyAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBzdGFydC54ID0gc3RhcnRSZWN0Lng7CisgICAgc3RhcnQueSA9IHN0
YXJ0UmVjdC55ICsgc3RhcnRSZWN0LmhlaWdodCAtIDE7CisgICAgZW5kLnggPSBlbmRSZWN0Lngg
KyBlbmRSZWN0LndpZHRoIC0gMTsKKyAgICBlbmQueSA9IGVuZFJlY3QueSArIGVuZFJlY3QuaGVp
Z2h0IC0gMTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6c2VsZWN0
aW9uQm91bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0Cit7CiAgICAgY29u
c3QgRnJhbWUqIGZyYW1lID0gZm9jdXNlZFdlYkNvcmVGcmFtZSgpOwotICAgIGlmICghZnJhbWUg
fHwgIWZyYW1lLT5zZWxlY3Rpb24oKS0+aXNSYW5nZSgpKQorICAgIGlmICghZnJhbWUpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBGcmFtZVNlbGVjdGlvbiogc2VsZWN0aW9uID0gZnJhbWUt
PnNlbGVjdGlvbigpOworICAgIGlmICghc2VsZWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoc2VsZWN0aW9uLT5pc0NhcmV0KCkpIHsKKyAgICAgICAgc3RhcnQgPSBlbmQg
PSBmcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHNlbGVjdGlvbi0+YWJzb2x1dGVDYXJl
dEJvdW5kcygpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgUmVmUHRyPFJh
bmdlPiBzZWxlY3RlZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5n
ZSgpOwogICAgIGlmICghc2VsZWN0ZWRSYW5nZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgUmVmUHRyPFJhbmdlPiByYW5nZShSYW5nZTo6Y3JlYXRlKHNlbGVjdGVkUmFuZ2UtPnN0YXJ0
Q29udGFpbmVyKCktPmRvY3VtZW50KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVk
UmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpKTsKLQotICAgIEludFJlY3QgcmVjdCA9IGZyYW1lLT5lZGl0
b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwotICAgIHN0YXJ0LnggPSByZWN0
LngoKTsKLSAgICBzdGFydC55ID0gcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC0gMTsKKyAgICBz
dGFydCA9IGZyYW1lLT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwog
CiAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKHNlbGVjdGVkUmFuZ2UtPmVuZENvbnRhaW5lcigp
LT5kb2N1bWVudCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5l
bmRDb250YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+
ZW5kT2Zmc2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UtPmVu
ZENvbnRhaW5lcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLT5l
bmRPZmZzZXQoKSk7Ci0KLSAgICByZWN0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JS
YW5nZShyYW5nZS5nZXQoKSk7Ci0gICAgZW5kLnggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAt
IDE7Ci0gICAgZW5kLnkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICAgIGVuZCA9
IGZyYW1lLT5lZGl0b3IoKS0+Zmlyc3RSZWN0Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwogCiAgICAg
c3RhcnQgPSBmcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KHN0YXJ0KTsKICAgICBlbmQg
PSBmcmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KGVuZCk7CisKICAgICBpZiAoIWZyYW1l
LT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkuaXNCYXNlRmlyc3QoKSkKICAgICAgICAgc3RkOjpz
d2FwKHN0YXJ0LCBlbmQpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggYjc5ZTIxMzZkN2FjMjdiN2U2ZGQ4MDhlNmZiZDc0NTY5
NWFhNmY5Yi4uZTlhNGFkMDAzYWE3ODllNWJiNTE0OTBlZmVhMGQ5YmExNzFmNDc5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xMjAsOCArMTIwLDEzIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29tcG9zaXRpb25SYW5nZShzaXplX3QqIGxvY2F0
aW9uLCBzaXplX3QqIGxlbmd0aCk7CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJ
bnB1dFR5cGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0U2VsZWN0aW9uT2Zmc2V0c0FuZFRleHRJ
bkVkaXRhYmxlQ29udGVudChXZWJTdHJpbmcmLCBzaXplX3QmIGZvY3VzLCBzaXplX3QmIGFuY2hv
cikgY29uc3Q7CisgICAgLy8gRklYTUU6IEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlv
bkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4gY2hyb21pdW0KKyAgICAvLyBzd2l0Y2hlcyB0byBzZWxl
Y3Rpb25Cb3VuZHMuCiAgICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMo
KTsKKyAgICAvLyBGSVhNRTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0aW9uQm91bmRz
LiBSZW1vdmUgaXQgd2hlbiBjaHJvbWl1bQorICAgIC8vIHN3aXRjaGVzIHRvIHNlbGVjdGlvbkJv
dW5kcy4KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBX
ZWJQb2ludCYgZW5kKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0aW9uQm91bmRzKFdl
YlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYXJl
dE9yU2VsZWN0aW9uUmFuZ2Uoc2l6ZV90KiBsb2NhdGlvbiwgc2l6ZV90KiBsZW5ndGgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9u
KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkgY29u
c3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110842</attachid>
            <date>2011-10-13 07:37:08 -0700</date>
            <delta_ts>2011-10-13 09:11:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69028-20111013103639.patch</filename>
            <type>text/plain</type>
            <size>6960</size>
            <attacher name="Peng Huang">penghuang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
OTJlZGVlZGQ2MjE0YTNkNTU1NzgxZTEyYjI3Yjc3OTAyYjk3MmM4Mi4uNzI4YTA3MmEyYzk2MmQ1
MTNmMzE2ZDM5MmYzZWQ4MDMwOGZjMzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xMiAgUGVuZyBIdWFuZyAgPHNoYXduLnAuaHVhbmdAZ21h
aWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgc2VsZWN0aW9uQm91bmRzKCkgbWV0
aG9kIHRvIFdlYldpZGdldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5MDI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdl
dDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuaDoKKwogMjAxMS0xMC0xMSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgRXhwb3NlIFdlYkxheWVyOjppc051bGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKaW5kZXggNDFhZDk2NDUwZjMwOGQxMGVkMDFhN2ZmZmI0
OGE1MjRmN2VhMmJjYy4uYWUwNzFhMGMxOWMyNzEwZTNjZjRjYzJjMzM2ZGE4MDU0ODIzYjk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKQEAgLTQyLDcgKzQy
LDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJbnB1dEV2ZW50OwotY2xhc3Mg
V2ViUmFuZ2U7CiBjbGFzcyBXZWJTdHJpbmc7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gY2xhc3MgV2ViVmVjdG9yOwpAQCAtMTQ5LDE1ICsxNDgsMjMgQEAgcHVibGlj
OgogICAgIC8vIG90aGVyd2lzZSB0aGUgYW5jaG9yIGluZGV4IHdpbGwgYmUgdGhlIHNhbWUgdmFs
dWUgb2YgdGhlIGZvY3VzIGluZGV4LgogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxlY3Rpb25PZmZz
ZXRzQW5kVGV4dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYgZm9jdXMsIHNp
emVfdCYgYW5jaG9yKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gRklYTUU6IEl0
IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNlbGVjdGlvbkJvdW5kcy4gUmVtb3ZlIGl0IHdoZW4gY2hy
b21pdW0KKyAgICAvLyBzd2l0Y2hlcyB0byBzZWxlY3Rpb25Cb3VuZHMuCiAgICAgLy8gUmV0dXJu
cyB0aGUgY3VycmVudCBjYXJldCBib3VuZHMgb2YgdGhpcyBXZWJXaWRnZXQuIFRoZSBzZWxlY3Rp
b24gYm91bmRzCiAgICAgLy8gd2lsbCBiZSByZXR1cm5lZCBpZiBhIHNlbGVjdGlvbiByYW5nZSBp
cyBhdmFpbGFibGUuCiAgICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMo
KSB7IHJldHVybiBXZWJSZWN0KCk7IH0KIAorICAgIC8vIEZJWE1FOiBJdCBoYXMgYmVlbiByZXBs
YWNlZCBieSBzZWxlY3Rpb25Cb3VuZHMuIFJlbW92ZSBpdCB3aGVuIGNocm9taXVtCisgICAgLy8g
c3dpdGNoZXMgdG8gc2VsZWN0aW9uQm91bmRzLgogICAgIC8vIFJldHVybnMgdGhlIHN0YXJ0IGFu
ZCBlbmQgcG9pbnQgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxpZ25lZCB0byB0aGUKICAg
ICAvLyBib3R0b20gb2YgdGhlIHNlbGVjdGVkIGxpbmUuIHN0YXJ0IGFuZCBlbmQgYXJlIHRoZSBs
b2dpY2FsIGJlZ2lubmluZyBhbmQKICAgICAvLyBlbmRpbmcgcG9zaXRpb25zIG9mIHRoZSBzZWxl
Y3Rpb24uIFZpc3VhbGx5LCBzdGFydCBtYXkgbGllIGFmdGVyIGVuZC4KICAgICB2aXJ0dWFsIGJv
b2wgc2VsZWN0aW9uUmFuZ2UoV2ViUG9pbnQmIHN0YXJ0LCBXZWJQb2ludCYgZW5kKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCisgICAgLy8gUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBib3Vu
ZHMgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLgorICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gcmFu
Z2UgaXMgZW1wdHksIGl0IHJldHVybnMgdGhlIGNhcmV0IGJvdW5kcy4KKyAgICB2aXJ0dWFsIGJv
b2wgc2VsZWN0aW9uQm91bmRzKFdlYlJlY3QmIHN0YXJ0LCBXZWJSZWN0JiBlbmQpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisKICAgICAvLyBGZXRjaCB0aGUgY3VycmVudCBzZWxlY3Rpb24gcmFu
Z2Ugb2YgdGhpcyBXZWJXaWRnZXQuIElmIHRoZXJlIGlzIG5vCiAgICAgLy8gc2VsZWN0aW9uLCBp
dCB3aWxsIG91dHB1dCBhIDAtbGVuZ3RoIHJhbmdlIHdpdGggdGhlIGxvY2F0aW9uIGF0IHRoZQog
ICAgIC8vIGNhcmV0LiBSZXR1cm5zIHRydWUgYW5kIGZpbGxzIHRoZSBvdXQtcGFyYW10ZXJzIG9u
IHN1Y2Nlc3M7IHJldHVybnMgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCBkMjUxOGVkMGQwZjhhYzg0NTEwZmNiNjExZjcxMzQ5YjZmYWE4NWVk
Li43MjAxOTA3ZjA5YzUxOTdmZWQ3NTkyOTk3YWRiNDNmODVkZDFlM2RiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0QXV0b2ZpbGxDbGllbnQoV2ViQXV0b2ZpbGxDbGllbnQqIGF1dG9m
aWxsQ2xpZW50KQogICAgIG1fYXV0b2ZpbGxDbGllbnQgPSBhdXRvZmlsbENsaWVudDsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJEZXZUb29sc0FnZW50
Q2xpZW50KiBkZXZUb29sc0NsaWVudCkgCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0Fn
ZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogewogICAg
IGlmIChkZXZUb29sc0NsaWVudCkKICAgICAgICAgbV9kZXZUb29sc0FnZW50ID0gYWRvcHRQdHIo
bmV3IFdlYkRldlRvb2xzQWdlbnRJbXBsKHRoaXMsIGRldlRvb2xzQ2xpZW50KSk7CkBAIC0xNTY4
LDM0ICsxNTY4LDUxIEBAIFdlYlJlY3QgV2ViVmlld0ltcGw6OmNhcmV0T3JTZWxlY3Rpb25Cb3Vu
ZHMoKQogCiBib29sIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25SYW5nZShXZWJQb2ludCYgc3RhcnQs
IFdlYlBvaW50JiBlbmQpIGNvbnN0CiB7CisgICAgV2ViUmVjdCBzdGFydFJlY3QsIGVuZFJlY3Q7
CisgICAgaWYgKCFzZWxlY3Rpb25Cb3VuZHMoc3RhcnRSZWN0LCBlbmRSZWN0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHN0YXJ0LnggPSBzdGFydFJlY3QueDsKKyAgICBzdGFydC55ID0g
c3RhcnRSZWN0LnkgKyBzdGFydFJlY3QuaGVpZ2h0IC0gMTsKKyAgICBlbmQueCA9IGVuZFJlY3Qu
eCArIGVuZFJlY3Qud2lkdGggLSAxOworICAgIGVuZC55ID0gZW5kUmVjdC55ICsgZW5kUmVjdC5o
ZWlnaHQgLSAxOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdlYlZpZXdJbXBsOjpzZWxl
Y3Rpb25Cb3VuZHMoV2ViUmVjdCYgc3RhcnQsIFdlYlJlY3QmIGVuZCkgY29uc3QKK3sKICAgICBj
b25zdCBGcmFtZSogZnJhbWUgPSBmb2N1c2VkV2ViQ29yZUZyYW1lKCk7Ci0gICAgaWYgKCFmcmFt
ZSB8fCAhZnJhbWUtPnNlbGVjdGlvbigpLT5pc1JhbmdlKCkpCisgICAgaWYgKCFmcmFtZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIEZyYW1lU2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBmcmFt
ZS0+c2VsZWN0aW9uKCk7CisgICAgaWYgKCFzZWxlY3Rpb24pCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChzZWxlY3Rpb24tPmlzQ2FyZXQoKSkgeworICAgICAgICBzdGFydCA9IGVu
ZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coc2VsZWN0aW9uLT5hYnNvbHV0ZUNh
cmV0Qm91bmRzKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBSZWZQdHI8
UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJh
bmdlKCk7CiAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlKFJhbmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+c3Rh
cnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c3RhcnRD
b250YWluZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0
ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSkpOwotCi0gICAgSW50UmVjdCByZWN0ID0gZnJhbWUtPmVk
aXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7Ci0gICAgc3RhcnQueCA9IHJl
Y3QueCgpOwotICAgIHN0YXJ0LnkgPSByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgLSAxOworICAg
IHN0YXJ0ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7
CiAKICAgICByYW5nZSA9IFJhbmdlOjpjcmVhdGUoc2VsZWN0ZWRSYW5nZS0+ZW5kQ29udGFpbmVy
KCktPmRvY3VtZW50KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Ut
PmVuZENvbnRhaW5lcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdl
LT5lbmRPZmZzZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+
ZW5kQ29udGFpbmVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Ut
PmVuZE9mZnNldCgpKTsKLQotICAgIHJlY3QgPSBmcmFtZS0+ZWRpdG9yKCktPmZpcnN0UmVjdEZv
clJhbmdlKHJhbmdlLmdldCgpKTsKLSAgICBlbmQueCA9IHJlY3QueCgpICsgcmVjdC53aWR0aCgp
IC0gMTsKLSAgICBlbmQueSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAtIDE7CisgICAgZW5k
ID0gZnJhbWUtPmVkaXRvcigpLT5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSk7CiAKICAg
ICBzdGFydCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coc3RhcnQpOwogICAgIGVu
ZCA9IGZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coZW5kKTsKKwogICAgIGlmICghZnJh
bWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKS5pc0Jhc2VGaXJzdCgpKQogICAgICAgICBzdGQ6
OnN3YXAoc3RhcnQsIGVuZCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBiNzllMjEzNmQ3YWMyN2I3ZTZkZDgwOGU2ZmJkNzQ1
Njk1YWE2ZjliLi5lOWE0YWQwMDNhYTc4OWU1YmI1MTQ5MGVmZWEwZDliYTE3MWY0Nzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTEyMCw4ICsxMjAsMTMg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb21wb3NpdGlvblJhbmdlKHNpemVfdCogbG9j
YXRpb24sIHNpemVfdCogbGVuZ3RoKTsKICAgICB2aXJ0dWFsIFdlYlRleHRJbnB1dFR5cGUgdGV4
dElucHV0VHlwZSgpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRTZWxlY3Rpb25PZmZzZXRzQW5kVGV4
dEluRWRpdGFibGVDb250ZW50KFdlYlN0cmluZyYsIHNpemVfdCYgZm9jdXMsIHNpemVfdCYgYW5j
aG9yKSBjb25zdDsKKyAgICAvLyBGSVhNRTogSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VsZWN0
aW9uQm91bmRzLiBSZW1vdmUgaXQgd2hlbiBjaHJvbWl1bQorICAgIC8vIHN3aXRjaGVzIHRvIHNl
bGVjdGlvbkJvdW5kcy4KICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5k
cygpOworICAgIC8vIEZJWE1FOiBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZWxlY3Rpb25Cb3Vu
ZHMuIFJlbW92ZSBpdCB3aGVuIGNocm9taXVtCisgICAgLy8gc3dpdGNoZXMgdG8gc2VsZWN0aW9u
Qm91bmRzLgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25SYW5nZShXZWJQb2ludCYgc3RhcnQs
IFdlYlBvaW50JiBlbmQpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzZWxlY3Rpb25Cb3VuZHMo
V2ViUmVjdCYgc3RhcnQsIFdlYlJlY3QmIGVuZCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNh
cmV0T3JTZWxlY3Rpb25SYW5nZShzaXplX3QqIGxvY2F0aW9uLCBzaXplX3QqIGxlbmd0aCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFRleHREaXJlY3Rpb24oV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24pOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoKSBj
b25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>