<?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>100460</bug_id>
          
          <creation_ts>2012-10-25 22:31:19 -0700</creation_ts>
          <short_desc>Refactor calendar picker to remove _x/_y from DaysTable</short_desc>
          <delta_ts>2012-10-26 02:56:40 -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>Forms</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>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>751550</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-25 22:31:19 -0700</bug_when>
    <thetext>Refactor calendar picker to remove _x/_y from DaysTable to prepare to add week and month picking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751563</commentid>
    <comment_count>1</comment_count>
      <attachid>170820</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-25 22:48:46 -0700</bug_when>
    <thetext>Created attachment 170820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751576</commentid>
    <comment_count>2</comment_count>
      <attachid>170820</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-25 23:10:36 -0700</bug_when>
    <thetext>Comment on attachment 170820
Patch

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

&gt; Source/WebCore/ChangeLog:26
&gt; +        (DaysTable):
&gt; +        (DaysTable.prototype._hasSelection):
&gt; +        (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition):
&gt; +        (DaysTable.prototype.selectDate):
&gt; +        (DaysTable.prototype.selectRangeContainingNode): Selects date/week/month containing the given day node.
&gt; +        (DaysTable.prototype.selectRangeAtPosition): Selects date/week/month at the given position.
&gt; +        (DaysTable.prototype.firstSelectedNode): Returns first selected day node.
&gt; +        (DaysTable.prototype.deselect): Deselects all selections.
&gt; +        (DaysTable.prototype._handleMouseOver):
&gt; +        (DaysTable.prototype._handleMouseOut):
&gt; +        (DaysTable.prototype._handleKey):
&gt; +        (DaysTable.prototype.updateSelection):

