diff --git a/wetb/utils/report_generator/docx_document/__init__.py b/wetb/utils/report_generator/docx_document/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/_rels/.rels b/wetb/utils/report_generator/docx_document/docx-template_clean/_rels/.rels
deleted file mode 100644
index 7d3b4d2dfc20a100c75a68089002f3965a8ee0fa..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/_rels/.rels
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
-<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/>
-<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/>
-<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/>
-<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officedocument/2006/relationships/metadata/core-properties" Target="docProps/core0.xml"/>
-</Relationships>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/fontTable.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/fontTable.xml
deleted file mode 100644
index c47d943404cc6d8508e71beab7b06c870f93e72c..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/fontTable.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:fonts xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
-	<w:font w:name="Symbol">
-		<w:panose1 w:val="02000500000000000000"/>
-		<w:charset w:val="02"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000000" w:usb1="00000000" w:usb2="00010000" w:usb3="00000000" w:csb0="80000000" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Times New Roman">
-		<w:panose1 w:val="02020603050405020304"/>
-		<w:charset w:val="00"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Courier New">
-		<w:panose1 w:val="02070309020205020404"/>
-		<w:charset w:val="00"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Wingdings">
-		<w:panose1 w:val="05020102010804080708"/>
-		<w:charset w:val="02"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000000" w:usb1="00000000" w:usb2="00010000" w:usb3="00000000" w:csb0="80000000" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Cambria">
-		<w:panose1 w:val="02040503050406030204"/>
-		<w:charset w:val="00"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Calibri">
-		<w:panose1 w:val="020F0502020204030204"/>
-		<w:charset w:val="00"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
-	</w:font>
-	<w:font w:name="Arial">
-		<w:panose1 w:val="020B0604020202020204"/>
-		<w:charset w:val="00"/>
-		<w:family w:val="auto"/>
-		<w:pitch w:val="variable"/>
-		<w:sig w:usb0="00000003" w:usb1="00000000" w:usb2="00000000" w:usb3="00000000" w:csb0="00000001" w:csb1="00000000"/>
-	</w:font>
-</w:fonts>
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/footer1.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/footer1.xml
deleted file mode 100644
index f1531e0f808cdb3365a79648c070479350121f57..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/footer1.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:ftr xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14"><w:p w:rsidR="001B1717" w:rsidRDefault="001B1717"><w:pPr><w:pStyle w:val="Footer"/></w:pPr><w:r><w:rPr><w:sz w:val="20"/></w:rPr><w:t>LEFT</w:t></w:r><w:r><w:rPr><w:sz w:val="20"/></w:rPr><w:tab/></w:r><w:r><w:rPr><w:sz w:val="20"/></w:rPr><w:tab/></w:r><w:r w:rsidRPr="001B1717"><w:rPr><w:sz w:val="20"/></w:rPr><w:fldChar w:fldCharType="begin"/></w:r><w:r w:rsidRPr="001B1717"><w:rPr><w:sz w:val="20"/></w:rPr><w:instrText xml:space="preserve"> PAGE   \* MERGEFORMAT </w:instrText></w:r><w:r w:rsidRPr="001B1717"><w:rPr><w:sz w:val="20"/></w:rPr><w:fldChar w:fldCharType="separate"/></w:r><w:r w:rsidR="004C0EAC"><w:rPr><w:noProof/><w:sz w:val="20"/></w:rPr><w:t>1</w:t></w:r><w:r w:rsidRPr="001B1717"><w:rPr><w:noProof/><w:sz w:val="20"/></w:rPr><w:fldChar w:fldCharType="end"/></w:r></w:p></w:ftr>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/numbering.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/numbering.xml
deleted file mode 100644
index 415ef5183d82e443ca68cb05ae6638d6531a37c7..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/numbering.xml
+++ /dev/null
@@ -1,509 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:numbering xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
-	<w:abstractNum w:abstractNumId="0">
-		<w:nsid w:val="FFFFFF1D"/>
-		<w:multiLevelType w:val="multilevel"/>
-		<w:tmpl w:val="D0409C7C"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val=""/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="0"/>
-				</w:tabs>
-				<w:ind w:left="0" w:firstLine="0"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="1">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="720"/>
-				</w:tabs>
-				<w:ind w:left="1080" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="2">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="o"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1440"/>
-				</w:tabs>
-				<w:ind w:left="1800" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="3">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val=""/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="2160"/>
-				</w:tabs>
-				<w:ind w:left="2520" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Wingdings" w:hAnsi="Wingdings" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="4">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val=""/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="2880"/>
-				</w:tabs>
-				<w:ind w:left="3240" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Wingdings" w:hAnsi="Wingdings" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="5">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="3600"/>
-				</w:tabs>
-				<w:ind w:left="3960" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="6">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="o"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="4320"/>
-				</w:tabs>
-				<w:ind w:left="4680" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="7">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val=""/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="5040"/>
-				</w:tabs>
-				<w:ind w:left="5400" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Wingdings" w:hAnsi="Wingdings" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-		<w:lvl w:ilvl="8">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val=""/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="5760"/>
-				</w:tabs>
-				<w:ind w:left="6120" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Wingdings" w:hAnsi="Wingdings" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="1">
-		<w:nsid w:val="FFFFFF7C"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="9B522538"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1492"/>
-				</w:tabs>
-				<w:ind w:left="1492" w:hanging="360"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="2">
-		<w:nsid w:val="FFFFFF7D"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="1BB4178C"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1209"/>
-				</w:tabs>
-				<w:ind w:left="1209" w:hanging="360"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="3">
-		<w:nsid w:val="FFFFFF7E"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="4720F336"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="926"/>
-				</w:tabs>
-				<w:ind w:left="926" w:hanging="360"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="4">
-		<w:nsid w:val="FFFFFF7F"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="7DCEC040"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="643"/>
-				</w:tabs>
-				<w:ind w:left="643" w:hanging="360"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="5">
-		<w:nsid w:val="FFFFFF80"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="A01021FA"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1492"/>
-				</w:tabs>
-				<w:ind w:left="1492" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="6">
-		<w:nsid w:val="FFFFFF81"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="977AAC7C"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1209"/>
-				</w:tabs>
-				<w:ind w:left="1209" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="7">
-		<w:nsid w:val="FFFFFF82"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="0D26C678"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="926"/>
-				</w:tabs>
-				<w:ind w:left="926" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="8">
-		<w:nsid w:val="FFFFFF83"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="EE200B76"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="643"/>
-				</w:tabs>
-				<w:ind w:left="643" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="9">
-		<w:nsid w:val="FFFFFF88"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="E7381406"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:pStyle w:val="ListNumber"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="360"/>
-				</w:tabs>
-				<w:ind w:left="360" w:hanging="360"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="10">
-		<w:nsid w:val="FFFFFF89"/>
-		<w:multiLevelType w:val="singleLevel"/>
-		<w:tmpl w:val="ECFC1548"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="bullet"/>
-			<w:pStyle w:val="ListBullet"/>
-			<w:lvlText w:val="ï‚·"/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="360"/>
-				</w:tabs>
-				<w:ind w:left="360" w:hanging="360"/>
-			</w:pPr>
-			<w:rPr>
-				<w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
-			</w:rPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:abstractNum w:abstractNumId="11">
-		<w:nsid w:val="30585973"/>
-		<w:multiLevelType w:val="multilevel"/>
-		<w:tmpl w:val="A47E15CE"/>
-		<w:lvl w:ilvl="0">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%1."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="720"/>
-				</w:tabs>
-				<w:ind w:left="720" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="1">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%2."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="1440"/>
-				</w:tabs>
-				<w:ind w:left="1440" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="2">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%3."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="2160"/>
-				</w:tabs>
-				<w:ind w:left="2160" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="3">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%4."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="2880"/>
-				</w:tabs>
-				<w:ind w:left="2880" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="4">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%5."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="3600"/>
-				</w:tabs>
-				<w:ind w:left="3600" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="5">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%6."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="4320"/>
-				</w:tabs>
-				<w:ind w:left="4320" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="6">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%7."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="5040"/>
-				</w:tabs>
-				<w:ind w:left="5040" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="7">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%8."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="5760"/>
-				</w:tabs>
-				<w:ind w:left="5760" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-		<w:lvl w:ilvl="8">
-			<w:start w:val="1"/>
-			<w:numFmt w:val="decimal"/>
-			<w:lvlText w:val="%9."/>
-			<w:lvlJc w:val="left"/>
-			<w:pPr>
-				<w:tabs>
-					<w:tab w:val="num" w:pos="6480"/>
-				</w:tabs>
-				<w:ind w:left="6480" w:hanging="720"/>
-			</w:pPr>
-		</w:lvl>
-	</w:abstractNum>
-	<w:num w:numId="1">
-		<w:abstractNumId w:val="11"/>
-	</w:num>
-	<w:num w:numId="2">
-		<w:abstractNumId w:val="11"/>
-		<w:lvlOverride w:ilvl="0">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="1">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="2">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="3">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="4">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="5">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="6">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="7">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-		<w:lvlOverride w:ilvl="8">
-			<w:startOverride w:val="1"/>
-		</w:lvlOverride>
-	</w:num>
-	<w:num w:numId="3">
-		<w:abstractNumId w:val="4"/>
-	</w:num>
-	<w:num w:numId="4">
-		<w:abstractNumId w:val="3"/>
-	</w:num>
-	<w:num w:numId="5">
-		<w:abstractNumId w:val="2"/>
-	</w:num>
-	<w:num w:numId="6">
-		<w:abstractNumId w:val="1"/>
-	</w:num>
-	<w:num w:numId="7">
-		<w:abstractNumId w:val="0"/>
-	</w:num>
-	<w:num w:numId="8">
-		<w:abstractNumId w:val="10"/>
-	</w:num>
-	<w:num w:numId="9">
-		<w:abstractNumId w:val="8"/>
-	</w:num>
-	<w:num w:numId="10">
-		<w:abstractNumId w:val="7"/>
-	</w:num>
-	<w:num w:numId="11">
-		<w:abstractNumId w:val="6"/>
-	</w:num>
-	<w:num w:numId="12">
-		<w:abstractNumId w:val="5"/>
-	</w:num>
-	<w:num w:numId="13">
-		<w:abstractNumId w:val="9"/>
-	</w:num>
-</w:numbering>
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/settings.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/settings.xml
deleted file mode 100644
index 92dfa3f4874cb391eb7e27d2d8b8cec6d19483ea..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/settings.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:settings xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main">
-  <w:zoom w:percent="90"/>
-  <w:embedSystemFonts/>
-  <w:proofState w:spelling="clean" w:grammar="clean"/>
-  <w:stylePaneFormatFilter w:val="0004"/>
-  <w:doNotTrackMoves/>
-  <w:defaultTabStop w:val="720"/>
-  <w:drawingGridHorizontalSpacing w:val="360"/>
-  <w:drawingGridVerticalSpacing w:val="360"/>
-  <w:displayHorizontalDrawingGridEvery w:val="0"/>
-  <w:displayVerticalDrawingGridEvery w:val="0"/>
-  <w:characterSpacingControl w:val="doNotCompress"/>
-  <w:savePreviewPicture/>
-  <w:rsids>
-    <w:rsidRoot w:val="00590D07"/>
-    <w:rsid w:val="00011C8B"/>
-    <w:rsid w:val="004E29B3"/>
-    <w:rsid w:val="00590D07"/>
-    <w:rsid w:val="00784D58"/>
-    <w:rsid w:val="008D6863"/>
-    <w:rsid w:val="00B86B75"/>
-    <w:rsid w:val="00BC48D5"/>
-    <w:rsid w:val="00C36279"/>
-    <w:rsid w:val="00E315A3"/>
-  </w:rsids>
-  <m:mathPr>
-    <m:mathFont m:val="Lucida Grande"/>
-    <m:brkBin m:val="before"/>
-    <m:brkBinSub m:val="--"/>
-    <m:smallFrac m:val="false"/>
-    <m:dispDef m:val="false"/>
-    <m:lMargin m:val="0"/>
-    <m:rMargin m:val="0"/>
-    <m:wrapRight/>
-    <m:intLim m:val="subSup"/>
-    <m:naryLim m:val="subSup"/>
-  </m:mathPr>
-  <w:themeFontLang w:val="en-US"/>
-  <w:clrSchemeMapping w:bg1="light1" w:t1="dark1" w:bg2="light2" w:t2="dark2" w:accent1="accent1" w:accent2="accent2" w:accent3="accent3" w:accent4="accent4" w:accent5="accent5" w:accent6="accent6" w:hyperlink="hyperlink" w:followedHyperlink="followedHyperlink"/>
-  <w:decimalSymbol w:val="."/>
-  <w:listSeparator w:val=","/>
-</w:settings>
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles.xml
deleted file mode 100644
index 0d8224a617a170367b15373b4946f2cc5404bc57..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles.xml
+++ /dev/null
@@ -1,296 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:styles xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
-<w:docDefaults>
-<w:rPrDefault>
-<w:rPr>
-<w:rFonts w:asciiTheme="minorHAnsi" w:eastAsiaTheme="minorHAnsi" w:hAnsiTheme="minorHAnsi" w:cstheme="minorBidi"/>
-<w:sz w:val="24"/>
-<w:szCs w:val="24"/>
-<w:lang w:val="en-US" w:eastAsia="en-US" w:bidi="ar-SA"/>
-</w:rPr>
-</w:rPrDefault>
-<w:pPrDefault>
-<w:pPr>
-<w:spacing w:after="200"/>
-</w:pPr>
-</w:pPrDefault>
-</w:docDefaults>
-<w:latentStyles w:defLockedState="0" w:defUIPriority="0" w:defSemiHidden="0" w:defUnhideWhenUsed="0" w:defQFormat="0" w:count="276"/>
-<w:style w:type="paragraph" w:default="1" w:styleId="Normal">
-<w:name w:val="Normal"/>
-<w:qFormat/>
-<w:rsid w:val="000D33D5"/>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Heading1">
-<w:name w:val="heading 1"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:link w:val="Heading1Char"/>
-<w:uiPriority w:val="9"/>
-<w:qFormat/>
-<w:rsid w:val="00E315A3"/>
-<w:pPr>
-<w:keepNext/>
-<w:keepLines/>
-<w:spacing w:before="480" w:after="0"/>
-<w:outlineLvl w:val="0"/>
-</w:pPr>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/>
-<w:sz w:val="32"/>
-<w:szCs w:val="32"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Heading2">
-<w:name w:val="heading 2"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:link w:val="Heading2Char"/>
-<w:uiPriority w:val="9"/>
-<w:unhideWhenUsed/>
-<w:qFormat/>
-<w:rsid w:val="00E315A3"/>
-<w:pPr>
-<w:keepNext/>
-<w:keepLines/>
-<w:spacing w:before="200" w:after="0"/>
-<w:outlineLvl w:val="1"/>
-</w:pPr>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="26"/>
-<w:szCs w:val="26"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Heading3">
-<w:name w:val="heading 3"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:link w:val="Heading3Char"/>
-<w:uiPriority w:val="9"/>
-<w:unhideWhenUsed/>
-<w:qFormat/>
-<w:rsid w:val="00E315A3"/>
-<w:pPr>
-<w:keepNext/>
-<w:keepLines/>
-<w:spacing w:before="100" w:after="0"/>
-<w:outlineLvl w:val="1"/>
-</w:pPr>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="22"/>
-<w:szCs w:val="22"/>
-</w:rPr>
-</w:style>
-<w:style w:type="character" w:default="1" w:styleId="DefaultParagraphFont">
-<w:name w:val="Default Paragraph Font"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-</w:style>
-<w:style w:type="table" w:default="1" w:styleId="TableNormal">
-<w:name w:val="Normal Table"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-<w:qFormat/>
-<w:tblPr>
-<w:tblInd w:w="0" w:type="dxa"/>
-<w:tblCellMar>
-<w:top w:w="0" w:type="dxa"/>
-<w:left w:w="108" w:type="dxa"/>
-<w:bottom w:w="0" w:type="dxa"/>
-<w:right w:w="108" w:type="dxa"/>
-</w:tblCellMar>
-</w:tblPr>
-</w:style>
-<w:style w:type="numbering" w:default="1" w:styleId="NoList">
-<w:name w:val="No List"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-</w:style>
-<w:style w:type="table" w:styleId="ColorfulGrid-Accent1">
-<w:name w:val="Colorful Grid Accent 1"/>
-<w:basedOn w:val="TableNormal"/>
-<w:uiPriority w:val="73"/>
-<w:rsid w:val="008D6863"/>
-<w:pPr>
-<w:spacing w:after="0"/>
-</w:pPr>
-<w:rPr>
-<w:color w:val="000000" w:themeColor="text1"/>
-<w:sz w:val="22"/>
-<w:szCs w:val="22"/>
-</w:rPr>
-<w:tblPr>
-<w:tblStyleRowBandSize w:val="1"/>
-<w:tblStyleColBandSize w:val="1"/>
-<w:tblInd w:w="0" w:type="dxa"/>
-<w:tblBorders>
-<w:insideH w:val="single" w:sz="4" w:space="0" w:color="FFFFFF" w:themeColor="background1"/>
-</w:tblBorders>
-<w:tblCellMar>
-<w:top w:w="0" w:type="dxa"/>
-<w:left w:w="108" w:type="dxa"/>
-<w:bottom w:w="0" w:type="dxa"/>
-<w:right w:w="108" w:type="dxa"/>
-</w:tblCellMar>
-</w:tblPr>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="DBE5F1" w:themeFill="accent1" w:themeFillTint="33"/>
-</w:tcPr>
-<w:tblStylePr w:type="firstRow">
-<w:rPr>
-<w:b/>
-<w:bCs/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="lastRow">
-<w:rPr>
-<w:b/>
-<w:bCs/>
-<w:color w:val="000000" w:themeColor="text1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="firstCol">
-<w:rPr>
-<w:color w:val="FFFFFF" w:themeColor="background1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="lastCol">
-<w:rPr>
-<w:color w:val="FFFFFF" w:themeColor="background1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="band1Vert">
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="band1Horz">
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/>
-</w:tcPr>
-</w:tblStylePr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="Heading1Char">
-<w:name w:val="Heading 1 Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="Heading1"/>
-<w:uiPriority w:val="9"/>
-<w:rsid w:val="00E315A3"/>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/>
-<w:sz w:val="32"/>
-<w:szCs w:val="32"/>
-</w:rPr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="Heading2Char">
-<w:name w:val="Heading 2 Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="Heading2"/>
-<w:uiPriority w:val="9"/>
-<w:rsid w:val="00E315A3"/>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="26"/>
-<w:szCs w:val="26"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="ListBullet">
-<w:name w:val="List Bullet"/>
-<w:basedOn w:val="Normal"/>
-<w:rsid w:val="00784D58"/>
-<w:pPr>
-<w:numPr>
-<w:numId w:val="8"/>
-</w:numPr>
-<w:contextualSpacing/>
-</w:pPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="ListNumber">
-<w:name w:val="List Number"/>
-<w:basedOn w:val="Normal"/>
-<w:rsid w:val="00784D58"/>
-<w:pPr>
-<w:numPr>
-<w:numId w:val="13"/>
-</w:numPr>
-<w:contextualSpacing/>
-</w:pPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="BodyText">
-<w:name w:val="Body Text"/>
-<w:basedOn w:val="Normal"/>
-<w:link w:val="BodyTextChar"/>
-<w:rsid w:val="00BC48D5"/>
-<w:pPr>
-<w:spacing w:after="120"/>
-</w:pPr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="BodyTextChar">
-<w:name w:val="Body Text Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="BodyText"/>
-<w:rsid w:val="00BC48D5"/>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Caption">
-<w:name w:val="caption"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:rsid w:val="00D61392"/>
-<w:pPr>
-<w:spacing w:after="60"/>
-</w:pPr>
-<w:rPr>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="18"/>
-<w:szCs w:val="18"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:customStyle="1" w:styleId="Image">
-<w:name w:val="Image"/>
-<w:basedOn w:val="Normal"/>
-<w:qFormat/>
-<w:rsid w:val="00C06113"/>
-<w:pPr>
-<w:spacing w:after="0"/>
-<w:jc w:val="center"/>
-</w:pPr>
-</w:style>
-</w:styles>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old.xml
deleted file mode 100644
index b2e824ce7c4439b3e0087b8c865260785c9b9c13..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:styles xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts w:asciiTheme="minorHAnsi" w:eastAsiaTheme="minorHAnsi" w:hAnsiTheme="minorHAnsi" w:cstheme="minorBidi"/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="en-US" w:bidi="ar-SA"/></w:rPr></w:rPrDefault><w:pPrDefault><w:pPr><w:spacing w:after="200"/></w:pPr></w:pPrDefault></w:docDefaults><w:latentStyles w:defLockedState="0" w:defUIPriority="0" w:defSemiHidden="0" w:defUnhideWhenUsed="0" w:defQFormat="0" w:count="276"/><w:style w:type="paragraph" w:default="1" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/><w:rsid w:val="000D33D5"/></w:style><w:style w:type="paragraph" w:styleId="Heading1"><w:name w:val="heading 1"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:link w:val="Heading1Char"/><w:uiPriority w:val="9"/><w:qFormat/><w:rsid w:val="00E315A3"/><w:pPr><w:keepNext/><w:keepLines/><w:spacing w:before="480" w:after="0"/><w:outlineLvl w:val="0"/></w:pPr><w:rPr><w:rFonts w:asciiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:hAnsiTheme="majorHAnsi" w:cstheme="majorBidi"/><w:b/><w:bCs/><w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Heading2"><w:name w:val="heading 2"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:link w:val="Heading2Char"/><w:uiPriority w:val="9"/><w:unhideWhenUsed/><w:qFormat/><w:rsid w:val="00E315A3"/><w:pPr><w:keepNext/><w:keepLines/><w:spacing w:before="200" w:after="0"/><w:outlineLvl w:val="1"/></w:pPr><w:rPr><w:rFonts w:asciiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:hAnsiTheme="majorHAnsi" w:cstheme="majorBidi"/><w:b/><w:bCs/><w:color w:val="4F81BD" w:themeColor="accent1"/><w:sz w:val="26"/><w:szCs w:val="26"/></w:rPr></w:style><w:style w:type="character" w:default="1" w:styleId="DefaultParagraphFont"><w:name w:val="Default Paragraph Font"/><w:semiHidden/><w:unhideWhenUsed/></w:style><w:style w:type="table" w:default="1" w:styleId="TableNormal"><w:name w:val="Normal Table"/><w:semiHidden/><w:unhideWhenUsed/><w:qFormat/><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style><w:style w:type="numbering" w:default="1" w:styleId="NoList"><w:name w:val="No List"/><w:semiHidden/><w:unhideWhenUsed/></w:style><w:style w:type="table" w:styleId="ColorfulGrid-Accent1"><w:name w:val="Colorful Grid Accent 1"/><w:basedOn w:val="TableNormal"/><w:uiPriority w:val="73"/><w:rsid w:val="008D6863"/><w:pPr><w:spacing w:after="0"/></w:pPr><w:rPr><w:color w:val="000000" w:themeColor="text1"/><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr><w:tblPr><w:tblStyleRowBandSize w:val="1"/><w:tblStyleColBandSize w:val="1"/><w:tblInd w:w="0" w:type="dxa"/><w:tblBorders><w:insideH w:val="single" w:sz="4" w:space="0" w:color="FFFFFF" w:themeColor="background1"/></w:tblBorders><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="DBE5F1" w:themeFill="accent1" w:themeFillTint="33"/></w:tcPr><w:tblStylePr w:type="firstRow"><w:rPr><w:b/><w:bCs/></w:rPr><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/></w:tcPr></w:tblStylePr><w:tblStylePr w:type="lastRow"><w:rPr><w:b/><w:bCs/><w:color w:val="000000" w:themeColor="text1"/></w:rPr><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/></w:tcPr></w:tblStylePr><w:tblStylePr w:type="firstCol"><w:rPr><w:color w:val="FFFFFF" w:themeColor="background1"/></w:rPr><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/></w:tcPr></w:tblStylePr><w:tblStylePr w:type="lastCol"><w:rPr><w:color w:val="FFFFFF" w:themeColor="background1"/></w:rPr><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/></w:tcPr></w:tblStylePr><w:tblStylePr w:type="band1Vert"><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/></w:tcPr></w:tblStylePr><w:tblStylePr w:type="band1Horz"><w:tblPr/><w:tcPr><w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/></w:tcPr></w:tblStylePr></w:style><w:style w:type="character" w:customStyle="1" w:styleId="Heading1Char"><w:name w:val="Heading 1 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading1"/><w:uiPriority w:val="9"/><w:rsid w:val="00E315A3"/><w:rPr><w:rFonts w:asciiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:hAnsiTheme="majorHAnsi" w:cstheme="majorBidi"/><w:b/><w:bCs/><w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr></w:style><w:style w:type="character" w:customStyle="1" w:styleId="Heading2Char"><w:name w:val="Heading 2 Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="Heading2"/><w:uiPriority w:val="9"/><w:rsid w:val="00E315A3"/><w:rPr><w:rFonts w:asciiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:hAnsiTheme="majorHAnsi" w:cstheme="majorBidi"/><w:b/><w:bCs/><w:color w:val="4F81BD" w:themeColor="accent1"/><w:sz w:val="26"/><w:szCs w:val="26"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="ListBullet"><w:name w:val="List Bullet"/><w:basedOn w:val="Normal"/><w:rsid w:val="00784D58"/><w:pPr><w:numPr><w:numId w:val="8"/></w:numPr><w:contextualSpacing/></w:pPr></w:style><w:style w:type="paragraph" w:styleId="ListNumber"><w:name w:val="List Number"/><w:basedOn w:val="Normal"/><w:rsid w:val="00784D58"/><w:pPr><w:numPr><w:numId w:val="13"/></w:numPr><w:contextualSpacing/></w:pPr></w:style><w:style w:type="paragraph" w:styleId="BodyText"><w:name w:val="Body Text"/><w:basedOn w:val="Normal"/><w:link w:val="BodyTextChar"/><w:rsid w:val="00BC48D5"/><w:pPr><w:spacing w:after="120"/></w:pPr></w:style><w:style w:type="character" w:customStyle="1" w:styleId="BodyTextChar"><w:name w:val="Body Text Char"/><w:basedOn w:val="DefaultParagraphFont"/><w:link w:val="BodyText"/><w:rsid w:val="00BC48D5"/></w:style><w:style w:type="paragraph" w:styleId="Caption"><w:name w:val="caption"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:rsid w:val="00D61392"/><w:rPr><w:b/><w:bCs/><w:color w:val="4F81BD" w:themeColor="accent1"/><w:sz w:val="18"/><w:szCs w:val="18"/></w:rPr></w:style><w:style w:type="paragraph" w:customStyle="1" w:styleId="Image"><w:name w:val="Image"/><w:basedOn w:val="Normal"/><w:qFormat/><w:rsid w:val="00C06113"/><w:pPr><w:spacing w:after="0"/><w:jc w:val="center"/></w:pPr></w:style></w:styles>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old2.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old2.xml
deleted file mode 100644
index a778aee26ef853e4111d328da1dd63b402793282..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/styles_old2.xml
+++ /dev/null
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<w:styles xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
-<w:docDefaults>
-<w:rPrDefault>
-<w:rPr>
-<w:rFonts w:asciiTheme="minorHAnsi" w:eastAsiaTheme="minorHAnsi" w:hAnsiTheme="minorHAnsi" w:cstheme="minorBidi"/>
-<w:sz w:val="24"/>
-<w:szCs w:val="24"/>
-<w:lang w:val="en-US" w:eastAsia="en-US" w:bidi="ar-SA"/>
-</w:rPr>
-</w:rPrDefault>
-<w:pPrDefault>
-<w:pPr>
-<w:spacing w:after="200"/>
-</w:pPr>
-</w:pPrDefault>
-</w:docDefaults>
-<w:latentStyles w:defLockedState="0" w:defUIPriority="0" w:defSemiHidden="0" w:defUnhideWhenUsed="0" w:defQFormat="0" w:count="276"/>
-<w:style w:type="paragraph" w:default="1" w:styleId="Normal">
-<w:name w:val="Normal"/>
-<w:qFormat/>
-<w:rsid w:val="000D33D5"/>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Heading1">
-<w:name w:val="heading 1"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:link w:val="Heading1Char"/>
-<w:uiPriority w:val="9"/>
-<w:qFormat/>
-<w:rsid w:val="00E315A3"/>
-<w:pPr>
-<w:keepNext/>
-<w:keepLines/>
-<w:spacing w:before="480" w:after="0"/>
-<w:outlineLvl w:val="0"/>
-</w:pPr>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/>
-<w:sz w:val="32"/>
-<w:szCs w:val="32"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Heading2">
-<w:name w:val="heading 2"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:link w:val="Heading2Char"/>
-<w:uiPriority w:val="9"/>
-<w:unhideWhenUsed/>
-<w:qFormat/>
-<w:rsid w:val="00E315A3"/>
-<w:pPr>
-<w:keepNext/>
-<w:keepLines/>
-<w:spacing w:before="200" w:after="0"/>
-<w:outlineLvl w:val="1"/>
-</w:pPr>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="26"/>
-<w:szCs w:val="26"/>
-</w:rPr>
-</w:style>
-<w:style w:type="character" w:default="1" w:styleId="DefaultParagraphFont">
-<w:name w:val="Default Paragraph Font"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-</w:style>
-<w:style w:type="table" w:default="1" w:styleId="TableNormal">
-<w:name w:val="Normal Table"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-<w:qFormat/>
-<w:tblPr>
-<w:tblInd w:w="0" w:type="dxa"/>
-<w:tblCellMar>
-<w:top w:w="0" w:type="dxa"/>
-<w:left w:w="108" w:type="dxa"/>
-<w:bottom w:w="0" w:type="dxa"/>
-<w:right w:w="108" w:type="dxa"/>
-</w:tblCellMar>
-</w:tblPr>
-</w:style>
-<w:style w:type="numbering" w:default="1" w:styleId="NoList">
-<w:name w:val="No List"/>
-<w:semiHidden/>
-<w:unhideWhenUsed/>
-</w:style>
-<w:style w:type="table" w:styleId="ColorfulGrid-Accent1">
-<w:name w:val="Colorful Grid Accent 1"/>
-<w:basedOn w:val="TableNormal"/>
-<w:uiPriority w:val="73"/>
-<w:rsid w:val="008D6863"/>
-<w:pPr>
-<w:spacing w:after="0"/>
-</w:pPr>
-<w:rPr>
-<w:color w:val="000000" w:themeColor="text1"/>
-<w:sz w:val="22"/>
-<w:szCs w:val="22"/>
-</w:rPr>
-<w:tblPr>
-<w:tblStyleRowBandSize w:val="1"/>
-<w:tblStyleColBandSize w:val="1"/>
-<w:tblInd w:w="0" w:type="dxa"/>
-<w:tblBorders>
-<w:insideH w:val="single" w:sz="4" w:space="0" w:color="FFFFFF" w:themeColor="background1"/>
-</w:tblBorders>
-<w:tblCellMar>
-<w:top w:w="0" w:type="dxa"/>
-<w:left w:w="108" w:type="dxa"/>
-<w:bottom w:w="0" w:type="dxa"/>
-<w:right w:w="108" w:type="dxa"/>
-</w:tblCellMar>
-</w:tblPr>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="DBE5F1" w:themeFill="accent1" w:themeFillTint="33"/>
-</w:tcPr>
-<w:tblStylePr w:type="firstRow">
-<w:rPr>
-<w:b/>
-<w:bCs/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="lastRow">
-<w:rPr>
-<w:b/>
-<w:bCs/>
-<w:color w:val="000000" w:themeColor="text1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="B8CCE4" w:themeFill="accent1" w:themeFillTint="66"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="firstCol">
-<w:rPr>
-<w:color w:val="FFFFFF" w:themeColor="background1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="lastCol">
-<w:rPr>
-<w:color w:val="FFFFFF" w:themeColor="background1"/>
-</w:rPr>
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="365F91" w:themeFill="accent1" w:themeFillShade="BF"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="band1Vert">
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/>
-</w:tcPr>
-</w:tblStylePr>
-<w:tblStylePr w:type="band1Horz">
-<w:tblPr/>
-<w:tcPr>
-<w:shd w:val="clear" w:color="auto" w:fill="A7BFDE" w:themeFill="accent1" w:themeFillTint="7F"/>
-</w:tcPr>
-</w:tblStylePr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="Heading1Char">
-<w:name w:val="Heading 1 Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="Heading1"/>
-<w:uiPriority w:val="9"/>
-<w:rsid w:val="00E315A3"/>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="345A8A" w:themeColor="accent1" w:themeShade="B5"/>
-<w:sz w:val="32"/>
-<w:szCs w:val="32"/>
-</w:rPr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="Heading2Char">
-<w:name w:val="Heading 2 Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="Heading2"/>
-<w:uiPriority w:val="9"/>
-<w:rsid w:val="00E315A3"/>
-<w:rPr>
-<w:rFonts w:ascii="Tahoma" w:hAnsi="Tahoma" w:cs="Tahoma"/>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="26"/>
-<w:szCs w:val="26"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="ListBullet">
-<w:name w:val="List Bullet"/>
-<w:basedOn w:val="Normal"/>
-<w:rsid w:val="00784D58"/>
-<w:pPr>
-<w:numPr>
-<w:numId w:val="8"/>
-</w:numPr>
-<w:contextualSpacing/>
-</w:pPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="ListNumber">
-<w:name w:val="List Number"/>
-<w:basedOn w:val="Normal"/>
-<w:rsid w:val="00784D58"/>
-<w:pPr>
-<w:numPr>
-<w:numId w:val="13"/>
-</w:numPr>
-<w:contextualSpacing/>
-</w:pPr>
-</w:style>
-<w:style w:type="paragraph" w:styleId="BodyText">
-<w:name w:val="Body Text"/>
-<w:basedOn w:val="Normal"/>
-<w:link w:val="BodyTextChar"/>
-<w:rsid w:val="00BC48D5"/>
-<w:pPr>
-<w:spacing w:after="120"/>
-</w:pPr>
-</w:style>
-<w:style w:type="character" w:customStyle="1" w:styleId="BodyTextChar">
-<w:name w:val="Body Text Char"/>
-<w:basedOn w:val="DefaultParagraphFont"/>
-<w:link w:val="BodyText"/>
-<w:rsid w:val="00BC48D5"/>
-</w:style>
-<w:style w:type="paragraph" w:styleId="Caption">
-<w:name w:val="caption"/>
-<w:basedOn w:val="Normal"/>
-<w:next w:val="Normal"/>
-<w:rsid w:val="00D61392"/>
-<w:pPr>
-<w:spacing w:after="60"/>
-</w:pPr>
-<w:rPr>
-<w:b/>
-<w:bCs/>
-<w:color w:val="4F81BD" w:themeColor="accent1"/>
-<w:sz w:val="18"/>
-<w:szCs w:val="18"/>
-</w:rPr>
-</w:style>
-<w:style w:type="paragraph" w:customStyle="1" w:styleId="Image">
-<w:name w:val="Image"/>
-<w:basedOn w:val="Normal"/>
-<w:qFormat/>
-<w:rsid w:val="00C06113"/>
-<w:pPr>
-<w:spacing w:after="0"/>
-<w:jc w:val="center"/>
-</w:pPr>
-</w:style>
-</w:styles>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx-template_clean/word/theme/theme1.xml b/wetb/utils/report_generator/docx_document/docx-template_clean/word/theme/theme1.xml
deleted file mode 100644
index de62be957503a542a3da002a5cb1502c0058449b..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx-template_clean/word/theme/theme1.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink><a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS ゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" typeface="Angsana New"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS 明朝"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Arial"/><a:font script="Hebr" typeface="Arial"/><a:font script="Thai" typeface="Cordia New"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults><a:spDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="1"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="3"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="2"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="lt1"/></a:fontRef></a:style></a:spDef><a:lnDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx="2"><a:schemeClr val="accent1"/></a:lnRef><a:fillRef idx="0"><a:schemeClr val="accent1"/></a:fillRef><a:effectRef idx="1"><a:schemeClr val="accent1"/></a:effectRef><a:fontRef idx="minor"><a:schemeClr val="tx1"/></a:fontRef></a:style></a:lnDef></a:objectDefaults><a:extraClrSchemeLst/></a:theme>
\ No newline at end of file
diff --git a/wetb/utils/report_generator/docx_document/docx.py b/wetb/utils/report_generator/docx_document/docx.py
deleted file mode 100644
index 721b1df1bf470bf980235a3162bcc6d7e991bf8b..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx.py
+++ /dev/null
@@ -1,1194 +0,0 @@
-#!/usr/bin/env python2.6
-# -*- coding: utf-8 -*-
-"""
-Open and modify Microsoft Word 2007 docx files (called 'OpenXML' and
-'Office OpenXML' by Microsoft)
-
-Part of Python's docx module - http://github.com/mikemaccana/python-docx
-See LICENSE for licensing information.
-"""
-
-import os
-import re
-import time
-import shutil
-import zipfile
-
-from lxml import etree
-from os.path import abspath, basename, join
-
-from PIL import Image
-from mmpe.io import make_dirs
-
-try:
-    from PIL.ExifTags import TAGS
-    from PIL import WmfImagePlugin, PdfImagePlugin, PngImagePlugin, JpegImagePlugin, EpsImagePlugin
-except ImportError:
-    TAGS = {}
-
-#from exceptions import PendingDeprecationWarning
-from warnings import warn
-
-import logging
-pp = lambda t : etree.tostring(t, pretty_print=True)
-
-log = logging.getLogger(__name__)
-
-# Record template directory's location which is just 'template' for a docx
-# developer or 'site-packages/docx-template' if you have installed docx
-template_dir = join(os.path.dirname(__file__.replace("library.zip", '')), 'docx-template')  # installed
-if not os.path.isdir(template_dir):
-    template_dir = join(os.path.dirname(__file__.replace("library.zip", '')), 'template')  # dev
-
-# All Word prefixes / namespace matches used in document.xml & core.xml.
-# LXML doesn't actually use prefixes (just the real namespace) , but these
-# make it easier to copy Word output more easily.
-nsprefixes = {
-    'mo': 'http://schemas.microsoft.com/office/mac/office/2008/main',
-    'o':  'urn:schemas-microsoft-com:office:office',
-    've': 'http://schemas.openxmlformats.org/markup-compatibility/2006',
-    # Text Content
-    'w':   'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
-    'w10': 'urn:schemas-microsoft-com:office:word',
-    'wne': 'http://schemas.microsoft.com/office/word/2006/wordml',
-    'xml': 'xml',
-    # Drawing
-    'a':   'http://schemas.openxmlformats.org/drawingml/2006/main',
-    'm':   'http://schemas.openxmlformats.org/officeDocument/2006/math',
-    'mv':  'urn:schemas-microsoft-com:mac:vml',
-    'pic': 'http://schemas.openxmlformats.org/drawingml/2006/picture',
-    'v':   'urn:schemas-microsoft-com:vml',
-    'wp':  ('http://schemas.openxmlformats.org/drawingml/2006/wordprocessing'
-            'Drawing'),
-    # Properties (core and extended)
-    'cp':  ('http://schemas.openxmlformats.org/package/2006/metadata/core-pr'
-            'operties'),
-    'dc':  'http://purl.org/dc/elements/1.1/',
-    'ep':  ('http://schemas.openxmlformats.org/officeDocument/2006/extended-'
-            'properties'),
-    'xsi': 'http://www.w3.org/2001/XMLSchema-instance',
-    # Content Types
-    'ct':  'http://schemas.openxmlformats.org/package/2006/content-types',
-    # Package Relationships
-    'r':  ('http://schemas.openxmlformats.org/officeDocument/2006/relationsh'
-           'ips'),
-    'pr':  'http://schemas.openxmlformats.org/package/2006/relationships',
-    # Dublin Core document properties
-    'dcmitype': 'http://purl.org/dc/dcmitype/',
-    'dcterms':  'http://purl.org/dc/terms/'}
-
-
-def opendocx(file):
-    '''Open a docx file, return a document XML tree'''
-    mydoc = zipfile.ZipFile(file)
-    xmlcontent = mydoc.read('word/document.xml')
-    document = etree.fromstring(xmlcontent)
-    return document
-
-
-def newdocument(page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}):
-    document = makeelement('document')
-    body = makeelement('body')
-    document.append(body)
-    #sectPr = makeelement('sectPr')
-    #pgMar = makeelement('pgMar', attributes={k:str(v * 566.89) for (k, v) in page_margins.items()})
-
-    #sectPr.append(pgMar)
-    #body.append(sectPr)
-    body.append(section_layout(portrait=True))
-    return document
-
-def section_layout(page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}, portrait=True):
-    sectPr = makeelement('sectPr')
-    if portrait:
-        pgsz = makeelement('pgSz', attributes={'w':"12240", 'h':"15840"})
-    else:
-        pgsz = makeelement('pgSz', attributes={'w':"15840", 'h':"12240", 'orient':"landscape"})
-    sectPr.append(pgsz)
-    pgMar = makeelement('pgMar', attributes={k:str(v * 566.89) for (k, v) in page_margins.items()})
-    sectPr.append(pgMar)
-    return sectPr
-
-
-def makeelement(tagname, tagtext=None, nsprefix='w', attributes=None,
-                attrnsprefix=None):
-    '''Create an element & return it'''
-    # Deal with list of nsprefix by making namespacemap
-    namespacemap = None
-    if isinstance(nsprefix, list):
-        namespacemap = {}
-        for prefix in nsprefix:
-            namespacemap[prefix] = nsprefixes[prefix]
-        # FIXME: rest of code below expects a single prefix
-        nsprefix = nsprefix[0]
-    if nsprefix:
-        namespace = '{' + nsprefixes[nsprefix] + '}'
-    else:
-        # For when namespace = None
-        namespace = ''
-    newelement = etree.Element(namespace + tagname, nsmap=namespacemap)
-    # Add attributes with namespaces
-    if attributes:
-        # If they haven't bothered setting attribute namespace, use an empty
-        # string (equivalent of no namespace)
-        if not attrnsprefix:
-            # Quick hack: it seems every element that has a 'w' nsprefix for
-            # its tag uses the same prefix for it's attributes
-            if nsprefix == 'w':
-                attributenamespace = namespace
-            else:
-                attributenamespace = ''
-        else:
-            attributenamespace = '{' + nsprefixes[attrnsprefix] + '}'
-
-        for tagattribute in attributes:
-            newelement.set(attributenamespace + tagattribute,
-                           attributes[tagattribute])
-    if tagtext:
-        newelement.text = tagtext
-    return newelement
-
-
-def pagebreak(type='page', page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}, portrait=True):
-    '''Insert a break, default 'page'.
-    See http://openxmldeveloper.org/forums/thread/4075.aspx
-    Return our page break element.'''
-    # Need to enumerate different types of page breaks.
-    validtypes = ['page', 'section']
-    if type not in validtypes:
-        tmpl = 'Page break style "%s" not implemented. Valid styles: %s.'
-        raise ValueError(tmpl % (type, validtypes))
-    pagebreak = makeelement('p')
-    if type == 'page':
-        run = makeelement('r')
-        br = makeelement('br', attributes={'type': type})
-        run.append(br)
-        pagebreak.append(run)
-    elif type == 'section':
-        pPr = makeelement('pPr')
-#        sectPr = makeelement('sectPr')
-#        if orient == 'portrait':
-#            pgSz = makeelement('pgSz', attributes={'w': '12240', 'h': '15840'})
-#        elif orient == 'landscape':
-#            pgSz = makeelement('pgSz', attributes={'h': '12240', 'w': '15840',
-#                                                   'orient': 'landscape'})
-#        sectPr.append(pgSz)
-        sectPr = section_layout(page_margins, portrait)
-        pPr.append(sectPr)
-        pagebreak.append(pPr)
-    return pagebreak
-
-
-def paragraph(paratext, style='BodyText', breakbefore=False, jc='left', spacing={'before':0, 'after':6}, font_size=10):
-    """
-    Return a new paragraph element containing *paratext*. The paragraph's
-    default style is 'Body Text', but a new style may be set using the
-    *style* parameter.
-
-    @param string jc: Paragraph alignment, possible values:
-                      left, center, right, both (justified), ...
-                      see http://www.schemacentral.com/sc/ooxml/t-w_ST_Jc.html
-                      for a full list
-
-    If *paratext* is a list, add a run for each (text, char_format_str)
-    2-tuple in the list. char_format_str is a string containing one or more
-    of the characters 'b', 'i', or 'u', meaning bold, italic, and underline
-    respectively. For example:
-
-        paratext = [
-            ('some bold text', 'b'),
-            ('some normal text', ''),
-            ('some italic underlined text', 'iu')
-        ]
-    """
-    # Make our elements
-    paragraph = makeelement('p')
-
-    if not isinstance(paratext, list):
-        paratext = [(paratext, '')]
-    text_tuples = []
-    for pt in paratext:
-        text, char_styles_str = (pt if isinstance(pt, (list, tuple))
-                                 else (pt, ''))
-        text_elm = makeelement('t', tagtext=text)
-        if len(text.strip()) < len(text):
-            text_elm.set('{http://www.w3.org/XML/1998/namespace}space',
-                         'preserve')
-        text_tuples.append([text_elm, char_styles_str])
-    pPr = makeelement('pPr')
-    pStyle = makeelement('pStyle', attributes={'val': style})
-    pJc = makeelement('jc', attributes={'val': jc})
-    pPr.append(pStyle)
-    pPr.append(pJc)
-
-    spacing = makeelement('spacing', attributes={'before':str(spacing.get('before') * 20), 'after':str(spacing.get('after') * 20)})
-    pPr.append(spacing)
-
-
-
-
-    # Add the text to the run, and the run to the paragraph
-    paragraph.append(pPr)
-    for text_elm, char_styles_str in text_tuples:
-        run = makeelement('r')
-        rPr = makeelement('rPr')
-        sz = makeelement('sz', attributes={'val':str(font_size * 2)})
-        rPr.append(sz)
-        # Apply styles
-        if 'b' in char_styles_str:
-            b = makeelement('b')
-            rPr.append(b)
-        if 'i' in char_styles_str:
-            i = makeelement('i')
-            rPr.append(i)
-        if 'u' in char_styles_str:
-            u = makeelement('u', attributes={'val': 'single'})
-            rPr.append(u)
-        run.append(rPr)
-        # Insert lastRenderedPageBreak for assistive technologies like
-        # document narrators to know when a page break occurred.
-        if breakbefore:
-            lastRenderedPageBreak = makeelement('lastRenderedPageBreak')
-            run.append(lastRenderedPageBreak)
-        run.append(text_elm)
-        paragraph.append(run)
-    # Return the combined paragraph
-    return paragraph
-
-
-def contenttypes():
-    types = etree.fromstring(
-        '<Types xmlns="http://schemas.openxmlformats.org/package/2006/conten'
-        't-types"></Types>')
-    parts = {
-        '/word/theme/theme1.xml': 'application/vnd.openxmlformats-officedocu'
-                                  'ment.theme+xml',
-        '/word/fontTable.xml':    'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.fontTable+xml',
-        '/docProps/core.xml':     'application/vnd.openxmlformats-package.co'
-                                  're-properties+xml',
-        '/docProps/app.xml':      'application/vnd.openxmlformats-officedocu'
-                                  'ment.extended-properties+xml',
-        '/word/document.xml':     'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.document.main+xml',
-        '/word/settings.xml':     'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.settings+xml',
-        '/word/numbering.xml':    'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.numbering+xml',
-        '/word/styles.xml':       'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.styles+xml',
-        '/word/webSettings.xml':  'application/vnd.openxmlformats-officedocu'
-                                  'ment.wordprocessingml.webSettings+xml'}
-    for part in parts:
-        types.append(makeelement('Override', nsprefix=None,
-                                 attributes={'PartName': part,
-                                             'ContentType': parts[part]}))
-    # Add support for filetypes
-    filetypes = {
-        'gif':  'image/gif',
-        'jpeg': 'image/jpeg',
-        'jpg':  'image/jpeg',
-        'png':  'image/png',
-        'emf':  'image/x-emf',
-        'rels': 'application/vnd.openxmlformats-package.relationships+xml',
-        'xml':  'application/xml'
-    }
-    for extension in filetypes:
-        attrs = {
-            'Extension':   extension,
-            'ContentType': filetypes[extension]
-        }
-        default_elm = makeelement('Default', nsprefix=None, attributes=attrs)
-        types.append(default_elm)
-    return types
-
-
-def heading(headingtext, headinglevel, lang='en'):
-    '''Make a new heading, return the heading element'''
-    lmap = {'en': 'Heading', 'it': 'Titolo'}
-    # Make our elements
-    paragraph = makeelement('p')
-    pr = makeelement('pPr')
-    pStyle = makeelement(
-        'pStyle', attributes={'val': lmap[lang] + str(headinglevel)})
-    run = makeelement('r')
-    text = makeelement('t', tagtext=headingtext)
-    # Add the text the run, and the run to the paragraph
-    pr.append(pStyle)
-    run.append(text)
-    paragraph.append(pr)
-    paragraph.append(run)
-    # Return the combined paragraph
-    return paragraph
-
-
-def table(contents, heading=True, colw=None, cwunit='dxa', tblw=0, tblmargin=.19,
-          twunit='auto', borders={"all":{"color":'auto', 'val':'single', 'sz':'4'}}, column_style={}):
-    """
-    Return a table element based on specified parameters
-
-    @param list contents: A list of lists describing contents. Every item in
-                          the list can be a string or a valid XML element
-                          itself. It can also be a list. In that case all the
-                          listed elements will be merged into the cell.
-    @param bool heading:  Tells whether first line should be treated as
-                          heading or not
-    @param list colw:     list of integer column widths specified in wunitS.
-    @param str  cwunit:   Unit used for column width:
-                            'pct'  : fiftieths of a percent
-                            'dxa'  : twentieths of a point
-                            'nil'  : no width
-                            'auto' : automagically determined
-    @param int  tblw:     Table width
-    @param str  twunit:   Unit used for table width. Same possible values as
-                          cwunit.
-    @param dict borders:  Dictionary defining table border. Supported keys
-                          are: 'top', 'left', 'bottom', 'right',
-                          'insideH', 'insideV', 'all'.
-                          When specified, the 'all' key has precedence over
-                          others. Each key must define a dict of border
-                          attributes:
-                            color : The color of the border, in hex or
-                                    'auto'
-                            space : The space, measured in points
-                            sz    : The size of the border, in eighths of
-                                    a point
-                            val   : The style of the border, see
-                http://www.schemacentral.com/sc/ooxml/t-w_ST_Border.htm
-    @param list column_style: Specify the style for each colum, list of dicts.
-                          supported keys:
-                          'align' : specify the alignment, see paragraph
-                                    documentation.
-    @return lxml.etree:   Generated XML etree element
-    """
-    table = makeelement('tbl')
-    columns = len(contents[0])
-    # Table properties
-    tableprops = makeelement('tblPr')
-    tablestyle = makeelement('tblStyle', attributes={'val': ''})
-    tableprops.append(tablestyle)
-    tableprops.append(makeelement('jc', attributes={'val':'center'}))
-    tablewidth = makeelement(
-        'tblW', attributes={'w': str(tblw), 'type': str(twunit)})
-    tableprops.append(tablewidth)
-    tablemargin = makeelement('tblCellMar')
-    if isinstance(tblmargin, (int, float)):
-        tblmargin = {l:tblmargin for l in ['top', 'left', 'bottom', 'right']}
-    for l in ['top', 'left', 'bottom', 'right']:
-        margin = makeelement(l, attributes={'w':str(tblmargin.get(l, 0) * 568), 'tppe':str(twunit)})
-        tablemargin.append(margin)
-    tableprops.append(tablemargin)
-    if len(borders.keys()):
-        tableborders = makeelement('tblBorders')
-        for b in ['top', 'left', 'bottom', 'right', 'insideH', 'insideV']:
-            if b in borders.keys() or 'all' in borders.keys():
-                k = 'all' if 'all' in borders.keys() else b
-                attrs = {}
-                for a in borders[k].keys():
-                    attrs[a] = str(borders[k][a])
-                borderelem = makeelement(b, attributes=attrs)
-                tableborders.append(borderelem)
-        tableprops.append(tableborders)
-    tablelook = makeelement('tblLook', attributes={'val': '0400'})
-    tableprops.append(tablelook)
-    table.append(tableprops)
-    # Table Grid
-    tablegrid = makeelement('tblGrid')
-    for i in range(columns):
-        attrs = {'w': str(colw[i]) if colw else '2390'}
-        tablegrid.append(makeelement('gridCol', attributes=attrs))
-    table.append(tablegrid)
-    # Heading Row
-    row = makeelement('tr')
-    rowprops = makeelement('trPr')
-    cnfStyle = makeelement('cnfStyle', attributes={'val': '000000100000'})
-    rowprops.append(cnfStyle)
-    row.append(rowprops)
-    if heading:
-        i = 0
-        for heading in contents[0]:
-            cell = makeelement('tc')
-            # Cell properties
-            cellprops = makeelement('tcPr')
-            if colw:
-                wattr = {'w': str(colw[i]), 'type': cwunit}
-            else:
-                wattr = {'w': '0', 'type': 'auto'}
-            cellwidth = makeelement('tcW', attributes=wattr)
-            cellstyle = makeelement('shd', attributes={'val': 'clear',
-                                                       'color': 'auto',
-                                                       'fill': 'FFFFFF',
-                                                       'themeFill': 'text2',
-                                                       'themeFillTint': '99'})
-            cellprops.append(cellwidth)
-            cellprops.append(cellstyle)
-            cell.append(cellprops)
-            # Paragraph (Content)
-            if not isinstance(heading, (list, tuple)):
-                heading = [heading]
-            for h in heading:
-                if isinstance(h, etree._Element):
-                    cell.append(h)
-                else:
-                    c_style = column_style.get(i, column_style.get('all', {}))
-                    cell.append(paragraph(h,
-                                          jc=c_style.get('align', 'left'),
-                                          spacing=c_style.get('spacing', {'before':0, 'after':0}),
-                                          font_size=c_style.get('font_size', 10)))
-            row.append(cell)
-            i += 1
-        table.append(row)
-    # Contents Rows
-    for contentrow in contents[1 if heading else 0:]:
-        row = makeelement('tr')
-        i = 0
-        for content in contentrow:
-            cell = makeelement('tc')
-            # Properties
-            cellprops = makeelement('tcPr')
-            if colw:
-                wattr = {'w': str(colw[i]), 'type': cwunit}
-            else:
-                wattr = {'w': '0', 'type': 'auto'}
-            cellwidth = makeelement('tcW', attributes=wattr)
-            cellprops.append(cellwidth)
-            cell.append(cellprops)
-            # Paragraph (Content)
-            if not isinstance(content, (list, tuple)):
-                content = [content]
-            for c in content:
-                if isinstance(c, etree._Element):
-                    cell.append(c)
-                else:
-                    c_style = column_style.get(i, column_style.get('all', {}))
-                    cell.append(paragraph(c,
-                                          jc=c_style.get('align', 'left'),
-                                          spacing=c_style.get('spacing', {'before':0, 'after':0}),
-                                          font_size=c_style.get('font_size', 10)))
-            #if "<ns0:p>" not in etree.tostring(cell):
-            #    cell.append(paragraph(""))
-            row.append(cell)
-            i += 1
-        table.append(row)
-    return table
-
-
-def picture(
-        relationshiplist, picname, picdescription, pixelwidth=None,
-        pixelheight=None, nochangeaspect=True, nochangearrowheads=True,
-        imagefiledict=None):
-    """
-    Take a relationshiplist, picture file name, and return a paragraph
-    containing the image and an updated relationshiplist
-    """
-#    if imagefiledict is None:
-#        warn(
-#            'Using picture() without imagefiledict parameter will be depreca'
-#            'ted in the future.', PendingDeprecationWarning
-#        )
-
-    # http://openxmldeveloper.org/articles/462.aspx
-    # Create an image. Size may be specified, otherwise it will based on the
-    # pixel size of image. Return a paragraph containing the picture
-
-    # Set relationship ID to that of the image or the first available one
-    picid = '2'
-    picpath = abspath(picname)
-
-    if imagefiledict is not None:
-        # Keep track of the image files in a separate dictionary so they don't
-        # need to be copied into the template directory
-        if picpath not in imagefiledict:
-            picrelid = 'rId' + str(len(relationshiplist) + 1)
-            imagefiledict[picpath] = picrelid
-
-            relationshiplist.append([
-                'http://schemas.openxmlformats.org/officeDocument/2006/relat'
-                'ionships/image',
-                'media/%s_%s' % (picrelid, basename(picpath))
-            ])
-        else:
-            picrelid = imagefiledict[picpath]
-    else:
-        # Copy files into template directory for backwards compatibility
-        # Images still accumulate in the template directory this way
-        picrelid = 'rId' + str(len(relationshiplist) + 1)
-
-        media_dir = join(template_dir, 'word', 'media/')
-        if not os.path.isdir(media_dir):
-            make_dirs(media_dir)
-
-        name, ext = os.path.splitext(picname)
-        unique_picname = name + str(len(os.listdir(media_dir))) + ext
-
-
-        relationshiplist.append([
-            'http://schemas.openxmlformats.org/officeDocument/2006/relations'
-            'hips/image', 'media/' + os.path.basename(unique_picname)
-        ])
-
-
-
-        shutil.copyfile(picname, join(media_dir, os.path.basename(unique_picname)))
-    with open(picname, 'rb') as f:
-        image = Image.open(f)
-
-        # Extract EXIF data, if available
-        imageExif = {}
-        try:
-            exif = image._getexif()
-        except:
-            exif = {}
-
-                # Check if the user has specified a size
-        if not pixelwidth or not pixelheight:
-            # If not, get info from the picture itself
-            pixelwidth, pixelheight = image.size[0:2]
-
-    for tag, value in exif.items():
-        imageExif[TAGS.get(tag, tag)] = value
-
-    imageOrientation = imageExif.get('Orientation', 1)
-    imageAngle = {
-        1: 0, 2: 0, 3: 180, 4: 0, 5: 90, 6: 90, 7: 270, 8: 270
-    }[imageOrientation]
-    imageFlipH = 'true' if imageOrientation in (2, 5, 7) else 'false'
-    imageFlipV = 'true' if imageOrientation == 4 else 'false'
-
-
-
-    # Swap width and height if necessary
-    if imageOrientation in (5, 6, 7, 8):
-        pixelwidth, pixelheight = pixelheight, pixelwidth
-
-    # OpenXML measures on-screen objects in English Metric Units
-    # 1cm = 36000 EMUs
-    emuperpixel = 12700
-    width = str(int(pixelwidth * emuperpixel))
-    height = str(int(pixelheight * emuperpixel))
-
-    # There are 3 main elements inside a picture
-    # 1. The Blipfill - specifies how the image fills the picture area
-    #    (stretch, tile, etc.)
-    blipfill = makeelement('blipFill', nsprefix='pic')
-    blipfill.append(makeelement('blip', nsprefix='a', attrnsprefix='r',
-                    attributes={'embed': picrelid}))
-    stretch = makeelement('stretch', nsprefix='a')
-    stretch.append(makeelement('fillRect', nsprefix='a'))
-    blipfill.append(makeelement('srcRect', nsprefix='a'))
-    blipfill.append(stretch)
-
-    # 2. The non visual picture properties
-    nvpicpr = makeelement('nvPicPr', nsprefix='pic')
-    cnvpr = makeelement(
-        'cNvPr', nsprefix='pic',
-        attributes={'id': '0', 'name': 'Picture 1', 'descr': picdescription}
-    )
-    nvpicpr.append(cnvpr)
-    cnvpicpr = makeelement('cNvPicPr', nsprefix='pic')
-    cnvpicpr.append(makeelement(
-        'picLocks', nsprefix='a',
-        attributes={'noChangeAspect': str(int(nochangeaspect)),
-                    'noChangeArrowheads': str(int(nochangearrowheads))}))
-    nvpicpr.append(cnvpicpr)
-
-    # 3. The Shape properties
-    sppr = makeelement('spPr', nsprefix='pic', attributes={'bwMode': 'auto'})
-    xfrm = makeelement(
-        'xfrm', nsprefix='a', attributes={
-            'rot': str(imageAngle * 60000), 'flipH': imageFlipH,
-            'flipV': imageFlipV
-        }
-    )
-    xfrm.append(
-        makeelement('off', nsprefix='a', attributes={'x': '0', 'y': '0'})
-    )
-    xfrm.append(
-        makeelement(
-            'ext', nsprefix='a', attributes={'cx': width, 'cy': height}
-        )
-    )
-    prstgeom = makeelement(
-        'prstGeom', nsprefix='a', attributes={'prst': 'rect'}
-    )
-    prstgeom.append(makeelement('avLst', nsprefix='a'))
-    sppr.append(xfrm)
-    sppr.append(prstgeom)
-
-    # Add our 3 parts to the picture element
-    pic = makeelement('pic', nsprefix='pic')
-    pic.append(nvpicpr)
-    pic.append(blipfill)
-    pic.append(sppr)
-
-    # Now make the supporting elements
-    # The following sequence is just: make element, then add its children
-    graphicdata = makeelement(
-        'graphicData', nsprefix='a',
-        attributes={'uri': ('http://schemas.openxmlformats.org/drawingml/200'
-                            '6/picture')})
-    graphicdata.append(pic)
-    graphic = makeelement('graphic', nsprefix='a')
-    graphic.append(graphicdata)
-
-    framelocks = makeelement('graphicFrameLocks', nsprefix='a',
-                             attributes={'noChangeAspect': '1'})
-    framepr = makeelement('cNvGraphicFramePr', nsprefix='wp')
-    framepr.append(framelocks)
-    docpr = makeelement('docPr', nsprefix='wp',
-                        attributes={'id': picid, 'name': 'Picture 1',
-                                    'descr': picdescription})
-    effectextent = makeelement('effectExtent', nsprefix='wp',
-                               attributes={'l': '25400', 't': '0', 'r': '0',
-                                           'b': '0'})
-    extent = makeelement('extent', nsprefix='wp',
-                         attributes={'cx': width, 'cy': height})
-    inline = makeelement('inline', attributes={'distT': "0", 'distB': "0",
-                                               'distL': "0", 'distR': "0"},
-                         nsprefix='wp')
-    inline.append(extent)
-    inline.append(effectextent)
-    inline.append(docpr)
-    inline.append(framepr)
-    inline.append(graphic)
-    drawing = makeelement('drawing')
-    drawing.append(inline)
-    run = makeelement('r')
-    run.append(drawing)
-    paragraph = makeelement('p')
-    pPr = makeelement('pPr')
-    pstyle = makeelement('pStyle', attributes={'val':'Image'})
-    pPr.append(pstyle)
-    pJc = makeelement('jc', attributes={'val': 'center'})
-    pPr.append(pJc)
-    paragraph.append(pPr)
-    paragraph.append(run)
-
-
-    if imagefiledict is not None:
-        return relationshiplist, paragraph, imagefiledict
-    else:
-        return relationshiplist, paragraph
-
-def caption(tag, caption_text):
-
-    paragraph = makeelement('p')
-    pPr = makeelement('pPr')
-    pstyle = makeelement('pStyle', attributes={'val':'Caption'})
-    pPr.append(pstyle)
-
-
-    pJc = makeelement('jc', attributes={'val': 'center'})
-    pPr.append(pJc)
-    paragraph.append(pPr)
-
-    run = makeelement('r')
-    t = makeelement('t', attributes={'space':"preserve"}, tagtext=tag + " ")
-    run.append(t)
-    paragraph.append(run)
-    fldSimple = makeelement('fldSimple', attributes={"instr":" SEQ %s \* ARABIC " % tag})
-    run = makeelement('r')
-    rPr = makeelement('rPr')
-    noProof = makeelement('noProof')
-    rPr.append(noProof)
-    run.append(rPr)
-    t = makeelement('t', tagtext='1')
-    run.append(t)
-    fldSimple.append(run)
-    paragraph.append(fldSimple)
-    run = makeelement('r')
-    t = makeelement('t', attributes={'space':"preserve"}, tagtext=" - " + caption_text)
-    run.append(t)
-    paragraph.append(run)
-    paragraph.append(makeelement('bookmarkStart', attributes={'id':'0', 'name':'_GoBack'}))
-    paragraph.append(makeelement('bookmarkEnd', attributes={'id':'0'}))
-
-    return paragraph
-
-def search(document, search):
-    '''Search a document for a regex, return success / fail result'''
-    result = False
-    searchre = re.compile(search)
-    for element in document.iter():
-        if element.tag == '{%s}t' % nsprefixes['w']:  # t (text) elements
-            if element.text:
-                if searchre.search(element.text):
-                    result = True
-    return result
-
-
-def replace(document, search, replace):
-    """
-    Replace all occurences of string with a different string, return updated
-    document
-    """
-    newdocument = document
-    searchre = re.compile(search)
-    for element in newdocument.iter():
-        if element.tag == '{%s}t' % nsprefixes['w']:  # t (text) elements
-            if element.text:
-                if searchre.search(element.text):
-                    element.text = re.sub(search, replace, element.text)
-    return newdocument
-
-
-def clean(document):
-    """ Perform misc cleaning operations on documents.
-        Returns cleaned document.
-    """
-
-    newdocument = document
-
-    # Clean empty text and r tags
-    for t in ('t', 'r'):
-        rmlist = []
-        for element in newdocument.iter():
-            if element.tag == '{%s}%s' % (nsprefixes['w'], t):
-                if not element.text and not len(element):
-                    rmlist.append(element)
-        for element in rmlist:
-            element.getparent().remove(element)
-
-    return newdocument
-
-
-def findTypeParent(element, tag):
-    """ Finds fist parent of element of the given type
-
-    @param object element: etree element
-    @param string the tag parent to search for
-
-    @return object element: the found parent or None when not found
-    """
-
-    p = element
-    while True:
-        p = p.getparent()
-        if p.tag == tag:
-            return p
-
-    # Not found
-    return None
-
-
-def AdvSearch(document, search, bs=3):
-    '''Return set of all regex matches
-
-    This is an advanced version of python-docx.search() that takes into
-    account blocks of <bs> elements at a time.
-
-    What it does:
-    It searches the entire document body for text blocks.
-    Since the text to search could be spawned across multiple text blocks,
-    we need to adopt some sort of algorithm to handle this situation.
-    The smaller matching group of blocks (up to bs) is then adopted.
-    If the matching group has more than one block, blocks other than first
-    are cleared and all the replacement text is put on first block.
-
-    Examples:
-    original text blocks : [ 'Hel', 'lo,', ' world!' ]
-    search : 'Hello,'
-    output blocks : [ 'Hello,' ]
-
-    original text blocks : [ 'Hel', 'lo', ' __', 'name', '__!' ]
-    search : '(__[a-z]+__)'
-    output blocks : [ '__name__' ]
-
-    @param instance  document: The original document
-    @param str       search: The text to search for (regexp)
-                          append, or a list of etree elements
-    @param int       bs: See above
-
-    @return set      All occurences of search string
-
-    '''
-
-    # Compile the search regexp
-    searchre = re.compile(search)
-
-    matches = []
-
-    # Will match against searchels. Searchels is a list that contains last
-    # n text elements found in the document. 1 < n < bs
-    searchels = []
-
-    for element in document.iter():
-        if element.tag == '{%s}t' % nsprefixes['w']:  # t (text) elements
-            if element.text:
-                # Add this element to searchels
-                searchels.append(element)
-                if len(searchels) > bs:
-                    # Is searchels is too long, remove first elements
-                    searchels.pop(0)
-
-                # Search all combinations, of searchels, starting from
-                # smaller up to bigger ones
-                # l = search lenght
-                # s = search start
-                # e = element IDs to merge
-                found = False
-                for l in range(1, len(searchels) + 1):
-                    if found:
-                        break
-                    for s in range(len(searchels)):
-                        if found:
-                            break
-                        if s + l <= len(searchels):
-                            e = range(s, s + l)
-                            txtsearch = ''
-                            for k in e:
-                                txtsearch += searchels[k].text
-
-                            # Searcs for the text in the whole txtsearch
-                            match = searchre.search(txtsearch)
-                            if match:
-                                matches.append(match.group())
-                                found = True
-    return set(matches)
-
-
-def advReplace(document, search, replace, bs=3):
-    """
-    Replace all occurences of string with a different string, return updated
-    document
-
-    This is a modified version of python-docx.replace() that takes into
-    account blocks of <bs> elements at a time. The replace element can also
-    be a string or an xml etree element.
-
-    What it does:
-    It searches the entire document body for text blocks.
-    Then scan thos text blocks for replace.
-    Since the text to search could be spawned across multiple text blocks,
-    we need to adopt some sort of algorithm to handle this situation.
-    The smaller matching group of blocks (up to bs) is then adopted.
-    If the matching group has more than one block, blocks other than first
-    are cleared and all the replacement text is put on first block.
-
-    Examples:
-    original text blocks : [ 'Hel', 'lo,', ' world!' ]
-    search / replace: 'Hello,' / 'Hi!'
-    output blocks : [ 'Hi!', '', ' world!' ]
-
-    original text blocks : [ 'Hel', 'lo,', ' world!' ]
-    search / replace: 'Hello, world' / 'Hi!'
-    output blocks : [ 'Hi!!', '', '' ]
-
-    original text blocks : [ 'Hel', 'lo,', ' world!' ]
-    search / replace: 'Hel' / 'Hal'
-    output blocks : [ 'Hal', 'lo,', ' world!' ]
-
-    @param instance  document: The original document
-    @param str       search: The text to search for (regexp)
-    @param mixed     replace: The replacement text or lxml.etree element to
-                         append, or a list of etree elements
-    @param int       bs: See above
-
-    @return instance The document with replacement applied
-
-    """
-    # Enables debug output
-    DEBUG = False
-
-    newdocument = document
-
-    # Compile the search regexp
-    searchre = re.compile(search)
-
-    # Will match against searchels. Searchels is a list that contains last
-    # n text elements found in the document. 1 < n < bs
-    searchels = []
-
-    for element in newdocument.iter():
-        if element.tag == '{%s}t' % nsprefixes['w']:  # t (text) elements
-            if element.text:
-                # Add this element to searchels
-                searchels.append(element)
-                if len(searchels) > bs:
-                    # Is searchels is too long, remove first elements
-                    searchels.pop(0)
-
-                # Search all combinations, of searchels, starting from
-                # smaller up to bigger ones
-                # l = search lenght
-                # s = search start
-                # e = element IDs to merge
-                found = False
-                for l in range(1, len(searchels) + 1):
-                    if found:
-                        break
-                    #print "slen:", l
-                    for s in range(len(searchels)):
-                        if found:
-                            break
-                        if s + l <= len(searchels):
-                            e = range(s, s + l)
-                            #print "elems:", e
-                            txtsearch = ''
-                            for k in e:
-                                txtsearch += searchels[k].text
-
-                            # Searcs for the text in the whole txtsearch
-                            match = searchre.search(txtsearch)
-                            if match:
-                                found = True
-
-                                # I've found something :)
-                                if DEBUG:
-                                    log.debug("Found element!")
-                                    log.debug("Search regexp: %s",
-                                              searchre.pattern)
-                                    log.debug("Requested replacement: %s",
-                                              replace)
-                                    log.debug("Matched text: %s", txtsearch)
-                                    log.debug("Matched text (splitted): %s",
-                                             [i.text for i in searchels])
-                                    log.debug("Matched at position: %s",
-                                              match.start())
-                                    log.debug("matched in elements: %s", e)
-                                    if isinstance(replace, etree._Element):
-                                        log.debug("Will replace with XML CODE")
-                                    elif isinstance(replace(list, tuple)):
-                                        log.debug("Will replace with LIST OF"
-                                                  " ELEMENTS")
-                                    else:
-                                        log.debug("Will replace with:",
-                                                  re.sub(search, replace,
-                                                         txtsearch))
-
-                                curlen = 0
-                                replaced = False
-                                for i in e:
-                                    curlen += len(searchels[i].text)
-                                    if curlen > match.start() and not replaced:
-                                        # The match occurred in THIS element.
-                                        # Puth in the whole replaced text
-                                        if isinstance(replace, etree._Element):
-                                            # Convert to a list and process
-                                            # it later
-                                            replace = [replace]
-                                        if isinstance(replace, (list, tuple)):
-                                            # I'm replacing with a list of
-                                            # etree elements
-                                            # clear the text in the tag and
-                                            # append the element after the
-                                            # parent paragraph
-                                            # (because t elements cannot have
-                                            # childs)
-                                            p = findTypeParent(
-                                                searchels[i],
-                                                '{%s}p' % nsprefixes['w'])
-                                            searchels[i].text = re.sub(
-                                                search, '', txtsearch)
-                                            insindex = p.getparent().index(p) + 1
-                                            for r in replace:
-                                                p.getparent().insert(
-                                                    insindex, r)
-                                                insindex += 1
-                                        else:
-                                            # Replacing with pure text
-                                            searchels[i].text = re.sub(
-                                                search, replace, txtsearch)
-                                        replaced = True
-                                        log.debug(
-                                            "Replacing in element #: %s", i)
-                                    else:
-                                        # Clears the other text elements
-                                        searchels[i].text = ''
-    return newdocument
-
-
-def getdocumenttext(document):
-    '''Return the raw text of a document, as a list of paragraphs.'''
-    paratextlist = []
-    # Compile a list of all paragraph (p) elements
-    paralist = []
-    for element in document.iter():
-        # Find p (paragraph) elements
-        if element.tag == '{' + nsprefixes['w'] + '}p':
-            paralist.append(element)
-    # Since a single sentence might be spread over multiple text elements,
-    # iterate through each paragraph, appending all text (t) children to that
-    # paragraphs text.
-    for para in paralist:
-        paratext = ''
-        # Loop through each paragraph
-        for element in para.iter():
-            # Find t (text) elements
-            if element.tag == '{' + nsprefixes['w'] + '}t':
-                if element.text:
-                    paratext = paratext + element.text
-            elif element.tag == '{' + nsprefixes['w'] + '}tab':
-                paratext = paratext + '\t'
-        # Add our completed paragraph text to the list of paragraph text
-        if not len(paratext) == 0:
-            paratextlist.append(paratext)
-    return paratextlist
-
-
-def coreproperties(title, subject, creator, keywords, lastmodifiedby=None):
-    """
-    Create core properties (common document properties referred to in the
-    'Dublin Core' specification). See appproperties() for other stuff.
-    """
-    coreprops = makeelement('coreProperties', nsprefix='cp')
-    coreprops.append(makeelement('title', tagtext=title, nsprefix='dc'))
-    coreprops.append(makeelement('subject', tagtext=subject, nsprefix='dc'))
-    coreprops.append(makeelement('creator', tagtext=creator, nsprefix='dc'))
-    coreprops.append(makeelement('keywords', tagtext=','.join(keywords),
-                     nsprefix='cp'))
-    if not lastmodifiedby:
-        lastmodifiedby = creator
-    coreprops.append(makeelement('lastModifiedBy', tagtext=lastmodifiedby,
-                     nsprefix='cp'))
-    coreprops.append(makeelement('revision', tagtext='1', nsprefix='cp'))
-    coreprops.append(
-        makeelement('category', tagtext='Examples', nsprefix='cp'))
-    coreprops.append(
-        makeelement('description', tagtext='Examples', nsprefix='dc'))
-    currenttime = time.strftime('%Y-%m-%dT%H:%M:%SZ')
-    # Document creation and modify times
-    # Prob here: we have an attribute who name uses one namespace, and that
-    # attribute's value uses another namespace.
-    # We're creating the element from a string as a workaround...
-    for doctime in ['created', 'modified']:
-        elm_str = (
-            '<dcterms:%s xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc'
-            'e" xmlns:dcterms="http://purl.org/dc/terms/" xsi:type="dcterms:'
-            'W3CDTF">%s</dcterms:%s>'
-        ) % (doctime, currenttime, doctime)
-        coreprops.append(etree.fromstring(elm_str))
-    return coreprops
-
-
-def appproperties():
-    """
-    Create app-specific properties. See docproperties() for more common
-    document properties.
-
-    """
-    appprops = makeelement('Properties', nsprefix='ep')
-    appprops = etree.fromstring("""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-    <Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"></Properties>""".encode('utf-8'))
-    props = \
-        {'Template':             'Normal.dotm',
-         'TotalTime':            '6',
-         'Pages':                '1',
-         'Words':                '83',
-         'Characters':           '475',
-         'Application':          'Microsoft Word 12.0.0',
-         'DocSecurity':          '0',
-         'Lines':                '12',
-         'Paragraphs':           '8',
-         'ScaleCrop':            'false',
-         'LinksUpToDate':        'false',
-         'CharactersWithSpaces': '583',
-         'SharedDoc':            'false',
-         'HyperlinksChanged':    'false',
-         'AppVersion':           '12.0000'}
-    for prop in props:
-        appprops.append(makeelement(prop, tagtext=props[prop], nsprefix=None))
-    return appprops
-
-
-def websettings():
-    '''Generate websettings'''
-    web = makeelement('webSettings')
-    web.append(makeelement('allowPNG'))
-    web.append(makeelement('doNotSaveAsSingleFile'))
-    return web
-
-
-def relationshiplist():
-    relationshiplist = \
-        [  #['http://schemas.openxmlformats.org/officeDocument/2006/'
-         # 'relationships/numbering', 'numbering.xml'],
-         ['http://schemas.openxmlformats.org/officeDocument/2006/'
-          'relationships/styles', 'styles.xml'],
-         ['http://schemas.openxmlformats.org/officeDocument/2006/'
-          'relationships/settings', 'settings.xml'],
-         ['http://schemas.openxmlformats.org/officeDocument/2006/'
-          'relationships/webSettings', 'webSettings.xml'],
-         ['http://schemas.openxmlformats.org/officeDocument/2006/'
-          'relationships/fontTable', 'fontTable.xml'],
-         ['http://schemas.openxmlformats.org/officeDocument/2006/'
-          'relationships/theme', 'theme/theme1.xml']]
-    return relationshiplist
-
-
-def wordrelationships(relationshiplist):
-    '''Generate a Word relationships file'''
-    # Default list of relationships
-    # FIXME: using string hack instead of making element
-    #relationships = makeelement('Relationships', nsprefix='pr')
-    relationships = etree.fromstring(
-        '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006'
-        '/relationships"></Relationships>')
-    count = 0
-    for relationship in relationshiplist:
-        # Relationship IDs (rId) start at 1.
-        rel_elm = makeelement('Relationship', nsprefix=None,
-                              attributes={'Id':     'rId' + str(count + 1),
-                                          'Type':   relationship[0],
-                                          'Target': relationship[1]}
-                              )
-        relationships.append(rel_elm)
-        count += 1
-    return relationships
-
-
-def savedocx(
-        document, coreprops, appprops, contenttypes, websettings,
-        wordrelationships, output, imagefiledict=None):
-    """
-    Save a modified document
-    """
-#    if imagefiledict is None:
-#        warn(
-#            'Using savedocx() without imagefiledict parameter will be deprec'
-#            'ated in the future.', PendingDeprecationWarning
-#        )
-
-    assert os.path.isdir(template_dir)
-    docxfile = zipfile.ZipFile(
-        output, mode='w', compression=zipfile.ZIP_DEFLATED)
-
-    # Move to the template data path
-    prev_dir = os.path.abspath('.')  # save previous working dir
-    os.chdir(template_dir)
-
-    # Serialize our trees into out zip file
-    treesandfiles = {document:     'word/document.xml',
-                     coreprops:    'docProps/core.xml',
-                     appprops:     'docProps/app.xml',
-                     contenttypes: '[Content_Types].xml',
-                     websettings:  'word/webSettings.xml',
-                     wordrelationships: 'word/_rels/document.xml.rels'}
-
-    for tree in treesandfiles:
-        log.info('Saving: %s' % treesandfiles[tree])
-        treestring = etree.tostring(tree, pretty_print=True).replace(b"ns0:space", b"xml:space")
-        docxfile.writestr(treesandfiles[tree], treestring)
-
-    # Add & compress images, if applicable
-    if imagefiledict is not None:
-        for imagepath, picrelid in imagefiledict.items():
-            archivename = 'word/media/%s_%s' % (picrelid, basename(imagepath))
-            log.info('Saving: %s', archivename)
-            docxfile.write(imagepath, archivename)
-
-    # Add & compress support files
-    files_to_ignore = ['.DS_Store']  # nuisance from some os's
-    for dirpath, dirnames, filenames in os.walk('.'):
-        for filename in filenames:
-            if filename in files_to_ignore:
-                continue
-            templatefile = join(dirpath, filename)
-            archivename = templatefile[2:]
-            log.info('Saving: %s', archivename)
-            docxfile.write(templatefile, archivename)
-
-    log.info('Saved new file to: %r', output)
-    docxfile.close()
-    os.chdir(prev_dir)  # restore previous working dir
-    return
diff --git a/wetb/utils/report_generator/docx_document/docx_document.py b/wetb/utils/report_generator/docx_document/docx_document.py
deleted file mode 100644
index 6576d995990a66a5b6ec235bedf2dfebb5edc345..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/docx_document.py
+++ /dev/null
@@ -1,464 +0,0 @@
-#!/usr/bin/env python
-
-"""
-This file makes a .docx (Word 2007) file from scratch, showing off most of the
-features of python-docx.
-
-If you need to make documents from scratch, you can use this file as a basis
-for your work.
-
-Part of Python's docx module - http://github.com/mikemaccana/python-docx
-See LICENSE for licensing information.
-"""
-
-import os
-import re
-import shutil
-
-from mmpe.docx_document.docx import picture, table, caption, pagebreak
-from mmpe.docx_document import docx
-from lxml import etree
-
-from mmpe.functions.process_exec import pexec
-from contextlib import contextmanager
-from mmpe.functions.deep_coding import to_str
-from mmpe.io.make_dirs import make_dirs
-
-
-re_bullet_lst = re.compile("[+,\-,*] (.*)")
-re_number_lst = re.compile("[\d]+\. (.*)")
-inkscape_path = os.path.relpath(os.path.join(os.path.dirname(__file__.replace("library.zip", '')), "inkscape/inkscape.exe"))
-pp = lambda t : etree.tostring(t, pretty_print=True)
-
-def vector_graphics_support():
-    return os.path.isfile(inkscape_path)
-
-def prefered_graphic_format(vector=False):
-    if vector and vector_graphics_support():
-        return "pdf"
-    else:
-        return "png"
-
-class ConversionError(Exception):
-    pass
-
-
-def DocxDocument(doc, title='', subject='', creator='', keywords=[], page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}, delete_closed=False):
-    if isinstance(doc, str):
-        doc = DocxDocumentClass(doc, title, subject, creator, keywords, page_margins, delete_closed)
-        doc.open_on_exit_lst.append(True)
-    else:
-        doc.open_on_exit_lst.append(False)
-    return doc
-
-class DocxDocumentClass(object):
-    open_on_exit_lst = [False]
-    def __init__(self, filename, title='', subject='', creator='', keywords=[], page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}, delete_closed=False):
-        if "%" in filename:
-            self.filename = None
-            for i in range(100):
-                f = filename % i
-                template_dir = os.path.join(os.path.dirname(f), "docx_template_" + os.path.splitext(os.path.basename(f))[0])
-                if os.path.isfile(f) or os.path.isdir(template_dir):
-                    if delete_closed:
-                        try:
-                            os.remove(f)
-                            if self.filename is None:
-                                self.filename = f
-                        except:
-                            pass
-                else:
-                    if self.filename is None:
-                        self.filename = f
-        else:
-            self.filename = filename
-        try:
-            make_dirs(self.filename)
-            with open(self.filename, 'w'):
-                pass
-        except PermissionError as e:
-            raise Warning(str(e))
-
-        self.template_dir = os.path.join(os.path.dirname(self.filename), "docx_template_" + os.path.splitext(os.path.basename(self.filename))[0])
-        if os.path.isdir(self.template_dir):
-            shutil.rmtree(self.template_dir)
-        shutil.copytree(os.path.join(os.path.dirname(__file__.replace("library.zip", '')), 'docx-template_clean'), self.template_dir)
-        docx.template_dir = self.template_dir
-
-        self.title = title
-        self.subject = subject
-        self.creator = creator
-        self.keywords = keywords
-
-        # Default set of relationshipships - the minimum components of a document
-        self.relationships = docx.relationshiplist()
-        self.imagefiledict = {}
-
-
-        # Make a new document tree - this is the main part of a Word document
-        self.document = docx.newdocument(page_margins=page_margins)
-
-        # This xpath location is where most interesting content lives
-        self.body = self.document.xpath('/w:document/w:body', namespaces=docx.nsprefixes)[0]
-        self.h = self.h1 = self.append_heading
-        self.h2 = lambda s : self.append_heading(s, 2)
-        self.h3 = lambda s : self.append_heading(s, 3)
-        self.p = self.append_paragraph
-        self.n = lambda s : self.append_paragraph([(s, 'ns')])
-        self.i = lambda s : self.append_paragraph([(s, 'i')])
-        self.b = lambda s : self.append_paragraph([(s, 'b')])
-        self.new_page = lambda : self.body.append(pagebreak())
-        self.table = docx.table
-        self.paragraph = docx.paragraph
-        self.caption = docx.caption
-        self.heading = docx.heading
-
-    def write_access(self):
-        try:
-            with open(self.filename, 'a+'):
-                pass
-            return True
-        except IOError:
-            return False
-
-
-    def close(self):
-        if os.path.isdir(self.template_dir):
-            shutil.rmtree(self.template_dir)
-
-
-
-    def search(self, string):
-        return docx.search(self.body, string)
-
-#    def replace(self, find_string, replace_string):
-#        replace(self.body, find_string, replace_string)
-
-
-    def append_heading(self, string, level=1):
-        self.body.append(docx.heading(string, level))
-
-    def append_paragraph(self, string, style='BodyText', breakbefore=False, jc='left', spacing={'before':0, 'after':6}, font_size=12):
-        self.body.append(docx.paragraph(string, style, breakbefore, jc, spacing, font_size))
-
-    def append_list(self, item_list, style):
-        for item in item_list:
-            self.append_paragraph(item, style)
-
-    def append_numberlist(self, item_list):
-        self.append_list(item_list, 'ListNumber')
-
-    def append_bulletlist(self, item_list):
-        self.append_list(item_list, 'ListBullet')
-
-    def append_caption(self, tag, caption_text):
-        self.body.append(caption("Figure", caption_text))
-
-    def picture(self, path, title="", pixelwidth=None, pixelheight=None):
-        global inkscape_path
-        _, ext = os.path.splitext(path.lower())
-        if ext in (".svg", '.svgz', '.eps', '.pdf'):
-            emf_path = path.replace(ext, '.emf')
-            args = [inkscape_path, path, '--export-emf=%s' % emf_path]
-            returncode, stdout, stderr, cmd = pexec(args)
-            if returncode != 0 or not os.path.exists(emf_path):
-                inkscape_path = ""
-                raise ConversionError("%s\n%s" % (stdout, stderr))
-            #succeded
-            path = emf_path
-
-        self.relationships, picpara = picture(self.relationships, path, title, pixelwidth, pixelheight)
-        return picpara
-
-
-    def append_picture(self, path, caption_text="", pixelwidth=None, pixelheight=None):
-        self.body.append(self.picture(path, caption_text, pixelwidth, pixelheight))
-#        if caption_text != "":
-#            self.body.append(caption("Figure", caption_text))
-
-
-
-    def append_table(self, lst_of_lst, header=None, first_column=None, corner="", heading=False, colw=None, cwunit='dxa',
-                     tblw=0, twunit='auto',
-                     tblmargin={'left':.19, 'right':.19},
-                     borders={"all":{"color":'auto', 'val':'single', 'sz':'4'}},
-                     column_style={'all':{'font_size':10, 'spacing':{'before':0, 'after':0}}}):
-        """
-        @param list contents: A list of lists describing contents. Every item in
-                      the list can be a string or a valid XML element
-                      itself. It can also be a list. In that case all the
-                      listed elements will be merged into the cell.
-        @param bool heading:  Tells whether first line should be treated as
-                              heading or not
-        @param list colw:     list of integer column widths specified in wunitS.
-        @param str  cwunit:   Unit used for column width:
-                                'pct'  : fiftieths of a percent
-                                'dxa'  : twentieths of a point
-                                'nil'  : no width
-                                'auto' : automagically determined
-        @param int  tblw:     Table width
-        @param str  twunit:   Unit used for table width. Same possible values as
-                              cwunit.
-        @param dict borders:  Dictionary defining table border. Supported keys
-                              are: 'top', 'left', 'bottom', 'right',
-                              'insideH', 'insideV', 'all'.
-                              When specified, the 'all' key has precedence over
-                              others. Each key must define a dict of border
-                              attributes:
-                                color : The color of the border, in hex or
-                                        'auto'
-                                space : The space, measured in points
-                                sz    : The size of the border, in eighths of
-                                        a point
-                                val   : The style of the border, see
-                    http://www.schemacentral.com/sc/ooxml/t-w_ST_Border.htm
-        @param list celstyle: Specify the style for each colum, list of dicts.
-                              supported keys:
-                              'align' : specify the alignment, see paragraph
-                                        documentation."""
-        m = len(lst_of_lst)
-        n = len(lst_of_lst[0])
-        if header:
-
-            if first_column:
-                lst_of_lst = [[corner] + header] + [[fc] + lst for fc, lst in zip(first_column, lst_of_lst)]
-            else:
-                lst_of_lst = [header] + [ lst for lst in lst_of_lst]
-        lst_of_lst = [[(str(v), v)[isinstance(v, (etree._Element, list, tuple))] for v in lst] for lst in lst_of_lst]
-
-        self.body.append(table(lst_of_lst, heading, colw, cwunit, tblw, tblmargin, twunit, borders, column_style))
-
-
-
-    def append_markdown(self, s):
-        number_lst = []
-        bullet_lst = []
-
-        for l in s.split("\n"):
-            #bullet list
-            if re_bullet_lst.match(l) is not None:
-                bullet_lst.append(re_bullet_lst.match(l).groups()[0])
-                continue
-            elif len(bullet_lst) > 0:
-                self.append_bulletlist(bullet_lst)
-                bullet_lst = []
-            # number list
-            if re_number_lst.match(l) is not None:
-                number_lst.append(re_number_lst.match(l).groups()[0])
-                continue
-            elif len(number_lst) > 0:
-                self.append_numberlist(number_lst)
-                number_lst = []
-
-
-
-            #headings
-            if l.startswith("#"):
-                for i in [3, 2, 1]:
-                    if l.startswith("#"*i):
-                        self.append_heading(l[i:], i)
-                        break
-
-            elif (' *' in l and "* " in l) or (" _" in l and "_ " in l):
-                def styleit(text_lst, style_lst, tag, style):
-                    t_lst = []
-                    s_lst = []
-                    for t, s in (zip(text_lst, style_lst)):
-                        while t.count(tag) > 2:  #" " + tag in t and tag + " " in t:
-                            before, rest = t.split(tag, 1)
-                            style_text, t = rest.split(tag, 1)
-                            t_lst.append(before);s_lst.append(s)
-                            t_lst.append(style_text);s_lst.append(style)
-                        else:
-                            t_lst.append(t);s_lst.append(s)
-                    return t_lst, s_lst
-                text_lst, style_lst = [l], ['n']
-                text_lst, style_lst = styleit(text_lst, style_lst, "**", 'b')
-                text_lst, style_lst = styleit(text_lst, style_lst, "__", 'b')
-                text_lst, style_lst = styleit(text_lst, style_lst, "*", 'i')
-                text_lst, style_lst = styleit(text_lst, style_lst, "_", 'i')
-                self.append_paragraph(list(zip(text_lst, style_lst)))
-            else:
-                self.n(l)
-
-    def landscape(self, page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}):
-        self.body.append(pagebreak('section', page_margins, portrait=False))
-
-    def portrait(self, page_margins={'top':2, 'bottom':2, 'left':3, 'right':2}):
-        self.body.append(pagebreak('section', page_margins, portrait=True))
-
-    def save(self, filename=None):
-        if filename is not None:
-            self.filename = filename
-
-        coreprops = docx.coreproperties(title=self.title,
-                                   subject=self.subject,
-                                   creator=self.creator,
-                                   keywords=self.keywords)
-        appprops = docx.appproperties()
-        contenttypes = docx.contenttypes()
-        websettings = docx.websettings()
-        wordrelationships = docx.wordrelationships(self.relationships)
-        # Save our document
-        docx.savedocx(self.document, coreprops, appprops, contenttypes, websettings,
-                 wordrelationships, self.filename)
-
-    def open(self):
-        self.save()
-        self.close()
-        import subprocess
-        subprocess.Popen(os.path.realpath(self.filename), shell=True, cwd=os.getcwd())
-
-    def __enter__(self):
-        return self
-
-    def __exit__(self, type, value, traceback):
-        if self.open_on_exit_lst.pop():
-            self.open()
-
-
-
-if __name__ == '__main__':
-
-#    doc1 = DocxDocument('test%d.docx')
-#    doc1.h1("first")
-#    doc1.open()
-    with DocxDocument('test%d.docx', delete_closed=True) as doc:
-        doc.p("hej")
-
-#    doc3 = DocxDocument('test%d.docx')
-#    doc3.h1("thirda")
-#    with DocxDocument(doc3) as doc:
-#        doc.h1("thirdb")
-
-#    doc = DocxDocument("test%d.docx")
-#    doc.append_table([['1', '2'], ['3', '4']], header=['a', 'b'], first_column=['c', 'd'], corner='table')
-#    doc.p("")
-#    doc.append_table([['1', '2'], ['3', '4']], header=['a', 'b'], first_column=['c', 'd'])
-#    doc.p("")
-#    doc.append_table([['1', '2'], ['3', '4']], header=['a', 'b'])
-#    doc.p("")
-#    doc.append_table([['1', '2'], ['3', '4']], first_column=['a', 'b'])
-
-    #table_xml = doc.table([['A1'], ['B1']], heading=False, column_style={'all':{'font_size':20, 'spacing':{'before':0, 'after':0}}})
-#    p = doc.paragraph("Test", font_size=30)
-#
-#    doc.body.append(p)
-#
-#    doc.n("")
-#
-#    # Append two headings and a paragraph
-#    doc.h("Welcome to Python's docx module")
-#    doc.h2('Make and edit docx in 200 lines of pure Python')
-#    doc.n('The module was created when I was looking for a '
-#        'Python support for MS Word .doc files on PyPI and Stackoverflow. '
-#        'Unfortunately, the only solutions I could find used:')
-#
-#    doc.i('For those of us who prefer something simpler')
-#    doc.b('I made docx.')
-#
-#
-#    # Add a numbered list
-#    points = [ 'COM automation'
-#             , '.net or Java'
-#             , 'Automating OpenOffice or MS Office'
-#             ]
-#    doc.append_numberlist(points)
-#
-#    doc.append_picture('image1.png', "This is a picture")
-#
-#    doc.append_table([ [doc.picture('image1.png'), 'A2', 'A3'],
-#                       ['B1', 'B2', 'B3'],
-#                       ['C1', 'C2', 'C3']], False)
-#
-##   doc.append_picture('../myplot.pdf', "test", 100, 100)
-#    doc.append_markdown("""#Welcome to Python's docx module
-###Make and edit docx in 200 lines of pure Python
-#The module was created when I was looking for a Python support for MS Word .doc files on PyPI and Stackoverflow. Unfortunately, the only solutions I could find used:
-#*For those of us who prefer something simpler* **I made docx.**
-#
-#4. First
-#5. Second
-#6. Third
-#
-#- first
-#* second
-#+ third
-#""")
-
-
-    #doc.append_heading('Making documents', 2)
-#    body.append(paragraph('The docx module has the following features:'))
-#
-#    # Add some bullets
-#    points = ['Paragraphs', 'Bullets', 'Numbered lists',
-#              'Multiple levels of headings', 'Tables', 'Document Properties']
-#    for point in points:
-#        body.append(paragraph(point, style='ListBullet'))
-#
-#    body.append(paragraph('Tables are just lists of lists, like this:'))
-#    # Append a table
-#    tbl_rows = [ ['A1', 'A2', 'A3']
-#               , ['B1', 'B2', 'B3']
-#               , ['C1', 'C2', 'C3']
-#               ]
-#    body.append(table(tbl_rows))
-#
-#    body.append(heading('Editing documents', 2))
-#    body.append(paragraph('Thanks to the awesomeness of the lxml module, '
-#                          'we can:'))
-#    points = [ 'Search and replace'
-#             , 'Extract plain text of document'
-#             , 'Add and delete items anywhere within the document'
-#             ]
-#    for point in points:
-#        body.append(paragraph(point, style='ListBullet'))
-#
-#    # Add an image
-#    relationships, picpara = picture(relationships, 'image1.png',
-#                                     'This is a test description')
-#    body.append(picpara)
-#
-#    # Search and replace
-#    print 'Searching for something in a paragraph ...',
-#    if search(body, 'the awesomeness'):
-#        print 'found it!'
-#    else:
-#        print 'nope.'
-#
-#    print 'Searching for something in a heading ...',
-#    if search(body, '200 lines'):
-#        print 'found it!'
-#    else:
-#        print 'nope.'
-#
-#    print 'Replacing ...',
-#    body = replace(body, 'the awesomeness', 'the goshdarned awesomeness')
-#    print 'done.'
-#
-#    # Add a pagebreak
-#    body.append(pagebreak(type='page', orient='portrait'))
-#
-#    body.append(heading('Ideas? Questions? Want to contribute?', 2))
-#    body.append(paragraph('Email <python.docx@librelist.com>'))
-
-#    # Create our properties, contenttypes, and other support files
-#    title = 'Python docx demo'
-#    subject = 'A practical example of making docx from Python'
-#    creator = 'Mike MacCana'
-#    keywords = ['python', 'Office Open XML', 'Word']
-
-#    coreprops = coreproperties(title=title, subject=subject, creator=creator,
-#                               keywords=keywords)
-#    appprops = appproperties()
-#    contenttypes = contenttypes()
-#    websettings = websettings()
-#    wordrelationships = wordrelationships(relationships)
-#
-#    # Save our document
-#    savedocx(document, coreprops, appprops, contenttypes, websettings,
-#             wordrelationships, 'Welcome to the Python docx module.docx')
-#    doc.save()
-#    doc.close()
-#    doc.open()
-#
diff --git a/wetb/utils/report_generator/docx_document/example.py b/wetb/utils/report_generator/docx_document/example.py
deleted file mode 100644
index c8596f44f2cadf90401a305d8ce1c0a185ef0a13..0000000000000000000000000000000000000000
--- a/wetb/utils/report_generator/docx_document/example.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python
-
-"""
-This file makes a .docx (Word 2007) file from scratch, showing off most of the
-features of python-docx.
-
-If you need to make documents from scratch, you can use this file as a basis
-for your work.
-
-Part of Python's docx module - http://github.com/mikemaccana/python-docx
-See LICENSE for licensing information.
-"""
-
-from mmpe.docx_document.docx import *
-
-if __name__ == '__main__':
-    # Default set of relationshipships - the minimum components of a document
-    relationships = relationshiplist()
-
-    # Make a new document tree - this is the main part of a Word document
-    document = newdocument()
-
-    # This xpath location is where most interesting content lives
-    body = document.xpath('/w:document/w:body', namespaces=nsprefixes)[0]
-
-    # Append two headings and a paragraph
-    body.append(heading("Welcome to Python's docx module", 1))
-    body.append(heading('Make and edit docx in 200 lines of pure Python', 2))
-    body.append(paragraph('The module was created when I was looking for a '
-        'Python support for MS Word .doc files on PyPI and Stackoverflow. '
-        'Unfortunately, the only solutions I could find used:'))
-
-    # Add a numbered list
-    points = [ 'COM automation'
-             , '.net or Java'
-             , 'Automating OpenOffice or MS Office'
-             ]
-    for point in points:
-        body.append(paragraph(point, style='ListNumber'))
-    body.append(paragraph([('For those of us who prefer something simpler, I '
-                          'made docx.', 'i')]))
-    body.append(heading('Making documents', 2))
-    body.append(paragraph('The docx module has the following features:'))
-
-    # Add some bullets
-    points = ['Paragraphs', 'Bullets', 'Numbered lists',
-              'Multiple levels of headings', 'Tables', 'Document Properties']
-    for point in points:
-        body.append(paragraph(point, style='ListBullet'))
-
-    body.append(paragraph('Tables are just lists of lists, like this:'))
-    # Append a table
-    tbl_rows = [ ['A1', 'A2', 'A3']
-               , ['B1', 'B2', 'B3']
-               , ['C1', 'C2', 'C3']
-               ]
-    body.append(table(tbl_rows))
-
-    body.append(heading('Editing documents', 2))
-    body.append(paragraph('Thanks to the awesomeness of the lxml module, '
-                          'we can:'))
-    points = [ 'Search and replace'
-             , 'Extract plain text of document'
-             , 'Add and delete items anywhere within the document'
-             ]
-    for point in points:
-        body.append(paragraph(point, style='ListBullet'))
-
-    # Add an image
-    relationships, picpara = picture(relationships, 'image1.png',
-                                     'This is a test description')
-    body.append(picpara)
-
-    # Search and replace
-    print ('Searching for something in a paragraph ...',)
-    if search(body, 'the awesomeness'):
-        print ('found it!')
-    else:
-        print ('nope.')
-
-    print ('Searching for something in a heading ...',)
-    if search(body, '200 lines'):
-        print ('found it!')
-    else:
-        print ('nope.')
-
-    print ('Replacing ...',)
-    body = replace(body, 'the awesomeness', 'the goshdarned awesomeness')
-    print ('done.')
-
-    # Add a pagebreak
-    body.append(pagebreak(type='page', orient='portrait'))
-
-    body.append(heading('Ideas? Questions? Want to contribute?', 2))
-    body.append(paragraph('Email <python.docx@librelist.com>'))
-
-    # Create our properties, contenttypes, and other support files
-    title = 'Python docx demo'
-    subject = 'A practical example of making docx from Python'
-    creator = 'Mike MacCana'
-    keywords = ['python', 'Office Open XML', 'Word']
-
-    coreprops = coreproperties(title=title, subject=subject, creator=creator,
-                               keywords=keywords)
-    appprops = appproperties()
-    contenttypes = contenttypes()
-    websettings = websettings()
-    wordrelationships = wordrelationships(relationships)
-
-    # Save our document
-    savedocx(document, coreprops, appprops, contenttypes, websettings,
-             wordrelationships, 'Welcome to the Python docx module.docx')