{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm 4 0 R
  /OpenAction 10 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 15 0 R>>
  >>
  /Contents [21 0 R]
  /MediaBox [0 0 612 792]
>>
endobj
% Forms
{{object 4 0}} <<
  /Fields [5 0 R]
>>
endobj
% Fields
{{object 5 0}} <<
  /T (MyField)
  /Type /Annot
  /Subtype /Widget
  /Rect [100 100 400 400]
  /Kids [
    6 0 R
    7 0 R
    8 0 R
    9 0 R
  ]
>>
endobj
{{object 6 0}} <<
  /FT /Tx
  /Parent 5 0 R
  /T (Sub_X)
  /Type /Annot
  /Subtype /Widget
  /Rect [200 200 220 220]
>>
endobj
{{object 7 0}} <<
  /FT /Tx
  /Parent 5 0 R
  /T (Sub_A)
  /Type /Annot
  /Subtype /Widget
  /Rect [220 220 240 240]
>>
endobj
{{object 8 0}} <<
  /FT /Tx
  /Parent 5 0 R
  /T (Sub_Z)
  /Type /Annot
  /Subtype /Widget
  /Rect [240 240 260 260]
>>
endobj
{{object 9 0}} <<
  /FT /Tx
  /Parent 5 0 R
  /T (Sub_B)
  /Type /Annot
  /Subtype /Widget
  /Rect [260 260 280 280]
>>
endobj
% OpenAction action
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 11 0 R
>>
endobj
% JS program to exexute
{{object 11 0}} <<
>>
stream
function TestGetField() {
  try {
    var field = this.getField("MyField");
    app.alert("field is " + field.name);
    var sub_a = this.getField("MyField.Sub_A");
    app.alert("sub_a is " + sub_a.name);
    var nonesuch = this.getField("MyField.nonesuch");
    app.alert("nonesuch is " + nonesuch);
  } catch (e) {
    app.alert("Unexpected error: " + e);
  }
}
function TestGetArray() {
  try {
    var subs = this.getField("MyField").getArray();
    app.alert("found " + subs.length + " sub-fields:");
    for (i = 0; i < subs.length; ++i) {
      app.alert(subs[i].name);
    }
  } catch (e) {
    app.alert("Unexpected error: " + e);
  }
}
TestGetField();
TestGetArray();
endstream
endobj
{{xref}}
trailer <<
  /Root 1 0 R
>>
{{startxref}}
%%EOF