<?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>40718</bug_id>
          
          <creation_ts>2010-06-16 10:34:23 -0700</creation_ts>
          <short_desc>[Qt] Platform plugin&apos;s multi-select does not take OptGroup into account</short_desc>
          <delta_ts>2010-06-19 08:53:53 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>luiz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238950</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-06-16 10:34:23 -0700</bug_when>
    <thetext>When QtWebKit and the example platform plugin are configured with NO_LISTBOX_RENDERING enabled, OptGroup elements are not taken into account. This results in the platform plugin reporting the wrong indexes as being selected.

In addition, Orbit does not have a callback when an element is selected or de-selected, so all the selections are reported when the dialog is closed.
WebCore is expecting the dialog to report state change, not selection, and that results in wrong selections.

To fix both problems, we need the initial selection data to be available to the platform plugin throughout the lifetime of the dialog, however the data is deleted as soon as the dialog is shown. 
(The data is created on the stack in SelectInputMethodWrapper::show()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239184</commentid>
    <comment_count>1</comment_count>
      <attachid>58953</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-06-16 19:25:12 -0700</bug_when>
    <thetext>Created attachment 58953
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239199</commentid>
    <comment_count>2</comment_count>
      <attachid>58953</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-16 21:14:31 -0700</bug_when>
    <thetext>Comment on attachment 58953
Patch.

WebKit/qt/examples/platformplugin/WebPlugin.h:56
 +      virtual bool isMultiple() const { return false; }
I think this is what the extension was supposed to be used for

WebKit/qt/examples/platformplugin/WebPlugin.cpp:117
 +      emit selectItem(idx, m_popup-&gt;isMultiple(), false);
isnt this used for single as well? 

WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:51
 +      SelectData* m_selectData;
isnt there a way to keep this away from the header?

WebCore/dom/SelectElement.cpp:92
 +  #if ENABLE(NO_LISTBOX_RENDERING)
We should really turn this into a runtime thing so that it can even consult the plugin to see if it (the plugin) implements multiselection (using the extension)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239365</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-06-17 06:54:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 58953 [details])
&gt; WebKit/qt/examples/platformplugin/WebPlugin.h:56
&gt;  +      virtual bool isMultiple() const { return false; }
&gt; I think this is what the extension was supposed to be used for
&gt; 
This virtual function is for checking if a specific select element is defined as multi or not, while the extension is to check if the plugin supports miltiple dialogs.

&gt; WebKit/qt/examples/platformplugin/WebPlugin.cpp:117
&gt;  +      emit selectItem(idx, m_popup-&gt;isMultiple(), false);
&gt; isnt this used for single as well? 
&gt; 
Yes, and when this is used for single select, we should pass false, not true for the second parameter. This is why I added the above virtual function :-)

&gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:51
&gt;  +      SelectData* m_selectData;
&gt; isnt there a way to keep this away from the header?
&gt; 
I am not sure how to do that without introducing a memory leak or a wrapper for this class.
Please keep in mind that the header is internal implementation of the sample plugin, I don&apos;t think it is a problem that this is in the header.

&gt; WebCore/dom/SelectElement.cpp:92
&gt;  +  #if ENABLE(NO_LISTBOX_RENDERING)
&gt; We should really turn this into a runtime thing so that it can even consult the plugin to see if it (the plugin) implements multiselection (using the extension)
I don&apos;t think there is a use case for supporting a full screen dialog for single select, and not for multi select. In small devices, we always want both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239366</commentid>
    <comment_count>4</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-06-17 06:59:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:51
&gt; &gt;  +      SelectData* m_selectData;
&gt; &gt; isnt there a way to keep this away from the header?
&gt; &gt; 
&gt; I am not sure how to do that without introducing a memory leak or a wrapper for this class.
&gt; Please keep in mind that the header is internal implementation of the sample plugin, I don&apos;t think it is a problem that this is in the header.

My bad, of course the header file is not part of the plugin, but in WebCoreSupport, but I still don&apos;t think this should be a problem, as The class definition is still hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239417</commentid>
    <comment_count>5</comment_count>
      <attachid>58953</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-06-17 09:24:28 -0700</bug_when>
    <thetext>Comment on attachment 58953
Patch.

