<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:fo="http://www.w3.org/1999/XSL/Format">

<xsl:output indent="yes"/>

<xsl:template match="/">
	<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<fo:layout-master-set>
		<fo:simple-page-master master-name="A4"
			page-width="210mm" page-height="297mm"
			margin-top="0.25in" margin-bottom="0.25in"
			margin-left="0.25in" margin-right="0.25in">
		<fo:region-body margin-top="0.5in" margin-bottom="0.5in"/>
		<fo:region-after extent="0.5in"/>
		</fo:simple-page-master>
	</fo:layout-master-set>
	
	<fo:page-sequence master-reference="A4" initial-page-number="1">
		<fo:static-content flow-name="xsl-region-after">
			<fo:block>
				<fo:leader leader-pattern="rule" leader-length="18cm" />
			</fo:block>
			<fo:block>p. <fo:page-number/></fo:block>
		</fo:static-content>
		
		<fo:flow flow-name="xsl-region-body">
			<xsl:apply-templates select="//plist"/>
		</fo:flow>
	</fo:page-sequence>
	</fo:root>
</xsl:template>


<xsl:template match="plist">
	<xsl:apply-templates mode="root"/>
</xsl:template>


<xsl:template match="dict" mode="root">
	<xsl:apply-templates mode="dict"/>
</xsl:template>


<xsl:template match="dict" mode="array">
	<xsl:apply-templates mode="dict"/>
</xsl:template>


<xsl:template match="dict" mode="dict">
	<xsl:apply-templates mode="dict"/>
</xsl:template>


<xsl:template match="key" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="12pt" font-family="serif" font-weight="bold" line-height="15pt" keep-with-next="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/>
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="array" mode="root">
	<xsl:apply-templates mode="array"/>
</xsl:template>


<xsl:template match="array" mode="dict">
	<xsl:apply-templates mode="array"/>
</xsl:template>


<xsl:template match="string" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/> 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="string" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text><xsl:value-of select="."/>
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="integer" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/> 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="integer" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text><xsl:value-of select="."/>
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="real" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/> 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="real" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text><xsl:value-of select="."/>
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="data" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/> 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="data" mode="root">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="."/> 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="data" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text><xsl:value-of select="."/>
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="true" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		YES 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="true" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text>YES
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="false" mode="dict">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		NO 
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>


<xsl:template match="false" mode="array">
	<xsl:text disable-output-escaping="yes">&lt;fo:block font-size="11pt" font-family="serif" font-weight="normal" line-height="13pt" keep-with-previous="always" text-indent="</xsl:text><xsl:value-of select="2*count(ancestor::*)+10"/><xsl:text disable-output-escaping="yes">mm"&gt;</xsl:text>
		<xsl:value-of select="position() div 2 - 1"/><xsl:text disable-output-escaping="yes"> : </xsl:text>NO
	<xsl:text disable-output-escaping="yes">&lt;/fo:block&gt;</xsl:text>
</xsl:template>

</xsl:stylesheet>

