[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]
[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]
User-Agent:       [%+ cgi.user_agent() %]
Build Identifier: [%+ cgi.param("buildid") %]

[%+ cgi.param("comment") IF cgi.param("comment") %]

[%+ IF cgi.param("reproducible") != "Choose one..." -%]
Reproducible: [%+ cgi.param("reproducible") %]
[% END %]

[% IF !(cgi.param("reproduce_steps").match('^1\.\s*2\.\s*3\.\s*$') || cgi.param("reproduce_steps").match('^\s*$')) %]
Steps to Reproduce:
[%+ cgi.param("reproduce_steps") %]
[% END %]

[% IF cgi.param("actual_results") -%]
Actual Results:  
[%+ cgi.param("actual_results") %]
[% END %]

[% IF cgi.param("expected_results") %]
Expected Results:  
[%+ cgi.param("expected_results") %]
[% END %]

[%+ cgi.param("additional_info") %]
