Page 1 of 1

NullPointer Exception when dealing with numbering

PostPosted: Tue Aug 16, 2016 9:09 am
by abuzekry
Hi Jason,

I've noticed a strange behavior for the first time, when you extract a docx file and open the numbering.xml, I found that for a certain document that some of the "w:abstractNum" tags are empty, i.e the tag does not contain any "w:lvl" tags. This reflects in a NullPointer exception in the constructor of "ListNumberingDefinition".

What happens is, in the method "initialiseMaps" in class "NumberingDefinitionsPart", there is a loop looping on the HashMap of AbstractNumberings in the object of type Numbering then adds them to the object "abstractListDefinitions" which is of type HashMap of "AbstractListNumberingDefinition". Because of the empty tags, some of those HashMaps are empty.

After that there is a loop on the Num's in the same object of type Numbering, it tries to instantiate an object of type "ListNumberingDefinition", but in the constructor it accesses one of the empty hashmaps and tries to get an entry in it, which causes the null pointer exception.

I was thinking the solution could be to check for the size of the HashMaps before adding them to "abstractListDefinitions", if they're = 0, then they shouldn't be added. This way we could avoid the NullPointer Exception from happening.

Here is the code I'm talking about:
Code: Select all
        // store the abstract list type definitions
        for (Numbering.AbstractNum abstractNumNode : numbering.getAbstractNum() )
        {
            AbstractListNumberingDefinition absNumDef
               = new AbstractListNumberingDefinition(abstractNumNode);

            abstractListDefinitions.put(absNumDef.getID(), absNumDef);

        }

        // instantiate the list number definitions
        for( Numbering.Num numNode : numbering.getNum() )
        {
            ListNumberingDefinition listDef
               = new ListNumberingDefinition(numNode, abstractListDefinitions);

            instanceListDefinitions.put(listDef.getListNumberId(), listDef);
//            log.debug("Added list: " + listDef.getListNumberId() );
        }


I'm suggesting to check on the size of HashMap of "absNumDef" before adding it to "abstractListDefinitions"

Let me know your thoughts on this please.

Thanks,
Ahmed



Re: NullPointer Exception when dealing with numbering

PostPosted: Tue Aug 16, 2016 9:31 am
by jason
Hi Ahmed,

We should guard against this NPE.

But out of interest, do you know which app or apps were used to create the docx in question? Can you upload/attach it?

kind regards .. Jason

Re: NullPointer Exception when dealing with numbering

PostPosted: Tue Aug 16, 2016 9:16 pm
by abuzekry
Hi Jason,

Unfortunately the document in question is a customer's document, so I can't give access to it outside our Engineering team.

How could I contribute and send you my fix or will you do it ?

Thanks,
Ahmed

Re: NullPointer Exception when dealing with numbering

PostPosted: Tue Aug 16, 2016 11:14 pm
by jason
You may be interested in https://github.com/plutext/docx4j/blob/ ... ingle.java
which shows how you can sanitize a docx, using 3.3.1.

cheers .. Jason

Re: NullPointer Exception when dealing with numbering

PostPosted: Wed Aug 17, 2016 6:25 am
by abuzekry
I'm sorry, I don't quite understand what I can do with this piece of code ?
Would it help prevent the NPE or what? Could you elaborate a bit more?

Thanks,
Ahmed

Re: NullPointer Exception when dealing with numbering

PostPosted: Wed Aug 17, 2016 5:08 pm
by jason
You can run your docx through that code, to get an output docx which contains only "lorem ipsum" latin gibberish, while retaining the structure needed for use as a test case.

Alternatively, you could unzip then post the contents on word/numbering.xml

thanks .. Jason

Re: NullPointer Exception when dealing with numbering

PostPosted: Sun Aug 21, 2016 8:31 pm
by abuzekry
Here is the content of the numbering.xml file.
As you can see there are some w:abstractNum tags that have no w:lvl tags
I've removed some tags so that the comment could be submitted

