{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm 4 0 R
>>
endobj
{{object 2 0}} <<
  /Type /Pages
  /Count 1
  /Kids [
    3 0 R
  ]
>>
endobj
% Page number 0.
{{object 3 0}} <<
  /Type /Page
  /Parent 2 0 R
  /Resources <<
    /Font <</F1 20 0 R>>
  >>
  /Annots [ 5 0 R ]
  /Contents [21 0 R]
  /MediaBox [0 0 612 792]
>>
% Forms
{{object 4 0}} <<
  /Fields [5 0 R]
>>
% Field with actions:
% Cursor enter: E
% Cursor exit: X
% Mouse down: D
% Mouse up: U
% Focus: Fo
% Blur: Bl
{{object 5 0}} <<
 /FT /Tx
 /T (MyField)
 /Type /Annot
 /Subtype /Widget
 /Rect [100 200 150 250]
 /AA <<
   /E 10 0 R
   /X 11 0 R
   /D 12 0 R
   /U 13 0 R
   /Fo 14 0 R
   /Bl 15 0 R
 >>
>>
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("enter"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
       app.alert\("ERROR: this.submitForm\(\) must not be allowed to execute"\);
    } catch \(e\) {
       app.alert\("PASS: this.submitForm blocked with " + e\);
    }
  )
>>
endobj
{{object 11 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("exit"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
       app.alert\("ERROR: this.submitForm\(\) must not be allowed to execute"\);
    } catch \(e\) {
       app.alert\("PASS: this.submitForm blocked with " + e\);
    }
  )
>>
endobj
{{object 12 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("down"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
    } catch \(e\) {
       app.alert\("ERROR: " + e\);
    }
  )
>>
endobj
{{object 13 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("up"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
    } catch \(e\) {
       app.alert\("ERROR: " + e\);
    }
  )
>>
endobj
{{object 14 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("focus"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
       app.alert\("ERROR: this.submitForm\(\) must not be allowed to execute"\);
    } catch \(e\) {
       app.alert\("PASS: this.submitForm blocked with " + e\);
    }
  )
>>
endobj
{{object 15 0}} <<
  /Type /Action
  /S /JavaScript
  /JS (
    app.alert\("blur"\);
    try {
       this.submitForm\("myform", true, true, ["name", "age"]\);
       app.alert\("ERROR: this.submitForm\(\) must not be allowed to execute"\);
    } catch \(e\) {
       app.alert\("PASS: this.submitForm blocked with " + e\);
    }
  )
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
