{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm <<
    /Fields [
      4 0 R
      10 0 R
      11 0 R
      12 0 R
    ]
    /DR 5 0 R
  >>
>>
endobj
{{object 2 0}} <<
  /Count 1
  /Kids [ 3 0 R ]
  /Type /Pages
>>
endobj
{{object 3 0}} <<
  /Type /Page
  /Parent 2 0 R
  /Resources 5 0 R
  /MediaBox [ 0 0 300 200 ]
  /Contents 8 0 R
  /Annots [
    4 0 R
    10 0 R
    11 0 R
    12 0 R
  ]
>>
endobj
{{object 4 0}} <<
  /Type /Annot
  /FT /Tx
  /T (Text Box)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [ 100 160 200 190 ]
  /Subtype /Widget
  /AA <<
    /C 16 0 R
    /F 17 0 R
    /K 18 0 R
    /V 19 0 R
  >>
>>
endobj
{{object 5 0}} <<
  /Font 6 0 R
>>
endobj
{{object 6 0}} <<
  /F1 7 0 R
>>
endobj
{{object 7 0}} <<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Helvetica
>>
endobj
{{object 8 0}} <<
  {{streamlen}}
>>
stream
endstream
endobj
{{object 10 0}} <<
  /Type /Annot
  /Subtype /Widget
  /FT /Tx
  /T (Text2)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 0 200 30]
  /V (123)
>>
endobj
{{object 11 0}} <<
  /Type /Annot
  /Subtype /Widget
  /FT /Tx
  /T (Text3)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 40 200 70]
  /V (456)
>>
endobj
{{object 12 0}} <<
  /Type /Annot
  /Subtype /Widget
  /FT /Tx
  /T (Text4)
  /DA (0 0 0 rg /F1 12 Tf)
  /Rect [100 80 200 110]
  /V (407.96)
>>
endobj
{{object 16 0}} <<
  /S /JavaScript
  /JS (
    app.alert('Unexpected script 16');
  )