<w:abstractNum w:abstractNumId="22">
<w:nsid w:val="3F0E44EF"/>
<w:multiLevelType w:val="multilevel"/>
<w:tmpl w:val="7B142DF2"/>
<w:numStyleLink w:val="References"/>
</w:abstractNum>
<w:abstractNum w:abstractNumId="23">
<w:nsid w:val="43E609A0"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="4C96AB5A"/>
<w:lvl w:ilvl="0" w:tplc="100C0001">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="720" 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="1" w:tplc="100C0003">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="1440" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2160" 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="3" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2880" 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="4" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="3600" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4320" 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="6" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5040" 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="7" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5760" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6480" 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="24">
<w:nsid w:val="45E06A8A"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090001"/>
<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="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="25">
<w:nsid w:val="4C8F59D8"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090017"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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:rPr>
<w:rFonts w:cs="Times New Roman" w:hint="default"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="26">
<w:nsid w:val="576169A3"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090001"/>
<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="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="27">
<w:nsid w:val="57855B26"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090017"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="28">
<w:nsid w:val="61EF561B"/>
<w:multiLevelType w:val="multilevel"/>
<w:tmpl w:val="A5960D58"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="none"/>
<w:lvlText w:val="[Inf%1]"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1702"/>
</w:tabs>
<w:ind w:left="1702" w:hanging="1134"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Times New Roman" w:hint="default"/>
<w:b w:val="0"/>
<w:i/>
<w:color w:val="800000"/>
<w:sz w:val="20"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%2."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1724"/>
</w:tabs>
<w:ind w:left="1724" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="2444"/>
</w:tabs>
<w:ind w:left="2444" w:hanging="180"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</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="3164"/>
</w:tabs>
<w:ind w:left="3164" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="4">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%5."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="3884"/>
</w:tabs>
<w:ind w:left="3884" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%6."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="4604"/>
</w:tabs>
<w:ind w:left="4604" w:hanging="180"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</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="5324"/>
</w:tabs>
<w:ind w:left="5324" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="7">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%8."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="6044"/>
</w:tabs>
<w:ind w:left="6044" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="6764"/>
</w:tabs>
<w:ind w:left="6764" w:hanging="180"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="29">
<w:nsid w:val="639D37A1"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="F5AED9C8"/>
<w:lvl w:ilvl="0" w:tplc="658E7946">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%1)"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2694" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
<w:i w:val="0"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1" w:tplc="100C0003">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2640" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="100C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:ind w:left="3360" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="3" w:tplc="100C000F" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="decimal"/>
<w:lvlText w:val="%4."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4080" w:hanging="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="4" w:tplc="100C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%5."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4800" w:hanging="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="100C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%6."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:ind w:left="5520" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="6" w:tplc="100C000F" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="decimal"/>
<w:lvlText w:val="%7."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6240" w:hanging="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="7" w:tplc="100C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%8."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6960" w:hanging="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="100C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:ind w:left="7680" w:hanging="180"/>
</w:pPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="30">
<w:nsid w:val="672F46D3"/>
<w:multiLevelType w:val="multilevel"/>
<w:tmpl w:val="040C001D"/>
<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="360"/>
</w:tabs>
<w:ind w:left="360" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%2)"/>
<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="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3)"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1080"/>
</w:tabs>
<w:ind w:left="1080" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</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="1440"/>
</w:tabs>
<w:ind w:left="1440" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="4">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="(%5)"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1800"/>
</w:tabs>
<w:ind w:left="1800" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="(%6)"/>
<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="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</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="2520"/>
</w:tabs>
<w:ind w:left="2520" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="7">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<w:lvlText w:val="%8."/>
<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="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="3240"/>
</w:tabs>
<w:ind w:left="3240" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="31">
<w:nsid w:val="684D308C"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090017"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="32">
<w:nsid w:val="69D275CD"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="6CF2DF08"/>
<w:lvl w:ilvl="0" w:tplc="FB28D05A">
<w:start w:val="1"/>
<w:numFmt w:val="none"/>
<w:pStyle w:val="Information"/>
<w:lvlText w:val="%1[inf]"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1134"/>
</w:tabs>
<w:ind w:left="1134" w:hanging="1134"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:hint="default"/>
<w:b w:val="0"/>
<w:i/>
<w:color w:val="800000"/>
<w:sz w:val="20"/>
<w:szCs w:val="20"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="2160"/>
</w:tabs>
<w:ind w:left="2160" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="3" w:tplc="040C000F" w:tentative="1">
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="4" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%6."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="4320"/>
</w:tabs>
<w:ind w:left="4320" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="6" w:tplc="040C000F" w:tentative="1">
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="7" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="6480"/>
</w:tabs>
<w:ind w:left="6480" w:hanging="180"/>
</w:pPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="33">
<w:nsid w:val="6BC2479B"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090017"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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:rPr>
<w:rFonts w:cs="Times New Roman"/>
</w:rPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="34">
<w:nsid w:val="6C5F55B8"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="0C090001"/>
<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="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="35">
<w:nsid w:val="71BB5122"/>
<w:multiLevelType w:val="multilevel"/>
<w:tmpl w:val="7B142DF2"/>
<w:styleLink w:val="References"/>
<w:lvl w:ilvl="0">
<w:start w:val="1"/>
<w:numFmt w:val="decimal"/>
<w:pStyle w:val="ReferenceDocument"/>
<w:lvlText w:val="[%1]"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1134"/>
</w:tabs>
<w:ind w:left="1134" w:hanging="567"/>
</w:pPr>
<w:rPr>
<w:sz w:val="24"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="2">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="2160"/>
</w:tabs>
<w:ind w:left="2160" w:hanging="180"/>
</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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="4">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="5">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%6."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="4320"/>
</w:tabs>
<w:ind w:left="4320" w:hanging="180"/>
</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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="7">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="8">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="6480"/>
</w:tabs>
<w:ind w:left="6480" w:hanging="180"/>
</w:pPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="36">
<w:nsid w:val="72434D47"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="DF0C8520"/>
<w:lvl w:ilvl="0" w:tplc="100C0003">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="720" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="1440" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2160" 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="3" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2880" 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="4" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="3600" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4320" 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="6" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5040" 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="7" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5760" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6480" 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="37">
<w:nsid w:val="73D5036B"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="A300D5E4"/>
<w:lvl w:ilvl="0" w:tplc="100C0003">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="1854" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2574" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="3294" 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="3" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4014" 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="4" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4734" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5454" 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="6" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6174" 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="7" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6894" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="7614" 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="38">
<w:nsid w:val="7600256F"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="7CD21ADE"/>
<w:lvl w:ilvl="0" w:tplc="100C0001">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="1854" 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="1" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="2574" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="3294" 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="3" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4014" 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="4" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="4734" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="5454" 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="6" w:tplc="100C0001" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6174" 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="7" w:tplc="100C0003" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val="o"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="6894" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Courier New" w:hAnsi="Courier New" w:cs="Courier New" w:hint="default"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="100C0005" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="bullet"/>
<w:lvlText w:val=""/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:ind w:left="7614" 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="39">
<w:nsid w:val="789E26DB"/>
<w:multiLevelType w:val="hybridMultilevel"/>
<w:tmpl w:val="86782A8C"/>
<w:lvl w:ilvl="0" w:tplc="BD98F6B2">
<w:start w:val="1"/>
<w:numFmt w:val="none"/>
<w:pStyle w:val="Rationale"/>
<w:lvlText w:val="%1Rationale:"/>
<w:lvlJc w:val="left"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="1134"/>
</w:tabs>
<w:ind w:left="1134" w:hanging="1134"/>
</w:pPr>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:hint="default"/>
<w:b w:val="0"/>
<w:i w:val="0"/>
<w:color w:val="008000"/>
<w:sz w:val="20"/>
<w:szCs w:val="20"/>
</w:rPr>
</w:lvl>
<w:lvl w:ilvl="1" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="2" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%3."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="2160"/>
</w:tabs>
<w:ind w:left="2160" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="3" w:tplc="040C000F" w:tentative="1">
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="4" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="5" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%6."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="4320"/>
</w:tabs>
<w:ind w:left="4320" w:hanging="180"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="6" w:tplc="040C000F" w:tentative="1">
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="7" w:tplc="040C0019" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerLetter"/>
<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="360"/>
</w:pPr>
</w:lvl>
<w:lvl w:ilvl="8" w:tplc="040C001B" w:tentative="1">
<w:start w:val="1"/>
<w:numFmt w:val="lowerRoman"/>
<w:lvlText w:val="%9."/>
<w:lvlJc w:val="right"/>
<w:pPr>
<w:tabs>
<w:tab w:val="num" w:pos="6480"/>
</w:tabs>
<w:ind w:left="6480" w:hanging="180"/>
</w:pPr>
</w:lvl>
</w:abstractNum>
<w:abstractNum w:abstractNumId="40">
<w:nsid w:val="7CFF0A43"/>
<w:multiLevelType w:val="singleLevel"/>
<w:tmpl w:val="C404869A"/>
<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="1494"/>
</w:tabs>
<w:ind w:left="1494" w:hanging="360"/>
</w:pPr>
<w:rPr>
<w:rFonts w:hint="default"/>
</w:rPr>
</w:lvl>
</w:abstractNum>

