<?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>37236</bug_id>
          
          <creation_ts>2010-04-07 15:27:11 -0700</creation_ts>
          <short_desc>Cannot resubmit form after submission fails</short_desc>
          <delta_ts>2011-09-15 14:07:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>68185</dependson>
    
    <dependson>28633</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joe Mason">joenotcharles</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jonlee</cc>
    
    <cc>staikos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>209869</commentid>
    <comment_count>0</comment_count>
      <attachid>52790</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-07 15:27:11 -0700</bug_when>
    <thetext>Created attachment 52790
Manual test case

If a form submission fails due to a server error, the m_submittedUrl is not cleared properly and so clicking &quot;submit&quot; again does nothing.

Attached is a small html file that demonstrates this problem.  You&apos;ll need to use a client that opens a dialog on error instead of rendering an error page, so that it stays on the same page after the submission fails.  I used QtLauncher, edited to turn off ErrorPageExtension (

The criteria are:
- a form which loads in the current frame (no target attribute)
- the method is GET
- the action url returns an error (in the test file, it&apos;s a nonexistant file, for a file not found error)
- the client remains on the same page after the error is handled (eg. it displays the error in a dialog instead of an error page)

When this happens, clicking Submit the first time will display the error dialog, and after this clicking Submit again will do nothing, and not submit the form until the page is reloaded.

The reason is that FrameLoader::submitForm contains this code, to guard against submitting the form multiple times:

    if (m_frame-&gt;tree()-&gt;isDescendantOf(targetFrame)) {
        if (m_submittedFormURL == u)
            return;
        m_submittedFormURL = u;
    }

It&apos;s expected that after submitting the form, m_submittedFormURL is cleared.  But the code to do this on error, in FrameLoader::receivedMainResourceError, is:

        if (m_submittedFormURL == m_provisionalDocumentLoader-&gt;originalRequestCopy().url())
            m_submittedFormURL = KURL();

When the method is GET, the form data is added to the url as a query string, which is included in m_submittedFormURL.  But originalRequestCopy().url() is the basic url included in the action parameter, before the query string is added, so this test never passes and m_submittedFormURL is not reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209872</commentid>
    <comment_count>1</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-07 15:31:23 -0700</bug_when>
    <thetext>I&apos;m having a hard time making the attached file into a layout test.  It&apos;s easy to automatically submit the form after the page is loaded with javascript, but then the only way I can figure to wait for the response is to add a timeout, which is ugly and unreliable.  The best thing would be to catch some sort of &quot;load failed&quot; event and call form.submit again when it&apos;s received, but I can&apos;t find any such event.  The closest I could find was to set the form&apos;s target attribute to point to an iframe, and put an onload handler on the iframe - but that breaks the conditions of the bug, which only manifests when loading in the same frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209883</commentid>
    <comment_count>2</comment_count>
      <attachid>52794</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-07 15:43:39 -0700</bug_when>
    <thetext>Created attachment 52794
suggested patch

This patch will fix the problem.  It seems to me that if an error is received, always clearing m_submittedFormURL should be safe.  Under what circumstances would it NOT match the original URL for a FrameLoader?

If this is too invasive, an alternative is to compare only the base URL&apos;s but not the query parts.

I&apos;ll gladly add a layout test if someone can help me figure out how.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210773</commentid>
    <comment_count>3</comment_count>
      <attachid>52794</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-09 09:44:03 -0700</bug_when>
    <thetext>Comment on attachment 52794
suggested patch

Bug fixes require a test case. If you can&apos;t make an automated test case please include a manual one. But I think you can make an automated test case using http.

And I&apos;m not sure it&apos;s safe to just clear multiple submission protection for failures that don&apos;t match the form URL. It might require more study of the patches that introduced this mechanism and some further thought about how a load of a different main resource might come through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210775</commentid>
    <comment_count>4</comment_count>
      <attachid>52790</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-09 09:48:14 -0700</bug_when>
    <thetext>Comment on attachment 52790
Manual test case

This attachment IS a manual test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210780</commentid>
    <comment_count>5</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-09 09:57:13 -0700</bug_when>
    <thetext>A comment in FrameLoader.cpp says:

    // FIXME: Frame targeting is only one of the ways the submission could end
up doing something other
    // than replacing this frame&apos;s content, so this check is flawed. On the
other hand, the check is hardly
    // needed any more now that we reset m_submittedFormURL on each mouse or
key down event.

The root problem here is that, when manually submitting a form, you can click
on submit, wait for an error response, and then click on submit again and
nothing will happen.  The user would expect the form to be resubmitted in this
case.

But according to the comment above, since clicking on &quot;submit&quot; is a mouse press
or keydown, m_submittedFormURL should have been cleared by the user
interaction.  So now I think that&apos;s were the bug lies.

(Although the test in receivedMainResourceError is also incorrect for GET urls,
it shouldn&apos;t matter.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210782</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-09 09:59:42 -0700</bug_when>
    <thetext>I&apos;m also fairly confident that this can (and should) be tested automatically. There aren&apos;t a lot of forms tests in http/tests to serve as example currently, but there are tests with resources that change their state, e.g. returning 404 on one access, and a success on another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210833</commentid>
    <comment_count>7</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-04-09 12:06:24 -0700</bug_when>
    <thetext>The problem I&apos;m having in creating an automated test is in deciding when to send the second submit.

It&apos;s easy to call form.submit on first load.  However:

- if we call form.submit again immediately, before FrameLoader::receivedMainResourceError has been called, m_submittedFormURL has not yet been reset so nothing happens - correctly, in this case
- we can&apos;t put an onload handler to submit again after the frame reloads, because it *doesn&apos;t* reload - we&apos;re testing an error condition
- we can&apos;t use an onerror handler as we would to test failure to load an image, because this has no meaning for forms
- we can&apos;t set the submit target to another frame and then watch the frame contents for an error message, because this bypasses the isDescendentOf check

The only thing I can think to do is to set a timeout after the first submit, and send the second submit after a reasonable time.  I can do that, I was just hoping somebody had a better suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210840</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-09 12:14:39 -0700</bug_when>
    <thetext>You might be able poll the resource with XMLHttpRequest asking it if it has already received the failing submission. Although issues like bug 23933	could stand in the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224198</commentid>
    <comment_count>9</comment_count>
      <attachid>55765</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 15:41:52 -0700</bug_when>
    <thetext>Created attachment 55765
Attempt at layout test (not working)

Still unable to make a layout test for this.  I&apos;ve attached my best attempt.  However, this code fails because after submitting a form with document.form.submit, the result replaces the current document even if it&apos;s an error code with no body.

This confuses me because it&apos;s not what happens when I run QtLauncher by hand, after editing WebPage::supportsExtension to turn off the ErrorPageExtension.  And LayoutTestControllerQt contains &quot;m_handleErrorPages = false&quot;, so I think error pages are turned off for it as well.  So the error 500 I&apos;m returning shouldn&apos;t cause a new page load - but it does.  After submitting postForm1, the output to the initial document (&quot;Submitting postForm1&quot;), &quot;Waiting for postForm1&quot;) is cleared, and the final result is:

CONSOLE MESSAGE: line 68: TypeError: Result of expression &apos;form&apos; [undefined] is not an object.
FAIL: Timed out waiting for notifyDone to be called
Got response: submitted=value1

Which tells me that it&apos;s gotten the response fine and gone on to submit the second form, which fails because &quot;document.postForm2&quot; is no longer an existing element: the document&apos;s been overwritten.

If anyone can help me get around this final hurdle I think this layout test will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224202</commentid>
    <comment_count>10</comment_count>
      <attachid>55768</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 15:46:52 -0700</bug_when>
    <thetext>Created attachment 55768
updated patch

This fixes the error in a safer way than the first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224208</commentid>
    <comment_count>11</comment_count>
      <attachid>55768</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-05-11 15:50:13 -0700</bug_when>
    <thetext>Comment on attachment 55768
updated patch


&gt; +    // (Nested FIXME: except we don&apos;t reset it on mouse events, only keydown.
&gt; +    // This is important because part of the point is to prevent the user from
&gt; +    // accidentally clicking twice on important forms like 1-click orders.)

But... we do reset it on mouse events. Look at EventHandlerMac.mm or WebKit/chromium/WebViewImpl.cpp.

Do you mean it&apos;s not done in Qt port?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224210</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 15:51:39 -0700</bug_when>
    <thetext>Attachment 55768 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/loader/FrameLoader.cpp:520:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224216</commentid>
    <comment_count>13</comment_count>
      <attachid>55771</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 15:57:11 -0700</bug_when>
    <thetext>Created attachment 55771
updated patch, with updated copyright

Missed a copyright string in the last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224218</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 15:58:58 -0700</bug_when>
    <thetext>Attachment 55771 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/loader/FrameLoader.cpp:520:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224220</commentid>
    <comment_count>15</comment_count>
      <attachid>55771</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-05-11 15:59:16 -0700</bug_when>
    <thetext>Comment on attachment 55771
updated patch, with updated copyright

Why not just resetMultipleFormSubmission protection on click, like other ports do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224223</commentid>
    <comment_count>16</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 16:04:19 -0700</bug_when>
    <thetext>Sigh. I only grepped WebCore for use of resetMultipleFormSubmission.  Why is it done in the cross-platform EventHandler.cpp for keyboard events, and in port-specific code for mouse events?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224226</commentid>
    <comment_count>17</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-05-11 16:06:39 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Sigh. I only grepped WebCore for use of resetMultipleFormSubmission.  Why is it done in the cross-platform EventHandler.cpp for keyboard events, and in port-specific code for mouse events?

That&apos;s a good question. The only reason I know is because I added this to Chromium port a short while ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224228</commentid>
    <comment_count>18</comment_count>
      <attachid>55773</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 16:12:53 -0700</bug_when>
    <thetext>Created attachment 55773
removed bogus comment

Here it is again, without the bogus &quot;we don&apos;t clear it on mouse click&quot; comment.  I also fixed the strcmp style error the stylebot was complaining about.

I think this is still a good patch even if the port does clear the multiple form submission on mouse click, because  it fixes a clear bug that&apos;s usually hidden by clearing the flag on click.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224238</commentid>
    <comment_count>19</comment_count>
      <attachid>55773</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-11 16:25:08 -0700</bug_when>
    <thetext>Comment on attachment 55773
removed bogus comment

Needs a regression test or an explanation of why one can&apos;t be created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224241</commentid>
    <comment_count>20</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2010-05-11 16:37:04 -0700</bug_when>
    <thetext>There&apos;s an explanation of why a regression test can&apos;t be created in comment #9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467063</commentid>
    <comment_count>21</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-09-14 09:16:55 -0700</bug_when>
    <thetext>resetMultipleFormSubmission was moved to core in bug 28633, which I think will affect this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468066</commentid>
    <comment_count>22</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-09-15 14:07:25 -0700</bug_when>
    <thetext>bug 68185, to move resetMultipleFormSubmission to another abstraction layer, will certainly affect this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>52790</attachid>
            <date>2010-04-07 15:27:11 -0700</date>
            <delta_ts>2010-04-09 09:48:14 -0700</delta_ts>
            <desc>Manual test case</desc>
            <filename>submittest.html</filename>
            <type>text/html</type>
            <size>154</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8Zm9ybSBhY3Rpb249ImZpbGVub3Rmb3VuZC5odG1sIiBtZXRob2Q9IkdF
VCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImtleSIgdmFsdWU9InZhbHVlIj4KPGlucHV0
IHR5cGU9InN1Ym1pdCI+CjwvZm9ybT4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52794</attachid>
            <date>2010-04-07 15:43:39 -0700</date>
            <delta_ts>2010-05-11 15:46:52 -0700</delta_ts>
            <desc>suggested patch</desc>
            <filename>bug37236.patch</filename>
            <type>text/plain</type>
            <size>2438</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">RnJvbSBjN2VhZDg4ODY3ODVhZmMxMTYxZmRlNzU0NDJlYjY0OGRlMWIyZDg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2UgTWFzb24gPGptYXNvbkByaW0uY29tPgpEYXRlOiBXZWQs
IDcgQXByIDIwMTAgMTg6MzM6MjMgLTA0MDAKU3ViamVjdDogW1BBVENIXSAyMDEwLTA0LTA3ICBK
b2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgogICAgICAgIEFsd2F5cyBjbGVhciBtX3N1Ym1pdHRlZEZvcm1VUkwgd2hlbiBzdWJt
aXNzaW9uIGZhaWxzLCBpbnN0ZWFkIG9mIG9ubHkKICAgICAgICB3aGVuIGl0IG1hdGNoZXMgdGhl
IG9yaWdpbmFsIFVSTC4gIElmIHRoZSBtZXRob2QgaXMgR0VULAogICAgICAgIG1fc3VibWl0dGVk
Rm9ybVVSTCB3aWxsIGNvbnRhaW4gdGhlIGZvcm0gZGF0YSBhcyBhIHF1ZXJ5IHN0cmluZywgc28g
aXQKICAgICAgICB3aWxsIG5vdCBtYXRjaCB0aGUgb3JpZ2luYWwgVVJMLgoKICAgICAgICBObyBu
ZXcgdGVzdHMuIChPT1BTISkKCiAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgogICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcik6Ci0t
LQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKysrKysrKwog
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIHwgICAgNSArKy0tLQogMiBmaWxlcyBjaGFu
Z2VkLCAxNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY2OGFjNy4uM2E0YjRiNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMC0wNC0wNyAgSm9lIE1hc29uICA8am1hc29uQHJpbS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWx3YXlzIGNs
ZWFyIG1fc3VibWl0dGVkRm9ybVVSTCB3aGVuIHN1Ym1pc3Npb24gZmFpbHMsIGluc3RlYWQgb2Yg
b25seQorICAgICAgICB3aGVuIGl0IG1hdGNoZXMgdGhlIG9yaWdpbmFsIFVSTC4gIElmIHRoZSBt
ZXRob2QgaXMgR0VULAorICAgICAgICBtX3N1Ym1pdHRlZEZvcm1VUkwgd2lsbCBjb250YWluIHRo
ZSBmb3JtIGRhdGEgYXMgYSBxdWVyeSBzdHJpbmcsIHNvIGl0CisgICAgICAgIHdpbGwgbm90IG1h
dGNoIHRoZSBvcmlnaW5hbCBVUkwuCisgICAgICAgIAorICAgICAgICBObyBuZXcgdGVzdHMuIChP
T1BTISkKKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKToKKwog
MjAxMC0wMS0xNCAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnViYmVyLXN0YW1wZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggNmQyYzQ5MS4uYjJhZjBiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzM2Niw5
ICszMzY2LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcihj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgYm9vbCBpc0MKICAgICB9CiAKICAgICBpZiAobV9z
dGF0ZSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyKSB7Ci0gICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyLT5vcmlnaW5hbFJlcXVlc3RDb3B5KCkudXJsKCkpCi0gICAgICAgICAgICBt
X3N1Ym1pdHRlZEZvcm1VUkwgPSBLVVJMKCk7Ci0gICAgICAgICAgICAKKyAgICAgICAgcmVzZXRN
dWx0aXBsZUZvcm1TdWJtaXNzaW9uUHJvdGVjdGlvbigpOworCiAgICAgICAgIC8vIFdlIG1pZ2h0
IGhhdmUgbWFkZSBhIHBhZ2UgY2FjaGUgaXRlbSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBk
dWUgdG8gYW4gZXJyb3IgYmVmb3JlIHdlIGV2ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRv
IHRoZSBuZXcgcGFnZSAoYmVmb3JlIFdlYkZyYW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2Fs
IGhlcmUgaXMgdG8gcmVzdG9yZSBhbnkgc3RhdGUKICAgICAgICAgLy8gc28gdGhhdCB0aGUgZXhp
c3RpbmcgdmlldyAodGhhdCB3ZW5ldmVyIGdvdCBmYXIgZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBj
b250aW51ZSBiZWluZyB1c2VkLgotLSAKMS42LjUuMS4xMzY3LmdjZDQ4Cgo=
</data>
<flag name="review"
          id="36381"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="36382"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55765</attachid>
            <date>2010-05-11 15:41:52 -0700</date>
            <delta_ts>2010-06-11 12:12:02 -0700</delta_ts>
            <desc>Attempt at layout test (not working)</desc>
            <filename>multiple-submit-error-test.patch</filename>
            <type>text/plain</type>
            <size>5930</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9tdWx0aXBsZS1zdWJtaXQtZXJyb3Iu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbXVsdGlwbGUt
c3VibWl0LWVycm9yLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2MvbXVsdGlwbGUtc3VibWl0LWVycm9yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTA0IEBACis8IS0tIG9yaWdpbmFsIGZvcm0gc3VibWl0dGVkIHRocm91Z2ggcG9zdCAtLT4KKzxm
b3JtIG5hbWU9cG9zdEZvcm0xIGFjdGlvbj0ncmVzb3VyY2VzL25waC1tdWx0aXBsZS1zdWJtaXQt
ZXJyb3IuY2dpJyBtZXRob2Q9cG9zdD4KKzxpbnB1dCBpZD12YWwgdHlwZT1oaWRkZW4gbmFtZT1z
dWJtaXR0ZWQgdmFsdWU9J3ZhbHVlMSc+Cis8L2Zvcm0+CisKKzwhLS0gaWRlbnRpY2FsIHRvIHBv
c3RGb3JtMSAtLT4KKzxmb3JtIG5hbWU9cG9zdEZvcm0yIGFjdGlvbj0ncmVzb3VyY2VzL25waC1t
dWx0aXBsZS1zdWJtaXQtZXJyb3IuY2dpJyBtZXRob2Q9cG9zdD4KKzxpbnB1dCBpZD12YWwgdHlw
ZT1oaWRkZW4gbmFtZT1zdWJtaXR0ZWQgdmFsdWU9J3ZhbHVlMSc+Cis8L2Zvcm0+CisKKzwhLS0g
aWRlbnRpY2FsIHRvIHBvc3RGb3JtMSBhbmQgcG9zdEZvcm0yIGJ1dCB3aXRoIGRpZmZlcmVudCBw
YXJhbWV0ZXJzIC0tPgorPGZvcm0gbmFtZT1wb3N0Rm9ybTMgYWN0aW9uPSdyZXNvdXJjZXMvbnBo
LW11bHRpcGxlLXN1Ym1pdC1lcnJvci5jZ2knIG1ldGhvZD1wb3N0PgorPGlucHV0IGlkPXZhbCB0
eXBlPWhpZGRlbiBuYW1lPXN1Ym1pdHRlZCB2YWx1ZT0ndmFsdWUyJz4KKzwvZm9ybT4KKworPCEt
LSBmb3JtIHN1Ym1pdHRlZCB0aG91Z2ggZ2V0IC0tPgorPGZvcm0gbmFtZT1nZXRGb3JtMSBhY3Rp
b249J3Jlc291cmNlcy9ucGgtbXVsdGlwbGUtc3VibWl0LWVycm9yLmNnaScgbWV0aG9kPWdldD4K
KzxpbnB1dCBpZD12YWwgdHlwZT1oaWRkZW4gbmFtZT1zdWJtaXR0ZWQgdmFsdWU9J3ZhbHVlMyc+
Cis8L2Zvcm0+CisKKzwhLS0gaWRlbnRpY2FsIHRvIGdldEZvcm0xIC0tPgorPGZvcm0gbmFtZT1n
ZXRGb3JtMiBhY3Rpb249J3Jlc291cmNlcy9ucGgtbXVsdGlwbGUtc3VibWl0LWVycm9yLmNnaScg
bWV0aG9kPWdldD4KKzxpbnB1dCBpZD12YWwgdHlwZT1oaWRkZW4gbmFtZT1zdWJtaXR0ZWQgdmFs
dWU9J3ZhbHVlMyc+Cis8L2Zvcm0+CisKKzwhLS0gaWRlbnRpY2FsIHRvIGdldEZvcm0xIGFuZCBn
ZXRGb3JtMiBidXQgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycyAtLT4KKzxmb3JtIG5hbWU9Z2V0
Rm9ybTMgYWN0aW9uPSdyZXNvdXJjZXMvbnBoLW11bHRpcGxlLXN1Ym1pdC1lcnJvci5jZ2knIG1l
dGhvZD1nZXQ+Cis8aW5wdXQgaWQ9dmFsIHR5cGU9aGlkZGVuIG5hbWU9c3VibWl0dGVkIHZhbHVl
PSd2YWx1ZTQnPgorPC9mb3JtPgorCisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gc2Vu
ZENvbW1hbmQodmFsdWUpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgIHJlcXVlc3Qub3BlbigiR0VUIiwgInJlc291cmNlcy9ucGgtbXVsdGlwbGUtc3VibWl0
LWVycm9yLmNnaT9jb21tYW5kPSIgKyB2YWx1ZSwgZmFsc2UpOworICAgIHJlcXVlc3Quc2VuZCgp
CisgICAgcmV0dXJuIHJlcXVlc3QucmVzcG9uc2VUZXh0OworfQorCisvLyBwb2xsIHRoZSBzZXJ2
ZXIgdW50aWwgaXQgcmV0dXJucyBhIHJlc3BvbnNlIGluZGljYXRpbmcgdGhlIGZvcm0gd2FzIHJl
Y2VpdmVkCitmdW5jdGlvbiBwb2xsRm9ybShjb250aW51YXRpb24pIHsKKyAgICB2YXIgcmVzcG9u
c2UgPSBzZW5kQ29tbWFuZCgicG9sbCIpOworICAgIGlmIChyZXNwb25zZSA9PSAiaW5pdCIpIHsK
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgcG9sbEZvcm0oY29udGludWF0aW9uKTsg
fSwgMTAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC53cml0ZSgiR290
IHJlc3BvbnNlOiAiICsgcmVzcG9uc2UgKyAiPGJyPiIpOworICAgIGNvbnRpbnVhdGlvbigpOwor
fQorCisvLyBraWNrIG9mZiB0aGUgcG9sbEZvcm0gbG9vcCAgICAgICAgIAorZnVuY3Rpb24gd2Fp
dEZvckZvcm0oZm9ybSwgY29udGludWF0aW9uKSB7CisgICAgZG9jdW1lbnQud3JpdGUoIldhaXRp
bmcgZm9yICIgKyBmb3JtLm5hbWUgKyAiPGJyPiIpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IHBvbGxGb3JtKGNvbnRpbnVhdGlvbik7IH0sIDEwMCk7Cit9CisKKy8vIHN1Ym1pdCBhIGZv
cm0sIHBvbGwgdGhlIHNlcnZlciB1bnRpbCBpdCBoYXMgcmVjZWl2ZWQgaXQsIGFuZCB0aGVuIGNh
bGwgdGhlCisvLyBjb250aW51YXRpb24KKy8vIHRoZSBzZXJ2ZXIgd2lsbCByZXR1cm4gYW4gZXJy
b3IgY29kZSB3aGVuZXZlciBpdCByZWNpZXZlcyBhIGZvcm0sIHNvIHdlIG5lZWQKKy8vIHRvIHVz
ZSBhbiBYTUxIdHRwUmVxdWVzdCB0byBhc2sgaXQgd2hldGhlciB0aGUgZm9ybSB3YXMgcmVjZWl2
ZWQgc2luY2UgdGhlcmUKKy8vIGlzIG5vIGV2ZW50IHRvIGNhdGNoIG9uIGVycm9yCitmdW5jdGlv
biBzdWJtaXRGb3JtQW5kQ29udGludWUoZm9ybSwgY29udGludWF0aW9uKSB7CisgICAgZG9jdW1l
bnQud3JpdGUoIlN1Ym1pdHRpbmcgIiArIGZvcm0ubmFtZSArICI8YnI+Iik7CisgICAgc2VuZENv
bW1hbmQoInJlc2V0Iik7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZm9ybS5zdWJtaXQo
KTsgfSwgMCk7CisgICAgd2FpdEZvckZvcm0oZm9ybSwgY29udGludWF0aW9uKTsKK30KKworLy8g
YWxsIGZvcm1zIHNob3VsZCBiZSBzdWJtaXR0ZWQgaW4gdGhpcyB0ZXN0LCBiZWNhdXNlIHRoZSBz
ZXJ2ZXIgcmV0dXJucyBhbiBlcnJvciB3aGljaCBjbGVhcnMgdGhlIG11bHRpcGxlIGZvcm0gc3Vi
bWlzc2lvbiBwcm90ZWN0aW9uCisKK3N1Ym1pdEZvcm1BbmRDb250aW51ZShkb2N1bWVudC5wb3N0
Rm9ybTEsIHBvc3RGb3JtMURvbmUpOworCitmdW5jdGlvbiBwb3N0Rm9ybTFEb25lKCkgeworICAg
IHN1Ym1pdEZvcm1BbmRDb250aW51ZShkb2N1bWVudC5wb3N0Rm9ybTIsIHBvc3RGb3JtMkRvbmUp
OworfQorCitmdW5jdGlvbiBwb3N0Rm9ybTJEb25lKCkgeworICAgIHN1Ym1pdEZvcm1BbmRDb250
aW51ZShkb2N1bWVudC5wb3N0Rm9ybTMsIHBvc3RGb3JtM0RvbmUpOworfQorCitmdW5jdGlvbiBw
b3N0Rm9ybTNEb25lKCkgeworICAgIHN1Ym1pdEZvcm1BbmRDb250aW51ZShkb2N1bWVudC5nZXRG
b3JtMSwgZ2V0Rm9ybTFEb25lKTsKK30KKworZnVuY3Rpb24gZ2V0Rm9ybTFEb25lKCkgeworICAg
IHN1Ym1pdEZvcm1BbmRDb250aW51ZShkb2N1bWVudC5nZXRGb3JtMiwgZ2V0Rm9ybTJEb25lKTsK
K30KKworZnVuY3Rpb24gZ2V0Rm9ybTJEb25lKCkgeworICAgIHN1Ym1pdEZvcm1BbmRDb250aW51
ZShkb2N1bWVudC5nZXRGb3JtMywgZ2V0Rm9ybTNEb25lKTsKK30KKworZnVuY3Rpb24gZ2V0Rm9y
bTNEb25lKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL25waC1tdWx0
aXBsZS1zdWJtaXQtZXJyb3IuY2dpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvbnBoLW11bHRpcGxlLXN1Ym1pdC1lcnJvci5jZ2kJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL25waC1tdWx0aXBs
ZS1zdWJtaXQtZXJyb3IuY2dpCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisjIS91c3Iv
YmluL3BlcmwgLXcKKyMKKyMgVGhpcyBzY3JpcHQgbXVzdCBiZSBuYW1lZCBucGgtKiB0byBlbmFi
bGUgTm9uLVBhcnNlZCBIZWFkZXJzIG1vZGUsIHRvIHN0b3AKKyMgdGhlIEhUVFAgc2VydmVyIGZy
b20gcmVwbGFjaW5nIHRoZSBlcnJvciA1MDAgd2l0aCBhIGZvcm1hdHRlZCBlcnJvciBwYWdlLgor
Cit1c2Ugc3RyaWN0OworCit1c2UgRmNudGwgcXcoOmZsb2NrKTsKKworbXkgJHN0YXRlZmlsZSA9
ICIvdG1wL1dlYktpdC9tdWx0aXBsZS1zdWJtaXQtc3RhdGUudHh0IjsKKworIyBnZXQgdGhlIHF1
ZXJ5CitteSAkcXVlcnk7CitpZiAoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpIHsK
KyAgcmVhZChTVERJTiwgJHF1ZXJ5LCAkRU5WeydDT05URU5UX0xFTkdUSCd9KQorICAgICAgICAg
ICAgICB8fCBkaWUgIkNvdWxkIG5vdCBnZXQgcXVlcnlcbiI7Cit9IGVsc2UgeworICAkcXVlcnkg
PSAkRU5WeydRVUVSWV9TVFJJTkcnfTsKK30KK2Nob21wKCRxdWVyeSk7CisKK2lmICgkcXVlcnkg
ZXEgImNvbW1hbmQ9cmVzZXQiKSB7CisKKyAgIyBpbml0aWFsaXplIHRoZSBzdGF0ZSBmaWxlCisg
IG9wZW4gRklMRSwgIj4iLCAkc3RhdGVmaWxlIG9yIGRpZSAkITsKKyAgZmxvY2sgRklMRSwgTE9D
S19FWCBvciBkaWUgJCE7CisgIHByaW50IEZJTEUgImluaXRcbiI7CisKKyAgcHJpbnQgIkhUVFAv
MS4wIDIwMCBPS1xuIjsKKyAgcHJpbnQgIkNvbnRlbnQtTGVuZ3RoOiA0XG5cbiI7CisgIHByaW50
ICJpbml0XG4iOworICAKKyAgY2xvc2UgRklMRTsKKworfSBlbHNpZiAoJHF1ZXJ5IGVxICJjb21t
YW5kPXBvbGwiKSB7CisKKyAgIyBzZW5kIGJhY2sgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGF0ZSBm
aWxlCisgIG9wZW4gRklMRSwgJHN0YXRlZmlsZSBvciBkaWUgJCE7CisgIGZsb2NrIEZJTEUsIExP
Q0tfU0ggb3IgZGllICQhOworCisgIG15IEBsaW5lcyA9IDxGSUxFPjsKKyAgY2hvbXAoQGxpbmVz
KTsKKyAgbXkgJHN0ciA9IGpvaW4oIlxuIiwgQGxpbmVzKTsKKyAgbXkgJHN0ckxlbmd0aCA9IGxl
bmd0aCgkc3RyKTsKKworICBwcmludCAiSFRUUC8xLjAgMjAwIE9LXG4iOworICBwcmludCAiQ29u
dGVudC1MZW5ndGg6ICRzdHJMZW5ndGhcblxuIjsKKyAgcHJpbnQgIiRzdHJcbiI7CisKKyAgY2xv
c2UgRklMRTsKKworfSBlbHNlIHsKKworICAjIHdyaXRlIHRoZSBxdWVyeSB0byB0aGUgc3RhdGUg
ZmlsZSBhbmQgcmV0dXJuIGFuIGVycm9yCisgIG9wZW4gRklMRSwgIj4iLCAkc3RhdGVmaWxlIG9y
IGRpZSAkITsKKyAgZmxvY2sgRklMRSwgTE9DS19FWCBvciBkaWUgJCE7CisgIHByaW50IEZJTEUg
IiRxdWVyeVxuIjsKKworICAjIFNlbmQgYW4gZXJyb3Igd2l0aG91dCBhIHBheWxvYWQuICBDb250
ZW50LVR5cGUgYW5kIENvbnRlbnQtTGVuZ3RoIGFyZSBzdGlsbAorICAjIG5lZWRlZCwgb3IgZWxz
ZSBlaXRoZXIgdGhlIEhUVFAgc2VydmVyIG9yIHRoZSBuZXR3b3JrIHN0YWNrIHdpbGwgc3dhbGxv
dworICAjIHRoZSByZXNwb25zZS4KKyAgcHJpbnQgIkhUVFAvMS4wIDUwMCBTdWJtaXQgZXJyb3Jc
biI7CisgIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cbiI7CisgIHByaW50ICJDb250
ZW50LUxlbmd0aDogMFxuXG4iOworCisgIGNsb3NlIEZJTEU7CisKK30KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvbnBoLW11bHRpcGxl
LXN1Ym1pdC1lcnJvci5jZ2kKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAq
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55768</attachid>
            <date>2010-05-11 15:46:52 -0700</date>
            <delta_ts>2010-05-11 15:57:11 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>multiple-form-error.patch</filename>
            <type>text/plain</type>
            <size>5074</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDExNWQ5NS4uYjRkZGQ2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMSAgSm9lIE1hc29uICA8
am1hc29uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBjaGVja2luZyBpZiBtdWx0aXBsZSBmb3JtIHN1Ym1pc3Npb24gcHJvdGVj
dGlvbiBzaG91bGQgYmUgY2xlYXJlZAorICAgICAgICBiZWNhdXNlIGEgZm9ybSBzdWJtaXNzaW9u
IGhhcyBmYWlsZWQsIGluY2x1ZGUgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgaW4KKyAgICAgICAgdGhl
IHN1Ym1pdHRlZCBmb3JtIFVSTC4gIEZpeGVzIGEgYnVnIHdoZXJlIHRoZSBwcm90ZWN0aW9uIGlz
IG5vdAorICAgICAgICBjbGVhcmVkIGZvciBmb3JtcyBzdWJtaXR0ZWQgd2l0aCBHRVQsIGJlY2F1
c2UgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgd2VyZQorICAgICAgICBhZGRlZCBhZnRlciBzYXZpbmcg
dGhlIGZvcm0gc3VibWlzc2lvbiBVUkwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRyZWF0QHJp
bS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCA2NTRlZWU4Li43YWNiOTZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00
NzcsMTEgKzQ3NywxOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKGNvbnN0IGNoYXIq
IGFjdGlvbiwgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8RgogICAgIC8vIEZJWE1FOiBG
cmFtZSB0YXJnZXRpbmcgaXMgb25seSBvbmUgb2YgdGhlIHdheXMgdGhlIHN1Ym1pc3Npb24gY291
bGQgZW5kIHVwIGRvaW5nIHNvbWV0aGluZyBvdGhlcgogICAgIC8vIHRoYW4gcmVwbGFjaW5nIHRo
aXMgZnJhbWUncyBjb250ZW50LCBzbyB0aGlzIGNoZWNrIGlzIGZsYXdlZC4gT24gdGhlIG90aGVy
IGhhbmQsIHRoZSBjaGVjayBpcyBoYXJkbHkKICAgICAvLyBuZWVkZWQgYW55IG1vcmUgbm93IHRo
YXQgd2UgcmVzZXQgbV9zdWJtaXR0ZWRGb3JtVVJMIG9uIGVhY2ggbW91c2Ugb3Iga2V5IGRvd24g
ZXZlbnQuCisgICAgLy8gKE5lc3RlZCBGSVhNRTogZXhjZXB0IHdlIGRvbid0IHJlc2V0IGl0IG9u
IG1vdXNlIGV2ZW50cywgb25seSBrZXlkb3duLgorICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IGJl
Y2F1c2UgcGFydCBvZiB0aGUgcG9pbnQgaXMgdG8gcHJldmVudCB0aGUgdXNlciBmcm9tCisgICAg
Ly8gYWNjaWRlbnRhbGx5IGNsaWNraW5nIHR3aWNlIG9uIGltcG9ydGFudCBmb3JtcyBsaWtlIDEt
Y2xpY2sgb3JkZXJzLikKIAogICAgIGlmIChtX2ZyYW1lLT50cmVlKCktPmlzRGVzY2VuZGFudE9m
KHRhcmdldEZyYW1lKSkgeworICAgICAgICAvLyBjb21wYXJlIHRoZSBzdWJtaXR0ZWQgVVJMIHdp
dGhvdXQgaW5jbHVkaW5nIGFueSBxdWVyeSBzdHJpbmcgYWRkZWQKKyAgICAgICAgLy8gYnkgR0VU
LCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVzdWJtaXQgaWYgb25seSB0aGUgcGFyYW1ldGVy
cworICAgICAgICAvLyBoYXZlIGNoYW5nZWQuICAoRm9yIGV4YW1wbGUsIGlmIG9ubHkgYSB0aW1l
c3RhbXAgaGFzIGJlZW4gdXBkYXRlZC4pCiAgICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwg
PT0gdSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0g
dTsKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5ID0gdTsKICAgICB9CiAKICAg
ICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jbGll
bnQoKSk7CkBAIC00ODksOSArNDk2LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0o
Y29uc3QgY2hhciogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxGCiAgICAg
aWYgKCFtX291dGdvaW5nUmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICBmcmFtZVJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUFJlZmVycmVyKG1fb3V0Z29pbmdSZWZlcnJlcik7CiAK
LSAgICBpZiAoc3RyY21wKGFjdGlvbiwgIkdFVCIpID09IDApCisgICAgaWYgKHN0cmNtcChhY3Rp
b24sICJHRVQiKSA9PSAwKSB7CiAgICAgICAgIHUuc2V0UXVlcnkoZm9ybURhdGEtPmZsYXR0ZW5U
b1N0cmluZygpKTsKLSAgICBlbHNlIHsKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1
ZXJ5ID0gdTsKKyAgICB9IGVsc2UgewogICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkuc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0SFRUUEJvZHkoZm9ybURhdGEpOwogCkBAIC0xNTE1LDYgKzE1MjMsNyBA
QCBib29sIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiB2b2lkIEZyYW1l
TG9hZGVyOjpyZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uKCkKIHsKICAgICBt
X3N1Ym1pdHRlZEZvcm1VUkwgPSBLVVJMKCk7CisgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1
ZXJ5ID0gS1VSTCgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRFbmNvZGluZyhjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKQEAgLTM0MjUsOCArMzQzNCw4IEBAIHZvaWQg
RnJhbWVMb2FkZXI6OnJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIGJvb2wgaXNDCiAgICAgfQogCiAgICAgaWYgKG1fc3RhdGUgPT0gRnJhbWVTdGF0
ZVByb3Zpc2lvbmFsICYmIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcikgewotICAgICAgICBp
ZiAobV9zdWJtaXR0ZWRGb3JtVVJMID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+b3Jp
Z2luYWxSZXF1ZXN0Q29weSgpLnVybCgpKQotICAgICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJM
ID0gS1VSTCgpOworICAgICAgICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5ID09IG1f
cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpLnVybCgpKQor
ICAgICAgICAgICAgcmVzZXRNdWx0aXBsZUZvcm1TdWJtaXNzaW9uUHJvdGVjdGlvbigpOwogICAg
ICAgICAgICAgCiAgICAgICAgIC8vIFdlIG1pZ2h0IGhhdmUgbWFkZSBhIHBhZ2UgY2FjaGUgaXRl
bSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8gYW4gZXJyb3IgYmVmb3JlIHdlIGV2
ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgcGFnZSAoYmVmb3JlIFdlYkZy
YW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUgaXMgdG8gcmVzdG9yZSBhbnkgc3Rh
dGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDM5ZDUyMGYuLjQ0YjZlM2MgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCi0gKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMDkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDktMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEwLDYgKzUxMCwxMyBAQCBw
cml2YXRlOgogCiAgICAgS1VSTCBtX3N1Ym1pdHRlZEZvcm1VUkw7CiAKKyAgICAvLyBGb3JtcyBz
dWJtaXR0ZWQgd2l0aCBHRVQgaGF2ZSB0aGUgZGF0YSBhZGRlZCB0byB0aGUgVVJMIGFzIHF1ZXJ5
CisgICAgLy8gcGFyYW1ldGVycy4gIFRoaXMgaXMgYSBjb3B5IG9mIG1fc3VibWl0dGVkRm9ybVVS
TCB3aXRoIHRoZSB0aG9zZSBxdWVyeQorICAgIC8vIHBhcmFtZXRlcnMgYWRkZWQuICBtX3N1Ym1p
dHRlZEZvcm1VUkwgY2FuIGFsc28gaGF2ZSBxdWVyeSBwYXJhbWV0ZXJzIGlmCisgICAgLy8gdGhl
eSB3ZXJlIHBhcnQgb2YgdGhlIG9yaWdpbmFsIFVSTC4gIElmIHRoZSBmb3JtIHdhcyBub3Qgc3Vi
bWl0dGVkIHdpdGgKKyAgICAvLyBHRVQsIHRoaXMgd2lsbCBiZSBpZGVudGljYWwgdG8gbV9zdWJt
aXR0ZWRGb3JtVVJMLgorICAgIEtVUkwgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5OworCiAg
ICAgVGltZXI8RnJhbWVMb2FkZXI+IG1fY2hlY2tUaW1lcjsKICAgICBib29sIG1fc2hvdWxkQ2Fs
bENoZWNrQ29tcGxldGVkOwogICAgIGJvb2wgbV9zaG91bGRDYWxsQ2hlY2tMb2FkQ29tcGxldGU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55771</attachid>
            <date>2010-05-11 15:57:11 -0700</date>
            <delta_ts>2010-05-11 16:12:53 -0700</delta_ts>
            <desc>updated patch, with updated copyright</desc>
            <filename>multiple-form-error.patch</filename>
            <type>text/plain</type>
            <size>5546</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGRmZmRmZi4uZTZiYzdjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMSAgSm9lIE1hc29uICA8
am1hc29uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBjaGVja2luZyBpZiBtdWx0aXBsZSBmb3JtIHN1Ym1pc3Npb24gcHJvdGVj
dGlvbiBzaG91bGQgYmUgY2xlYXJlZAorICAgICAgICBiZWNhdXNlIGEgZm9ybSBzdWJtaXNzaW9u
IGhhcyBmYWlsZWQsIGluY2x1ZGUgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgaW4KKyAgICAgICAgdGhl
IHN1Ym1pdHRlZCBmb3JtIFVSTC4gIEZpeGVzIGEgYnVnIHdoZXJlIHRoZSBwcm90ZWN0aW9uIGlz
IG5vdAorICAgICAgICBjbGVhcmVkIGZvciBmb3JtcyBzdWJtaXR0ZWQgd2l0aCBHRVQsIGJlY2F1
c2UgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgd2VyZQorICAgICAgICBhZGRlZCBhZnRlciBzYXZpbmcg
dGhlIGZvcm0gc3VibWlzc2lvbiBVUkwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTA1LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3b3JsZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCA2Y2Y5MDg3Li4yMDhjODY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zLDcgKzMsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS0y
MDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC00OTgsMTEgKzQ5OCwxOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKGNvbnN0
IGNoYXIqIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8RgogICAgIC8vIEZJ
WE1FOiBGcmFtZSB0YXJnZXRpbmcgaXMgb25seSBvbmUgb2YgdGhlIHdheXMgdGhlIHN1Ym1pc3Np
b24gY291bGQgZW5kIHVwIGRvaW5nIHNvbWV0aGluZyBvdGhlcgogICAgIC8vIHRoYW4gcmVwbGFj
aW5nIHRoaXMgZnJhbWUncyBjb250ZW50LCBzbyB0aGlzIGNoZWNrIGlzIGZsYXdlZC4gT24gdGhl
IG90aGVyIGhhbmQsIHRoZSBjaGVjayBpcyBoYXJkbHkKICAgICAvLyBuZWVkZWQgYW55IG1vcmUg
bm93IHRoYXQgd2UgcmVzZXQgbV9zdWJtaXR0ZWRGb3JtVVJMIG9uIGVhY2ggbW91c2Ugb3Iga2V5
IGRvd24gZXZlbnQuCisgICAgLy8gKE5lc3RlZCBGSVhNRTogZXhjZXB0IHdlIGRvbid0IHJlc2V0
IGl0IG9uIG1vdXNlIGV2ZW50cywgb25seSBrZXlkb3duLgorICAgIC8vIFRoaXMgaXMgaW1wb3J0
YW50IGJlY2F1c2UgcGFydCBvZiB0aGUgcG9pbnQgaXMgdG8gcHJldmVudCB0aGUgdXNlciBmcm9t
CisgICAgLy8gYWNjaWRlbnRhbGx5IGNsaWNraW5nIHR3aWNlIG9uIGltcG9ydGFudCBmb3JtcyBs
aWtlIDEtY2xpY2sgb3JkZXJzLikKIAogICAgIGlmIChtX2ZyYW1lLT50cmVlKCktPmlzRGVzY2Vu
ZGFudE9mKHRhcmdldEZyYW1lKSkgeworICAgICAgICAvLyBjb21wYXJlIHRoZSBzdWJtaXR0ZWQg
VVJMIHdpdGhvdXQgaW5jbHVkaW5nIGFueSBxdWVyeSBzdHJpbmcgYWRkZWQKKyAgICAgICAgLy8g
YnkgR0VULCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVzdWJtaXQgaWYgb25seSB0aGUgcGFy
YW1ldGVycworICAgICAgICAvLyBoYXZlIGNoYW5nZWQuICAoRm9yIGV4YW1wbGUsIGlmIG9ubHkg
YSB0aW1lc3RhbXAgaGFzIGJlZW4gdXBkYXRlZC4pCiAgICAgICAgIGlmIChtX3N1Ym1pdHRlZEZv
cm1VUkwgPT0gdSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9zdWJtaXR0ZWRGb3Jt
VVJMID0gdTsKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5ID0gdTsKICAgICB9
CiAKICAgICBmb3JtRGF0YS0+Z2VuZXJhdGVGaWxlcyhtX2ZyYW1lLT5kb2N1bWVudCgpKTsKQEAg
LTUxMCw5ICs1MTcsMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShjb25zdCBjaGFy
KiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPEYKICAgICBpZiAoIW1fb3V0
Z29pbmdSZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS5zZXRIVFRQUmVmZXJyZXIobV9vdXRnb2luZ1JlZmVycmVyKTsKIAotICAgIGlmIChz
dHJjbXAoYWN0aW9uLCAiR0VUIikgPT0gMCkKKyAgICBpZiAoc3RyY21wKGFjdGlvbiwgIkdFVCIp
ID09IDApIHsKICAgICAgICAgdS5zZXRRdWVyeShmb3JtRGF0YS0+ZmxhdHRlblRvU3RyaW5nKCkp
OwotICAgIGVsc2UgeworICAgICAgICBtX3N1Ym1pdHRlZEZvcm1VUkxXaXRoUXVlcnkgPSB1Owor
ICAgIH0gZWxzZSB7CiAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRI
VFRQTWV0aG9kKCJQT1NUIik7CiAgICAgICAgIGZyYW1lUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KS5zZXRIVFRQQm9keShmb3JtRGF0YSk7CiAKQEAgLTEzNjksNiArMTM3Nyw3IEBAIGJvb2wgRnJh
bWVMb2FkZXI6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKIHZvaWQgRnJhbWVMb2FkZXI6OnJl
c2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24oKQogewogICAgIG1fc3VibWl0dGVk
Rm9ybVVSTCA9IEtVUkwoKTsKKyAgICBtX3N1Ym1pdHRlZEZvcm1VUkxXaXRoUXVlcnkgPSBLVVJM
KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OndpbGxTZXRFbmNvZGluZygpCkBAIC0zMzAxLDgg
KzMzMTAsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBib29sIGlzQwogICAgIH0KIAogICAgIGlmIChtX3N0
YXRlID09IEZyYW1lU3RhdGVQcm92aXNpb25hbCAmJiBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2Fk
ZXIpIHsKLSAgICAgICAgaWYgKG1fc3VibWl0dGVkRm9ybVVSTCA9PSBtX3Byb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXItPm9yaWdpbmFsUmVxdWVzdENvcHkoKS51cmwoKSkKLSAgICAgICAgICAgIG1f
c3VibWl0dGVkRm9ybVVSTCA9IEtVUkwoKTsKKyAgICAgICAgaWYgKG1fc3VibWl0dGVkRm9ybVVS
TFdpdGhRdWVyeSA9PSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPm9yaWdpbmFsUmVxdWVz
dENvcHkoKS51cmwoKSkKKyAgICAgICAgICAgIHJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblBy
b3RlY3Rpb24oKTsKICAgICAgICAgICAgIAogICAgICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUg
YSBwYWdlIGNhY2hlIGl0ZW0sIGJ1dCBub3cgd2UncmUgYmFpbGluZyBvdXQgZHVlIHRvIGFuIGVy
cm9yIGJlZm9yZSB3ZSBldmVyCiAgICAgICAgIC8vIHRyYW5zaXRpb25lZCB0byB0aGUgbmV3IHBh
Z2UgKGJlZm9yZSBXZWJGcmFtZVN0YXRlID09IGNvbW1pdCkuICBUaGUgZ29hbCBoZXJlIGlzIHRv
IHJlc3RvcmUgYW55IHN0YXRlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCAxOTIyMzRiLi4yODlkOGUy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LTIwMTAuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUx
NCw2ICs1MTQsMTMgQEAgcHJpdmF0ZToKIAogICAgIEtVUkwgbV9zdWJtaXR0ZWRGb3JtVVJMOwog
CisgICAgLy8gRm9ybXMgc3VibWl0dGVkIHdpdGggR0VUIGhhdmUgdGhlIGRhdGEgYWRkZWQgdG8g
dGhlIFVSTCBhcyBxdWVyeQorICAgIC8vIHBhcmFtZXRlcnMuICBUaGlzIGlzIGEgY29weSBvZiBt
X3N1Ym1pdHRlZEZvcm1VUkwgd2l0aCB0aGUgdGhvc2UgcXVlcnkKKyAgICAvLyBwYXJhbWV0ZXJz
IGFkZGVkLiAgbV9zdWJtaXR0ZWRGb3JtVVJMIGNhbiBhbHNvIGhhdmUgcXVlcnkgcGFyYW1ldGVy
cyBpZgorICAgIC8vIHRoZXkgd2VyZSBwYXJ0IG9mIHRoZSBvcmlnaW5hbCBVUkwuICBJZiB0aGUg
Zm9ybSB3YXMgbm90IHN1Ym1pdHRlZCB3aXRoCisgICAgLy8gR0VULCB0aGlzIHdpbGwgYmUgaWRl
bnRpY2FsIHRvIG1fc3VibWl0dGVkRm9ybVVSTC4KKyAgICBLVVJMIG1fc3VibWl0dGVkRm9ybVVS
TFdpdGhRdWVyeTsKKwogICAgIFRpbWVyPEZyYW1lTG9hZGVyPiBtX2NoZWNrVGltZXI7CiAgICAg
Ym9vbCBtX3Nob3VsZENhbGxDaGVja0NvbXBsZXRlZDsKICAgICBib29sIG1fc2hvdWxkQ2FsbENo
ZWNrTG9hZENvbXBsZXRlOwo=
</data>
<flag name="review"
          id="40039"
          type_id="1"
          status="-"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="40040"
          type_id="3"
          status="-"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55773</attachid>
            <date>2010-05-11 16:12:53 -0700</date>
            <delta_ts>2010-05-11 16:25:08 -0700</delta_ts>
            <desc>removed bogus comment</desc>
            <filename>multiple-form-error.patch</filename>
            <type>text/plain</type>
            <size>5091</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGRmZmRmZi4uZTZiYzdjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMSAgSm9lIE1hc29uICA8
am1hc29uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBjaGVja2luZyBpZiBtdWx0aXBsZSBmb3JtIHN1Ym1pc3Npb24gcHJvdGVj
dGlvbiBzaG91bGQgYmUgY2xlYXJlZAorICAgICAgICBiZWNhdXNlIGEgZm9ybSBzdWJtaXNzaW9u
IGhhcyBmYWlsZWQsIGluY2x1ZGUgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgaW4KKyAgICAgICAgdGhl
IHN1Ym1pdHRlZCBmb3JtIFVSTC4gIEZpeGVzIGEgYnVnIHdoZXJlIHRoZSBwcm90ZWN0aW9uIGlz
IG5vdAorICAgICAgICBjbGVhcmVkIGZvciBmb3JtcyBzdWJtaXR0ZWQgd2l0aCBHRVQsIGJlY2F1
c2UgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgd2VyZQorICAgICAgICBhZGRlZCBhZnRlciBzYXZpbmcg
dGhlIGZvcm0gc3VibWlzc2lvbiBVUkwuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnJlc2V0TXVsdGlwbGVGb3JtU3VibWlzc2lvblByb3RlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVkTWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5oOgorCiAyMDEwLTA1LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSB3b3JsZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCA2Y2Y5MDg3Li5iMDk2OTA1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zLDcgKzMsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS0y
MDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01MDAsOSArNTAwLDEzIEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oY29uc3Qg
Y2hhciogYWN0aW9uLCBjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxGCiAgICAgLy8gbmVl
ZGVkIGFueSBtb3JlIG5vdyB0aGF0IHdlIHJlc2V0IG1fc3VibWl0dGVkRm9ybVVSTCBvbiBlYWNo
IG1vdXNlIG9yIGtleSBkb3duIGV2ZW50LgogCiAgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+aXNE
ZXNjZW5kYW50T2YodGFyZ2V0RnJhbWUpKSB7CisgICAgICAgIC8vIGNvbXBhcmUgdGhlIHN1Ym1p
dHRlZCBVUkwgd2l0aG91dCBpbmNsdWRpbmcgYW55IHF1ZXJ5IHN0cmluZyBhZGRlZAorICAgICAg
ICAvLyBieSBHRVQsIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZXN1Ym1pdCBpZiBvbmx5IHRo
ZSBwYXJhbWV0ZXJzCisgICAgICAgIC8vIGhhdmUgY2hhbmdlZC4gIChGb3IgZXhhbXBsZSwgaWYg
b25seSBhIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkLikKICAgICAgICAgaWYgKG1fc3VibWl0
dGVkRm9ybVVSTCA9PSB1KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N1Ym1pdHRl
ZEZvcm1VUkwgPSB1OworICAgICAgICBtX3N1Ym1pdHRlZEZvcm1VUkxXaXRoUXVlcnkgPSB1Owog
ICAgIH0KIAogICAgIGZvcm1EYXRhLT5nZW5lcmF0ZUZpbGVzKG1fZnJhbWUtPmRvY3VtZW50KCkp
OwpAQCAtNTEwLDkgKzUxNCwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKGNvbnN0
IGNoYXIqIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8RgogICAgIGlmICgh
bV9vdXRnb2luZ1JlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgZnJhbWVSZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLnNldEhUVFBSZWZlcnJlcihtX291dGdvaW5nUmVmZXJyZXIpOwogCi0gICAg
aWYgKHN0cmNtcChhY3Rpb24sICJHRVQiKSA9PSAwKQorICAgIGlmICghc3RyY21wKGFjdGlvbiwg
IkdFVCIpKSB7CiAgICAgICAgIHUuc2V0UXVlcnkoZm9ybURhdGEtPmZsYXR0ZW5Ub1N0cmluZygp
KTsKLSAgICBlbHNlIHsKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5ID0gdTsK
KyAgICB9IGVsc2UgewogICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0
SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgICAgICBmcmFtZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuc2V0SFRUUEJvZHkoZm9ybURhdGEpOwogCkBAIC0xMzY5LDYgKzEzNzQsNyBAQCBib29sIEZy
YW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiB2b2lkIEZyYW1lTG9hZGVyOjpy
ZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Qcm90ZWN0aW9uKCkKIHsKICAgICBtX3N1Ym1pdHRl
ZEZvcm1VUkwgPSBLVVJMKCk7CisgICAgbV9zdWJtaXR0ZWRGb3JtVVJMV2l0aFF1ZXJ5ID0gS1VS
TCgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjp3aWxsU2V0RW5jb2RpbmcoKQpAQCAtMzMwMSw4
ICszMzA3LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6cmVjZWl2ZWRNYWluUmVzb3VyY2VFcnJvcihj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgYm9vbCBpc0MKICAgICB9CiAKICAgICBpZiAobV9z
dGF0ZSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyKSB7Ci0gICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1VUkwgPT0gbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyLT5vcmlnaW5hbFJlcXVlc3RDb3B5KCkudXJsKCkpCi0gICAgICAgICAgICBt
X3N1Ym1pdHRlZEZvcm1VUkwgPSBLVVJMKCk7CisgICAgICAgIGlmIChtX3N1Ym1pdHRlZEZvcm1V
UkxXaXRoUXVlcnkgPT0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5vcmlnaW5hbFJlcXVl
c3RDb3B5KCkudXJsKCkpCisgICAgICAgICAgICByZXNldE11bHRpcGxlRm9ybVN1Ym1pc3Npb25Q
cm90ZWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBtYWRl
IGEgcGFnZSBjYWNoZSBpdGVtLCBidXQgbm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBhbiBl
cnJvciBiZWZvcmUgd2UgZXZlcgogICAgICAgICAvLyB0cmFuc2l0aW9uZWQgdG8gdGhlIG5ldyBw
YWdlIChiZWZvcmUgV2ViRnJhbWVTdGF0ZSA9PSBjb21taXQpLiAgVGhlIGdvYWwgaGVyZSBpcyB0
byByZXN0b3JlIGFueSBzdGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMTkyMjM0Yi4uMjg5ZDhl
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKLSAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAwOS0yMDEwLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
MTQsNiArNTE0LDEzIEBAIHByaXZhdGU6CiAKICAgICBLVVJMIG1fc3VibWl0dGVkRm9ybVVSTDsK
IAorICAgIC8vIEZvcm1zIHN1Ym1pdHRlZCB3aXRoIEdFVCBoYXZlIHRoZSBkYXRhIGFkZGVkIHRv
IHRoZSBVUkwgYXMgcXVlcnkKKyAgICAvLyBwYXJhbWV0ZXJzLiAgVGhpcyBpcyBhIGNvcHkgb2Yg
bV9zdWJtaXR0ZWRGb3JtVVJMIHdpdGggdGhlIHRob3NlIHF1ZXJ5CisgICAgLy8gcGFyYW1ldGVy
cyBhZGRlZC4gIG1fc3VibWl0dGVkRm9ybVVSTCBjYW4gYWxzbyBoYXZlIHF1ZXJ5IHBhcmFtZXRl
cnMgaWYKKyAgICAvLyB0aGV5IHdlcmUgcGFydCBvZiB0aGUgb3JpZ2luYWwgVVJMLiAgSWYgdGhl
IGZvcm0gd2FzIG5vdCBzdWJtaXR0ZWQgd2l0aAorICAgIC8vIEdFVCwgdGhpcyB3aWxsIGJlIGlk
ZW50aWNhbCB0byBtX3N1Ym1pdHRlZEZvcm1VUkwuCisgICAgS1VSTCBtX3N1Ym1pdHRlZEZvcm1V
UkxXaXRoUXVlcnk7CisKICAgICBUaW1lcjxGcmFtZUxvYWRlcj4gbV9jaGVja1RpbWVyOwogICAg
IGJvb2wgbV9zaG91bGRDYWxsQ2hlY2tDb21wbGV0ZWQ7CiAgICAgYm9vbCBtX3Nob3VsZENhbGxD
aGVja0xvYWRDb21wbGV0ZTsK
</data>
<flag name="review"
          id="40042"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="40043"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>