<?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>71190</bug_id>
          
          <creation_ts>2011-10-30 11:04:01 -0700</creation_ts>
          <short_desc>Document.importNode&apos;s &apos;deep&apos; argument should default to true</short_desc>
          <delta_ts>2011-11-08 13:02:24 -0800</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 JavaScript</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>http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-document-importnode</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="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>bugs</cc>
    
    <cc>code.vineet</cc>
    
    <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493055</commentid>
    <comment_count>0</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2011-10-30 11:04:01 -0700</bug_when>
    <thetext>Test at &lt;http://w3c-test.org/webapps/DOMCore/tests/submissions/Ms2ger/Document-importNode.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493073</commentid>
    <comment_count>1</comment_count>
    <who name="Olli Pettay (:smaug)">bugs</who>
    <bug_when>2011-10-30 13:23:02 -0700</bug_when>
    <thetext>See also https://bugzilla.mozilla.org/show_bug.cgi?id=698061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494488</commentid>
    <comment_count>2</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-02 01:11:28 -0700</bug_when>
    <thetext>Currently importNode() is defined in Document.idl as,

[OldStyleObjC, ReturnsNew] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
                                                   in [Optional=CallWithDefaultValue] boolean deep)
            raises (DOMException);

Which generates code in JSDocument.cpp as,

bool deep(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));

So I thought Document.idl is the correct place to fix this issue but,

on debugging it is found that if there is method in idl with boolean argument as &quot;Optional=CallWithDefaultValue&quot;,
CodeGeneratorJS.pm creates code with policy &quot;MissingIsUndefined&quot; and for boolean jsUndefined() means &quot;false&quot;. 
So for all booleans args with &quot;Optional=CallWithDefaultValue&quot; default value is set to false.

This contradicts with this bug&apos;s requirement &quot;Document.importNode&apos;s &apos;deep&apos; argument should default to true&quot;.

Should we have policy like &quot;MissingIsTrue&quot; or extended attribute like &quot;CallWithTrueValue&quot;..?

Please guide me If I am looking in wrong direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494494</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-02 01:23:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Currently importNode() is defined in Document.idl as,
&gt; 
&gt; [OldStyleObjC, ReturnsNew] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
&gt;                                                    in [Optional=CallWithDefaultValue] boolean deep)
&gt;             raises (DOMException);
&gt; 
&gt; Which generates code in JSDocument.cpp as,
&gt; 
&gt; bool deep(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));
&gt; 
&gt; So I thought Document.idl is the correct place to fix this issue but,
&gt; 
&gt; on debugging it is found that if there is method in idl with boolean argument as &quot;Optional=CallWithDefaultValue&quot;,
&gt; CodeGeneratorJS.pm creates code with policy &quot;MissingIsUndefined&quot; and for boolean jsUndefined() means &quot;false&quot;. 
&gt; So for all booleans args with &quot;Optional=CallWithDefaultValue&quot; default value is set to false.
&gt; 
&gt; This contradicts with this bug&apos;s requirement &quot;Document.importNode&apos;s &apos;deep&apos; argument should default to true&quot;.
&gt; 
&gt; Should we have policy like &quot;MissingIsTrue&quot; or extended attribute like &quot;CallWithTrueValue&quot;..?
&gt; 
&gt; Please guide me If I am looking in wrong direction.

According to the spec (http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document), the IDL should be

    Node importNode(in Node importedNode, in boolean deep)

This means that both &quot;importedNode&quot; and &quot;deep&quot; must not be optional, in the first place. So I think that the right fix to this issue is just to make &quot;deep&quot; a mandatory argument. Are there any concerns about backward compatibility for doing it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494503</commentid>
    <comment_count>4</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-02 01:48:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
 
&gt; According to the spec (http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document), the IDL should be
&gt; 
&gt;     Node importNode(in Node importedNode, in boolean deep)
&gt; 
&gt; This means that both &quot;importedNode&quot; and &quot;deep&quot; must not be optional, in the first place. So I think that the right fix to this issue is just to make &quot;deep&quot; a mandatory argument. Are there any concerns about backward compatibility for doing it?

I agree that w3c spec doesn&apos;t say &quot;importedNode&quot; and &quot;deep&quot; are optional but same time w3c test http://w3c-test.org/webapps/DOMCore/tests/submissions/Ms2ger/Document-importNode.html expects that if &quot;deep&quot; is missing then it should behave like it is true but not false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494513</commentid>
    <comment_count>5</comment_count>
    <who name="Ms2ger (he/him; ⌚ UTC+1/+2)">Ms2ger</who>
    <bug_when>2011-11-02 02:18:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Currently importNode() is defined in Document.idl as,
