{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /AcroForm 3 0 R
  /Pages 5 0 R
  /NeedsRendering true
>>
endobj
{{object 3 0}} <<
  /DA (/Helv 0 Tf 0 g )
  /DR <<
    /Font <<
      /Helv 9 0 R
    >>
  >>
  /XFA [
    (preamble) 10 0 R
    (config) 11 0 R
    (template) 12 0 R
    (form) 13 0 R
    (postamble) 14 0 R
  ]
>>
endobj
{{object 5 0}} <<
  /Type /Pages
  /Count 1
  /Kids [6 0 R]
>>
endobj
{{object 6 0}} <<
  /Type /Page
  /CropBox [0.0 0.0 612.0 792.0]
  /MediaBox [0.0 0.0 612.0 792.0]
  /Parent 5 0 R
  /Resources <<
    /ProcSet [/PDF /Text]
  >>
  /Rotate 0
>>
endobj
{{object 8 0}} <<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Helvetica
  /Encoding /WinAnsiEncoding
>>
endobj
{{object 9 0}} <<
  /Type /Font
  /Subtype /Type1
  /BaseFont /Helvetica
  /Encoding /WinAnsiEncoding
>>
endobj
{{object 10 0}} <<
  {{streamlen}}
>>
stream
<?xml version="1.0" encoding="UTF-8"?>
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
endstream
endobj
{{object 11 0}} <<
  {{streamlen}}
>>
stream
<config xmlns="http://www.xfa.org/schema/xci/2.6/">
  <agent name="designer">
    <destination>pdf</destination>
    <pdf>
      <fontInfo/>
    </pdf>
  </agent>
  <present>
    <pdf>
      <version>1.7</version>
      <renderPolicy>client</renderPolicy>
      <scriptModel>XFA</scriptModel>
      <interactive>1</interactive>
    </pdf>
    <xdp>
      <packets>*</packets>
    </xdp>
    <destination>pdf</destination>
  </present>
  <psMap/>
  <acrobat>
    <acrobat7>
      <dynamicRender>required</dynamicRender>
    </acrobat7>
  </acrobat>
</config>
endstream
endobj
{{object 12 0}} <<
  {{streamlen}}
>>
stream
<template xmlns="http://www.xfa.org/schema/xfa-template/2.6/">
  <subform layout="tb" locale="en_US" name="form1" restoreState="auto">
    <pageSet>
      <pageArea id="Page1" name="Page1">
        <contentArea h="10.5in" w="8in" x="0.25in" y="0.25in"/>
        <medium long="11in" short="8.5in" stock="letter"/>
      </pageArea>
    </pageSet>
    <subform h="10.5in" w="8in" name="subform2">
      <field h="9.0001mm" name="choiceList0" w="47.625mm" x="6.35mm" y="92.075mm">
        <ui>
          <choiceList/>
        </ui>
        <items save="1">
          <text>Single</text>
          <text>Married</text>
          <text>Other</text>
        </items>
      </field>
      <field name="choiceList1" h="10mm" w="1mm" x="5mm" y="50mm">
        <ui>
          <textEdit hScrollPolicy="off" vScrollPolicy="off" multiLine="0"/>
        </ui>
      <value>
        <text maxChars="6">pdfium</text>
      </value>
      <event activity="full">
        <script contentType="application/x-javascript">
          full_count += 1;
          if (full_count == 2) {
            f1 = xfa.resolveNode("xfa.form..choiceList0");
            xfa.host.setFocus(f1);
            xfa.template.remerge();
            xfa.host.openList(f1);
          }
        </script>
      </event>
    </field>
  </subform>
    <event activity="docReady">
      <script contentType="application/x-javascript">
        full_count = 0;
        choiceList1 = xfa.resolveNode("xfa.form..choiceList1");
        choiceList1.rawValue = "12345888888888888888";
        xfa.host.setFocus(choiceList1);
      </script>
    </event>
  </subform>
</template>
endstream
endobj
{{object 13 0}} <<
  {{streamlen}}
>>
stream
<form xmlns="http://www.xfa.org/schema/xfa-form/2.6/"></form>
endstream
endobj
{{object 14 0}} <<
  {{streamlen}}
>>
stream
</xdp:xdp>
endstream
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
