<?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>47129</bug_id>
          
          <creation_ts>2010-10-04 16:04:25 -0700</creation_ts>
          <short_desc>PluginDocumentParser::pluginWidgetFromDocument should look for &quot;embed&quot; element rather than just use the first child</short_desc>
          <delta_ts>2010-10-06 18:43:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>sanjeevr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289254</commentid>
    <comment_count>0</comment_count>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-04 16:04:25 -0700</bug_when>
    <thetext>PluginDocumentParser::pluginWidgetFromDocument assumes that the &quot;embed&quot; element is the first child of the body. However, for Chromium, an extension can modify the DOM to add other elements before the &quot;embed&quot; element. The method should search for the &quot;embed&quot; element rather than use the first child. Working on a fix for this. This causes the Chromium bug (http://crbug.com/51342).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289297</commentid>
    <comment_count>1</comment_count>
      <attachid>69719</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-04 16:44:35 -0700</bug_when>
    <thetext>Created attachment 69719
Patch for the fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289311</commentid>
    <comment_count>2</comment_count>
      <attachid>69719</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-10-04 17:04:09 -0700</bug_when>
    <thetext>Comment on attachment 69719
Patch for the fix

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

&gt; WebCore/html/PluginDocument.cpp:-87
&gt; -#if ENABLE(OFFLINE_WEB_APPLICATIONS)

oops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289326</commentid>
    <comment_count>3</comment_count>
      <attachid>69726</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-04 17:28:46 -0700</bug_when>
    <thetext>Created attachment 69726
Updated patch with unrelated changes removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289341</commentid>
    <comment_count>4</comment_count>
      <attachid>69727</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-04 18:30:58 -0700</bug_when>
    <thetext>Created attachment 69727
Fixed spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289499</commentid>
    <comment_count>5</comment_count>
      <attachid>69727</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 01:43:00 -0700</bug_when>
    <thetext>Comment on attachment 69727
Fixed spaces.

Clearing flags on attachment: 69727

Committed r69097: &lt;http://trac.webkit.org/changeset/69097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289500</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 01:43:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289782</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-05 11:42:29 -0700</bug_when>
    <thetext>There is a discussion of this change on webkit-changes mailing list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289942</commentid>
    <comment_count>8</comment_count>
      <attachid>69856</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-05 15:51:32 -0700</bug_when>
    <thetext>Created attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289946</commentid>
    <comment_count>9</comment_count>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-05 15:55:05 -0700</bug_when>
    <thetext>Uploaded new implementation as per discussion on webkit-changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289949</commentid>
    <comment_count>10</comment_count>
      <attachid>69856</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-10-05 15:59:57 -0700</bug_when>
    <thetext>Comment on attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.

This does seem much better.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289956</commentid>
    <comment_count>11</comment_count>
      <attachid>69856</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-05 16:07:26 -0700</bug_when>
    <thetext>Comment on attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.

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

&gt; WebCore/html/PluginDocument.h:60
&gt; +    RefPtr&lt;Node&gt; m_pluginNode;

Is it okay for a Document to hold a reference to a node like this? Won’t it create a ref cycle and cause a leak?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289960</commentid>
    <comment_count>12</comment_count>
      <attachid>69856</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 16:15:21 -0700</bug_when>
    <thetext>Comment on attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.

Clearing flags on attachment: 69856

Committed r69159: &lt;http://trac.webkit.org/changeset/69159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289961</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 16:15:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289990</commentid>
    <comment_count>14</comment_count>
      <attachid>69856</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-05 17:33:05 -0700</bug_when>
    <thetext>Comment on attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.

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

&gt;&gt; WebCore/html/PluginDocument.h:60
&gt;&gt; +    RefPtr&lt;Node&gt; m_pluginNode;
&gt; 
&gt; Is it okay for a Document to hold a reference to a node like this? Won’t it create a ref cycle and cause a leak?

Yeah I was concerned about that too. But I was also afraid of holding on to a pointer that was no longer valid. I did some debugging and found that it does indeed cause a ref cycle. I can change it to Node* but I am not sure when to clear this variable. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289995</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-10-05 17:36:47 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 69856 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69856&amp;action=review
&gt; 
&gt; &gt;&gt; WebCore/html/PluginDocument.h:60
&gt; &gt;&gt; +    RefPtr&lt;Node&gt; m_pluginNode;
&gt; &gt; 
&gt; &gt; Is it okay for a Document to hold a reference to a node like this? Won’t it create a ref cycle and cause a leak?
&gt; 
&gt; Yeah I was concerned about that too. But I was also afraid of holding on to a pointer that was no longer valid. I did some debugging and found that it does indeed cause a ref cycle. I can change it to Node* but I am not sure when to clear this variable. Any suggestions?

I asked and was told that this does not cause a leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290004</commentid>
    <comment_count>16</comment_count>
      <attachid>69856</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-05 17:54:46 -0700</bug_when>
    <thetext>Comment on attachment 69856
New implementation that relies on PluginDocument remembering the plugin node.

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

&gt;&gt;&gt;&gt; WebCore/html/PluginDocument.h:60
&gt;&gt;&gt;&gt; +    RefPtr&lt;Node&gt; m_pluginNode;
&gt;&gt;&gt; 
&gt;&gt;&gt; Is it okay for a Document to hold a reference to a node like this? Won’t it create a ref cycle and cause a leak?
&gt;&gt; 
&gt;&gt; Yeah I was concerned about that too. But I was also afraid of holding on to a pointer that was no longer valid. I did some debugging and found that it does indeed cause a ref cycle. I can change it to Node* but I am not sure when to clear this variable. Any suggestions?
&gt; 
&gt; I asked and was told that this does not cause a leak.

Hmm, I did some debugging on Windows Chromium and it did seem to cause a leak. Maybe I missed something. I will debug some more and update this bug. Thanks for the help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290698</commentid>
    <comment_count>17</comment_count>
      <attachid>70014</attachid>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-06 17:03:24 -0700</bug_when>
    <thetext>Created attachment 70014
Fixed memory leak caused by circular ref count</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290699</commentid>
    <comment_count>18</comment_count>
    <who name="">sanjeevr</who>
    <bug_when>2010-10-06 17:03:45 -0700</bug_when>
    <thetext>Last patch had a memory leak. Fixed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290701</commentid>
    <comment_count>19</comment_count>
      <attachid>70014</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-10-06 17:06:46 -0700</bug_when>
    <thetext>Comment on attachment 70014
Fixed memory leak caused by circular ref count

R=me, thanks Sanjeev!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290752</commentid>
    <comment_count>20</comment_count>
      <attachid>70014</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-06 18:43:10 -0700</bug_when>
    <thetext>Comment on attachment 70014
Fixed memory leak caused by circular ref count

Clearing flags on attachment: 70014

Committed r69268: &lt;http://trac.webkit.org/changeset/69268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290753</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-06 18:43:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69719</attachid>
            <date>2010-10-04 16:44:35 -0700</date>
            <delta_ts>2010-10-05 15:51:32 -0700</delta_ts>
            <desc>Patch for the fix</desc>
            <filename>plugin_doc_fix</filename>
            <type>text/plain</type>
            <size>2241</size>
            <attacher>sanjeevr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTA1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMTAtMDQgIFNhbmplZXYgUmFkaGFrcmlzaG5hbiAgPHNhbmpl
ZXZyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXhlZCBpbXBsZW1lbnRhdGlvbiBvZiBwbHVnaW5XaWRnZXRGcm9tRG9jdW1l
bnQgdG8gc2VhcmNoIGZvciB0aGUgImVtYmVkIiBlbGVtZW50IHJhdGhlciB0aGFuIGp1c3QgdXNl
IHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ3MTI5CisKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpwbHVnaW5XaWRnZXRGcm9tRG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURv
Y3VtZW50U3RydWN0dXJlKToKKwogMjAxMC0xMC0wNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcAkocmV2aXNpb24gNjkwMzIpCisrKyBXZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhU
TUxFbWJlZEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYWluUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSYXdEYXRhRG9jdW1l
bnRQYXJzZXIuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgpAQCAtNzAsNyAr
NzAsOSBAQCBXaWRnZXQqIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpwbHVnaW5XaWRnCiAgICAgQVNT
RVJUKGRvYyk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2MtPmJvZHkoKTsKICAgICBp
ZiAoYm9keSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGJvZHktPmZpcnN0Q2hpbGQo
KTsKKyAgICAgICAgUmVmUHRyPE5vZGVMaXN0PiBlbWJlZE5vZGVzID0gYm9keS0+Z2V0RWxlbWVu
dHNCeVRhZ05hbWUoImVtYmVkIik7CisgICAgICAgIEFTU0VSVChlbWJlZE5vZGVzICYmIGVtYmVk
Tm9kZXMtPmxlbmd0aCgpKTsKKyAgICAgICAgTm9kZSogbm9kZSA9IGVtYmVkTm9kZXMtPml0ZW0o
MCk7CiAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAg
IEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc0VtYmVkZGVkT2JqZWN0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuIHRvUmVuZGVyRW1iZWRkZWRPYmplY3Qobm9kZS0+cmVuZGVyZXIoKSktPndpZGdl
dCgpOwpAQCAtODQsOSArODYsNiBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVE
b2N1bWVuCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVs
ZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxUYWcsIGZhbHNlKTsKICAgICBk
b2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOwotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0gICAgc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4o
cm9vdEVsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5UGFyc2VyKCk7Ci0jZW5kaWYKIAogICAgIGlm
IChkb2N1bWVudCgpLT5mcmFtZSgpICYmIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpKQog
ICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVs
ZW1lbnRBdmFpbGFibGUoKTsK
</data>
<flag name="review"
          id="59454"
          type_id="1"
          status="-"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="59456"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69726</attachid>
            <date>2010-10-04 17:28:46 -0700</date>
            <delta_ts>2010-10-04 18:32:08 -0700</delta_ts>
            <desc>Updated patch with unrelated changes removed.</desc>
            <filename>plugin_doc_fix</filename>
            <type>text/plain</type>
            <size>1668</size>
            <attacher>sanjeevr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTA1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMDQgIFNhbmplZXYgUmFkaGFrcmlzaG5hbiAgPHNhbmpl
ZXZyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXhlZCBpbXBsZW1lbnRhdGlvbiBvZiBwbHVnaW5XaWRnZXRGcm9tRG9jdW1l
bnQgdG8gc2VhcmNoIGZvciB0aGUgImVtYmVkIiBlbGVtZW50IHJhdGhlciB0aGFuIGp1c3QgdXNl
IHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ3MTI5CisKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpwbHVnaW5XaWRnZXRGcm9tRG9j
dW1lbnQpOgorCiAyMDEwLTEwLTA0ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KSW5kZXg6IFdlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcAkocmV2aXNpb24gNjkwNTMpCisrKyBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSFRNTEh0
bWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTWFpblJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmF3RGF0YURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaCIKQEAgLTcwLDggKzcxLDEwIEBAIFdpZGdldCogUGx1Z2luRG9jdW1lbnRQYXJz
ZXI6OnBsdWdpbldpZGcKICAgICBBU1NFUlQoZG9jKTsKICAgICBSZWZQdHI8RWxlbWVudD4gYm9k
eSA9IGRvYy0+Ym9keSgpOwogICAgIGlmIChib2R5KSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlPiBu
b2RlID0gYm9keS0+Zmlyc3RDaGlsZCgpOwotICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5yZW5k
ZXJlcigpKSB7CisgICAgICBSZWZQdHI8Tm9kZUxpc3Q+IGVtYmVkTm9kZXMgPSBib2R5LT5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiZW1iZWQiKTsKKyAgICAgIEFTU0VSVChlbWJlZE5vZGVzICYmIGVt
YmVkTm9kZXMtPmxlbmd0aCgpKTsKKyAgICAgIE5vZGUqIG5vZGUgPSBlbWJlZE5vZGVzLT5pdGVt
KDApOworICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAg
QVNTRVJUKG5vZGUtPnJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSk7CiAgICAgICAgICAg
ICByZXR1cm4gdG9SZW5kZXJFbWJlZGRlZE9iamVjdChub2RlLT5yZW5kZXJlcigpKS0+d2lkZ2V0
KCk7CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69727</attachid>
            <date>2010-10-04 18:30:58 -0700</date>
            <delta_ts>2010-10-05 15:51:32 -0700</delta_ts>
            <desc>Fixed spaces.</desc>
            <filename>plugin_doc_fix</filename>
            <type>text/plain</type>
            <size>1625</size>
            <attacher>sanjeevr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTA1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMDQgIFNhbmplZXYgUmFkaGFrcmlzaG5hbiAgPHNhbmpl
ZXZyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXhlZCBpbXBsZW1lbnRhdGlvbiBvZiBwbHVnaW5XaWRnZXRGcm9tRG9jdW1l
bnQgdG8gc2VhcmNoIGZvciB0aGUgImVtYmVkIiBlbGVtZW50IHJhdGhlciB0aGFuIGp1c3QgdXNl
IHRoZSBmaXJzdCBjaGlsZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ3MTI5CisKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpwbHVnaW5XaWRnZXRGcm9tRG9j
dW1lbnQpOgorCiAyMDEwLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9o
dG1sL1BsdWdpbkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvUGx1Z2lu
RG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2OTA1MykKKysrIFdlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1M
SHRtbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYWluUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJSYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJl
ZGRlZE9iamVjdC5oIgpAQCAtNzAsNyArNzEsOSBAQCBXaWRnZXQqIFBsdWdpbkRvY3VtZW50UGFy
c2VyOjpwbHVnaW5XaWRnCiAgICAgQVNTRVJUKGRvYyk7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGJv
ZHkgPSBkb2MtPmJvZHkoKTsKICAgICBpZiAoYm9keSkgewotICAgICAgICBSZWZQdHI8Tm9kZT4g
bm9kZSA9IGJvZHktPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgUmVmUHRyPE5vZGVMaXN0PiBlbWJl
ZE5vZGVzID0gYm9keS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoImVtYmVkIik7CisgICAgICAgIEFT
U0VSVChlbWJlZE5vZGVzICYmIGVtYmVkTm9kZXMtPmxlbmd0aCgpKTsKKyAgICAgICAgTm9kZSog
bm9kZSA9IGVtYmVkTm9kZXMtPml0ZW0oMCk7CiAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPnJl
bmRlcmVyKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc0VtYmVk
ZGVkT2JqZWN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyRW1iZWRkZWRPYmplY3Qo
bm9kZS0+cmVuZGVyZXIoKSktPndpZGdldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69856</attachid>
            <date>2010-10-05 15:51:32 -0700</date>
            <delta_ts>2010-10-05 17:54:46 -0700</delta_ts>
            <desc>New implementation that relies on PluginDocument remembering the plugin node.</desc>
            <filename>plugin_doc_fix</filename>
            <type>text/plain</type>
            <size>3787</size>
            <attacher>sanjeevr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTE1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAtMDUgIFNhbmplZXYgUmFkaGFrcmlzaG5hbiAgPHNhbmpl
ZXZyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQbHVnaW5Eb2N1bWVudCBub3cgaG9sZHMgb24gdG8gdGhlIGNyZWF0ZWQgcGx1
Z2luIG5vZGUgc28gdGhhdCB0aGUgcGx1Z2luTm9kZSgpIGFuZCBwbHVnaW5XaWRnZXQoKSBtZXRo
b2RzIGNhbiByZXR1cm4gdGhlIGNvcnJlY3Qgbm9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTI5CisKKyAgICAgICAgKiBodG1sL1BsdWdpbkRv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVh
dGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5Eb2N1bWVudDo6
cGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpwbHVnaW5O
b2RlKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luTm9kZSk6CisKIDIwMTAtMTAtMDUgIEFuZHJlYXMg
S2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5l
IFZlc3Riw7guCkluZGV4OiBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDY5MTUyKQor
KysgV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAs
OCArNTAsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luRG9j
dW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgV2lkZ2V0KiBwbHVn
aW5XaWRnZXRGcm9tRG9jdW1lbnQoRG9jdW1lbnQqKTsKLSAgICAKIHByaXZhdGU6CiAgICAgUGx1
Z2luRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICAgICA6IFJhd0RhdGFE
b2N1bWVudFBhcnNlcihkb2N1bWVudCkKQEAgLTY2LDIyICs2NCw2IEBAIHByaXZhdGU6CiAgICAg
SFRNTEVtYmVkRWxlbWVudCogbV9lbWJlZEVsZW1lbnQ7CiB9OwogCi1XaWRnZXQqIFBsdWdpbkRv
Y3VtZW50UGFyc2VyOjpwbHVnaW5XaWRnZXRGcm9tRG9jdW1lbnQoRG9jdW1lbnQqIGRvYykKLXsK
LSAgICBBU1NFUlQoZG9jKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IGRvYy0+Ym9keSgp
OwotICAgIGlmIChib2R5KSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlTGlzdD4gZW1iZWROb2RlcyA9
IGJvZHktPmdldEVsZW1lbnRzQnlUYWdOYW1lKCJlbWJlZCIpOwotICAgICAgICBBU1NFUlQoZW1i
ZWROb2RlcyAmJiBlbWJlZE5vZGVzLT5sZW5ndGgoKSk7Ci0gICAgICAgIE5vZGUqIG5vZGUgPSBl
bWJlZE5vZGVzLT5pdGVtKDApOwotICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5yZW5kZXJlcigp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZS0+cmVuZGVyZXIoKS0+aXNFbWJlZGRlZE9iamVj
dCgpKTsKLSAgICAgICAgICAgIHJldHVybiB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KG5vZGUtPnJl
bmRlcmVyKCkpLT53aWRnZXQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gMDsKLX0K
LQogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQog
ewogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CkBAIC0xMTAsNyArOTIsOSBAQCB2b2lkIFBsdWdpbkRv
Y3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVuCiAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJp
YnV0ZShuYW1lQXR0ciwgInBsdWdpbiIpOwogICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1
dGUoc3JjQXR0ciwgZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIG1fZW1iZWRFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUodHlwZUF0dHIsIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigp
LT53cml0ZXIoKS0+bWltZVR5cGUoKSk7Ci0gICAgCisKKyAgICBzdGF0aWNfY2FzdDxQbHVnaW5E
b2N1bWVudCo+KGRvY3VtZW50KCkpLT5zZXRQbHVnaW5Ob2RlKG1fZW1iZWRFbGVtZW50KTsKKwog
ICAgIGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCwgZWMpOyAgICAKIH0KIApAQCAtMTU5
LDE2ICsxNDMsMTYgQEAgUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNlcj4gUGx1Z2luRG9jdW1lbgog
CiBXaWRnZXQqIFBsdWdpbkRvY3VtZW50OjpwbHVnaW5XaWRnZXQoKQogewotICAgIHJldHVybiBQ
bHVnaW5Eb2N1bWVudFBhcnNlcjo6cGx1Z2luV2lkZ2V0RnJvbURvY3VtZW50KHRoaXMpOworICAg
IGlmIChtX3BsdWdpbk5vZGUgJiYgbV9wbHVnaW5Ob2RlLT5yZW5kZXJlcigpKSB7CisgICAgICAg
IEFTU0VSVChtX3BsdWdpbk5vZGUtPnJlbmRlcmVyKCktPmlzRW1iZWRkZWRPYmplY3QoKSk7Cisg
ICAgICAgIHJldHVybiB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KG1fcGx1Z2luTm9kZS0+cmVuZGVy
ZXIoKSktPndpZGdldCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAogTm9kZSogUGx1Z2lu
RG9jdW1lbnQ6OnBsdWdpbk5vZGUoKQogewotICAgIFJlZlB0cjxFbGVtZW50PiBib2R5X2VsZW1l
bnQgPSBib2R5KCk7Ci0gICAgaWYgKGJvZHlfZWxlbWVudCkKLSAgICAgICAgcmV0dXJuIGJvZHlf
ZWxlbWVudC0+Zmlyc3RDaGlsZCgpOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcGx1
Z2luTm9kZS5nZXQoKTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1
Z2luTG9hZCgpCkluZGV4OiBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAkocmV2aXNpb24gNjkxNTIpCisrKyBX
ZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgs
OCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luRG9jdW1lbnQo
ZnJhbWUsIHVybCkpOwogICAgIH0KIAorICAgIHZvaWQgc2V0UGx1Z2luTm9kZShOb2RlKiBwbHVn
aW5Ob2RlKSB7IG1fcGx1Z2luTm9kZSA9IHBsdWdpbk5vZGU7IH0KKwogICAgIFdpZGdldCogcGx1
Z2luV2lkZ2V0KCk7CiAgICAgTm9kZSogcGx1Z2luTm9kZSgpOwogCkBAIC01NSw2ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoYm9vbCBsb2Fk
TWFudWFsbHkpIHsgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHkgPSBsb2FkTWFudWFsbHk7IH0K
IAogICAgIGJvb2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CisgICAgUmVmUHRyPE5vZGU+
IG1fcGx1Z2luTm9kZTsKIH07CiAKIGlubGluZSBQbHVnaW5Eb2N1bWVudCogdG9QbHVnaW5Eb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70014</attachid>
            <date>2010-10-06 17:03:24 -0700</date>
            <delta_ts>2010-10-06 18:43:10 -0700</delta_ts>
            <desc>Fixed memory leak caused by circular ref count</desc>
            <filename>leak_fix</filename>
            <type>text/plain</type>
            <size>1693</size>
            <attacher>sanjeevr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTI1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMTAtMDYgIFNhbmplZXYgUmFkaGFrcmlzaG5hbiAgPHNhbmpl
ZXZyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWxlYXNlZCB0aGUgcGx1Z2luTm9kZSBpbiBQbHVnaW5Eb2N1bWVudDo6ZGV0
YWNoKCkgYW5kIHByZXZlbnRzIGEgbWVtb3J5IGxlYWsuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzEyOQorCisgICAgICAgICogaHRtbC9QbHVnaW5E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoKToK
KyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6CisKIDIwMTAtMTAtMDYgIFBldGVyIEth
c3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVz
IFJvYmluc29uCkluZGV4OiBXZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDY5MjU0KQor
KysgV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1
LDYgKzE1NSwxMyBAQCBOb2RlKiBQbHVnaW5Eb2N1bWVudDo6cGx1Z2luTm9kZSgpCiAgICAgcmV0
dXJuIG1fcGx1Z2luTm9kZS5nZXQoKTsKIH0KIAordm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNo
KCkKK3sKKyAgICAvLyBSZWxlYXNlIHRoZSBwbHVnaW4gbm9kZSBzbyB0aGF0IHdlIGRvbid0IGhh
dmUgYSBjaXJjdWxhciByZWZlcmVuY2UuCisgICAgbV9wbHVnaW5Ob2RlID0gMDsKKyAgICBIVE1M
RG9jdW1lbnQ6OmRldGFjaCgpOworfQorCiB2b2lkIFBsdWdpbkRvY3VtZW50OjpjYW5jZWxNYW51
YWxQbHVnaW5Mb2FkKCkKIHsKICAgICAvLyBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1
Z2luTG9hZCBzaG91bGQgb25seSBiZSBjYWxsZWQgb25jZSwgYnV0IHRoZXJlIGFyZSBpc3N1ZXMK
SW5kZXg6IFdlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCShyZXZpc2lvbiA2OTI1NCkKKysrIFdlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdpbkRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOworCiAgICAgdm9pZCBjYW5jZWxN
YW51YWxQbHVnaW5Mb2FkKCk7CiAKICAgICBib29sIHNob3VsZExvYWRQbHVnaW5NYW51YWxseSgp
IHsgcmV0dXJuIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>