&gt; &gt; 
&gt; &gt; [OldStyleObjC, ReturnsNew] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
&gt; &gt;                                                    in [Optional=CallWithDefaultValue] boolean deep)
&gt; &gt;             raises (DOMException);
&gt; &gt; 
&gt; &gt; Which generates code in JSDocument.cpp as,
&gt; &gt; 
&gt; &gt; bool deep(MAYBE_MISSING_PARAMETER(exec, 1, MissingIsUndefined).toBoolean(exec));
&gt; &gt; 
&gt; &gt; So I thought Document.idl is the correct place to fix this issue but,
&gt; &gt; 
&gt; &gt; on debugging it is found that if there is method in idl with boolean argument as &quot;Optional=CallWithDefaultValue&quot;,
&gt; &gt; CodeGeneratorJS.pm creates code with policy &quot;MissingIsUndefined&quot; and for boolean jsUndefined() means &quot;false&quot;. 
&gt; &gt; So for all booleans args with &quot;Optional=CallWithDefaultValue&quot; default value is set to false.
&gt; &gt; 
&gt; &gt; This contradicts with this bug&apos;s requirement &quot;Document.importNode&apos;s &apos;deep&apos; argument should default to true&quot;.
&gt; &gt; 
&gt; &gt; Should we have policy like &quot;MissingIsTrue&quot; or extended attribute like &quot;CallWithTrueValue&quot;..?
&gt; &gt; 
&gt; &gt; Please guide me If I am looking in wrong direction.
&gt; 
&gt; According to the spec (http://www.w3.org/TR/DOM-Level-3-Core/core.html#i-Document), the IDL should be
&gt; 
&gt;     Node importNode(in Node importedNode, in boolean deep)
&gt; 
&gt; This means that both &quot;importedNode&quot; and &quot;deep&quot; must not be optional, in the first place. So I think that the right fix to this issue is just to make &quot;deep&quot; a mandatory argument. Are there any concerns about backward compatibility for doing it?

Please look at the current DOM standard (also in $URL):

http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494626</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-02 08:07:14 -0700</bug_when>
    <thetext>&gt; Please look at the current DOM standard (also in $URL):
&gt; 
&gt; http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html

Ah, thank you, I got it.

&gt; Should we have policy like &quot;MissingIsTrue&quot; or extended attribute like &quot;CallWithTrueValue&quot;..?

Are there several use cases for &quot;CallWithTrueValue&quot;? If so, I think that introducing &quot;CallWithTrueValue&quot; is reasonable, but otherwise, you should write a custom method for document.importNode(). (Actually I would like to avoid &quot;MissingIsTrue&quot; or &quot;CallWithTrueValue&quot; if possible, since they are specific to a boolean value.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495173</commentid>
    <comment_count>7</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-02 20:26:25 -0700</bug_when>
    <thetext>(In reply to comment #6)

&gt; Are there several use cases for &quot;CallWithTrueValue&quot;? If so, I think that introducing &quot;CallWithTrueValue&quot; is reasonable, but otherwise, you should write a custom method for document.importNode(). (Actually I would like to avoid &quot;MissingIsTrue&quot; or &quot;CallWithTrueValue&quot; if possible, since they are specific to a boolean value.)

Probably adding &quot;CallWithTrueValue and CallWithFalseValue&quot; will solve the purpose here but, though currently i don&apos;t see any use case I am doubtful (sorry for lack of understanding) what if the other methods which have &quot;CallWithDefaultValue&quot; but expecting  some different default values?
eg. unsigned may expect 0 or 1 as defaultValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495602</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-11-03 10:27:15 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; I am doubtful (sorry for lack of understanding) what if the other methods 
&gt; which have &quot;CallWithDefaultValue&quot; but expecting  some different default values?
&gt; eg. unsigned may expect 0 or 1 as defaultValue.

I am not sure but I guess that your case is special and there are few existing cases like that. I would recommend to write a custom method (in WebCore/bindings/v8/custom/ and in WebCore/bindings/JS/).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496056</commentid>
    <comment_count>9</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-03 22:38:21 -0700</bug_when>
    <thetext>See also https://bugs.webkit.org/show_bug.cgi?id=71438 which will also require default parameter as true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496082</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 00:22:57 -0700</bug_when>
    <thetext>As I mentioned on email, you should just use the [Optional] attribute (without any attribute value).  That will let you use C++ dispatch to set whatever default value you like in the DOM header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496539</commentid>
    <comment_count>11</comment_count>
      <attachid>113729</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-04 16:25:32 -0700</bug_when>
    <thetext>Created attachment 113729
proposed patch

Please find the proposed patch as per the above mentioned comments.

1) Modified importNode() &quot;deep&quot; argument Optional
2) Modified importNode() as Custom
3) Implemented WebCore/bindings/JS/