>>
endobj
{{object 17 0}} <<
  /S /JavaScript
  /JS (
    function expect(initial, expression, expected) {
      try {
        event.value = initial;
        var actual = eval(expression);
        if (actual == expected) {
          app.alert('PASS: ' + expression + ' = ' + actual);
        } else {
          app.alert('FAIL: ' + expression + ' = ' + actual + ', expected ' + expected + " ");
        }
      } catch (e) {
        app.alert('ERROR: ' + e);
      }
    }

    function expectEventValue(initial, expression, expected) {
      try {
        event.value = initial;
        eval(expression);
        var actual = event.value;
        if (actual == expected) {
          app.alert('PASS: ' + expression + ' = ' + actual);
        } else {
          app.alert('FAIL: ' + expression + ' = ' + actual + ', expected ' + expected + " ");
        }
      } catch (e) {
        app.alert('ERROR: ' + e);
      }
    }

    function expectError(initial, expression) {
      try {
        event.value = initial;
        var actual = eval(expression);
        app.alert('FAIL: ' + expression + ' = ' + actual + ', expected to throw');
      } catch (e) {
        app.alert('PASS: ' + expression + ' threw ' + e);
      }
    }

    try {
      app.alert("*** starting test 1 ***");

      expectError('', "AFDate_Format()");
      expectError('', "AFDate_Format(1, 2)");
      expectEventValue("GMT", "AFDate_Format(1)", "1/1/70");
      expectEventValue("PDT", "AFDate_Format(1)", "5/9/14");
      expectEventValue("GMT", "AFDate_Format('blooey')", "1/1");
      expectEventValue("PDT", "AFDate_Format('blooey')", "5/9");

      app.alert("**********************");

      expectError('', "AFDate_FormatEx()");
      expectError('', "AFDate_FormatEx(1, 2)");
      expectEventValue("x", "AFDate_FormatEx(2)", "2");
      expectEventValue("x", "AFDate_FormatEx('blooey')", "blooey");
      expectEventValue("x", "AFDate_FormatEx('m/d')", "5/9");
      // TODO(crbug.com/572901): This is wrong. AFDate_FormatEx() should throw
      // an error like Adobe Acrobat.
      expectEventValue("12302015", "AFDate_FormatEx('mm/dd/yyyy')", "12/02/2015");
      expectEventValue("20122015", "AFDate_FormatEx('mm/dd/yyyy')", "05/09/2014");

      app.alert("**********************");

      expectError('', "AFDate_Keystroke()");
      expectError('', "AFDate_Keystroke(1, 2)");
      expectEventValue("04/19", "AFDate_Keystroke(2)", "04/19");
      expectEventValue("04/19/15", "AFDate_Keystroke('blooey')", "04/19/15");

      app.alert("**********************");

      expectError('', "AFDate_KeystrokeEx()");
      expectError('', "AFDate_KeystrokeEx(1, 2)");
      expectEventValue("x", "AFDate_KeystrokeEx(2)", "x");
      expectEventValue("x", "AFDate_KeystrokeEx('blooey')", "x");
      expectEventValue("x", "AFDate_KeystrokeEx('m/d')", "x");

      app.alert("**********************");

      expectError('', "AFExtractNums()");
      expectError('', "AFExtractNums(1, 2)");
      expect('', "AFExtractNums('100 200')", "100,200");

      app.alert("**********************");

      expectError('', "AFMakeNumber()");
      expectError('', "AFMakeNumber(1, 2)");
      expect('', "AFMakeNumber('2blooey')", 0);
      expect('', "AFMakeNumber(1)", 1);
      expect('', "AFMakeNumber('1.2')", 1.2);
      expect('', "AFMakeNumber('1,2')", 1.2);

      app.alert("**********************");

      expectError('', "AFMergeChange()");
      expectError('', "AFMergeChange(1, 2)");
      expect("one", "AFMergeChange(undefined)", "one");

      app.alert("**********************");

      expectError('', "AFNumber_Format()");
      expectError('', "AFNumber_Format(0, 1, 0, 0, '', false, 42)");
      expectEventValue("blooey", "AFNumber_Format(0, 1, 0, 0, '', false)", 0);
      expectEventValue(12, "AFNumber_Format(0, 1, 0, 0, '', false)", 12);

      app.alert("**********************");

      expectError('', "AFNumber_Keystroke()");
      expectError('', "AFNumber_Keystroke(1)");
      expectError("abc", "AFNumber_Keystroke(1, 2)");
      expectEventValue("123", "AFNumber_Keystroke(1, 2)", "123");
      expectEventValue("123", "AFNumber_Keystroke(1, 2, 3)", "123");

      app.alert("**********************");

      expectError('', "AFParseDateEx()");
      expectError('', "AFParseDateEx(1, 2, 3)");
      expect('', "AFParseDateEx(1, 2)", "1399672130000");

      app.alert("**********************");

      // Requires at least 2 arguments.
      expectError('', "AFPercent_Format()");
      expectError('', "AFPercent_Format(0)");

      // Extra arguments are ignored.
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0, 0, 0, 0)", "-512.3%");

      // There seems to be an extra bPercentPrepend parameter that may have been
      // added in later versions.
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 1)", "%-512.3");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0, 2)", "%-512.3");
      expectEventValue('', "AFPercent_Format(10, 0, 0)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 0, 1)", "%0.0000000000");
      expectEventValue('', "AFPercent_Format(10, 0, 2)", "%0.0000000000");

      expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 0)", "98,765,432,100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 0)", "98765432100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 0)", "98.765.432.100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 1)", "%98,765,432,100");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 1)", "%98765432100");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 1)", "%98.765.432.100");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 0, 2)", "%98,765,432,100");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 1, 2)", "%98765432100");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 2, 2)", "%98.765.432.100");

      // InvalidArgsError
      expectError(0, "AFPercent_Format(-3, 0)");
      expectError(0, "AFPercent_Format(-3, 1)");
      expectError(0, "AFPercent_Format(-1, 3)");
      expectError(0, "AFPercent_Format(0, -3)");
      expectError(0, "AFPercent_Format(0, -1)");
      expectError(0, "AFPercent_Format(0, 50)");
      expectError(0, "AFPercent_Format(0, 51)");

      expectEventValue('', "AFPercent_Format(0, 0)", "0%");
      expectEventValue('', "AFPercent_Format(0, 1)", "0%");
      expectEventValue('', "AFPercent_Format(0, 2)", "0%");
      expectEventValue('', "AFPercent_Format(0, 3)", "0%");
      expectEventValue('', "AFPercent_Format(0, 4)", "0%");
      expectEventValue('', "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue('', "AFPercent_Format(1, 1)", "0.0%");
      expectEventValue('', "AFPercent_Format(1, 2)", "0,0%");
      expectEventValue('', "AFPercent_Format(1, 3)", "0,0%");
      expectEventValue('', "AFPercent_Format(1, 4)", "0.0%");
      expectEventValue('', "AFPercent_Format(2, 0)", "0.00%");
      expectEventValue('', "AFPercent_Format(2, 1)", "0.00%");
      expectEventValue('', "AFPercent_Format(2, 2)", "0,00%");
      expectEventValue('', "AFPercent_Format(2, 3)", "0,00%");
      expectEventValue('', "AFPercent_Format(2, 4)", "0.00%");
      expectEventValue('', "AFPercent_Format(3, 0)", "0.000%");
      expectEventValue('', "AFPercent_Format(3, 1)", "0.000%");
      expectEventValue('', "AFPercent_Format(3, 2)", "0,000%");
      expectEventValue('', "AFPercent_Format(3, 3)", "0,000%");
      expectEventValue('', "AFPercent_Format(3, 4)", "0.000%");
      expectEventValue('', "AFPercent_Format(10, 0)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 1)", "0.0000000000%");
      expectEventValue('', "AFPercent_Format(10, 2)", "0,0000000000%");
      expectEventValue('', "AFPercent_Format(10, 3)", "0,0000000000%");
      expectEventValue('', "AFPercent_Format(10, 4)", "0.0000000000%");

      expectEventValue(0, "AFPercent_Format(0, 0)", "0%");
      expectEventValue(0, "AFPercent_Format(0, 1)", "0%");
      expectEventValue(0, "AFPercent_Format(0, 2)", "0%");
      expectEventValue(0, "AFPercent_Format(0, 3)", "0%");
      expectEventValue(0, "AFPercent_Format(0, 4)", "0%");
      expectEventValue(0, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0, "AFPercent_Format(1, 1)", "0.0%");
      expectEventValue(0, "AFPercent_Format(1, 2)", "0,0%");
      expectEventValue(0, "AFPercent_Format(1, 3)", "0,0%");
      expectEventValue(0, "AFPercent_Format(1, 4)", "0.0%");
      expectEventValue(0, "AFPercent_Format(2, 0)", "0.00%");
      expectEventValue(0, "AFPercent_Format(2, 1)", "0.00%");
      expectEventValue(0, "AFPercent_Format(2, 2)", "0,00%");
      expectEventValue(0, "AFPercent_Format(2, 3)", "0,00%");
      expectEventValue(0, "AFPercent_Format(2, 4)", "0.00%");
      expectEventValue(0, "AFPercent_Format(3, 0)", "0.000%");
      expectEventValue(0, "AFPercent_Format(3, 1)", "0.000%");
      expectEventValue(0, "AFPercent_Format(3, 2)", "0,000%");
      expectEventValue(0, "AFPercent_Format(3, 3)", "0,000%");
      expectEventValue(0, "AFPercent_Format(3, 4)", "0.000%");
      expectEventValue(0, "AFPercent_Format(10, 0)", "0.0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 1)", "0.0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 2)", "0,0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 3)", "0,0000000000%");
      expectEventValue(0, "AFPercent_Format(10, 4)", "0.0000000000%");

      expectEventValue(-5.1234, "AFPercent_Format(0, 0)", "-512%");
      expectEventValue(-5.1234, "AFPercent_Format(0, 1)", "-512%");
      expectEventValue(-5.1234, "AFPercent_Format(0, 2)", "-512%");
      expectEventValue(-5.1234, "AFPercent_Format(0, 3)", "-512%");
      expectEventValue(-5.1234, "AFPercent_Format(0, 4)", "-512%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 0)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 1)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 2)", "-512,3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 3)", "-512,3%");
      expectEventValue(-5.1234, "AFPercent_Format(1, 4)", "-512.3%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 0)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 1)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 2)", "-512,34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 3)", "-512,34%");
      expectEventValue(-5.1234, "AFPercent_Format(2, 4)", "-512.34%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 0)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 1)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 2)", "-512,340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 3)", "-512,340%");
      expectEventValue(-5.1234, "AFPercent_Format(3, 4)", "-512.340%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 0)", "-512.3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 1)", "-512.3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 2)", "-512,3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 3)", "-512,3400000000%");
      expectEventValue(-5.1234, "AFPercent_Format(10, 4)", "-512.3400000000%");

      expectEventValue(5.1234, "AFPercent_Format(0, 0)", "512%");
      expectEventValue(5.1234, "AFPercent_Format(0, 1)", "512%");
      expectEventValue(5.1234, "AFPercent_Format(0, 2)", "512%");
      expectEventValue(5.1234, "AFPercent_Format(0, 3)", "512%");
      expectEventValue(5.1234, "AFPercent_Format(0, 4)", "512%");
      expectEventValue(5.1234, "AFPercent_Format(1, 0)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 1)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 2)", "512,3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 3)", "512,3%");
      expectEventValue(5.1234, "AFPercent_Format(1, 4)", "512.3%");
      expectEventValue(5.1234, "AFPercent_Format(2, 0)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 1)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 2)", "512,34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 3)", "512,34%");
      expectEventValue(5.1234, "AFPercent_Format(2, 4)", "512.34%");
      expectEventValue(5.1234, "AFPercent_Format(3, 0)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 1)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 2)", "512,340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 3)", "512,340%");
      expectEventValue(5.1234, "AFPercent_Format(3, 4)", "512.340%");
      expectEventValue(5.1234, "AFPercent_Format(10, 0)", "512.3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 1)", "512.3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 2)", "512,3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 3)", "512,3400000000%");
      expectEventValue(5.1234, "AFPercent_Format(10, 4)", "512.3400000000%");

      expectEventValue(12.3456, "AFPercent_Format(1, 0)", "1,234.6%");
      expectEventValue(12.3456, "AFPercent_Format(4, 1)", "1234.5600%");

      expectEventValue(0.009876, "AFPercent_Format(0, 0)", "1%");
      expectEventValue(0.009876, "AFPercent_Format(0, 1)", "1%");
      expectEventValue(0.009876, "AFPercent_Format(0, 2)", "1%");
      expectEventValue(0.009876, "AFPercent_Format(0, 3)", "1%");
      expectEventValue(0.009876, "AFPercent_Format(0, 4)", "1%");
      expectEventValue(0.009876, "AFPercent_Format(1, 0)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 1)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 2)", "1,0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 3)", "1,0%");
      expectEventValue(0.009876, "AFPercent_Format(1, 4)", "1.0%");
      expectEventValue(0.009876, "AFPercent_Format(2, 0)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 1)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 2)", "0,99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 3)", "0,99%");
      expectEventValue(0.009876, "AFPercent_Format(2, 4)", "0.99%");
      expectEventValue(0.009876, "AFPercent_Format(3, 0)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 1)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 2)", "0,988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 3)", "0,988%");
      expectEventValue(0.009876, "AFPercent_Format(3, 4)", "0.988%");
      expectEventValue(0.009876, "AFPercent_Format(10, 0)", "0.9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 1)", "0.9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 2)", "0,9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 3)", "0,9876000000%");
      expectEventValue(0.009876, "AFPercent_Format(10, 4)", "0.9876000000%");

      expectEventValue(987654321.001234, "AFPercent_Format(0, 0)", "98,765,432,100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 1)", "98765432100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 2)", "98.765.432.100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 3)", "98765432100%");
      expectEventValue(987654321.001234, "AFPercent_Format(0, 4)", "98'765'432'100%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 0)", "98,765,432,100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 1)", "98765432100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 2)", "98.765.432.100,1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 3)", "98765432100,1%");
      expectEventValue(987654321.001234, "AFPercent_Format(1, 4)", "98'765'432'100.1%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 0)", "98,765,432,100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 1)", "98765432100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 2)", "98.765.432.100,12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 3)", "98765432100,12%");
      expectEventValue(987654321.001234, "AFPercent_Format(2, 4)", "98'765'432'100.12%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 0)", "98,765,432,100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 1)", "98765432100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 2)", "98.765.432.100,123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 3)", "98765432100,123%");
      expectEventValue(987654321.001234, "AFPercent_Format(3, 4)", "98'765'432'100.123%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 0)", "98,765,432,100.1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 1)", "98765432100.1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 2)", "98.765.432.100,1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 3)", "98765432100,1234130859%");
      expectEventValue(987654321.001234, "AFPercent_Format(10, 4)", "98'765'432'100.1234130859%");

      expectEventValue(987654321, "AFPercent_Format(0, 0)", "98,765,432,100%");
      expectEventValue(987654321, "AFPercent_Format(0, 1)", "98765432100%");
      expectEventValue(987654321, "AFPercent_Format(0, 2)", "98.765.432.100%");
      expectEventValue(987654321, "AFPercent_Format(0, 3)", "98765432100%");
      expectEventValue(987654321, "AFPercent_Format(0, 4)", "98'765'432'100%");
      expectEventValue(987654321, "AFPercent_Format(1, 0)", "98,765,432,100.0%");
      expectEventValue(987654321, "AFPercent_Format(1, 1)", "98765432100.0%");
      expectEventValue(987654321, "AFPercent_Format(1, 2)", "98.765.432.100,0%");
      expectEventValue(987654321, "AFPercent_Format(1, 3)", "98765432100,0%");
      expectEventValue(987654321, "AFPercent_Format(1, 4)", "98'765'432'100.0%");
      expectEventValue(987654321, "AFPercent_Format(2, 0)", "98,765,432,100.00%");
      expectEventValue(987654321, "AFPercent_Format(2, 1)", "98765432100.00%");
      expectEventValue(987654321, "AFPercent_Format(2, 2)", "98.765.432.100,00%");
      expectEventValue(987654321, "AFPercent_Format(2, 3)", "98765432100,00%");
      expectEventValue(987654321, "AFPercent_Format(2, 4)", "98'765'432'100.00%");
      expectEventValue(987654321, "AFPercent_Format(3, 0)", "98,765,432,100.000%");
      expectEventValue(987654321, "AFPercent_Format(3, 1)", "98765432100.000%");
      expectEventValue(987654321, "AFPercent_Format(3, 2)", "98.765.432.100,000%");
      expectEventValue(987654321, "AFPercent_Format(3, 3)", "98765432100,000%");
      expectEventValue(987654321, "AFPercent_Format(3, 4)", "98'765'432'100.000%");
      expectEventValue(987654321, "AFPercent_Format(10, 0)", "98,765,432,100.0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 1)", "98765432100.0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 2)", "98.765.432.100,0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 3)", "98765432100,0000000000%");
      expectEventValue(987654321, "AFPercent_Format(10, 4)", "98'765'432'100.0000000000%");

      expectEventValue(0.01, "AFPercent_Format(1, 0)", "1.0%");
      expectEventValue(0.001, "AFPercent_Format(1, 0)", "0.1%");
      expectEventValue(0.0001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.00001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.000001, "AFPercent_Format(1, 0)", "0.0%");
      expectEventValue(0.000001, "AFPercent_Format(10, 2)", "0,0001000000%");

      // Acrobat behaves strangely with smaller values.
      // expectEventValue(0.0000001, "AFPercent_Format(1, 0)", "-170.0%");
      // expectEventValue(0.00000001, "AFPercent_Format(1, 0)", "-180.0%");

      expectEventValue(0, "AFPercent_Format(20, 0)", "0.00000000000000000000%");
      expectEventValue(0, "AFPercent_Format(308, 0)", "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%");
      // Acrobat starts failing here.
      // expectEventValue(0, "AFPercent_Format(309, 0)", "-1.#IND000...000%");

      expectEventValue(0.000001, "AFPercent_Format(308, 0)", "0.00009999999999999999123964644631712417321978136897087097167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000%");
      // After 512, Acrobat probably ran out of buffer space.
      expectEventValue(0, "AFPercent_Format(513, 0)", "%");

      app.alert("**********************");

      expectError('', "AFPercent_Keystroke()");
      expectError('', "AFPercent_Keystroke(1)");
      expectError("abc", "AFPercent_Keystroke(1, 0)");
      expectEventValue(".123", "AFPercent_Keystroke(1, 0)", ".123");

      app.alert("**********************");

      expectError('', "AFRange_Validate()", '');
      expectError('', "AFRange_Validate(1, 2, 3, 4, 5)", '');
      expectEventValue("1", "AFRange_Validate(true, 2, true, 4)", "1");  // Notifies "between".
      expectEventValue("5", "AFRange_Validate(true, 2, true, 4)", "5");  // Notifies "between".
      expectEventValue("1", "AFRange_Validate(true, 2, false, 4)", "1");  // Notifies "greater".
      expectEventValue("5", "AFRange_Validate(false, 2, true, 4)", "5");  // Notifies "less".
      expectEventValue("3", "AFRange_Validate(true, 2, true, 4)", "3");   // No notification.
      expectEventValue("1", "AFRange_Validate(false, 2, true, 4)", "1");  // No notification.
      expectEventValue("5", "AFRange_Validate(true, 2, false, 4)", "5");  // No notification.

      app.alert("**********************");

      expectError('', "AFSimple()", 2);
      expectError('', "AFSimple(1, 2, 3, 4)");
      expectError('', "AFSimple(1, 2, 3)");
      expectError('', "AFSimple('nonesuch', 2, 3)");
      expect('', "AFSimple('AVG', 2, 3)", 2.5);
      expect('', "AFSimple('MIN', 2, 3)", 2);
      expect('', "AFSimple('MAX', 2, 3)", 3);
      expect('', "AFSimple('SUM', 2, 3)", 5);
      expect('', "AFSimple('PRD', 2, 3)", 6);
      expectError('', "AFSimple('AVG', 2, 'nonesuch')");
      expectError('', "AFSimple('MIN', 2, 'nonesuch')");
      expectError('', "AFSimple('MAX', 2, 'nonesuch')");
      expectError('', "AFSimple('SUM', 2, 'nonesuch')");
      expectError('', "AFSimple('PRD', 2, 'nonesuch')");

      app.alert("**********************");

      // These two should throw "TypeError", not "AFSimple_Calculate".
      // https://crbug.com/pdfium/1396
      expectError('', "AFSimple_Calculate()");
      expectError('', "AFSimple_Calculate(1)");
      // This should "pass", but currently throws an error.
      // https://crbug.com/pdfium/1396
      expectEventValue('', "AFSimple_Calculate('blooey', ['Text2', 'Text3'])", 0);
      // This should fail with TypeError, since a field does not exist, but
      // currently passes. https://crbug.com/pdfium/1396
      expectEventValue('', "AFSimple_Calculate('AVG', [1, 'nonesuch', {'crud': 32}])", 0);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text2', 'Text3'])", (123 + 456) / 2);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text2', 'Text3'])", 123 + 456);
      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text3'])", 123 * 456);
      expectEventValue('', "AFSimple_Calculate('MIN', ['Text2', 'Text3'])", 123);
      expectEventValue('', "AFSimple_Calculate('MAX', ['Text2', 'Text3'])", 456);
      expectEventValue('', "AFSimple_Calculate('AVG', 'Text2, Text3')", (123 + 456) / 2);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('MIN', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('MAX', ['Text4'])", 407.96);
      expectEventValue('', "AFSimple_Calculate('AVG', ['Text2', 'Text4'])", (123 + 407.96) / 2);
      expectEventValue('', "AFSimple_Calculate('SUM', ['Text2', 'Text4'])", 123 + 407.96);
      expectEventValue('', "AFSimple_Calculate('PRD', ['Text2', 'Text4'])", 50179.08);

      app.alert("**********************");

      expectError('', "AFSpecial_Format()", '');
      expectError('', "AFSpecial_Format(1, 2)", '');
      expectEventValue('', "AFSpecial_Format(0)", "");
      expectEventValue('', "AFSpecial_Format(1)", "-");
      expectEventValue('', "AFSpecial_Format(2)", "-");
      expectEventValue('', "AFSpecial_Format(3)", "--");
      expectEventValue("0123456789", "AFSpecial_Format(0)", "01234");
      expectEventValue("0123456789", "AFSpecial_Format(1)", "01234-5678");
      expectEventValue("0123456789", "AFSpecial_Format(2)", "(012) 345-6789");
      expectEventValue("0123456789", "AFSpecial_Format(3)", "012-34-5678");

      app.alert("**********************");

      expectError('', "AFSpecial_Keystroke()");
      expectError('', "AFSpecial_Keystroke(65, 66)");
      expectEventValue("abc", "AFSpecial_Keystroke(65)", "abc");

      app.alert("**********************");

      expectError('', "AFSpecial_KeystrokeEx()", '');
      expectEventValue("12345", "AFSpecial_KeystrokeEx('')", "12345");      // No notification.
      expectEventValue("123", "AFSpecial_KeystrokeEx('9999')", "123");      // Notifies invalid.
      expectEventValue("12345", "AFSpecial_KeystrokeEx('9999')", "12345");  // Notifies too long.
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('9999')", "abcd");    // Notifies invalid.
      expectEventValue("1234", "AFSpecial_KeystrokeEx('9999')", "1234");
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('XXXX')", "abcd");

      app.alert("**********************");

      expectError('', "AFTime_Format()");
      expectError('', "AFTime_Format(1, 2)");
      expectEventValue(0, "AFTime_Format(1)", "9:48 pm");

      app.alert("**********************");

      expectError('', "AFTime_FormatEx()");
      expectError('', "AFTime_FormatEx('blooey', 42)");
      expectEventValue(0, "AFTime_FormatEx('blooey')", "blooey");

      app.alert("**********************");

      expectError('', "AFTime_Keystroke()", '');
      expectError('', "AFTime_Keystroke(1, 2)", '');
      expectEventValue("12:03", "AFTime_Keystroke(65)", "12:03");

      app.alert("**********************");

      expectError('', "AFTime_KeystrokeEx()");
      expectError('', "AFTime_KeystrokeEx(1, 2)");
      expectEventValue("12:04", "AFTime_KeystrokeEx('blooey')", "12:04");

      app.alert("*** ending test 1 ***");
    } catch (e) {
      app.alert("Truly unexpected error occured: " + e);
    }
  )