Re: NullPointer Exception when dealing with numbering

PostPosted: Mon Aug 29, 2016 1:41 am
by abuzekry
Hi Jason,

Any thoughts about the text written previously. This is the text of the numbering.xml file of the docx file I have.
Do you recognize anything suspicious ?

Thanks,
Ahmed

Re: NullPointer Exception when dealing with numbering

PostPosted: Thu Sep 01, 2016 5:50 pm
by jason
Thanks for the sample.

Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  <w:abstractNum w:abstractNumId="22">
    <w:nsid w:val="3F0E44EF"/>
    <w:multiLevelType w:val="multilevel"/>
    <w:tmpl w:val="7B142DF2"/>
    <w:numStyleLink w:val="References"/>
  </w:abstractNum>
 
Parsed in 0.001 seconds, using GeSHi 1.0.8.4


is interesting.

I've fixed one NPE: https://github.com/plutext/docx4j/commi ... 1c364f1f0c
but haven't added support for http://webapp.docx4java.org/OnlineDemo/ ... eLink.html
(which should be done).

Not sure whether this fixes the NPE you are seeing.

I'll make a nightly build a bit later for you to try. (Otherwise, you could post the actual stack trace and the version of docx4j you are using)

Re: NullPointer Exception when dealing with numbering

PostPosted: Mon Sep 05, 2016 1:42 am
by abuzekry
Hi Jason,

Sorry for keeping asking about this issue. Any thoughts about it ?

Thanks Again.

Re: NullPointer Exception when dealing with numbering

PostPosted: Mon Sep 05, 2016 11:18 am
by jason
Did you notice my reply above? :-)