WebCore/dom/SelectElement.cpp:93
 +      if (!data.multiple() &amp;&amp; data.size() &lt;= 1) {
Why is it needed?

WebCore/rendering/RenderMenuList.cpp:317
 +      if (allowMultiplySelections)
This is not right. The combobox behavior must be based on it being multiple or not and not on any parameters of this method. Parameters allowMultiplySelections and shift must be ignored if the combobox is not null.

I beleave that the right thing to do is:

diff --git a/WebCore/html/HTMLSelectElement.cpp b/WebCore/html/HTMLSelectElement.cpp
index 9aacbb6..2dcac59 100644
--- a/WebCore/html/HTMLSelectElement.cpp
+++ b/WebCore/html/HTMLSelectElement.cpp
@@ -107,7 +107,7 @@ void HTMLSelectElement::setSelectedIndexByUser(int optionIndex, bool deselect, b
 void HTMLSelectElement::listBoxSelectItem(int listIndex, bool allowMultiplySelections, bool shift, bool fireOnChangeNow)
 {
     if (!multiple())
-        setSelectedIndexByUser(listIndex, true, fireOnChangeNow);
+        setSelectedIndexByUser(listToOptionIndex(listIndex), true, fireOnChangeNow);
     else {
         updateSelectedState(m_data, this, listIndex, allowMultiplySelections, shift);
         if (fireOnChangeNow)
diff --git a/WebCore/rendering/RenderMenuList.cpp b/WebCore/rendering/RenderMenuList.cpp
index 871c10f..77fe3c2 100644
--- a/WebCore/rendering/RenderMenuList.cpp
+++ b/WebCore/rendering/RenderMenuList.cpp
@@ -314,7 +314,7 @@ void RenderMenuList::valueChanged(unsigned listIndex, bool fireOnChange)
 void RenderMenuList::listBoxSelectItem(int listIndex, bool allowMultiplySelections, bool shift, bool fireOnChangeNow)
 {
     SelectElement* select = toSelectElement(static_cast&lt;Element*&gt;(node()));
-    select-&gt;listBoxSelectItem(select-&gt;listToOptionIndex(listIndex), allowMultiplySelections, shift, fireOnChangeNow);
+    select-&gt;listBoxSelectItem(listIndex, allowMultiplySelections, shift, fireOnChangeNow);
 }

WebKit/qt/WebCoreSupport/QtPlatformPlugin.h:51
 +      SelectData* m_selectData;
You can just declare m_selectData as a pointer to QWebSelectData instead of a pointer to SelectData. No memory will leak because none of those classes own any memory that should be released. But please help me with one big mistake I made: I declared inline the QWebSelectData&apos;s destructor and it should be virtual instead. The same thing for QWebSelectMethod. Could you please fix it?

A virtual destructor should be added to class QWebNotificationData as well.

Shouldn&apos;t you check if m_selectData is not null and destroy it before creating a new one in show().

WebKit/qt/examples/platformplugin/WebPlugin.h:36
 +      virtual bool isMultiple() const = 0;
This is not needed. Parameters allowMultipleSelections and shift will be ignored if the combobox is not multiple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239525</commentid>
    <comment_count>6</comment_count>
      <attachid>59028</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-06-17 12:23:24 -0700</bug_when>
    <thetext>Created attachment 59028
Patch, updated based on comment #5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239531</commentid>
    <comment_count>7</comment_count>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2010-06-17 12:33:42 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240336</commentid>
    <comment_count>8</comment_count>
      <attachid>59028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-19 07:19:42 -0700</bug_when>
    <thetext>Comment on attachment 59028
Patch, updated based on comment #5

Clearing flags on attachment: 59028

Committed r61487: &lt;http://trac.webkit.org/changeset/61487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240337</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-19 07:19:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240346</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-19 08:53:53 -0700</bug_when>
    <thetext>The platform plugin is not part of the 2.0 release, so removing from the release branch inclusion bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58953</attachid>
            <date>2010-06-16 19:25:12 -0700</date>
            <delta_ts>2010-06-17 12:23:24 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>40718.patch</filename>
            <type>text/plain</type>
            <size>8673</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTI5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDYtMTYgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gUGxhdGZvcm0gcGx1Z2luJ3MgbXVsdGktc2VsZWN0IGRvZXMgbm90IHRha2UgT3B0R3Jv
dXAgaW50byBhY2NvdW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDcxOAorCisgICAgICAgIEluIG11bHRpLXNlbGVjdCBlbGVtZW50cywgb3B0Z3Jv
dXAgZWxlbWVudHMgYXJlIGNvdW50ZWQgaW4gdGhlIGluZGV4IGNhbGN1bGF0aW9uLAorICAgICAg
ICBidXQgaW4gc2luZ2xlLXNlbGVjdCB0aGV5IGFyZSBub3QuIEtlZXAgdGhlIHNhbWUgbG9naWMg
ZXZlbiB3aGVuIE5PX0xJU1RCT1hfUkVOREVSSU5HCisgICAgICAgIGlzIGVuYWJsZWQuCisgICAg
ICAgIEFkZGVkIHRlc3RzIHRvIGV4aXN0aW5nIG1hbnVhIHRlc3QsIGFzIHRlc3RpbmcgdGhpcyBy
ZXF1aXJlcyBhIHNwZWNpYWwgYnVpbGQsIGluIHdoaWNoCisgICAgICAgIE5PX0xJU1RCT1hfUkVO
REVSSU5HIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBkb20vU2VsZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RFbGVtZW50OjpzYXZlTGFzdFNlbGVjdGlvbik6CisgICAg
ICAgICogbWFudWFsLXRlc3RzL25vLWxpc3Rib3gtcmVuZGVyaW5nLmh0bWw6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
bnVMaXN0OjpsaXN0Qm94U2VsZWN0SXRlbSk6CisKIDIwMTAtMDYtMTYgIEFudG9uaW8gR29tZXMg
IDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gNjEyNjMpCisrKyBXZWJDb3Jl
L2RvbS9TZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksMTEgQEAg
dm9pZCBTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoU2VsZWN0RWxlbQogCiB2b2lkIFNlbGVjdEVs
ZW1lbnQ6OnNhdmVMYXN0U2VsZWN0aW9uKFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50
KiBlbGVtZW50KQogeworI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKKyAgICBpZiAo
IWRhdGEubXVsdGlwbGUoKSAmJiBkYXRhLnNpemUoKSA8PSAxKSB7CisjZWxzZQogICAgIGlmIChk
YXRhLnVzZXNNZW51TGlzdCgpKSB7CisjZW5kaWYKICAgICAgICAgZGF0YS5zZXRMYXN0T25DaGFu
Z2VJbmRleChzZWxlY3RlZEluZGV4KGRhdGEsIGVsZW1lbnQpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KSW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL25vLWxpc3Rib3gtcmVuZGVyaW5nLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvbm8tbGlzdGJveC1yZW5kZXJp
bmcuaHRtbAkocmV2aXNpb24gNjEyNjMpCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy9uby1saXN0
Ym94LXJlbmRlcmluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw0MCBAQCBBdCB0
aGUgcmlnaHQgY2VsbCB5b3Ugc2VlIGEgZGVzY3JpcHRpb24gCiAgICAgICAgIDx0ZD5jb21ib2Jv
eCBpbiBwcmV2aW9zIGNlbGwgc2hvdWxkIGhhdmUgbm8gc2VsZWN0ZWQgb3B0aW9uLjwvdGQ+CiAg
ICAgPC90cj4KICAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgPHNlbGVjdCBtdWx0aXBs
ZT4KKyAgICAgICAgPG9wdGdyb3VwIGxhYmVsPSIxIj48L29wdGdyb3VwPgorICAgICAgICA8b3B0
aW9uPjExPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTI8L29wdGlvbj4KKyAgICAgICAgPG9w
dGlvbj4xMzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPjE0PC9vcHRpb24+CisgICAgICAgIDxv
cHRncm91cCBsYWJlbD0iMiI+PC9vcHRncm91cD4KKyAgICAgICAgPG9wdGlvbj4yMTwvb3B0aW9u
PgorICAgICAgICA8b3B0aW9uPjIyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MjM8L29wdGlv
bj4KKyAgICAgICAgPG9wdGlvbj4yNDwvb3B0aW9uPgorICAgICAgICA8L3NlbGVjdD4KKyAgICAg
ICAgPC90ZD4KKyAgICAgICAgPHRkPmNvbWJvYm94IGluIHByZXZpb3MgY2VsbCBzaG91bGQgaGFu
ZGxlIG9wdGdyb3VwIGNvcnJlY3RseS48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAg
ICA8dGQ+CisgICAgICAgIDxzZWxlY3Q+CisgICAgICAgIDxvcHRncm91cCBsYWJlbD0iMSI+PC9v
cHRncm91cD4KKyAgICAgICAgPG9wdGlvbj4xMTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPjEy
PC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTM8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4x
NDwvb3B0aW9uPgorICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IjIiPjwvb3B0Z3JvdXA+CisgICAg
ICAgIDxvcHRpb24+MjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4yMjwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uPjIzPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MjQ8L29wdGlvbj4KKyAg
ICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD5jb21ib2JveCBpbiBw
cmV2aW9zIGNlbGwgc2hvdWxkIGhhbmRsZSBvcHRncm91cCBjb3JyZWN0bHkuPC90ZD4KKyAgICA8
L3RyPgorICAgIDx0cj4KICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJyZXNldCI8L3RkPgogICAg
ICAgICA8dGQ+YWZ0ZXIgcHJlc3NpbmcgdGhpcyBidXR0b24gYWxsIHRoZSBjb21ibyBib3hlcyBz
aG91bGQgZ28gYmFjayB0byB0aGUgc3RhdGUgZGlzY3JpYmVkIGFib3ZlLjwvdGQ+CiAgICAgPC90
cj4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAJKHJldmlzaW9uIDYxMjYz
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTQsNyArMzE0LDEwIEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnZhbHVlQ2hhbmdlZCh1
bnNpZ24KIHZvaWQgUmVuZGVyTWVudUxpc3Q6Omxpc3RCb3hTZWxlY3RJdGVtKGludCBsaXN0SW5k
ZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJvb2wgZmlyZU9u
Q2hhbmdlTm93KQogewogICAgIFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVu
dChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7Ci0gICAgc2VsZWN0LT5saXN0Qm94U2Vs
ZWN0SXRlbShzZWxlY3QtPmxpc3RUb09wdGlvbkluZGV4KGxpc3RJbmRleCksIGFsbG93TXVsdGlw
bHlTZWxlY3Rpb25zLCBzaGlmdCwgZmlyZU9uQ2hhbmdlTm93KTsKKyAgICBpZiAoYWxsb3dNdWx0
aXBseVNlbGVjdGlvbnMpCisgICAgICAgIHNlbGVjdC0+bGlzdEJveFNlbGVjdEl0ZW0obGlzdElu
ZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQsIGZpcmVPbkNoYW5nZU5vdyk7Cisg
ICAgZWxzZQorICAgICAgICBzZWxlY3QtPmxpc3RCb3hTZWxlY3RJdGVtKHNlbGVjdC0+bGlzdFRv
T3B0aW9uSW5kZXgobGlzdEluZGV4KSwgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIHNoaWZ0LCBm
aXJlT25DaGFuZ2VOb3cpOwogfQogCiBib29sIFJlbmRlck1lbnVMaXN0OjptdWx0aXBsZSgpCklu
ZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYxMjk5KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA2LTE2ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9u
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbUXRdIFBsYXRmb3JtIHBsdWdpbidzIG11bHRpLXNlbGVjdCBkb2VzIG5vdCB0YWtlIE9w
dEdyb3VwIGludG8gYWNjb3VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDA3MTgKKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBTZWxlY3REYXRhIGlz
IHZhbGlkIHRocm91Z2hvdXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBkaWFsb2cuCisgICAgICAgIFRo
aXMgaXMgbW9zdGx5IGltcG9ydGFudCBmb3IgdGhlIE9yYnQgYmFzZWQgcGx1Z2luLgorICAgICAg
ICBBZGRlZCBhIG1ldGhkIGlzTXVsdGlwbGUsIGJlY2F1c2Ugb3B0Z3JvdXAgZWxlbWVudHMgYXJl
IGhhbmRsZWQgZGlmZmVyZW50bHkKKyAgICAgICAgZm9yIG11bHRpLXNlbGVjdCBhbmQgc2luZ2xl
LXNlbGVjdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyOjpTZWxlY3RJbnB1
dE1ldGhvZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFw
cGVyOjp+U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dElucHV0TWV0aG9kV3JhcHBlcjo6c2hvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUXRQ
bGF0Zm9ybVBsdWdpbi5oOgorICAgICAgICAqIGV4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYlBs
dWdpbi5jcHA6CisgICAgICAgIChXZWJQb3B1cDo6aXRlbUNsaWNrZWQpOgorICAgICAgICAqIGV4
YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYlBsdWdpbi5oOgorICAgICAgICAoU2luZ2xlU2VsZWN0
aW9uUG9wdXA6OmlzTXVsdGlwbGUpOgorICAgICAgICAoTXVsdGlwbGVTZWxlY3Rpb25Qb3B1cDo6
aXNNdWx0aXBsZSk6CisKIDIwMTAtMDYtMTYgIEFsZXhpcyBNZW5hcmQgPGFsZXhpcy5tZW5hcmRA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDog
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmNwcAkocmV2aXNp
b24gNjEyNjMpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE2ICs1NiwyMiBAQCBRV2ViU2VsZWN0RGF0YTo6SXRl
bVR5cGUgU2VsZWN0RGF0YTo6aXRlCiAKIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6U2VsZWN0
SW5wdXRNZXRob2RXcmFwcGVyKFFXZWJTZWxlY3RNZXRob2QqIHBsdWdpbikKICAgICA6IG1fcGx1
Z2luKHBsdWdpbikKKyAgICAsIG1fc2VsZWN0RGF0YSgwKQogewogICAgIG1fcGx1Z2luLT5zZXRQ
YXJlbnQodGhpcyk7CiAgICAgY29ubmVjdChtX3BsdWdpbiwgU0lHTkFMKGRpZEhpZGUoKSksIHRo
aXMsIFNMT1QoZGlkSGlkZSgpKSk7CiAgICAgY29ubmVjdChtX3BsdWdpbiwgU0lHTkFMKHNlbGVj
dEl0ZW0oaW50LCBib29sLCBib29sKSksIHRoaXMsIFNMT1Qoc2VsZWN0SXRlbShpbnQsIGJvb2ws
IGJvb2wpKSk7CiB9CiAKK1NlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6flNlbGVjdElucHV0TWV0
aG9kV3JhcHBlcigpCit7CisgICAgZGVsZXRlIG1fc2VsZWN0RGF0YTsKK30KKwogdm9pZCBTZWxl
Y3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNob3coKQogewotICAgIFNlbGVjdERhdGEgZGF0YSh0aGlz
KTsKLSAgICBtX3BsdWdpbi0+c2hvdyhkYXRhKTsKKyAgICBtX3NlbGVjdERhdGEgPSBuZXcgU2Vs
ZWN0RGF0YSh0aGlzKTsKKyAgICBtX3BsdWdpbi0+c2hvdygqbV9zZWxlY3REYXRhKTsKIH0KIAog
dm9pZCBTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OmhpZGUoKQpJbmRleDogV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oCShyZXZpc2lvbiA2MTI2MykKKysrIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDEwICszMSwxMyBAQCBjbGFzcyBRV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNlbGVjdERhdGE7CisKIGNsYXNzIFNlbGVjdElu
cHV0TWV0aG9kV3JhcHBlciA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUXRBYnN0cmFjdFdlYlBv
cHVwIHsKICAgICBRX09CSkVDVAogcHVibGljOgogICAgIFNlbGVjdElucHV0TWV0aG9kV3JhcHBl
cihRV2ViU2VsZWN0TWV0aG9kKiBwbHVnaW4pOworICAgIH5TZWxlY3RJbnB1dE1ldGhvZFdyYXBw
ZXIoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAgICAgdmlydHVhbCB2b2lkIGhpZGUo
KTsKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZSBRX1NMT1RTOgogCiBwcml2YXRlOgogICAgIFFX
ZWJTZWxlY3RNZXRob2QqIG1fcGx1Z2luOworICAgIFNlbGVjdERhdGEqIG1fc2VsZWN0RGF0YTsK
IH07CiAKIGNsYXNzIFF0UGxhdGZvcm1QbHVnaW4gewpJbmRleDogV2ViS2l0L3F0L2V4YW1wbGVz
L3BsYXRmb3JtcGx1Z2luL1dlYlBsdWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L2V4
YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYlBsdWdpbi5jcHAJKHJldmlzaW9uIDYxMjYzKQorKysg
V2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYlBsdWdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFdlYlBvcHVwOjpwb3B1cENsb3NlZCgpCiAK
IHZvaWQgV2ViUG9wdXA6Oml0ZW1DbGlja2VkKGludCBpZHgpCiB7Ci0gICAgZW1pdCBzZWxlY3RJ
dGVtKGlkeCwgdHJ1ZSwgZmFsc2UpOworICAgIGVtaXQgc2VsZWN0SXRlbShpZHgsIG1fcG9wdXAt
PmlzTXVsdGlwbGUoKSwgZmFsc2UpOwogfQogCiBTaW5nbGVTZWxlY3Rpb25Qb3B1cDo6U2luZ2xl
U2VsZWN0aW9uUG9wdXAoY29uc3QgUVdlYlNlbGVjdERhdGEmIGRhdGEpCkBAIC0yMjEsNCArMjIx
LDQgQEAgYm9vbCBXZWJQbHVnaW46OnN1cHBvcnRzRXh0ZW5zaW9uKEV4dGVucwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotUV9FWFBPUlRfUExVR0lOMihxd2Vic2VsZWN0aW0sIFdlYlBsdWdpbikK
K1FfRVhQT1JUX1BMVUdJTjIocGxhdGZvcm1wbHVnaW4sIFdlYlBsdWdpbikKSW5kZXg6IFdlYktp
dC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJQbHVnaW4uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vV2ViUGx1Z2luLmgJKHJldmlzaW9uIDYx
MjYzKQorKysgV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYlBsdWdpbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIGNsYXNzIFBvcHVwIDogcHVibGljIFFEaWFs
b2cgewogcHVibGljOgogICAgIFBvcHVwKGNvbnN0IFFXZWJTZWxlY3REYXRhJiBkYXRhKSA6IG1f
ZGF0YShkYXRhKSB7IHNldE1vZGFsKHRydWUpOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdWx0
aXBsZSgpIGNvbnN0ID0gMDsKKwogc2lnbmFsczoKICAgICB2b2lkIGl0ZW1DbGlja2VkKGludCBp
ZHgpOwogCkBAIC01MSw2ICs1Myw3IEBAIGNsYXNzIFNpbmdsZVNlbGVjdGlvblBvcHVwIDogcHVi
bGljIFBvcHUKICAgICBRX09CSkVDVAogcHVibGljOgogICAgIFNpbmdsZVNlbGVjdGlvblBvcHVw
KGNvbnN0IFFXZWJTZWxlY3REYXRhJiBkYXRhKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdWx0aXBs
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiAKQEAgLTU4LDYgKzYxLDcgQEAgY2xh
c3MgTXVsdGlwbGVTZWxlY3Rpb25Qb3B1cCA6IHB1YmxpYyBQbwogICAgIFFfT0JKRUNUCiBwdWJs
aWM6CiAgICAgTXVsdGlwbGVTZWxlY3Rpb25Qb3B1cChjb25zdCBRV2ViU2VsZWN0RGF0YSYgZGF0
YSk7CisgICAgdmlydHVhbCBib29sIGlzTXVsdGlwbGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiB9OwogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59028</attachid>
            <date>2010-06-17 12:23:24 -0700</date>
            <delta_ts>2010-06-19 07:19:42 -0700</delta_ts>
            <desc>Patch, updated based on comment #5</desc>
            <filename>40718.patch</filename>
            <type>text/plain</type>
            <size>9623</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTMzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDYtMTcgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gUGxhdGZvcm0gcGx1Z2luJ3MgbXVsdGktc2VsZWN0IGRvZXMgbm90IHRha2UgT3B0R3Jv
dXAgaW50byBhY2NvdW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDcxOAorCisgICAgICAgIEluIG11bHRpLXNlbGVjdCBlbGVtZW50cywgb3B0Z3Jv
dXAgZWxlbWVudHMgYXJlIGNvdW50ZWQgaW4gdGhlIGluZGV4IGNhbGN1bGF0aW9uLAorICAgICAg
ICBidXQgaW4gc2luZ2xlLXNlbGVjdCB0aGV5IGFyZSBub3QuIEtlZXAgdGhlIHNhbWUgbG9naWMg
ZXZlbiB3aGVuIE5PX0xJU1RCT1hfUkVOREVSSU5HCisgICAgICAgIGlzIGVuYWJsZWQuCisgICAg
ICAgIEFkZGVkIHRlc3RzIHRvIHRoZSBleGlzdGluZyBtYW51YWwgdGVzdCwgYXMgdGVzdGluZyB0
aGlzIHJlcXVpcmVzIGEgc3BlY2lhbCBidWlsZCwgaW4gd2hpY2gKKyAgICAgICAgTk9fTElTVEJP
WF9SRU5ERVJJTkcgaXMgZW5hYmxlZC4KKworICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxl
Y3RJdGVtKToKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvbm8tbGlzdGJveC1yZW5kZXJpbmcuaHRt
bDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVudUxpc3Q6Omxpc3RCb3hTZWxlY3RJdGVtKToKKwogMjAxMC0wNi0xNyAg
S2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2MTI2MykKKysrIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRT
ZWxlY3RlZEluZGV4CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbShp
bnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0LCBi
b29sIGZpcmVPbkNoYW5nZU5vdykKIHsKICAgICBpZiAoIW11bHRpcGxlKCkpCi0gICAgICAgIHNl
dFNlbGVjdGVkSW5kZXhCeVVzZXIobGlzdEluZGV4LCB0cnVlLCBmaXJlT25DaGFuZ2VOb3cpOwor
ICAgICAgICBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGxpc3RUb09wdGlvbkluZGV4KGxpc3RJbmRl
eCksIHRydWUsIGZpcmVPbkNoYW5nZU5vdyk7CiAgICAgZWxzZSB7CiAgICAgICAgIHVwZGF0ZVNl
bGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBsaXN0SW5kZXgsIGFsbG93TXVsdGlwbHlTZWxlY3Rp
b25zLCBzaGlmdCk7CiAgICAgICAgIGlmIChmaXJlT25DaGFuZ2VOb3cpCkluZGV4OiBXZWJDb3Jl
L21hbnVhbC10ZXN0cy9uby1saXN0Ym94LXJlbmRlcmluZy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvbWFudWFsLXRlc3RzL25vLWxpc3Rib3gtcmVuZGVyaW5nLmh0bWwJKHJldmlzaW9uIDYx
MjYzKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvbm8tbGlzdGJveC1yZW5kZXJpbmcuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNDAgQEAgQXQgdGhlIHJpZ2h0IGNlbGwgeW91IHNl
ZSBhIGRlc2NyaXB0aW9uIAogICAgICAgICA8dGQ+Y29tYm9ib3ggaW4gcHJldmlvcyBjZWxsIHNo
b3VsZCBoYXZlIG5vIHNlbGVjdGVkIG9wdGlvbi48L3RkPgogICAgIDwvdHI+CiAgICAgPHRyPgor
ICAgICAgICA8dGQ+CisgICAgICAgIDxzZWxlY3QgbXVsdGlwbGU+CisgICAgICAgIDxvcHRncm91
cCBsYWJlbD0iMSI+PC9vcHRncm91cD4KKyAgICAgICAgPG9wdGlvbj4xMTwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uPjEyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTM8L29wdGlvbj4KKyAg
ICAgICAgPG9wdGlvbj4xNDwvb3B0aW9uPgorICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IjIiPjwv
b3B0Z3JvdXA+CisgICAgICAgIDxvcHRpb24+MjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4y
Mjwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPjIzPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+
MjQ8L29wdGlvbj4KKyAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0
ZD5jb21ib2JveCBpbiBwcmV2aW9zIGNlbGwgc2hvdWxkIGhhbmRsZSBvcHRncm91cCBjb3JyZWN0
bHkuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8c2Vs
ZWN0PgorICAgICAgICA8b3B0Z3JvdXAgbGFiZWw9IjEiPjwvb3B0Z3JvdXA+CisgICAgICAgIDxv
cHRpb24+MTE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4xMjwvb3B0aW9uPgorICAgICAgICA8
b3B0aW9uPjEzPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTQ8L29wdGlvbj4KKyAgICAgICAg
PG9wdGdyb3VwIGxhYmVsPSIyIj48L29wdGdyb3VwPgorICAgICAgICA8b3B0aW9uPjIxPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24+MjI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4yMzwvb3B0
aW9uPgorICAgICAgICA8b3B0aW9uPjI0PC9vcHRpb24+CisgICAgICAgIDwvc2VsZWN0PgorICAg
ICAgICA8L3RkPgorICAgICAgICA8dGQ+Y29tYm9ib3ggaW4gcHJldmlvcyBjZWxsIHNob3VsZCBo
YW5kbGUgb3B0Z3JvdXAgY29ycmVjdGx5LjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CiAgICAg
ICAgIDx0ZD48aW5wdXQgdHlwZT0icmVzZXQiPC90ZD4KICAgICAgICAgPHRkPmFmdGVyIHByZXNz
aW5nIHRoaXMgYnV0dG9uIGFsbCB0aGUgY29tYm8gYm94ZXMgc2hvdWxkIGdvIGJhY2sgdG8gdGhl
IHN0YXRlIGRpc2NyaWJlZCBhYm92ZS48L3RkPgogICAgIDwvdHI+CkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCShyZXZpc2lvbiA2MTI2MykKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0LDcgKzMxNCw3IEBA
IHZvaWQgUmVuZGVyTWVudUxpc3Q6OnZhbHVlQ2hhbmdlZCh1bnNpZ24KIHZvaWQgUmVuZGVyTWVu
dUxpc3Q6Omxpc3RCb3hTZWxlY3RJdGVtKGludCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBs
eVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJvb2wgZmlyZU9uQ2hhbmdlTm93KQogewogICAgIFNl
bGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50
Kj4obm9kZSgpKSk7Ci0gICAgc2VsZWN0LT5saXN0Qm94U2VsZWN0SXRlbShzZWxlY3QtPmxpc3RU
b09wdGlvbkluZGV4KGxpc3RJbmRleCksIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBzaGlmdCwg
ZmlyZU9uQ2hhbmdlTm93KTsKKyAgICBzZWxlY3QtPmxpc3RCb3hTZWxlY3RJdGVtKGxpc3RJbmRl
eCwgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIHNoaWZ0LCBmaXJlT25DaGFuZ2VOb3cpOwogfQog
CiBib29sIFJlbmRlck1lbnVMaXN0OjptdWx0aXBsZSgpCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDYxMzM5KQor
KysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisy
MDEwLTA2LTE3ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFBsYXRmb3JtIHBs
dWdpbidzIG11bHRpLXNlbGVjdCBkb2VzIG5vdCB0YWtlIE9wdEdyb3VwIGludG8gYWNjb3VudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA3MTgKKwor
ICAgICAgICBNYWtlIHN1cmUgdGhhdCBTZWxlY3REYXRhIGlzIHZhbGlkIHRocm91Z2hvdXQgdGhl
IGxpZmV0aW1lIG9mIHRoZSBkaWFsb2cuCisgICAgICAgIFRoaXMgaXMgbW9zdGx5IGltcG9ydGFu
dCBmb3IgdGhlIE9yYnQgYmFzZWQgcGx1Z2luLgorICAgICAgICBBZGRlZCB2aXJ0dWFsIGRlc2N0
cnVjdG9ycyB3aGVyZSB0aGV5IHdlcmUgbWlzc2luZy4KKworICAgICAgICAqIEFwaS9xd2Via2l0
cGxhdGZvcm1wbHVnaW4uaDoKKyAgICAgICAgKFFXZWJTZWxlY3REYXRhOjp+UVdlYlNlbGVjdERh
dGEpOgorICAgICAgICAoUVdlYlNlbGVjdE1ldGhvZDo6flFXZWJTZWxlY3RNZXRob2QpOgorICAg
ICAgICAoUVdlYk5vdGlmaWNhdGlvbkRhdGE6On5RV2ViTm90aWZpY2F0aW9uRGF0YSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OlNlbGVjdElucHV0TWV0aG9kV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6On5TZWxlY3RJbnB1
dE1ldGhvZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0SW5wdXRNZXRob2RXcmFw
cGVyOjpzaG93KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmg6
CisgICAgICAgICogZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vV2ViUGx1Z2luLmNwcDoKKyAgICAg
ICAgKiBleGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaDoKKyAg
ICAgICAgKFFXZWJTZWxlY3REYXRhOjp+UVdlYlNlbGVjdERhdGEpOgorICAgICAgICAoUVdlYlNl
bGVjdE1ldGhvZDo6flFXZWJTZWxlY3RNZXRob2QpOgorICAgICAgICAoUVdlYk5vdGlmaWNhdGlv
bkRhdGE6On5RV2ViTm90aWZpY2F0aW9uRGF0YSk6CisKIDIwMTAtMDYtMTcgIEFsZXhpcyBNZW5h
cmQgIDxhbGV4aXMubWVuYXJkQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmtpdHBsYXRm
b3JtcGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Via2l0cGxhdGZvcm1w
bHVnaW4uaAkocmV2aXNpb24gNjEyNjMpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9y
bXBsdWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBjbGFzcyBRV2ViU2Vs
ZWN0RGF0YQogewogcHVibGljOgotICAgIGlubGluZSB+UVdlYlNlbGVjdERhdGEoKSB7fQorICAg
IHZpcnR1YWwgflFXZWJTZWxlY3REYXRhKCkge30KIAogICAgIGVudW0gSXRlbVR5cGUgeyBPcHRp
b24sIEdyb3VwLCBTZXBhcmF0b3IgfTsKIApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBRV2ViU2Vs
ZWN0TWV0aG9kIDogcHVibGljIFFPYmplY3QKIHsKICAgICBRX09CSkVDVAogcHVibGljOgotICAg
IGlubGluZSB+UVdlYlNlbGVjdE1ldGhvZCgpIHt9CisgICAgdmlydHVhbCB+UVdlYlNlbGVjdE1l
dGhvZCgpIHt9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBRV2ViU2VsZWN0RGF0YSYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKQEAgLTYxLDYgKzYxLDggQEAgUV9T
SUdOQUxTOgogY2xhc3MgUVdlYk5vdGlmaWNhdGlvbkRhdGEKIHsKIHB1YmxpYzoKKyAgICB2aXJ0
dWFsIH5RV2ViTm90aWZpY2F0aW9uRGF0YSgpIHt9CisKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJp
bmcgdGl0bGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBRU3RyaW5nIG1lc3NhZ2Uo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBRQnl0ZUFycmF5IGljb25EYXRhKCkgY29u
c3QgPSAwOwpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1
Z2luLmNwcAkocmV2aXNpb24gNjEyNjMpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQ
bGF0Zm9ybVBsdWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE2ICs1NiwyNCBAQCBRV2Vi
U2VsZWN0RGF0YTo6SXRlbVR5cGUgU2VsZWN0RGF0YTo6aXRlCiAKIFNlbGVjdElucHV0TWV0aG9k
V3JhcHBlcjo6U2VsZWN0SW5wdXRNZXRob2RXcmFwcGVyKFFXZWJTZWxlY3RNZXRob2QqIHBsdWdp
bikKICAgICA6IG1fcGx1Z2luKHBsdWdpbikKKyAgICAsIG1fc2VsZWN0RGF0YSgwKQogewogICAg
IG1fcGx1Z2luLT5zZXRQYXJlbnQodGhpcyk7CiAgICAgY29ubmVjdChtX3BsdWdpbiwgU0lHTkFM
KGRpZEhpZGUoKSksIHRoaXMsIFNMT1QoZGlkSGlkZSgpKSk7CiAgICAgY29ubmVjdChtX3BsdWdp
biwgU0lHTkFMKHNlbGVjdEl0ZW0oaW50LCBib29sLCBib29sKSksIHRoaXMsIFNMT1Qoc2VsZWN0
SXRlbShpbnQsIGJvb2wsIGJvb2wpKSk7CiB9CiAKK1NlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6
flNlbGVjdElucHV0TWV0aG9kV3JhcHBlcigpCit7CisgICAgZGVsZXRlIG1fc2VsZWN0RGF0YTsK
K30KKwogdm9pZCBTZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXI6OnNob3coKQogewotICAgIFNlbGVj
dERhdGEgZGF0YSh0aGlzKTsKLSAgICBtX3BsdWdpbi0+c2hvdyhkYXRhKTsKKyAgICBpZiAobV9z
ZWxlY3REYXRhKQorICAgICAgICBkZWxldGUgbV9zZWxlY3REYXRhOworICAgIG1fc2VsZWN0RGF0
YSA9IG5ldyBTZWxlY3REYXRhKHRoaXMpOworICAgIG1fcGx1Z2luLT5zaG93KCptX3NlbGVjdERh
dGEpOwogfQogCiB2b2lkIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcjo6aGlkZSgpCkluZGV4OiBX
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdFBsYXRmb3JtUGx1Z2luLmgJKHJldmlzaW9uIDYx
MjYzKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0UGxhdGZvcm1QbHVnaW4uaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogY2xhc3MgUVdlYlNlbGVjdE1ldGhvZDsKIGNs
YXNzIFFXZWJLaXRQbGF0Zm9ybVBsdWdpbjsKIGNsYXNzIFFXZWJOb3RpZmljYXRpb25QcmVzZW50
ZXI7CitjbGFzcyBRV2ViU2VsZWN0RGF0YTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
NSw2ICszNiw3IEBAIGNsYXNzIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlciA6IHB1YmxpYyAKICAg
ICBRX09CSkVDVAogcHVibGljOgogICAgIFNlbGVjdElucHV0TWV0aG9kV3JhcHBlcihRV2ViU2Vs
ZWN0TWV0aG9kKiBwbHVnaW4pOworICAgIH5TZWxlY3RJbnB1dE1ldGhvZFdyYXBwZXIoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKQEAgLTQ1
LDYgKzQ3LDcgQEAgcHJpdmF0ZSBRX1NMT1RTOgogCiBwcml2YXRlOgogICAgIFFXZWJTZWxlY3RN
ZXRob2QqIG1fcGx1Z2luOworICAgIFFXZWJTZWxlY3REYXRhKiBtX3NlbGVjdERhdGE7CiB9Owog
CiBjbGFzcyBRdFBsYXRmb3JtUGx1Z2luIHsKSW5kZXg6IFdlYktpdC9xdC9leGFtcGxlcy9wbGF0
Zm9ybXBsdWdpbi9XZWJQbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9leGFtcGxl
cy9wbGF0Zm9ybXBsdWdpbi9XZWJQbHVnaW4uY3BwCShyZXZpc2lvbiA2MTI2MykKKysrIFdlYktp
dC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJQbHVnaW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjEsNCArMjIxLDQgQEAgYm9vbCBXZWJQbHVnaW46OnN1cHBvcnRzRXh0ZW5zaW9uKEV4
dGVucwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUV9FWFBPUlRfUExVR0lOMihxd2Vic2VsZWN0
aW0sIFdlYlBsdWdpbikKK1FfRVhQT1JUX1BMVUdJTjIocGxhdGZvcm1wbHVnaW4sIFdlYlBsdWdp
bikKSW5kZXg6IFdlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZv
cm1wbHVnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVn
aW4vcXdlYmtpdHBsYXRmb3JtcGx1Z2luLmgJKHJldmlzaW9uIDYxMjYzKQorKysgV2ViS2l0L3F0
L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBjbGFzcyBRV2ViU2VsZWN0RGF0YQogewogcHVibGlj
OgotICAgIGlubGluZSB+UVdlYlNlbGVjdERhdGEoKSB7fQorICAgIHZpcnR1YWwgflFXZWJTZWxl
Y3REYXRhKCkge30KIAogICAgIGVudW0gSXRlbVR5cGUgeyBPcHRpb24sIEdyb3VwLCBTZXBhcmF0
b3IgfTsKIApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBRV2ViU2VsZWN0TWV0aG9kIDogcHVibGlj
IFFPYmplY3QKIHsKICAgICBRX09CSkVDVAogcHVibGljOgotICAgIGlubGluZSB+UVdlYlNlbGVj
dE1ldGhvZCgpIHt9CisgICAgdmlydHVhbCB+UVdlYlNlbGVjdE1ldGhvZCgpIHt9CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBRV2ViU2VsZWN0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaGlkZSgpID0gMDsKQEAgLTYxLDYgKzYxLDggQEAgUV9TSUdOQUxTOgogY2xhc3MgUVdl
Yk5vdGlmaWNhdGlvbkRhdGEKIHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5RV2ViTm90aWZpY2F0
aW9uRGF0YSgpIHt9CisKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcgdGl0bGUoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBjb25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBjb25zdCBRQnl0ZUFycmF5IGljb25EYXRhKCkgY29uc3QgPSAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>