Do I need to add custom function to V8 binding too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496550</commentid>
    <comment_count>12</comment_count>
      <attachid>113729</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 16:35:43 -0700</bug_when>
    <thetext>Comment on attachment 113729
proposed patch

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

&gt; Source/WebCore/dom/Document.idl:53
&gt; +        [OldStyleObjC, ReturnsNew, Custom] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
&gt; +                                                   in [Optional] boolean deep)

This shouldn&apos;t need to be custom.  If there&apos;s something missing from the code generator script, please add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496570</commentid>
    <comment_count>13</comment_count>
      <attachid>113729</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 17:14:29 -0700</bug_when>
    <thetext>Comment on attachment 113729
proposed patch

Attachment 113729 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10337160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496578</commentid>
    <comment_count>14</comment_count>
      <attachid>113739</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-04 17:21:41 -0700</bug_when>
    <thetext>Created attachment 113739
another patch

(In reply to comment #12)
&gt; &gt; Source/WebCore/dom/Document.idl:53
&gt; &gt; +        [OldStyleObjC, ReturnsNew, Custom] Node importNode(in [Optional=CallWithDefaultValue] Node importedNode,
&gt; &gt; +                                                   in [Optional] boolean deep)
&gt; 
&gt; This shouldn&apos;t need to be custom.  If there&apos;s something missing from the code generator script, please add it.

Sorry Adam, I guess I couldn&apos;t get your point. Did you wanted something like this new patch..?
If no Could you please clarify more.. here I have added new Policy to code generator script (will update changelog and test once we agree).
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496584</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:29:33 -0700</bug_when>
    <thetext>&gt; Sorry Adam, I guess I couldn&apos;t get your point. Did you wanted something like this new patch..?

The IDL files should say [Optional] without any attribute value and there should be no custom bindings for this method.  In you first patch you did the former but not the latter.  In the second patch, you did the former but not the former.

We eventually want to get down to only using [Optional] without any values anywhere.  Adding more values moves us away from that goal.  Also, all the custom code in the bindings is full of bugs.  We don&apos;t want to add any more custom code than absolutely necessary.

I&apos;m surprised this doesn&apos;t just work out of the box for you, but maybe there&apos;s a bug in the code generator script that&apos;s causing problems for you.  You can also remove the value of the Optional attribute for importedNode if that&apos;s what&apos;s causing you trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497859</commentid>
    <comment_count>16</comment_count>
      <attachid>114014</attachid>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-11-08 01:47:43 -0800</bug_when>
    <thetext>Created attachment 114014
Patch

Modified &quot;deep&quot; argument of importNode() method as [Optional] in idl.
Also added tests to check this behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498284</commentid>
    <comment_count>17</comment_count>
      <attachid>114014</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-08 11:34:28 -0800</bug_when>
    <thetext>Comment on attachment 114014
Patch

Perfect.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498379</commentid>
    <comment_count>18</comment_count>
      <attachid>114014</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 13:02:16 -0800</bug_when>
    <thetext>Comment on attachment 114014
Patch

Clearing flags on attachment: 114014

Committed r99612: &lt;http://trac.webkit.org/changeset/99612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498380</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 13:02:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113729</attachid>
            <date>2011-11-04 16:25:32 -0700</date>
            <delta_ts>2011-11-04 17:21:41 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>import_node_001.diff</filename>
            <type>text/plain</type>
            <size>5840</size>
            <attacher name="Vineet Chaudhary (vineetc)">code.vineet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MzMxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDQgIFZpbmVldCBD
aGF1ZGhhcnkgIDx2aW5lZXQuY2hhdWRoYXJ5QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBEb2N1
bWVudC5pbXBvcnROb2RlJ3MgJ2RlZXAnIGFyZ3VtZW50IHNob3VsZCBkZWZhdWx0IHRvIHRydWUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIG5ldyBz
cGVjaWZpY2F0aW9uIHNheXMgZGVlcCBhcmd1bWVudCBvZiBpbXBvcnROb2RlIHNob3VsZCBiciBk
ZWZhdWx0CisgICAgICAgIHRvIHRydWUuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vZG9jdW1l
bnQtaW1wb3J0Tm9kZS1hcmd1bWVudHMuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RvY3VtZW50OjppbXBvcnRO
b2RlKTogaW1wb3J0Tm9kZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aWRsOiBNb2RpZmllZCBkZWVwIHRvIE9wdGlvbmFsIGFuZCBpbXBvcnROb2RlIG1ldGhvZCB0byBD
dXN0b20uCisKIDIwMTEtMTEtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBEZWxldGUgRnJhbWVMb2FkZXI6OmlzU2FuZGJveGVkCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gOTkz
MTIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsMzQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitKU1ZhbHVlIEpTRG9jdW1lbnQ6OmltcG9ydE5vZGUoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIERvY3VtZW50KiBpbXAgPSBzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KGltcGwoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgTm9kZSogaW1wb3J0
ZWROb2RlKHRvTm9kZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBNaXNzaW5nSXNV
bmRlZmluZWQpKSk7CisKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKTsKKworICAgIGlmIChhcmdzQ291bnQgPD0gMSkgeworICAgICAgICAvLyBEb2N1
bWVudC5pbXBvcnROb2RlJ3MgJ2RlZXAnIGFyZ3VtZW50IHNob3VsZCBkZWZhdWx0IHRvIHRydWUK
KyAgICAgICAgLy8gQnVnIFJlZjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMTkwCisgICAgICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTTmV3bHlDcmVhdGVk
KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXAtPmltcG9ydE5vZGUoaW1wb3J0
ZWROb2RlLCB0cnVlLCBlYykpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBib29sIGRlZXAoKGV4ZWMpLT5h
cmd1bWVudCgxKS50b0Jvb2xlYW4oZXhlYykpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0gdG9KU05ld2x5Q3JlYXRlZChleGVjLCBnbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIo
aW1wLT5pbXBvcnROb2RlKGltcG9ydGVkTm9kZSwgZGVlcCwgZWMpKSk7CisgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBKU1ZhbHVlIEpTRG9j
dW1lbnQ6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBGcmFtZSogZnJh
bWUgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGltcGwoKSktPmZyYW1lKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDk5MzEyKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBAQCBtb2R1bGUgY29y
ZSB7CiAKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIAotICAgICAgICBb
T2xkU3R5bGVPYmpDLCBSZXR1cm5zTmV3XSBOb2RlIGltcG9ydE5vZGUoaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBOb2RlIGltcG9ydGVkTm9kZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gYm9vbGVhbiBkZWVwKQorICAgICAgICBbT2xkU3R5bGVPYmpDLCBSZXR1cm5z
TmV3LCBDdXN0b21dIE5vZGUgaW1wb3J0Tm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIE5vZGUgaW1wb3J0ZWROb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGRlZXApCiAgICAgICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtPbGRTdHlsZU9iakMsIFJldHVy
bnNOZXddIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MzMxKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMTEtMDQgIFZpbmVldCBDaGF1ZGhhcnkgIDx2aW5lZXQuY2hhdWRoYXJ5QG1vdG9yb2xh
LmNvbT4KKworICAgICAgICBEb2N1bWVudC5pbXBvcnROb2RlJ3MgJ2RlZXAnIGFyZ3VtZW50IHNo
b3VsZCBkZWZhdWx0IHRvIHRydWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTE5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIHRlc3QgdG8gY2hlY2sgZG9jdW1lbnQuaW1wb3J0Tm9kZSB3aXRo
IE5vIGRlZXAgYXJndW1lbnQsCisgICAgICAgIGRlZXAgYXJndW1lbnQgdHJ1ZSBhbmQgZmFsc2Uu
CisKKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudC1pbXBvcnROb2RlLWFyZ3VtZW50cy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2RvY3VtZW50LWltcG9ydE5vZGUt
YXJndW1lbnRzLmh0bWw6IEFkZGVkLgorCiAyMDExLTExLTA0ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVsZXRlIEZyYW1lTG9hZGVyOjppc1NhbmRib3hlZApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtaW1wb3J0Tm9kZS1hcmd1bWVudHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50
LWltcG9ydE5vZGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWltcG9ydE5vZGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitUaGlzIHBhZ2UgdGVzdHMgY2FsbGluZyBk
b2N1bWVudC5pbXBvcnROb2RlLgorCitQQVNTIGltcG9ydGVkLmNoaWxkTm9kZXMubGVuZ3RoIGlz
IDIKK1BBU1MgaW1wb3J0ZWQudGV4dENvbnRlbnQgPT0gJ2hlbGxvIHdvcmxkJyBpcyB0cnVlCitQ
QVNTIGltcG9ydGVkLmNoaWxkTm9kZXMubGVuZ3RoIGlzIDIKK1BBU1MgaW1wb3J0ZWQudGV4dENv
bnRlbnQgPT0gJ2hlbGxvIHdvcmxkJyBpcyB0cnVlCitQQVNTIGltcG9ydGVkLmNoaWxkTm9kZXMu
bGVuZ3RoIGlzIDAKK1BBU1MgaW1wb3J0ZWQudGV4dENvbnRlbnQgPT0gJycgaXMgdHJ1ZQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1pbXBvcnROb2RlLWFyZ3VtZW50cy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWltcG9ydE5v
ZGUtYXJndW1lbnRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9k
b2N1bWVudC1pbXBvcnROb2RlLWFyZ3VtZW50cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDMxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBjYWxsaW5nIGRvY3VtZW50LmltcG9ydE5vZGUuPC9wPgorPGRpdiBpZD0nY29uc29sZSc+PC9k
aXY+Cis8c2NyaXB0PgordmFyIGltcG9ydGVkOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2QuaW5uZXJIVE1MID0gIjxzcGFuPmhl
bGxvIDwvc3Bhbj48c3Bhbj53b3JsZDwvc3Bhbj4iOworCitpbXBvcnRlZCA9IGRvY3VtZW50Lmlt
cG9ydE5vZGUoZCk7CitzaG91bGRCZSgnaW1wb3J0ZWQuY2hpbGROb2Rlcy5sZW5ndGgnLCcyJyk7
CitzaG91bGRCZVRydWUoImltcG9ydGVkLnRleHRDb250ZW50ID09ICdoZWxsbyB3b3JsZCciKTsK
KworaW1wb3J0ZWQgPSBkb2N1bWVudC5pbXBvcnROb2RlKGQsIHRydWUpOworc2hvdWxkQmUoJ2lt
cG9ydGVkLmNoaWxkTm9kZXMubGVuZ3RoJywnMicpOworc2hvdWxkQmVUcnVlKCJpbXBvcnRlZC50
ZXh0Q29udGVudCA9PSAnaGVsbG8gd29ybGQnIik7CisKK2ltcG9ydGVkID0gZG9jdW1lbnQuaW1w
b3J0Tm9kZShkLCBmYWxzZSk7CitzaG91bGRCZSgnaW1wb3J0ZWQuY2hpbGROb2Rlcy5sZW5ndGgn
LCcwJyk7CitzaG91bGRCZVRydWUoImltcG9ydGVkLnRleHRDb250ZW50ID09ICcnIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="112212"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113739</attachid>
            <date>2011-11-04 17:21:41 -0700</date>
            <delta_ts>2011-11-08 01:47:43 -0800</delta_ts>
            <desc>another patch</desc>
            <filename>import_node_002.diff</filename>
            <type>text/plain</type>
            <size>4428</size>
            <attacher name="Vineet Chaudhary (vineetc)">code.vineet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lv
biA5OTI3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBl
bnVtIFBhcmFtZXRlck1pc3NpbmdQb2xpY3kgewogICAgIE1pc3NpbmdJc1VuZGVmaW5lZCwKLSAg
ICBNaXNzaW5nSXNFbXB0eQorICAgIE1pc3NpbmdJc0VtcHR5LAorICAgIE1pc3NpbmdJc1RydWUK
IH07CiAKLSNkZWZpbmUgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGlj
eSkgKCgocG9saWN5KSA9PSBNaXNzaW5nSXNFbXB0eSAmJiAoaW5kZXgpID49IChleGVjKS0+YXJn
dW1lbnRDb3VudCgpKSA/IChKU1ZhbHVlKCkpIDogKChleGVjKS0+YXJndW1lbnQoaW5kZXgpKSkK
KyNkZWZpbmUgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGljeSkgKCgo
aW5kZXgpID49IChleGVjKS0+YXJndW1lbnRDb3VudCgpKSA/IFwKKyAgICAoKChwb2xpY3kpID09
IE1pc3NpbmdJc0VtcHR5KSA/IEpTVmFsdWUoKSA6ICgocG9saWN5KSA9PSBNaXNzaW5nSXNUcnVl
KSA/IFwKKyAgICBKU1ZhbHVlKEpTVmFsdWU6OkpTVHJ1ZSkgOiAoZXhlYyktPmFyZ3VtZW50KGlu
ZGV4KSkgOiAoZXhlYyktPmFyZ3VtZW50KGluZGV4KSkKIAogICAgIGNsYXNzIEZyYW1lOwogICAg
IGNsYXNzIEtVUkw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gOTkyNzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAt
MjI5OSw5ICsyMjk5LDkgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICMg
T3B0aW9uYWwgY2FsbGJhY2tzIHNob3VsZCBiZSB0cmVhdGVkIGRpZmZlcmVudGx5LCBiZWNhdXNl
IHRoZXkgYWx3YXlzIGhhdmUgYSBkZWZhdWx0IHZhbHVlICgwKSwKICAgICAgICAgIyBhbmQgd2Ug
Y2FuIHJlZHVjZSB0aGUgbnVtYmVyIG9mIG92ZXJsb2FkZWQgZnVuY3Rpb25zIHRoYXQgdGFrZSBh
IGRpZmZlcmVudCBudW1iZXIgb2YgcGFyYW1ldGVycy4KICAgICAgICAgIyBPcHRpb25hbCBhcmd1
bWVudHMgd2l0aCBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIG9yIFtPcHRpb25hbD1D
YWxsV2l0aE51bGxWYWx1ZV0KLSAgICAgICAgIyBzaG91bGQgbm90IGdlbmVyYXRlIGFuIGVhcmx5
IGNhbGwuCisgICAgICAgICMgb3IgW09wdGlvbmFsPUNhbGxXaXRoVHJ1ZVZhbHVlXSBzaG91bGQg
bm90IGdlbmVyYXRlIGFuIGVhcmx5IGNhbGwuCiAgICAgICAgIG15ICRvcHRpb25hbCA9ICRwYXJh
bWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9OwotICAgICAgICBpZiAoJG9w
dGlvbmFsICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhEZWZhdWx0VmFsdWUiICYmICRvcHRpb25h
bCBuZSAiQ2FsbFdpdGhOdWxsVmFsdWUiICYmICEkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ2FsbGJhY2sifSkgeworICAgICAgICBpZiAoJG9wdGlvbmFsICYmICRvcHRpb25hbCBu
ZSAiQ2FsbFdpdGhEZWZhdWx0VmFsdWUiICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhOdWxsVmFs
dWUiICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhUcnVlVmFsdWUiICYmICEkcGFyYW1ldGVyLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgewogICAgICAgICAgICAgIyBHZW5lcmF0
ZSBlYXJseSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KICAgICAgICAgICAg
IGlmICghJGhhc09wdGlvbmFsQXJndW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiXG4gICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQo
KTtcbiIpOwpAQCAtMjM2NSw2ICsyMzY1LDEwIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVj
awogICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJNaXNzaW5nUG9saWN5ID0gIk1pc3NpbmdJc0Vt
cHR5IjsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAkb3B0
aW9uYWwgZXEgIkNhbGxXaXRoVHJ1ZVZhbHVlIikgeworICAgICAgICAgICAgICAgICRwYXJhbWV0
ZXJNaXNzaW5nUG9saWN5ID0gIk1pc3NpbmdJc1RydWUiOworICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2ln
bmF0dXJlKCRwYXJhbWV0ZXIpIC4gIiAkbmFtZSgiIC4gSlNWYWx1ZVRvTmF0aXZlKCRwYXJhbWV0
ZXIsICJNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAkYXJnc0luZGV4LCAkcGFyYW1ldGVy
TWlzc2luZ1BvbGljeSkiKSAuICIpO1xuIik7CiAKICAgICAgICAgICAgICMgSWYgYSBwYXJhbWV0
ZXIgaXMgImFuIGluZGV4IiBhbmQgaXQncyBuZWdhdGl2ZSBpdCBzaG91bGQgdGhyb3cgYW4gSU5E
RVhfU0laRV9FUlIgZXhjZXB0aW9uLgpAQCAtMzI3NCw4ICszMjc4LDggQEAgc3ViIEdlbmVyYXRl
Q29uc3RydWN0b3JEZWZpbml0aW9uCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgIyBGb3Igbm93LCB3ZSBkbyBub3Qgc3VwcG9ydCBTVkcgY29uc3RydWN0b3JzLgotICAgICAg
ICAgICAgICAgICMgV2UgZG8gbm90IGFsc28gc3VwcG9ydCBhIGNvbnN0cnVjdG9yIFtPcHRpb25h
bF0gYXJndW1lbnQgd2l0aG91dCBDYWxsV2l0aERlZmF1bHRWYWx1ZQotICAgICAgICAgICAgICAg
ICMgbm9yIENhbGxXaXRoTnVsbFZhbHVlLgorICAgICAgICAgICAgICAgICMgV2UgZG8gbm90IGFs
c28gc3VwcG9ydCBhIGNvbnN0cnVjdG9yIFtPcHRpb25hbF0gYXJndW1lbnQgd2l0aG91dCBDYWxs
V2l0aERlZmF1bHRWYWx1ZSwKKyAgICAgICAgICAgICAgICAjIENhbGxXaXRoTnVsbFZhbHVlIG5v
ciBDYWxsV2l0aFRydWVWYWx1ZS4KICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9
IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgICAgICBteSAoJGR1bW15LCAk
cGFyYW1JbmRleCkgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjaygkb3V0cHV0QXJyYXksICRmdW5j
dGlvbiwgJGRhdGFOb2RlLCAkbnVtUGFyYW1ldGVycywgJGludGVyZmFjZU5hbWUsICJjb25zdHJ1
Y3RvckNhbGxiYWNrIiwgdW5kZWYsIHVuZGVmLCB1bmRlZik7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkocmV2aXNpb24gOTkyNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIAogICAgICAgICBbT2xkU3R5bGVP
YmpDLCBSZXR1cm5zTmV3XSBOb2RlIGltcG9ydE5vZGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVm
YXVsdFZhbHVlXSBOb2RlIGltcG9ydGVkTm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gYm9vbGVhbiBkZWVwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoVHJ1ZVZhbHVlXSBib29sZWFuIGRlZXAp
CiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtPbGRTdHlsZU9i
akMsIFJldHVybnNOZXddIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114014</attachid>
            <date>2011-11-08 01:47:43 -0800</date>
            <delta_ts>2011-11-08 13:02:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>document_import_node_002.diff</filename>
            <type>text/plain</type>
            <size>5358</size>
            <attacher name="Vineet Chaudhary (vineetc)">code.vineet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEtMDggIFZpbmVldCBD
aGF1ZGhhcnkgIDx2aW5lZXQuY2hhdWRoYXJ5QG1vdG9yb2xhLmNvbT4KKworICAgICAgICBEb2N1
bWVudC5pbXBvcnROb2RlJ3MgJ2RlZXAnIGFyZ3VtZW50IHNob3VsZCBkZWZhdWx0IHRvIHRydWUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE5MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIG5ldyBz
cGVjaWZpY2F0aW9uIHNheXMgZGVlcCBhcmd1bWVudCBvZiBpbXBvcnROb2RlIHNob3VsZCBiZSBk
ZWZhdWx0IHRvIHRydWUuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vZG9jdW1lbnQtaW1wb3J0
Tm9kZS1hcmd1bWVudHMuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIHN1
cHBvcnRpdmUgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmltcG9ydE5vZGUp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IE1vZGlmaWVkIGRlZXAgYXJndW1lbnQgYXMg
b3B0aW9uYWwuCisKIDIwMTEtMTEtMDggIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QHJpbS5jb20+CiAKICAgICAgICAgU3dpdGNoIFNWR0ltYWdlIGNhY2hlIHRvIHN0b3JlIEltYWdl
QnVmZmVycyBpbnN0ZWFkIG9mIHdob2xlIFNWR0ltYWdlcywgaW5jbHVkaW5nIGEgRE9NL1JlbmRl
ciB0cmVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gOTk1MjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDYgKzM0Miw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPEF0dHI+IGNyZWF0ZUF0dHJpYnV0ZShjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPEF0dHI+IGNyZWF0
ZUF0dHJpYnV0ZU5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1
YWxpZmllZE5hbWUsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZElnbm9yZU5hbWVzcGFjZUNo
ZWNrcyA9IGZhbHNlKTsKICAgICBQYXNzUmVmUHRyPEVudGl0eVJlZmVyZW5jZT4gY3JlYXRlRW50
aXR5UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBh
c3NSZWZQdHI8Tm9kZT4gaW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IHJldHVybiBpbXBvcnROb2RlKGltcG9ydGVkTm9kZSwgdHJ1ZSwgZWMpOyB9CiAg
ICAgUGFzc1JlZlB0cjxOb2RlPiBpbXBvcnROb2RlKE5vZGUqIGltcG9ydGVkTm9kZSwgYm9vbCBk
ZWVwLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnROUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBx
dWFsaWZpZWROYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDk5NTIzKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBA
QCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAK
ICAgICAgICAgW09sZFN0eWxlT2JqQywgUmV0dXJuc05ld10gTm9kZSBpbXBvcnROb2RlKGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBpbXBvcnRlZE5vZGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJvb2xlYW4gZGVlcCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiBkZWVw
KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBbT2xkU3R5bGVP
YmpDLCBSZXR1cm5zTmV3XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBbQ29udmVydE51bGxU
b051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA5OTU0MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTExLTA4ICBWaW5lZXQgQ2hhdWRoYXJ5ICA8dmluZWV0LmNoYXVkaGFy
eUBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQuaW1wb3J0Tm9kZSdzICdkZWVwJyBh
cmd1bWVudCBzaG91bGQgZGVmYXVsdCB0byB0cnVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IHRvIGNoZWNrIGRvY3VtZW50LmltcG9y
dE5vZGUgd2l0aCBObyBkZWVwIGFyZ3VtZW50LAorICAgICAgICBkZWVwIGFyZ3VtZW50IHRydWUg
YW5kIGZhbHNlLgorCisgICAgICAgICogZmFzdC9kb20vZG9jdW1lbnQtaW1wb3J0Tm9kZS1hcmd1
bWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudC1p
bXBvcnROb2RlLWFyZ3VtZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0wOCAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBTd2l0Y2ggU1ZHSW1h
Z2UgY2FjaGUgdG8gc3RvcmUgSW1hZ2VCdWZmZXJzIGluc3RlYWQgb2Ygd2hvbGUgU1ZHSW1hZ2Vz
LCBpbmNsdWRpbmcgYSBET00vUmVuZGVyIHRyZWUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L2RvY3VtZW50LWltcG9ydE5vZGUtYXJndW1lbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1pbXBvcnROb2RlLWFyZ3VtZW50cy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1p
bXBvcnROb2RlLWFyZ3VtZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OSBAQAorVGhpcyBwYWdlIHRlc3RzIGNhbGxpbmcgZG9jdW1lbnQuaW1wb3J0Tm9kZS4KKworUEFT
UyBpbXBvcnRlZC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAyCitQQVNTIGltcG9ydGVkLnRleHRDb250
ZW50ID09ICdoZWxsbyB3b3JsZCcgaXMgdHJ1ZQorUEFTUyBpbXBvcnRlZC5jaGlsZE5vZGVzLmxl
bmd0aCBpcyAyCitQQVNTIGltcG9ydGVkLnRleHRDb250ZW50ID09ICdoZWxsbyB3b3JsZCcgaXMg
dHJ1ZQorUEFTUyBpbXBvcnRlZC5jaGlsZE5vZGVzLmxlbmd0aCBpcyAwCitQQVNTIGltcG9ydGVk
LnRleHRDb250ZW50ID09ICcnIGlzIHRydWUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9jdW1lbnQtaW1wb3J0Tm9kZS1hcmd1bWVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1pbXBvcnROb2RlLWFyZ3VtZW50cy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtaW1wb3J0Tm9kZS1hcmd1bWVu
dHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHBhZ2UgdGVzdHMgY2FsbGluZyBkb2N1bWVudC5pbXBvcnRO
b2RlLjwvcD4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBpbXBvcnRl
ZDsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CitkLmlubmVySFRNTCA9ICI8c3Bhbj5oZWxsbyA8L3NwYW4+PHNwYW4+d29ybGQ8L3Nw
YW4+IjsKKworaW1wb3J0ZWQgPSBkb2N1bWVudC5pbXBvcnROb2RlKGQpOworc2hvdWxkQmUoJ2lt
cG9ydGVkLmNoaWxkTm9kZXMubGVuZ3RoJywnMicpOworc2hvdWxkQmVUcnVlKCJpbXBvcnRlZC50
ZXh0Q29udGVudCA9PSAnaGVsbG8gd29ybGQnIik7CisKK2ltcG9ydGVkID0gZG9jdW1lbnQuaW1w
b3J0Tm9kZShkLCB0cnVlKTsKK3Nob3VsZEJlKCdpbXBvcnRlZC5jaGlsZE5vZGVzLmxlbmd0aCcs
JzInKTsKK3Nob3VsZEJlVHJ1ZSgiaW1wb3J0ZWQudGV4dENvbnRlbnQgPT0gJ2hlbGxvIHdvcmxk
JyIpOworCitpbXBvcnRlZCA9IGRvY3VtZW50LmltcG9ydE5vZGUoZCwgZmFsc2UpOworc2hvdWxk
QmUoJ2ltcG9ydGVkLmNoaWxkTm9kZXMubGVuZ3RoJywnMCcpOworc2hvdWxkQmVUcnVlKCJpbXBv
cnRlZC50ZXh0Q29udGVudCA9PSAnJyIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>