Please write per-function &quot;why&quot; comments especially to existing functions.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1011
&gt; +DaysTable.prototype.selectRangeContainingNode = function(dayNode) {

should be _selectRangeContainingNode
Also, you might want to add a FIXME comment about a reason why the function is named &quot;range&quot;.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1022
&gt; +DaysTable.prototype.selectRangeAtPosition = function(x, y) {

should be _selectRangeAtPosition

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1029
&gt; +DaysTable.prototype.firstSelectedNode = function() {

I think this should be _firstNodeInSelectedRange

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1033
&gt; +DaysTable.prototype.deselect = function() {

should be _deselect.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:-1161
&gt; -        this._days[this._y][this._x].classList.remove(ClassNames.Selected);

Why is this correct?  Who removes ClassNames.Selected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751593</commentid>
    <comment_count>3</comment_count>
      <attachid>170820</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-25 23:28:41 -0700</bug_when>
    <thetext>Comment on attachment 170820
Patch

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

&gt;&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1011
&gt;&gt; +DaysTable.prototype.selectRangeContainingNode = function(dayNode) {
&gt; 
&gt; should be _selectRangeContainingNode
&gt; Also, you might want to add a FIXME comment about a reason why the function is named &quot;range&quot;.

Done.

&gt;&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1022
&gt;&gt; +DaysTable.prototype.selectRangeAtPosition = function(x, y) {
&gt; 
&gt; should be _selectRangeAtPosition

Done.

&gt;&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1029
&gt;&gt; +DaysTable.prototype.firstSelectedNode = function() {
&gt; 
&gt; I think this should be _firstNodeInSelectedRange

Done.

&gt;&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1033
&gt;&gt; +DaysTable.prototype.deselect = function() {
&gt; 
&gt; should be _deselect.

Done.

&gt;&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:-1161
&gt;&gt; -        this._days[this._y][this._x].classList.remove(ClassNames.Selected);
&gt; 
&gt; Why is this correct?  Who removes ClassNames.Selected?

This was wrong. I will deselect inside DaysTable.prototype.selectDate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751607</commentid>
    <comment_count>4</comment_count>
      <attachid>170830</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-25 23:50:47 -0700</bug_when>
    <thetext>Created attachment 170830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751613</commentid>
    <comment_count>5</comment_count>
      <attachid>170830</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-25 23:55:21 -0700</bug_when>
    <thetext>Comment on attachment 170830
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        (DaysTable.prototype.selectRangeContainingNode): Selects date/week/month containing the given day node.
&gt; +        (DaysTable.prototype.selectRangeAtPosition): Selects date/week/month at the given position.
&gt; +        (DaysTable.prototype.firstSelectedNode): Returns first selected day node.
&gt; +        (DaysTable.prototype.deselect): Deselects all selections.

Function names should be updated to &quot;_foo&quot;

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1031
&gt; +DaysTable.prototype.firstNodeInSelectedRange = function() {

should be _firstNodeInSelectedRange?

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1037
&gt; +    var selectedNodesLength = selectedNodes.length;

This variable is not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751619</commentid>
    <comment_count>6</comment_count>
      <attachid>170834</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-26 00:06:48 -0700</bug_when>
    <thetext>Created attachment 170834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751626</commentid>
    <comment_count>7</comment_count>
      <attachid>170834</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-26 00:10:54 -0700</bug_when>
    <thetext>Comment on attachment 170834
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751748</commentid>
    <comment_count>8</comment_count>
      <attachid>170834</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 02:56:37 -0700</bug_when>
    <thetext>Comment on attachment 170834
Patch

Clearing flags on attachment: 170834

Committed r132596: &lt;http://trac.webkit.org/changeset/132596&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751749</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 02:56:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170820</attachid>
            <date>2012-10-25 22:48:46 -0700</date>
            <delta_ts>2012-10-25 23:50:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100460-20121026144718.patch</filename>
            <type>text/plain</type>
            <size>7184</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MThlYjdkYWUwMjAx
MzlkOWIyZmE2MDNkYjc1NTYwYzFkMTEwNy4uMTlkY2Q0NzkxODBlMzU5OTNhNWI5ZmNiZWY1ZWUw
MWI0ZTk1ODcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTI1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZmFjdG9yIGNhbGVu
ZGFyIHBpY2tlciB0byByZW1vdmUgX3gvX3kgZnJvbSBEYXlzVGFibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDQ2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIF94L195IHByb3BlcnRpZXMga2VlcCB0
aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBzZWxlY3Rpb24gYnV0IHdoZW4gd2UgYWRkCisgICAgICAg
IHdlZWsgYW5kIG1vbnRoIHBpY2tpbmcgY2FwYWJpbGl0aWVzLCB0aGUgc2VsZWN0aW9uIGNhbid0
IGJlIGV4cHJlc3NlZCBhcworICAgICAgICBhIHNldCBvZiBjb29yZGluYXRlcy4gVGhpcyBjaGFu
Z2Ugd2lsbCByZW1vdmUgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGNh
bGVuZGFyLXBpY2tlci0qLmh0bWwgdGVzdHMuCisKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBv
cHVwcy9jYWxlbmRhclBpY2tlci5qczoKKyAgICAgICAgKERheXNUYWJsZSk6CisgICAgICAgIChE
YXlzVGFibGUucHJvdG90eXBlLl9oYXNTZWxlY3Rpb24pOgorICAgICAgICAoRGF5c1RhYmxlLnBy
b3RvdHlwZS5uYXZpZ2F0ZVRvTW9udGhBbmRLZWVwU2VsZWN0aW9uUG9zaXRpb24pOgorICAgICAg
ICAoRGF5c1RhYmxlLnByb3RvdHlwZS5zZWxlY3REYXRlKToKKyAgICAgICAgKERheXNUYWJsZS5w
cm90b3R5cGUuc2VsZWN0UmFuZ2VDb250YWluaW5nTm9kZSk6IFNlbGVjdHMgZGF0ZS93ZWVrL21v
bnRoIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGRheSBub2RlLgorICAgICAgICAoRGF5c1RhYmxlLnBy
b3RvdHlwZS5zZWxlY3RSYW5nZUF0UG9zaXRpb24pOiBTZWxlY3RzIGRhdGUvd2Vlay9tb250aCBh
dCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICAgIChEYXlzVGFibGUucHJvdG90eXBlLmZpcnN0
U2VsZWN0ZWROb2RlKTogUmV0dXJucyBmaXJzdCBzZWxlY3RlZCBkYXkgbm9kZS4KKyAgICAgICAg
KERheXNUYWJsZS5wcm90b3R5cGUuZGVzZWxlY3QpOiBEZXNlbGVjdHMgYWxsIHNlbGVjdGlvbnMu
CisgICAgICAgIChEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZU92ZXIpOgorICAgICAg
ICAoRGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlTW91c2VPdXQpOgorICAgICAgICAoRGF5c1Rh
YmxlLnByb3RvdHlwZS5faGFuZGxlS2V5KToKKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUu
dXBkYXRlU2VsZWN0aW9uKToKKwogMjAxMi0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
MjUxNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nh
bGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2Fs
ZW5kYXJQaWNrZXIuanMKaW5kZXggZjU5OWM5NmU5MzFiN2NjMjJhNzU0ZTk0NjQyOWQ2ZmQyZDJj
MTU5Yi4uM2Y4MWNmNjkyYjBiNjk0OWQ0MDI4MTEyZmI4YzllMjJjMDdjNTlkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIu
anMKQEAgLTgwMywxNCArODAzLDYgQEAgZnVuY3Rpb24gRGF5c1RhYmxlKHBpY2tlcikgewogICAg
IC8qKgogICAgICAqIEB0eXBlIHshbnVtYmVyfQogICAgICAqLwotICAgIHRoaXMuX3ggPSAtMTsK
LSAgICAvKioKLSAgICAgKiBAdHlwZSB7IW51bWJlcn0KLSAgICAgKi8KLSAgICB0aGlzLl95ID0g
LTE7Ci0gICAgLyoqCi0gICAgICogQHR5cGUgeyFudW1iZXJ9Ci0gICAgICovCiAgICAgdGhpcy5f
Y3VycmVudFllYXIgPSAtMTsKICAgICAvKioKICAgICAgKiBAdHlwZSB7IW51bWJlcn0KQEAgLTgy
Miw3ICs4MTQsNyBAQCBmdW5jdGlvbiBEYXlzVGFibGUocGlja2VyKSB7CiAgKiBAcmV0dXJuIHsh
Ym9vbGVhbn0KICAqLwogRGF5c1RhYmxlLnByb3RvdHlwZS5faGFzU2VsZWN0aW9uID0gZnVuY3Rp
b24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuX3ggPj0gMCAmJiB0aGlzLl95ID49IDA7CisgICAgcmV0
dXJuICEhdGhpcy5maXJzdFNlbGVjdGVkTm9kZSgpOwogfQogCiAvKioKQEAgLTk4OCw5ICs5ODAs
MTMgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5fbW92ZUluRGF5cyA9IGZ1bmN0aW9uKCkgewogRGF5
c1RhYmxlLnByb3RvdHlwZS5uYXZpZ2F0ZVRvTW9udGhBbmRLZWVwU2VsZWN0aW9uUG9zaXRpb24g
PSBmdW5jdGlvbih5ZWFyLCBtb250aCkgewogICAgIGlmICh5ZWFyID09IHRoaXMuX2N1cnJlbnRZ
ZWFyICYmIG1vbnRoID09IHRoaXMuX2N1cnJlbnRNb250aCkKICAgICAgICAgcmV0dXJuOworICAg
IHZhciBmaXJzdFNlbGVjdGVkTm9kZSA9IHRoaXMuZmlyc3RTZWxlY3RlZE5vZGUoKTsKICAgICB0
aGlzLl9uYXZpZ2F0ZVRvTW9udGhXaXRoQW5pbWF0aW9uKHllYXIsIG1vbnRoKTsKLSAgICBpZiAo
dGhpcy5faGFzU2VsZWN0aW9uKCkpCi0gICAgICAgIHRoaXMuX2RheXNbdGhpcy5feV1bdGhpcy5f
eF0uY2xhc3NMaXN0LmFkZChDbGFzc05hbWVzLlNlbGVjdGVkKTsKKyAgICBpZiAoZmlyc3RTZWxl
Y3RlZE5vZGUpIHsKKyAgICAgICAgdmFyIHggPSBwYXJzZUludChmaXJzdFNlbGVjdGVkTm9kZS5k
YXRhc2V0LnBvc2l0aW9uWCwgMTApOworICAgICAgICB2YXIgeSA9IHBhcnNlSW50KGZpcnN0U2Vs
ZWN0ZWROb2RlLmRhdGFzZXQucG9zaXRpb25ZLCAxMCk7CisgICAgICAgIHRoaXMuc2VsZWN0UmFu
Z2VBdFBvc2l0aW9uKHgsIHkpOworICAgIH0KIH07CiAKIC8qKgpAQCAtMTAwMyw4ICs5OTksNiBA
QCBEYXlzVGFibGUucHJvdG90eXBlLnNlbGVjdERhdGUgPSBmdW5jdGlvbihkYXRlKSB7CiAgICAg
ICAgIGZvciAodmFyIGQgPSAwOyBkIDwgNzsgZCsrKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5f
ZGF5c1t3XVtkXS5kYXRhc2V0LnN1Ym1pdFZhbHVlID09IGRhdGVTdHJpbmcpIHsKICAgICAgICAg
ICAgICAgICB0aGlzLl9kYXlzW3ddW2RdLmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3Rl
ZCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5feCA9IGQ7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
eSA9IHc7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTEwMTIsNiArMTAwNiwzOCBAQCBEYXlzVGFibGUucHJvdG90eXBlLnNlbGVjdERhdGUgPSBm
dW5jdGlvbihkYXRlKSB7CiB9OwogCiAvKioKKyAqIEBwYXJhbSB7IUVsZW1lbnR9IGRheU5vZGUK
KyAqLworRGF5c1RhYmxlLnByb3RvdHlwZS5zZWxlY3RSYW5nZUNvbnRhaW5pbmdOb2RlID0gZnVu
Y3Rpb24oZGF5Tm9kZSkgeworICAgIHRoaXMuZGVzZWxlY3QoKTsKKyAgICBpZiAoIWRheU5vZGUg
fHwgIWRheU5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKENsYXNzTmFtZXMuRGF5KSB8fCAhZGF5Tm9k
ZS5jbGFzc0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5BdmFpbGFibGUpKQorICAgICAgICByZXR1
cm47CisgICAgZGF5Tm9kZS5jbGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWQpOworfTsK
KworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHgKKyAqIEBwYXJhbSB7IW51bWJlcn0geQorICov
CitEYXlzVGFibGUucHJvdG90eXBlLnNlbGVjdFJhbmdlQXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHgs
IHkpIHsKKyAgICB0aGlzLnNlbGVjdFJhbmdlQ29udGFpbmluZ05vZGUodGhpcy5fZGF5c1t5XVt4
XSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFFbGVtZW50fQorICovCitEYXlzVGFibGUucHJv
dG90eXBlLmZpcnN0U2VsZWN0ZWROb2RlID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXMu
X2RheXNDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShDbGFzc05hbWVzLlNlbGVjdGVk
KVswXTsKK307CisKK0RheXNUYWJsZS5wcm90b3R5cGUuZGVzZWxlY3QgPSBmdW5jdGlvbigpIHsK
KyAgICB2YXIgc2VsZWN0ZWROb2RlcyA9IHRoaXMuX2RheXNDb250YWluZXIuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShDbGFzc05hbWVzLlNlbGVjdGVkKTsKKyAgICB2YXIgc2VsZWN0ZWROb2Rlc0xl
bmd0aCA9IHNlbGVjdGVkTm9kZXMubGVuZ3RoOworICAgIGZvciAodmFyIG5vZGUgPSBzZWxlY3Rl
ZE5vZGVzWzBdOyBub2RlOyBub2RlID0gc2VsZWN0ZWROb2Rlc1swXSkKKyAgICAgICAgbm9kZS5j
bGFzc0xpc3QucmVtb3ZlKENsYXNzTmFtZXMuU2VsZWN0ZWQpOworfTsKKworLyoqCiAgKiBAcmV0
dXJuIHshYm9vbGVhbn0KICAqLwogRGF5c1RhYmxlLnByb3RvdHlwZS5fbWF5YmVTZXRQcmV2aW91
c01vbnRoID0gZnVuY3Rpb24oKSB7CkBAIC0xMDYwLDI2ICsxMDg2LDE2IEBAIERheXNUYWJsZS5w
cm90b3R5cGUuX2hhbmRsZURheUNsaWNrID0gZnVuY3Rpb24oZXZlbnQpIHsKICAqLwogRGF5c1Rh
YmxlLnByb3RvdHlwZS5faGFuZGxlTW91c2VPdmVyID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICB2
YXIgbm9kZSA9IGV2ZW50LnRhcmdldDsKLSAgICBpZiAodGhpcy5faGFzU2VsZWN0aW9uKCkpCi0g
ICAgICAgIHRoaXMuX2RheXNbdGhpcy5feV1bdGhpcy5feF0uY2xhc3NMaXN0LnJlbW92ZShDbGFz
c05hbWVzLlNlbGVjdGVkKTsKLSAgICBpZiAoIW5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKENsYXNz
TmFtZXMuRGF5KSkgewotICAgICAgICB0aGlzLl94ID0gLTE7Ci0gICAgICAgIHRoaXMuX3kgPSAt
MTsKKyAgICBpZiAobm9kZS5jbGFzc0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5TZWxlY3RlZCkp
CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbm9kZS5jbGFzc0xpc3QuYWRkKENsYXNzTmFt
ZXMuU2VsZWN0ZWQpOwotICAgIHRoaXMuX3ggPSBOdW1iZXIobm9kZS5kYXRhc2V0LnBvc2l0aW9u
WCk7Ci0gICAgdGhpcy5feSA9IE51bWJlcihub2RlLmRhdGFzZXQucG9zaXRpb25ZKTsKKyAgICB0
aGlzLnNlbGVjdFJhbmdlQ29udGFpbmluZ05vZGUobm9kZSk7CiB9OwogCiAvKioKICAqIEBwYXJh
bSB7RXZlbnR9IGV2ZW50CiAgKi8KIERheXNUYWJsZS5wcm90b3R5cGUuX2hhbmRsZU1vdXNlT3V0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAodGhpcy5faGFzU2VsZWN0aW9uKCkpCi0gICAg
ICAgIHRoaXMuX2RheXNbdGhpcy5feV1bdGhpcy5feF0uY2xhc3NMaXN0LnJlbW92ZShDbGFzc05h
bWVzLlNlbGVjdGVkKTsKLSAgICB0aGlzLl94ID0gLTE7Ci0gICAgdGhpcy5feSA9IC0xOworICAg
IHRoaXMuZGVzZWxlY3QoKTsKIH07CiAKIC8qKgpAQCAtMTA4Nyw5ICsxMTAzLDE0IEBAIERheXNU
YWJsZS5wcm90b3R5cGUuX2hhbmRsZU1vdXNlT3V0ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAqLwog
RGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlS2V5ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICB0
aGlzLnBpY2tlci5tYXliZVVwZGF0ZUZvY3VzU3R5bGUoKTsKLSAgICB2YXIgeCA9IHRoaXMuX3g7
Ci0gICAgdmFyIHkgPSB0aGlzLl95OworICAgIHZhciB4ID0gLTE7CisgICAgdmFyIHkgPSAtMTsK
ICAgICB2YXIga2V5ID0gZXZlbnQua2V5SWRlbnRpZmllcjsKKyAgICB2YXIgZmlyc3RTZWxlY3Rl
ZE5vZGUgPSB0aGlzLmZpcnN0U2VsZWN0ZWROb2RlKCk7CisgICAgaWYgKGZpcnN0U2VsZWN0ZWRO
b2RlKSB7CisgICAgICAgIHggPSBwYXJzZUludChmaXJzdFNlbGVjdGVkTm9kZS5kYXRhc2V0LnBv
c2l0aW9uWCwgMTApOworICAgICAgICB5ID0gcGFyc2VJbnQoZmlyc3RTZWxlY3RlZE5vZGUuZGF0
YXNldC5wb3NpdGlvblksIDEwKTsKKyAgICB9CiAgICAgaWYgKCF0aGlzLl9oYXNTZWxlY3Rpb24o
KSAmJiAoa2V5ID09ICJMZWZ0IiB8fCBrZXkgPT0gIlVwIiB8fCBrZXkgPT0gIlJpZ2h0IiB8fCBr
ZXkgPT0gIkRvd24iKSkgewogICAgICAgICAvLyBQdXQgdGhlIHNlbGVjdGlvbiBvbiBhIGNlbnRl
ciBjZWxsLgogICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbihldmVudCwgMywgTWF0aC5mbG9v
cihEYXlzVGFibGUuX1dlZWtzIC8gMiAtIDEpKTsKQEAgLTExNTgsNyArMTE3OSw2IEBAIERheXNU
YWJsZS5wcm90b3R5cGUuX2hhbmRsZUtleSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIH0K
IAogICAgIH0gZWxzZSBpZiAoa2V5ID09ICJVKzAwNTQiKSB7IC8vICd0JwotICAgICAgICB0aGlz
Ll9kYXlzW3RoaXMuX3ldW3RoaXMuX3hdLmNsYXNzTGlzdC5yZW1vdmUoQ2xhc3NOYW1lcy5TZWxl
Y3RlZCk7CiAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZShuZXcgRGF0ZSgpKTsKICAgICAgICAgZXZl
bnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CkBA
IC0xMTcxLDEzICsxMTkxLDcgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlS2V5ID0gZnVu
Y3Rpb24oZXZlbnQpIHsKICAqIEBwYXJhbSB7IW51bWJlcn0geQogICovCiBEYXlzVGFibGUucHJv
dG90eXBlLnVwZGF0ZVNlbGVjdGlvbiA9IGZ1bmN0aW9uKGV2ZW50LCB4LCB5KSB7Ci0gICAgaWYg
KHRoaXMuX2hhc1NlbGVjdGlvbigpKQotICAgICAgICB0aGlzLl9kYXlzW3RoaXMuX3ldW3RoaXMu
X3hdLmNsYXNzTGlzdC5yZW1vdmUoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7Ci0gICAgaWYgKHggPj0g
MCAmJiB5ID49IDApIHsKLSAgICAgICAgdGhpcy5fZGF5c1t5XVt4XS5jbGFzc0xpc3QuYWRkKENs
YXNzTmFtZXMuU2VsZWN0ZWQpOwotICAgICAgICB0aGlzLl94ID0geDsKLSAgICAgICAgdGhpcy5f
eSA9IHk7Ci0gICAgfQorICAgIHRoaXMuc2VsZWN0UmFuZ2VBdFBvc2l0aW9uKHgsIHkpOwogICAg
IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiB9
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170830</attachid>
            <date>2012-10-25 23:50:47 -0700</date>
            <delta_ts>2012-10-26 00:06:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100460-20121026154919.patch</filename>
            <type>text/plain</type>
            <size>7932</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MThlYjdkYWUwMjAx
MzlkOWIyZmE2MDNkYjc1NTYwYzFkMTEwNy4uNzcyOGY2NWIyNzM4MTliMWYwYTY2YmEyZTRlZDQ0
MmQxZTVmZmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTI1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZmFjdG9yIGNhbGVu
ZGFyIHBpY2tlciB0byByZW1vdmUgX3gvX3kgZnJvbSBEYXlzVGFibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDQ2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIF94L195IHByb3BlcnRpZXMga2VlcCB0
aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBzZWxlY3Rpb24gYnV0IHdoZW4gd2UgYWRkCisgICAgICAg
IHdlZWsgYW5kIG1vbnRoIHBpY2tpbmcgY2FwYWJpbGl0aWVzLCB0aGUgc2VsZWN0aW9uIGNhbid0
IGJlIGV4cHJlc3NlZCBhcworICAgICAgICBhIHNldCBvZiBjb29yZGluYXRlcy4gVGhpcyBjaGFu
Z2Ugd2lsbCByZW1vdmUgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGNh
bGVuZGFyLXBpY2tlci0qLmh0bWwgdGVzdHMuCisKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBv
cHVwcy9jYWxlbmRhclBpY2tlci5qczoKKyAgICAgICAgKERheXNUYWJsZSk6IFJlbW92ZWQgX3gv
X3kgcHJvcGVydGllcy4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUuX2hhc1NlbGVjdGlv
bik6IENoYW5nZWQgdG8gcmVmZXIgdG8gdGhlIERPTSB0byBzZWUgaWYgd2UgaGF2ZSBhIHNlbGVj
dGlvbi4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUubmF2aWdhdGVUb01vbnRoQW5kS2Vl
cFNlbGVjdGlvblBvc2l0aW9uKTogTG9va3VwIHRoZSBzZWxlY3Rpb24gcG9zaXRpb24uCisgICAg
ICAgIChEYXlzVGFibGUucHJvdG90eXBlLnNlbGVjdERhdGUpOiBEZXNlbGVjdCBmaXJzdCBzbyB3
ZSBkb24ndCBoYXZlIHR3byBzZWxlY3Rpb25zLgorICAgICAgICAoRGF5c1RhYmxlLnByb3RvdHlw
ZS5zZWxlY3RSYW5nZUNvbnRhaW5pbmdOb2RlKTogU2VsZWN0cyBkYXRlL3dlZWsvbW9udGggY29u
dGFpbmluZyB0aGUgZ2l2ZW4gZGF5IG5vZGUuCisgICAgICAgIChEYXlzVGFibGUucHJvdG90eXBl
LnNlbGVjdFJhbmdlQXRQb3NpdGlvbik6IFNlbGVjdHMgZGF0ZS93ZWVrL21vbnRoIGF0IHRoZSBn
aXZlbiBwb3NpdGlvbi4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUuZmlyc3RTZWxlY3Rl
ZE5vZGUpOiBSZXR1cm5zIGZpcnN0IHNlbGVjdGVkIGRheSBub2RlLgorICAgICAgICAoRGF5c1Rh
YmxlLnByb3RvdHlwZS5kZXNlbGVjdCk6IERlc2VsZWN0cyBhbGwgc2VsZWN0aW9ucy4KKyAgICAg
ICAgKERheXNUYWJsZS5wcm90b3R5cGUuX2hhbmRsZU1vdXNlT3Zlcik6IFVzZSBfc2VsZWN0UmFu
Z2VDb250YWluaW5nTm9kZSBzbyB3ZSBkb24ndCBoYXZlIG1hbnkgcGxhY2VzIGhhbmRsaW5nIHRo
ZSBzZWxlY3Rpb24uCisgICAgICAgIChEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZU91
dCk6IFVzZSBfZGVzZWxlY3QuCisgICAgICAgIChEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVL
ZXkpOiBMb29rdXAgdGhlIHNlbGVjdGlvbiBwb3NpdGlvbi4KKyAgICAgICAgKERheXNUYWJsZS5w
cm90b3R5cGUudXBkYXRlU2VsZWN0aW9uKTogVXNlIF9zZWxlY3RSYW5nZUF0UG9zaXRpb24uCisK
IDIwMTItMTAtMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzI1MTQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4
IGY1OTljOTZlOTMxYjdjYzIyYTc1NGU5NDY0MjlkNmZkMmQyYzE1OWIuLmI0ZGEzODIxOTBjNTk1
MmZmNDA4YmViYTc1NmRlMGExNzBlNTU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jl
c291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCkBAIC04MDMsMTQgKzgwMyw2
IEBAIGZ1bmN0aW9uIERheXNUYWJsZShwaWNrZXIpIHsKICAgICAvKioKICAgICAgKiBAdHlwZSB7
IW51bWJlcn0KICAgICAgKi8KLSAgICB0aGlzLl94ID0gLTE7Ci0gICAgLyoqCi0gICAgICogQHR5
cGUgeyFudW1iZXJ9Ci0gICAgICovCi0gICAgdGhpcy5feSA9IC0xOwotICAgIC8qKgotICAgICAq
IEB0eXBlIHshbnVtYmVyfQotICAgICAqLwogICAgIHRoaXMuX2N1cnJlbnRZZWFyID0gLTE7CiAg
ICAgLyoqCiAgICAgICogQHR5cGUgeyFudW1iZXJ9CkBAIC04MjIsNyArODE0LDcgQEAgZnVuY3Rp
b24gRGF5c1RhYmxlKHBpY2tlcikgewogICogQHJldHVybiB7IWJvb2xlYW59CiAgKi8KIERheXNU
YWJsZS5wcm90b3R5cGUuX2hhc1NlbGVjdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgIHJldHVybiB0
aGlzLl94ID49IDAgJiYgdGhpcy5feSA+PSAwOworICAgIHJldHVybiAhIXRoaXMuZmlyc3ROb2Rl
SW5TZWxlY3RlZFJhbmdlKCk7CiB9CiAKIC8qKgpAQCAtOTg4LDIzICs5ODAsMjYgQEAgRGF5c1Rh
YmxlLnByb3RvdHlwZS5fbW92ZUluRGF5cyA9IGZ1bmN0aW9uKCkgewogRGF5c1RhYmxlLnByb3Rv
dHlwZS5uYXZpZ2F0ZVRvTW9udGhBbmRLZWVwU2VsZWN0aW9uUG9zaXRpb24gPSBmdW5jdGlvbih5
ZWFyLCBtb250aCkgewogICAgIGlmICh5ZWFyID09IHRoaXMuX2N1cnJlbnRZZWFyICYmIG1vbnRo
ID09IHRoaXMuX2N1cnJlbnRNb250aCkKICAgICAgICAgcmV0dXJuOworICAgIHZhciBmaXJzdE5v
ZGVJblNlbGVjdGVkUmFuZ2UgPSB0aGlzLmZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5nZSgpOwogICAg
IHRoaXMuX25hdmlnYXRlVG9Nb250aFdpdGhBbmltYXRpb24oeWVhciwgbW9udGgpOwotICAgIGlm
ICh0aGlzLl9oYXNTZWxlY3Rpb24oKSkKLSAgICAgICAgdGhpcy5fZGF5c1t0aGlzLl95XVt0aGlz
Ll94XS5jbGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2VsZWN0ZWQpOworICAgIGlmIChmaXJzdE5v
ZGVJblNlbGVjdGVkUmFuZ2UpIHsKKyAgICAgICAgdmFyIHggPSBwYXJzZUludChmaXJzdE5vZGVJ
blNlbGVjdGVkUmFuZ2UuZGF0YXNldC5wb3NpdGlvblgsIDEwKTsKKyAgICAgICAgdmFyIHkgPSBw
YXJzZUludChmaXJzdE5vZGVJblNlbGVjdGVkUmFuZ2UuZGF0YXNldC5wb3NpdGlvblksIDEwKTsK
KyAgICAgICAgdGhpcy5fc2VsZWN0UmFuZ2VBdFBvc2l0aW9uKHgsIHkpOworICAgIH0KIH07CiAK
IC8qKgogICogQHBhcmFtIHshRGF0ZX0gZGF0ZQogICovCiBEYXlzVGFibGUucHJvdG90eXBlLnNl
bGVjdERhdGUgPSBmdW5jdGlvbihkYXRlKSB7CisgICAgdGhpcy5fZGVzZWxlY3QoKTsKICAgICB0
aGlzLl9uYXZpZ2F0ZVRvTW9udGhXaXRoQW5pbWF0aW9uKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwg
ZGF0ZS5nZXRVVENNb250aCgpKTsKICAgICB2YXIgZGF0ZVN0cmluZyA9IHNlcmlhbGl6ZURhdGUo
ZGF0ZS5nZXRVVENGdWxsWWVhcigpLCBkYXRlLmdldFVUQ01vbnRoKCksIGRhdGUuZ2V0VVRDRGF0
ZSgpKTsKICAgICBmb3IgKHZhciB3ID0gMDsgdyA8IERheXNUYWJsZS5fV2Vla3M7IHcrKykgewog
ICAgICAgICBmb3IgKHZhciBkID0gMDsgZCA8IDc7IGQrKykgewogICAgICAgICAgICAgaWYgKHRo
aXMuX2RheXNbd11bZF0uZGF0YXNldC5zdWJtaXRWYWx1ZSA9PSBkYXRlU3RyaW5nKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5fZGF5c1t3XVtkXS5jbGFzc0xpc3QuYWRkKENsYXNzTmFtZXMuU2Vs
ZWN0ZWQpOwotICAgICAgICAgICAgICAgIHRoaXMuX3ggPSBkOwotICAgICAgICAgICAgICAgIHRo
aXMuX3kgPSB3OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0xMDEyLDYgKzEwMDcsMzkgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5zZWxlY3REYXRl
ID0gZnVuY3Rpb24oZGF0ZSkgewogfTsKIAogLyoqCisgKiBAcGFyYW0geyFFbGVtZW50fSBkYXlO
b2RlCisgKi8KK0RheXNUYWJsZS5wcm90b3R5cGUuX3NlbGVjdFJhbmdlQ29udGFpbmluZ05vZGUg
PSBmdW5jdGlvbihkYXlOb2RlKSB7CisgICAgdGhpcy5fZGVzZWxlY3QoKTsKKyAgICBpZiAoIWRh
eU5vZGUgfHwgIWRheU5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKENsYXNzTmFtZXMuRGF5KSB8fCAh
ZGF5Tm9kZS5jbGFzc0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5BdmFpbGFibGUpKQorICAgICAg
ICByZXR1cm47CisgICAgLy8gRklYTUU6IFNlbGVjdCBkYXRlLCB3ZWVrIG9yIG1vbnRoIGRlcGVu
ZGluZyBvbiB0aGUgY29uZmlnLgorICAgIGRheU5vZGUuY2xhc3NMaXN0LmFkZChDbGFzc05hbWVz
LlNlbGVjdGVkKTsKK307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSB4CisgKiBAcGFyYW0g
eyFudW1iZXJ9IHkKKyAqLworRGF5c1RhYmxlLnByb3RvdHlwZS5fc2VsZWN0UmFuZ2VBdFBvc2l0
aW9uID0gZnVuY3Rpb24oeCwgeSkgeworICAgIHRoaXMuX3NlbGVjdFJhbmdlQ29udGFpbmluZ05v
ZGUodGhpcy5fZGF5c1t5XVt4XSk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFFbGVtZW50fQor
ICovCitEYXlzVGFibGUucHJvdG90eXBlLmZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5nZSA9IGZ1bmN0
aW9uKCkgeworICAgIHJldHVybiB0aGlzLl9kYXlzQ29udGFpbmVyLmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoQ2xhc3NOYW1lcy5TZWxlY3RlZClbMF07Cit9OworCitEYXlzVGFibGUucHJvdG90eXBl
Ll9kZXNlbGVjdCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy5f
ZGF5c0NvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKENsYXNzTmFtZXMuU2VsZWN0ZWQp
OworICAgIHZhciBzZWxlY3RlZE5vZGVzTGVuZ3RoID0gc2VsZWN0ZWROb2Rlcy5sZW5ndGg7Cisg
ICAgZm9yICh2YXIgbm9kZSA9IHNlbGVjdGVkTm9kZXNbMF07IG5vZGU7IG5vZGUgPSBzZWxlY3Rl
ZE5vZGVzWzBdKQorICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoQ2xhc3NOYW1lcy5TZWxl
Y3RlZCk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFib29sZWFufQogICovCiBEYXlzVGFibGUu
cHJvdG90eXBlLl9tYXliZVNldFByZXZpb3VzTW9udGggPSBmdW5jdGlvbigpIHsKQEAgLTEwNjAs
MjYgKzEwODgsMTYgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlRGF5Q2xpY2sgPSBmdW5j
dGlvbihldmVudCkgewogICovCiBEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZU92ZXIg
PSBmdW5jdGlvbihldmVudCkgewogICAgIHZhciBub2RlID0gZXZlbnQudGFyZ2V0OwotICAgIGlm
ICh0aGlzLl9oYXNTZWxlY3Rpb24oKSkKLSAgICAgICAgdGhpcy5fZGF5c1t0aGlzLl95XVt0aGlz
Ll94XS5jbGFzc0xpc3QucmVtb3ZlKENsYXNzTmFtZXMuU2VsZWN0ZWQpOwotICAgIGlmICghbm9k
ZS5jbGFzc0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5EYXkpKSB7Ci0gICAgICAgIHRoaXMuX3gg
PSAtMTsKLSAgICAgICAgdGhpcy5feSA9IC0xOworICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250
YWlucyhDbGFzc05hbWVzLlNlbGVjdGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBu
b2RlLmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7Ci0gICAgdGhpcy5feCA9IE51
bWJlcihub2RlLmRhdGFzZXQucG9zaXRpb25YKTsKLSAgICB0aGlzLl95ID0gTnVtYmVyKG5vZGUu
ZGF0YXNldC5wb3NpdGlvblkpOworICAgIHRoaXMuX3NlbGVjdFJhbmdlQ29udGFpbmluZ05vZGUo
bm9kZSk7CiB9OwogCiAvKioKICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CiAgKi8KIERheXNUYWJs
ZS5wcm90b3R5cGUuX2hhbmRsZU1vdXNlT3V0ID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAo
dGhpcy5faGFzU2VsZWN0aW9uKCkpCi0gICAgICAgIHRoaXMuX2RheXNbdGhpcy5feV1bdGhpcy5f
eF0uY2xhc3NMaXN0LnJlbW92ZShDbGFzc05hbWVzLlNlbGVjdGVkKTsKLSAgICB0aGlzLl94ID0g
LTE7Ci0gICAgdGhpcy5feSA9IC0xOworICAgIHRoaXMuX2Rlc2VsZWN0KCk7CiB9OwogCiAvKioK
QEAgLTEwODcsOSArMTEwNSwxNCBAQCBEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVNb3VzZU91
dCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgKi8KIERheXNUYWJsZS5wcm90b3R5cGUuX2hhbmRsZUtl
eSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgdGhpcy5waWNrZXIubWF5YmVVcGRhdGVGb2N1c1N0
eWxlKCk7Ci0gICAgdmFyIHggPSB0aGlzLl94OwotICAgIHZhciB5ID0gdGhpcy5feTsKKyAgICB2
YXIgeCA9IC0xOworICAgIHZhciB5ID0gLTE7CiAgICAgdmFyIGtleSA9IGV2ZW50LmtleUlkZW50
aWZpZXI7CisgICAgdmFyIGZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5nZSA9IHRoaXMuZmlyc3ROb2Rl
SW5TZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKGZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5nZSkgewor
ICAgICAgICB4ID0gcGFyc2VJbnQoZmlyc3ROb2RlSW5TZWxlY3RlZFJhbmdlLmRhdGFzZXQucG9z
aXRpb25YLCAxMCk7CisgICAgICAgIHkgPSBwYXJzZUludChmaXJzdE5vZGVJblNlbGVjdGVkUmFu
Z2UuZGF0YXNldC5wb3NpdGlvblksIDEwKTsKKyAgICB9CiAgICAgaWYgKCF0aGlzLl9oYXNTZWxl
Y3Rpb24oKSAmJiAoa2V5ID09ICJMZWZ0IiB8fCBrZXkgPT0gIlVwIiB8fCBrZXkgPT0gIlJpZ2h0
IiB8fCBrZXkgPT0gIkRvd24iKSkgewogICAgICAgICAvLyBQdXQgdGhlIHNlbGVjdGlvbiBvbiBh
IGNlbnRlciBjZWxsLgogICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbihldmVudCwgMywgTWF0
aC5mbG9vcihEYXlzVGFibGUuX1dlZWtzIC8gMiAtIDEpKTsKQEAgLTExNTgsNyArMTE4MSw2IEBA
IERheXNUYWJsZS5wcm90b3R5cGUuX2hhbmRsZUtleSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
ICAgIH0KIAogICAgIH0gZWxzZSBpZiAoa2V5ID09ICJVKzAwNTQiKSB7IC8vICd0JwotICAgICAg
ICB0aGlzLl9kYXlzW3RoaXMuX3ldW3RoaXMuX3hdLmNsYXNzTGlzdC5yZW1vdmUoQ2xhc3NOYW1l
cy5TZWxlY3RlZCk7CiAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZShuZXcgRGF0ZSgpKTsKICAgICAg
ICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CkBAIC0xMTcxLDEzICsxMTkzLDcgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlS2V5
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAqIEBwYXJhbSB7IW51bWJlcn0geQogICovCiBEYXlzVGFi
bGUucHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvbiA9IGZ1bmN0aW9uKGV2ZW50LCB4LCB5KSB7Ci0g
ICAgaWYgKHRoaXMuX2hhc1NlbGVjdGlvbigpKQotICAgICAgICB0aGlzLl9kYXlzW3RoaXMuX3ld
W3RoaXMuX3hdLmNsYXNzTGlzdC5yZW1vdmUoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7Ci0gICAgaWYg
KHggPj0gMCAmJiB5ID49IDApIHsKLSAgICAgICAgdGhpcy5fZGF5c1t5XVt4XS5jbGFzc0xpc3Qu
YWRkKENsYXNzTmFtZXMuU2VsZWN0ZWQpOwotICAgICAgICB0aGlzLl94ID0geDsKLSAgICAgICAg
dGhpcy5feSA9IHk7Ci0gICAgfQorICAgIHRoaXMuX3NlbGVjdFJhbmdlQXRQb3NpdGlvbih4LCB5
KTsKICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKICAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170834</attachid>
            <date>2012-10-26 00:06:48 -0700</date>
            <delta_ts>2012-10-26 02:56:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100460-20121026160520.patch</filename>
            <type>text/plain</type>
            <size>7894</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3MThlYjdkYWUwMjAx
MzlkOWIyZmE2MDNkYjc1NTYwYzFkMTEwNy4uZmNmNTEyMWYyZmZjZDQzMjc4YTBjNGIwZmYxMTMw
NDY3MGZjNTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTI1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZmFjdG9yIGNhbGVu
ZGFyIHBpY2tlciB0byByZW1vdmUgX3gvX3kgZnJvbSBEYXlzVGFibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDQ2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIF94L195IHByb3BlcnRpZXMga2VlcCB0
aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBzZWxlY3Rpb24gYnV0IHdoZW4gd2UgYWRkCisgICAgICAg
IHdlZWsgYW5kIG1vbnRoIHBpY2tpbmcgY2FwYWJpbGl0aWVzLCB0aGUgc2VsZWN0aW9uIGNhbid0
IGJlIGV4cHJlc3NlZCBhcworICAgICAgICBhIHNldCBvZiBjb29yZGluYXRlcy4gVGhpcyBjaGFu
Z2Ugd2lsbCByZW1vdmUgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGNh
bGVuZGFyLXBpY2tlci0qLmh0bWwgdGVzdHMuCisKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBv
cHVwcy9jYWxlbmRhclBpY2tlci5qczoKKyAgICAgICAgKERheXNUYWJsZSk6IFJlbW92ZWQgX3gv
X3kgcHJvcGVydGllcy4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUuX2hhc1NlbGVjdGlv
bik6IENoYW5nZWQgdG8gcmVmZXIgdG8gdGhlIERPTSB0byBzZWUgaWYgd2UgaGF2ZSBhIHNlbGVj
dGlvbi4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUubmF2aWdhdGVUb01vbnRoQW5kS2Vl
cFNlbGVjdGlvblBvc2l0aW9uKTogTG9va3VwIHRoZSBzZWxlY3Rpb24gcG9zaXRpb24uCisgICAg
ICAgIChEYXlzVGFibGUucHJvdG90eXBlLnNlbGVjdERhdGUpOiBEZXNlbGVjdCBmaXJzdCBzbyB3
ZSBkb24ndCBoYXZlIHR3byBzZWxlY3Rpb25zLgorICAgICAgICAoRGF5c1RhYmxlLnByb3RvdHlw
ZS5fc2VsZWN0UmFuZ2VDb250YWluaW5nTm9kZSk6IFNlbGVjdHMgZGF0ZS93ZWVrL21vbnRoIGNv
bnRhaW5pbmcgdGhlIGdpdmVuIGRheSBub2RlLgorICAgICAgICAoRGF5c1RhYmxlLnByb3RvdHlw
ZS5fc2VsZWN0UmFuZ2VBdFBvc2l0aW9uKTogU2VsZWN0cyBkYXRlL3dlZWsvbW9udGggYXQgdGhl
IGdpdmVuIHBvc2l0aW9uLgorICAgICAgICAoRGF5c1RhYmxlLnByb3RvdHlwZS5fZmlyc3ROb2Rl
SW5TZWxlY3RlZFJhbmdlKTogUmV0dXJucyBmaXJzdCBzZWxlY3RlZCBkYXkgbm9kZS4KKyAgICAg
ICAgKERheXNUYWJsZS5wcm90b3R5cGUuX2Rlc2VsZWN0KTogRGVzZWxlY3RzIGFsbCBzZWxlY3Rp
b25zLgorICAgICAgICAoRGF5c1RhYmxlLnByb3RvdHlwZS5faGFuZGxlTW91c2VPdmVyKTogVXNl
IF9zZWxlY3RSYW5nZUNvbnRhaW5pbmdOb2RlIHNvIHdlIGRvbid0IGhhdmUgbWFueSBwbGFjZXMg
aGFuZGxpbmcgdGhlIHNlbGVjdGlvbi4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5cGUuX2hh
bmRsZU1vdXNlT3V0KTogVXNlIF9kZXNlbGVjdC4KKyAgICAgICAgKERheXNUYWJsZS5wcm90b3R5
cGUuX2hhbmRsZUtleSk6IExvb2t1cCB0aGUgc2VsZWN0aW9uIHBvc2l0aW9uLgorICAgICAgICAo
RGF5c1RhYmxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24pOiBVc2UgX3NlbGVjdFJhbmdlQXRQ
b3NpdGlvbi4KKwogMjAxMi0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMjUxNC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlj
a2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNr
ZXIuanMKaW5kZXggZjU5OWM5NmU5MzFiN2NjMjJhNzU0ZTk0NjQyOWQ2ZmQyZDJjMTU5Yi4uNjEx
NGNjNTdiYjhmY2Y1MGUzODg1MWY1ZmMzMjFhZjNjYTg1MmI4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTgw
MywxNCArODAzLDYgQEAgZnVuY3Rpb24gRGF5c1RhYmxlKHBpY2tlcikgewogICAgIC8qKgogICAg
ICAqIEB0eXBlIHshbnVtYmVyfQogICAgICAqLwotICAgIHRoaXMuX3ggPSAtMTsKLSAgICAvKioK
LSAgICAgKiBAdHlwZSB7IW51bWJlcn0KLSAgICAgKi8KLSAgICB0aGlzLl95ID0gLTE7Ci0gICAg
LyoqCi0gICAgICogQHR5cGUgeyFudW1iZXJ9Ci0gICAgICovCiAgICAgdGhpcy5fY3VycmVudFll
YXIgPSAtMTsKICAgICAvKioKICAgICAgKiBAdHlwZSB7IW51bWJlcn0KQEAgLTgyMiw3ICs4MTQs
NyBAQCBmdW5jdGlvbiBEYXlzVGFibGUocGlja2VyKSB7CiAgKiBAcmV0dXJuIHshYm9vbGVhbn0K
ICAqLwogRGF5c1RhYmxlLnByb3RvdHlwZS5faGFzU2VsZWN0aW9uID0gZnVuY3Rpb24oKSB7Ci0g
ICAgcmV0dXJuIHRoaXMuX3ggPj0gMCAmJiB0aGlzLl95ID49IDA7CisgICAgcmV0dXJuICEhdGhp
cy5fZmlyc3ROb2RlSW5TZWxlY3RlZFJhbmdlKCk7CiB9CiAKIC8qKgpAQCAtOTg4LDIzICs5ODAs
MjYgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5fbW92ZUluRGF5cyA9IGZ1bmN0aW9uKCkgewogRGF5
c1RhYmxlLnByb3RvdHlwZS5uYXZpZ2F0ZVRvTW9udGhBbmRLZWVwU2VsZWN0aW9uUG9zaXRpb24g
PSBmdW5jdGlvbih5ZWFyLCBtb250aCkgewogICAgIGlmICh5ZWFyID09IHRoaXMuX2N1cnJlbnRZ
ZWFyICYmIG1vbnRoID09IHRoaXMuX2N1cnJlbnRNb250aCkKICAgICAgICAgcmV0dXJuOworICAg
IHZhciBmaXJzdE5vZGVJblNlbGVjdGVkUmFuZ2UgPSB0aGlzLl9maXJzdE5vZGVJblNlbGVjdGVk
UmFuZ2UoKTsKICAgICB0aGlzLl9uYXZpZ2F0ZVRvTW9udGhXaXRoQW5pbWF0aW9uKHllYXIsIG1v
bnRoKTsKLSAgICBpZiAodGhpcy5faGFzU2VsZWN0aW9uKCkpCi0gICAgICAgIHRoaXMuX2RheXNb
dGhpcy5feV1bdGhpcy5feF0uY2xhc3NMaXN0LmFkZChDbGFzc05hbWVzLlNlbGVjdGVkKTsKKyAg
ICBpZiAoZmlyc3ROb2RlSW5TZWxlY3RlZFJhbmdlKSB7CisgICAgICAgIHZhciB4ID0gcGFyc2VJ
bnQoZmlyc3ROb2RlSW5TZWxlY3RlZFJhbmdlLmRhdGFzZXQucG9zaXRpb25YLCAxMCk7CisgICAg
ICAgIHZhciB5ID0gcGFyc2VJbnQoZmlyc3ROb2RlSW5TZWxlY3RlZFJhbmdlLmRhdGFzZXQucG9z
aXRpb25ZLCAxMCk7CisgICAgICAgIHRoaXMuX3NlbGVjdFJhbmdlQXRQb3NpdGlvbih4LCB5KTsK
KyAgICB9CiB9OwogCiAvKioKICAqIEBwYXJhbSB7IURhdGV9IGRhdGUKICAqLwogRGF5c1RhYmxl
LnByb3RvdHlwZS5zZWxlY3REYXRlID0gZnVuY3Rpb24oZGF0ZSkgeworICAgIHRoaXMuX2Rlc2Vs
ZWN0KCk7CiAgICAgdGhpcy5fbmF2aWdhdGVUb01vbnRoV2l0aEFuaW1hdGlvbihkYXRlLmdldFVU
Q0Z1bGxZZWFyKCksIGRhdGUuZ2V0VVRDTW9udGgoKSk7CiAgICAgdmFyIGRhdGVTdHJpbmcgPSBz
ZXJpYWxpemVEYXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSwgZGF0ZS5nZXRVVENNb250aCgpLCBk
YXRlLmdldFVUQ0RhdGUoKSk7CiAgICAgZm9yICh2YXIgdyA9IDA7IHcgPCBEYXlzVGFibGUuX1dl
ZWtzOyB3KyspIHsKICAgICAgICAgZm9yICh2YXIgZCA9IDA7IGQgPCA3OyBkKyspIHsKICAgICAg
ICAgICAgIGlmICh0aGlzLl9kYXlzW3ddW2RdLmRhdGFzZXQuc3VibWl0VmFsdWUgPT0gZGF0ZVN0
cmluZykgewogICAgICAgICAgICAgICAgIHRoaXMuX2RheXNbd11bZF0uY2xhc3NMaXN0LmFkZChD
bGFzc05hbWVzLlNlbGVjdGVkKTsKLSAgICAgICAgICAgICAgICB0aGlzLl94ID0gZDsKLSAgICAg
ICAgICAgICAgICB0aGlzLl95ID0gdzsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMTAxMiw2ICsxMDA3LDM4IEBAIERheXNUYWJsZS5wcm90b3R5
cGUuc2VsZWN0RGF0ZSA9IGZ1bmN0aW9uKGRhdGUpIHsKIH07CiAKIC8qKgorICogQHBhcmFtIHsh
RWxlbWVudH0gZGF5Tm9kZQorICovCitEYXlzVGFibGUucHJvdG90eXBlLl9zZWxlY3RSYW5nZUNv
bnRhaW5pbmdOb2RlID0gZnVuY3Rpb24oZGF5Tm9kZSkgeworICAgIHRoaXMuX2Rlc2VsZWN0KCk7
CisgICAgaWYgKCFkYXlOb2RlIHx8ICFkYXlOb2RlLmNsYXNzTGlzdC5jb250YWlucyhDbGFzc05h
bWVzLkRheSkgfHwgIWRheU5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKENsYXNzTmFtZXMuQXZhaWxh
YmxlKSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBTZWxlY3QgZGF0ZSwgd2VlayBv
ciBtb250aCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZy4KKyAgICBkYXlOb2RlLmNsYXNzTGlzdC5h
ZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0g
eAorICogQHBhcmFtIHshbnVtYmVyfSB5CisgKi8KK0RheXNUYWJsZS5wcm90b3R5cGUuX3NlbGVj
dFJhbmdlQXRQb3NpdGlvbiA9IGZ1bmN0aW9uKHgsIHkpIHsKKyAgICB0aGlzLl9zZWxlY3RSYW5n
ZUNvbnRhaW5pbmdOb2RlKHRoaXMuX2RheXNbeV1beF0pOworfTsKKworLyoqCisgKiBAcmV0dXJu
IHshRWxlbWVudH0KKyAqLworRGF5c1RhYmxlLnByb3RvdHlwZS5fZmlyc3ROb2RlSW5TZWxlY3Rl
ZFJhbmdlID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHRoaXMuX2RheXNDb250YWluZXIuZ2V0
RWxlbWVudHNCeUNsYXNzTmFtZShDbGFzc05hbWVzLlNlbGVjdGVkKVswXTsKK307CisKK0RheXNU
YWJsZS5wcm90b3R5cGUuX2Rlc2VsZWN0ID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHNlbGVjdGVk
Tm9kZXMgPSB0aGlzLl9kYXlzQ29udGFpbmVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoQ2xhc3NO
YW1lcy5TZWxlY3RlZCk7CisgICAgZm9yICh2YXIgbm9kZSA9IHNlbGVjdGVkTm9kZXNbMF07IG5v
ZGU7IG5vZGUgPSBzZWxlY3RlZE5vZGVzWzBdKQorICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1v
dmUoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7Cit9OworCisvKioKICAqIEByZXR1cm4geyFib29sZWFu
fQogICovCiBEYXlzVGFibGUucHJvdG90eXBlLl9tYXliZVNldFByZXZpb3VzTW9udGggPSBmdW5j
dGlvbigpIHsKQEAgLTEwNjAsMjYgKzEwODcsMTYgQEAgRGF5c1RhYmxlLnByb3RvdHlwZS5faGFu
ZGxlRGF5Q2xpY2sgPSBmdW5jdGlvbihldmVudCkgewogICovCiBEYXlzVGFibGUucHJvdG90eXBl
Ll9oYW5kbGVNb3VzZU92ZXIgPSBmdW5jdGlvbihldmVudCkgewogICAgIHZhciBub2RlID0gZXZl
bnQudGFyZ2V0OwotICAgIGlmICh0aGlzLl9oYXNTZWxlY3Rpb24oKSkKLSAgICAgICAgdGhpcy5f
ZGF5c1t0aGlzLl95XVt0aGlzLl94XS5jbGFzc0xpc3QucmVtb3ZlKENsYXNzTmFtZXMuU2VsZWN0
ZWQpOwotICAgIGlmICghbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoQ2xhc3NOYW1lcy5EYXkpKSB7
Ci0gICAgICAgIHRoaXMuX3ggPSAtMTsKLSAgICAgICAgdGhpcy5feSA9IC0xOworICAgIGlmIChu
b2RlLmNsYXNzTGlzdC5jb250YWlucyhDbGFzc05hbWVzLlNlbGVjdGVkKSkKICAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBub2RlLmNsYXNzTGlzdC5hZGQoQ2xhc3NOYW1lcy5TZWxlY3RlZCk7
Ci0gICAgdGhpcy5feCA9IE51bWJlcihub2RlLmRhdGFzZXQucG9zaXRpb25YKTsKLSAgICB0aGlz
Ll95ID0gTnVtYmVyKG5vZGUuZGF0YXNldC5wb3NpdGlvblkpOworICAgIHRoaXMuX3NlbGVjdFJh
bmdlQ29udGFpbmluZ05vZGUobm9kZSk7CiB9OwogCiAvKioKICAqIEBwYXJhbSB7RXZlbnR9IGV2
ZW50CiAgKi8KIERheXNUYWJsZS5wcm90b3R5cGUuX2hhbmRsZU1vdXNlT3V0ID0gZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICBpZiAodGhpcy5faGFzU2VsZWN0aW9uKCkpCi0gICAgICAgIHRoaXMuX2Rh
eXNbdGhpcy5feV1bdGhpcy5feF0uY2xhc3NMaXN0LnJlbW92ZShDbGFzc05hbWVzLlNlbGVjdGVk
KTsKLSAgICB0aGlzLl94ID0gLTE7Ci0gICAgdGhpcy5feSA9IC0xOworICAgIHRoaXMuX2Rlc2Vs
ZWN0KCk7CiB9OwogCiAvKioKQEAgLTEwODcsOSArMTEwNCwxNCBAQCBEYXlzVGFibGUucHJvdG90
eXBlLl9oYW5kbGVNb3VzZU91dCA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgKi8KIERheXNUYWJsZS5w
cm90b3R5cGUuX2hhbmRsZUtleSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgdGhpcy5waWNrZXIu
bWF5YmVVcGRhdGVGb2N1c1N0eWxlKCk7Ci0gICAgdmFyIHggPSB0aGlzLl94OwotICAgIHZhciB5
ID0gdGhpcy5feTsKKyAgICB2YXIgeCA9IC0xOworICAgIHZhciB5ID0gLTE7CiAgICAgdmFyIGtl
eSA9IGV2ZW50LmtleUlkZW50aWZpZXI7CisgICAgdmFyIGZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5n
ZSA9IHRoaXMuX2ZpcnN0Tm9kZUluU2VsZWN0ZWRSYW5nZSgpOworICAgIGlmIChmaXJzdE5vZGVJ
blNlbGVjdGVkUmFuZ2UpIHsKKyAgICAgICAgeCA9IHBhcnNlSW50KGZpcnN0Tm9kZUluU2VsZWN0
ZWRSYW5nZS5kYXRhc2V0LnBvc2l0aW9uWCwgMTApOworICAgICAgICB5ID0gcGFyc2VJbnQoZmly
c3ROb2RlSW5TZWxlY3RlZFJhbmdlLmRhdGFzZXQucG9zaXRpb25ZLCAxMCk7CisgICAgfQogICAg
IGlmICghdGhpcy5faGFzU2VsZWN0aW9uKCkgJiYgKGtleSA9PSAiTGVmdCIgfHwga2V5ID09ICJV
cCIgfHwga2V5ID09ICJSaWdodCIgfHwga2V5ID09ICJEb3duIikpIHsKICAgICAgICAgLy8gUHV0
IHRoZSBzZWxlY3Rpb24gb24gYSBjZW50ZXIgY2VsbC4KICAgICAgICAgdGhpcy51cGRhdGVTZWxl
Y3Rpb24oZXZlbnQsIDMsIE1hdGguZmxvb3IoRGF5c1RhYmxlLl9XZWVrcyAvIDIgLSAxKSk7CkBA
IC0xMTU4LDcgKzExODAsNiBAQCBEYXlzVGFibGUucHJvdG90eXBlLl9oYW5kbGVLZXkgPSBmdW5j
dGlvbihldmVudCkgewogICAgICAgICB9CiAKICAgICB9IGVsc2UgaWYgKGtleSA9PSAiVSswMDU0
IikgeyAvLyAndCcKLSAgICAgICAgdGhpcy5fZGF5c1t0aGlzLl95XVt0aGlzLl94XS5jbGFzc0xp
c3QucmVtb3ZlKENsYXNzTmFtZXMuU2VsZWN0ZWQpOwogICAgICAgICB0aGlzLnNlbGVjdERhdGUo
bmV3IERhdGUoKSk7CiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICBl
dmVudC5wcmV2ZW50RGVmYXVsdCgpOwpAQCAtMTE3MSwxMyArMTE5Miw3IEBAIERheXNUYWJsZS5w
cm90b3R5cGUuX2hhbmRsZUtleSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgKiBAcGFyYW0geyFudW1i
ZXJ9IHkKICAqLwogRGF5c1RhYmxlLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24gPSBmdW5jdGlv
bihldmVudCwgeCwgeSkgewotICAgIGlmICh0aGlzLl9oYXNTZWxlY3Rpb24oKSkKLSAgICAgICAg
dGhpcy5fZGF5c1t0aGlzLl95XVt0aGlzLl94XS5jbGFzc0xpc3QucmVtb3ZlKENsYXNzTmFtZXMu
U2VsZWN0ZWQpOwotICAgIGlmICh4ID49IDAgJiYgeSA+PSAwKSB7Ci0gICAgICAgIHRoaXMuX2Rh
eXNbeV1beF0uY2xhc3NMaXN0LmFkZChDbGFzc05hbWVzLlNlbGVjdGVkKTsKLSAgICAgICAgdGhp
cy5feCA9IHg7Ci0gICAgICAgIHRoaXMuX3kgPSB5OwotICAgIH0KKyAgICB0aGlzLl9zZWxlY3RS
YW5nZUF0UG9zaXRpb24oeCwgeSk7CiAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAg
ZXZlbnQucHJldmVudERlZmF1bHQoKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>