>>
endobj
{{object 18 0}} <<
  /S /JavaScript
  /JS (
    // Re-run tests that depend on the "will commit" status of the event
    // that triggered their execution.
    try {
      app.alert("*** starting test 2 ***");

      expectError('', "AFDate_Keystroke()");
      expectError('', "AFDate_Keystroke(1, 2)");
      expectEventValue("04/19", "AFDate_Keystroke(2)", "04/19");
      expectEventValue("04/19/15", "AFDate_Keystroke('blooey')", "04/19/15");

      app.alert("**********************");

      expectError('', "AFNumber_Keystroke()");
      expectError('', "AFNumber_Keystroke(1)");
      expectError("abc", "AFNumber_Keystroke(1, 2)");
      expectEventValue("123", "AFNumber_Keystroke(1, 2)", "123");
      expectEventValue("123", "AFNumber_Keystroke(1, 2, 3)", "123");

      app.alert("**********************");

      expectError('', "AFSpecial_KeystrokeEx()", '');
      expectEventValue("12345", "AFSpecial_KeystrokeEx('')", "12345");      // No notification.
      expectEventValue("123", "AFSpecial_KeystrokeEx('9999')", "123");      // Notifies invalid.
      expectEventValue("12345", "AFSpecial_KeystrokeEx('9999')", "12345");  // Notifies too long.
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('9999')", "abcd");    // Notifies invalid.
      expectEventValue("1234", "AFSpecial_KeystrokeEx('9999')", "1234");
      expectEventValue("abcd", "AFSpecial_KeystrokeEx('XXXX')", "abcd");

      app.alert("**********************");

      expectError('', "AFMergeChange()");
      expectError('', "AFMergeChange(1, 2)");
      expect("one", "AFMergeChange(undefined)", "Aone");

      app.alert("*** ending test 2 ***");
    } catch (e) {
      app.alert("Truly unexpected error occured: " + e);
    }
  )
>>
endobj
{{object 19 0}} <<
  /S /JavaScript
  /JS (
    app.alert('Unexpected script 19');
  )
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
