public void setUsed() {
   used = true;
   if (parent != null) put(PdfName.PARENT, parent.getIndirectReference());
   if (kids != null) {
     PdfArray array = new PdfArray();
     for (int k = 0; k < kids.size(); ++k) array.add(kids.get(k).getIndirectReference());
     put(PdfName.KIDS, array);
   }
   if (templates == null) return;
   PdfDictionary dic = new PdfDictionary();
   for (PdfTemplate template : templates) {
     mergeResources(dic, (PdfDictionary) template.getResources());
   }
   put(PdfName.DR, dic);
 }
 static void mergeResources(PdfDictionary result, PdfDictionary source) {
   mergeResources(result, source, null);
 }